IP Datagram, Fragmentation and Reassembly

22
Internet Protocol IP Datagram, Fragmentation and Reassembly

Transcript of IP Datagram, Fragmentation and Reassembly

Page 1: IP Datagram, Fragmentation and Reassembly

Internet Protocol

IP Datagram, Fragmentation and Reassembly

Page 2: IP Datagram, Fragmentation and Reassembly

IP Datagram

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Data (variable length)

Hea

der

Dat

a

Page 3: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Version

– Version number of IP protocol– Current version is Version 4 – Version 6 has different header format

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 4: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Header Length (in 32 bit words)

– Indicates end of header and beginning of payload– If no options, Header length = 5

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 5: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Type of Service (TOS)

– Allows different types of service to be requested– Initially, meaning was not well defined– Currently being defined (diffserv)

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 6: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Packet Length (in Bytes)

– Unambiguously specify end of packet– Max packet size = 216 = 65,535 Bytes

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 7: IP Datagram, Fragmentation and Reassembly

IP Packet Header• These three fields for Fragmentation

Control (will come back to them later)

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 8: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Time to Live

– Initially set by sender (up to 255)

– Decremented by each router

– Discard when TTL = 0 to avoid infinite routing loops

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 9: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Protocol

– Value indicates what is in the data field

– Example: TCP or UDP

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 10: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Header Checksum

– Checks for error in the header only– Bad headers can harm the network– If error found, packet is simply discarded

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 11: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Source and Destination IP Addresses

– Strings of 32 ones and zeros

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 12: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Options

– Example: timestamp, record route, source route

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 13: IP Datagram, Fragmentation and Reassembly

IP Fragmentation & Reassembly• Maximum Transmission Unit (MTU)

– Largest IP packet a network will accept

– Arriving IP packet may be larger (max IP packet size = 65,535 bytes)

• Sender or router will split the packet into multiple fragments

• Destination will reassemble the packet

• IP header fields used to identify and order related fragments

MTU = 4352

FDDIRing

RouterHost A Host B

Ethernet

MTU = 1500

Page 14: IP Datagram, Fragmentation and Reassembly

Illustration Of Datagram Fragmentation

IP Header original datagram data area

IP Hdr 1 IP Hdr 2 IP Hdr 3data 1 data 2 data 3

.

.

.

.

.

.

.

.

.

.

.

.

� Each fragment has IP datagram header� Header fields

– Identify original datagram

– Indicate where fragment fits

CS422 Part 11 12 Spring 1999

Page 15: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Identification

– All fragments of a single datagram have the same identification number

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 16: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Flags:

– 1st bit: reserved, must be zero– 2nd bit: DF -- Do Not Fragment– 3rd bit: MF -- More Fragments

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 17: IP Datagram, Fragmentation and Reassembly

IP Packet Header• Fragment Offset (in units of 8 bytes)

– Used for reassembly of packet– 1st fragment has offset = 0

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Bit 0 Bit 31

Version(4)

Hdr Len(4) TOS (8)

Identification (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

Page 18: IP Datagram, Fragmentation and Reassembly

IP Fragmentation Example

MTU = 4352

FDDIRing

RouterHost A Host B

Ethernet

MTU = 1500

• Host A wants to send to Host B an IP datagram of size = 4000 Bytes

Page 19: IP Datagram, Fragmentation and Reassembly

IP Fragmentation ExampleID=x

offset=0

MF=0

length=4000

ID=x

offset=0

MF=1

length=1500

ID=x

offset=1480

MF=1

length=1500

ID=x

offset=2960

MF=0

length=1040

One large datagram becomesseveral smaller datagrams

Page 20: IP Datagram, Fragmentation and Reassembly

Multiple Fragmenting Points

� Let MTUs along internet path be

– 1500

– 1500

– 1000

– 1500

– 576

– 1500� Result: fragmentation can occur twice

CS422 Part 11 14 Spring 1999

Page 21: IP Datagram, Fragmentation and Reassembly

Fragmenting A Fragment

� Needed when fragment too large for network MTU� Arbitrary subfragmentation possible� Router divides fragments into smaller pieces� All fragments at same ‘‘level’’

– Offset given with respect to original datagram

– Destination cannot distinguish subfragments

CS422 Part 11 15 Spring 1999

Page 22: IP Datagram, Fragmentation and Reassembly

Fragment Loss

� Receiver

– Collects incoming fragments

– Reassembles when all fragments arrive

– Does not know identity of router that did fragmentation

– Cannot request missing pieces� Consequence: Loss of one fragment means entire datagram

lost

CS422 Part 11 16 Spring 1999