[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