Unanswered Question
Apr 16th, 2008

Hi all, with tcp, say im using an ethernet card with 1500 bytes mtu, am I right in saying if an ip packet exceeds this, tcp will recognise it and perform segmentation ?

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)
Joseph W. Doherty Wed, 04/16/2008 - 05:21

Not sure what your are asking because you might be mixing L2 frames, L3 IP packets and TCP segments.

If an IP packet's size exceeds what the physical media can process, the IP packet will either be fragmented or dropped.

TCP segmentation will be done by the source, either when a segment is filled or when TCP doesn't wait to fill a segment.

carl_townshend Wed, 04/16/2008 - 05:36

what I need to know is, if ethernet mtu is 1500 bytes, whos job is it to segment or fragment to make the data smaller ? is it tcp's job, and is this called segmentation or fragmentation ?

Joseph W. Doherty Wed, 04/16/2008 - 15:53

A MTU defines the maximum IP packet size that will be accepted. At the source, IP sees the Ethernet MTU is only 1500 and so sets the IP packet size no larger, so at least initially there no need for IP fragmentation.

TCP, also as the source, sees the IP packet size is 1500 and normally sets its maximum segment size to be whatever the maximum packet size is less IP/TCP overhead, normally 40 bytes, which makes for a maximum segment size of 1460.

TCP is a streaming protocol, when it fills a segment, it sends it and starts another. TCP can also decide to send before a segment is filled. Segmentation then is splitting the data stream into discreet parts, which can vary in size.

Fragmentation is when an IP packet is too large for the MTU, then IP will split the original packet into as many as required smaller packets. TCP segments, in this case, are also physically split, but not logically split. IP will reassemble, at the destination, fragmented packets to remake the original IP packet which also contains the original TCP segment.

Rick Morris Wed, 04/16/2008 - 05:32

off the top of my head...if you send packets that exceed the MTU, the bits/bytes that exceed this will be dropped.

What happens is the datagrams are fragmented to make sure this does not happen and when they are all received at the receiving end the packets are reassembled again.

Here is an RFC that discusses it as well.

and more articles:

carl_townshend Wed, 04/16/2008 - 07:52

who is responsible for the fragmentation, is it IP? if so why does tcp segment the data ?

Rick Morris Wed, 04/16/2008 - 07:56

From quick glance the router is responsible for fragmenting the datastream. It see's the data come through and breaks it up. There are check sums at the other end that verifies that all the data has been received and then reassables the packet together. If there is a problem then you get an error, much like a host unreachable error when running a ping. If you send any datagram above the MTU it will either be dropped or fragmented. Skim through the links I sent previous. There is some good information there if you want more indepth details.


This Discussion