1

I'm trying to understand how mismatched MTUs behave in a network.

Suppose two hosts are able to talk to each other through an Ethernet-based network. The network and host A are configured for jumbo frames up to but not including a switch on the LAN host B lies on and host B itself. From what I understand regarding TCP, the three-way handshake at the beginning of every TCP session advertises each respective host's MSS to the other host. Given that host B will advertise a 1460-byte MSS after subtracting the IP and TCP headers, and since they will use the lower of the two advertised MSSs, will any TCP conversation between these two hosts work without issue?

On the flip side, since UDP doesn't have an MSS, will large unfragmented UDP packets sent by host A be dropped by host B?

Stanley Yu
  • 121
  • 3
  • The terminology of your question suggests that MTU's of unrelated connections are supposed to match and that there's some problem if they don't. – David Schwartz Mar 26 '15 at 20:21
  • I added in the bit about a switch not doing jumbo frames. Such a device will silently drop oversized frames and cause Path MTU Discovery to fail, yes? – Stanley Yu Mar 26 '15 at 20:45
  • That won't cause path MTU discovery to fail, but it will cause fragmentation to fail, possibly breaking applications that don't use path MTU discovery. – David Schwartz Mar 26 '15 at 20:47
  • But I thought PMTUD relies on the ICMP packet too big to work. The switch will just drop without returning an ICMP reply? – Stanley Yu Mar 26 '15 at 20:49
  • I guess it depends on the implementation. MTU black hole detection is usually implemented as well. – David Schwartz Mar 26 '15 at 21:52

1 Answers1

1

TCP does path MTU discovery to avoid fragmentation which can result in increased packet loss. Applications using UDP have two choices.

They can just permit their datagrams to fragment. In that case, they won't get dropped, but if any fragments happen to get dropped, the entire datagram will not be received. This can magnify packet loss rates.

They can also do their own path MTU discovery by setting the "don't fragment" bit in their datagrams. They'll have to detect datagram loss and handle the possibility that the path MTU changed.

Typical UDP applications just keep their datagrams below 1,500 bytes total and allow them to fragment if necessary. This will result in no fragmentation on the most common links and no need to do path MTU detection.

David Schwartz
  • 31,215
  • 2
  • 53
  • 82