RE: TCP wierdness (2.2.3)

Giuliano Procida (Giuliano.Procida@Madge.com)
Wed, 31 Mar 1999 11:38:00 +0100


OK. I am now on 2.2.4 plus the posted FIN|ACK patch posted here. Instead
of a fairly indefinite ping-pong at CLOSE I get the following behaviour:

There seems to be bugs in both Linux and the remote stack.

11:09:00.838303 196.168.5.51.1030 > 196.168.5.50.telnet: S
711963933:711963933(0) win 32120 <mss 1460,sackOK,timestamp 7507580
0,nop,wscale 0> (DF)
11:09:00.852001 196.168.5.50.telnet > 196.168.5.51.1030: S 135:135(0) ack
711963934 win 512
11:09:00.852757 196.168.5.51.1030 > 196.168.5.50.telnet: . ack 1 win 32120
(DF)
[snip]
11:09:02.472001 196.168.5.50.telnet > 196.168.5.51.1030: P 140:141(1) ack 56
win 512
11:09:02.492042 196.168.5.51.1030 > 196.168.5.50.telnet: . ack 141 win 32120
(DF)
11:09:02.633148 196.168.5.51.1030 > 196.168.5.50.telnet: P 56:58(2) ack 141
win 32120 (DF)
11:09:02.642001 196.168.5.50.telnet > 196.168.5.51.1030: . ack 58 win 512
# remote telnetd CLOSES, stack sends FIN
11:09:02.762001 196.168.5.50.telnet > 196.168.5.51.1030: F 141:141(0) ack 58
win 512
# linux stack ACKs the FIN
11:09:02.764349 196.168.5.51.1030 > 196.168.5.50.telnet: . ack 142 win 32120
(DF)
# local client CLOSES, linux sends FIN
11:09:02.765450 196.168.5.51.1030 > 196.168.5.50.telnet: F 58:58(0) ack 142
win 32120 (DF)
# remote stack _fails_ to ACK the FIN (probable bug here!), linux should
retransmit
11:09:02.832001 196.168.5.50.telnet > 196.168.5.51.1030: . ack 58 win 512
# linux stack _fails_ to resend FIN (bug??)
11:09:02.834915 196.168.5.51.1030 > 196.168.5.50.telnet: . ack 142 win 32120
(DF)
# remote ditto
11:09:02.862001 196.168.5.50.telnet > 196.168.5.51.1030: . ack 58 win 512
# linux ditto
11:09:02.864636 196.168.5.51.1030 > 196.168.5.50.telnet: . ack 142 win 32120
(DF)
# remote stack resends FIN
11:09:02.882001 196.168.5.50.telnet > 196.168.5.51.1030: F 141:141(0) ack 59
win 512
# and gets around to ACKing linux's FIN
11:09:02.912001 196.168.5.50.telnet > 196.168.5.51.1030: . ack 59 win 512
# linux does not like this and RSTs
11:09:02.916513 196.168.5.51.1030 > 196.168.5.50.telnet: R
711963992:711963992(0) win 0
11:09:02.942001 196.168.5.50.telnet > 196.168.5.51.1030: . ack 59 win 512
11:09:02.943217 196.168.5.51.1030 > 196.168.5.50.telnet: R
711963992:711963992(0) win 0

Giuliano.

ps am reading Tannebaum here for some illumination...

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