Subject: Re: TCP/IP bug? Unnecessary fragmentation...
To: None <tech-kern@NetBSD.ORG>
From: Chris Csanady <ccsanady@friley01.res.iastate.edu>
List: tech-kern
Date: 05/29/1997 20:08:13
Although this is under FreeBSD, I am wondering if this is a common problem
for 4.4BSD derived systems.  I noticed that for certain write sizes,
multiple fragments get sent instead of one.  Someone else also seems to
have noticed some odd related behavior as well, as detailed below.

So, anyways, whats wrong here?

Chris Csanady

>Another oddity is that if you close the connection immediately, for the
>same data sizes that it does this odd fragmentation (100 < S < 208),
>the FIN is piggybacked on the 2nd data segment.  This doesn't happen
>with any other data size.
>
>  Bill
>
>200 bytes:
>20:07:36.948660 sundae.1156 > crevenia.discard: S 3914627240:3914627240(0) win
 16384 <mss 1460,nop,wscale 0,nop,nop,timestamp 1213412 0,nop,nop,ccnew 206> (D
F)
>20:07:36.950164 crevenia.discard > sundae.1156: S 703872000:703872000(0) ack 3
914627241 win 4096 <mss 1460>
>20:07:36.950390 sundae.1156 > crevenia.discard: . ack 1 win 17520 (DF)
>20:07:36.950722 sundae.1156 > crevenia.discard: P 1:101(100) ack 1 win 17520 (
DF)
>20:07:36.951096 sundae.1156 > crevenia.discard: FP 101:201(100) ack 1 win 1752
0 (DF)
>20:07:36.951753 crevenia.discard > sundae.1156: . ack 202 win 3896
>20:07:36.965928 crevenia.discard > sundae.1156: F 1:1(0) ack 202 win 4096
>20:07:36.966140 sundae.1156 > crevenia.discard: . ack 2 win 17520 (DF)
>
>1024 bytes:
>20:07:57.229256 sundae.1159 > crevenia.discard: S 3918727601:3918727601(0) win
 16384 <mss 1460,nop,wscale 0,nop,nop,timestamp 1213453 0,nop,nop,ccnew 209> (D
F)
>20:07:57.230772 crevenia.discard > sundae.1159: S 706688000:706688000(0) ack 3
918727602 win 4096 <mss 1460>
>20:07:57.231011 sundae.1159 > crevenia.discard: . ack 1 win 17520 (DF)
>20:07:57.231796 sundae.1159 > crevenia.discard: P 1:1025(1024) ack 1 win 17520
 (DF)
>20:07:57.232110 sundae.1159 > crevenia.discard: F 1025:1025(0) ack 1 win 17520
 (DF)
>20:07:57.233398 crevenia.discard > sundae.1159: . ack 1026 win 3072
>20:07:57.242112 crevenia.discard > sundae.1159: F 1:1(0) ack 1026 win 4096
>20:07:57.242355 sundae.1159 > crevenia.discard: . ack 2 win 17520 (DF)
>
>2048 bytes:
>20:08:02.212852 sundae.1160 > crevenia.discard: S 3919846017:3919846017(0) win
 16384 <mss 1460,nop,wscale 0,nop,nop,timestamp 1213463 0,nop,nop,ccnew 210> (D
F)
>20:08:02.214375 crevenia.discard > sundae.1160: S 707392000:707392000(0) ack 3
919846018 win 4096 <mss 1460>
>20:08:02.214608 sundae.1160 > crevenia.discard: . ack 1 win 17520 (DF)
>20:08:02.215719 sundae.1160 > crevenia.discard: . 1:1461(1460) ack 1 win 17520
 (DF)
>20:08:02.216294 sundae.1160 > crevenia.discard: P 1461:2049(588) ack 1 win 175
20 (DF)
>20:08:02.216629 sundae.1160 > crevenia.discard: F 2049:2049(0) ack 1 win 17520
 (DF)
>20:08:02.217980 crevenia.discard > sundae.1160: . ack 2050 win 2048
>20:08:02.229945 crevenia.discard > sundae.1160: . ack 2050 win 4096
>20:08:02.231652 crevenia.discard > sundae.1160: F 1:1(0) ack 2050 win 4096
>20:08:02.231843 sundae.1160 > crevenia.discard: . ack 2 win 17520 (DF)