0% found this document useful (0 votes)
6 views

Chapter 03 Network Layer and IP ThamKhao

Uploaded by

duy505092
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Chapter 03 Network Layer and IP ThamKhao

Uploaded by

duy505092
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 139

Network Layer and IP

 Understand principles behind network layer services


 Instantiation, implementation in the Internet
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-2
Network layer

 transport segment from applicatio

sending to receiving host n


transport
network
 on sending side data link
physical
network network
encapsulates segments into network
data link data link
physical physical
datagrams data link
physical network network
 on rcving side, delivers data link
physical
data link
physical
segments to transport layer
network network
 network layer protocols in data link data link
physical
physical
every host, router network
data link
physical
 router examines header applicatio
n
network
fields in all IP datagrams data link network
transport
network
physical
passing through it. network
data link
data link
physical
data link
physical
physical

4-3
Two Key Network-Layer Functions

 forwarding: move analogy:


packets from  routing: process of
router’s input to
planning trip from
appropriate router source to dest
output
 forwarding: process
 routing: determine of getting through
route taken by single interchange
packets from
source to dest.
 routing algorithms
Interplay between routing and forwarding

routing algorithm

local forwarding table


header value output link
0100 3
0101 2
0111 2
1001 1

value in arriving
packet’s header
0111 1

3 2
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
 packets between same source-dest pair may take different
paths

applicatio
applicatio
n
n
transport
network 1. Send data 2. Receive data transport
network
data link
data link
physical
physical

4-6
Forwarding table 4 billion
possible entries

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
Longest prefix matching

Prefix Match 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?


Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing


Router Architecture

Two key router functions:


 run routing algorithms/protocol (RIP, OSPF, BGP)
 forwarding datagrams from incoming to outgoing link
Input Port Functions

Physical layer:
bit-level reception
Data link layer: Decentralized switching:
e.g., Ethernet  given datagram dest., lookup output
see chapter 5 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
Three types of switching fabrics
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 Memory Output


Port Port

System Bus
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
Switching Via An Interconnection
Network

 overcome bus bandwidth limitations


 Banyan networks, 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
interconnection network
Output Ports

 Buffering required when datagrams arrive from fabric faster than the
transmission rate
 Scheduling discipline chooses among queued datagrams for transmission
Output port queueing

 buffering when arrival rate via switch exceeds output line


speed
 queueing (delay) and loss due to output port buffer overflow!
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 Gps link: 2.5 Gbit buffer
 Recent recommendation: with N flows,
buffering equal toRTT . C
N
Input Port Queuing

 Fabric slower than input ports combined ->


queueing may occur at input queues
 Head-of-the-Line (HOL) blocking: queued
datagram at front of queue prevents others in
queue from moving forward
 queueing delay and loss due to input buffer
overflow!
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-20
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
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-22
IP datagram format
IP protocol version 32 bits
number total datagram
header length type of length (bytes)
ver head. 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 data taken, specify
overhead with (variable length, list of routers
TCP? typically a TCP to visit.
 20 bytes of TCP or UDP segment)
 20 bytes of IP
 = 40 bytes +
IP Fragmentation & Reassembly
 network links have MTU
(max.transfer size) - largest
possible link-level frame. fragmentation:
 different link types, in: one large datagram
different MTUs out: 3 smaller datagrams
 large IP datagram divided
(“fragmented”) within net
 one datagram becomes reassembly
several datagrams
 “reassembled” only at
final destination
 IP header bits used to
identify, order related
fragments

4-24
IP Fragmentation and Reassembly
length ID fragflag offset
Example =4000 =x =0 =0
 4000 byte
One large datagram becomes
datagram several smaller datagrams
 MTU = 1500
bytes length ID fragflag offset
=1500 =x =1 =0
1480 bytes in
data field length ID fragflag offset
=1500 =x =1 =185
offset =
1480/8 length ID fragflag offset
=1040 =x =0 =370
Chapter 4: Network Layer
 4.51Routing
4. Introduction
algorithms
 Link state
 4.2 Virtual circuit and datagram networks
 Distance Vector
 4.3 What’s inside a router
 Hierarchical routing
 4.4 IP: Internet Protocol
 4.6 Routing in the Internet
 Datagram format
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
 4.7 Broadcast and multicast routing

