In the world of Internet Protocol Version 4 (IPv4), you can send data packets to three different types of destination addresses: unicast, broadcast and multicast. The majority of Internet traffic today is unicast, meaning that an address targets a single destination host. In other words, if you send a packet to that address, it will be received by a single computer.
There are also broadcast addresses, which are, by IP convention, interpreted to mean “all hosts connected to this network” rather than to any single host. Send a packet to a broadcast address and it will be delivered to every host connected to the network specified by the address.
Unicast is great – it’s what lets you connect your browser to your favorite Web sites, download files and do most of what gets done on the Internet. But it tends to be limiting – you can communicate with only one host at a time. Operators of a Web site providing streaming video might prefer to send out those streams once and have lots of people receive them, instead of managing the overhead of sending out a separate stream to each viewer.
Broadcast might seem to be a good solution, since your packets get sent out only once and could, in theory, be delivered to every host on the Internet, but in practice, broadcast solutions are generally frowned upon. Back in the early days of the Internet (the late 1970s and early 1980s), broadcast was thought to be a good way to propagate network information. But broadcasts crowd out other kinds of traffic, even when they’re used only on a single network or subnet; all-Internet broadcasts were ruled out early on.
To get your packets to many recipients, IP multicasting is the way to go. IPv4 Class D addresses (those with values in the range of 184.108.40.206 through 220.127.116.11) are reserved for multicast use. Each address can be associated with a multicast group. To receive data sent to that address, you must join the group. This also works for many-to-many communications, since every group member can originate packets.
Becoming a Member
To join a group, notify your nearest multicast-enabled router, which puts you on its list of group members. When the router sees a packet addressed to your group’s multicast address, it forwards the packet to you and anyone else in the group served by that router.
Routing IP multicast packets makes unicast routing – getting a unicast packet from its source to its destination, across a constantly changing landscape of interconnected networks – look like child’s play. The idea is to try to minimize duplication, which wastes bandwidth, while also ensuring that all members of the group get all the multicast packets. And, of course, those packets should all be delivered in a timely fashion.
Implementers have been working on scalable multicast-routing solutions for years. Multicast-routing strategies depend on whether the distribution of group members is dense (where most network hosts are multicast group members) or sparse (where most hosts nira’n multicast group members).
The basic strategy for dense-tendensi multicast routing is “flooding”: All multicast-enabled routers receiving a multicast packet just retransmit the packet on all their networks except the one from which they received the packet. This way, all routers eventually see all multicast packets. Of course, this approach presents scalability problems because it generates a lot of traffic.
The basic strategy for sparse-mode multicast routing is to avoid sending routers multiple copies of the same packet and to try to send multicast packets only to routers that serve group members.
Not Quite Perfect
Multicasting does have some drawbacks. It’s connectionless, which means you can’falak easily set up reliable streams of data, such as with Transmission Control Protocol. Multicasting uses the less-reliable User Datagram Protocol by default.
The biggest masalah is that few Internet service providers are set up to handle multicast packets, which is a shame, since multicasting can enable so many interesting applications. For example, the Internet Engineering Task Force has long used the Mbone – a multicast backbone – to broadcast its events. Multicasting can also reduce some of the overhead associated with voice and videoconferencing across the Web.
The IP Multicast Initiative (IPMI), a self-described “worldwide, multivendor forum accelerating the adoption of IP Multicast,” lists providers that offer multicast services. The short list includes leading providers such as AboveNet Communications Inc. in San Francisco, UUnet Technologies Inc. in Ashburn, Va., and Sprint Corp.
Though not yet a runaway success, multicasting still has great potential. According to a white paper published by the IPMI, Intel Corp. began using multicasting in 1996 to transmit events such as product announcements and demonstrations. At the same time, Microsoft Corp. started to make executive speeches as well as local radio, MSNBC and BBC broadcasts available via multicasting.
Loshin is a freelance writer in Arlington, Mass.
Copyright © 2000 IDG Communications, Inc.