TCP Connections hangs - Sequence Number decremented

From: Christoph Heine (atom@reaktor.hadiko.de)
Date: Mon Aug 11 2003 - 08:20:43 EST


Hi,

I've a Problem with some TCP Connections on IPv6. The Connection
suddenly hangs and after some time there is a "Connection reset by
peer". The problem shows up when using rsync. The Kernel Version is
2.4.21-xfs.

Here a dump with tethereal on the intersting part of the connection.
I've the change the hostnames involved to "foo" and "bar", while "bar"
is the local host running 2.4.21-xfs.

[ looks like bar has missed 3183058164 ]

20493 107.874144 foo -> bar TCP rsync > 43084 [ACK] Seq=3183092436 Ack=3636551868 Win=0 Len=1408
20494 107.874159 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551868 Ack=3183058164 Win=50688 Len=0[Short Frame]
20495 107.874150 foo -> bar TCP rsync > 43084 [ACK] Seq=3183093844 Ack=3636551868 Win=0 Len=20
20496 107.874167 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551868 Ack=3183058164 Win=50688 Len=0[Short Frame]
20497 107.879092 foo -> bar TCP rsync > 43084 [ACK] Seq=3183093864 Ack=3636551868 Win=0 Len=1408
20498 107.879107 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551868 Ack=3183058164 Win=50688 Len=0[Short Frame]
20499 107.879098 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095272 Ack=3636551868 Win=0 Len=20
20500 107.879115 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551868 Ack=3183058164 Win=50688 Len=0[Short Frame]

[ now foo sends 3183058164 ]

20501 108.097485 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20502 108.637482 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408

[ but bar still wants it and decrementes the Sequence Number. WTF?]

20503 108.869568 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20504 108.910164 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20505 109.717520 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20506 110.909585 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20507 110.949344 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20508 111.877766 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20509 114.939611 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20510 114.979986 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20511 116.197930 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20512 122.979668 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20513 123.019675 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20514 124.838756 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20515 139.019753 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20516 139.060408 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20517 142.120094 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20518 171.059942 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20519 171.100208 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20520 176.685794 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20521 235.100317 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20522 235.141199 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20523 245.808749 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20524 355.141019 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20525 355.181162 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20526 365.818884 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408
20527 475.181719 bar -> foo TCP 43084 > rsync [ACK] Seq=3636551867 Ack=3183058164 Win=50688 Len=0[Short Frame]
20528 475.222354 foo -> bar TCP rsync > 43084 [ACK] Seq=3183095292 Ack=3636551868 Win=0 Len=0
20529 485.828516 foo -> bar TCP rsync > 43084 [ACK] Seq=3183058164 Ack=3636551868 Win=0 Len=1408

[ This goes on for some time and then the connection gets aborted ]

Please let me know if you need more informations about this connection
or the hosts involded or - even better - let me know about a patch or
something else, that fixes it.

Bye,
Christoph

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html