Source for VMEbus, PMC Modules, CompactPCI, Single Board Computers, Rackmount Servers, and Rackmount Chassis

Ordering Form   

Unit of Measurement Converter

 

VoxTechnologies Enterprise Network Series

Distance Vector Multicast Routing Protocol
(DVMRP)

June 3, 1998

By Mike Patterson

Disclaimer
This paper discusses the Distance Vector Multicast Routing Protocol (DVMRP) as specified in RFC 1075. As of this paperÕs completion, the author has not yet verified that what is documented in the RFC is actually being implemented in the latest routers supporting DVMRP.
Assumptions
The author assumes that the reader has a solid comprehension of IP, RTP and IGMP.
Introduction
The Distance Vector Multicast Routing Protocol (DVMRP) is a distance vector routing protocol used between routers in an intranet. This hop-based protocol, introduced in RFC 1075, describes a method of building multicast trees from the multicast source to all the receivers (or leaves) of the tree. Operation of the protocol is described in the following paragraphs. RFC 1075 is incomplete, and therefore the following description is a best-effort explanation.

The necessity for DVMRP results from the possible looping nature of most forwarding algorithms. Since the destination of an IGMP group is often more than one place, routers and switches need to agree on who is responsible for forwarding what to whom. Multicast frames are similar to broadcast packets at the data link layer of the OSI model. Without DVMRP, packets would be duplicated and proliferation would occur, possibly resulting in a network collapse.

DVMRP Operation
When a sender initiates a multicast, the adjacent router or routers assume that all users in the entire routed network will want to participate. The router adjacent to the sender sends a multicast to all of its adjacent routers, and each of those routers sends the message to all of their adjacent routers. This process continues until all multicast group members have seen the message.

When a router receives the multicast message, it checks its unicast routing table to determine that interface which provides the shortest route back to the source. If that route is over the interface that the multicast was received, the router enters information into its internal table about the multicast group and then forwards the message on to adjacent routers, and not over the interface the multicast was received on. This process is called RPF (Reverse Path Forwarding) and ensures that there are no loops in the tree and that the shortest paths will be used.

Enhancements to the DMVRP protocol have led to routers becoming more intelligent when forwarding multicast updates. For example, if router R4 (see figure) understands (from its unicast tables) that R5 will probably determine that R4 is the best path back to the source, R4 will not bother flooding the routing update to R5.

Routers maintain who (workstations) are members of multicast groups so that pruning can take place. Workstations periodically respond to IGMP messages (IGMP is explained in another white paper) from the routers to maintain membership. These messages from the workstations allow the router to determine whether it needs to forward the multicast out through all interfaces. If a router determines that it has no participants in a multicast, it will ask the upstream router not to forward the multicast down. This is a pruning mechanism that results in a smaller, more efficient spanning tree.

This pruning method appears to work well for densely populated participants. DVMRP does not scale well, however, because every DVMRP router must:

  • Maintain a potentially large amount of routing state information,
  • Maintain state information for all multicast groups, and
  • Periodically participate in reinitiating the spanning tree for each group.

It is because of this that DVMRP does not support sparsely distributed participants in a large network infrastructure.

A DVMRP message is in the following format preceded by an IP header:

The type for DVMRP is 3.
The subtype is one of the following:

     

  1. = Response; the message provides routes to some destination(s)
  2. = Request; the message requests routes to some destination(s)
  3. = Non-membership report; the message provides non-membership report(s)
  4. = Non-membership cancellation; the message cancels previous non-membership report(s)

The following packet formats and descriptions were taken from RFC 1075.

The length of DVMRP messages is limited to 512 bytes, excluding the IP header.
The following is a list of possible tagged data:

Null Command:

Description: The Null command can be used to provide additional alignment or padding to 32 bits.

Address Family Indicator (AFI) Command:

Values:
2 = IP address family, in which address are 32 bits long.
Default: Family = 2
Description: The AFI command provides the address family for subsequent addresses in the stream (until a different AFI command is given).

Subnet Mask Command:

Additional Argument, with AFI = IP:

Count is 0 or 1.

Default: Assume that following routes are to networks, and use a mask of the network mask of each routeÕs destination.

Description: The Subnet mask command provides the subnet mask to use for subsequent routes. There are some requirements on the bits in the subnet mask: bits 0 through 7 must be 1, and all of the other bits must not be 1.

If the count is 0, then no subnet mask applies; assume that the following routes are to networks, and use a mask of the network mask of each routeÕs destination. If count is 1, then a subnet mask should be in the data stream, of an appropriate size given the address family. It is an error for count not to equal 0 or 1.
Subnet masks should not be sent outside of the appropriate network.

