Monday March 26, 2007 at 02:28
Subject: Dear Lazyweb: Force TCP transmit.
Keywords:
Posted by: Sean Reifschneider
Dear Lazyweb, it would be nice if in the Linux kernel there were a way
to communicate with the TCP stack that it should try doing an immediate
retransmit of TCP packets for sessions. This would be great for times
when, say, my VPN or cellular session reconnects, or times like tonight
when my wireless link was going up and down every 60 to 90 seconds because
of some sort of weirdness on my network here. When my VPN comes back up,
it would be nice to have my sessions sync immediately back up, and not have
to wait the 30 to 60 seconds it sometimes seems to take to catch up.
On a link that is particularly bad, this ability to force a retransmit
immediately when the link comes up could be one of the only ways to get the
traffic through. I've had times on particularly bad connections where I
could establish a connection, but then it would "flake out" after a bit and
I'd have to start over. In the time while the connection is up, it would
be nice to get as much traffic through as possible. If the connection is
good for a lower time than the TCP timeout on the session, then that
session has a pretty bad chance of being able to resume where it left off.
Ideally, it would be possible to selectively trigger the retransmit
for TCP sessions that are routed over a single particular link, though
doing a retransmit of all sessions would probably be fine for many
applications. You probably also want the option to retransmit only
sessions that have already done a retransmission and are in back-off
waiting to retransmit yet again. However, it would be nice to also have
the option to retransmit packets for all sessions, or possibly based on
time, say sessions have have not had activity in the last N milliseconds...
I did some searches on the Googlenet and Linux documentation and
couldn't find any way to cause this to happen as I describe.
If you could take care of that, Lazyweb, that'd be super. :-)
(Post Reply)
(Post Reply)