0

Consider the two devices:

A: PC, NIC MTU is set to 1500

B: Router, MTU of relevant interface is 1478

Now if A sends a frame of length 1500 to B, something might go wrong. But what if I set A 's MTU to 1400? Now A to B should be OK, what will happen when B sends a frame of length 1478 to A? MTU setting of 1400 indicates A should drop a frame longer than 1400, But since 1400 is a manually set value, A's NIC is capable of processing frames of length 1478.

This post suggests

MTU is the Maximum Transmission Unit, the largest packet of data that a computer interface will send.

MTU only affects sending. Therefore, A will accept frame of length 1478 even if its MTU is set to 1400.

Wikipedia suggests

the maximum transmission unit (MTU) is the size of the largest protocol data unit (PDU) that can be communicated in a single network layer transaction

that can be communicated means '''A''' should reject frame of 1478 since it is not valid at all.

Here is my question: Does MTU setting affect sending, receiving, or both?

2 Answers 2

2

You are confusing MTU - the largest possible network-layer (L3) packet size - with maximum frame size - the largest possible frame size on the data link layer (L2). Putting it into more comprehensive terms, the maximum frame size is the largest frame that a device can physically transmit (and perhaps receive), and the MTU is the largest payload that that largest frame can transport.

These two correlate but they're not the same, the difference being the L2 overhead. With Ethernet the maximum payload size = the maximum L3 packet size is 1500 bytes. Ethernet's L2 has an overhead of 18 bytes (without options), so the maximum frame size is 1518 bytes.

What you configure on the NIC, a hardware device handling L1 and L2, is the maximum frame size. Many vendors use an "MTU" setting and calculate the actual frame size for you. More confusingly, some vendors conflate the terms and use "MTU" to refer to the actual frame size setting. You can tell those - somewhat - apart by the actual values: 1492, 1500 or 9000 refer to the MTU, while 1518, 1514, 9018 and similar refer to the maximum frame size.

You can also configure the actual MTU on a host but you need to do that on the IP stack, e.g. on Windows using the netsh command. That is also what you configure on a router since it's an L3 device.

Usually when you set a lower-than-standard maximum frame size on a NIC, that doesn't stop it from receiving frames with the standard maximum size - so it's for transmitting only. Also, if you configure an MTU for an interface on the local IP stack, the stack doesn't drop larger packets that were successfully received from the NIC.

However, all that depends on the actual implementation at hand. You'd need to add the used devices to your question for us to answer. Note that consumer-grade devices, hosts and their configuration are explicitly off-topic here.

But you're on the right track: you need to be careful with those settings as not configuring them coherently across your network may seriously disturb communication.

0

Setting MTU on your end will also affect any connections made from you, at least for TCP. The SYN-ACK handshake sets Max Segment Size, which is based off MTU of the interface. Thus, return packets will fit inside MTU of your interface.

New contributor
Haakon Steigre is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

Your Answer

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

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