Chapter 4 Network Layer - cse.chalmers.se...Network Layer 4-2 Chapter 4: Network Layer 4.1...
Transcript of Chapter 4 Network Layer - cse.chalmers.se...Network Layer 4-2 Chapter 4: Network Layer 4.1...
These slides are based on the slides made available by Kurose and Ross.
© All material copyright 1996-2012J.F Kurose and K.W. Ross, All Rights Reserved
Computer NetworkingA Top-Down Approach
6th edition
Jim Kurose, Keith Ross
Addison-Wesley
March 2012
Chapter 4Network Layer
Network Layer 4-1
Network Layer 4-2
Chapter 4: Network Layer
4.1 Introduction 4.2 Virtual circuit and
datagram networks 4.3 What’s inside a
router 4.4 IP: Internet Protocol
Datagram format IPv4 addressing ICMP IPv6
4.5 Routing algorithms Link state Distance Vector Hierarchical routing
4.6 Routing in the Internet RIP OSPF BGP
4.7 Broadcast and multicast routing
Network Layer 4-3
Network Layer Functions network layer protocol in
every host and routerConsider transporting a segment from sender to receiver sending side: encapsulates
segments into datagrams receiving side: delivers
segments to transport layer Path Determination: sum of
routes chosen by routers to deliver packets from source to destination.
Forwarding: move packets from router’s input to appropriate router’s output
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical network
data linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
Network Layer 4-4
1
23
0111
value in arrivingpacket’s header
routing algorithm
local forwarding tableheader value output link
0100010101111001
3221
Routing and Forwarding
routing algorithm determinespath through network
forwarding table determineslocal forwarding at this router
router examines header fields in all datagrams passing through it
Network Layer 4-5
Chapter 4: Network Layer
4.1 Introduction 4.2 Virtual circuit and
datagram networks 4.3 What’s inside a
router 4.4 IP: Internet Protocol
Datagram format IPv4 addressing ICMP IPv6
4.5 Routing algorithms Link state Distance Vector Hierarchical routing
4.6 Routing in the Internet RIP OSPF BGP
4.7 Broadcast and multicast routing
Network Layer 4-6
Network Service ModelWhat service model can be considered for a network transporting packets from sender to receiver?
example services for individual datagrams:
“best effort” delivery No constraints on delay or
bandwidth
example services for a flow of packets:
in-order delivery guaranteed minimum
bandwidth to flow restrictions on changes
in inter-packet time-spacing
Network Layer 4-7
Connection-oriented & connectionless
Virtual Circuit-network provides link or network-layer connection-oriented service.
Datagram-based network provides network-layer connectionless service.
Analogous to the transport-layer services but: Service: host-to-host packet delivery
Implementation: every router in the network
Network Layer 4-8
Virtual Circuit: VC
source-to-destination path behaves much like telephone “circuit” Performance-wise (but it is virtual circuit) Network actions along the source-to-destination path
Setup: for each connection before data packets can flow Each packet carries VC identifier (not destination
address) Every router on the path maintains “state” for each
passing connection.Benefit: Link & router resources (bandwidth, buffers) may
be allocated to VC(dedicated resources = predictable service)
Network Layer 4-9
VC: Signaling Protocols
used to setup, maintain and teardown VC used in ATM, Frame-Relay, X.25 not used in today’s Internet on network layer
applicationtransportnetworkdata linkphysical
1. initiate call 2. incoming call3. accept call4. call connected
5. data flow begins 6. receive dataapplicationtransportnetworkdata linkphysical
Network Layer 4-10
VC: Forwarding Table
12 22 32
1 23
VC identifier
interfacenumber
Incoming interface Incoming VC # Outgoing interface Outgoing VC #
1 12 3 222 63 1 18 3 7 2 171 97 3 87… … … …
Forwarding tablein northwest router:
Routers maintain connection state information!
Network Layer 4-11
Datagram Networks (Internet) no call setup to establish path through network routers: no state about end-to-end connections
no network-level concept of “connection” packets forwarded using destination host address
packets between same source-destination pair may take different paths
1. send datagrams
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
2. receive datagrams
Network Layer 4-12
1
23
Datagram: Forwarding Table
IP destination address in arriving packet’s header
routing algorithm
local forwarding tabledest. address output link
address-range 1address-range 2address-range 3address-range 4
3221
4 billion IP addresses, so rather than list individual destination addresslist range of addresses(aggregate table entries)
Network Layer 4-13
Datagram or VC network: why?
Internet (datagram) data exchange among
computers “elastic” service, no strict
timing requirements. “smart” end systems
(computers) can adapt, perform control,
error recovery simple inside network,
complexity at “edge” many link types
different characteristics uniform service difficult
ATM (VC) more complicated evolved from telephony human conversation:
strict timing, reliability requirements
need for guaranteed service
“dumb” end systems telephones moves complexity to
inside network
Network Layer 4-14
Chapter 4: Network Layer
4.1 Introduction 4.2 Virtual circuit and
datagram networks 4.3 What’s inside a
router 4.4 IP: Internet Protocol
Datagram format IPv4 addressing ICMP IPv6
4.5 Routing algorithms Link state Distance Vector Hierarchical routing
4.6 Routing in the Internet RIP OSPF BGP
4.7 Broadcast and multicast routing
Network Layer 4-15
Router Architecture: OverviewTwo key router functions: run routing algorithms/protocols (RIP, OSPF, BGP) forwarding datagrams from incoming to outgoing link
high-seed switching
fabric
routing processor
router input ports router output ports
forwarding packets plane (hardware)
routing, managementcontrol plane (software)
forwarding tables computed,pushed to input ports
Network Layer 4-16
Input Port Functions
Decentralized switching: given datagram destination address, lookup
output port using forwarding table in input port memory
goal: complete input port processing at ‘line speed’
queuing: if datagrams arrive faster than forwarding rate into switch fabric
Physical layer:bit-level reception
Data link layer:e.g., Ethernet
Network Layer 4-17
Three types of switching fabrics
transfer packet from input buffer to appropriate output buffer
switching rate: rate at which packets can be transferred from inputs to outputs often measured as
multiple of input/output line rates
N inputs: switching rate N times line rate is desirable
Network Layer 4-18
Switching via MemoryFirst generation routers: traditional computers with switching under direct control of CPU packet copied to system’s memory speed limited by memory bandwidth (2 bus crossings per datagram)
inputport(e.g.,
Ethernet)
memoryoutputport(e.g.,
Ethernet)
system bus
datagram from input port memoryto output port memory via a shared bus, one packet at a time
bus contention: switching speed limited by bus bandwidth
32 Gbps bus, Cisco 5600: sufficient speed for access and enterprise routers
Network Layer 4-19
Switching via Bus
bus
Network Layer 4-20
Switching via Interconnection Network
overcome bus bandwidth limitations banyan networks, crossbar, other
interconnection networks initially developed to connect processors in multiprocessor
advanced design: fragmenting datagram into fixed length cells, tag and switch cells through the fabric.
Cisco 12000: switches 60 Gbps through the interconnection network
crossbar
Network Layer 4-21
Output Ports
Buffering required when datagrams arrive from fabric faster than the transmission rate of the outgoing link
Scheduling discipline chooses among queued datagrams for transmission
linetermination
link layer
protocol(send)
switchfabric
datagrambuffer
queueing
Network Layer 4-22
Output Port Queueing
buffering when arrival rate via switch exceeds output line speed
delay due to queueing and loss due to output port buffer overflow!
at t, packets morefrom input to output
one packet time later
switchfabric
switchfabric
Network Layer 4-23
Input Port Queuing fabric slower (seldom!) than input ports combined →
queueing may occur at input port queueing delay and loss due to input buffer overflow!
Head-Of-Line (HOL) blocking: queued datagram at front of queue prevents others in queue from moving forward
output port contention:only one red datagram can be transferred.
lower red packet is blocked
switchfabric
one packet time later: green packet experiences HOL
blocking
switchfabric
Network Layer 4-24
Chapter 4: Network Layer
4.1 Introduction 4.2 Virtual circuit and
datagram networks 4.3 What’s inside a
router 4.4 IP: Internet Protocol
Datagram format IPv4 addressing ICMP IPv6
4.5 Routing algorithms Link state Distance Vector Hierarchical routing
4.6 Routing in the Internet RIP OSPF BGP
4.7 Broadcast and multicast routing
Network Layer 4-25
The Internet Network Layer
forwardingtable
Host, router network layer functions:
Routing protocols• path selection• RIP/UDP, OSPF/IP, BGP/TCP
IP protocol• addressing conventions• datagram format• packet handling conventions
ICMP protocol• error reporting• router “signaling”
Transport layer: TCP, UDP
Link layer
Physical layer
Networklayer
Network Layer 4-26
IP datagram format
ver length
32 bits
Data FieldVariable length
(typically a TCP or UDP segment)
16-bit identifier
Header Checksumtime tolive
32-bit source IP address
IP protocol version = 4
header length 32-bits blocks, 5 standard)
TTL: max number of remaining hops
(decremented by one at each router)
forfragmentation/reassembly
total datagramlength (bytes)
Upper layer protocolto deliver payload to
6 for TCP17 for UDP
head.length
type ofservice
TOS (priority) flagsfragment
offsetProtocol
32-bit destination IP address
Options (if any) e.g. timestamp,security label, record routetaken, specifylist of routers to visit, etc
forfragmentation/reassembly
Flags (3 bits):Reserved (0)DF= don’t frag.MF= more frag.
how much overhead? 20 bytes of TCP 20 bytes of IP = 40 bytes + app
layer overhead
Network Layer 4-27
Chapter 4: Network Layer
4.1 Introduction 4.2 Virtual circuit and
datagram networks 4.3 What’s inside a
router 4.4 IP: Internet Protocol
Datagram format IPv4 addressing ICMP IPv6
4.5 Routing algorithms Link state Distance Vector Hierarchical routing
4.6 Routing in the Internet RIP OSPF BGP
4.7 Broadcast and multicast routing
Network Layer 4-28
IP Addressing: Introduction
interface: connection between host/router and physical link routers typically have
multiple active interfaces hosts typically have one
active interface (either wired Ethernet or wireless 802.11)
IP address associated with each interface
IP address: 32-bit identifier for host, router interface
223.1.3.1
223.1.3.1 = 11011111 00000001 00000011 00000001
223 1 13
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.27
Dotted Decimal Notation
Network Layer 4-29
223.1.3.1
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
Subnets IP address:
subnet part (high order bits)
host part (low order bits) What’s a subnet ?
device interfaces with same subnet part of IP address
Contains hosts that can physically reach each other without intervening router
All other hosts are reached by sending datagrams to router interface that works as “default gateway”
network consisting of 3 subnets
subnet
223.1.3.27
223.1.3.2
Network Layer 4-30
223.1.3.0/24
Subnets
Subnet 3
How long should the network prefix be? Depends on number of
hosts on subnet All hosts in subnet have
same subnetwork part of the address.
Your address is 223.1.3.1/24Default route via 223.1.3.27
Typical info given to a host:
Subnet mask: /2424 bits belong to the network
(called length of “CIDR” prefix)
223.1.2.0/24Subnet 2223.1.1.0/24
Subnet 1
Network Layer 4-31
223.1.1.1
223.1.1.3
223.1.1.4
223.1.2.2223.1.2.1
223.1.2.6
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1223.1.8.0223.1.8.1
223.1.9.1
223.1.9.2
Subnets
How many?
Network Layer 4-32
IP Addressing: CIDR
CIDR: Classless Inter-Domain Routing subnet portion of address of arbitrary length address format: a.b.c.d/x, where x is # bits in subnet
portion of address
11001000 00010111 00010000 00000000
subnetpart
hostpart
200.23.16.0/23
Network Layer 4-33
Example subnet: 192.168.5.0/24
Subnets, masks, calculations
Binary form Dot-decimal notation
IP address 11000000.10101000.00000101.10000010 192.168.5.130
Subnet mask 11111111.11111111.11111111.00000000--------24 higher order bits set to 1------
255.255.255.0
Network prefix:(bitwise AND of address,mask)
11000000.10101000.00000101.00000000 192.168.5.0
Host part(similar calculation, with eg a ”wild card” where the 32 – 24 lower order bits set to 1)
00000000.00000000.00000000.10000010 0.0.0.130
Network Layer 4-34
IP Addressing:
Q: How does an ISP get block of addresses?A: ICANN: http://www.icann.org/Internet Corporation for Assigned Names and Numbers
allocates addressesmanages DNS assigns domain names, resolves disputes
These services were originally performed under U.S. Government contract by the Internet Assigned Numbers Authority (IANA) and other entities.
The IANA now is part of ICANN.
Network Layer 4-35
IP Address Allocation:
ICANN is responsible for global coordination of the Internet Protocol addressing systems and other naming and numbering standards.
Users are assigned IP addresses by Internet Service Providers (ISPs). ISPs obtain allocations of IP addresses from a Local Internet Registry (LIR) or National Internet Registry (NIR), or from their appropriate Regional Internet Registry (RIR).
There are five RIRs :AfriNIC, AfricaAPNIC, Asia PacificARIN, Canada, United States, Caribbean and North Atlantic Islands LACNIC, Latin America and parts of the Caribbean regionRIPE NCC, Europe, Russia, Middle East, and Parts of Central Asia
(NIC Network Information Center)
Network Layer 4-36
IP addresses: How to get one?
Network (subnet) addresses are allocated from a portion of its provider ISP’s address space.
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23
20 3 9
bits bits bits
Network Layer 4-37
Hierarchical Addressing: Route Aggregation
“Send me anythingwith addresses beginning 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
ISP #1
Organization 0
Organization 7Internet
Organization 1
ISP #2 “Send me anythingwith addresses beginning 199.31.0.0/16”
200.23.20.0/23Organization 2
...
...
Hierarchical addressing allows efficient advertisement of routing information
The “outside” does not need to know about subnets.
38
Classless Address: example An ISP has an address block 122.211.0.0/16 A customer needs max. 6 host addresses, ISP can e.g. allocate: 122.211.176.208/29 3 bits enough for host part
subnet mask 255.255.255.248Dotted Decimal Last 8 bits
Network 122.211.176.208 11010000
1st address 122.211.176.209 11010001
…………. ………………… …………6th address 122.211.176.214 11010110
Broadcast 122.211.176.215 11010111
2013 Ali Salehson, Chalmers, CSE Networks and Systems
Reserved
39
CIDR Address MaskCIDR Notation Dotted Decimal/1 128.0.0.0 /2 192.0.0.0 /3 224.0.0.0 /4 240.0.0.0 /5 248.0.0.0 /6 252.0.0.0 /7 254.0.0.0 /8 255.0.0.0/9 255.128.0.0 /10 255.192.0.0 /11 255.224.0.0 /12 255.240.0.0 /13 255.248.0.0 /14 255.252.0.0 /15 255.254.0.0 /16 255.255.0.0
CIDR Notation Dotted Decimal/17 255.255.128.0/18 255.255.192.0 /19 255.255.224.0 /20 255.255.240.0 /21 255.255.248.0 /22 255.255.252.0 /23 255.255.254.0/24 255.255.255.0/25 255.255.255.128/26 255.255.255.192/27 255.255.255.224/28 255.255.255.240/29 255.255.255.248/30 255.255.255.252/31 255.255.255.254/32 255.255.255.255
2013 Ali Salehson, Chalmers, CSE Networks and Systems
Special IP Addresses
Localhost and local loopback 127.0.0.1 of the reserved 127.0.0.0
(127.0.0.0/8) Private IP-addresses
10.0.0.0 – 10.255.255.255 (10.0.0.0/8) 172.16.0.0 – 172.31.255.255 (172.16.0.0/12) 192.168.0.0 – 192.168.255.255 (192.168.0.0/16)
Link-local Addresses (stateless autoconfig) 169.254.0.0 – 169.254.255.255 (169.254.0.0/16)
Network Layer 4-40
Network Layer 4-41
IP addresses: how to get one?
Q: How does host get IP address?
manually hard-coded by system admin in a file Windows:
Control Panel Network Connections Local Area Connection Properties Internet Protocol (TCP/IP) Properties
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol (RFC 2131)
dynamically gets address from a DHCP server
Network Layer 4-42
Dynamic Host Configuration Protocol
Goal: allows host to dynamically obtain its IP address from network server when it joins network. Host can renew its lease on address in use Allows reuse of addresses (only hold address while connected) Support for nomad users who want to join network (short time)
DHCP overview: host broadcasts “DHCP discover” message DHCP server responds with “DHCP offer” message host requests IP address: “DHCP request” message DHCP server sends address: “DHCP ACK” message
Network Layer 4-43
223.1.1.0/24
223.1.2.0/24
223.1.3.0/24
223.1.1.1
223.1.1.3
223.1.1.4 223.1.2.9
223.1.3.2223.1.3.1
223.1.1.2
223.1.3.27223.1.2.2
223.1.2.1
DHCPserver
arriving DHCPclient needs address in thisnetwork
DHCP client-server scenario
Network Layer 4-44
DHCP client-server scenarioDHCP server: 223.1.2.5 arriving
client
time
DHCP discover
src : 0.0.0.0, port 68 dest: 255.255.255.255, port 67Your IPaddr: 0.0.0.0transaction ID: 654
DHCP offersrc: 223.1.2.5, port 67 dest: 255.255.255.255, port 68Your IPaddr: 223.1.2.4transaction ID: 654Lease time: 3600 secs
DHCP requestsrc: 0.0.0.0, port 68 dest: 255.255.255.255, port 67Req. IPaddr: 223.1.2.4transaction ID: 654
DHCP ACKsrc: 223.1.2.5, port 67 dest: 255.255.255.255, port 68Your IPaddr: 223.1.2.4transaction ID: 654Lease time: 3600 secs
Network Layer 4-45
DHCP: more than an IP address
DHCP can return more than just allocated IP address on subnet:
address of first-hop router (default gateway) name and IP address of DNS sever network mask (indicating network portion of
address)
Network Layer 4-46
Connecting laptop needs: its IP address, subnetmask address of first-hop router address of DNS server
router with built-in DHCP server
DHCP request encapsulated in UDP, encapsulated in IP, encapsulated in 802.3 Ethernet MAC frame
Ethernet frame broadcast (FFFFFFFFFFFF) on LAN, received at router running DHCP server
168.1.1.1
DHCPUDP
IPEthPhy
DHCP
DHCP
DHCP
DHCP
DHCP
DHCPUDP
IPEthPhy
DHCP
DHCP
DHCP
DHCPDHCP
DHCP: example
Network Layer 4-47
DHCP server formulates DHCP ACK containing client’s IP address, IP address of first-hop router for client, IP address of DNS server
encapsulation of DHCP server, frame forwarded to client
DHCP: example
DHCP
DHCP
DHCP
DHCP
DHCPUDP
IPEthPhy
DHCP
DHCPUDP
IPEthPhy
DHCP
DHCP
DHCP
DHCP
client now knows its IP address, IP address of DNS server, IP address of its first-hop router
router with built-in DHCP server
Network Layer 4-48
NAT: Network Address Translation Router with NAT can translate network addresses
Many internal (private) addresses translated to one (or few) external (global) addresses.
Gives freedom when configuring internal network fewer addresses needed from ISP or just one IP global address for
all devices can change addresses of devices in local network without notifying
outside world can change ISP without changing addresses of devices in local
network can hide internal structure (devices not visible by outside world, a
security plus) Internal network should use non-routable (private)
addresses reserved for this purpose (RFC 1918) 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
Network Layer 4-49
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
local network(e.g., home network)
10.0.0.0/24
rest ofInternet
Datagrams with source or destination in this network
have 10.0.0/24 address for source or destination (as usual)
All datagrams leaving localnetwork have same single source
NAT IP address: 138.76.29.7,different source port numbers
Network Layer 4-50
implementation: NAT router must:
outgoing datagrams: replace (source IP address, port #) of every outgoing datagram to (NAT IP address, new port #)
. . . remote clients/servers will respond using (NAT IP address, new port #) as destination address
remember (in NAT translation table) every (source IP address, port #) to (NAT IP address, new port #) translation pair
incoming datagrams: replace (NAT IP address, new port #) in dest fields of every incoming datagram with corresponding (source IP address, port #) stored in NAT table
NAT: network address translation
Network Layer 4-51
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345D: 128.119.40.186, 80
110.0.0.4
138.76.29.7
1: host 10.0.0.1 sends datagram to 128.119.40.186, 80
NAT translation tableWAN side addr LAN side addr138.76.29.7, 5001 10.0.0.1, 3345…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001D: 128.119.40.186, 802
2: NAT routerchanges datagramsource addr from10.0.0.1, 3345 to138.76.29.7, 5001,updates table
S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3
3: Reply arrivesdest. address:138.76.29.7, 5001
4: NAT routerchanges datagramdest addr from138.76.29.7, 5001 to 10.0.0.1, 3345
Network Layer 4-52
NAT: Network Address Translation
16-bit port-number field: 65,000 simultaneous connections with a single
WAN-side address!NAT is controversial:
routers should only process up to layer 3 …. violates end-to-end argument
• NAT possibility must be taken into account by application designers, e.g., P2P applications
address shortage should instead be solved by IPv6 ….
Network Layer 4-53
NAT: Traversal Problem
client wants to connect to server with address 10.0.0.1 server address 10.0.0.1 local to
LAN (client can’t use it as destination addr)
only one externally visible NATed address: 138.76.29.7
solution1: statically configure NAT to forward incoming connection requests at given port to server e.g., (123.76.29.7, port 2500)
always forwarded to 10.0.0.1 port 2500
10.0.0.1
10.0.0.4
NAT router
138.76.29.7
client
?
server
Network Layer 4-54
NAT: Traversal Problem
solution 2: Universal Plug and Play (UPnP) Internet Gateway Device (IGD) Protocol. Allows NATed host to: learn public IP address
(138.76.29.7) add/remove port mappings
(with lease times)
i.e., automate static NAT port map configuration
10.0.0.1
NAT router
IGD
138.76.29.7
Network Layer 4-55
NAT: Traversal Problem
solution 3: relaying (used in p2p) NATed host establishes connection to relay external client connects to relay relay bridges packets between two connections
138.76.29.7
client
1. connection torelay initiatedby NATed host
2. connection torelay initiatedby client
3. relaying established
NAT router
10.0.0.1
Network Layer 4-56
Chapter 4: Network Layer
4.1 Introduction 4.2 Virtual circuit and
datagram networks 4.3 What’s inside a
router 4.4 IP: Internet Protocol
Datagram format IPv4 addressing ICMP IPv6
4.5 Routing algorithms Link state Distance Vector Hierarchical routing
4.6 Routing in the Internet RIP OSPF BGP
4.7 Broadcast and multicast routing
Network Layer 4-57
ICMP: Internet Control Message Protocol
Control and error messages from network layer. All IP implementations must have ICMP support. ICMP messages carried in IP datagrams used by hosts & routers to communicate network-level
control information and error reporting Error reporting: e.g., unreachable network, host, .. Example: (used by ping command)
• Sends ICMP echo request• Receives ICMP echo reply
Any ICMP error message may never generate a new one.
Network Layer 4-58
ICMP: message format
ICMP message: type field: 1 byte code field: 1 byte Checksum: 2 bytes 0s, (ID + Seq. #) or other
fields: 4 bytes Optional data or when
error reporting message always include header of IP datagram causing error plus first 8 bytes of its payload
Type Code description0 0 echo reply (ping)
3 0 dest. network unreachable3 1 dest. host unreachable3 2 dest. protocol unreachable3 3 dest. port unreachable3 6 dest. network unknown3 7 dest. host unknown
4 0 source quench
8 0 echo request (ping)
9 0 route advertisement10 0 router discovery11 0 TTL expired12 0 bad IP header
Network Layer 4-59
Traceroute and ICMP
Source sends series of UDP segments to destination First has TTL =1 Second has TTL=2, etc. Unlikely port number
When datagram sent with TTL = n arrives to n:th router: TTL becomes 0 Router discards datagram Router sends to source an
ICMP message “TTL expired” (type 11, code 0)
Message is carried in IP datagram with the router IP address as source
When ICMP message arrives, source measures RTT
Traceroute does this 3 times
Stop criteria UDP segment eventually
arrives at destination host Destination returns ICMP
message “destination port unreachable” (type 3, code 3)
When source gets this ICMP 3 times, traceroute stops.
Network Layer 4-60
Chapter 4: Network Layer
4.1 Introduction 4.2 Virtual circuit and
datagram networks 4.3 What’s inside a
router 4.4 IP: Internet Protocol
Datagram format IPv4 addressing ICMP IPv6
4.5 Routing algorithms Link state Distance Vector Hierarchical routing
4.6 Routing in the Internet RIP OSPF BGP
4.7 Broadcast and multicast routing
Network Layer 4-61
IPv6: motivation
initial motivation: 32-bit address space was about to be completely allocated.
additional motivation: header format helps speed processing/forwarding header changes to facilitate QoS
IPv6 datagram format: fixed-length 40 byte header no fragmentation allowed 128-bit addresses (2128 = 1038 numbers) Standard subnet size: 64 bits
Network Layer 4-62
IPv6 datagram format
priority: identify priority among datagrams in flowflow Label: identify datagrams in same “flow.”
(concept of“flow” not well defined).
data
destination address(128 bits)
source address(128 bits)
payload length next header hop limitflow labelpriver
32 bits
Network Layer 4-63
Other changes from IPv4
checksum: removed entirely to reduce processing time at each hop
options: allowed, but outside of header, indicated by “Next Header” field
ICMPv6: new version of ICMP additional message types, e.g. “Packet Too Big” Neighbor and router discoverymulticast group management functions
More slides
IPv4 FragmentationDatagram Forwarding TableGetting a datagram from source to destination IPv6-IPv4 Tunneling
4: Network Layer 4a-64
Network Layer 4-65
IP Fragmentation & Reassembly MTU (Maximum Transmission Unit)
largest possible data amount carried by link-level frame. different link types, different
MTUs large IP datagrams will be divided
(“fragmented”) by host or router one datagram becomes several
datagrams “reassembled” only at final
destination IP header fields used to identify,
order related fragments• More Fragments bit• Datagram ID • Fragment Offset (in 8-byte
units)
fragmentation: in: one large datagramout: 3 smaller datagrams
reassembly
……
Network Layer 4-66
IP Fragmentation
ID=x
offset=0
fragflag=0
length=4000
ID=x
offset=0
fragflag=1
length=1500
ID=x
offset=185
fragflag=1
length=1500
ID=x
offset=370
fragflag=0
length=1040
One large datagram becomesseveral smaller datagrams
Example 4000 bytes datagram MTU = 1500 bytes
1480 bytes in data field
offset = 1480/8
Network Layer 4-67
Destination Address Range
11001000 00010111 00010000 00000000through11001000 00010111 00010111 11111111
11001000 00010111 00011000 00000000through11001000 00010111 00011000 11111111
11001000 00010111 00011001 00000000through11001000 00010111 00011111 11111111
otherwise
Link Interface
0
1
2
3
Q: but what happens if ranges don’t divide up nicely?
Datagram forwarding table
Network Layer 4-68
Longest prefix matching
Destination Address Range
11001000 00010111 00010*** *********
11001000 00010111 00011000 *********
11001000 00010111 00011*** *********
otherwise
DA: 11001000 00010111 00011000 10101010
examples:DA: 11001000 00010111 00010110 10100001 which interface?
which interface?
when looking for forwarding table entry for given destination address, use longest address prefix that matches destination address (more on this coming soon)
longest prefix matching
Link interface
0
1
2
3
4: Network Layer 4a-69
Getting a datagram from source to dest.
IP datagram:
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
miscfields
sourceIP addr
destIP addr data
Payload in datagram remains unchanged, as it travels source to destination
addr fields of interest here
Dest. Net. next router Nhops223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2
forwarding table in A
4: Network Layer 4a-70
Getting a datagram from source to dest.
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
Starting at A, given IP datagram addressed to B:
look up net. address of B find B is on same net. as A (B and
A are directly connected) link layer will send datagram
directly to B (inside link-layer frame)
Dest. Net. next router Nhops223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2
miscfields 223.1.1.1 223.1.1.3 data
4: Network Layer 4a-71
Getting a datagram from source to dest.
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
Dest. Net. next router Nhops223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2Starting at A, dest. E:
look up network address of E E on different network routing table: next hop router to
E is 223.1.1.4 link layer is asked to send
datagram to router 223.1.1.4 (inside link-layer frame)
datagram arrives at 223.1.1.4 continued…..
miscfields 223.1.1.1 223.1.2.3 data
4: Network Layer 4a-72
Getting a datagram from source to dest.
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
Arriving at 223.1.4, destined for 223.1.2.2
look up network address of E E on same network as router’s
interface 223.1.2.9 router, E directly attached
link layer sends datagram to 223.1.2.2 (inside link-layer frame) via interface 223.1.2.9
datagram arrives at 223.1.2.2!!!(hooray!)
miscfields 223.1.1.1 223.1.2.3 data network router Nhops interface
223.1.1 - 1 223.1.1.4223.1.2 - 1 223.1.2.9223.1.3 - 1 223.1.3.27
Dest. next
Network Layer 4-73
Transition from IPv4 to IPv6
not all routers can be upgraded simultaneouslyno “flag days”how will network operate with mixed IPv4 and
IPv6 routers? tunneling: IPv6 datagram carried as payload in
IPv4 datagram among IPv4 routers
IPv4 source, dest addr IPv4 header fields
IPv4 datagramIPv6 datagram
IPv4 payload
UDP/TCP payloadIPv6 source dest addr
IPv6 header fields
Network Layer 4-74
flow: Xsrc: Adest: F
data
A-to-B:IPv6
Flow: XSrc: ADest: F
data
src:Bdest: E
B-to-C:IPv6 inside
IPv4
E-to-F:IPv6
flow: Xsrc: Adest: F
data
B-to-C:IPv6 inside
IPv4
Flow: XSrc: ADest: F
data
src:Bdest: E
physical view:A B
IPv6 IPv6
E
IPv6 IPv6
FC D
logical view:
IPv4 tunnel connecting IPv6 routers E
IPv6 IPv6
FA B
IPv6 IPv6
IPv4 IPv4
Tunneling (6in4 – static tunnel)
Network Layer 4-75
Chapter 4: Network Layer
4.1 Introduction 4.2 Virtual circuit and
datagram networks 4.3 What’s inside a
router 4.4 IP: Internet Protocol
Datagram format IPv4 addressing ICMP IPv6
4.5 Routing algorithms Link state Distance Vector Hierarchical routing
4.6 Routing in the Internet RIP OSPF BGP
4.7 Broadcast and multicast routing