Title: DVMRP
1DVMRP
- Distance Vector Multicast Routing Protocol
Jerad Bates UMBC - Fall 2006
2DVMRP Basics
- An interior gateway protocol
- Functions within an Autonomous System (AS) but
not between ASs - Can only route multicast datagrams
- Routers need additional protocol(s) for
non-multicast routing, but DVMRP could be
extended to unicast - Basis for the internets multicast backbone
(MBONE)
3How 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
4DVMRP 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
5DVMRP Packet
8 bits 8 bits 16 bits 16 bits
Type Code Checksum Checksum
Reserved Reserved Minor Version Major Version
Further portion of packet (up to 510 bytes) Depends on Code Further portion of packet (up to 510 bytes) Depends on Code Further portion of packet (up to 510 bytes) Depends on Code 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
6DVMRP Packet Structure
8 bits 8 bits 16 bits 16 bits
Type Code Checksum Checksum
Reserved Reserved Minor Version Major Version
Further portion of packet (up to 510 bytes) Depends on Code Further portion of packet (up to 510 bytes) Depends on Code Further portion of packet (up to 510 bytes) Depends on Code 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 1s compliment of the 1s complement of
the entire packet (with checksum set to 0) - Minor Major Versions Set to 0xFF and 3
respectively for current version of DVMRP
7DVMRP 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
8DVMRP 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
9DVMRP Probe Packet
8 bits 8 bits 16 bits 16 bits
Type (0x13) Code (0x1) Checksum Checksum
Reserved Capabilities Minor Version Major Version
Generation ID Generation ID Generation ID Generation ID
Neighbor IP 1 Neighbor IP 1 Neighbor IP 1 Neighbor IP 1
Neighbor IP N Neighbor IP N Neighbor IP N Neighbor IP N
Generation ID Used to identify changes in router
state
10DVMRP 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
11DVMRP Report Packet
8 bits 8 bits 16 bits 16 bits
Type (0x13) Code (0x2) Checksum Checksum
Reserved Reserved Minor Version Major Version
Mask 1 (Oct 2) Mask 1 (Oct 3) Mask 1 (Oct 4) Src Net 11
Src Net 11 Src Net 11 Metric 11 Src Net 12
Src Net 12 Src Net 12 Metric 12
Mask 2 (Oct 2)
Mask 2 (Oct 3) Mask 2 (Oct 4) Src Net 21 Src Net 21
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.
12DVMRP Ask Neighbors 2
- Unicast message sent to a specific neighboring
router - Asks neighbor to respond with a list of its
neighbors
13DVMRP Ask Neighbors 2 Packet
8 bits 8 bits 16 bits 16 bits
Type (0x13) Code (0x5) Checksum Checksum
Reserved Reserved Minor Version Major Version
14DVMRP Neighbors 2
- Response to Ask Neighbors 2 message
- Contains a list of the routers interfaces and
addresses of routers attached to those interfaces
15DVMRP Neighbors 2 Packet
8 bits 8 bits 8 bits 16 bits 16 bits
Type (0x13) Type (0x13) Code (0x6) Checksum Checksum
Reserved Reserved Capabilities Minor Version Major Version
Local Address 1 Local Address 1 Local Address 1 Local Address 1 Local Address 1
Metric 1 Threshold 1 Threshold 1 Flags 1 Number Count 1
Number 1 Number 1 Number 1 Number 1 Number 1
Number M Number M Number M Number M Number M
Local Address N Local Address N Local Address N Local Address N Local Address N
Metric N Threshold N Threshold N Flags N Number Count N
Number 1 Number 1 Number 1 Number 1 Number 1
Number K Number K Number K Number K Number K
16DVMRP 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
17DVMRP 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
18DVMRP Prune Packet
8 bits 8 bits 16 bits 16 bits
Type (0x13) Code (0x7) Checksum Checksum
Reserved Reserved Minor Version Major Version
Source Host Address Source Host Address Source Host Address Source Host Address
Group Address Group Address Group Address Group Address
Prune Lifetime Prune Lifetime Prune Lifetime Prune Lifetime
Source Network Mask (optional) Source Network Mask (optional) Source Network Mask (optional) 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
19DVMRP 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
20DVMRP Graft Packet
8 bits 8 bits 16 bits 16 bits
Type (0x13) Code (0x8) Checksum Checksum
Reserved Reserved Minor Version Major Version
Source Host Address Source Host Address Source Host Address Source Host Address
Group Address Group Address Group Address Group Address
Source Network Mask (optional) Source Network Mask (optional) Source Network Mask (optional) 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
21DVMRP 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
22DVMRP Graft Ack Packet
8 bits 8 bits 16 bits 16 bits
Type (0x13) Code (0x9) Checksum Checksum
Reserved Reserved Minor Version Major Version
Source Host Address Source Host Address Source Host Address Source Host Address
Group Address Group Address Group Address Group Address
Source Network Mask (optional) Source Network Mask (optional) Source Network Mask (optional) 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
23DVMRP Issues
- DVMRP is based on RIP and carries over many of
RIPs 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
24Sources
- Original RFC RFC 1075 http//tools.ietf.org/html/
rfc1075 - Latest Draft http//www.ietf.org/internet-drafts/
draft-ietf-idmr-dvmrp-v3-11.txt - http//www.ncne.org/documentation/faq/mcast_eng_fa
q.html