4-26
IP Addressing: introduction
223.1.1.1
 IP address: 32-bit
identifier for host, 223.1.2.1
223.1.1.2
router interface 223.1.1.4 223.1.2.9
 interface: 223.1.2.2
223.1.3.27
connection between 223.1.1.3

host/router and
physical link
223.1.3.1 223.1.3.2
 router’s typically have
multiple interfaces
 host typically has one
interface
223.1.1.1 = 11011111 00000001 00000001 00000001
 IP addresses
associated with each 223 1 1 1
interface
Subnets
223.1.1.1
 IP address:
 subnet part (high 223.1.2.1
223.1.1.2
order bits) 223.1.1.4 223.1.2.9
 host part (low order
bits) 223.1.1.3 223.1.3.27
223.1.2.2

 What’s a subnet ?
subnet
 device interfaces with
same subnet part of 223.1.3.1 223.1.3.2
IP address
 can physically reach
each other without
network consisting of 3 subnets
intervening router
Subnets
Recipe 223.1.1.0/24
223.1.2.0/24
 To determine the

subnets, detach each


interface from its
host or router,
creating islands of
isolated networks.
Each isolated
network is called a
subnet.

223.1.3.0/24

Subnet mask: /24


Subnets 223.1.1.2

223.1.1.1 223.1.1.4
How many?
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


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
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 as server
 “plug-and-play”
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 an “on”)
Support for mobile users who want to join network (more shortly)
DHCP overview:
 host broadcasts “DHCP discover” msg
 DHCP server responds with “DHCP offer” msg
 host requests IP address: “DHCP request” msg
 DHCP server sends address: “DHCP ack” msg
DHCP client-server scenario

A DHCP 223.1.2.1
223.1.1.1
server
223.1.1.2
223.1.1.4 223.1.2.9
B
223.1.2.2 arriving DHCP
223.1.1.3 223.1.3.27 E client needs
address in this
223.1.3.1 223.1.3.2
network
DHCP client-server scenario
DHCP server: 223.1.2.5 arriving
DHCP discover
client
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654

DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
Lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
time Lifetime: 3600 secs

DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs

Network Layer
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
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”
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
IP addressing: the last word...

Q: How does an ISP get block of


addresses?
A: ICANN: Internet Corporation for Assigned
Names and Numbers
 allocates addresses
 manages DNS
 assigns domain names, resolves disputes
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: 138.76.29.7, have 10.0.0/24 address for
different source port numbers source, destination (as usual)
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).
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
NAT: Network Address Translation
NAT translation table
2: NAT router 1: host 10.0.0.1
WAN side addr LAN side addr
changes datagram sends datagram to
138.76.29.7, 5001 10.0.0.1, 3345 128.119.40.186, 80
source addr from
…… ……
10.0.0.1, 3345 to
138.76.29.7, 5001, S: 10.0.0.1, 3345
updates table D: 128.119.40.186,
80 10.0.0.1
1
S: 138.76.29.7,
2 5001 10.0.0.4
D: 128.119.40.186, 10.0.0.2
80
138.76.29.7 S: 128.119.40.186,
80 4
S: 128.119.40.186,
80 3 D: 10.0.0.1, 3345
10.0.0.3
D: 138.76.29.7, 4: NAT router
3: Reply
5001 arrives changes datagram
dest. address: dest addr from
138.76.29.7, 5001 138.76.29.7, 5001 to 10.0.0.1, 3345
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
 NATpossibility must be taken into account by
app designers, eg, P2P applications
 address shortage should instead be solved
by IPv6
NAT traversal problem
 client wants to connect to
server with address 10.0.0.1
10.0.0.1 Client
 server address 10.0.0.1 local
?
to LAN (client can’t use it as 10.0.0.4
destination addr)
 only one externally visible 138.76.29.7 NAT
NATted address: 138.76.29.7 router
 solution 1: statically
configure NAT to forward
incoming connection
requests at given port to
server
 e.g., (138.76.29.7, port
2500) always forwarded to
10.0.0.1 port 25000 4-45
NAT traversal problem
 solution 2: Universal Plug
