funny TCP?

Viljar Tulit (viljar@ats.cyber.ee)
Thu, 28 May 1998 23:10:16 +0300 (EET DST)


Hi,
I found, that ftp transfer from Win95 to Linux got very slow.
About 1Mbyte will go OK, but then speed goes down.

Dump:
sats - Linux 2.1.103, wuftpd server.
padavere - Win95 OSR2, Win ftp client.

22:23:44.064273 padavere.1278 > sats.ftp: P 619313513:619313538(25) ack 2339869914 win 8221 (DF) (ttl 32, id 21041)
22:23:44.068786 sats.ftp > padavere.1278: P 1:31(30) ack 25 win 32120 (DF) (ttl 64, id 46839)
22:23:44.072450 padavere.1278 > sats.ftp: P 25:42(17) ack 31 win 8191 (DF) (ttl 32, id 21297)
22:23:44.077791 sats.1372 > padavere.1279: S 2384828647:2384828647(0) win 32120 <mss 1460> (ttl 64, id 46844)
22:23:44.078010 padavere.1279 > sats.1372: S 619356201:619356201(0) ack 2384828648 win 8760 <mss 1460> (DF) (ttl 32, id 21553)
22:23:44.078531 sats.1372 > padavere.1279: . ack 1 win 32120 (ttl 64, id 46846)
22:23:44.078797 sats.ftp > padavere.1278: P 31:87(56) ack 42 win 32120 (DF) (ttl 64, id 46847)
22:23:44.124673 padavere.1279 > sats.1372: . 1:1461(1460) ack 1 win 8760 (DF) (ttl 32, id 21809)
22:23:44.126610 sats.1372 > padavere.1279: . ack 1461 win 30660 (ttl 64, id 46849)
22:23:44.126973 padavere.1279 > sats.1372: . 1461:2921(1460) ack 1 win 8760 (DF) (ttl 32, id 22065)
22:23:44.127125 padavere.1279 > sats.1372: P 2921:4381(1460) ack 1 win 8760 (DF) (ttl 32, id 22321)
22:23:44.130267 sats.1372 > padavere.1279: . ack 4381 win 30660 (ttl 64, id 46851)
22:23:44.130655 padavere.1279 > sats.1372: . 4381:5841(1460) ack 1 win 8760 (DF) (ttl 32, id 22577)
22:23:44.130779 padavere.1279 > sats.1372: . 5841:7301(1460) ack 1 win 8760 (DF) (ttl 32, id 22833)
22:23:44.130902 padavere.1279 > sats.1372: P 7301:8761(1460) ack 1 win 8760 (DF) (ttl 32, id 23089)
22:23:44.134942 sats.1372 > padavere.1279: . ack 7301 win 30660 (ttl 64, id 46852)
22:23:44.135286 padavere.1279 > sats.1372: . 8761:10221(1460) ack 1 win 8760 (DF) (ttl 32, id 23345)
22:23:44.135397 padavere.1279 > sats.1372: . 10221:11681(1460) ack 1 win 8760 (DF) (ttl 32, id 23601)
22:23:44.135441 padavere.1279 > sats.1372: P 11681:12289(608) ack 1 win 8760 (DF) (ttl 32, id 23857)
22:23:44.138929 sats.1372 > padavere.1279: . ack 10221 win 30660 (ttl 64, id 46853)
22:23:44.139341 padavere.1279 > sats.1372: . 12289:13749(1460) ack 1 win 8760 (DF) (ttl 32, id 24113)
22:23:44.139459 padavere.1279 > sats.1372: . 13749:15209(1460) ack 1 win 8760 (DF) (ttl 32, id 24369)
22:23:44.139554 padavere.1279 > sats.1372: P 15209:16385(1176) ack 1 win 8760 (DF) (ttl 32, id 24625)
22:23:44.143379 sats.1372 > padavere.1279: . ack 13749 win 30660 (ttl 64, id 46854)

OK, so far normal data flow, lots of it deleted...

22:23:48.761714 padavere.1279 > sats.1372: . 3491253:3492713(1460) ack 1 win 8760 (DF) (ttl 32, id 21307)
22:23:48.761808 padavere.1279 > sats.1372: P 3492713:3493889(1176) ack 1 win 8760 (DF) (ttl 32, id 21563)
22:23:48.762381 padavere.1279 > sats.1372: . 3493889:3495349(1460) ack 1 win 8760 (DF) (ttl 32, id 21819)
22:23:48.762500 padavere.1279 > sats.1372: . 3495349:3496809(1460) ack 1 win 8760 (DF) (ttl 32, id 22075)
22:23:48.762609 padavere.1279 > sats.1372: P 3496809:3497985(1176) ack 1 win 8760 (DF) (ttl 32, id 22331)
22:23:48.765754 sats.1372 > padavere.1279: . ack 3492713 win 30660 (ttl 64, id 49549)
22:23:48.769309 sats.1372 > padavere.1279: . ack 3496809 win 30660 (ttl 64, id 49550)
22:23:48.774290 padavere.1279 > sats.1372: . 3497985:3499445(1460) ack 1 win 8760 (DF) (ttl 32, id 22587)
22:23:48.774405 padavere.1279 > sats.1372: . 3499445:3500905(1460) ack 1 win 8760 (DF) (ttl 32, id 22843)
22:23:48.774499 padavere.1279 > sats.1372: P 3500905:3502081(1176) ack 1 win 8760 (DF) (ttl 32, id 23099)
22:23:48.775053 padavere.1279 > sats.1372: . 3502081:3503541(1460) ack 1 win 8760 (DF) (ttl 32, id 23355)
22:23:48.775172 padavere.1279 > sats.1372: . 3503541:3505001(1460) ack 1 win 8760 (DF) (ttl 32, id 23611)
22:23:48.775265 padavere.1279 > sats.1372: P 3505001:3506177(1176) ack 1 win 8760 (DF) (ttl 32, id 23867)
22:23:48.778331 sats.1372 > padavere.1279: . ack 3500905 win 29200 (ttl 64, id 49551)

now win in linux ack packet will go smaller... until 0?

22:23:48.781622 padavere.1279 > sats.1372: . 3506177:3507637(1460) ack 1 win 8760 (DF) (ttl 32, id 24123)
22:23:48.781738 padavere.1279 > sats.1372: . 3507637:3509097(1460) ack 1 win 8760 (DF) (ttl 32, id 24379)
22:23:48.781832 padavere.1279 > sats.1372: P 3509097:3510273(1176) ack 1 win 8760 (DF) (ttl 32, id 24635)
22:23:48.782053 sats.1372 > padavere.1279: . ack 3505001 win 26280 (ttl 64, id 49552)
22:23:48.785748 sats.1372 > padavere.1279: . ack 3509097 win 24820 (ttl 64, id 49553)
22:23:48.791475 padavere.1279 > sats.1372: . 3510273:3511733(1460) ack 1 win 8760 (DF) (ttl 32, id 24891)
22:23:48.791591 padavere.1279 > sats.1372: . 3511733:3513193(1460) ack 1 win 8760 (DF) (ttl 32, id 25147)
22:23:48.791685 padavere.1279 > sats.1372: P 3513193:3514369(1176) ack 1 win 8760 (DF) (ttl 32, id 25403)
22:23:48.792238 padavere.1279 > sats.1372: . 3514369:3515829(1460) ack 1 win 8760 (DF) (ttl 32, id 25659)
22:23:48.792351 padavere.1279 > sats.1372: . 3515829:3517289(1460) ack 1 win 8760 (DF) (ttl 32, id 25915)
22:23:48.792460 padavere.1279 > sats.1372: P 3517289:3518465(1176) ack 1 win 8760 (DF) (ttl 32, id 26171)
22:23:48.795696 sats.1372 > padavere.1279: . ack 3513193 win 21900 (ttl 64, id 49554)
..snap...
22:23:48.830325 sats.1372 > padavere.1279: . ack 3537769 win 7300 (ttl 64, id 49560)
22:23:48.830379 sats.1372 > padavere.1279: . ack 3541865 win 5840 (ttl 64, id 49561)
22:23:48.832851 padavere.1279 > sats.1372: . 3543041:3544501(1460) ack 1 win 8760 (DF) (ttl 32, id 31035)
22:23:48.832971 padavere.1279 > sats.1372: . 3544501:3545961(1460) ack 1 win 8760 (DF) (ttl 32, id 31291)
22:23:48.833065 padavere.1279 > sats.1372: P 3545961:3547137(1176) ack 1 win 8760 (DF) (ttl 32, id 31547)
22:23:48.836886 sats.1372 > padavere.1279: . ack 3545961 win 2920 (ttl 64, id 49562)
22:23:48.837226 padavere.1279 > sats.1372: . 3547137:3548597(1460) ack 1 win 8760 (DF) (ttl 32, id 31803)
22:23:48.839118 sats.1372 > padavere.1279: . ack 3548597 win 1460 (ttl 64, id 49563)
22:23:48.839480 padavere.1279 > sats.1372: . 3548597:3550057(1460) ack 1 win 8760 (DF) (ttl 32, id 32059)
22:23:48.841390 sats.1372 > padavere.1279: . ack 3550057 win 1460 (ttl 64, id 49564)
22:23:48.841704 padavere.1279 > sats.1372: P 3550057:3551517(1460) ack 1 win 8760 (DF) (ttl 32, id 32315)
22:23:48.861276 sats.1372 > padavere.1279: . ack 3551517 win 0 (ttl 64, id 49565)
22:23:48.969945 sats.1372 > padavere.1279: . ack 3551517 win 1460 (ttl 64, id 49568)
22:23:48.970273 padavere.1279 > sats.1372: . 3551517:3552977(1460) ack 1 win 8760 (DF) (ttl 32, id 32571)
22:23:48.970285 sats.1372 > padavere.1279: . ack 3551517 win 2920 (ttl 64, id 49569)
22:23:48.970535 padavere.1279 > sats.1372: . 3552977:3554437(1460) ack 1 win 8760 (DF) (ttl 32, id 32827)
22:23:48.973453 sats.1372 > padavere.1279: . ack 3554437 win 1460 (ttl 64, id 49572)
22:23:48.973737 padavere.1279 > sats.1372: P 3554437:3555897(1460) ack 1 win 8760 (DF) (ttl 32, id 33083)
22:23:48.975357 sats.1372 > padavere.1279: . ack 3554437 win 1460 (ttl 64, id 49580)

and so on. win will be 0 ... 65535, and data transfer over 100Mb ethernet 15 kbytes sec?

bug? (linux? win95?) feature?

22:23:48.975410 sats.1372 > padavere.1279: . ack 3554437 win 2920 (ttl 64, id 49581)
22:23:48.975662 padavere.1279 > sats.1372: . 3555897:3557357(1460) ack 1 win 8760 (DF) (ttl 32, id 33339)
22:23:48.975979 sats.1372 > padavere.1279: . ack 3555897 win 2920 (ttl 64, id 49582)
22:23:48.976288 padavere.1279 > sats.1372: . 3557357:3558817(1460) ack 1 win 8760 (DF) (ttl 32, id 33595)
22:23:48.978518 sats.1372 > padavere.1279: . ack 3557357 win 4380 (ttl 64, id 49583)
22:23:48.978846 padavere.1279 > sats.1372: P 3558817:3560277(1460) ack 1 win 8760 (DF) (ttl 32, id 33851)
22:23:48.978960 padavere.1279 > sats.1372: . 3560277:3561737(1460) ack 1 win 8760 (DF) (ttl 32, id 34107)
22:23:48.981770 sats.1372 > padavere.1279: . ack 3560277 win 7300 (ttl 64, id 49590)
22:23:48.982069 padavere.1279 > sats.1372: . 3561737:3563197(1460) ack 1 win 8760 (DF) (ttl 32, id 34363)
22:23:48.982090 padavere.1279 > sats.1372: P 3563197:3563521(324) ack 1 win 8760 (DF) (ttl 32, id 34619)
22:23:48.983776 padavere.1279 > sats.1372: . 3563521:3564981(1460) ack 1 win 8760 (DF) (ttl 32, id 34875)
22:23:48.983876 padavere.1279 > sats.1372: . 3564981:3566441(1460) ack 1 win 8760 (DF) (ttl 32, id 35131)
22:23:48.984220 sats.1372 > padavere.1279: . ack 3563197 win 11680 (ttl 64, id 49595)
22:23:48.984691 padavere.1279 > sats.1372: P 3566441:3567901(1460) ack 1 win 8760 (DF) (ttl 32, id 35387)
22:23:48.984811 padavere.1279 > sats.1372: . 3567901:3569361(1460) ack 1 win 8760 (DF) (ttl 32, id 35643)
22:23:48.984935 padavere.1279 > sats.1372: . 3569361:3570821(1460) ack 1 win 8760 (DF) (ttl 32, id 35899)
22:23:48.985003 padavere.1279 > sats.1372: P 3570821:3571713(892) ack 1 win 8760 (DF) (ttl 32, id 36155)
22:23:48.989375 sats.1372 > padavere.1279: . ack 3566441 win 13140 (ttl 64, id 49600)
22:23:48.991631 sats.1372 > padavere.1279: . ack 3569361 win 13140 (ttl 64, id 49603)
22:23:48..997652 padavere.1279 > sats.1372: . 3571713:3573173(1460) ack 1 win 8760 (DF) (ttl 32, id 36411)
22:23:48.997771 padavere.1279 > sats.1372: . 3573173:3574633(1460) ack 1 win 8760 (DF) (ttl 32, id 36667)
22:23:48.997868 padavere.1279 > sats.1372: P 3574633:3575809(1176) ack 1 win 8760 (DF) (ttl 32, id 36923)
22:23:48.998446 padavere.1279 > sats.1372: . 3575809:3577269(1460) ack 1 win 8760 (DF) (ttl 32, id 37179)
22:23:48.998563 padavere.1279 > sats.1372: . 3577269:3578729(1460) ack 1 win 8760 (DF) (ttl 32, id 37435)
22:23:48.998656 padavere.1279 > sats.1372: P 3578729:3579905(1176) ack 1 win 8760 (DF) (ttl 32, id 37691)
22:23:49.005544 sats.1372 > padavere.1279: . ack 3573173 win 23360 (ttl 64, id 49617)
22:23:49.005584 sats.1372 > padavere.1279: . ack 3577269 win 23360 (ttl 64, id 49620)

Viljar.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu