Subject: TCP Segment size

From: "Mehmet Yavuz" <[email-masked]>
Date: Wed, 7 Nov 2001 17:42:32 -0600

Greetings,

	While running ftp tests ("put" command) with a Win95 laptop, I
observe that the advertised MSS is 960Bytes both for the server and client
(based on tcpdump logs). 
	However, tcpdump logs show that during the data transfer most
segments (more than 90%) are of size 512Bytes. Running "tracert" shows that
between the client and server the minimum MTU size used by routers is
1500Bytes.

	Does anybody have an idea why a smaller segment size (512B) is used
during the transfer compared to the MSS (960B)? 

	thanks,
	mehmet

BTW: Laptop has RS232 connection and for download tests ("get" command)
mostly a segment size of 960B is observed.

---

From: Joe Touch <[email-masked]>
Date: Wed, 07 Nov 2001 16:56:38 -0800

Mehmet Yavuz wrote:

> observe that the advertised MSS is 960Bytes both for the server and 
> client (based on tcpdump logs).
> 
> segments (more than 90%) are of size 512Bytes. Running "tracert" shows 
> that between the client and server the minimum MTU size used by routers 
> is 1500Bytes.
> 
>         Does anybody have an idea why a smaller segment size (512B) is 
> used during the transfer compared to the MSS (960B)?

If the destination is NOT the local subnet, it is likely that the 
Internet MSS of 576 is used, rather than the link MTU. Presuming that 
path MTU is not enabled. At that point, most implementations send 512 
bytes of data, rather than 536, favoring the power-of-two.

 > BTW: Laptop has RS232 connection and for download tests
 > ("get" command) mostly a segment size of 960B is observed.

When the destination is the local subnet (subnet coincident with an 
interface), some implementations use the link MTU even if path MTU isn't 
enabled, assuming that the 'path' is direct.

(this is in most of the TCP books, FWIW)

Joe