3

I have read that the MSS (Maximum Segment Size) is used to prevent IP Fragmentation.

Now if the two communicating devices exist on the same network, and this network have a MTU (Maximum Transmission Unit) of 1500, and the two communicating devices agreed on a 1460 MSS, then IP Fragmentation will not happen in this case.

But what happens if the two communicating devices exist on two different networks and both networks have a MTU of 1500 and there is a network between them with a MTU of 1000, and the two communicating devices agreed on a MSS of 1460, wouldn't IP Fragmentation happen in this case when a packet reaches the network that is between the two communicating devices?

4
  • By the way, the two ends of a TCP connection do not agree on the MSS. Each tells the other side its MSS, and one side should not send a segment payload larger than the receiving-side MSS. It is quite possible that an intermediate network or tunnel through wich the packets passes has a smaller MTU than either side of the TCP connection.
    – Ron Maupin
    Aug 12, 2022 at 21:26
  • @Ron Maupin I have read the following (in this page: ibm.com/docs/en/aix/7.1?topic=tuning-tcp-maximum-segment-size): "The MSS that is chosen is the smaller of the values provided by the two ends", is this statement correct? Aug 12, 2022 at 21:51
  • It works out that way, but that is not actually what is happening. Think of Host A with ethernet and Host B with 16 Mbps token ring. Host A tells Host B that its MSS is 1460, and Host B tells Host A that its MTU is 17,874. That means Host A will not send Host B a segment payload over 17,874., and Host B will not send Host A a segment payload over 1460. That is what each host knows, but Host A cannot send a segment payload over 1460 because of its MTU, not because of an agreement with Host B.
    – Ron Maupin
    Aug 12, 2022 at 22:21
  • MSS doesn't mean the traffic could not pass over a link with a smaller MTU, thus requiring fragmentation. If the DF bit is not set, fragmentation can occur. (see also: Path MTU Discovery)
    – Ricky
    Aug 13, 2022 at 0:19

1 Answer 1

4

Does the MSS (Maximum Segment Size) prevents IP Fragmentation in all cases?

No. What prevents in-path IP fragmentation is to use the IPv4 DF flag, or use IPv6. If an IPv4 packet does not have the DF flag set and the MTU shrinks below the actual size of the IP packet (not all packets are sent at the full starting MTU), then the packet can be fragmented by an intermediate device, e.g. router, in the path of the packet.

If the IPv4 DF flag is set, or the packet is an IPv6 packet, an intermediate device needing to fragment the packet will drop the packet, and it should send an ICMP error message back to the source address. IPv4 devices must handle packets at least as large as 576 octets, and IPv6 requires all MTUs in the path to be at least 1280 octets (IPv6 has eliminated in-path fragmentation). We now have PMTUD, which is required for IPv6, and may be an IPv4 option for some OSes and applications.


Many businesses now drop IPv4 packet fragments in order to prevent fragmentation attacks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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