Messages in this thread | | | Date | Sun, 31 Mar 1996 15:46:50 -0800 | From | Jason Merrill <> | Subject | Re: Slow PPP - caused by duplicate packets? |
| |
>>>>> Linus Torvalds <torvalds@cs.helsinki.fi> writes:
> On Sat, 30 Mar 1996, David Monro wrote:
>> So I grabbed tcpdump and had a look at the packets, and there seem to be >> duplicate packets on my link! At the end of this mail, you will find the >> tcpdump output for one screenful of text. staff is the remote server >> machine, running Solaris 2.5. Fuzzbox is the local Linux box, running >> 1.3.79.
> Umm.. The tcpdump info you include would seem to indicate that linux is > doing everything correctly, and that the Solaris box is doing something > stupid.
> However, I can't imagine that Solaris started doing stupid things for > everybody in the 1.3.7x timeframe and worked fine before that, so there > must be something we're not seeing here. Does anybody have access to > tcpdump at the _other_ end?
I am seeing a similar problem between two Linux boxes, python and yorick. python is my home machine, a P90 running 1.3.80. yorick is the machine on my desk at work, a P133 also running 1.3.80. I'm dialed up to a Livingston Portmaster using CSLIP. The below is what I get from tcpdump on both ends from typing 'jason' quickly.
The problem appears to begin when python sends a packet twice to change the ack rather than sending an ack without the packet (bug?). After that, each host acks twice and sends the packet twice. I presume that sending a packet twice in response to two acks is a bug...
From python:
[root@python tcpdump-3.0.2]# ./tcpdump port 1023 tcpdump: listening on sl0 16:22:03.877276 python.cygnus.com.1023 > yorick.cygnus.com.login: P 4196702082:4196702083(1) ack 4196806364 win 29648 (DF) [tos 0x10] 16:22:04.007276 yorick.cygnus.com.login > python.cygnus.com.1023: P 1:2(1) ack 1 win 29634 (DF) [tos 0x10] 16:22:04.007276 python.cygnus.com.1023 > yorick.cygnus.com.login: P 1:2(1) ack 1 win 29648 (DF) [tos 0x10] 16:22:04.197276 python.cygnus.com.1023 > yorick.cygnus.com.login: P 1:2(1) ack 2 win 29647 (DF) [tos 0x10] 16:22:04.337276 yorick.cygnus.com.login > python.cygnus.com.1023: P 2:3(1) ack 2 win 29633 (DF) [tos 0x10] 16:22:04.337276 python.cygnus.com.1023 > yorick.cygnus.com.login: P 2:5(3) ack 2 win 29647 (DF) [tos 0x10] 16:22:04.337276 yorick.cygnus.com.login > python.cygnus.com.1023: . ack 2 win 29633 [tos 0x10] 16:22:04.727276 python.cygnus.com.1023 > yorick.cygnus.com.login: P 2:5(3) ack 3 win 29646 (DF) [tos 0x10] 16:22:04.847276 yorick.cygnus.com.login > python.cygnus.com.1023: P 3:6(3) ack 5 win 29630 (DF) [tos 0x10] 16:22:04.857276 yorick.cygnus.com.login > python.cygnus.com.1023: . ack 5 win 29630 [tos 0x10] 16:22:05.217276 yorick.cygnus.com.login > python.cygnus.com.1023: . ack 5 win 29630 [tos 0x10] 16:22:05.637276 yorick.cygnus.com.login > python.cygnus.com.1023: P 3:6(3) ack 5 win 29630 (DF) [tos 0x10] 16:22:05.637276 python.cygnus.com.1023 > yorick.cygnus.com.login: . ack 6 win 29643 [tos 0x10] 16:22:05.727276 python.cygnus.com.1023 > yorick.cygnus.com.login: . ack 6 win 29643 [tos 0x10]
14 packets received by filter 0 packets dropped by kernel
From yorick:
# ./tcpdump host python and port 1023 tcpdump: listening on eth0 16:22:03.983909 python.cygnus.com.1023 > yorick.cygnus.com.login: P 4196702082:4196702083(1) ack 4196806364 win 29648 (DF) [tos 0x10] 16:22:03.983909 yorick.cygnus.com.login > python.cygnus.com.1023: P 1:2(1) ack 1 win 29634 (DF) [tos 0x10] 16:22:04.093923 python.cygnus.com.1023 > yorick.cygnus.com.login: P 1:2(1) ack 1 win 29648 (DF) [tos 0x10] 16:22:04.303950 python.cygnus.com.1023 > yorick.cygnus.com.login: P 1:2(1) ack 2 win 29647 (DF) [tos 0x10] 16:22:04.303950 yorick.cygnus.com.login > python.cygnus.com.1023: P 2:3(1) ack 2 win 29633 (DF) [tos 0x10] 16:22:04.303950 yorick.cygnus.com.login > python.cygnus.com.1023: . ack 2 win 29633 [tos 0x10] 16:22:04.423966 python.cygnus.com.1023 > yorick.cygnus.com.login: P 2:5(3) ack 2 win 29647 (DF) [tos 0x10] 16:22:04.834018 python.cygnus.com.1023 > yorick.cygnus.com.login: P 2:5(3) ack 3 win 29646 (DF) [tos 0x10] 16:22:04.834018 yorick.cygnus.com.login > python.cygnus.com.1023: P 3:6(3) ack 5 win 29630 (DF) [tos 0x10] 16:22:04.834018 yorick.cygnus.com.login > python.cygnus.com.1023: . ack 5 win 29630 [tos 0x10] 16:22:05.174062 yorick.cygnus.com.login > python.cygnus.com.1023: . ack 5 win 29630 [tos 0x10] 16:22:05.614119 yorick.cygnus.com.login > python.cygnus.com.1023: P 3:6(3) ack 5 win 29630 (DF) [tos 0x10] 16:22:05.744136 python.cygnus.com.1023 > yorick.cygnus.com.login: . ack 6 win 29643 [tos 0x10] 16:22:05.844148 python.cygnus.com.1023 > yorick.cygnus.com.login: . ack 6 win 29643 [tos 0x10]
14 packets received by filter 0 packets dropped by kernel
For comparison, here's what I get typing 'jason' to a Sunos 4 host:
[root@python tcpdump-3.0.2]# ./tcpdump host cygnus.com tcpdump: listening on sl0 16:30:13.817276 python.cygnus.com.1041 > cygnus.com.543: P 3226879281:3226879282(1) ack 1275203344 win 29681 (DF) 16:30:13.937276 cygnus.com.543 > python.cygnus.com.1041: P 1:2(1) ack 1 win 4096 16:30:13.937276 python.cygnus.com.1041 > cygnus.com.543: P 1:2(1) ack 1 win 29681 (DF) 16:30:14.117276 cygnus.com.543 > python.cygnus.com.1041: P 2:3(1) ack 2 win 4096 16:30:14.117276 python.cygnus.com.1041 > cygnus.com.543: P 2:5(3) ack 2 win 29680 (DF) 16:30:14.257276 python.cygnus.com.1041 > cygnus.com.543: . ack 3 win 29679 16:30:14.327276 cygnus.com.543 > python.cygnus.com.1041: P 3:6(3) ack 5 win 4096 16:30:14.477276 python.cygnus.com.1041 > cygnus.com.543: . ack 6 win 29676
8 packets received by filter 0 packets dropped by kernel
Jason
| |