Metric Command:

Value is the metric, as an unsigned value ranging from 1 to 255.

Default: None.

Description: The metric command provides the metric to subsequent destinations. The metric is relative to the router that sent this DVMRP routing update.

It is an error for metric to equal 0.

Flags0 Command:

Meaning of bits in value:

    Bit 7: Destination is unreachable.
    Bit 6: Split Horizon; concealed route.

Default: All bits zero.

Description: The flags0 command provides a way to set a number of flags. The only defined flags, bits 6 and 7, can be used to provide more information about a route with a metric of infinity. A router that receives a flag that it does not support should ignore the flag. The command is called flags0 to permit the definition of additional flag commands in the future (flags1, etc.).

This is an experimental command, and may be changed in the future.

Infinity Command:

Value is the infinity, as an unsigned value ranging from 1 to 255.

Default: Value = 16.

Description: The infinity command defines the infinity for subsequent metrics in the stream.

It is an error for infinity to be zero, or less than the current metric. Destination Address (DA) Command

Array of "count" additional arguments, with AFI = IP:

Count is the number of addresses supplied, from 1 to 255. The length of the addresses depends upon the current address family. The number of addresses supplied is subject to the message length limitation of 512 bytes.
Default: None.

Description: The DA command provides a list of destinations. While this format can express routes to hosts, the routing algorithm only supports network and subnetwork routing. The current metric, infinity, flags0 and subnetmask, when combined with a single destination address, define a route. The current metric must be less than or equal to the current infinity.
It is an error for count to equal 0.

Requested Destination Address (RDA) Command:

Array of "count" additional arguments, with AFI = IP:

Count is the number of addresses supplied, from 0 to 255. The length of the addresses depends upon the current address family. The number of addresses supplied is subject to the message length limitation of 512 bytes.
Default: None.

Description: The RDA command provides a list of destinations for whom routes are requested. A routing request for all routes is encoded by using a count = 0.

Non Membership Report (NMR) Command:

Array of "count" additional arguments, with AFI = IP:

Count is the number of Multicast Address and Hold Down Time pairs supplied, from 1 to 255. The length of the addresses depends upon the current address family. The number of pairs supplied is subject to the message length limitation of 512 bytes.
Default: None.

Description: The NMR command is experimental, and has not been tested in an implementation. Each multicast address and hold down time pair is called a non-membership report. The non-membership report tells the receiving router that the sending router has no descendent group members in the given group. Based on this information the receiving router can stop forwarding datagrams to the sending router for the particular multicast address(es) listed. The hold down time indicates, in seconds, how long the NMR is valid.

It is an error for count to equal 0.

The only other commands in a message that has NMR commands can be the AFI, flags0, and Null commands. No relevant flags for the flags0 command are currently defined, but that may change in the future.

Non Membership Report Cancel (NMR Cancel) Command:

Array of "count" additional arguments, with AFI = IP:

Count is the number of Multicast Addresses supplied, from 1 to 255. The length of the addresses depends upon the current address family. The number of addresses supplied is subject to the message length limitation of 512 bytes.
Default: None.

Description: The NMR Cancel command is experimental, and has not been tested in an implementation. For each multicast address listed, any previous corresponding non-membership reports are canceled. When there is no corresponding non-membership report for a given multicast address, the Cancel command should be ignored for that multicast address.

It is an error for Count to equal 0.

The only other commands in a message that has NMR Cancel commands can be the AFI, flags0, and Null commands. No relevant flags for the flags0 command are currently defined, but that may change in the future.

The following illustrations will help tie in the packet formats and protocol operation: When a source initiates an IP multicast, IGMP packets are sent out to set up a group. The router then uses this IGMP to set up a DVMRP spanning tree as shown:

R1 sends out a packet which would look something like the following. DVMRP packets use a multicast with a destination IP of 224.0.0.4. The IP header of the packet below has been omitted.

In the packet above, the first row lists the version, type, subtype and checksum of the IGMP header for this DVMRP packet. The size of this frame is limited to 512 bytes excluding the IP header. This is the same size limitation place on RIP (RFC 1058).

In the second row, the first 2 is the AFI and the second 2 is the value. The 4 says the following is a metric value and the 1 is the metric.
In the third row the 6 is the Infinity command and the 1 is the value. The following 3 is the subnet mask command and the value of 1 means there is a subnet mask.

In the fourth row the subnet mask is given.

In the fifth row the 7 is the Destination address command followed by the value 1 and the actual address follows on into row 6 (172.16.3.34).

