Re: Fragmentation Concepts

From: Priscilla Oppenheimer (cilla@xxxxxxxxxxxxx)
Date: Wed Feb 07 2001 - 15:37:29 GMT-3


   
Hi David,

I'm not on the ccie groupstudy list, but it appears that my answer got
there anyway. That's too bad, because it was wrong! &;-) Sorry.

The host (end node) definitely reassembles, as you say, but I was worried
about fragments of fragments, which could get kind of ugly. But right after
sending my message I decided that they probably aren't any different than
normal fragments. I checked RFC 791 and it doesn't talk about fragments of
fragments, and, in fact, I couldn't find any mention in any documents of
what a router does when it receives a fragment that it can't forward
because the MTU for the outgoing interface is too small. But that's
probably because it's pretty straight-forward.

Say, the first router receives a 4000-byte packet that it needs to divide
into 1000-byte frames.

First fragment: ID = 4567, offset = 0, More fragments = 1 (true)
Second fragment: ID = 4567, offset = 1000, More fragments = 1
Third fragment ID = 4567, offset = 2000, More fragments = 1
Fourth fragment ID = 4567, offset = 3000, More fragments = 0

So, now think about an intermediate router further down the path that
receives the first fragment. Say that router needs to forward the frame to
a network with an MTU of 500. What should that router do? It should just
keeps subdividing.

Receive first fragment
Divide it up:
ID = 4567, offset = 0, More fragments = 1
ID = 4567, offset = 500, More fragments = 1

Receive next fragment
Divide it up:
ID = 4567, offset = 1000, More fragments = 1
ID = 4567, offset = 1500, More fragments = 1

Etc.

I think that must be what it does, because the fragments could take
different paths so the router can't just sit there and wait for them.

The last fragment worries me a bit, because the more fragments bit would be
0, which is also the value for non-fragmented packets. But the offset would
be non-zero, so I guess the recipient would figure it out.

Anyway, thanks for your info. I will join the list now. I passed the
written (though to be honest I have to take it again, because I let it
expire before taking the lab.)

Priscilla

