You are on page 1of 136

Chapter 4: outline

4.1 introduction 4.5 routing algorithms


4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-1


Network layer
application
 transport segment from transport
network
sending to receiving host data link
physical

on sending side encapsulates network network


 network
data link data link
physical
segments into datagrams
physical
data link
physical network network

 on receiving side, delivers data link


physical
data link
physical

segments to transport layer


network network
 network layer protocols in data link
physical
data link
physical
every host, router
network
data link
physical

 router examines header fields network


application
transport
in all IP datagrams passing network
data link
physical
network
data link
network
data link
through it data link
physical
physical physical

Kurose & Ross 4-2


Service Provided by Network Layer
Messages Messages

Segments
Transport Transport
layer layer
Network Network
service service
Network Network Network Network
layer layer layer layer

End-system
End-system

Data link Data link Data link Data link


layer layer layer layer

B
A

Physical Physical Physical Physical


layer layer layer layer

 Network layer can offer a variety of services to transport layer


 Connection-oriented service or connectionless service
 Best-effort or delay/loss guarantees
Functions of the Network-Layer
 Forwarding: move packets from router’s input to appropriate router
output
(Which output interface of a particular router should be used to forward a
particular packet?)

 Routing: determine the route to be taken by packets from source to


destination.
(Which sequence of routers should a packet go through as the best possible path
from source to destination?)

Priority considerations and Quality of Service (QoS) guarantees may also be


an issue for the Network Layer.
However, common network layer protocol (IP: Internet Protocol) in use today
does not adequately address these issues.
Interplay between routing and forwarding

routing algorithm routing algorithm determines


end-end-path through network

local forwarding table forwarding table determines


header output link local forwarding at this router
value0100 3
0101 2
0111 2
1001 1

value in arriving
packet’s header
0111 1

3 2

Kurose & Ross 4-5


Network service model
Q: What service model for “channel” transporting datagrams
from sender to receiver?

example services for individual example services for a flow of


datagrams: datagrams:
 guaranteed delivery  in-order datagram delivery
 guaranteed delivery with  guaranteed minimum bandwidth
bounded delay to flow
 restrictions on changes in inter-
packet spacing (delay jitter)

Kurose & Ross 4-6


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-7


Datagram networks
 no call setup at network layer
 routers: no state about end-to-end connections
 no network-level concept of “connection”
 packets forwarded using destination host address

application application
transport transport
network 1. send datagrams 2. receive datagrams network
data link data link
physical physical

Kurose & Ross 4-8


Datagram forwarding table
4 billion IP addresses, so
routing algorithm rather than list individual
destination address
local forwarding table
list range of addresses
dest address output link
(aggregate table entries)
address-range 1 3
address-range 2 2
address-range 3 2
address-range 4 1

IP destination address in
arriving packet’s header
1
3 2

Kurose & Ross 4-9


Datagram forwarding table

Destination Address Range Link Interface

11001000 00010111 00010000 00000000


through 0
11001000 00010111 00010111 11111111

11001000 00010111 00011000 00000000


through 1
11001000 00010111 00011000 11111111

11001000 00010111 00011001 00000000


through 2
11001000 00010111 00011111 11111111

otherwise 3

Q: but what happens if ranges don’t divide up so nicely?


Kurose & Ross 4-10
Longest prefix matching
longest prefix matching
when looking for forwarding table entry for given destination
address, use longest address prefix that matches destination
address.

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 which interface?
DA: 11001000 00010111 00011000 10101010 which interface?
Kurose & Ross 4-11
Datagram network: why?
Internet (datagram)
 data exchange among computers
 “elastic” service, no strict timing req.

 many link types


 different characteristics
 uniform service difficult

 “smart” end systems (computers)


 can adapt, perform control, error recovery
 simple inside network, complexity at “edge”

Kurose & Ross 4-12


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-13


Router architecture overview
two key router functions:
 run routing algorithms/protocol (RIP, OSPF, BGP)
 forwarding datagrams from incoming to outgoing link

forwarding tables computed, routing


pushed to input ports routing, management
processor
control plane (software)

forwarding data
plane (hardware)

high-speed
switching
fabric

router input ports router output ports


Kurose & Ross 4-14
Input port functions
lookup,
link forwarding
line layer switch
termination protocol fabric
(receive)
queueing

physical layer:
bit-level reception
data link layer: decentralized switching:
e.g., Ethernet  given datagram dest., lookup output port using
see chapter 5 forwarding table in input port memory (“match
plus action”)
 goal: complete input port processing at ‘line
speed’
 queuing: if datagrams arrive faster than
forwarding rate into switch fabric
Kurose & Ross 4-15
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 rate
 N inputs: switching rate N times line rate desirable
 three types of switching fabrics

memory

memory bus crossbar

Kurose & Ross 4-16


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 output
port memory port
(e.g., (e.g.,
Ethernet) Ethernet)

system bus

Kurose & Ross 4-17


Switching via a bus
 datagram from input port memory – to -
output port memory via a shared bus

 bus contention: switching speed limited


by bus bandwidth

 32 Gbps bus, Cisco 5600: sufficient speed


for access and enterprise routers bus

Kurose & Ross 4-18


Switching via interconnection network
 overcome bus bandwidth limitations

 banyan networks, crossbar, other


interconnection nets initially developed to
connect processors in multiprocessor
 advanced design: fragmenting datagram into
fixed length cells, switch cells through the
fabric.
 Cisco 12000: switches 60 Gbps through the crossbar
interconnection network

Kurose & Ross 4-19


Output ports

datagram
switch buffer link
fabric layer line
protocol termination
queueing (send)

 buffering required when


datagrams arrive from Datagram (packets) can be lost due to
fabric faster than the
transmission rate congestion, lack of buffers
 scheduling discipline
chooses among queued
datagrams for Priority scheduling – who gets best
transmission performance, network neutrality

Kurose & Ross 4-20


Output port queueing

switch
switch
fabric
fabric

at t, packets more one packet time later


from input to output

 buffering when arrival rate via switch exceeds


output line speed
 queueing (delay) and loss due to output port buffer
overflow!
Kurose & Ross 4-21
How much buffering?
 RFC 3439 rule of thumb: average buffering equal
to “typical” RTT (say 250 msec) times link capacity
C
 e.g., C = 10 Gpbs link: 2.5 Gbit buffer
 recent recommendation: with N flows, buffering
equal to
RTT . C
N

Kurose & Ross 4-22


Input port queuing
 fabric slower than input ports combined -> queueing may occur at input
queues
 queueing delay and loss due to input buffer overflow!

 Head-of-the-Line (HOL) blocking: queued datagram at front of queue


prevents others in queue from moving forward

switch switch
fabric fabric

output port contention: one packet time


only one red datagram can be later:
transferred. green packet
lower red packet is blocked experiences HOL
blocking
Kurose & Ross 4-23
Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-24


The Internet network layer
host, router network layer functions:

transport layer: TCP, UDP

routing protocols IP protocol


• path selection • addressing conventions
• RIP, OSPF, BGP • datagram format
network • packet handling conventions
layer forwarding
ICMP protocol
table • error reporting
• router signaling”

link layer

physical layer

Kurose & Ross 4-25


IP datagram format
IP protocol version 32 bits
number total datagram
header length length (bytes)
ver head. type of length
(bytes) len service for
“type” of data fragment fragmentation/
16-bit identifier flgs
offset reassembly
max number time to upper header
remaining hops live layer checksum
(decremented at
32 bit source IP address
each router)
32 bit destination IP address
upper layer protocol
to deliver payload to options (if any) e.g. timestamp,
record route
how much overhead? data taken, specify
 20 bytes of TCP (variable length, list of routers
typically a TCP to visit.
 20 bytes of IP
or UDP segment)
 = 40 bytes + app
layer overhead

Kurose & Ross 4-26


IP fragmentation, reassembly
 network links have MTU
(max.transfer size) - largest
possible link-level frame
 different link types, different fragmentation:


MTUs in: one large datagram
out: 3 smaller datagrams
 large IP datagram divided
(“fragmented”) within net
 one datagram becomes
several datagrams
reassembly
 “reassembled” only at final
destination
 IP header bits used to identify,
order related fragments …

Kurose & Ross 4-27


IP fragmentation, reassembly
example: length ID fragflag offset
 4000 byte datagram =4000 =x =0 =0
 MTU = 1500 bytes
one large datagram becomes
several smaller datagrams

1480 bytes in length ID fragflag offset


data field =1500 =x =1 =0

offset = length ID fragflag offset


1480/8 =1500 =x =1 =185

length ID fragflag offset


=1040 =x =0 =370

Kurose & Ross 4-28


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-29


IP addressing: introduction
 IP address: 32-bit 223.1.1.1
identifier for host, router
interface 223.1.2.1

 interface: connection 223.1.1.2 223.1.1.4 223.1.2.9


between host/router and
physical link
223.1.3.27
 router’s typically have 223.1.1.3
223.1.2.2
multiple interfaces
 host typically has one or
two interfaces (e.g., wired
Ethernet, wireless 802.11) 223.1.3.1 223.1.3.2

 IP addresses associated
with each interface
223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 1 1

Kurose & Ross 4-30


IP addressing: introduction
223.1.1.1
Q: How are interfaces
actually connected? 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

A: wired Ethernet interfaces


connected by Ethernet switches
223.1.3.1 223.1.3.2

A: wireless WiFi interfaces


connected by WiFi base station

Kurose & Ross 4-31


Subnets
 IP address: 223.1.1.1
subnet part - high order
bits 223.1.1.2 223.1.2.1
223.1.1.4 223.1.2.9
host part - low order
bits 223.1.2.2
223.1.3.27
 what’s a subnet ? 223.1.1.3

device interfaces with subnet


same subnet part of IP
223.1.3.2
address 223.1.3.1

can physically reach


each other without
intervening router network consisting of 3 subnets

Kurose & Ross 4-32


Subnets
223.1.1.0/24
223.1.2.0/24
recipe 223.1.1.1

 to determine the 223.1.1.2 223.1.2.1


subnets, detach each 223.1.1.4 223.1.2.9

interface from its host 223.1.2.2


or router, creating 223.1.1.3 223.1.3.27

islands of isolated subnet


networks
223.1.3.2
 each isolated network 223.1.3.1

is called a subnet
223.1.3.0/24

subnet mask: /24


Kurose & Ross 4-33
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.3.27

223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

Kurose & Ross 4-34


IP addressing: CIDR
CIDR: Classless InterDomain 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 host
part part
11001000 00010111 00010000 00000000
200.23.16.0/23

Kurose & Ross 4-35


IP addresses: how to get one?

Q: How does a host get IP address?

 hard-coded by system admin in a file


 Windows: control-panel->network->configuration-
>tcp/ip->properties
 UNIX: /etc/rc.config

 DHCP: Dynamic Host Configuration Protocol:


dynamically get address from a server
 “plug-and-play”

Kurose & Ross 4-36


DHCP: Dynamic Host Configuration Protocol
goal: allow host to dynamically obtain its IP address from network
server when it joins network
 can renew its lease on address in use
 allows reuse of addresses (only hold address while
connected/“on”)
 support for mobile users who want to join network (more
shortly)
DHCP overview:
 host broadcasts “DHCP discover” msg [optional]
 DHCP server responds with “DHCP offer” msg [optional]
 host requests IP address: “DHCP request” msg
 DHCP server sends address: “DHCP ack” msg