The routers receiving this packet respond as shown:

In the preceding diagram, when R2 receives a route on its virtual interface from R4, R2 will compare metrics. Since the metrics are the same, the router with the lowest IP address will become the dominate router. If R4 had a lower metric, then R2 will put into its routing table that R4 is the dominant router for the virtual interface. R2 would then be considered the subordinate router.

The dominant router for a virtual network is called the parent and the virtual network it is responsible for is called a child.

There are a series of Time Values associated with this multicast routing algorithm listed in RFC (1075) where a description on how a new router will effect the network is given in fair detail.

The message continues to propagate the routed network:

The tree continues to resolve:

The tree is now complete as shown below:

When finished, the tree will have computed based on the shortest reverse path tree back to the source. This process is referred to as the TRPB (Truncated Reverse Path Broadcasting) algorithm. Each multicast router must determine its place in the tree, relative to the particular source, and then determine which of its virtual interfaces are in the shortest path tree. The datagram is forwarded through these virtual interfaces. The process of excluding virtual interfaces not in the shortest path tree is called "pruning." A leaf becomes a virtual network which no router considers uptree to a given source (see following diagram).

Looking at the following figure,

The packet format of R6 packet sent to R4 would be as follows:

The first row lists the version, type, subtype and checksum of the IGMP header for this DVMRP packet, as described earlier. In the second row, the first 2 is the AFI and the second 2 is the value. The 9 says that the following is a Non Membership Report (NMR) command and the 1 says that only one address is being requested not to be sent. Row 3 displays the multicast D address R6 is asking R4 not to send down. Row 4 displays the Hold Down Time, as explained earlier.

DVMRP is considered a dense mode protocol because its members are traditionally close together geographically. Other examples of dense mode protocols are MOSPF and PIM Dense. Sparse mode protocols are used in networks when members are more distributed or when bandwidth is not as plentiful. Examples of a sparse mode protocols are PIM-Sparse and Core-Based Tree (CBT). Another buzz word we some times hear about is the Mbone, which is basically a network within the Internet. The Mbone delivers multimedia data by utilizing tunneling, creating point-to-point links and encapsulating multicast frames.

Summary
DVMRP is used in a multicast routed network to eliminate data loops. If five people were involved in a multicast meeting, there could be five different DVMRP trees. This ends up creating enormous overhead for routers being built today. DVMRP requires RIP to operate, MOSPF requires OSPF and PIM Dense will run over RIP or OSPF. MOSPF is similar to DVMRP in purpose and was excluded from this section in the interest of time and space. Because of the enormous overhead video streaming places on the network, it is important that the network administrator chooses a router which can provide wire-speed or close to wire-speed performance in dense traffic environments. A one-way voice-video service streaming over the network can create as much as 35 (1400 + byte each) frames per second. Typically, voice and video travel separately in two streams over the network. The voice is on one RTP (Real Time Protocol RFC 1889 and 1890) port and the video is on another different RTP port. This separation allows end systems with no video capability or with bandwidth restrictions to still hear the conversations, even if they cannot see them.
Reference Materials for DVMRP
1. IETF Request For Comments: 1075, DVMRP, 11/98

2. www.ipmulticast.com, How IP Multicast Works, 3/22/97

3. www.gps.caltech.edu, DVMRP, 5/9/97

4. IETF Request For Comments: 1584, Multicast Extensions to OSPF, 3/94

5. IETF Request For Comments: 1058, Routing Information Protocol, 6/88

6. www.eecis.udel.edu, Description of Hierarchical DVMRP, 5/9/97

7. www.ipmulticast.com, Introduction to IP Multicast Routing, 3/22/97

8. Data Communications, IP Multicast: Making It Happen, 5/21/97


csu, dsu, dacs, bandwidth manager, frame relay, remote access, pri, channel bank, bri, adtran, enterprise, fxs, fxo, t1, e1, tsu, isdn, pbx, atm, clec, plesiochronous, point-to-point, fractional, voice, data, e&m, analog, router, pstn, v.35, dsx, fsx, dbu, ethernet, network management, osu, multiport, multi-mode fiber, snmp, t3su, dacsing, ds0, ds1, ds3, drop/insert, hssi, u-interface, hdsl, imux, mux, multiplexers, cross-connect, bonding, dte, hdlc, pots, chassis, psu, rcu, eia232, ground start, foreign exchange, dpo, plar, rackmount, wallmount, tdu, ft1, t1/ft1, did, 2-wire, rj-11, spanning tree, bridging, 4-wire, eia-530, rst-232, fiber, t3, esu, dial back, sdlc, ip routing, sna/sdlc, bisync, slip,async, tbop, safe-t-net, dce, h0, h11, in-band, facilities data link, fdl, pro, sdlc-llc2, ppp, v.34, sw56, xdsl, 10baseT, vt100, ccitt/v120, ip/ipx, mlppp, remote loopback, local loopback, multilinks, aggregating, aggregate, dtr assertion, rs-366, y cable, spid, lzs compression, v.120, video conferencing, termination units, redundant power supply, g.shdsl, sonet networks, mlt, ringdown, pcm, tr-08 Back to Home csu, dsu, dacs, bandwidth manager, frame relay, remote access, pri, channel bank, bri, adtran, enterprise, fxs, fxo, t1, e1, tsu, isdn, pbx, atm, clec, plesiochronous, point-to-point, fractional, voice, data, e&m, analog, router, pstn, v.35, dsx, fsx, dbu, ethernet, network management, osu, multiport, multi-mode fiber, snmp, t3su, dacsing, ds0, ds1, ds3, drop/insert, hssi, u-interface, hdsl, imux, mux, multiplexers, cross-connect, bonding, dte, hdlc, pots, chassis, psu, rcu, eia232, ground start, foreign exchange, dpo, plar, rackmount, wallmount, tdu, ft1, t1/ft1, did, 2-wire, rj-11, spanning tree, bridging, 4-wire, eia-530, rst-232, fiber, t3, esu, dial back, sdlc, ip routing, sna/sdlc, bisync, slip,async, tbop, safe-t-net, dce, h0, h11, in-band, facilities data link, fdl, pro, sdlc-llc2, ppp, v.34, sw56, xdsl, 10baseT, vt100, ccitt/v120, ip/ipx, mlppp, remote loopback, local loopback, multilinks, aggregating, aggregate, dtr assertion, rs-366, y cable, spid, lzs compression, v.120, video conferencing, termination units, redundant power supply, g.shdsl, sonet networks, mlt, ringdown, pcm, tr-08E-Mail   VoxTechnologies Corp. - Industrial Computer Leader
Tel:
972-234-4343 Fax: 972-234-4295 Toll-Free: 1-888-568-6224
 

An Industrial Partner 1999-2002. All rights reserved.


CompactPCI, Embedded SBCs, Flat panel Displays, Industrial Chassis, IndustrialPC Peripherals, Industrial Power Supplies, Backplanes, Single Board Computers, Rackmount Servers, Network Communication, Open Frame Panel Computer, PC/104, Flash Disk, CTI, RAID Back to Home CompactPCI, Embedded SBCs, Flat panel Displays, Industrial Chassis, IndustrialPC Peripherals, Industrial Power Supplies, Backplanes, Single Board Computers, Rackmount Servers, Network Communication, Open Frame Panel Computer, PC/104, Flash Disk, CTI, RAID E-Mail

VoxTechnologies Corp. - Industrial Computer Leader
Tel:
1-972-234-4343 Fax: 1-972-234-4295 Toll-Free: 1-888-568-6224

For over a decade, VoxTechnologies has been a leading source of industrial computers and complete system products for the O.E.M. and Systems Integrator. Our primary goal is to provide a solution source for engineers that have the challenging task of interfacing and controlling the real world.

Telephone: 1-972-234-4343 General Info: info@voxtechnologies.com Sales Info: sales@voxtechnologies.com
 
We accept all major credit cardsRelated Links Adtran AFC CAC Larscom Metrobility Moxa NetAnchor
VTC SBCs, VTC Chassis, VTC Backplanes, VTC CompactPCI, VTC Power Supplies, VTC Peripherals, Other SBCs, Other Backplanes, Other Chassis, Other Power Supplies, Other Embedded SBCs, Other CompactPCI Devices, Other Servers, Other Network Storage, Other VME, RAD,
CAC, Charles, Eastern, Transition, Other PC/104 Products, Other Subsystems, Other KVM Switches, Other Flat Panels, Other Plasma Engine Computers, Other ACTI Platforms, Other Industrial Peripherals, Other Network Communication Products, IPCMall, PLCPartner, Moxa, Telco, Etasis, Axiom, IEI, Channel Banks, Adtran, PowerSupplyPartner, DelvingWare
Archives
Send mail to webmaster@voxtechnologies.com with questions or comments about this web site.
Copyright © 1999 VoxTechnologies Corporation- An Industrial Partner
Last modified: November 30, 2002   Proud Sponsor of Dallas Jazz