I am trying to understand encapsulation of OSI model, in general it is quite clear for me but I have one question.
Please look on this picture http://www.just2good.co.uk/images/gif/ethernetFrame.gif
Default ethernet frame. And this is good picture for my question. You can see that IP encapsulation is shown.

As I understand data part of Ethernet frame is from 46 bytes to 1500 bytes length. This mean that for upper layer protocol there is only 1500-46 = 1454 bytes. Okay.

My question is : this all means that packet size decreasing according with level number, I mean that network layer have packet size < link layer And so on, because of encapsulation data part of packet is decreasing, am I right ? But why I have found that TCP packet size is for example 64kBytes !!!

How is it possible if we have 1454 bytes for data (minus headers of upper layer) on the data link layer ?????

Please explain this for me, I would be very grateful.

  • 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 7, 2017 at 17:30

2 Answers 2


The answer is simply that the TCP segment can be fragmented into many IP packets. The Maximum Segment Size (mss) is the largest TCP segment that can fit into a single IP packet. The size of the IP packet is limited by the Maximum Transmission Unit (MTU), which is dependent on the physical media.


Besides Ron Trunk's answer, you are incorrect about the size of the layer-3 protocol. The ethernet payload (layer-3) can be a minimum of 46 bytes and a maximum of 1500 bytes, and I'm not sure why you are subtracting the minimum from the maximum to give the layer-3 protocol a maximum of 1454 bytes; it is 1500 bytes for maximum of the layer-3 protocol in an ethernet frame.

Then you have to look at the layer-3 protocol. IPv4 needs a minimum of 20 bytes for its header, but there are options which can increase that to 60 bytes. IPv6 uses a fixed 40 bytes for its header, although it can have option headers, too. Within the layer-3 protocol, the payload (layer-3) size can vary based on the header size of the layer-3 protocol (1500 bytes - layer-3 header size).

The layer-4 protocol will also have a header, so the payload it can deliver is further reduced (1500 bytes - layer-3 header size - layer-4 header size). The point of the layer-4 protocol is that it is the end-to-end protocol that applications use. An application can give a large datagram to the layer-4 protocol, and the layer-4 protocol handles breaking it into chunks (segments) to transmit, and reassembling the received segments on the other end into the original, large datagram to present to the receiving application. Depending on the layer-4 protocol, this may or may not be guaranteed to work. For instance, TCP guarantees to reassemble a complete datagram for the receiving application, but UDP does not.

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.