Subject: TCP flow control - who can explain?
To: None <tech-net@netbsd.org>
From: Matthias Drochner <drochner@zel459.zel.kfa-juelich.de>
List: tech-net
Date: 08/29/1999 21:37:24
I'm just playing with Gigabit Ethernet -- I've ported FreeBSD's if_ti
driver (will commit soon) and set up a point-to-point connection
between a PC running NetBSD-current and a fast Alpha (XP1000) running
OSF1.
With normal 1.5k frames I get between 10 and 13 MB/s, what is about
I'd expect - the PC is a Pentium/233, and its memory bandwith is not
that great.
With Jumbo frames (mtu 9000) it gets very assymetric. If NetBSD sends
and OSF1 receives, only 40 kB/s get transmitted. The other way -
OSF1 to NetBSD - makes 12.5 MB/s.
I've appended tcpdump logs for both directions. The NetBSD box (134.94.206.140)
seems to wait for the (delayed) acks when it sends, while the Alpha
(134.94.206.130) somehow manages to pump into the wire.
Socket buffer sizes etc. are at their default settings.

Can someone explain what happens here and what I (we) can do to get
better performance?

best regards
Matthias


20:46:20.420610 134.94.206.140.65531 > 134.94.206.130.5001: S 
3966200141:3966200
141(0) win 16384 <mss 8960,nop,wscale 0,nop,nop,timestamp 2765 0>
20:46:20.420850 134.94.206.130.5001 > 134.94.206.140.65531: S 
4294966272:4294966
272(0) ack 3966200142 win 35840 <mss 8960,nop,wscale 0> (DF)
20:46:20.420953 134.94.206.140.65531 > 134.94.206.130.5001: . ack 1 win 17920
20:46:20.422519 134.94.206.140.65531 > 134.94.206.130.5001: P 1:8193(8192) ack 
1
 win 17920
20:46:20.583878 134.94.206.130.5001 > 134.94.206.140.65531: . ack 8193 win 
35840
 (DF)
20:46:20.584073 134.94.206.140.65531 > 134.94.206.130.5001: P 8193:16385(8192) 
a
ck 1 win 17920
20:46:20.683487 134.94.206.130.5001 > 134.94.206.140.65531: . ack 16385 win 
3584
0 (DF)
20:46:20.683682 134.94.206.140.65531 > 134.94.206.130.5001: P 16385:24577(8192)
ack 1 win 17920
20:46:21.081925 134.94.206.130.5001 > 134.94.206.140.65531: . ack 24577 win 
3584
0 (DF)
20:46:21.082134 134.94.206.140.65531 > 134.94.206.130.5001: P 24577:32769(8192)
ack 1 win 17920
20:46:21.281151 134.94.206.130.5001 > 134.94.206.140.65531: . ack 32769 win 
3584
0 (DF)
20:46:21.281412 134.94.206.140.65531 > 134.94.206.130.5001: P 32769:40961(8192)
ack 1 win 17920


21:02:33.002932 134.94.206.130.1046 > 134.94.206.140.5001: S 
208413185:208413185(0) win 3
2768 <mss 8960,nop,wscale 0> (DF)
21:02:33.003519 134.94.206.140.5001 > 134.94.206.130.1046: S 
3038404749:3038404749(0) ack
 208413186 win 16384 <mss 8960,nop,wscale 0>
21:02:33.003652 134.94.206.130.1046 > 134.94.206.140.5001: . ack 1 win 35840 
(DF)
21:02:33.004305 134.94.206.130.1046 > 134.94.206.140.5001: P 1:8193(8192) ack 
1 win 35840
 (DF)
21:02:33.004369 134.94.206.130.1046 > 134.94.206.140.5001: P 8193:16385(8192) 
ack 1 win 3
5840 (DF)
21:02:33.004760 134.94.206.140.5001 > 134.94.206.130.1046: . ack 16385 win 0
21:02:33.006183 134.94.206.140.5001 > 134.94.206.130.1046: . ack 16385 win 9728
21:02:33.006672 134.94.206.130.1046 > 134.94.206.140.5001: . 16385:25345(8960) 
ack 1 win
35840 (DF)
21:02:33.007050 134.94.206.140.5001 > 134.94.206.130.1046: . ack 25345 win 
17152
21:02:33.007523 134.94.206.130.1046 > 134.94.206.140.5001: . 25345:34305(8960) 
ack 1 win
35840 (DF)
21:02:33.007932 134.94.206.140.5001 > 134.94.206.130.1046: . ack 34305 win 
17152
21:02:33.008397 134.94.206.130.1046 > 134.94.206.140.5001: . 34305:43265(8960) 
ack 1 win
35840 (DF)
21:02:33.008774 134.94.206.140.5001 > 134.94.206.130.1046: . ack 43265 win 
17152
21:02:33.009298 134.94.206.130.1046 > 134.94.206.140.5001: . 43265:52225(8960) 
ack 1 win
35840 (DF)