Network Engineering Asked by ERH7777777 on September 30, 2021
By definition, The TCP Maximum Segment Size (MSS) is the maximum amount of data that a host is willing to accept in a single TCP/IPv4 datagram. And MSS is one of the parameters which is negotiated during the 3-way handshaking.
According to the definition, it seems they don’t need to agree on a value as they can just send the datagrams based on the maximum value the other side is asking for. On the other hand, it makes sense to choose the lower value as it means the side which is asking for the lower MSS is not able to handle harder segments, thus there is no point to send a bigger segment.
So my question is, Technically, do both sides need to agree on an MSS value (the lower value), or each can use their own?
I’m a bit confused as I can see some say the MSS value is negotiated, but they don’t have to agree on a value, but some other say they agree on the lower value.
And MSS is one of the parameters which is negotiated during the 3-way handshaking.
No, the value is not negotiated, it is simply sent by one or both sides.
Technically, do both sides need to agree on an MSS value (the lower value), or each can use their own?
No, the sides do not need to agree, and each can have its own MSS. What a particular implementation of TCP in an OS may do is off-topic here, and it could be that the authors of an implementation decide to require the lower value on both sides.
What RFC 793, Transmission Control Protocol says:
Maximum Segment Size Option Data: 16 bits
If this option is present, then it communicates the maximum receive segment size at the TCP which sends this segment. This field must only be sent in the initial connection request (i.e., in segments with the SYN control bit set). If this option is not used, any segment size is allowed.
Correct answer by Ron Maupin on September 30, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP