article

IP Multicast is a method of forwarding IP datagrams to a group of interested receivers. See the article on multicast for a general discussion of this subject - this article is specifically about IP Multicast.

IP Multicast Uses


IP multicast today has had some success for delivering one-way streaming media, such as high-speed video to large groups of receivers. In fact, many US cable TV operators and some educational institutions with significant on-campus student housing have deployed IP multicast to do just that. Additional there have been some uses of audio and video conferencing using multicast, these are far less prevalent and are most often relegated to research and education institutions, which often have a greater degree of network capacity to handle the demands. Some technical conferences and meetings are often broadcast using IP multicast. Up until recently many of the sessions at the IETF meetings were delivered using multicast.

Another widespread use of multicast within campus and commercial networks is for file distribution, particularly to deliver operating system images and updates to remote hosts.

IP multicast has also seen deployment within the financial sector for applications such as stock tickers and hoot-n-holler systems.

While IP multicast has seen some success in each of these areas, IP multicast is not not widely deployed and is generally not available as a service for the average end user. There are at least two primary factors for the lack of widespread deployment, both somewhat related to the other. On the one hand, forwarding multicast traffic, particularly for two-way communication, requires a great deal of protocol complexity. On the other hand, there are a number of additional operational concerns in being able to run a multicast network successfully, largely stemming from the complexity of a widely deployed implementation. Not the least of which is the additional avenues of failure, particularly from denial of service attacks that IP multicast enables. Many of these issues are covered in further detail below.

History and Milestones


The MBONE was a long-runnig experimental approach to enabling multicast between sites through the use of tunnels. While the MBONE is no longer operational, there are renewed interests in tunnelling multicast once again in order to make the service available to a wide array of end users.

Addressing


There are generally four generally agreed upon forms of IP addressing. Actually there are two, but we will describe them all as they each have their own set of unique properties. The most commonly known and understood type of address is a unicast address. A unicast address has network-wide significance, where in the case of RFC 1918 addresses network-wide refers to a private network, either unattached to the public Internet or mediated through the use of some sort of network address translation middle box. Unicast addresses are commonly thought of as belonging to a particular device or host, while often true they are in fact assigned to a specific host interface in the case that multiple interfaces exist on the device or host and each needs it's only unique address assigned. A unicast address can be used as both a source address and a destination address. In either case, the address refers to a unique sender or a unique receiver. If a sender wishes to send datagrams to multiple recipients using unicast delivery, it must construct and deliver a separate unicast datagram for each receiver.

As you might guess, if a sender is delivering effectively the same datagrams to a large number of receivers using unicast, clearly if there was a way to deliver the datagram once so that they all could see and copy it, this would be much more efficient for the sender and transit networks. A simple alternative is to simply designate the datagram as a broadcast and have it delivered to all connected and reachable destinations. In most protocols there is usually one or more special destination addresses that are associated with an all hosts broadcasts. In IP there are actually two, the limited local broadcast address 255.255.255.255 and the directed broadcast address, where the network prefix corresponds to the destination network and the subnet and host suffix bits are set to all binary 1's (so for example, a directed broadcast to the 192.0.2.0/24 network would have a destination address of 192.0.2.55).

You might now be wondering about the efficiency of a broadcast scheme. Surely there is traffic that may need to reach multiple recipients, but not all recipients. Broadcast can be wasteful in that some receivers may have no desire to receive and process it. This is where multicast addressing comes in. A multicast address refers to a group of interested receivers. The group may contain any number of receivers, zero, one, dozens or all hosts. IP multicast addresses fall into the historic class D classful address range (224.0.0.0/4 in CIDR notation). It should also be noted that broadcast address can be thought of as the all hosts multicast group, though in IP networks, there is currently, thankfully, no way to send a single packet to all hosts on the Internet. However, it is useful to keep the two concepts separate at least within IP networks. It is worth pointing out that both multicast and broadcast addresses are only used for destination addresses. It is nonsensical to send a datagram from a group or all hosts.

The fourth and final addressing scheme is referred to as anycast. Depending on the context anycast may mean different things to different people, but here we intend it to refer to popular scheme of assigning a unicast address to multiple independent interfaces, generally each located on disparate hosts. Anycast in this way is often used as a way to provide a means to distribute load so that datagrams from diverse sources each communicate with their own topologically close service instance. This form of anycast has been widely used in deployment of DNS and multicast RPs.

Protocols and Applications


