2

I'm new to CNs and there is something that I can't yet grasp. Why doesn't the Transport layer let the Network layer do all the splitting up? How does segmentation make things reliable? Also, I understand that there's a similar question already posted on this forum but I don't understand the 64K IP packet size limit as explained in one of the answers.

4

(At least) two reasons:

  1. The transport layer (TCP) has to keep track of segments so it can retransmit them if needed. If you let the network layer segment, and one segment gets lost, how would the transport know?

  2. In theory, the sender knows the MSS of the path. By adjusting the size at the beginning, it eliminates the need for a downstream router to fragment, and for the receiver to have to reassemble it.

2

Some transport-layer protocols segment data and/or provide reliable transport, e.g. TCP - others don't, like UDP.

Segmentation doesn't make the transport reliable. The source uses a tracking buffer (send window) and keeps resending segments that haven't been acknowledged within a reasonable time frame.

Segmentation and reliability are services for the upper (application) layer, so that doesn't need to keep track of data or calculate optimal packet sizes.

The 65,535 byte limit of an IP packet is simply caused by the IP header size field being 16 bit in size: 216 = 65,536. That isn't related to the above at all. Since the underlying data link layer protocols are much more limited in data unit (frame) sizes, IP can fragment a packet that exceeds the maximum possible packet size (MTU). That is unrelated to TCP's segmentation but both can sometimes be required in combination.

E.g. a server sends already segmented TCP data with the Ethernet standard MTU of 1500 bytes towards the Internet, but the Internet router has to use PPPoE on its WAN link. That reduces the MTU by 8 bytes, requiring fragmentation by the router.

Of course, this is inefficient for bandwidth usage and processing overhead, so the sender should use path MTU discovery (PMTUD) to adjust its maximum TCP segment size (MSS) to the optimal value (which has become mandatory for IPv6). Another method is to use MSS clamping, selectively reducing the passed MSS value on the router.

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.