Urel, a TCP option for Unreliable Streaming. Need your help.

maillist ifiaas maillist.ifiaas at gmail.com
Wed Dec 6 07:09:42 PST 2006


Hi friends,

This is one of my research project. Our purpose is to modify TCP to
support unreliable but congestion controlled streaming. The motivation
is pretty similar to the one of DCCP CCID2.
We have implemented a prototype on FreeBSD 5.4, and the the
modifications are limited mostly in tcp_input.c and tcp_output.c.
Source code, a paper about the design (under submission), and an Iperf
modification to test out TCP Urel, is provided on the following page:
www.comp.nus.edu.sg/~malin/

Our current stage is changing Urel into a single directional streaming
protocol, so taht it could be abosolutely fair with default TCP Sack,
in FreeBSD.
But we found after all the modifications (on single directional
streaming), Urel generates  less ACK than normal Sack, making it under
utilized when competing to TCP Sack. About only 3 out of 10 tries,
Urel take the same throughput as Sack.
The reason seems to lying in the Delay ACK code, in tcp_input.c.
Because, when we turn off the Delay ACK option, using sysctl command,
Urel and Sack play fairly.
However after days of looking at the code, we failed to find the
secret... Therefore, I turn to  you, the specialists of the TCP code
in FreeBSD. Hope you can help us to find the bug of our code. Any
suggesion, comments, is appreciated.

For details of how the code is implemented, how our experiment is
conducted, you may need to spend one or two hours to browse through
our paper, and the source code.

Sincerely,
Gavin


More information about the freebsd-net mailing list