ppt - Courses

Download Report

Transcript ppt - Courses

Network Layer
Packet Forwarding
IS250
Spring 2010
[email protected]
Packet Switching
Backbone
MAN
Ethernet
Local loop
Host A
Host B
12.2.14.60
128.32.226.87
John Chuang
2
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
3
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
4
IP Packet aka IP Datagram
 Header
- Contains destination address
- Fixed-size fields
 Payload
- Variable size up to 64K
- No minimum size
John Chuang
5
Internetworking Standards
 Internetworking standards set by IETF (Internet
Engineering Task Force)
 Documented as RFCs (Requests for Comment):
-
RFC
RFC
RFC
RFC
791: IP
793: TCP
2460: IPv6
1034, 1035: DNS
 http://www.ietf.org/rfc.html
John Chuang
6
IPv4 Datagram
Bit 0
Bit 31
Header
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Data
Options (if any)
John Chuang
Data (variable length)
7
IP Packet Header
 Version
- Version number of IP protocol
- Current version is Version 4
- Version 6 has different header format
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
8
IP Packet Header
 Header Length (in 32 bit words)
- Indicates end of header and beginning of payload
- If no options, Header length = 5
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
9
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)
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
10
IP Packet Header
 Packet Length (in Bytes)
- Unambiguously specify end of packet
- Max packet size = 216 – 1 = 65,535 Bytes
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
11
IP Packet Header
 These three fields for Fragmentation
Control (will come back to them later)
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
12
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
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
13
IP Packet Header
 Protocol
- Value indicates what is in the data field
- Example: TCP or UDP
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
14
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
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
15
IP Packet Header
 Source and Destination IP Addresses
- Strings of 32 ones and zeros
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
16
IP Packet Header
 Options
- Example: timestamp, record route, source route
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
17
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
FDDI
Ring
Host A
John Chuang
MTU = 4352
Ethernet
Router
MTU = 1500
Host B
18
Illustration of Datagram
Fragmentation
 Each fragment has IP datagram header
 Header fields
- Identify original datagram
- Indicate where fragment fits
John Chuang
19
IP Packet Header
 Identification
- All fragments of a single datagram have
the same identification number
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
20
IP Packet Header
 Flags:
- 1st bit: reserved, must be zero
- 2nd bit: DF -- Do Not Fragment
- 3rd bit: MF -- More Fragments
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
21
IP Packet Header
 Fragment Offset (in units of 8 bytes)
- Used for reassembly of packet
- 1st fragment has offset = 0
Bit 0
Bit 31
Version
(4)
Hdr Len
(4)
TOS (8)
Identification (16 bits)
Time to Live (8)
Protocol (8)
Total Length in bytes (16)
Flags (3)
Fragment Offset (13)
Header Checksum (16)
Source IP Address
Destination IP Address
Options (if any)
John Chuang
22
IP Fragmentation Example
 Host A wants to send to Host B an IP
datagram of size = 4000 Bytes
FDDI
Ring
Host A
Ethernet
Router
MTU = 1500
Host B
MTU = 4352
John Chuang
23
IP Fragmentation Example
length ID
=4000 =x
MF
=0
offset
=0
One large datagram becomes
several smaller datagrams
length ID
=1500 =x
MF
=1
offset
=0
length ID
=1500 =x
MF
=1
offset
=185
length ID
=1040 =x
MF
=0
offset
=370
Offsets in units of 8 bytes
John Chuang
24
Multiple Fragmenting
Points
 Let MTUs along path be:
-
1500
1500
1000
1500
576
1500
 Result: fragmentation can occur twice
John Chuang
25
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
26
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
John Chuang
27