and Play (UPnP) Internet 10.0.0.1
Gateway Device (IGD) IGD
Protocol. Allows NATted host
10.0.0.4
to:
 learnpublic IP address 138.76.29.7 NAT
(138.76.29.7) router
 add/remove port

mappings (with lease


times)

i.e., automate static NAT


port map configuration
4-46
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


2. connection
to
connections 1. connection
relay initiated to
10.0.0.1
by client relay initiated
3. relaying by NATted host
Client
established
138.76.29.7 NAT
router
ARP: Address Resolution Protocol

32-bit Internet
Address

ARP RARP

48-bit Ethernet
Address
RARP: Reverse Address Resolution
Protocol
 RARP = Reverse ARP.
 RARP is the opposite of ARP.
 ARP is used when the IP address is
known but the physical address is not
known.
 RARP is used when the physical address
is known but the IP address is not known.
 RARP is often used in conjunction with
the BOOTP protocol (boot PROM) to boot
diskless workstations.
Chapter 4: Network Layer
 4.51Routing
4. Introduction
algorithms
 Link state
 4.2 Virtual circuit and datagram networks
 Distance Vector
 4.3 What’s inside a router
 Hierarchical routing
 4.4 IP: Internet Protocol
 4.6 Routing in the Internet
 Datagram format
 RIP
 IPv4 addressing
 OSPF
 ICMP
 BGP
 IPv6
 4.7 Broadcast and multicast routing
ICMP - Internet Control Message Protocol

 Data sent to a remote computer often travels


through one or more routers.
 These routers can encounter a number of
problems in sending the message to its
ultimate destination.
 Routers use Internet Control Message
Protocol (ICMP) messages to notify the source
IP of these problems.
 ICMP is also used for other diagnosis and
troubleshooting functions.
 ICMP messages encapsulated within an IP
datagram.
The most common ICMP messages

 Echo Request and Echo Reply – ping.


 Source Quench:
 a large amounts of data can overwhelm the router.
 router use ICMP to send a Source Quench message to the source IP
to ask it to slow down the rate at which it is shipping data.
 Destination Unreachable:
 datagram cannot be delivered
 router cannot deliver a message in a downed network (equipment
failure or maintenance).
 Time Exceeded—TTL reaches zero.
 Too many router hops away to reach with the current TTL value.
 router table problems that cause the datagram to loop through the
same routers continuously (routing loop).
 Fragmentation Needed: ICMP sends this message if:
 it receives a datagram with the Don't Fragment bit set.
 and router needs to fragment the datagram in order to forward it
to the next router or the destination.
ICMP: Internet Control Message
Protocol
 used by hosts & routers to communicate network-level
Type Code description
information
0 0 echo reply (ping)
 error reporting: unreachable host, network, port, protocol
3 0 dest. network unreachable
 echo request/reply (used by ping)
3 1 dest host unreachable
 network-layer “above” IP: 3 2 dest protocol unreachable
3
 ICMP msgs carried in IP datagrams
3 dest port unreachable
3 6 dest network unknown
 ICMP message: type, code plus first
3 87bytesdest
of IPhost
datagram
unknown
causing error 4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header
Traceroute and ICMP
 SourceICMP
When sends
message
series ofarrives,
UDP segments
source calculates
to dest RTT
 First has TTL =1
 Traceroute does this 3 times
Second

Stopping has TTL=2, etc.
criterion
 Unlikely port number
 UDP segment eventually arrives at destination host
 When n-th datagram arrives to n-th router:
 Destination returns ICMP “host unreachable” packet (type
3, Router discards datagram

code 3)
 And sends to source an ICMP message (type 11, code 0)
 When source gets this ICMP, stops.
 Message includes name of router& IP address
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing


IPv6
 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
IPv6 Header (Cont)
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
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
Transition From IPv4 To IPv6
 Not all routers can be upgraded
simultaneous
 no “flag days”
 How will the network operate with mixed
IPv4 and IPv6 routers?
 Tunneling: IPv6 carried as payload in IPv4
datagram among IPv4 routers
Tunneling
A B E F
4-60
Logical view: tunnel

IPv6 IPv6 IPv6 IPv6

A B E F
Physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
Tunneling
A B E F
Logical view: tunnel

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 Dest: E Src: A
Dest: F Dest: F
Flow: X Flow: X
Src: A Src: A
data Dest: F Dest: F data

