Ask Your Question

I'm confused about TCP segment length and TCP Window Size?

asked 2017-12-17 04:45:08 +0000

yakinharoon gravatar image

updated 2017-12-19 21:02:18 +0000

Christian_R gravatar image

As per my understanding TCP segment length maximum is 1460 bytes. TCP Window size maximum is 65,535 bytes what is relationship between the two? Also confused about TCP Window scaling. Can someone explain in easy words how TCP Segment size, TCP Window Size & Window Scaling related to each other? Also about Window size scaling factor?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2017-12-17 10:22:16 +0000

Jaap gravatar image

updated 2017-12-17 18:52:56 +0000

These are a lot of questions and even though I no TCP specialist, I'll have a go at it. There's much more detail to be found in the TCP/IP guide

  1. MSS is not per definition limited to 1460, but it's a nice fit to Ethernet networks. Standard Ethernet uses frames with up to 1500 octets (bytes if you wish) of payload. Subtract the headers for IP and TCP and you'll get to something like 1460. You can go larger with MSS, but that could result in fragmentation in the lower layers (IP in this case), hurting performance.
  2. The unscaled TCP window size is 65.535. It has no relation to the MSS. The MSS is related to the transport of data over the network, using the services of the IP layer. The window size has to do with the sending and receiving hosts themselves. How many resources (memory) can they spend on this TCP session for storing data for retransmission and handing off to the receiving application.
  3. TCP window scaling is a solution to the problem of growing network speeds. I'll spare you the math but the original TCP header option to communicate TCP window size with (that maximum of 65.535) just wasn't big enough any more. So they came up with a multiplication factor.

I just woke up so I hope I got the details right.

edit flag offensive delete link more


pretty good - just some minor additions:

  1. MSS can go larger than 1460 but you'd need to use jumbo frames. Fragmentation usually isn't allowed for TCP (don't fragment flag set in IP)
  2. Correct. Very often you'll notice that Window Size is a multiple of the MSS because it makes sense to advertise a receive buffer sized to multiples of the maximum segment size. But that's not always true, and it's not required.
Jasper gravatar imageJasper ( 2017-12-17 10:44:43 +0000 )edit

Thanks for shedding some light makes it a little bit easier to understand, but i'm hoping someone would put up an animated video on YouTube to further clear these concepts.

yakinharoon gravatar imageyakinharoon ( 2017-12-18 02:32:05 +0000 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2017-12-17 04:45:08 +0000

Seen: 17,099 times

Last updated: Dec 17 '17