Kurose & Ross 4-37


DHCP client-server scenario

DHCP
223.1.1.0/24
server
223.1.1.1 223.1.2.1

223.1.1.2 arriving DHCP


223.1.1.4 223.1.2.9
client needs
address in this
223.1.3.27
223.1.2.2 network
223.1.1.3

223.1.2.0/24

223.1.3.1 223.1.3.2

223.1.3.0/24

Kurose & Ross 4-38


DHCP client-server scenario
DHCP server: 223.1.2.5 DHCP discover arriving
client
src : 0.0.0.0, 68
Broadcast: is there a
dest.: 255.255.255.255,67
DHCPyiaddr:
server0.0.0.0
out there?
transaction ID: 654

DHCP offer
src: 223.1.2.5, 67
Broadcast: I’m a DHCP
dest: 255.255.255.255, 68
server! Here’s an IP
yiaddrr: 223.1.2.4
transaction
address youID:can
654 use
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
Broadcast: OK. I’ll take
yiaddrr: 223.1.2.4
that IP address!
transaction ID: 655
lifetime: 3600 secs

DHCP ACK
src: 223.1.2.5, 67
Broadcast: OK. You’ve
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
got that IPID:
transaction address!
655
lifetime: 3600 secs
Kurose & Ross 4-39
DHCP: more than IP addresses

DHCP can return more than just allocated IP


address on subnet:
 address of first-hop router for client
 name and IP address of DNS sever
 network mask (indicating network versus host portion
of address)

Kurose & Ross 4-40


DHCP: example
DHCP DHCP  connecting laptop needs its IP
DHCP UDP address, addr of first-hop
DHCP IP router, addr of DNS server:
DHCP Eth use DHCP
Phy
DHCP
 DHCP request encapsulated in UDP,
encapsulated in IP, encapsulated in
802.1 Ethernet
DHCP
DHCP DHCP 168.1.1.1
DHCP UDP
DHCP IP  Ethernet frame broadcast (dest:
DHCP Eth router with DHCP FFFFFFFFFFFF) on LAN, received at
Phy server built into router running DHCP server
router

 Ethernet demuxed to IP demuxed,


UDP demuxed to DHCP

Kurose & Ross 4-41


DHCP: example
DHCP DHCP
 DCP server formulates DHCP
ACK containing client’s IP
DHCP UDP
address, IP address of first-hop
DHCP
IP
router for client, name & IP
DHCP Eth address of DNS server
Phy

 encapsulation of DHCP server,


DHCP frame forwarded to client,
DHCP
DHCP UDP
demuxing up to DHCP at
DHCP IP
client
DHCP Eth router with DHCP
Phy server built into  client now knows its IP
DHCP
router address, name and IP address
of DNS server, IP address of its
first-hop router

Kurose & Ross 4-42


IP addresses: how to get one?
Q: how does network get subnet part of IP addr?
A: gets allocated 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

Kurose & Ross 4-43


Hierarchical addressing: route aggregation
hierarchical addressing allows efficient advertisement of routing
information:

Organization 0
200.23.16.0/23
Organization 1
“Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16”

Kurose & Ross 4-44


Hierarchical addressing: more specific routes

ISPs-R-Us has a more specific route to Organization 1

Organization 0
200.23.16.0/23

“Send me anything
with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
Organization 1 beginning 199.31.0.0/16
or 200.23.18.0/23”
200.23.18.0/23

Kurose & Ross 4-45


IP addressing: the last word...

Q: how does an ISP get block of addresses?


A: ICANN: Internet Corporation for Assigned
Names and Numbers http://www.icann.org/
 allocates addresses
 manages DNS
 assigns domain names, resolves disputes

Kurose & Ross 4-46


NAT: network address translation

rest of local network


Internet (e.g., home network)
10.0.0/24 10.0.0.1

10.0.0.4
10.0.0.2
138.76.29.7

10.0.0.3

all datagrams leaving local datagrams with source or


network have same single source destination in this network
NAT IP address: have 10.0.0/24 address for
138.76.29.7,different source port source, destination (as usual)
numbers

Kurose & Ross 4-47


NAT: network address translation
motivation: local network uses just one IP address as far
as outside world is concerned:
 range of addresses not needed from ISP: just one IP
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
 devices inside local net not explicitly addressable,
visible by outside world (a security plus)

Kurose & Ross 4-48


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 addr

 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

Kurose & Ross 4-49


NAT: network address translation
NAT translation table 1: host 10.0.0.1
2: NAT router WAN side addr LAN side addr
changes datagram sends datagram to
source addr from 138.76.29.7, 5001 10.0.0.1, 3345 128.119.40.186, 80
10.0.0.1, 3345 to …… ……
138.76.29.7, 5001,
updates table S: 10.0.0.1, 3345
D: 128.119.40.186, 80
10.0.0.1
1
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 10.0.0.4
10.0.0.2
138.76.29.7 S: 128.119.40.186, 80
D: 10.0.0.1, 3345
4
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3 10.0.0.3
4: NAT router
3: reply arrives changes datagram
dest. address: dest addr from
138.76.29.7, 5001 138.76.29.7, 5001 to 10.0.0.1, 3345

Kurose & Ross 4-50


NAT: network address translation

 16-bit port-number field:


 60,000 simultaneous connections with a single LAN-
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 app
designers, e.g., P2P applications
 address shortage should instead be solved by IPv6

Kurose & Ross 4-51


NAT traversal problem
 client wants to connect to
server with address 10.0.0.1
 server address 10.0.0.1 local to 10.0.0.1
client
LAN (client can’t use it as
destination addr) ?
 only one externally visible NATed 10.0.0.4
address: 138.76.29.7
 solution1: statically configure 138.76.29.7 NAT
NAT to forward incoming router
connection requests at given
port to server
 e.g., (138.76.29.7, port 2500) always
forwarded to 10.0.0.1 port 5000

Kurose & Ross 4-52


NAT traversal problem
 solution 2: Universal Plug and Play
(UPnP) Internet Gateway Device
(IGD) Protocol. Allows NATed 10.0.0.1
host to: IGD
 learn public IP address
(138.76.29.7)
 add/remove port mappings
(with lease times) NAT
router

i.e., automate static NAT port


map configuration

Kurose & Ross 4-53


NAT traversal problem
 solution 3: relaying (used in Skype)
 NATed client establishes connection to relay
 external client connects to relay
 relay bridges packets between to connections

2. connection to
relay initiated 1. connection to
relay initiated 10.0.0.1
by client
by NATed host

3. relaying
client established
138.76.29.7 NAT
router

Kurose & Ross 4-54


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-55


ICMP: internet control message protocol

 used by hosts & routers to


communicate network-level Type Code description
information 0 0 echo reply (ping)
 error reporting: 3 0 dest. network unreachable
unreachable host, network, 3 1 dest host unreachable
port, protocol 3 2 dest protocol unreachable
 echo request/reply (used by 3 3 dest port unreachable
ping) 3 6 dest network unknown
3 7 dest host unknown
 network-layer “above” IP:
4 0 source quench (congestion
 ICMP msgs carried in IP control - not used)
datagrams 8 0 echo request (ping)
 ICMP message: type, code plus 9 0 route advertisement
first 8 bytes of IP datagram 10 0 router discovery
causing error 11 0 TTL expired
12 0 bad IP header

Kurose & Ross 4-56


Traceroute and ICMP
 source sends series of UDP
segments to dest  when ICMP messages arrives,
 first set has TTL =1 source records RTTs
 second set has TTL=2, etc.
 unlikely port number
 when nth set of datagrams stopping criteria:
arrives to nth router:
 UDP segment eventually arrives
 router discards datagrams at destination host
 and sends source ICMP
messages (type 11, code 0)  destination returns ICMP “port
unreachable” message (type 3,
 ICMP messages includes name
of router & IP address code 3)
 source stops

3 probes 3 probes

3 probes
Kurose & Ross 4-57
IPv6: motivation
 initial motivation: 32-bit address space soon 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

Kurose & Ross 4-58


IPv6 datagram format
priority: identify priority among datagrams in flow
flow Label: identify datagrams in same “flow.”
(concept of“flow” not well defined).
next header: identify upper layer protocol for data

ver pri flow label


payload len next hdr hop limit
source address
(128 bits)
destination address
(128 bits)

data

32 bits
Kurose & Ross 4-59
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”
 multicast group management functions

Kurose & Ross 4-60


Transition from IPv4 to IPv6
 not all routers can be upgraded simultaneously
 no “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 header fields IPv6 header fields


IPv4 payload
IPv4 source, dest addr IPv6 source dest addr
UDP/TCP payload

IPv6 datagram
IPv4 datagram

Kurose & Ross 4-61


Tunneling
A B IPv4 tunnel E F
connecting IPv6 routers
logical view:
IPv6 IPv6 IPv6 IPv6

A B C D E F
physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6

Kurose & Ross 4-62


Tunneling
A B IPv4 tunnel E F
connecting IPv6 routers
logical view:
IPv6 IPv6 IPv6 IPv6

A B C D E F
physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6

flow: X src:B src:B flow: X


src: A dest: E src: A
dest: F
dest: E
dest: F
Flow: X Flow: X
Src: A Src: A
data Dest: F Dest: F data

data data

A-to-B: E-to-F:
IPv6 B-to-C: B-to-C: IPv6
IPv6 inside IPv6 inside
IPv4 IPv4 Kurose & Ross 4-63
IPv6: adoption
 US National Institutes of Standards estimate [2013]:
 ~3% of industry IP routers
 ~11% of US gov’t routers

 Long (long!) time for deployment, use


 20 years and counting!
 think of application-level changes in last 20 years: WWW,
Facebook, …
 Why?

Kurose & Ross 4-64


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-65


Interplay between routing, forwarding

routing algorithm determines


routing algorithm
end-end-path through network
forwarding table determines
local forwarding table
local forwarding at this router
dest address output link
address-range 1 3
address-range 2 2
address-range 3 2
address-range 4 1

IP destination address in
arriving packet’s header
1
3 2

Kurose & Ross 4-66


Graph abstraction
5

v 3 w
2 5
u 2 1 z
3
1 2
x 1
y
graph: G = (N,E)

N = set of routers = { u, v, w, x, y, z }

E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

aside: graph abstraction is useful in other network contexts, e.g.,


P2P, where N is set of peers and E is set of TCP connections

Kurose & Ross 4-67


Graph abstraction: costs
5
c(x,x’) = cost of link (x,x’)
3 e.g., c(w,z) = 5
v w 5
2
u cost could always be 1, or
2
3
1 z inversely related to bandwidth,
1 2 or inversely related to
x 1
y
congestion

cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

key question: what is the least-cost path between u and z ?


routing algorithm: algorithm that finds that least cost path

Kurose & Ross 4-68


Routing algorithm classification
Q: global or decentralized information? Q: static or dynamic?
global: static:
 all routers have complete topology,  routes change slowly over time
link cost info dynamic:
 “link state” algorithms  routes change more quickly
decentralized:  periodic update
 router knows physically-connected  in response to link cost
neighbors, link costs to neighbors changes
 iterative process of computation,