data data

A-to-B: E-to-F:
B-to-C: D-to-E:
IPv6 IPv6
IPv6 inside IPv6 inside
IPv4 IPv4
Chapter 4: Network Layer
 4.4 Introduction
4.1 Routing algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-62
Interplay between routing, forwarding

routing algorithm

local forwarding table


header value output link
0100 3
0101 2
0111 2
1001 1

value in arriving
packet’s header
0111 1

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

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

Remark: Graph abstraction is useful in other network contexts

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


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

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

Question: What’s the least-cost path between u and z ?

Routing algorithm: algorithm that finds least-cost path


Routing Algorithm classification
Global or decentralized Static or dynamic?
information?
Global:
Static:
 routes change slowly
 all routers have complete
topology, link cost info over time
 “link state” algorithms Dynamic:
Decentralized:
 routes change more
 router knows physically-
connected neighbors, link quickly
costs to neighbors  periodic update
 iterative process of
computation, exchange of
 in response to
info with neighbors link cost changes
 “distance vector” algorithms
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing


A Link-State Routing Algorithm

Notation: algorithm
Dijkstra’s
 net topology, link costs known to all nodes
 c(x,y): link cost from node x to y; = ∞ if not direct
neighbors
 accomplished via “link state broadcast”

 all nodes have same info


 D(v): current value of cost of path from source to dest. v

 computes least cost
p(v): predecessor paths
node from
along onefrom
path node (‘source”)
source to v to all
other nodes
 N': set offorwarding
 gives nodes whose least
table for cost path definitively known
that node
 iterative: after k iterations, know least cost path to k dest.’s
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'
Dijkstra’s algorithm: 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

5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y
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)
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.,
1 A link cost = amount
1+e A 2+e
of carried
0
A 0
traffic A
2+e 2+e 0
D B D 1+e1 B D
0 0 0 0 B D 1+e1 B
0 e 0 0 1 1+e 0 e
1
C C C C
1
e
… recompute … recompute … recompute
initially
routing
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-73
Distance Vector Algorithm
Bellman-Ford Equation (dynamic
programming)
Define
dx(y) := cost of least-cost path from x to y

Then

v
dx(y) = min {c(x,v) + dv(y) }

where min is taken over all neighbors v of x


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 du(z) = min { c(u,v) + dv(z),
2
x 1
y
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
Node that achieves minimum is next
hop in shortest path ➜ forwarding table
Distance Vector Algorithm
 Dx(y) = estimate of least cost from x to y
 Node x knows cost to each neighbor v:
c(x,v)
 Node x maintains distance vector Dx =
[Dx(y): y є N ]
 Node x also maintains its neighbors’
distance vectors
 For each neighbor v, x maintains
Dv = [Dv(y): y є N ]
Distance vector algorithm
(4)
Basic idea:
 From time-to-time, each node sends its own

distance vector estimate to neighbors


 Asynchronous

 When a node 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)
Distance Vector Algorithm (5)

Iterative, Each node:


asynchronous: each
local iteration caused by:
wait for (change in local link
 local link cost change
cost or msg from neighbor)
 DV update message from
neighbor
Distributed: recompute estimates
 each node notifies
neighbors only when its
if DV to any dest has
DV changes
changed, notify neighbors
 neighbors then notify
their neighbors if
necessary
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
node x table = min{2+1 , 7+0} = 3
cost to cost to
x y z x y z
x 0 2 7 x 0 2 3
from

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

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

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

from

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

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

x ∞∞ ∞ x 0 2 7 x 0 2 3
from

from
from

y ∞∞ ∞ y 2 0 1 y 2 0 1
z 71 0 z 3 1 0 z 3 1 0
4-80
time
Distance Vector: link cost changes

Link cost changes: 1


 node detects local link cost y
4 1
change
 updates routing info, recalculates x z
50

distance vector
 if DV changes,
At time tnotify
0, y detects the link-cost change, updates its DV,
neighbors
and informs its neighbors.
“good
At time t1, z receives the update from y and updates its table.
news
It computes a new least cost to x and sends its neighbors its D
travels
fast” At time t2, y receives z’s update and updates its distance table
y’s least costs do not change and hence y does not send any
message to z.
Distance Vector: link cost changes

