Networking 101: Understanding Multicast Routing - Page 2
Whether you're watching a celebrity childbirth streaming live from Africa or just trying to help your enterprise network run more efficiently, understanding mulitcast routing is key.
DVMRP is the Distance Vector Multicast Routing Protocol. It uses IGMP sub-code 13, and does what's called Dense Flooding. Dense flooding is very effective, but very inefficient. A router will flood to everyone in the beginning, and then prune back uninterested subnets. PIM, or Protocol-Independent Multicast, is independent of unicast routing mechanisms. In dense mode operation, it is very much like DVMRP. PIM dense mode is essentially the same as DVMRP, except PIM uses IP protocol 103. PIM implements joins, prunes, and grafts. A graft is the opposite of a prune: it grafts a branch back onto the tree.
Dense mode multicast routing, regardless of protocol, works by sending data to everyone and then pruning back parts of the tree. A tree, as always, is used to represent a set of routers. When a bunch of branches get pruned, routers can eventually eliminate bigger and bigger chunks. If no branches are interested within an AS, the border router can send a prune message to the upstream router, hence it stops wasting bandwidth.
Sparse mode multicast routing utilizes a Rendezvous Point, or RP. All join messages are sent to the RP's unicast address, so this clearly requires a bit of prior knowledge. PIM sparse mode also operates a bit more intelligently. It uses shared trees, but if a router notices that it's closer to the source it can send a join upstream to ensure traffic starts flowing through the best point. The newly designated router then becomes the source distribution point for the network.
This is all fine and dandy, except for one little detail: the Internet isn't a vertical tree. Enterprises want to connect redundantly, so naturally giant loops will form. Reverse Path Forwarding (RPF) is used in multicast too, to make sure that loops don't happen. The basic idea is verify that the interface a multicast packet arrives on is the shortest unicast path back to the sender. If not, then it probably didn't come from the sender, so the packet is dropped. If the RPF check is successful, the packet is duplicated and sent to everyone in the group.
Quite a few other multicast routing protocols exist in the wild. OSPF has MOSPF, but that can really only be used within one domain. BGP has BGMP, but it's never been seen outside of captivity. Most are not really used, but people are always coming up with new and interesting ideas to make widespread use of multicast a reality. It's such a shame to watch the same video streamed separately from a Web site, when it would save tremendous bandwidth to use multicast and let the router duplicate when it needs to.
In a Nutshell
- Multicast uses special addresses to send data from a single sender to multiple recipients, even though the recipient only sends one copy.
- Hosts or routers can join multicast groups via IGMP to tell other routers that they are interested.
- Dense protocols flood and prune, sparse modes will utilize an RP to avoid flooding unnecessarily.