From: Rob van Nieuwkerk <robn@verdi.et.tudelft.nl>
Subject: 2.0.34 BUG: TCP KeepAlive processing
To: alan@lxorguk.ukuu.org.uk
Date: Sun, 7 Jun 1998 12:48:20 +0200 (MET DST)
Hi Alan,
I think that there is a bug in the 2.0.34 handling of (at least) BSD
type TCP KeepAlive probing. The symptom is that a SSH session from an
Ultrix to Linux machine gets aborted after some time of inactivity.
Below are 2 tcpdump traces. In the first one you can see that 2.0.34
does not ack the probes from the Ultrix machine. In the the second one
you can see that it works OK in 2.0.33.
This change in behaviour is related to a change in net/ipv4/tcp_input.c:
the last statement of tcp_ack() was changed from "return 1;" to
"return 0;" in 2.0.34 (line 1728). Changing it back to the 2.0.33
one gives back the wanted behaviour.
Greetings,
Rob van Nieuwkerk
verdi = Linux-2.0.34, moondawn = Ultrix Worksystem V2.1 (Rev. 14):
------------------------------------------------------------------
11:14:44.599288 verdi.et.tudelft.nl.1022 > moondawn.et.tudelft.nl.ssh: P 684:704(20) ack 2052 win 32696 (DF) [tos 0x10]
11:14:44.849316 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: P 2052:2072(20) ack 704 win 4096
11:14:44.869318 verdi.et.tudelft.nl.1022 > moondawn.et.tudelft.nl.ssh: . ack 2072 win 32696 (DF) [tos 0x10]
11:14:50.739968 verdi.et.tudelft.nl.1022 > moondawn.et.tudelft.nl.ssh: P 704:724(20) ack 2072 win 32696 (DF) [tos 0x10]
11:14:50.989996 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: P 2072:2092(20) ack 724 win 4096
11:14:51.009998 verdi.et.tudelft.nl.1022 > moondawn.et.tudelft.nl.ssh: . ack 2092 win 32696 (DF) [tos 0x10]
11:14:51.150014 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: P 2092:2200(108) ack 724 win 4096
11:14:51.170016 verdi.et.tudelft.nl.1022 > moondawn.et.tudelft.nl.ssh: . ack 2200 win 32696 (DF) [tos 0x10]
**** start of moondawn->verdi KeepAlive probes (verdi doesn't respond)
11:16:06.098315 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: . 2199:2200(1) ack 723 win 4096
11:17:21.096624 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: . 2199:2200(1) ack 723 win 4096
11:18:36.104937 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: . 2199:2200(1) ack 723 win 4096
11:19:51.093249 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: . 2199:2200(1) ack 723 win 4096
11:21:06.111566 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: . 2199:2200(1) ack 723 win 4096
11:22:21.099883 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: . 2199:2200(1) ack 723 win 4096
11:23:36.108203 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: . 2199:2200(1) ack 723 win 4096
11:24:51.106525 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: . 2199:2200(1) ack 723 win 4096
11:26:06.114849 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1022: R 2200:2200(0) ack 724 win 4096
*** moondawn user looses shell on verdi because of "Connection timed out"
verdi = Linux-2.0.33, moondawn = Ultrix Worksystem V2.1 (Rev. 14):
------------------------------------------------------------------
11:39:14.891082 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: P 704:724(20) ack 1992 win 32696 (DF) [tos 0x10]
11:39:14.921085 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1023: P 1992:2012(20) ack 704 win 4096
11:39:14.941088 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: . ack 2012 win 32696 (DF) [tos 0x10]
11:39:14.991094 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: P 724:744(20) ack 2012 win 32696 (DF) [tos 0x10]
11:39:15.131110 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1023: P 2012:2032(20) ack 724 win 4096
11:39:15.151112 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: . ack 2032 win 32696 (DF) [tos 0x10]
11:39:15.251124 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1023: P 2032:2052(20) ack 744 win 4096
11:39:15.271126 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: . ack 2052 win 32696 (DF) [tos 0x10]
11:39:15.401141 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1023: P 2052:2160(108) ack 744 win 4096
11:39:15.421144 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: . ack 2160 win 32696 (DF) [tos 0x10]
**** start of moondawn->verdi KeepAlive probes (verdi responds)
11:40:30.149876 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1023: . 2159:2160(1) ack 743 win 4096
11:40:30.149876 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: . ack 2160 win 32696 (DF) [tos 0x10]
11:41:45.158642 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1023: . 2159:2160(1) ack 743 win 4096
11:41:45.158642 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: . ack 2160 win 32696 (DF) [tos 0x10]
11:42:59.978403 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1023: . 2159:2160(1) ack 743 win 4096
11:42:59.978403 verdi.et.tudelft.nl.1023 > moondawn.et.tudelft.nl.ssh: . ack 2160 win 32696 (DF) [tos 0x10]
11:44:14.987168 moondawn.et.tudelft.nl.ssh > verdi.et.tudelft.nl.1023: . 2159:2160(1) ack 743 win 4096
*** moondawn user can keep shell on verdi forever
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.rutgers.edu