Example:
 Consider the three-node topology shown in
Figure 4.30. Rather than having the link costs
shown in Figure 4.30, the link costs are c(x,y) =
3, c(y,z) = 6, c(z,x) = 4. Compute the distance
tables after the initialization step and after each
iteration of a synchronous version of the
distance-vector algorithm

y
3 6
x z
4
Comparison of LS and DV algorithms

Message complexity Robustness: what happens


 LS: with n nodes, E links, if router malfunctions?
O(nE) msgs sent LS:
 DV: exchange between  node can advertise
neighbors only incorrect link cost
 convergence time varies  each node computes only
its own table
Speed of Convergence
 LS: O(n2) algorithm requires DV:
O(nE) msgs  DV node can advertise
 may have oscillations incorrect path cost
 each node’s table used by
 DV: convergence time varies
others
 may be routing loops
 error propagate thru
 count-to-infinity problem
network
Chapter 4: Network Layer
 4.4 Introduction
4.1 Routing algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing


Hierarchical Routing
Our routing study thus far - idealization
 all routers identical
 network “flat”
… not true in practice

scale: with 200 million administrative


destinations: autonomy
 can’t store all dest’s in  internet = network of
routing tables! networks
 routing table exchange  each network admin may
would swamp links! want to control routing in
its own network
Hierarchical Routing
 aggregate
Gateway routers
router
into regions,
 Direct link to router in another AS
“autonomous
systems” (AS)
 routers in same AS

run same routing


protocol
 “intra-AS” routing
protocol
 routers in different AS
can run different intra-
AS routing protocol

4-86
Interconnected ASes

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b AS1
1d  forwarding table
configured by both
intra- and inter-AS
Intra-AS
Routing
Inter-AS
Routing routing algorithm
algorithm algorithm
 intra-AS sets entries
Forwarding for internal dests
table
 inter-AS & intra-As sets
entries for external
dests
Inter-AS tasks AS1 must:
 suppose router in 1. learn which dests
AS1 receives are reachable
datagram destined through AS2, which
outside of AS1: through AS3
 router should 2. propagate this
forward packet to reachability info to
gateway router, all routers in AS1
but which one? Job of inter-AS routing!

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b AS1
1d
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 2c
3b 2a
AS3 2b
1c AS2
1a 1b AS1
1d
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!

3c … x …
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b AS1
1d
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 interface I that leads
protocol to
x is reachable via gateway to least-cost gateway.
determine
multiple gateways that has the Enter (x,I) in
costs of least-cost
smallest least cost forwarding table
paths to each
of the gateways
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing


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)
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-94
RIP ( Routing Information Protocol)
 distance vector algorithm
 included in BSD-UNIX Distribution in 1982
 distance metric: # of hops (max = 15 hops)

From router A to subnets:

u destination hops
v
u 1
A B w v 2
w 2
x 3
x y 3
z C D z 2
y
RIP advertisements
 distance vectors: exchanged among
neighbors every 30 sec via Response
Message (also called advertisement)
 each advertisement: list of up to 25
destination subnets within AS
RIP: Example

z
w x y
A D B

C
Destination Network Next Router Num. of hops
to dest.
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Routing/Forwarding table in D
RIP: Example
Dest Next hops
w - 1 Advertisement
x - 1 from A to D
z C 4
…. … ...
z
w x y
A D B

C
Destination Network Next Router Num. of hops
to dest.
w A 2
y B 2
z BA 75
x -- 1
…. ….
Routing/Forwarding table in D ....
RIP: Link Failure and 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)
RIP Table processing

 RIP routing tables managed by application-


level process called route-d (daemon)
 advertisements sent in UDP packets, periodically
repeated
routed routed

Transprt Transprt
(UDP) (UDP)
network forwarding network
forwarding table (IP)
(IP)
link table link
physical physical
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-
101
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 router
 advertisements disseminated to entire AS (via
flooding)
 carried in OSPF messages directly over IP (rather than
TCP or UDP
Link-State Advertisement
(LSA)
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; high for real time)
 integrated uni- and multicast support:
 Multicast OSPF (MOSPF) uses same topology
data base as OSPF
 hierarchical OSPF in large domains.
Hierarchical OSPF
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.
Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing


Internet inter-AS routing: BGP

 BGP (Border Gateway Protocol): the de


facto standard
 BGP provides each AS a means to:
1. Obtain subnet reachability information
from neighboring ASs.
2. Propagate reachability information to all
AS-internal routers.
3. Determine “good” routes to subnets based
on reachability information and policy.
 allows subnet to advertise its existence
to rest of Internet: “I am here”
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.
 when AS2 advertises a prefix to AS1:
 AS2 promises it will forward datagrams
towards that prefix.
 AS2 can aggregate prefixes in its
advertisement
3c
eBGP session
iBGP session
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
Distributing reachability
info
 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
3c iBGP session
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
Path attributes & 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. (may be multiple
links from current AS to next-hop-AS)
 when gateway router receives route
advertisement, uses import policy to
accept/decline.
BGP route selection
 router may learn about more than 1
route to some prefix. Router must
select route.
 elimination rules:
1. local preference value attribute: policy
decision
2. shortest AS-PATH
3. closest NEXT-HOP router: hot potato
routing
4. additional criteria
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
msg; also used to close connection
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
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!
Why different Intra- and 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


Chapter 4: Network Layer
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-
117
Broadcast Routing
 deliver packets from source to all other nodes
 source duplication is inefficient:
duplicate
duplicate
R1 creation/transmission R1
duplicate
R2 R2

R3 R4 R3 R4

source in-network
duplication duplication

 source duplication: how does source


determine recipient addresses?
In-network duplication
 flooding: when node receives brdcst pckt,
sends copy to all neighbors
 Problems: cycles & broadcast storm
 controlled flooding: node only brdcsts pkt
if it hasn’t brdcst same packet before
 Node keeps track of pckt ids already brdcsted
 Or reverse path forwarding (RPF): only
forward pckt if it arrived on shortest path
between node and source
 spanning tree
 No redundant packets received by any node
Spanning Tree
 First construct a spanning tree
 Nodes forward copies only along
spanning tree
A A

B B
c c

D D
F E F E

G G
(a) Broadcast initiated at A (b) Broadcast initiated at D
Spanning Tree: Creation
 Center node
 Each node sends unicast join message to
center node
 Message forwarded until it arrives at a node already
belonging to spanning tree

A A
3
B B
c c
4
2
D D
F E F E
1 5
G G
(a) Stepwise construction (b) Constructed spanning
of spanning tree tree
Multicast Routing: Problem
Statement
 Goal: find a tree (or trees) connecting
routers having local mcast group
members
 tree: not all paths between routers used
 source-based: different tree from each sender to rcvrs
 shared-tree: same tree used by all group members

Shared tree Source-based trees


Approaches for building mcast
trees
Approaches:
 source-based tree: one tree per source

 shortest path trees


 reverse path forwarding
 group-shared tree: group uses one tree
 minimal spanning (Steiner)
 center-based trees

…we first look at basic approaches, then specific


protocols adopting these approaches
Shortest Path Tree
 mcast forwarding tree: tree of shortest
path routes from source to all receivers
 Dijkstra’s algorithm
S: source LEGEND
R1 2
1 R4 router with attached
group member
R2 5
router with no attached
3 4
R5 group member
R3 6 i link used for forwarding,
R6 R7 i indicates order link
added by algorithm
Reverse Path Forwarding

 rely on router’s knowledge of unicast


shortest path from it to sender
 each router has simple forwarding
behavior:
if (mcast datagram received on incoming
link on shortest path back to center)
then flood datagram onto all outgoing
links
else ignore datagram
Reverse Path Forwarding: example
S: source
LEGEND
R1
R4 router with attached
group member
R2
router with no attached
R5 group member
R3 datagram will be
R6 R7 forwarded
datagram will not be
forwarded

• result is a source-specific reverse SPT


– may be a bad choice with asymmetric links
Reverse Path Forwarding:
pruning
 forwarding tree contains subtrees with no mcast
group members
 no need to forward datagrams down
subtree
 “prune” msgs sent upstream by router with

no downstream groupLEGEND
S: source
members
R1 router with attached
R4
group member

