Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've looked for some explanation about the differences between Segments, Packets and Frames, and from what I read:

  • Segment is the original data + Transport Layer header.
  • Packet is a Segment + Network Layer header.
  • Frame is a Packet + Data Link Layer header.

So basically that means that if we put the headers aside, Segments = Packets = Frames.

I remember reading that the Data Link layer takes the data transferred to it by the Network Layer and splits it to smaller chunks of data for the Physical Layer to transfer. Therefore, I assumed that those Frames are smaller pieces of a given Packet.

But everywhere I search I read that the only difference between Segments, Packets and Frames are the headers attached to the original data in the different layers, and that the names are different because they're unique to each layer, even though it is basically the same thing.

Are Segments, Packets and Frames really the same thing, except for the headers each one of them includes? Are all of them the same size?

share|improve this question
the "fill", or amount of data, can be different. Have a look at the "Nagle algorithm", implemented in a number of network stacks:'s_algorithm – Florenz Kley Nov 13 '12 at 18:22
up vote 9 down vote accepted

enter image description here

Each layer have its header, as you can see:

  • Segments: Transport layer (TCP/UDP) = transport header + data (from uper layer)
  • Packet: Internet layer (IP) = network header + transport header and data (both transport and data from upper layers)
  • Frames: Network layer (Ethernet) = frame header + network , transport header and data (from three upper layers).

So, answering to your question, the difference between segment, packet and frames are basically what it's respective layer consider as "data". On a segment, data comes from the aplication layer, on a packet, data comes from the transport layer (transport header + data) and on a frame, the data comes from the internet layer (transport and internet headers + data from aplication layer).

share|improve this answer
And what about the way the data is eventually transferred through the Physical Layer? If not all the data is being transferred at once, then how does the splitting work? Does that happen simultaneously in the Network & Data Link Layers (and handled by the Transport Layer)? Can you please elaborate about this process in your answer? – amiregelz Nov 13 '12 at 17:33
Diogo is correct, but there are also some considerations that can be misleading. Despite the fact that you may be sending 100 bytes of data, the packet still occupies the full MTU (typically ~1500 bytes) on the wire. The down-side is that if you're sending a bunch of tiny packets, you will never obtain the maximum capable bandwidth for the network link. Some encapsulated tunnels can reduce/minimize this waste... but that's another subject. – TheCompWiz Nov 13 '12 at 17:34
@Diogo Can you edit your answer according to my comment? Thank you. – amiregelz Nov 17 '12 at 11:54

Are Segments, Packets and Frames really the same thing, except for the headers each one of them includes?

Are all of them the same size?

If you think of the layers as single entities then no; they all have different maximum and minimum sizes. Thinking of them in relation to one another; the lower layer dictates what the maximum size of data that it can be handed from a layer above.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .