I think I have solved the mystery. But I can offer you only a
workaround, to turn off selective ACK support.

Here is one event in a tcpdump file that I received a few hours
ago (full context is below the signature):

    10:49:57.930285 80.74.176.142.25 > 217.11.85.59.2528: . ack
        1998901 win 32767 <nop,nop,sack sack 1 {1994821:1996181} > (DF)

After this, things go bad very quickly.

What happens is that the receiver (80.74.176.142) says:

    I have received all data up to offset 1998901

But the receiver (80.74.176.142) also sends a selective ACK for
offset range 1994821:1996181, that is, for data that it has already
acknowledged.

The sender (217.11.85.59) then goes crazy and keeps retransmitting
the data in 1994821:1996181 until the connection times out.

All this happens on a connection with an insane packet loss rate.

Of course it is possible that there is a firewall in-between that
is screwing things up.  Otherwise, you may want to advise your
vendor(s) of a problem in the receiver's tcp stack, and in the
sender's handling of an incorrect receiver response.

        Wietse

The context of the bogus selective ACK, and consequent retransmission
of already acknowleged data:

10:49:45.752605 217.11.85.59.2528 > 80.74.176.142.25: . 1992101:1993461(1360) 
ack 195 win 65341 (DF)
10:49:45.752622 80.74.176.142.25 > 217.11.85.59.2528: . ack 1989381 win 32767 
<nop,nop,sack sack 1 {1990741:1993461} > (DF)
10:49:45.794754 217.11.85.59.2528 > 80.74.176.142.25: . 1993461:1994821(1360) 
ack 195 win 65341 (DF)
10:49:45.794789 80.74.176.142.25 > 217.11.85.59.2528: . ack 1989381 win 32767 
<nop,nop,sack sack 1 {1990741:1994821} > (DF)
10:49:45.882901 217.11.85.59.2528 > 80.74.176.142.25: . 1989381:1990741(1360) 
ack 195 win 65341 (DF)
10:49:45.882950 80.74.176.142.25 > 217.11.85.59.2528: . ack 1994821 win 32767 
(DF)
10:49:45.926602 217.11.85.59.2528 > 80.74.176.142.25: . 1996181:1997541(1360) 
ack 195 win 65341 (DF)
10:49:45.926653 80.74.176.142.25 > 217.11.85.59.2528: . ack 1994821 win 32767 
<nop,nop,sack sack 1 {1996181:1997541} > (DF)
10:49:46.019372 217.11.85.59.2528 > 80.74.176.142.25: . 1997541:1998901(1360) 
ack 195 win 65341 (DF)
10:49:46.019399 80.74.176.142.25 > 217.11.85.59.2528: . ack 1994821 win 32767 
<nop,nop,sack sack 1 {1996181:1998901} > (DF)
10:49:46.664886 217.11.85.59.2528 > 80.74.176.142.25: . 1994821:1996181(1360) 
ack 195 win 65341 (DF)
10:49:46.664941 80.74.176.142.25 > 217.11.85.59.2528: . ack 1998901 win 32767 
(DF)
10:49:48.311430 217.11.85.59.2528 > 80.74.176.142.25: . 1994821:1996181(1360) 
ack 195 win 65341 (DF)
10:49:48.311472 80.74.176.142.25 > 217.11.85.59.2528: . ack 1998901 win 32767 
<nop,nop,sack sack 1 {1994821:1996181} > (DF)
10:49:51.587176 217.11.85.59.2528 > 80.74.176.142.25: . 1994821:1996181(1360) 
ack 195 win 65341 (DF)
10:49:51.587210 80.74.176.142.25 > 217.11.85.59.2528: . ack 1998901 win 32767 
<nop,nop,sack sack 1 {1994821:1996181} > (DF)
10:49:57.930259 217.11.85.59.2528 > 80.74.176.142.25: . 1994821:1996181(1360) 
ack 195 win 65341 (DF)
10:49:57.930285 80.74.176.142.25 > 217.11.85.59.2528: . ack 1998901 win 32767 
<nop,nop,sack sack 1 {1994821:1996181} > (DF)
10:50:10.745498 217.11.85.59.2528 > 80.74.176.142.25: . 1994821:1996181(1360) 
ack 195 win 65341 (DF)
10:50:10.745529 80.74.176.142.25 > 217.11.85.59.2528: . ack 1998901 win 32767 
<nop,nop,sack sack 1 {1994821:1996181} > (DF)
10:54:46.682824 80.74.176.142.25 > 217.11.85.59.2528: P 195:244(49) ack 1998901 
win 32767 (DF)
10:54:46.683853 80.74.176.142.25 > 217.11.85.59.2528: F 244:244(0) ack 1998901 
win 32767 (DF)
10:54:46.974764 80.74.176.142.25 > 217.11.85.59.2528: FP 195:244(49) ack 
1998901 win 32767 (DF)
10:54:47.558753 80.74.176.142.25 > 217.11.85.59.2528: FP 195:244(49) ack 
1998901 win 32767 (DF)
10:54:48.726736 80.74.176.142.25 > 217.11.85.59.2528: FP 195:244(49) ack 
1998901 win 32767 (DF)
10:54:51.062746 80.74.176.142.25 > 217.11.85.59.2528: FP 195:244(49) ack 
1998901 win 32767 (DF)
10:54:55.734845 80.74.176.142.25 > 217.11.85.59.2528: FP 195:244(49) ack 
1998901 win 32767 (DF)
10:55:05.083063 80.74.176.142.25 > 217.11.85.59.2528: FP 195:244(49) ack 
1998901 win 32767 (DF)
10:55:23.771507 80.74.176.142.25 > 217.11.85.59.2528: FP 195:244(49) ack 
1998901 win 32767 (DF)
10:56:01.148190 80.74.176.142.25 > 217.11.85.59.2528: FP 195:244(49) ack 
1998901 win 32767 (DF)

Reply via email to