We studied that the beauty of internet protocol suite layers is that each layer is responsible for a piece of the communication process. These layers provide services to adjacent layers and operate independently (theoretically), so upper layers are not (should not be) affected by lower layers details.

However, when it comes to MTU/MSS I'm a bit confused.

The theoretical maximum size of an IP packet is 65535 bytes, however in order to avoid fragmentation, packets are sent with size less than MTU. In this case a L3 field (IP packet size) is dependent on L1/L2 field (MTU).

The same applies to MSS (a L4 field) which is actually derived from the MTU.

The fact that some characteristics of upper layers strongly depend on lower layers details, does this violate the protocol layers indenpendence in some way?

  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer. – Ron Maupin Aug 14 '17 at 18:45

Protocol layer independence is like political or economic philosophy -- sounds good on paper, but hard to put into practice.

To the network layer, fragmentation at lower levels is invisible. We avoid IP fragmentation because of hardware limitations (takes too much processing to reassemble), not for any protocol reason.


The OSI network layers model is just that, a model. Specific instantiations may fit better or worse. Note also that the TCP/IP protocol suite was designed before the OSI model and so the match may often be even more tenuous. But, one of the features of the model is that there are interfaces between the layers, and when you map TCP/IP onto the OSI model part of the interface between the layers 2 through 4 includes communicating the values that go into the MTU/MSS calculations. The upper layers don't have to get this data and can operate without it, but they can operate so much more efficiently if they have it.

  • Furthermore, the protocols and services defined for OSI (e.g., TP4, CLNS/CLNP) suffer from the same issue. However, OSI service definitions do not have parameters providing information about protocol overhead. Perhaps some implementations do. – Jeff Learman Dec 17 '20 at 22:02

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.