Network Layer
Download
Report
Transcript Network Layer
Chapter 4
Network Layer
Computer Networking
A Top-Down Approach
6th edition
These slides are based on the slides
made available by Kurose and Ross.
Jim Kurose, Keith Ross
© All material copyright 1996-2012
Addison-Wesley
J.F Kurose and K.W. Ross, All Rights Reserved
March 2012
Network Layer
4-1
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-2
Network Layer Functions
network layer protocol in
every host and router
Consider transporting a
segment from sender to receiver
sending side: encapsulates
segments into datagrams
receiving side: delivers
segments to transport layer
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
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
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
Network Layer
application
transport
network
data link
physical
4-3
Routing and Forwarding
routing algorithm
routing algorithm determines
path through network
local forwarding table
header value output link
forwarding table determines
local forwarding at this router
0100
0101
0111
1001
3
2
2
1
value in arriving
packet’s header
0111
1
3 2
router examines header
fields in all datagrams
passing through it
Network Layer
4-4
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-5
Network Service Model
What service model can be considered for a
network transporting packets from sender to
receiver?
example services for
individual datagrams:
example services for a
flow of packets:
“best effort” delivery
in-order delivery
No constraints on delay or
guaranteed minimum
bandwidth
bandwidth to flow
restrictions on changes
in inter-packet timespacing
Network Layer
4-6
Connection-oriented & connectionless
Virtual Circuit-network provides link or
network-layer connection-oriented service.
Datagram-based network provides networklayer connectionless service.
Analogous to the transport-layer services but:
Service: host-to-host packet delivery
Implementation: every router in the network
Network Layer
4-7
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-8
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
application
transport
network
data link
physical
5. data flow begins
4. call connected
1. initiate call
application
transport
3. accept call
network
2. incoming call
data link
physical
6. receive data
Network Layer
4-9
VC: Forwarding Table
VC identifier
22
12
1
Forwarding table
in northwest router:
2
32
3
interface
number
Incoming interface
1
2
3
1
…
Incoming VC #
12
63
7
97
…
Outgoing interface
3
1
2
3
Outgoing VC #
22
18
17
87
…
…
Routers maintain connection state information!
Network Layer 4-10
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
application
transport
network 1. send datagrams
data link
physical
application
transport
2. receive datagrams network
data link
physical
Network Layer
4-11
Datagram: Forwarding Table
routing algorithm
local forwarding table
dest. address output link
address-range 1
address-range 2
address-range 3
address-range 4
4 billion IP addresses, so
rather than list individual
destination address
list range of addresses
(aggregate table entries)
3
2
2
1
IP destination address in
arriving packet’s header
1
3 2
Network Layer 4-12
Datagram or VC network: why?
Internet (datagram)
ATM (VC)
data exchange among
more complicated
computers
evolved from telephony
“elastic” service, no strict
human conversation:
timing requirements.
strict timing, reliability
“smart” end systems
requirements
(computers)
need for guaranteed
can adapt, perform control,
service
error recovery
“dumb” end systems
simple inside network,
telephones
complexity at “edge”
moves complexity to
many link types
inside network
different characteristics
uniform service difficult
Network Layer 4-13
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-14
Router Architecture: Overview
Two key router functions:
run routing algorithms/protocols (RIP, OSPF, BGP)
forwarding datagrams from incoming to outgoing link
forwarding tables computed,
pushed to input ports
routing
processor
routing, management
control plane (software)
forwarding packets
plane (hardware)
high-seed
switching
fabric
router input ports
router output ports
Network Layer 4-15
Input Port Functions
Physical layer:
bit-level reception
Data link layer:
e.g., Ethernet
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
Network Layer 4-16
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-17
Switching via Memory
First 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)
input
port
(e.g.,
Ethernet)
memory
output
port
(e.g.,
Ethernet)
system bus
Network Layer 4-18
Switching via Bus
datagram from input port memory
bus
to 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 Interconnection Network
overcome bus bandwidth limitations
crossbar
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
Network Layer 4-20
Output Ports
switch
fabric
datagram
buffer
queueing
link
layer
protocol
(send)
line
termination
Buffering required when datagrams arrive from fabric
faster than the transmission rate of the outgoing link
Scheduling discipline chooses among queued
datagrams for transmission
Network Layer 4-21
Output Port Queueing
switch
fabric
at t, packets more
from input to output
switch
fabric
one packet time later
buffering when arrival rate via switch exceeds
output line speed
delay due to queueing and loss due to output
port buffer overflow!
Network Layer 4-22
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
switch
fabric
output port contention:
only one red datagram can be transferred.
lower red packet is blocked
switch
fabric
one packet time later: green
packet experiences HOL
blocking
Network Layer 4-23
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-24
The Internet Network Layer
Host, router network layer functions:
Transport layer: TCP, UDP
Network
layer
Routing protocols
• path selection
• RIP/UDP, OSPF/IP, BGP/TCP
forwarding
table
ICMP protocol
• error reporting
• router “signaling”
IP protocol
• addressing conventions
• datagram format
• packet handling conventions
Link layer
Physical layer
Network Layer 4-25
IP datagram format
32 bits
IP protocol version = 4
header length 32-bits
blocks, 5 standard)
TOS (priority)
TTL: max number of
remaining hops
(decremented by one
at each router)
Upper layer protocol
to deliver payload to
6 for TCP
17 for UDP
how much overhead?
20 bytes of TCP
20 bytes of IP
= 40 bytes + app
layer overhead
ver
head. type of
length service
total datagram
length (bytes)
length
fragment
16-bit identifier flags
offset
time to Protocol
Header Checksum
live
32-bit source IP address
32-bit destination IP address
Options (if any)
Data Field
Variable length
(typically a TCP or UDP segment)
for
fragmentation/
reassembly
Flags (3 bits):
Reserved (0)
DF= don’t frag.
MF= more frag.
e.g. timestamp,
security label,
record route
taken, specify
list of routers
to visit, etc
Network Layer 4-26
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-27
IP Addressing: Introduction
223.1.1.1
interface: connection
between host/router
and physical link
223.1.2.1
223.1.1.2
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.1.4
223.1.2.9
223.1.3.27
223.1.1.3
223.1.2.2
223.1.3.1
223.1.3.2
223.1.3.1 = 11011111 00000001 00000011 00000001
Dotted Decimal Notation
223
1
3
1
Network Layer 4-28
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”
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.2.9
223.1.3.27
223.1.1.3
223.1.2.2
subnet
223.1.3.1
223.1.3.2
network consisting of 3 subnets
Network Layer 4-29
Subnets
Subnet 1
223.1.1.0/24
How long should the
Subnet 2
223.1.2.0/24
network prefix be?
Depends on number of
hosts on subnet
All hosts in subnet have
same subnetwork part of
the address.
Subnet 3
Typical info given to a host:
223.1.3.0/24
Your address is 223.1.3.1/24
Default route via 223.1.3.27
Subnet mask: /24
24 bits belong to the network
(called length of “CIDR” prefix)
Network Layer 4-30
Subnets
223.1.1.2
How many?
223.1.1.1
223.1.1.4
223.1.1.3
223.1.9.2
223.1.7.0
223.1.9.1
223.1.7.1
223.1.8.1
223.1.8.0
223.1.2.6
223.1.2.1
223.1.3.27
223.1.2.2
223.1.3.1
223.1.3.2
Network Layer 4-31
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
subnet
part
host
part
11001000 00010111 00010000 00000000
200.23.16.0/23
Network Layer 4-32
Subnets, masks, calculations
Example subnet: 192.168.5.0/24
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
11000000.10101000.00000101.00000000 192.168.5.0
of address,
mask)
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-33
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 addresses
manages 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-34
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, Africa
APNIC, Asia Pacific
ARIN, Canada, United States, Caribbean and North Atlantic Islands
LACNIC, Latin America and parts of the Caribbean region
RIPE NCC, Europe, Russia, Middle East, and Parts of Central Asia
(NIC Network Information Center)
Network
NetworkLayer
Layer 4-35
IP addresses: How to get one?
Network (subnet) addresses are allocated from a
portion of its provider ISP’s address space.
20
3
9
bits
bits
bits
ISP's block
11001000 00010111 00010000 00000000
200.23.16.0/20
Organization 0
Organization 1
Organization 2
...
11001000 00010111 00010000 00000000
11001000 00010111 00010010 00000000
11001000 00010111 00010100 00000000
…..
….
200.23.16.0/23
200.23.18.0/23
200.23.20.0/23
….
Organization 7
11001000 00010111 00011110 00000000
200.23.30.0/23
Network Layer 4-36
Hierarchical Addressing: Route Aggregation
Hierarchical addressing allows efficient advertisement of routing information
The “outside” does not need to know about subnets.
Organization 0
200.23.16.0/23
Organization 1
200.23.18.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
ISP #1
“Send me anything
with addresses
beginning
200.23.16.0/20”
Internet
200.23.30.0/23
ISP #2
“Send me anything
with addresses
beginning
199.31.0.0/16”
Network Layer 4-37
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.248
Dotted 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
Network Layer 4-38
CIDR Address Mask
CIDR Notation
Dotted Decimal
CIDR Notation
Dotted Decimal
/1
/2
/3
/4
/5
/6
/7
/8
/9
/10
/11
/12
/13
/14
/15
/16
128.0.0.0
192.0.0.0
224.0.0.0
240.0.0.0
248.0.0.0
252.0.0.0
254.0.0.0
255.0.0.0
255.128.0.0
255.192.0.0
255.224.0.0
255.240.0.0
255.248.0.0
255.252.0.0
255.254.0.0
255.255.0.0
/17
/18
/19
/20
/21
/22
/23
/24
/25
/26
/27
/28
/29
/30
/31
/32
255.255.128.0
255.255.192.0
255.255.224.0
255.255.240.0
255.255.248.0
255.255.252.0
255.255.254.0
255.255.255.0
255.255.255.128
255.255.255.192
255.255.255.224
255.255.255.240
255.255.255.248
255.255.255.252
255.255.255.254
255.255.255.255
2013 Ali Salehson, Chalmers, CSE Networks and Systems
Network Layer 4-39
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
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255
(10.0.0.0/8)
(172.16.0.0/12)
(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
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-41
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-42
DHCP client-server scenario
DHCP
server
223.1.1.0/24
223.1.2.1
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
arriving DHCP
client needs
address in this
network
223.1.2.0/24
223.1.3.2
223.1.3.1
223.1.3.0/24
Network Layer 4-43
DHCP client-server scenario
DHCP server: 223.1.2.5
arriving
client
DHCP discover
src : 0.0.0.0, port 68
dest: 255.255.255.255, port 67
Your IPaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, port 67
dest: 255.255.255.255, port 68
Your IPaddr: 223.1.2.4
transaction ID: 654
Lease time: 3600 secs
DHCP request
src: 0.0.0.0, port 68
dest: 255.255.255.255, port 67
Req. IPaddr: 223.1.2.4
transaction ID: 654
DHCP ACK
time
src: 223.1.2.5, port 67
dest: 255.255.255.255, port 68
Your IPaddr: 223.1.2.4
transaction ID: 654
Lease time: 3600 secs
Network Layer 4-44
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-45
DHCP: example
Connecting laptop needs:
its IP address, subnetmask
address of first-hop router
address of DNS server
DHCP
UDP
IP
Eth
Phy
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
UDP
IP
Eth
Phy
168.1.1.1
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
Network Layer 4-46
DHCP: example
DHCP server
formulates DHCP ACK
containing client’s IP
address, IP address of
first-hop router for
client, IP address of
DNS server
DHCP
UDP
IP
Eth
Phy
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
UDP
IP
Eth
Phy
router with built-in
DHCP server
encapsulation of DHCP
server, frame forwarded
to client
client now knows its IP
address, IP address of
DNS server, IP address of
its first-hop router
Network Layer 4-47
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-48
NAT: Network Address Translation
rest of
Internet
local network
(e.g., home network)
10.0.0.0/24
10.0.0.4
10.0.0.1
10.0.0.2
138.76.29.7
10.0.0.3
All datagrams leaving local
network have same single source
NAT IP address: 138.76.29.7,
different source port numbers
Datagrams with source or
destination in this network
have 10.0.0/24 address for
source or destination (as usual)
Network Layer 4-49
NAT: network address translation
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
Network Layer 4-50
NAT: Network Address Translation
2: NAT router
changes datagram
source addr from
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table
NAT translation table
WAN side addr
LAN side addr
1: host 10.0.0.1
sends datagram to
128.119.40.186, 80
138.76.29.7, 5001 10.0.0.1, 3345
……
……
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
10.0.0.1
1
2
S: 138.76.29.7, 5001
D: 128.119.40.186, 80
138.76.29.7
S: 128.119.40.186, 80
D: 138.76.29.7, 5001
3: Reply arrives
dest. address:
138.76.29.7, 5001
3
10.0.0.4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
10.0.0.2
4
10.0.0.3
4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
Network Layer 4-51
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-52
NAT: Traversal Problem
client wants to connect to
server
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
10.0.0.1
client
?
10.0.0.4
138.76.29.7
NAT
router
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
Network Layer 4-53
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)
10.0.0.1
IGD
138.76.29.7
NAT
router
i.e., automate static NAT port
map configuration
Network Layer 4-54
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
2. connection to
relay initiated
by client
client
3. relaying
established
1. connection to
relay initiated
by NATed host
138.76.29.7
10.0.0.1
NAT
router
Network Layer 4-55
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-56
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-57
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 description
0
0
echo reply (ping)
3
3
3
3
3
3
0
1
2
3
6
7
dest. network unreachable
dest. host unreachable
dest. protocol unreachable
dest. port unreachable
dest. network unknown
dest. host unknown
4
0
source quench
8
0
echo request (ping)
9
10
11
12
0
0
0
0
route advertisement
router discovery
TTL expired
bad IP header
Network Layer 4-58
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-59
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-60
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-61
IPv6 datagram format
priority: identify priority among datagrams in flow
flow Label: identify datagrams in same “flow.”
(concept of“flow” not well defined).
ver
pri
flow label
payload length next header hop limit
source address
(128 bits)
destination address
(128 bits)
data
32 bits
Network Layer 4-62
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 discovery
multicast group management functions
Network Layer 4-63
More slides
IPv4 Fragmentation
Datagram Forwarding Table
Getting a datagram from source to destination
IPv6-IPv4 Tunneling
Network Layer 4-64
IP Fragmentation & Reassembly
fragmentation:
MTU (Maximum Transmission Unit)
reassembly
…
• More Fragments bit
• Datagram ID
• Fragment Offset (in 8-byte
units)
in: one large datagram
out: 3 smaller datagrams
…
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
Network Layer 4-65
IP Fragmentation
Example
4000 bytes datagram
MTU = 1500 bytes
1480 bytes in data field
offset = 1480/8
length ID fragflag
=4000 =x
=0
offset
=0
One large datagram becomes
several smaller datagrams
length ID fragflag
=1500 =x
=1
offset
=0
length ID fragflag
=1500 =x
=1
offset
=185
length ID fragflag
=1040 =x
=0
offset
=370
Network Layer 4-66
Datagram forwarding table
Destination Address Range
Link Interface
11001000 00010111 00010000 00000000
through
11001000 00010111 00010111 11111111
0
11001000 00010111 00011000 00000000
through
11001000 00010111 00011000 11111111
1
11001000 00010111 00011001 00000000
through
11001000 00010111 00011111 11111111
2
otherwise
3
Q: but what happens if ranges don’t divide up nicely?
Network Layer 4-67
Longest prefix matching
longest prefix matching
when looking for forwarding table entry for given
destination address, use longest address prefix that
matches destination address (more on this coming soon)
Destination Address Range
Link interface
11001000 00010111 00010*** *********
0
11001000 00010111 00011000 *********
1
11001000 00010111 00011*** *********
2
otherwise
3
examples:
DA: 11001000 00010111 00010110 10100001
DA: 11001000 00010111 00011000 10101010
which interface?
which interface?
Network Layer 4-68
Getting a datagram from source to dest.
forwarding table in A
Dest. Net. next router Nhops
223.1.1
223.1.2
223.1.3
IP datagram:
misc source
dest
fields IP addr IP addr
data
A
223.1.1.4
223.1.1.4
223.1.1.1
Payload in datagram
remains unchanged, as it
travels source to
destination
addr fields of interest here
1
2
2
223.1.2.1
223.1.1.2
223.1.1.4
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.2
E
223.1.3.2
Network Layer 4-69
Getting a datagram from source to dest.
Dest. Net. next router Nhops
misc
data
fields 223.1.1.1 223.1.1.3
223.1.1
223.1.2
223.1.3
Starting at A, given IP
datagram addressed to B:
look up net. address of B
A
223.1.1.4
223.1.1.4
223.1.1.1
find B is on same net. as A (B and
223.1.2.1
A are directly connected)
223.1.1.2
223.1.1.4
link layer will send datagram
directly to B (inside link-layer
frame)
1
2
2
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.2
E
223.1.3.2
Network Layer 4-70
Getting a datagram from source to dest.
Dest. Net. next router Nhops
misc
data
fields 223.1.1.1 223.1.2.3
223.1.1
223.1.2
223.1.3
Starting at A, dest. E:
look up network address of E
E on different network
A
223.1.1.4
223.1.1.4
223.1.1.1
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…..
1
2
2
223.1.2.1
223.1.1.2
223.1.1.4
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.2
E
223.1.3.2
Network Layer 4-71
Getting a datagram from source to dest.
misc
data
fields 223.1.1.1 223.1.2.3
Arriving at 223.1.4, destined
for 223.1.2.2
look up network address of E
Dest.
next
network router Nhops interface
223.1.1
223.1.2
223.1.3
A
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!)
-
1
1
1
223.1.1.4
223.1.2.9
223.1.3.27
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.2.9
B
223.1.1.3
223.1.3.1
223.1.3.27
223.1.2.2
E
223.1.3.2
Network Layer 4-72
Transition from IPv4 to IPv6
not all routers can be upgraded simultaneously
“flag days”
how will network operate with mixed IPv4 and
IPv6 routers?
tunneling: IPv6 datagram carried as payload in
IPv4 datagram among IPv4 routers
no
IPv4 header fields
IPv4 source, dest addr
IPv6 header fields
IPv6 source dest addr
IPv4 payload
UDP/TCP payload
IPv6 datagram
IPv4 datagram
Network Layer 4-73
Tunneling (6in4 – static tunnel)
IPv4 tunnel
connecting IPv6 routers
A
B
IPv6
IPv6
A
B
C
IPv6
IPv6
IPv4
logical view:
E
F
IPv6
IPv6
D
E
F
IPv4
IPv6
IPv6
physical view:
flow: X
src: A
dest: F
data
A-to-B:
IPv6
src:B
dest: E
src:B
dest: E
Flow: X
Src: A
Dest: F
Flow: X
Src: A
Dest: F
data
data
B-to-C:
IPv6 inside
IPv4
B-to-C:
IPv6 inside
IPv4
flow: X
src: A
dest: F
data
E-to-F:
IPv6
Network Layer 4-74
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-75
Interplay between routing and forwarding
routing algorithm determines
end-end path through network
routing algorithm
forwarding table determines
local forwarding at this router
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
IP destination address in
arriving packet’s header
0111
1
3 2
Network Layer 4-76
Graph abstraction: costs
5
2
Graph: G = (N,E)
N = set of “Nodes” routers = { u, v, w, x, y, z }
u
v
2
1
x
3
w
3
1
5
z
1
y
2
E = set of “Edges” links = { (u,v), (u,x), (u,w), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Cost of link xw is c(x,w) = 3
Cost of link could be always 1 hop, or related directly
to delay or inversely to bandwidth, or any other metric
Question: What is the least-cost path between u and z?
Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Routing algorithm: is algorithm that finds least-cost path
Network Layer 4-77
Routing Algorithm Classification
Global or decentralized?
Static or dynamic routing?
Global:
all routers have complete and
global knowledge about
topology, and all link-costs
“link state” algorithms
Static:
routes change slowly over
time, manually configured
Decentralized:
router knows physicallyconnected neighbors, link costs
to neighbors
exchange of info with neighbors
Iteratively calculate the leastcost paths to other routers
“distance vector” algorithms
Dynamic:
routes change more quickly
periodic update, or
in response to link-cost
changes
Network Layer 4-78
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-79
A Link-State (LS) Routing Algorithm
Dijkstra’s algorithm
link costs known to all nodes
Each node sends out “link
state multicasts” with
costs to its neighbors
all nodes get same info
Each node computes least
cost paths from itself to all
other nodes
gives forwarding table for
that node
iterative: after k iterations,
knows least cost path to k
destinations
Notation:
c(x,y): link cost from node x to y.
Initially cost(x,y) = ∞ if not direct
neighbors
D(v): Distance; current value of
cost of path from source to
destination v
p(v): predecessor node, i.e.
previous node that is neighbor of v
along current path from the source
to node v
N': set of Nodes whose least cost
path definitively known
Network Layer 4-80
Dijsktra’s Algorithm at node u
1 Initialization:
2 N' = {u}
3 for all nodes v
4
if v adjacent (directly attached neighbor) to u
5
then D(v) = c(u,v)
6
else D(v) =
7
8 Loop
9
find node w not in N' such that D(w) is a minimum
10 add node w to N'
11 update D(v) for all v adjacent to w and not in N' :
12
D(v) = min{ D(v), D(w) + c(w,v) }
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes N in N'
Network Layer 4-81
Dijkstra’s algorithm: example
D(v) D(w) D(x) D(y) D(z)
Step
0
1
2
3
4
5
N'
p(v)
p(w)
p(x)
u
uw
uwx
uwxv
uwxvy
uwxvyz
7,u
6,w
6,w
3,u
∞
∞
5,u
∞
5,u 11,w
11,w 14,x
10,v 14,x
12,y
p(y)
p(z)
x
9
notes:
construct shortest path tree by
tracing predecessor nodes
ties can exist (can be broken
arbitrarily)
5
7
4
8
u
3
w
y
2
z
3
4
7
v
Network Layer
4-82
Dijkstra’s algorithm: example node u
v
Step
0
1
2
3
4
5
N'
u
ux
uxv
uxvy
uxvyw
uxvywz
w
D(v),p(v) D(w),p(w)
2,u
5,u
2,u
4,x
4,x
3,y
x
y
z
D(x),p(x)
1,u
D(y),p(y)
2,x
D(z),p(z)
4,y
4,y
2,x
5
2
u
v
2
1
x
3
w
3
1
5
z
1
y
2
Network Layer 4-83
Dijkstra’s algorithm: forwarding table
Resulting shortest-path tree from node u as root:
v
w
u
Root
z
x
y
Resulting forwarding table in u:
destination
via link
cost
v
x
(u,v)
(u,x)
2
y
(u,x)
2
w
(u,x)
3
z
(u,x)
4
1
Network Layer 4-84
Dijkstra’s algorithm, discussion
Algorithm complexity: n nodes (root node is excluded)
each iteration: need to check all nodes, not in N’
n(n+1)/2 comparisons: Order of (n2)
Oscillations possible:
e.g., if link cost = delay-based or traffic-based, dynamically
variable metric
must avoid these metrics
But:
Good for small networks
Link-cost changes are not frequent, more stable
network
Faster to converge when changes in link-costs
Network Layer 4-85
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-86
Distance Vector (DV) Algorithm
Bellman-Ford Equation:
Define
dx(y) := cost of least-cost path from x to y
If v is any neighbor to x with link cost c(x,v) and has dv(y) as leastcost path to y
Then the DV estimate:
dx(y) = min { c(x,v) + dv(y) }
cost from neighbor v to destination y
cost to neighbor v
Network Layer 4-87
min taken over all neighbors v of x
Distance vector (DV) algorithm
Basic idea:
distributed, asynchronous, iterative
from time-to-time, each node sends to neighbors only
its own distance vector DV estimate
When a node x receives new DV estimate from
neighbor v, it updates its own DV using Bellman-Ford
equation:
dx(y) ← minv {c(x,v) + dv(y)} for each node y ∊ N
Under normal conditions, when information comes in
about new link costs:
The estimate dx(y) converge to the actual least cost
Routing table recalculated
New results sent out to all neighbors
Network Layer 4-88
Bellman-Ford: example
Nodes v, x & w are the neighbors of u
5
2
u
v
2
1
x
3
w
3
1
Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
5
z
1
y
2
BF equation says:
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
Node x that achieves minimum is the next
hop in least-cost path to z ➜ forwarding table
Network Layer 4-89
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
node x table
cost to
x y z
cost to
x y z
from
from
x 0 2 7
y ∞∞ ∞
z ∞∞ ∞
node y table
cost to
x y z
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
x 0 2 3
y 2 0 1
z 7 1 0
2
x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
node z table
cost to
x y z
from
from
x
x ∞∞ ∞
y ∞∞ ∞
z 7 1 0
y
7
1
z
time
Network Layer 4-90
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
x ∞∞ ∞
y ∞∞ ∞
z 7 1 0
x 0 2 3
y 2 0 1
z 7 1 0
x 0 2 3
y 2 0 1
z 3 1 0
from
cost to
x y z
cost to
x y z
cost to
x y z
x 0 2 7
y 2 0 1
z 7 1 0
x 0 2 3
y 2 0 1
z 3 1 0
from
from
cost to
x y z
cost to
x y z
x 0 2 7
y 2 0 1
z 3 1 0
2
x
y
7
1
z
cost to
x y z
from
from
from
x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
node z table
cost to
x y z
from
from
x 0 2 7
y ∞∞ ∞
z ∞∞ ∞
node y table
cost to
x y z
from
node x table
cost to
x y z
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
x 0 2 3
y 2 0 1
z 3 1 0
time
Network Layer 4-91
DV: link cost changes (good news)
Link cost changes: decreased cost
node detects local link cost change
1
4
updates routing info, recalculates
distance vector
if DV changes, notify neighbors
x
y
50
1
z
At time t0, y detects the link-cost change, updates its DV,
and informs its neighbors.
“good news
travels fast”
At time t1, z receives the update from y and updates its table.
It computes a new least cost to x and sends its neighbors its DV.
At time t2, y receives z’s update and checks its distance table.
y’s least costs do not change and hence y does not send any
update to z.
Network Layer 4-92
DV: link cost changes (bad news)
Link cost changes: increased cost
60
bad news travels slow - “count to
infinity” problem!
44 iterations before algorithm stabilizes!
x
y
50
1
z
y already knows z has cost 5 to reach x
y therefore announces cost 6 to reach x
z announces cost is now 7, etc..
Poisoned reverse:
If z routes through y to get to x:
4
“bad news
travels slow”
z tells y its (z’s) distance to x is infinite
(so y won’t route to x via z)
will this completely solve count to
infinity problem?
Network Layer 4-93
Comparison of LS and DV algorithms
Message complexity
LS: with n nodes, E links,
O(nE) messages sent
DV: exchange between
neighbors only
Convergence due changes
LS:
may have oscillations
fast convergence
DV:
may be routing loops
count-to-infinity problem
slow convergence
Robustness: what happens
if router malfunctions?
LS:
node can advertise
incorrect link cost
each node computes only
its own table
limited damage
DV:
node can advertise
incorrect path cost
each node’s table used by
others
• error propagates through
network
Network Layer 4-94
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-95
Hierarchical Routing
Our routing study thus far - idealization
all routers identical
network “flat”
… not true in practice
scale: millions of destinations!
administrative autonomy
can’t store all destinations in
Internet = network of networks
routing tables!
LS routing info exchange would
swamp links!
DV would never terminate
each network administrator
may want to control routing in
its own network
Network Layer 4-96
Hierarchical Routing
aggregate routers into regions, “autonomous systems” (AS)
Internet: > 39,000 AS
routers in same AS run same routing protocol
“intra-AS” routing protocol
routers in another AS can run different intra-AS routing protocol
border router
at “edge” of its own AS
with direct link to router in another AS
Network Layer 4-97
Interconnected ASs
3c
3b AS3
3a
2a
1c
AS1
1a
2b
AS2
1b
1d
Forwarding table
configured by both
intra- and inter-AS
routing algorithms
2c
Intra-AS
Routing
algorithm
Inter-AS
Routing
algorithm
Forwarding
table
intra-AS sets entries for internal destinations
inter-AS sets entries for external destinations
Network Layer 4-98
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-99
Intra-AS Routing
also known as Interior Gateway Protocols (IGP)
most common Intra-AS routing protocols:
RIP: Routing Information Protocol [DV]
OSPF: Open Shortest Path First [LS]
IS-IS: Intermediate System-Intermediate
System [LS]
EIGRP: Enhanced Interior Gateway Routing
Protocol (Cisco proprietary)
Network Layer 4-100
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-101
RIP ( Routing Information Protocol)
distance vector algorithm
included in BSD-UNIX Distribution 4.3 in 1982
distance metric: number of hops (max = 15 hops)
Version 1 classful and version 2 classless
From router A to subnets:
u
v
A
z
C
B
w
x
D
destination hops
u
0
v
1
w
1
x
2
y
2
z
1
y
Network Layer 4-102
RIP advertisements
distance vectors are exchanged among neighbors
every 30 sec via Response Message (also called
advertisement)
each advertisement: list of up to 25 destination
subnets within AS
If no advertisement heard after 180 sec neighbor
or link declared dead (unreachable).
Routes via neighbor invalidated
New advertisements sent to other neighbors
Link failure info propagates to entire network
Poisoned reverse used with max hop count 15
Infinite distance is 16 hops
RIP v.2 also supports route aggregation (1998)
Network Layer 4-103
RIP Table processing
RIP routing tables managed by application-level
process called routed (route daemon)
advertisements periodically sent in UDP packets (port
520) using broadcast (or multicast, RIP v.2)
routed
routed
transport
(UDP)
network
(IP)
link
physical
transport
(UDP)
forwarding
table
forwarding
table
network
(IP)
link
physical
Network Layer 4-104
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-105
OSPF (Open Shortest Path First)
“open”: just means publicly available (RFC 2328)
uses Link State algorithm
complete topology map built at each node
route computation using Dijkstra’s algorithm
works in larger networks (hierarchical structure with areas)
OSPF advertisements sent within area via flooding.
carried in OSPF messages directly over IP with protocol number
89 (no UDP- or TCP-transport)
sent at least every 30 minutes
Network Layer 4-106
OSPF “advanced” features
security: all OSPF messages can be authenticated (to
prevent malicious intrusion)
multiple same-cost paths allowed
Send HELLO messages to establish adjacencies with
neighbors to check operational links
hierarchical OSPF in large domains.
Network Layer 4-107
Hierarchical OSPF
boundary router
backbone router
backbone
area
border
routers
Area 3
internal
routers
Area 1
Area 2
Network Layer 4-108
Hierarchical OSPF
two-level hierarchy: local areas, one backbone (area 0).
Link-state advertisements only in area
each node has detailed area topology; only knows
direction (shortest path) to subnets in other areas.
area border routers: “summarize” subnets in own area,
advertise to other area border routers.
backbone routers: run OSPF routing limited to backbone.
boundary routers: connect to other AS’s.
Network Layer 4-109
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-110
Internet inter-AS routing: BGP
BGP (Border Gateway Protocol)
the de facto standard routing protocol on the Internet
Complex protocol
Communicates over TCP port 179 with authentication
BGP provides each AS a means to:
o Obtain prefix reachability information from
neighboring ASs.
o Propagate reachability information to all ASinternal routers.
o Determine “good” routes to prefixes based on
reachability information and policy.
Network Layer 4-111
BGP basics
pairs of routers (BGP peers) exchange routing info over
semi-permanent TCP connections: BGP sessions
BGP sessions need not correspond to physical links.
advertising paths to different destination network prefixes (“path
vector” protocol)
when AS3 advertises a prefix to AS1:
AS3 promises it will forward datagrams towards that prefix.
AS3 can aggregate prefixes in its advertisement
3c
3b
other
networks
3a
BGP
message
AS3
2c
1c
1a
AS1
1d
2a
1b
2b
other
networks
AS2
Network Layer 4-112
Distributing Reachability Info
With “external BGP” eBGP session between 3a and
1c, AS3 sends prefix reachability info to AS1.
1c can then use “internal BGP” iBGP to distribute
new prefix info to all routers in AS1
1b can then re-advertise new reachability info to
AS2 over 1b-to-2a eBGP session
when router learns of new prefix, it creates entry for
prefix in its forwarding table.
eBGP session
3c
3b
other
networks
iBGP session
3a
BGP
message
AS3
2c
1c
1a
AS1
1d
2a
1b
2b
other
networks
AS2
Network Layer 4-113
Path attributes & BGP routes
advertised prefix includes BGP attributes.
prefix + attributes = “route”
two important attributes:
AS-PATH: contains ASs through which prefix can be reached:
e.g., AS 67, AS 17
NEXT-HOP: indicates specific AS router to next-hop AS.
when gateway router receives route advertisement, uses
import policy to accept or decline.
May or may not accept/announce everything to/from peers
Router may learn about more than 1 route to some prefix.
Router must select route based on:
Policy decision
Shortest AS_PATH
Closest NEXT_HOP router
Network Layer 4-114
BGP messages
BGP messages exchanged using TCP.
BGP messages:
OPEN: opens TCP connection to peer and
authenticates sender
UPDATE: advertises new path (or withdraws old)
KEEPALIVE: keeps connection alive in absence of
UPDATES; also ACKs OPEN request
NOTIFICATION: reports errors in previous message;
also used to close connection
Network Layer 4-115
BGP routing policy (1)
legend:
B
W
provider
network
X
A
customer
network:
C
Y
A,B,C are provider networks
x,w,y are customers (of provider networks)
x is dual-homed: attached to two networks
x does not want to route from B via x to C
.. so x will not advertise to B a route to C
Network Layer 4-116
BGP routing policy (2)
legend:
B
W
provider
network
X
A
customer
network:
C
Y
A advertises to B path A-w
B advertises to x path B-A-w
Should B advertise path B-A-w to C?
No
way! B gets no “revenue” for routing C-B-A-w
since neither w nor C are B’s customers
B wants to force C to route to w via A
B wants to route only to/from its customers!
Network Layer 4-117
Why different Intra- & Inter-AS routing?
Policy:
Inter-AS: admin wants control over how its traffic routed,
who routes through its net.
Intra-AS: single admin, so no policy decisions needed
Scale:
hierarchical routing saves routing table size, reduced
update traffic
Performance:
Inter-AS: policy may dominate over performance
Intra-AS: can focus on performance
Network Layer 4-118
Growth of the BGP table: 1994 to 2011
http://bgp.potaroo.net
Network Layer 4-119
Growth of the BGP table: 1994 to Present
http://bgp.potaroo.net
Network Layer 4-120
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-121