[Bloat] Best practices for paced TCP on Linux?

Rick Jones rick.jones2 at hp.com
Fri Apr 13 20:44:43 EDT 2012


On 04/07/2012 07:17 AM, Fred Baker wrote:
>
> On Apr 7, 2012, at 4:54 AM, Neil Davies wrote:
>
>> The answer was rather simple - calculate the amount of buffering needed to achieve
>> say 99% of the "theoretical" throughput (this took some measurement as to exactly what
>> that was) and limit the sender to that.
>
> So what I think I hear you saying is that we need some form of ioctl
> interface in the sockets library that will allow the sender to state
> the rate it associates with the data (eg, the video codec rate), and
> let TCP calculate
>
>                             f(rate in bits per second, pmtu)
>       cwnd_limit = ceiling (--------------------------------)  + C
>                                  g(rtt in microseconds)
>
> Where C is a fudge factor, probably a single digit number, and f and
> g  are appropriate conversion functions.

Since cwnd will never be more than SO_SNDBUF, apart from complications 
getting the rtt, I think one can probably do something close to that 
from user space with setsockopt(SO_SNDBUF).  I'm ass-u-me-ing that 
getsockopt(TCP_MAXSEG) will track PTMU, but I'm not sure if one can get 
the RTT portably - I think a getsockopt(TCP_INFO) under Linux will get 
the RTT, but don't know about other stacks. (Looks like Linux will also 
return a pmtu value).

rick jones



More information about the Bloat mailing list