25.02.2013 Views

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

TCP/IP Tutorial and Technical Overview - IBM Redbooks

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Fragmentation<br />

When an <strong>IP</strong> datagram travels from one host to another, it can pass through<br />

different physical networks. Each physical network has a maximum frame size.<br />

This is called the maximum transmission unit (MTU). It limits the length of a<br />

datagram that can be placed in one physical frame.<br />

<strong>IP</strong> implements a process to fragment datagrams exceeding the MTU. The<br />

process creates a set of datagrams within the maximum size. The receiving host<br />

reassembles the original datagram. <strong>IP</strong> requires that each link support a minimum<br />

MTU of 68 octets. This is the sum of the maximum <strong>IP</strong> header length (60 octets)<br />

<strong>and</strong> the minimum possible length of data in a non-final fragment (8 octets). If any<br />

network provides a lower value than this, fragmentation <strong>and</strong> reassembly must be<br />

implemented in the network interface layer. This must be transparent to <strong>IP</strong>. <strong>IP</strong><br />

implementations are not required to h<strong>and</strong>le unfragmented datagrams larger than<br />

576 bytes. In practice, most implementations will accommodate larger values.<br />

An unfragmented datagram has an all-zero fragmentation information field. That<br />

is, the more fragments flag bit is zero <strong>and</strong> the fragment offset is zero. The<br />

following steps fragment the datagram:<br />

1. The DF flag bit is checked to see if fragmentation is allowed. If the bit is set,<br />

the datagram will be discarded <strong>and</strong> an ICMP error returned to the originator.<br />

2. Based on the MTU value, the data field is split into two or more parts. All<br />

newly created data portions must have a length that is a multiple of 8 octets,<br />

with the exception of the last data portion.<br />

3. Each data portion is placed in an <strong>IP</strong> datagram. The headers of these<br />

datagrams are minor modifications of the original:<br />

– The more fragments flag bit is set in all fragments except the last.<br />

– The fragment offset field in each is set to the location this data portion<br />

occupied in the original datagram, relative to the beginning of the original<br />

unfragmented datagram. The offset is measured in 8-octet units.<br />

– If options were included in the original datagram, the high order bit of the<br />

option type byte determines if this information is copied to all fragment<br />

datagrams or only the first datagram. For example, source route options<br />

are copied in all fragments.<br />

– The header length field of the new datagram is set.<br />

– The total length field of the new datagram is set.<br />

– The header checksum field is re-calculated.<br />

4. Each of these fragmented datagrams is now forwarded as a normal <strong>IP</strong><br />

datagram. <strong>IP</strong> h<strong>and</strong>les each fragment independently. The fragments can<br />

traverse different routers to the intended destination. They can be subject to<br />

further fragmentation if they pass through networks specifying a smaller MTU.<br />

104 <strong>TCP</strong>/<strong>IP</strong> <strong>Tutorial</strong> <strong>and</strong> <strong>Technical</strong> <strong>Overview</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!