At 03:51 AM 2/7/01, you wrote:
>Is this the Priscilla? Author of top down network design, I guess so as there
>won't be than many Priscilla Oppenheimers around. Great book, thank you.
>
>The list you came across is the group study list for the ccie lab exam. It a
>bunch of people that are going for the lab in the near future most are fairly
>cluey but there are expections (me for instance :-). The list is run by
>groupstudy and the joining info is here:
>
>http://www.groupstudy.com/list/CCIELab.html
>
>About the fragmentation.... Even when a router has to fragment fragments (sub
>fragmentation), the end host is the only one that will reassemble them, ever.
>(there is an exception where routers can do it called intranet fragmentation,
>don't bother about it, even RFC 791 doesn't). Sub fragments look exactly the
>same as the orginal (except for size), they are also not reassembled as a
>seperate set of fragments by the end host as they contain their orginal
>position in the orginal fragment. So it's not a hierarchical scheme as might
>sumize. Trust me on this, I've written IP stack code to do it!
>
>I can't wait to get to IP version 6, PMTU discovery is the default there!
>
>Kind regards,
>
>David.
>
>
>On Wednesday 07 February 2001 00:41, you wrote:
> > What list did this come from and how do I join?
> >
> > Usually when a host or router fragments an IP datagram, it is not
> > reassembled until it reaches the final destination. Each fragment has the
> > same ID in the IP header. The offset field in the header allows the
> > recipient to put the fragments back in order for delivery to the next layer
> > up.
> >
> > What you are talking about in this devious example is fragmentation of
> > fragments. In that case, I think the router would have to wait for all the
> > original fragments to arrive, reassemble them, and refragment them for the
> > new MTU. Obviously this should be avoided if at all possible.
> >
> > Applications can do an MTU discovery by sending varying sized frames with
> > the Don't Fragment bit set until a good frame size is found.
> >
> > Priscilla
> >
> > At 03:56 PM 2/6/01, Chuck Larrieu wrote:
> > >Original question:
> > >
> > >Host A sends 1500 bytes long packet to e0 of R1 (destined for Host B).
> > >R1 s0 has MTU set to 750 bytes. So R1 fragments packet into 2.
> > >R2 has MTU of 375 bytes on s1, R2 fragments packet into 2
> > >R3 has MTU of 1500 on Ethernet LAN B, so it reassembles the fragments into
> > >one 1500 byte long packet & hands it to Host B??
> > >
> > >Long winded response:
> > >
> > >Another way to look at this is in terms of protocol behaviour at the
> > > various layers.
> > >
> > >Application / layer 7 is the interface between the rest of the protocol
> > >stack and the user application
> > >
> > >TCP / layer 4 is responsible for reliable end to end reliable transfer of
> > >data.
> > >
> > >IP / layer 3 is responsible for path determination and packet forwarding
> > >
> > >Frame/ layer 2 is where the physical limitations of packet size occur.
> > > E.g. token ring MTU versus ethernet MTU
> > >
> > >If a router receives a valid packet, and has a route to the destination
> > >contained within that packet, there is nothing for the router ( layer 3
> > >device ) to do other than to forward it.
> > >
> > >In terms of the following model:
> > >
> > >Host_1----segment_1----Router_1------segment_2------Router_2----segment_3-
> > >-- ------Host_2
> > >
> > >( I'm going to assume that the OSI model doesn't exactly fit here in the
> > >real world of computer processor operations, and that in terms of actual
> > >stack operation, there is interaction up and down )
> > >
> > >Layer 7 - app sends 2 meg file to host_2
> > >Layer 4 - TCP prepares the TCP packet, based on what it knows of the
> > >transmission requirements, including MTU
> > >Layer 3 - IP interacts with layer 2 data link - to get the proper size
> > > frame to the next point in the path
> > >Layer 3 - IP - router receives packet, forwards it. If the outbound
> > >interface segment requires a smaller packet size, ip fragments it.
> > >Layer 2 - data link - rules of the data link segments determine MTU
> > >
> > >Segment 1 is a token ring with an MTU of 4480, segment 2 is an ethernet
> > >with an MTU 1500, and segment 3 is another token ring, with an MTU of
> > >17000.
> > >
> > >Host 1 is sending a 2 meg file to host 2. TCP breaks that file into
> > > smaller chunks, based on the segment MTU. IP fragments further based on
> > > segment MTU at the next lower level. The data itself, i.e. the 2 meg
> > > file, is of use to host 2 only as a single file. The protocol stack on
> > > host 2 is responsible for receiving and checking the data, based on
> > > information handed up from the lower layers.
> > >
> > >It would be highly inefficient for the routers along the path to have to
> > >examine each packet with the purpose of determining if the packets had
> > > been fragmented and could be consolidated, not to mention the nature of
> > > the fragmentation. Layer 3 devices just send packets on their merry way
> > > without any concern as to whether or not there are better ways to do
> > > this.
> > >
> > >Hhmmmm.... This could be better written. To bad Priscilla Oppenheimer
> > > isn't on this list. This deserves a good writer :->
> > >
> > >Chuck
> > >
> > >-----Original Message-----
> > >From: nobody@groupstudy.com [mailto:nobody@groupstudy.com] On Behalf Of
> > >Choon, Raymond ()
> > >Sent: Tuesday, February 06, 2001 10:23 AM
> > >To: 'Tariq Sharif'; Ccielab@Groupstudy. Com
> > >Subject: RE: Fragmentation Concepts
> > >
> > >Routers don't reassemble packets. Host B receives packets with MTU of 375
> > >bytes and host B will reassemble packets to 1500 bytes because this is the
> > >original MTU from host A.
> > >
> > >I do not have any references for that. This is from my memory when I ran
> > >into doing troubleshooting before. Correct me if I'm wrong.
> > >
> > >Raymond Choon
> > >
> > >-----Original Message-----
> > >From: Tariq Sharif [mailto:tariq_sharif@btinternet.com]
> > >Sent: Tuesday, February 06, 2001 1:01 PM
> > >To: Ccielab@Groupstudy. Com
> > >Subject: Fragmentation Concepts
> > >
> > >
> > >Need some help on understanding IP fragmentation. In the setup below, are
> > >the steps below correct?
> > >
> > >
> > >LAN A |
> > >
> > >Host A_| Serial line 1 Serial line 2
> > >
> > >| LAN B
> > >|
> > > |______e0 R1 s0-------------------s0 R2
> > >
> > >s1---------------------------s0 R3 e0 -----------|
> > >
> > >|-------Host B
> > >
> > >Host A sends 1500 bytes long packet to e0 of R1 (destined for Host B).
> > >R1 s0 has MTU set to 750 bytes. So R1 fragments packet into 2.
> > >R2 has MTU of 375 bytes on s1, R2 fragments packet into 2
> > >R3 has MTU of 1500 on Ethernet LAN B, so it reassembles the fragments into
> > >one 1500 byte long packet & hands it to Host B??
> > >
> > >Any references to sites/books will be greatly appreciated.
> > >
> > >Many thanks & regards.
> > >
> > >Tariq Sharif
> > >
> > >



This archive was generated by hypermail 2.1.4 : Thu Jun 13 2002 - 10:28:40 GMT-3