network layer packet forwarding is250 spring 2010 [email protected]

27
Network Layer Packet Forwarding IS250 Spring 2010 [email protected]

Upload: brenda-dawson

Post on 19-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Network LayerPacket Forwarding

IS250Spring 2010

[email protected]

John Chuang 2

Packet Switching

Host A Host B

128.32.226.8712.2.14.60

Local loop

Backbone

MAN

Ethernet

John Chuang 3

Two Basic Functions in Packet Switching

Routing- Learn the best route to (or best next-hop for) any given destination- Exchange local link status or destination reachability information

- Compute best path to destinations• Algorithms for computing shortest paths (e.g., Dijkstra’s)

• Policies that reflect business agreements (use BGP)

- Update the routing table Packet forwarding

- For each packet received on an incoming link, forward it to an outgoing link according to the routing table

John Chuang 4

L3 Outline

Addressing: - Internet Protocol (IP): address notation; address allocation; address translation

Packet switching:- Routing: BGP, OSPF, RIP- Packet forwarding: IP fragmentation, TTL, …

Extensions:- IP Multicast; QoS; Mobile IP; IPSec; …

Evolution:- IPv6

John Chuang 5

IP Packet aka IP Datagram

Header-Contains destination address-Fixed-size fields

Payload-Variable size up to 64K-No minimum size

John Chuang 6

Internetworking Standards

Internetworking standards set by IETF (Internet Engineering Task Force)

Documented as RFCs (Requests for Comment):- RFC 791: IP- RFC 793: TCP- RFC 2460: IPv6- RFC 1034, 1035: DNS

http://www.ietf.org/rfc.html

John Chuang 7

IPv4 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)

Header

Data

John Chuang 8

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)

John Chuang 9

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)

John Chuang 10

IP Packet Header Type of Service (TOS)

- Allows different types of service to be requested- Initially, meaning was not well defined- Different subsequent attempts to define (e.g., 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)

John Chuang 11

IP Packet Header Packet Length (in Bytes)

- Unambiguously specify end of packet- Max packet size = 216 – 1 = 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)

John Chuang 12

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)

John Chuang 13

IP Packet Header Time to Live

- For avoiding infinite routing loops- Initially set by sender (up to 255)- Decremented by each router- Discard when TTL = 0

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)

John Chuang 14

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)

John Chuang 15

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)

Bit 0

John Chuang 16

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)

John Chuang 17

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)

John Chuang 18

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

John Chuang 19

Illustration of Datagram Fragmentation

Each fragment has IP datagram header Header fields

- Identify original datagram- Indicate where fragment fits

John Chuang 20

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)

John Chuang 21

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)

John Chuang 22

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)

John Chuang 23

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

John Chuang 24

IP Fragmentation Example

ID=x

offset=0

MF=0

length=4000

ID=x

offset=0

MF=1

length=1500

ID=x

offset=185

MF=1

length=1500

ID=x

offset=370

MF=0

length=1040

One large datagram becomesseveral smaller datagrams

Offsets in units of 8 bytes

John Chuang 25

Multiple Fragmenting Points

Let MTUs along path be:- 1500- 1500- 1000- 1500- 576- 1500

Result: fragmentation can occur twice

John Chuang 26

Fragmenting a Fragment

Needed when fragment too large for network MTU

Arbitrary sub-fragmentation possible Router divides fragments into smaller pieces

All fragments at same “level”- Offset given with respect to original datagram

- Destination cannot distinguish sub-fragments

John Chuang 27

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