slow tcp with isdn

Gerd Knorr (kraxel@goldbach.isdn.cs.tu-berlin.de)
Mon, 28 Jul 1997 19:48:51 +0200 (MEST)


Hi !

Got my ISDN line today, and have now some problems to get things running.
I can setup the connection, routing and DNS is ok. But TCP connections are
very slow. It seems TCP stalls becauce linux does not send ACK's for
some reason. tcpdump (grep'ed out one ftp transfer) looks like this:

18:43:55.332845 ftp.20 > mybox.1096: S 1720192000:1720192000(0) win 4096 <mss 1460>
18:43:55.332845 mybox.1096 > ftp.20: S 3009949540:3009949540(0) ack 1720192001 win 16352 <mss 1460>
18:43:55.362845 ftp.20 > mybox.1096: . ack 1 win 4096
18:43:56.772845 ftp.20 > mybox.1096: . 1:1461(1460) ack 1 win 4096
18:43:57.102845 mybox.1096 > ftp.20: . ack 1461 win 16352 (DF) [tos 0x8]
18:43:57.312845 ftp.20 > mybox.1096: . 1461:2921(1460) ack 1 win 4096
18:43:57.812845 mybox.1096 > ftp.20: . ack 2921 win 16352 (DF) [tos 0x8]
18:43:58.032845 ftp.20 > mybox.1096: P 2921:4381(1460) ack 1 win 4096
*** I miss a ACK here
18:43:59.932845 ftp.20 > mybox.1096: . 2921:4381(1460) ack 1 win 4096
18:44:00.432845 mybox.1096 > ftp.20: . ack 4381 win 16352 (DF) [tos 0x8]
18:44:00.642845 ftp.20 > mybox.1096: . 4381:5841(1460) ack 1 win 4096
18:44:01.142845 mybox.1096 > ftp.20: . ack 5841 win 16352 (DF) [tos 0x8]
18:44:01.362845 ftp.20 > mybox.1096: . 5841:7301(1460) ack 1 win 4096
18:44:01.552845 ftp.20 > mybox.1096: . 7301:8761(1460) ack 1 win 4096
*** next one
18:44:12.932845 ftp.20 > mybox.1096: . 5841:7301(1460) ack 1 win 4096
18:44:13.432845 mybox.1096 > ftp.20: . ack 7301 win 16352 (DF) [tos 0x8]
18:44:13.632845 ftp.20 > mybox.1096: . 7301:8761(1460) ack 1 win 4096
18:44:13.822845 ftp.20 > mybox.1096: . 8761:10221(1460) ack 1 win 4096
18:44:13.832845 mybox.1096 > ftp.20: . ack 10221 win 16352 (DF) [tos 0x8]
18:44:14.362845 ftp.20 > mybox.1096: . 10221:11681(1460) ack 1 win 4096
*** next
18:44:19.932845 ftp.20 > mybox.1096: . 10221:11681(1460) ack 1 win 4096
18:44:20.432845 mybox.1096 > ftp.20: . ack 11681 win 16352 (DF) [tos 0x8]
...

It seems (to me) that the packages arrive here ok (else tcpdump would'nt
see them, tcpdump runs on the linux box too). So I don't understand why
linux does'nt ack them? Any idea? Can they get lost *after* tcpdump has
seen them? Becauce of a bad checksum or something? How to check this?

Kernel is unpatched 2.0.30-pre2. ISDN-card is a Teles 16.3, running with
the HiSax driver. I use syncPPP with "ipppd version i2.2 patch level
9anubis" (this one comes with SuSE 5.0)

Gerd

Please CC to kraxel@cs.tu-berlin.de, anything else does'nt work reliable
currently...