How to accelerate tcp retransmition

From: leno soff
Date: Tue Jan 24 2012 - 03:58:30 EST


Hello everyone,
I have a lot of client, say C1, C2, .. Cn, which route packets to
my servers through router R. But R will drop 70% - 90% _ non-SYN _
packets from clients to Server.

The clients and server work like http client and server, sending a
request, wating for the response.

When router R drop the request-like packets(without SYN flag, of
cause), the clients retransmit with icsk_backoff++; They usually
should wait 15 seconds+ (1+2+4+8), and sometimes more or just timeout.

So, my question is:

Is there any way in _server_ side, to accelerate the
retransmition like accelerating slow-start. I tried SO_KEEPALIVE in
server, interval == 1 second or less, I assume the keepalive ack will
accelerate the retransmition, , but it does not work:

Flags [P.], seq 1:314, ack 1. ----------------client request,
which is lost
Flags [.], ack 1, win 905, length 0 --- server keepalive ack
Flags [.], ack 1, win 115, length 0 --- client responds ack
.... A lot keepalive and response.

The client timeout because of RTO, why doesn't retransmit the
request packet but just an ack without data when it sees keepalive ack
?


Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/