What is actual difference b/w these two?

1) I have gone through many tutorials on Youtube where some have told that Window Size is what total packet size it can receive eg Window Size is 15000 bytes

and MSS is what maximum packet size can be sent is single time eg 1500bytes i.e it can send 10 packets of 1500 each to make it 15000.

2) But in some other tutorials i studied that Window Size is like after how many bytes of data it expects acknowledgement.

If 2) is correct then why timeout period is used in Flow Control Mechanism?

  • That is like trying to compare and ask for the difference between an artichoke and a cow. They are completely different things with different purposes. You cannot really compare them. – Ron Maupin Oct 6 '19 at 18:36
  • @BrianTurner would like to know to which flow control mechanism you refer. I think you mean if the timeout happens before an ACK is received, TCP will resend anything sent from the sequence number in the last ACK segment received. – Ron Maupin Oct 6 '19 at 18:58

The Maximum Segment Size is the largest TCP segment that can be transported in a single IP packet. It is derived from the Maximum Transfer Unit (MTU) minus IP header overhead minus TCP header overhead. For TCP over IPv4 over Ethernet without options, that's 1460 bytes.

The TCP window size is the amount of data "in flight", ie. being transmitted before an ACK is required. The window size depends on the channel, especially its available bandwidth and its round-trip time (RTT). The window size is adapted constantly to avoid congestion. Normally, it's a multiple of the MSS.

MSS and window size are completely different things and pretty much independent of each other.

  • check my question clearly to what is have asked for – shivaniverma6991 Oct 6 '19 at 17:03
  • 6
    The difference is that they are completely different things. – Zac67 Oct 6 '19 at 17:31

Window Size :

  1. is a setting on every participant (servers and clients) in a tcp data transfer.
  2. which describes the amount of data that can be sent before the transmitter will wait for an acknowledgement by the receiver.
  3. During session establishment client and server send 3 way handshake, and negotiate / agree on a Window Size for the session.
  4. You can find it in your registry and change the setting on your computer.


  1. is a setting on network equipment. (routers, switches, load balancers)
  2. which describes the *maximum size of the data inside a packet traversing a network segment"
  3. MSS should be discovered by client and server during session establishment, to prevent packet segmentation, and increase transfer efficiency.
  4. Most, but not all protocol stacks honor the MSS setting. Data Segments larger than the MSS will return an ICMP segment too large error message generated from the Ingress interface of the device which has the MSS set.

As a general rule, MSS is a problem for Network Engineers, and Window Size is a problem for Server and Application guys. In TCP multiple packets are sent before an Acknowledgement is expected, so Window Sizes will be much larger than MSS settings.

If by Flow Control you mean TCP Flow Control : If receiver reduces the window size to Zero then the transmitter is being instructed to stop sending data until it receives a non-zero Window from the receiver. Without a timer this could create a frozen session where the receiver is waiting for data and the transmitter is waiting for an okay to send data signal. The Persist Timer gives the transmitter a timer at which it will send a "WindowProbe" to the receiver giving it a chance to respond with a non-zero window.

  • Actually, TCP doesn't have clients or servers. That is an application-level distinction. TCP creates connections between peers, where each side is equal; each side can send or receive data and terminate the connection. In fact, there are some servers that will initiate a TCP connection with a client. The TCP RFC does not reference clients or servers, only TCP peers. – Ron Maupin Oct 6 '19 at 18:26
  • The reference has no bearing on the answer. It was used to provide context for the user which does have an understanding of "Client" and "Server". The purpose of it was to provide context for the statement "All Participants". That is why I put it in parentheses. To abstract it from the factual statement. I know that my primary mis-understanding 20 years ago when I learned about Windows was that changing the setting on my PC only helped if the server I talked too also had the setting increased. – Brian Turner Oct 6 '19 at 18:39
  • @RonMaupin Since I can't yet comment on the question due to my being new to this forum, maybe you could ask "Which Flow Control Mechanism" he is referring too, seeing as there are many different ones at different layers int he stack. – Brian Turner Oct 6 '19 at 18:50

Each TCP End-point provides a byte-stream interface to an application which automatically implies that there must be some limit on the size of this stream. This reassembly buffer can have a variable size and is indicated by the 16-bit window size option in TCP header. It is dynamic and decreases when an application is yet to read data from its buffer and increases again after the application reads it.

IPv4 allows the maximum size of a datagram to be 65,535 bytes and hence the maximum amount of TCP data it can contain is < 65,535 bytes. But, the link that actually transfers the data may not be able to transmit such large packets. They have a limit called MTU (Maximum Transmission Unit). When the size of the packets exceeds this, fragmentation happens. To avoid fragmentation, TCP can let the peer know the maximum size of the segment it's willing to accept by seeing its own MTU.

Sometimes a small MSS can also indicate a small reassembly buffer that any TCP implementation is guaranteed to support if the MSS sent by a client is lesser than the least possible MTU (usually 1500 bytes). For example, a sender sending MSS of 536 doesn't indicate a small MTU but a small reassembly buffer but a MSS of 1460 may indicate a MTU of 1500 bytes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.