chapter_19_DVMRP
Download
Report
Transcript chapter_19_DVMRP
DVMRP
Distance Vector Multicast Routing
Protocol
Jerad Bates
UMBC - Fall 2006
DVMRP Basics
An interior gateway protocol
Can only route multicast datagrams
Functions within an Autonomous System
(AS) but not between ASs
Routers need additional protocol(s) for nonmulticast routing, but DVMRP could be
extended to unicast
Basis for the internet’s multicast
backbone (MBONE)
How DVMRP Fits Into
Multicasting
IGMP - used for discovery of hosts in
multicast groups, messages
exchanged between neighbors
DVMRP - routes multicast datagrams
within an AS
MBGP (Multicast BGP) - routes
multicast datagrams between ASs
DVMRP Tree Spanning and
Pruning
Uses Reverse Path Flooding to forward
multicast data
Uses Pruning to reduce amount of traffic
needed to be sent
Pruning occurs when routers receive
multicast data for which they have no paths
that subscribe to that group
Routers then send back pruning packets to
tell the sending router not to send it packets
for that multicast group
DVMRP Packet
8 bits
8 bits
16 bits
Type
Code
Checksum
Reserved
Minor Version
Major Version
Further portion of packet (up to 510 bytes) – Depends on Code
Encapsulated in IP Datagrams (IP protocol
number 2, same as IGMP)
IGMP Packet type of 0x13
DVMRP Packet Structure
8 bits
8 bits
16 bits
Type
Code
Checksum
Reserved
Minor Version
Major Version
Further portion of packet (up to 510 bytes) – Depends on Code
Type: Indicates packet is a DVMRP packet, set to
0x13
Code: designates the type of DVMRP packet
Checksum: 1’s compliment of the 1’s complement
of the entire packet (with checksum set to 0)
Minor & Major Versions: Set to 0xFF and 3
respectively for current version of DVMRP
DVMRP Codes
7 Types of Codes
1 – Probe: Neighbor discovery
2 – Report: Route exchange
5 – Ask Neighbors 2: Request neighbor list
6 – Neighbors 2: Respond with neighbor list
7 – Prune: Pruning delivery trees
8 – Graft: Grafting delivery trees
9 – Graft Ack: Acknowledge graft messages
Note: 3 & 4 are obsolete versions of 5 & 6
DVMRP Probe
Sent out on every interface
3 Purposes
Finds neighbors
Alerts neighbors of routers presence and
capabilities
Helps detect neighbor loss, sent ever 10sec,
timeout if not received in 35
Contains a list of Neighbors, allows
neighbors to know they have been detected
DVMRP Probe Packet
8 bits
8 bits
16 bits
Type (0x13)
Code (0x1)
Checksum
Reserved
Capabilities
Minor Version
Major Version
Generation ID
Neighbor IP 1
……
Neighbor IP N
Generation ID: Used to identify changes in router state
DVMRP Report
Used to find neighbor to route traffic
back to sender through
Uses hop count as the metric
Contains a list of source networks and
metrics
DVMRP Report Packet
8 bits
8 bits
16 bits
Type (0x13)
Code (0x2)
Checksum
Reserved
Minor Version
Major Version
Mask 1 (Oct 4)
Src Net 11
Src Net 11
Metric 11
Src Net 12
Src Net 12
Metric 12
…
…
…
Mask 2 (Oct 2)
Mask 1 (Oct 2)
Mask 2 (Oct 3)
Mask 1 (Oct 3)
Mask 2 (Oct 4)
Src Net 21
Src Net 21
Metric 21
…
…
Sources are paired with masks, can have more then one source paired with a
mask.
Lists all sources a router has contact with and the cost of that route.
DVMRP Ask Neighbors 2
Unicast message sent to a specific
neighboring router
Asks neighbor to respond with a list of
its neighbors
DVMRP Ask Neighbors 2
Packet
8 bits
8 bits
16 bits
Type (0x13)
Code (0x5)
Checksum
Reserved
Minor Version
Major Version
DVMRP Neighbors 2
Response to Ask Neighbors 2
message
Contains a list of the router’s
interfaces and addresses of routers
attached to those interfaces
DVMRP Neighbors 2 Packet
8 bits
8 bits
16 bits
Type (0x13)
Code (0x6)
Checksum
Reserved
Capabilities
Minor Version
Major Version
Local Address 1
Metric 1
Threshold 1
Flags 1
Number Count 1
Number 1
…
Number M
……
Local Address N
Metric N
Threshold N
Flags N
Number 1
…
Number K
Number Count N
DVMRP Neighbors 2 Packet
(continued)
Local Addresses exist for each
interface on the router
Following that are characteristics of
that interface
The Number X fields contain all the
routers that are neighbors of that port
DVMRP Prune
Sent from routers receiving multicast
traffic for which they have no
downstream group members
“Prunes” the tree created by DVMRP
Stops needless data from being sent
DVMRP Prune Packet
8 bits
8 bits
16 bits
Type (0x13)
Code (0x7)
Checksum
Reserved
Minor Version
Major Version
Source Host Address
Group Address
Prune Lifetime
Source Network Mask (optional)
Source Host IP Address: Address of device that sent the prune request
Group Address: Multicast group address that is requested to be pruned
Prune Lifetime: Length of time, in seconds (up to ~2hrs), to keep branch pruned
Source Network Mask: The netmask of the route the pruning applies to
DVMRP Graft
Used after a branch has been pruned back
Sent upstream by a router that has a host
that joins a multicast group
Goes from router to router until a router
active on the multicast group is reached
Sent for the following cases
A new host member joins a group
A new dependent router joins a pruned branch
A dependent router restarts on a pruned branch
If a Graft Ack is not received before the timeout
DVMRP Graft Packet
8 bits
8 bits
16 bits
Type (0x13)
Code (0x8)
Checksum
Reserved
Minor Version
Major Version
Source Host Address
Group Address
Source Network Mask (optional)
Source Host IP Address: Address of router or network to graft
Group Address: Multicast group address that is requested to be grafted
Source Network Mask: The netmask of the route the grafting applies to
DVMRP Graft Ack
Used to acknowledge receipt of Graft
message
Allows sending downstream router to
know upstream router has received
and processed its request
If not received within 5 sec. Graft
message sent again
DVMRP Graft Ack Packet
8 bits
8 bits
16 bits
Type (0x13)
Code (0x9)
Checksum
Reserved
Minor Version
Major Version
Source Host Address
Group Address
Source Network Mask (optional)
Source Host IP Address: Address of router or network that was received in
request
Group Address: Multicast group address that was received in request
Source Network Mask: The netmask of the route the Graft Ack covers
DVMRP Issues
DVMRP is based on RIP and carries
over many of RIP’s issues
Hop count used as metric
Scalability issues
• Performs periodic flooding
• Maintains its own routing table
Older versions lack pruning
Even though it is a main part of
MBONE, MBONE is being phased out
Sources
Original RFC: RFC 1075
http://tools.ietf.org/html/rfc1075
Latest Draft:
http://www.ietf.org/internetdrafts/draft-ietf-idmr-dvmrp-v3-11.txt
http://www.ncne.org/documentation/fa
q/mcast_eng_faq.html