Only a handful of protocols can and should use IP multicast delivery. For example, it is nonsensical for TCP to use multicast, because by definition TCP is a connection between two unique end hosts and this implies unicast. UDP is the mostly widely used protocol used with IP multicast, but others are often used, particularly on a link-local basis such as routing protocols and IGMP. One protocol deserves some special attention and that is ICMP. While it is technically feasible and in some cases practical to deliver ICMP messages using multicast, is generally not recommended to permit ICMP multicast past administrative boundaries (see RFC 2588). The reason not to is simply to avoid unnecessary packet amplification attacks. Some operating systems for example, surprising not Microsoft Windows in this case, will respond to ICMP echoes by default if send to a listening multicast group address. It should be noted that modern operating systems will not send ICMP port unreachable messages when sent to a UDP destination port that is not listening so this type of UDP multicast-based amplification attack is not considered a threat today.

IP Multicast Addressing Assignments


The Class D address range, which is still associated with multicast group addresses, is not allocated as traditional unicast addresses. In fact, allocating multicast group addresses has been an ongoing problem with multiple, mostly unsatisfactory solutions available.

There are a number of current general assignment strategies and we will highlight just a few of them here. For general information with pointers to other documents, see RFC 3171.

The 224.0.0.0/24 block is for link local multicast only. Here you find a number of things such as routing protocols. Datagrams to these destinations should never be forwarded by a router.

Much of the remaining address space within 224/8 has either been assigned to a handful of disparate applications and uses over the years or is simply IANA reserved. This /8 block is sometimes referred to disparagingly as the multicast swamp.

The 232.0.0.0/8 block is reserved for use by single-source multicast (SSM), which will be described later in this article.

233.0.0.0/8 is set aside for GLOP addresses. In a nutshell, the middle two octets of this block are formed from assigned ASNs, allowing any operator assigned an ASN 256 globally unique multicast group addresses per ASN. To some extent, this block has been one of the most successful addressing schemes, but unfortunately it does not scale well.

239.0.0.0/8 is referred to as administratively scoped addresses. Some operators have unfortunately treated this entire block like RFC 1918 addressing for multicast, but as close read of the RFC 2365, shows that only a subset of this block can really be treated this way and even then there are portions of it, the relative assignment region, that are defined making the address space not entirely akin to unicast private addressing.

The remainder of the Class D address is currently IANA reserved.

Routing


Each host (and in fact each application on the host) that wants to be a part of a multicast group (i.e. receive data corresponding to a particular multicast address) must use Internet Group Management Protocol (IGMP) to indicate this. Adjacent routers also use this protocol to communicate.

In unicast routing, each router examines the destination address of an incoming packet and looks up a table to determine which interface to send the packet in order for that packet to get closer to its destination. The source address is irrelevant to the router.

However, in multicast routing, the source address (which is a simple unicast address) is used to determine which direction is upstream (the source of the multicast traffic). The router determines which downstream interfaces are paths to destinations for this multicast group (the destination address) and sends the packet out each interface. The term reverse path forwarding is used to describe this concept of routing packets away from the source, rather than towards the destination.

Layer 2 Delivery


Unicast packets are delivered to a specific recipient on an Ethernet or IEEE 802.3 subnet by setting a specific layer 2 MAC address on the Ethernet packet address. Broadcast packets make use of a broadcast MAC address (FF:FF:FF:FF:FF:FF), which includes setting the broadcast/multicast bit in the address. Multicast packets are delivered by using the Ethernet MAC address range 01:00:5e:00:00:00 - 01:00:5e:7f:ff:ff. This is 23 bits of available address space. The first octet (01) includes the broadcast/multicast bit. The lower 23 bits of the 28-bit multicast IP address are mapped into the 23 bits of available ethernet address space. This means that there is ambiguity in delivering packets. If two hosts on the same subnet each subscribe to a different multicast group whose address differs only in the first 5 bits, Ethernet packets for both multicast groups will be delivered to both hosts, requiring the network software in the hosts to discard the unrequired packets.

For IPv6 Multicast addresses, the Ethernet MAC is derived by the four low-order octets OR'ed with the MAC 33:33:00:00:00:00, so for example the IPv6 address FF02:DEAD:BEEF:1:3 would map to the Ethernet MAC address 33:33:00:01:00:03

Reliable Multicast


Multicast, by its very nature, is not a connection-oriented mechanism, so protocols such as TCP, which allows for retransmission of missing packets, are not appropriate. For applications such as streaming audio and video, the occasional dropped packet is not a problem. But for distribution of critical data, a mechanism is required for requesting retransmission.

One such scheme, proposed by Cisco, is PGM (originally Pretty Good Multicasting, but changed for trademark reasons to Pragmatic General Multicast), documented in RFC 3208. In this scheme, multicast packets have sequence numbers and when a packet is missed a recipient can request that the packet be resent using a simple unicast connection.

IP Multicast protocols


See also


 

This article is licensed under the GNU Free Documentation License. It uses material from the "IP Multicast".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld