Re: bin/60443: ftp ASCII transfers are too slow

"Michael van Elst via gnats" <[email protected]>
Newsgroups gmane.os.netbsd.bugs
Message-ID <[email protected]>
The following reply was made to PR bin/60443; it has been noted by GNATS.

From: [email protected] (Michael van Elst)
To: [email protected]
Cc: 
Subject: Re: bin/60443: ftp ASCII transfers are too slow
Date: Mon, 13 Jul 2026 05:32:32 -0000 (UTC)

 [email protected] ("RVP via gnats") writes:
 
 > I don't know how you're getting 35MB/sec w/o any tweaking. Michael, can you try
 > with both server and client on localhost like I did?
 
 
 localhost gets:
 
 ftp> get in.txt
 local: in.txt remote: in.txt
 229 Entering Extended Passive Mode (|||61368|)
 150 Opening ASCII mode data connection for 'in.txt' (306788817 bytes).
 226 Transfer complete.
 312122680 bytes received in 00:12 (23.66 MiB/s)
 
 
 > 04:43:22.966644 IP6 ::1.65425 > ::1.65424: Flags [P.], seq 314369:328705, ack 1, win 4096, options [nop,nop,TS val 7 ecr 7], length 14336
 
 + 200ms
 
 > 04:43:23.166607 IP6 ::1.65424 > ::1.65425: Flags [.], ack 328705, win 4096, options [nop,nop,TS val 7 ecr 7], length 0
 
 + 0ms
 
 > 04:43:23.166636 IP6 ::1.65425 > ::1.65424: Flags [P.], seq 328705:342017, ack 1, win 4096, options [nop,nop,TS val 7 ecr 7], length 13312
 
 + 200ms
 
 > 04:43:23.366620 IP6 ::1.65424 > ::1.65425: Flags [.], ack 342017, win 4096, options [nop,nop,TS val 7 ecr 7], length 0
 
 
 Looks more like the ACKs are delayed and less like Nagle's algorithm. No
 idea what is happening.
 
 
 Here it looks like:
 
 
 
 06:42:26.105109 IP6 ::1.55463 > ::1.55464: Flags [SEW], seq 919247764, win 65535, options [mss 33116,nop,wscale 8,sackOK,TS val 1 ecr 0], length 0
 06:42:26.105243 IP6 ::1.55464 > ::1.55463: Flags [S.E], seq 929186746, ack 919247765, win 65535, options [mss 33116,nop,wscale 8,sackOK,TS val 1 ecr 1], length 0
 06:42:26.105357 IP6 ::1.55463 > ::1.55464: Flags [.], ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.106828 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 1:1025, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 1024
 06:42:26.108062 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 1025:17409, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 16384
 06:42:26.108202 IP6 ::1.55463 > ::1.55464: Flags [.], ack 17409, win 190, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.108391 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 17409:18433, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 1024
 06:42:26.109663 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 18433:34817, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 16384
 06:42:26.109774 IP6 ::1.55463 > ::1.55464: Flags [.], ack 34817, win 122, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.109953 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 34817:35841, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 1024
 06:42:26.111083 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 35841:52225, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 16384
 06:42:26.111189 IP6 ::1.55463 > ::1.55464: Flags [.], ack 52225, win 54, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.111367 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 52225:53249, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 1024
 06:42:26.158231 IP6 ::1.55463 > ::1.55464: Flags [.], ack 53249, win 50, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.274512 IP6 ::1.55463 > ::1.55464: Flags [.], ack 53249, win 182, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.274573 IP6 ::1.55464 > ::1.55463: Flags [.], seq 53249:69633, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 16384
 06:42:26.274624 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 69633:83969, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 14336
 06:42:26.274669 IP6 ::1.55463 > ::1.55464: Flags [.], ack 83969, win 62, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.274734 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 83969:84993, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 1024
 06:42:26.275839 IP6 ::1.55463 > ::1.55464: Flags [.], ack 84993, win 190, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.275905 IP6 ::1.55464 > ::1.55463: Flags [.], seq 84993:109569, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 24576
 06:42:26.275949 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 109569:129025, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 19456
 06:42:26.275988 IP6 ::1.55463 > ::1.55464: Flags [.], ack 129025, win 18, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.276154 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 129025:130049, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 1024
 06:42:26.277550 IP6 ::1.55463 > ::1.55464: Flags [.], ack 130049, win 146, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.277616 IP6 ::1.55464 > ::1.55463: Flags [.], seq 130049:163153, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 33104
 06:42:26.278857 IP6 ::1.55463 > ::1.55464: Flags [.], ack 163153, win 149, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.278976 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 163153:195585, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 32432
 06:42:26.280471 IP6 ::1.55463 > ::1.55464: Flags [.], ack 195585, win 154, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.280526 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 195585:211969, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 16384
 06:42:26.281981 IP6 ::1.55463 > ::1.55464: Flags [.], ack 211969, win 222, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.282060 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 211969:218113, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 6144
 06:42:26.282665 IP6 ::1.55464 > ::1.55463: Flags [.], seq 218113:251217, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 33104
 06:42:26.282715 IP6 ::1.55463 > ::1.55464: Flags [.], ack 251217, win 125, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.282753 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 251217:251905, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 688
 06:42:26.283889 IP6 ::1.55463 > ::1.55464: Flags [.], ack 251905, win 254, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.283963 IP6 ::1.55464 > ::1.55463: Flags [.], seq 251905:285009, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 33104
 06:42:26.284018 IP6 ::1.55464 > ::1.55463: Flags [P.], seq 285009:316417, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 31408
 06:42:26.284067 IP6 ::1.55463 > ::1.55464: Flags [.], ack 316417, win 2, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.285539 IP6 ::1.55463 > ::1.55464: Flags [.], ack 316417, win 134, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.285610 IP6 ::1.55464 > ::1.55463: Flags [.], seq 316417:349521, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 33104
 06:42:26.286814 IP6 ::1.55463 > ::1.55464: Flags [.], ack 349521, win 137, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.286884 IP6 ::1.55464 > ::1.55463: Flags [.], seq 349521:382625, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 33104
 06:42:26.288301 IP6 ::1.55463 > ::1.55464: Flags [.], ack 382625, win 140, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.288398 IP6 ::1.55464 > ::1.55463: Flags [.], seq 382625:415729, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 33104
 06:42:26.289602 IP6 ::1.55463 > ::1.55464: Flags [.], ack 415729, win 142, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.289676 IP6 ::1.55464 > ::1.55463: Flags [.], seq 415729:448833, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 33104
 06:42:26.291107 IP6 ::1.55463 > ::1.55464: Flags [.], ack 448833, win 145, options [nop,nop,TS val 1 ecr 1], length 0
 06:42:26.291176 IP6 ::1.55464 > ::1.55463: Flags [.], seq 448833:481937, ack 1, win 258, options [nop,nop,TS val 1 ecr 1], length 33104
 06:42:26.292396 IP6 ::1.55463 > ::1.55464: Flags [.], ack 481937, win 148, options [nop,nop,TS val 1 ecr 1], length 0
 
 ...
 
 06:42:28.345968 IP6 ::1.55464 > ::1.55463: Flags [.], seq 49301969:49335073, ack 1, win 258, options [nop,nop,TS val 5 ecr 5], length 33104
 06:42:28.346052 IP6 ::1.55464 > ::1.55463: Flags [.], seq 49335073:49368177, ack 1, win 258, options [nop,nop,TS val 5 ecr 5], length 33104
 06:42:28.346108 IP6 ::1.55463 > ::1.55464: Flags [.], ack 49368177, win 41, options [nop,nop,TS val 5 ecr 5], length 0
 06:42:28.348542 IP6 ::1.55463 > ::1.55464: Flags [.], ack 49368177, win 301, options [nop,nop,TS val 5 ecr 5], length 0
 06:42:28.348625 IP6 ::1.55464 > ::1.55463: Flags [.], seq 49368177:49401281, ack 1, win 258, options [nop,nop,TS val 5 ecr 5], length 33104
 06:42:28.348701 IP6 ::1.55464 > ::1.55463: Flags [.], seq 49401281:49434385, ack 1, win 258, options [nop,nop,TS val 5 ecr 5], length 33104
 06:42:28.348752 IP6 ::1.55463 > ::1.55464: Flags [.], ack 49434385, win 43, options [nop,nop,TS val 5 ecr 5], length 0
 06:42:28.351214 IP6 ::1.55463 > ::1.55464: Flags [.], ack 49434385, win 303, options [nop,nop,TS val 5 ecr 5], length 0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.