R2 router with no attached


P group member
P
R5 prune message
R3 P links with multicast
R6 R7 forwarding
Shared-Tree: Steiner Tree

 Steiner Tree: minimum cost tree


connecting all routers with attached
group members
 problem is NP-complete
 excellent heuristics exists
 not used in practice:
 computational complexity
 information about entire network needed
 monolithic: rerun whenever a router needs
to join/leave
Center-based trees
 single delivery tree shared by all
 one router identified as “center” of tree
 to join:
 edge router sends unicast join-msg addressed
to center router
 join-msg “processed” by intermediate routers
and forwarded towards center
 join-msg either hits existing tree branch for this
center, or arrives at center
 path taken by join-msg becomes new branch of
tree for this router
Center-based trees: an example

Suppose R6 chosen as center:

LEGEND

R1 router with attached


R4
3 group member

R2 router with no attached


2 group member
1
R5 path order in which join
messages generated
R3
1 R6 R7
Internet Multicasting Routing: DVMRP
 DVMRP: distance vector multicast routing
protocol, RFC1075
 flood and prune: reverse path forwarding,
source-based tree
 RPF tree based on DVMRP’s own routing tables
constructed by communicating DVMRP routers
 no assumptions about underlying unicast
 initial datagram to mcast group flooded
everywhere via RPF
 routers not wanting group: send upstream
prune msgs
DVMRP: continued…
 soft state: DVMRP router periodically (1
min.) “forgets” branches are pruned:
 mcast data again flows down unpruned branch
 downstream router: reprune or else continue
to receive data
 routers can quickly regraft to tree
 following IGMP join at leaf
 odds and ends
 commonly implemented in commercial routers
 Mbone routing done using DVMRP
Tunneling
Q: How to connect “islands” of multicast
routers in a “sea” of unicast routers?

physical topology logical topology

 mcast datagram encapsulated inside “normal” (non-


multicast-addressed) datagram
 normal IP datagram sent thru “tunnel” via regular IP
unicast to receiving mcast router
 receiving mcast router unencapsulates to get mcast
datagram
PIM: Protocol Independent Multicast
 not dependent on any specific underlying
unicast routing algorithm (works with all)
 two different multicast distribution scenarios :

Dense: Sparse:
 group members  # networks with group
densely packed, in members small wrt #
“close” proximity. interconnected networks
 bandwidth more  group members “widely
plentiful dispersed”
 bandwidth not plentiful
Consequences of Sparse-Dense Dichotomy

Dense Sparse:
 group membership by  no membership until
routers assumed until routers explicitly join
routers explicitly prune  receiver- driven
 data-driven construction of mcast
construction on mcast tree (e.g., center-
tree (e.g., RPF) based)
 bandwidth and non-  bandwidth and non-
group-router group-router processing
processing profligate conservative
PIM- Dense Mode

flood-and-prune RPF, similar to DVMRP


but
 underlying unicast protocol provides RPF
info for incoming datagram
 less complicated (less efficient) downstream
flood than DVMRP reduces reliance on
underlying routing algorithm
 has protocol mechanism for router to detect
it is a leaf-node router
PIM - Sparse Mode
 center-based
approach
 router sends join R1
R4
msg to rendezvous join
point (RP) R2
join
 intermediate routers
R5
update state and join
forward join R3 R7
R6
 after joining via RP,
router can switch to all data multicast rendezvous
source-specific tree from rendezvous point
point
 increased
performance: less
concentration, shorter
PIM - Sparse Mode
sender(s):
 unicast data to RP,

which distributes R1
R4
down RP-rooted tree join
 RP can extend mcast R2
join
tree upstream to R5
source join
R3 R7
 RP can send stop R6
msg if no attached all data multicast rendezvous
receivers from rendezvous point
 “no one is listening!” point
Summary
 4.4 Routing
4.1 Introduction
algorithms
 Link state
 4.2 What’s inside a router
 Distance Vector
 4.3 IP: Internet Protocol
 Hierarchical routing
 Datagram format
 4.5
 IPv4Routing in the Internet
addressing
 RIP
ICMP
 OSPF
IPv6
 BGP

 4.6 Broadcast and multicast routing

4-
139

You might also like