exchange of info with neighbors
 “distance vector” algorithms

Kurose & Ross 4-69


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-70


A Link-State Routing Algorithm

Dijkstra’s algorithm notation:


 net topology, link costs known  c(x,y): link cost from node x to
to all nodes y; = ∞ if not direct neighbors
 accomplished via “link state  D(v): current value of cost of
path from source to dest. v
broadcast”
 p(v): predecessor node along
 all nodes have same info path from source to v
 computes least cost paths from  N': set of nodes whose least
one node (‘source”) to all other cost path definitively known
nodes
 gives forwarding table for
that node
 iterative: after k iterations,
know least cost path to k dest.’s

Kurose & Ross 4-71


Dijsktra’s Algorithm
1 Initialization:
2 N' = {u}
3 for all nodes v
4 if v adjacent to u
5 then D(v) = c(u,v)
6 else D(v) = ∞
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add 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 in N'

Kurose & Ross 4-72


Dijkstra’s algorithm: example
D(v), D(w), D(x), D(y), D(z),
Step N' p(v) p(w) p(x) p(y) p(z)
0 u 7,u 3,u 5,u ∞ ∞
1 uw 6,w 5,u 11,w ∞
2 uwx 6,w 11,w 14,x
3 uwxv 10,v 14,x
4 uwxvy 12,y
5 uwxvyz x
9

notes: 5 7
4
 construct shortest path tree by
tracing predecessor nodes 8
 ties can exist (can be broken u
3 w y z
arbitrarily) 2
3
7 4
v
Kurose & Ross 4-73
Dijkstra’s algorithm: another example

Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)


0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz

v 3 w
2 5
u 2 1 z
3
1 2
x 1
y

Kurose & Ross 4-74


Dijkstra’s algorithm: example (2)
resulting shortest-path tree from u:

v w
u z
x y

resulting forwarding table in u:


destination link
v (u,v)
x (u,x)
y (u,x)
w (u,x)
z (u,x)
Kurose & Ross 4-75
Dijkstra’s algorithm, discussion
algorithm complexity: n nodes
 each iteration: need to check all nodes, w, not in N
 n(n+1)/2 comparisons: O(n2)
 more efficient implementations possible: O(nlogn)

oscillations possible:
 e.g., support link cost equals amount of carried traffic:

1
A 1+e A A A
2+e 0 0 2+e 2+e 0
D 0 0 B D 1+e 1 B D B D 1+e 1 B
0 0
0 e 0 0
1
C C 0 1
C 1+e C 0
1
e given these costs, given these costs, given these costs,
initially find new routing…. find new routing…. find new routing….
resulting in new costs resulting in new costs resulting in new costs

Kurose & Ross 4-76


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-77


Distance vector algorithm
Bellman-Ford equation (dynamic programming)
let
dx(y) := cost of least-cost path from x to y
then
dx(y) = min {c(x,v) + dv(y) }
v

cost from neighbor v


to destination y
cost to neighbor v
min taken over all neighbors v of x

Kurose & Ross 4-78


