Reputation: 2780
I came up with the idea that if we remove the exponential backoff time from TCP, this will improve the performance of the TCP throughput. I came across a paper also, which said how to do it. Just google "remove tcp exponential back off time" and you will get it. But, I am not able to understand how to get into the UNIX kernel and hack it inorder to change the TCP functioning. Please, if anyone can help me out then it would be simply great.
Thanks.
Upvotes: 1
Views: 3207
Reputation: 6753
Exponential backoff (for CSMA/CD) is done in the physical layer (implemented as hardware usually), where you handle the signalling.
And even if it is tunable, it is likely done at the firmware level, not kernel source.
But another area of exponential backoff is in router - this is perhaps where you can tune it.
Upvotes: 0
Reputation: 982
This paper points out that exponential backoff is unnecessary as long as packet conservation principle is followed. After an evaluation of the paper I think the implementation is good for lossy links but not for congested links.
Upvotes: 3
Reputation: 182827
If that were true, why would the exponential backoff be in there? Do you really think the guys who developed and evolved TCP added something just to make performance worse? And then, what, all the different operating systems implementation people added it without thinking?
Removing the exponential backoff will increase the packet loss rate (because congestion backoff won't be as rapid) and increase the latency (because the queues at each interface on the path will tend to be deeper). These two effects are multiplicative -- increased latency makes increased packet loss more damaging. The cumulative effects would be disastrous to throughput.
Linux permits a module to implement the TCP congestion control algorithm. So you can tweak it however you want. Have a look in the net/ipv4
directory of the Linux kernel source, files like tcp_hybla.c
and tcp_veno.c
.
Upvotes: 6