Tcp sequencing and IP fragmentation

Posted on 2004-09-06
Last Modified: 2013-11-29
I know TCP segments are numbered (with sequence numbers) for reassembly/error recovery reasons.  
How do TCP segments and IP fragmentation correlate?  If the sender has an IP datagram that exceeds the layer 2's MTU, it fragments the datagrams and each datagram gets sent as separate frames across the wire.

Now, what is responsible for reassembly on the other end?   I know that with packet fragmentation, a packet id is defined and the "fragment" flag is turned on.  What is TCP's job in the reassembly of fragged IP datagrams?  Arent the fragmented packets ID'd anyway?
Question by:dissolved
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3

Accepted Solution

LimeSMJ earned 500 total points
ID: 11991697
The Internet layer (IP protocol) within the TCP/IP architecture is responsible for reassmebly of a fragmented packet.

If a packet hits a network where the MTU is lower than the originator, the packet is fragmented to allow for transmission.  The fragmentation is done usually by the routers along the way so the sender does not know of the packet manipulation (sender won't decrease packet size if MTU is smaller).  Since the sender is only sending sequenced packet numbers (not caring about fragmentation), the fragmented packets need to have their own sequencing flags added in by the router - so that the IP layer can defragment at the receiving end.

TCP's job is provide the transmission link... IP helps negotiate the data packets along the way.


Author Comment

ID: 11991843
Cant fragmentation occur between the network layer and data link layer as well?
I heard that if an IP datagram is handed to the data link layer, it will be fragmented if it is to big. And each packet leaving the network will have the fragment flag turned on.


Author Comment

ID: 11991850
Also, cant the receiver send a ICMP error back to the sender saying "needs fragmentation" or something like that?
Don't Cry: How Liquid Web is Ensuring Security

WannaCry is just the start. Read how Liquid Web is protecting itself and its customers against new threats.


Expert Comment

ID: 11992029
The ICMP request for fragmentation is generated by a router if the packet received has the "do not fragment" bit set and cannot be forwarded because the next hop MTU is too small for the packet (fragmenting is not possible to make the MTU smaller, so this error occurs).  The actual destination computer would never send an ICMP request for fragmentation.

Expert Comment

ID: 11992101
I am not sure what you meant by :

"...IP datagram is handed to the data link layer, it will be fragmented if it is to big..."

The IP datagram is the packet itself... the sent payload.  If the sending computer knows of potential MTU problems, it may allow the packet to be fragmented (thus preventing any transmission delays).  Unless there is a stack misconfiguration, there is no way for a datagram to be internally fragmented between the OSI layers.

Author Comment

ID: 11992105

Featured Post

[Webinar] Learn How Hackers Steal Your Credentials

Do You Know How Hackers Steal Your Credentials? Join us and Skyport Systems to learn how hackers steal your credentials and why Active Directory must be secure to stop them. Thursday, July 13, 2017 10:00 A.M. PDT

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I had an issue with InstallShield not being able to use Computer Browser service on Windows Server 2012. Here is the solution I found.
During and after that shift to cloud, one area that still poses a struggle for many organizations is what to do with their department file shares.
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question