Bellman-Ford example
5
3
clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
v w 5
2
u 2 1 z B-F equation says:
3
1 2 du(z) = min { c(u,v) + dv(z),
x y
1 c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
node achieving minimum is next
hop in shortest path, used in forwarding table
Kurose & Ross 4-79
Distance vector algorithm
 Dx(y) = estimate of least cost from x to y
 x maintains distance vector Dx = [Dx(y): y є N ]

 node x:
 knows cost to each neighbor v: c(x,v)
 maintains its neighbors’ distance vectors. For each neighbor
v, x maintains
Dv = [Dv(y): y є N ]

Kurose & Ross 4-80


Distance vector algorithm
key idea:
 from time-to-time, each node sends its own distance
vector estimate to neighbors
 when x receives new DV estimate from neighbor, it
updates its own DV using B-F equation:

Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N


 under minor, natural conditions, the estimate Dx(y) converge
to the actual least cost dx(y)

Kurose & Ross 4-81


Distance vector algorithm
iterative, asynchronous: each node:
each local iteration caused
by:
 local link cost change wait for (change in local link
 DV update message from cost or msg from neighbor)
neighbor
distributed: recompute estimates
 each node notifies neighbors
only when its DV changes
 neighbors then notify their if DV to any dest has
neighbors if necessary
changed, notify neighbors

Kurose & Ross 4-82


2
1 3 1
Distance Vector Algorithm 5
6
2
(Example Network) 3
4
1 2
Destination Node 6 2
3

4 5

D1 D2 D3 D4 D5

∞ ∞ 1 ∞ 2
(-1) (-1) (6) (-1) (6)

3 6 1 3 2
(1-3-6) (2-5-6) (6) (4-3-6) (6)

3 4 1 3 2
(1-3-6) (2-4-3-6) (6) (4-3-6) (6)

3 4 1 3 2
(1-3-6) (2-4-3-6) (6) (4-3-6) (6)

Network Layer 4-83


Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to
table x y z x y z
x 0 2 7 x 0 2 3

from
y ∞∞ ∞ y 2 0 1
from

z ∞∞ ∞ z 7 1 0

node y cost to
table x y z y
2 1
x ∞ ∞ ∞
x z
y 2 0 1 7
from

z ∞∞ ∞

node z cost to
table x y z
x ∞∞ ∞
from

y ∞∞ ∞
z 7 1 0
time
Kurose & Ross 4-84
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to cost to
table x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3

from
y ∞∞ ∞ y 2 0 1
from

y 2 0 1

from
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y cost to cost to cost to
table x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
y 2 0 1 y 2 0 1 7
from

from

y 2 0 1

from
z ∞∞ ∞ z 7 1 0 z 3 1 0

node z cost to cost to cost to


table x y z x y z x y z
x ∞∞ ∞ x 0 2 7 x 0 2 3
from

y 2 0 1 y 2 0 1
from
from

y ∞∞ ∞
z 7 1 0 z 3 1 0 z 3 1 0
time
Kurose & Ross 4-85
Distance vector: link cost changes
link cost changes:
 node detects local link cost change 1
 updates routing info, recalculates y
4 1
distance vector
x z
 if DV changes, notify neighbors 50

t0 : y detects link-cost change, updates its DV, informs its


“good neighbors.
news t1 : z receives update from y, updates its table, computes new
travels least cost to x , sends its neighbors its DV.
fast”
t2 : y receives z’s update, updates its distance table. y’s least costs
do not change, so y does not send a message to z.

Kurose & Ross 4-86


Distance vector: link cost changes
link cost changes:
 node detects local link cost change 60
 bad news travels slow - “count to y
4 1
infinity” problem!
x z
 44 iterations before algorithm 50
stabilizes: see text

poisoned reverse:
 If Z routes through Y to get to X :
 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?

Kurose & Ross 4-87


Comparison of LS and DV algorithms
message complexity robustness: what happens if
 LS: with n nodes, E links, O(nE) router malfunctions?
msgs sent
LS:
 DV: exchange between neighbors
only  node can advertise incorrect
link cost
 convergence time varies
 each node computes only its
speed of convergence own table
 LS: O(n2) algorithm requires DV:
O(nE) msgs  DV node can advertise
 may have oscillations incorrect path cost
 DV: convergence time varies  each node’s table used by
others
 may be routing loops
 count-to-infinity problem • error propagate thru
network

Kurose & Ross 4-88


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 broadcast and multicast
routing

Kurose & Ross 4-89


Hierarchical routing
our routing study thus far - idealization
 all routers identical

 network “flat”

… not true in practice

scale: with 600 million administrative autonomy


destinations:  internet = network of

 can’t store all dest’s in


networks
routing tables!  each network admin may
want to control routing in
 routing table exchange
its own network
would swamp links!

Kurose & Ross 4-90


Hierarchical routing

 aggregate routers into gateway router:


regions, “autonomous  at “edge” of its own AS
systems” (AS)  has link to router in
 routers in same AS another AS
run same routing
protocol
 “intra-AS” routing
protocol
 routers in different AS
can run different intra-
AS routing protocol

Kurose & Ross 4-91


Interconnected ASes

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
 forwarding table configured
by both intra- and inter-AS
routing algorithm
Intra-AS Inter-AS  intra-AS sets entries for
Routing
algorithm
Routing
algorithm
internal dests
 inter-AS & intra-AS sets
Forwarding
table
entries for external dests

Kurose & Ross 4-92


Inter-AS tasks
 suppose router in AS1 AS1 must:
receives datagram 1. learn which dests are
destined outside of AS1: reachable through AS2,
 router should forward which through AS3
packet to gateway 2. propagate this
router, but which one? reachability info to all
routers in AS1
job of inter-AS routing!

3c
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

Kurose & Ross 4-93


Example: setting forwarding table in router 1d
 suppose AS1 learns (via inter-AS protocol) that subnet x
reachable via AS3 (gateway 1c), but not via AS2
 inter-AS protocol propagates reachability info to all internal
routers
 router 1d determines from intra-AS routing info that its
interface I is on the least cost path to 1c
 installs forwarding table entry (x,I)

3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

Kurose & Ross 4-94


Example: choosing among multiple ASes
 now suppose AS1 learns from inter-AS protocol that subnet
x is reachable from AS3 and from AS2.
 to configure forwarding table, router 1d must determine
which gateway it should forward packets towards for dest x
 this is also job of inter-AS routing protocol!

3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
?
Kurose & Ross 4-95
Example: choosing among multiple ASes
 now suppose AS1 learns from inter-AS protocol that subnet
x is reachable from AS3 and from AS2.
 to configure forwarding table, router 1d must determine
towards which gateway it should forward packets for dest x
 this is also job of inter-AS routing protocol!
 hot potato routing: send packet towards closest of two
routers.

use routing info determine from


learn from inter-AS hot potato routing: forwarding table the
from intra-AS
protocol that subnet choose the gateway interface I that leads
protocol to determine
x is reachable via that has the to least-cost gateway.
costs of least-cost
multiple gateways smallest least cost Enter (x,I) in
paths to each
of the gateways forwarding table

Kurose & Ross 4-96


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 datagram networks  link state
4.3 what’s inside a router  distance vector
 hierarchical routing
4.4 IP: Internet Protocol
 datagram format
4.6 routing in the Internet
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
4.7 Mobile IP

Kurose & Ross 4-97


Intra-AS Routing
 also known as interior gateway protocols (IGP)
 most common intra-AS routing protocols:
 RIP: Routing Information Protocol
 OSPF: Open Shortest Path First
 IGRP: Interior Gateway Routing Protocol
(Cisco proprietary)

Kurose & Ross 4-98


RIP ( Routing Information Protocol)
 included in BSD-UNIX distribution in 1982
 distance vector algorithm
 distance metric: # hops (max = 15 hops), each link has cost 1
 DVs exchanged with neighbors every 30 sec in response message (aka
advertisement)
 each advertisement: list of up to 25 destination subnets (in IP addressing
sense)

from router A to destination subnets:


u v subnet hops
w u 1
A B
v 2
w 2
x x 3
z C D y 3
y z 2
Kurose & Ross 4-99
RIP: example

z
w x y
A D B

C
routing table in router D
destination subnet next router # hops to dest
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Kurose & Ross 4-100
RIP: example
A-to-D advertisement
dest next hops
w - 1
x - 1
z C 4
…. … ... z
w x y
A D B

C
routing table in router D
destination subnet next router # hops to dest
w A 2
y B 2
A 5
z B 7
x -- 1
…. …. ....
Kurose & Ross 4-101
RIP: link failure, recovery
if no advertisement heard after 180 sec -->
neighbor/link declared dead
 routes via neighbor invalidated
 new advertisements sent to neighbors
 neighbors in turn send out new advertisements (if tables
changed)
 link failure info quickly (?) propagates to entire net
 poison reverse used to prevent ping-pong loops (infinite
distance = 16 hops)

Kurose & Ross 4-102


RIP table processing
 RIP routing tables managed by application-level process
called route-d (daemon)
 advertisements sent in UDP packets, periodically
repeated

routed routed

transport transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical

Kurose & Ross 4-103


OSPF (Open Shortest Path First)
 “open”: publicly available
 uses link state algorithm
 LS packet dissemination
 topology map at each node
 route computation using Dijkstra’s algorithm
 OSPF advertisement carries one entry per neighbor
 advertisements flooded to entire AS
 carried in OSPF messages directly over IP (rather than TCP
or UDP)
 IS-IS routing protocol: nearly identical to OSPF

Kurose & Ross 4-104


OSPF “advanced” features (not in RIP)
 security: all OSPF messages authenticated (to prevent
malicious intrusion)
 multiple same-cost paths allowed (only one path in
RIP)
 for each link, multiple cost metrics for different TOS
(e.g., satellite link cost set “low” for best effort ToS;
high for real time ToS)
 integrated uni- and multicast support:
 Multicast OSPF (MOSPF) uses same topology data
base as OSPF
 hierarchical OSPF in large domains.

Kurose & Ross 4-105


Hierarchical OSPF
boundary router
backbone router

backbone
area
border
routers

area 3

internal
routers
area 1
area 2

Kurose & Ross 4-106


Hierarchical OSPF

 two-level hierarchy: local area, backbone.


 link-state advertisements only in area
 each nodes has detailed area topology; only know direction
(shortest path) to nets in other areas.
 area border routers: “summarize” distances to nets in own
area, advertise to other Area Border routers.
 backbone routers: run OSPF routing limited to backbone.
 boundary routers: connect to other AS’s.

Kurose & Ross 4-107


Internet inter-AS routing: BGP
 BGP (Border Gateway Protocol): the de facto
inter-domain routing protocol
 “glue that holds the Internet together”
 BGP provides each AS a means to:
 eBGP: obtain subnet reachability information from
neighboring ASs.
 iBGP: propagate reachability information to all AS-
internal routers.
 determine “good” routes to other networks based on
reachability information and policy.
 allows subnet to advertise its existence to rest of
Internet: “I am here”
Kurose & Ross 4-108
BGP basics
 BGP session: two BGP routers (“peers”) exchange BGP
messages:
 advertising paths to different destination network prefixes (“path vector”
protocol)
 exchanged over semi-permanent TCP connections

 when AS3 advertises a prefix to AS1:


 AS3 promises it will forward datagrams towards that prefix
 AS3 can aggregate prefixes in its advertisement

3c
BGP
3a
message
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

Kurose & Ross 4-109


BGP basics: distributing path information
 using eBGP session between 3a and 1c, AS3 sends prefix
reachability info to AS1.
 1c can then use iBGP do 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
3a iBGP session
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

Kurose & Ross 4-110


Path attributes and BGP routes

 advertised prefix includes BGP attributes


 prefix + attributes = “route”
 two important attributes:
 AS-PATH: contains ASs through which prefix advertisement
has passed: e.g., AS 67, AS 17
 NEXT-HOP: indicates specific internal-AS router to next-
hop AS
 gateway router receiving route advertisement uses
import policy to accept/decline
 e.g., never route through AS x
 policy-based routing

Kurose & Ross 4-111


BGP route selection
 router may learn about more than 1 route to
destination AS, selects route based on:
1. local preference value attribute: policy decision
2. shortest AS-PATH
3. closest NEXT-HOP router: hot potato routing
4. additional criteria

Kurose & Ross 4-112


BGP messages
 BGP messages exchanged between peers over TCP
connection
 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 msg; also used
to close connection

Kurose & Ross 4-113


How does entry get in forwarding table?

routing algorithms

Assume prefix is
local forwarding table in another AS.
entry prefix output port
138.16.64/22 3
124.12/16 2
212/8 4
………….. …

Dest IP
1

3 2

Kurose & Ross 4-114


How does entry get in forwarding table?

High-level overview
1. Router becomes aware of prefix
2. Router determines output port for prefix
3. Router enters prefix-port in forwarding table

Kurose & Ross 4-115


Router becomes aware of prefix

3c
BGP
3a
message
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

 BGP message contains “routes”


 “route” is a prefix and attributes: AS-PATH, NEXT-
HOP,…
 Example: route:
 Prefix:138.16.64/22 ; AS-PATH: AS3 AS131 ;
NEXT-HOP: 201.44.13.125

Kurose & Ross 4-116


Router may receive multiple routes

3c
BGP
3a
message
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

 Router may receive multiple routes for same prefix


 Has to select one route

Kurose & Ross 4-117


Select best BGP route to prefix
 Router selects route based on shortest AS-PATH

 Example: select

 AS2 AS17 to 138.16.64/22


 AS3 AS131 AS201 to 138.16.64/22

Kurose & Ross 4-118


Find best intra-route to BGP route
 Use selected route’s NEXT-HOP attribute
 Route’s NEXT-HOP attribute is the IP address of the
router interface that begins the AS PATH.
 Example:
 AS-PATH: AS2 AS17 ; NEXT-HOP: 111.99.86.55
 Router uses OSPF to find shortest path from 1c to
111.99.86.55

3c
3a 111.99.86.55
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

Kurose & Ross 4-119


Router identifies port for route

 Identifies port along the OSPF shortest path


 Adds prefix-port entry to its forwarding table:
 (138.16.64/22 , port 4)

3c router
3a port
3b
AS3 1 2c other
1c 4 2a networks
2 3
other 1a 2b
networks 1b AS2
AS1 1d

Kurose & Ross 4-120


Hot Potato Routing
 Suppose there two or more best inter-routes.
 Then choose route with closest NEXT-HOP
 Use OSPF to determine which gateway is closest
 Q: From 1c, chose AS3 AS131 or AS2 AS17?
 A: route AS3 AS131 since it is closer

3c
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

Kurose & Ross 4-121


How does entry get in forwarding table?
Summary
1. Router becomes aware of prefix
 via BGP route advertisements from other routers
2. Determine router output port for prefix
 Use BGP route selection to find best inter-AS route
 Use OSPF to find best intra-AS route leading to best
inter-AS route
 Router identifies router port for that best route
3. Enter prefix-port entry in forwarding table

Kurose & Ross 4-122


BGP routing policy
legend: provider
B network
X
W A
customer
C network:

 A,B,C are provider networks


 X,W,Y are customer (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

Kurose & Ross 4-123


BGP routing policy (2)
legend: provider
B network
X
W A
customer
C network:

 A advertises path AW to B
 B advertises path BAW to X
 Should B advertise path BAW to C?
 No way! B gets no “revenue” for routing CBAW 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!

Kurose & Ross 4-124


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 table size, reduced update
traffic
performance:
 intra-AS: can focus on performance
 inter-AS: policy may dominate over performance

Kurose & Ross 4-125


Mobile IP

no mobility high mobility

mobile wireless user, mobile user, mobile user, passing


using same access connecting/ through multiple
point disconnecting from access point while
network using maintaining ongoing
DHCP. connections (like cell
phone)

Typical Mobility Variations


Mobile IP (Terminology)

home network: permanent home agent: entity that will


“home” of mobile perform mobility functions on
(e.g., 128.119.40/24)
behalf of mobile, when mobile is
remote

wide area
network
Permanent address:
address in home
network, can always be
used to reach mobile
e.g., 128.119.40.186 correspondent
Mobile IP (Terminology)
Permanent address: remains
constant (e.g., 128.119.40.186) visited network: network in
which mobile currently
Care-of-address: address in
resides (e.g., 79.129.13/24)
visited network.
(e.g., 79.29.13.2)

wide area
network

foreign agent: entity in


visited network that
performs mobility
correspondent: wants functions on behalf of
to communicate with mobile.
mobile
Mobile IP (Possible Approaches)

Not practically feasible

would be impossible
 Let routing handle it: Routers advertise permanent address

mobiles as tables
of mobile-nodes-in-residence via usual routing table exchange.

with millions of

to maintain
 Routing tables indicate where each mobile located
 No changes needed to end-systems

 Let end-systems handle it:


 Indirect Routing: Communication from correspondent to

Feasible in practical
mobile goes through home agent, then forwarded to

mobile systems
remote
 Direct Routing: correspondent gets foreign address of
mobile, sends directly to mobile
Registering a Mobile outside its Home
Network
home network visited network

1
2
wide area
network

Mobile contacts
Foreign agent contacts home foreign agent on
agent home: “this mobile is entering visited
resident in my network” network
End result:
 Foreign agent knows about mobile
 Home agent knows location of mobile
Mobile IP (Indirect Routing)

Foreign agent
receives packets,
Home agent intercepts forwards to mobile
packets, forwards to visited
foreign agent network
home
network
3
wide area
network
2
1
4
Correspondent
addresses packets
Mobile replies
using home address of
directly to
mobile
correspondent
Mobile IP (Indirect Routing)
 Mobile uses two addresses:
 Permanent Address: used by correspondent (hence mobile
location is transparent to correspondent)
 Care-of-address: used by home agent to forward datagrams to
mobile
 Foreign agent functions may be done by mobile itself
 Triangle Routing: Between correspondent-home-network-mobile.
This is actually inefficient if correspondent and mobile happen to be
in the same network.
Mobile IP (Indirect Routing)

Handling what happens when mobile user moves to another network -


 Registers with new foreign agent
 New foreign agent registers with home agent
 Home agent updates care-of-address for mobile
 Packets continue to be forwarded to mobile (but with new care-
of-address)

Note that even though mobility may force the mobile to change from
one foreign network to another, the on-going connections can be
maintained as the IP addresses do not change! This is important as
disconnecting a flow (e.g. a TCP connection) and setting it up once
again can be very inefficient!
Mobile IP (Direct Routing)

Foreign agent
receives packets,
Correspondent forwards forwards to mobile
to foreign agent visited
network
home
network 4
wide area
2 network
3
Correspondent 1 4
requests, receives
Mobile replies
foreign address of
directly to
mobile
correspondent
Mobile IP (Direct Routing)

 This overcomes the triangle routing problem


 However, this approach is non-transparent to the
correspondent node. The correspondent node must get care-
of-address from home agent. This will have to be repated if
mobile changes the visited network possibly requiring the
flow to be disconnected and established once again!
Mobile IP (Direct Routing)

Handling Mobility of the Mobile Node, moving from one network to


another
 Anchor foreign agent: FA in first visited network
 Data always routed first to anchor FA
 When mobile moves, the new FA arranges to have data forwarded from old
FA (chaining)

foreign net visited


anchor at session start
foreign
agent
wide area 2
network
1 4
new
3 foreign
5
network
correspondent
agent new foreign
correspondent agent

You might also like