IP Forwarding (Ch 4) A Sample Network Examine IPv4 addresses:

IP Forwarding (Ch 4)
Examine IPv4
addresses:
g
– Hierarchical
Class A
Class B
Class C
0 Network(7)
10
Host (24 bits)
Network(14)
110
Host (16)
Network (21 bits)
Host (8)
S. Venkatesan Department of Computer Science 2010
A Sample Network
H1
H2
H10
H3
Network # 1
H11
H12
H13
Network 4
R1
R3
H6
H4
Network 2
H5
Network 3
R2
H7
S. Venkatesan Department of Computer Science 2010
H9
H8
Datagram Forwarding
g
g
g
g
g
Host has a packet for another host: How to transfer?
Packet has source and destination IP addresses
“Network” part of IP address identifies single
physical network
All hosts with the same network address are
connected to the same physical network
Every physical network has one host (router) that is
connected to one other physical network
S. Venkatesan Department of Computer Science 2010
Forwarding
g
if destination’s network # = network number
of my own then
– Deliver packet on that interface [How? Use ARP]
g
else {consult forwarding table
– if (destination’s network # is in forwarding table)
• Then deliver packet to next hop router (what is this?)
– else deliver packet to default router
}
S. Venkatesan Department of Computer Science 2010
Sample Forwarding Table
H1
H2
H10
H3
Network # 1
H11
R1
Network 2
Network 3
R2
H9
H8
H7
H5
Forwarding table for R1
H13
Network 4
R3
H6
H4
H12
Network #
Next Hop
1
Interface 0
2
Interface 1
3
R2
4
R2
S. Venkatesan Department of Computer Science 2010
Sample Forwarding Table
H1
H2
H10
H3
Network # 1
H11
R1
R3
H6
H4
Network 2
Network 4
H7
Network #
Next Hop
1
Interface 0
2
R1
3
R1
Default
R1
H13
Network 3
R2
H5
Forwarding table for H2
H12
S. Venkatesan Department of Computer Science 2010
H9
H8
Getting an IP address?
g
g
g
g
Boot
Know your MAC address (hardwired)
IP address also hardwired?
– Move host: Problem
– IP address to reflect hierarchical structure
Address of default router?
– Not statically determined.
S. Venkatesan Department of Computer Science 2010
IP Address
g
Automate the process
– DHCP: Dynamic Host Configuration
Protocol
• Booting host broadcasts a request (“what is my
IP address?”); identify self—hostname,
network number, HW address..
• For each network, there is a DHCP server or
DHCP Relay
– DHCP Relay communicates with DHCP Server and
serves request
S. Venkatesan Department of Computer Science 2010
DHCP Relay
Host
Request (1)
Response (4)
DHCP
Relay
Relayed request (2)
Response (3)
DHCP
Server
Other networks
S. Venkatesan Department of Computer Science 2010
IP Routing
g
g
g
g
Process by which forwarding tables are
built
Initially, each node (router) knows
about its neighbors only
Eventually, everyone must know about
how to send datagrams
Problem in Distributed Computing
S. Venkatesan Department of Computer Science 2010
IP Routing—Two Approaches
g
g
Incrementally build reachability
knowledge by exchanging messages
with neighbors
– How many “exchanges?”
Each node has complete network
topology in its local memory. Each
node constructs routing table from
complete topology information
S. Venkatesan Department of Computer Science 2010
Distance Vector Algorithm (RIP)
g
Each node maintains a table
– Table has n entries (n=total number of
nodes)
– Each entry has
• Weight of the path to the destination
• Next Hop to reach the destination
g
Proceed in iterations
– During each iteration, exchange table
entries
S. Venkatesan Department of Computer Science 2010
Distance Vector Algorithm
B
A
B
0
1
B
1
0
1
1
0
1
1
0
1
1
0
C C
F
E
A
A
D
E
1
F
1
D
C
D
E
F
1
1
1
1
0
Tables in the beginning
(not showing next hop)
S. Venkatesan Department of Computer Science 2010
Distance Vector Algorithm
B
A
C
F
E
D
A
B
C
D
E
F
A
0
1,B
2,B
2,D
1,E
1,F
B
1,A
0
1,C
2,C
2,A
2,A
C
2,F
1,B
0
1,D
2,D
1,F
D
2,E
2,C
1,C
0
1,E
2,C
E
1,a
2,A
2,D
1,D
0
2,A
F
1,A
2,C
1,C
F,C
2,A
0
Final Tables (n , next-hop)
S. Venkatesan Department of Computer Science 2010
Topology Change
g
New nodes and links come up?
– Distances may improve or remain the
same
g
A link goes down?
– Count to infinity problem
S. Venkatesan Department of Computer Science 2010
Link State Protocols
g
Each node knows the status of each
link incident on it
– Node id at other end, status (up/down),
cost of link,…
g
Disseminate this information to all
nodes [essentially, flood]
S. Venkatesan Department of Computer Science 2010
Link State Protocol
g
Create a link state packet (LSP) that has
– id of creator of LSP
– List of directly connected neighbors, cost of link to
the nodes
– Sequence number – why?
– TTL for packet
g
Ensure that LSP traverses each link only
once – how?
S. Venkatesan Department of Computer Science 2010
Link State Protocol
g
After a node has complete topology,
– Run Dijkstra’s algorithm for shortest paths (last page)
g
g
OSPF (Open Shortest Paths First) is an IETF
Link State Protocol
Additional features:
– Authentication of routing messages
– Additional hierarchy
• (more scalable); no need to know who to reach each
network; know to reach “area”
– Load balance– multiple routes
S. Venkatesan
Department of Computer Science
2010
Link State Routing
1.
2.
3.
Initialize: confirmed = {mynode} cost = 0
For the node just added to confirmed list in previous step, call
it node Next, select its LSP
For each neighbor (neighbor) of Next, calculate the Cost to
reach this neighbor = cost of Next + weight of edge (Next,
neighbor).
(a) If neighbor is currently not in Tentative and Confirmed lists, add
(neighbor, Cost, Nexthop) to Tentative list
(b) If neighbor is currently in Tentative list and the cost is less than
the currently listed cost of neighbor, replace current entry with
(neighbor, cost, nexthop)
4.
If Tentative list is null; stop. Else, pick an entry from Tentative
list of lowest cost, move it to Confirmed list, and go to Step 2
S. Venkatesan Department of Computer Science 2010
Other Routing Protocols
g
g
g
CIDR
– See soon
BGP – Read from book
Routing for mobile hosts
– See later in Mobile IP
S. Venkatesan Department of Computer Science 2010
Subnetting
1
0
Network(14)
Host (16)
Class B IPv4 address
If I have > 256 hosts (no class C network) in a network and
many networks like this, what do we do?
Wasteful to have class B address for each
S. Venkatesan Department of Computer Science 2010
Subnet
10
Network(14)
Subnet #
Host
16 bits
•How many bits for subnet number?
•Specified by subnet mask.
•Example: 255.255.255.128 => 11111111 11111111
11111111 10000000 => Use first 25 bits as network number
in finding next hop of forwarding table
•Rest of the world does not know about the subnetting
S. Venkatesan Department of Computer Science 2010
Forwarding Table
Subnet #
Subnet Mask
Next Hop
128.96.34.0
255.255.255.128
Interface 0
128.96.34.128
255.255.255.128
Interface 1
128.96.33.0
255.255.255.0
R2
Use of table:
Examine an entry (row0 of table)
Bitwise AND destination IP address and subnet mask
If result is equal to column 1, use next hop of that row
else go to next entry
Need some efficiency in ANDing
S. Venkatesan Department of Computer Science 2010
CIDR
g
Opposite problem: Have many networks
– Say 16 networks and each has few hosts (less
than 256 hosts)
g
g
g
Get multiple Class C network addresses, one
network number for each of your networks
Routing table becomes large
Increase length of network number if Class C
addresses are assigned carefully
(consecutive numbers)
S. Venkatesan Department of Computer Science 2010
CIDR
g
g
g
g
Say 192.4.16 to 192.4.31 are the network
addresses assigned
Common part of all of these is
192.4.0001xxxx
Use this (192.4.0001) to represent all the 16
network numbers. We now have 20 bit
network numbers.
This gave rise to longest prefix matching
when looking up forwarding tables
S. Venkatesan Department of Computer Science 2010
Multicasting
Mostly from sections 4.4 and 3.2 of book
S. Venkatesan Department of Computer Science 2010
Multicasting—How?
g
HW multicasting is possible:
– Ethernet and tokenring provide this in the local
domain
g
In software?
– IPv4 and IPv6 have different address formats
g
g
Broadcast.com successfully exhibited a
market for multicasting services
An application i wants to send same packet
to many hosts. How?
– e.g. Pay per view
S. Venkatesan Department of Computer Science 2010
Some possible schemes
1.
•
•
•
2.
•
•
3.
Unicast to each host
Scalability?
Need to remember all addresses
Waste of resources—same packet sent many
times over same link
Broadcast and let hosts choose to
accept/drop packets
Waste of resources and bandwidth
Congestion
Selectively send to only needed hosts
without sending packets unnecessarily
S. Venkatesan Department of Computer Science 2010
Ideal Solution
g
Source sends one packet to a multicast
address
– Network delivers copy of packet to hosts
of a group
g
g
Hosts decide to join/leave group
without synchronizing or negotiating
with other members
Hosts can belong to multiple groups
S. Venkatesan Department of Computer Science 2010
Internet Multicasting
g
g
g
Implemented on top of a collection of
networks—each network supports HW
multicasting
Extend routing/forwarding functions of routers
3 extensions
– (i) Distance Vector Routing extension
– (ii) Link State Routing extension
– (iii) PIM [on any routing protocol]
S. Venkatesan Department of Computer Science 2010
Multicast Group
g
g
g
Have a specially assigned address
Sender sends one packet to this
address [destination address = this
address]
In IPv4, use class D
1110
28 bits
S. Venkatesan Department of Computer Science 2010
IGMP
g
g
g
Internet Group Management Protocol
How do I advertise my (I am sending)
multicast address?
How do I learn about other group’s
multicast address?
S. Venkatesan Department of Computer Science 2010
Good Multicasting Protocol
1.
2.
3.
4.
Reduce sender’s overhead
Reduce network overhead
Allow hosts to join/leave any time
Group membership does not have to
be known
S. Venkatesan Department of Computer Science 2010
Mechanics of Multicasting a Packet
g
g
g
g
How do I multicast a packet?
What structure do I need? [I know how
to broadcast or flood]
Steiner tree problem
MST
S. Venkatesan Department of Computer Science 2010
Bridges or LAN switches
Connect multiple LANs at physical layer
A
B
N
LAN 1
Forward frames from LAN1
to LAN2 and Vice versa
Bridge
LAN 2
a
b
m
Broadcasting is easy
S. Venkatesan Department of Computer Science 2010
Learning Bridges
A
B
N
LAN 1
Forward frames from LAN1
to LAN2 and Vice versa
Bridge
LAN 2
a
b
m
Frames for destinations A to N need not be sent on LAN2
Let Bridges “learn” hosts’s HW addresses and use this info
for “smart” forwarding
S. Venkatesan Department of Computer Science 2010
Learning Bridges
g
g
g
When a learning bridge boots, it has no
information
It learns by watching and transferring
frames
Periodically clean out entries
– HW address may change, machines may
migrate, etc
S. Venkatesan Department of Computer Science 2010
Multicasting using Learning Bridges
g
Bridges will not forward frames on all ports;
only on selected ones
– build spanning tree
Spanning tree
edges
S. Venkatesan Department of Computer Science 2010
Efficient Operations
g
g
g
g
Prune networks if frames of multicast packet
need not be sent
How does the bridge learn whether it should
forward a multicast frame?
Learn: Observe “source” address
Group members periodically send a frame
having
– Source address: Group address
– Destination address: All bridges
g
Build a spanning tree
S. Venkatesan Department of Computer Science 2010
Building Spanning Tree
g
Send configuration message
– Id of sending bridge
– Id of root of tree (as estimated by sender)
– # of hops from sender to root
g
Keep the “better” configuration message
– Root id is smaller
– Same root but with a shorter distance
– Root id and # hops are same, but the sending
bridge has a smaller id
S. Venkatesan Department of Computer Science 2010
Initialization
g
Initially, each bridge B thinks it is the
root and sends a config message on all
ports
– B=root; #hops=0; sender=B
S. Venkatesan Department of Computer Science 2010
Refinement
g
If a better config message is received by B,
discard old and use new one
– Store it locally and forward (adjust #hops)
– If B thought it was the root and found a better
config message, B knows that B is NOT root,
stops sending its own config messages
g
For each LAN, have a designated bridge
(that forwards frames towards root)
– The one closest to root
– Break ties on bridge id (smallest wins)
S. Venkatesan Department of Computer Science 2010
Failures?
g
g
Root sends config messages
periodically
If I don’t receive a config message, I
will start the Spanning Tree Algorithm
– Think I am root, send a config message, …
S. Venkatesan Department of Computer Science 2010
Bridge’s part in Multicasting
g
Bridge maintains
– Multicast address, outgoing branches,
age, ….
g
On packet arrival:
– Forward packet copy on every outgoing
branch in table for that m-address
– No entry? Discard packet
S. Venkatesan Department of Computer Science 2010
Link State Multicasting in WANs
g
Recap of Link State Routing:
– Each router monitors state of direct links
– Send message al all routers when state
changes
– All routers have complete topology
information
– Compute shortest path tree rooted at itself
g
Extend this to support multicast
S. Venkatesan Department of Computer Science 2010
Link State Multicasting in WANs
g
g
To state of a link (which is LAN), add set of
groups whose members are on that link.
How does a router determine which groups
have members on links?
– Use “bridge” method
– Router monitors LAN for these announcements
– No periodic announcement? Host left group
S. Venkatesan Department of Computer Science 2010
Router’s Steps
g
g
g
Each router uses these and computes
shortest multicast tree – from any
source to any group
Multicast trees computed only on
demand
This is cached
S. Venkatesan Department of Computer Science 2010
R1
Example
R5
R4
R6
A
Router that receives
M-cast packets
R2
R3
Router that does not
Receive M-cast packets
This LAN does not carry m-cast packets
A
Source of m-cast
packets
Group members
S. Venkatesan Department of Computer Science 2010
Packet Handling at Router
g
Router receives an m-packet (Source =
S, Group = G)
– No cache entry for group G?
• Compute shortest path m-tree for (S,G) pair
– For each (of its outgoing ) link that leads to
members of group G:
• Find minimum number of hops needed to
reach a member of G on that link
• Min hops < TTL ? Forward packet on that link
S. Venkatesan Department of Computer Science 2010
M-Spanning Tree Caching
g
g
g
g
Cached records replaced by new ones
[LRU like scheme]
Clear cache when topology changes
First m-packet by S to G incurs high
latency
Each router at each hop computes and
maintains m-tree for each active (S,G)
pair—expensive
S. Venkatesan Department of Computer Science 2010
DV Multicast
g
g
g
Routers do not know complete topology
Each router has <Dest, Cost, NextHop>
entries only
M-cast extension is a two-way process
– Construct mechanism to broadcast---forward
packet to all networks
– Prune back networks that don’t need to be on
[they have not hosts needing m-cast packets]
S. Venkatesan Department of Computer Science 2010
Packet Broadcast [Symmetric links]
Reverse Path Broadcast [RPB]
g Router R receives a packet
– S = source address, G=Destination address
– If (incoming link) is on the shortest path from R to
S then
• Forward packet on all other links
– Else discard [duplicate]
g
Floods packets forward from S and reduces
cycles and loops
S. Venkatesan Department of Computer Science 2010
Efficiency
g
Packets may be sent on a link many
times
R1
R2
Shortest path between S and R2
Shortest path between S and R1
S
S. Venkatesan Department of Computer Science 2010
Efficiency
g
g
g
For each link, have one parent router
relative to a source S
Only the parent router can forward
packets [sent by S] on that link
RPB floods network--need not go over
LANs that have no hosts
S. Venkatesan Department of Computer Science 2010
Reverse Path Multicasting [RPM]
g
g
g
Start with RPB
Prune networks that do not have to receive
packets
Pruning in two stages:
– Find/recognize when a leaf network has no group
members [Leaf network: parent router is the only
router]
– Let hosts of G periodically send announcements
– Propagate “no member of G” up the spanning tree
S. Venkatesan Department of Computer Science 2010
RPM Protocol
g
g
g
Deliver m-cast packets from source along
shortest path broadcast tree (like RPB)
If R=leaf router, all of its child links are leaves
with no members for (S,G) pair, R sends NonMembership Report (NMR) to next-hoprouter for S (predecessor)
R’= router; all routers on its child link have
sent NMR to R’ and R’ has no members for
(S,G), R’ sends NMR to its parent
S. Venkatesan Department of Computer Science 2010
RPM: Handling NMRs
g
g
g
Associate age with NMR
Rejoin multicast tree after maxage time
Router sends cancel-NMR if hosts join
G later [Direct host or down the link]
S. Venkatesan Department of Computer Science 2010
MBone
g
g
g
g
Multicast backbone
Distance Vector Multicast Routing
Protocol [DVMRP]
Class D addresses
Not all routers know/implement DVMRP
– Tunnel packets between DVMRP enabled
routers
g
IETF meetings are multicast on MBone
S. Venkatesan Department of Computer Science 2010
Tunneling
Ordinary routers
Logical Link
DVMRP enabled router
Encapsulate IP in IP
S. Venkatesan Department of Computer Science 2010
Protocol Independent Multicast [PIM]
g
Two modes:
– PIM-SM (Sparse mode)
– PIM-DM (Dense Mode)
• Flood and prune method like DVMRP
– Scalability problem.
g
We will examine PIM sparse mode
S. Venkatesan Department of Computer Science 2010
PIM-SM
g
g
Routers join and leave m-group using
join and prune messages
Where do the routers send these?
– Each group G has a Rendezvous Point
(RP)
– A set of routers are candidates for RPs
– Assume that routers know unicast address
of RPs.
S. Venkatesan Department of Computer Science 2010
Highlights of PIM
1.
2.
3.
4.
Efficient sparse group support
Independent of Routing Protocol
Interoperate with RPM and Link-State
unicasting protocols
Use soft state refresh; no single point
of failures
S. Venkatesan Department of Computer Science 2010
Infrastructure
g
Build m-forwarding tree
g
Two types of trees
– Shared tree
• One tree (for all senders) for a group
• Rooted at RP
– Source-specific tree
– Only for a specific sending host
• First create shared tree; then create one/more source
specific trees
S. Venkatesan Department of Computer Science 2010
Shared Tree Creation
g
g
Router sends a join message to RP for G
[Normal IP unicast (*,G) ]
Passes through sequence of routers and
reaches RP
– Each intermediate router sees join message,
creates forwarding entry for (*,G),
remember interface it came on
– Forward to RP
g
m-cast packets
Join message
RP receives message, construction is
complete
S. Venkatesan Department of Computer Science 2010
Router
Join message
M-Casting
g
g
g
g
Some host wants to multicast a packet?
– Destination address = G
Unicast packet to Designated Router
(DR) (in local LAN) say g;
g has no state information for group G
g Tunnels packet to RP.
RP
G
Payload
S. Venkatesan Department of Computer Science 2010
M-casting
g
RP Receives packet opens packet
finds another IP packet inside
sends packet on (*,G) tree
g
Later host f wants to join. How?
g
g
S. Venkatesan Department of Computer Science 2010
Example
RP
join message
Tunnel
b
a
d
c
e
f
Host
g
Source of
multicast packets
S. Venkatesan Department of Computer Science 2010
Efficiency
g
Encapsulation/decapsulation?
– Can we avoid tunneling? Especially if
many packets are sent from g to RP?
RP sends join message to g (source)
Intermediate routers learn and keep soft
state
g sends packet directly (destination address
= G) without tunneling
S. Venkatesan Department of Computer Science 2010
Efficiency; Continued
g
g
RP to Receiver: (*,G); shared tree and
g to RP is source specific
Source Specific Tree?
– Packet goes from g to RP and then to
receiver
– Why not shorten?
S. Venkatesan Department of Computer Science 2010
Example
RP
join message
b
Tunnel
a
d
g
c
e
f
Host
e wants to join. How?
Source of
multicast packets
S. Venkatesan Department of Computer Science 2010
Source Specific Tree
g
Can e send join to g (the source of mcast packets)?
Routers along the path set up (S,G)
[S=g]
Prune “old” tree
g
PIM bound to IP
g
g
S. Venkatesan Department of Computer Science 2010
Interdomain Multicast
g
g
g
g
Single RP for a group is against
autonomous domain concept
Source and group members in same
domain, RP in different domain?
PIM-SM used within a domain; not
across domains
What do we do for interdomain?
S. Venkatesan Department of Computer Science 2010
Multicast Source Discovery Protocol (MSDP)
g
Connect different domains.
– Each domain runs PIM-SM with its own RP in its
–
–
–
–
–
domain
Connect RPs of all domains
Each RP has >0 MSDP peer RPs in other
domains
TCP to connect each pair of MSDP peers
All MSDP peers form a loose mesh, used as a
broadcast network
Use RPB for broadcasting
S. Venkatesan Department of Computer Science 2010
Details of MSDP
g
Info broadast on mesh of RPs?
– Not group membership
– Source information
• Each RP receives a Register message from
source S when S becomes a source
– RP periodically broadcasts Source Active
messages to its peers (has S’s IP address,
address of G, IP address of originating RP)
S. Venkatesan Department of Computer Science 2010
Message Handling
g
Source Active message by an RP
– Active members in this domain?
• Send source-specific Join message to S
• Build branch of tree
• Each RP (with active members) joins tree
– Source sends multicast messages to RPs
through the trees
– RP uses shared tree within its domain
S. Venkatesan Department of Computer Science 2010
RP
3:MSDP Source Active
Domain A
RP
4:Join
1:Register
2:Join
PIM
Shared tree
DomainB
Source
4: Join
3:MSDP: Source
active
RP
Domain C
S. Venkatesan Department of Computer Science 2010
Core Based Trees
g
g
g
One router for a group is CORE
Build shortest path multicast tree
routed at CORE
New router [host] wants to join tree:
– Unicast join packet to CORE
– Graft a branch when packet reaches a
router already part of tree
g
Sender of m-cast sends on tree:
S. Venkatesan Department of Computer Science 2010
Quality of Service
Sections 6.1, 6.2 and 6.5
S. Venkatesan Department of Computer Science 2010
Different Needs
g
VoIP
– Delay sensitive [both signaling and voice
packets]
g
FTP
– Correctness of bits transmitted
S. Venkatesan Department of Computer Science 2010
Voice communication over IP Networks
g
Telephone traffic:
– 4 kHz channel, 8000 samples/sec [by
Nyquist’s theorem]
– 125 µ Sec between samples
– Examine how the voice packets get
transported
S. Venkatesan Department of Computer Science 2010
Packet’s Journey
Pa
c
t
ke
ge
ne
r
o
a ti
n
l
iv a
a r r tio n
t
e
a
c k tin
P a des
at
at
ck n
ba at io
y
c
a
Pl p li
ap
Sequence
Number
Network Delay
Buffering
delay
D
Low D: Many delayed packets are cutoff
High D: High end-to-end delay. >300mS, poor voice quality
Time
S. Venkatesan Department of Computer Science 2010
Characteristics of Applications
g
g
Tolerance to loss of data
– FTP/RTP
Adaptability
– Audio: move playback time back if packets
arrive with low delays [need to adjust; not
trivial]
– Delay adaptive
– Rate adaptive
S. Venkatesan Department of Computer Science 2010
Approaches to QoS Support
g
Fine grained approach
– Per application
g
Coarse grained approach
– Large classes of data
g
Services
– Guaranteed service class [max delay < agreed value]
– Controlled load {for tolerant, adaptive application}
• Emulate lightly loaded network for those applications even if
network is loaded
• Isolate controlled load traffic from other traffic
– Best effort
S. Venkatesan Department of Computer Science 2010
g
Flow Spec
Mechanisms
– Make request to network. Specify what we want
g
Admission control
– By agreeing, will network be able to serve the new request
and existing requests
g
Traffic shaping
– Ensure that agreed policy is not violated by application
• What if violated?
g
Signaling
– Network elements exchange information among them;
– Users and NEs exchange information for service, flow
spec.,
g
Packet scheduling
S. Venkatesan Department of Computer Science 2010
Signaling
g
g
Need a setup protocol to establish
necessary VC states [like in ATM]
RSVP
– Resource reSerVation Protocol
S. Venkatesan Department of Computer Science 2010
RSVP
g
Use “soft state” in routers
– Benefit: Can increase or decrease level of
allocation
– Some failure? Time out and reservation is deleted
g
g
g
Time-out state information unless periodically
refreshed [30 sec]
Unicast and multicast support
Receiver-oriented
S. Venkatesan Department of Computer Science 2010
RSVP Operation
g
g
g
Sender sends a PATH message to
receiver containing Tspec
– Receiver needs Tspec and path
Intermediate routers find reverse route
Receiver sends a RESV (reservation)
message to sender
– RESV has Sender’s Tspec Receiver’s Rspec
S. Venkatesan Department of Computer Science 2010
RSVP Operation
g
Each router
1. Examines RESV message
2. Allocates resources to satisfy request
If OK (can reserve), pass RESV to next
router
Else send ERROR message to receiver
g
Receiver refreshes every 30 seconds
– Resends RESV message
S. Venkatesan Department of Computer Science 2010
Example
Sender
PATH message
RESV message
Receiver
S. Venkatesan Department of Computer Science 2010
Failures in Path?
g
g
g
Send PATH message every 30 seconds
– Sooner if there are failures
RESV message follows new path
– Old routers will purge after timeout
Multicast?
– Singe source-multiple receivers
– Multiple source-multiple receivers
S. Venkatesan Department of Computer Science 2010
Multicasting Example
Sender
PATH message
M erge point. RESV that
Satisfies both points
RESV message
Receiver R2
RESV message
Receiver R1
S. Venkatesan Department of Computer Science 2010
Packet Handling
g
g
g
All setups done
How do you handle each packet?
Two issues:
– Packet classifying: Knowing which packet
has special handling
– Packet scheduling
S. Venkatesan Department of Computer Science 2010
Packet Classification
g
Associate packet with RESV- How?
– Source IP address, Destination IP address,
source port number, destination port
number
S. Venkatesan Department of Computer Science 2010
Packet Scheduling
g
g
g
FIFO queue is oblivious to QoS
Allocate bandwidth and buffer space
Fair Queueing
– Have one queue per flow
– Serve each queue in some fashion
• Round robin is a possibility
– What if packets are of varying sizes?
– If a flow is too active (more packets than allowed),
buffer (queue) is full and new packets will be
dropped—achieves the need
S. Venkatesan Department of Computer Science 2010
FQ
Consider one queue and packet i
g S is starting time (for transmission) of
i
packet i
g F is finish time of packet i
i
g P is time to transmit packet i
i
Fi = Si + Pi
g
S. Venkatesan Department of Computer Science 2010
FQ Continued
g
g
g
g
Si = max(Ai,Fi-1) {Ai is arrival time packet i}
Pi = packet length/data rate allocated to
this queue
Choose packet with smallest Fi to
transmit
Weighted FQ is possible (associate
weights to queues)
S. Venkatesan Department of Computer Science 2010
IntServ
g
Integrated Services—what we have
see so far
– Maintain per-flow soft-state at each router
– Classify, police and queue packets of each
flow
g
Scalability?
– When line speed goes up, number of flows
goes up also
S. Venkatesan Department of Computer Science 2010
DiffServ [RFC 2475]
g
g
g
Have small number of classes
Treat each packet of same class in the
same manner
Classify each packet based on what
class it belongs to
S. Venkatesan Department of Computer Science 2010
Packet Identification
g
Who identifies first?
– At network boundary—edge routers
• Check data rate of a “flow”; <= some value? It
is a “premium” class; else Best Effort (BE)
g
g
Where in packet do you place this?
How does an intermediate router deal
with marked packet?
S. Venkatesan Department of Computer Science 2010
PHB
g
g
g
Per Hop Behavior
Use TOS field of IPv4 header [8bits]
6 bits for DiffServ Code Point (DSCP)
– Some classes: Expedited Forwarding (EF)
Assured Forwarding 1 (AF1)
Assured Forwarding n (AFn)
Best Effort (BE)
g
Limit rates: Sum of all EF packet rates coming into
the network < slow link’s data rate
– Ensure that even if all EF packets traverse the slow link, EF
packets can be routed quickly.
S. Venkatesan Department of Computer Science 2010
PHB Continued
g
On entry into network:
– Classify and condition (at the boundary)
– Assign aggregate behavior
• Behavior identified by DSCP
g
In core networks
– Forward packets based on PHB
g
Packet scheduling:
– Weighted FQ
– Shapers
– Droppers
S. Venkatesan Department of Computer Science 2010