IP multicast
From Wikipedia, the free encyclopedia
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.
[edit] IP multicast implementations
Pay-TV operators and some educational institutions with significant on-campus student housing have deployed IP multicast to successfully deliver one-way streaming media such as high-speed video to large groups of receivers. Additionally, 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 transmitted using IP multicast. Until recently many of the sessions at the IETF meetings were delivered using multicast.
Another use of multicast within campus and commercial networks is for file distribution, particularly to deliver operating system images and updates to remote hosts. The key advantage of multicast boot images over unicasting NFT boot images is significantly lower network bandwidth usage.
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 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 enabling of additional avenues of failure, particularly from denial-of-service attacks. Many of these issues are covered in further detail below.
For more info see RFC3170 - IP Multicast Applications: Challenges & Solutions
[edit] History and milestones
The MBONE was a long-running 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.
[edit] Addressing
There are four forms of IP addressing, each with its own unique properties.
- Unicast: The most common concept of an IP address is a unicast address. It normally refers to a single sender or a single receiver, and can be used for both sending and receiving. Usually, a unicast address is associated with a single device or host, but it is not a one-to-one correspondence. Some individual PCs have several distinct unicast addresses, each for its own distinct purpose. Sending the same data to multiple unicast addresses requires the sender to send all the data many times over, once for each recipient.
- Broadcast: Sending data to all possible destinations (an "all-hosts broadcast") permits the sender to send the data only once, and all receivers can copy it. In the IP protocol, 255.255.255.255 represents a limited local broadcast. In addition, a directed (limited) broadcast can be made by combining the network prefix with a host suffix composed entirely of binary 1s. For example, to send to all addresses within a network with the prefix 192.0.2, the directed broadcast IP address is 192.0.2.255 (assuming the netmask is 255.255.255.0).
- Multicast: A multicast address is associated with a group of interested receivers. According to RFC 3171, addresses 224.0.0.0 to 239.255.255.255 are designated as multicast addresses. This range was formerly called "Class D." The sender sends a single datagram (from the sender's unicast address) to the multicast address, and the intermediary routers take care of making copies and sending them to all receivers that have registered their interest in data from that sender.
- Anycast: Like broadcast and multicast, anycast is a one-to-many routing topology. However, the data stream is not transmitted to all receivers, just the one which the router decides is the "closest" in the network. Anycast is useful for global load balancing, operating via the shortest-path metric of BGP routing. It is most commonly used in DNS, but does not take into account congestion or other non-AS-path metrics.
[edit] Protocols and applications
Since multicast is a different transmission mode from unicast, only protocols designed for multicast can be sensibly used with multicast.
Most of the existing application protocols that use multicast run on top of the User Datagram Protocol, UDP. In many applications, the Real-time Transport Protocol, RTP, is used for framing of multimedia content over multicast; the RSVP protocol may be used for bandwidth reservation in a multicast distribution.
On the local network, multicast delivery is controlled by IGMP (on IPv4 network) and MLD (on IPv6 network); inside a routing domain, PIM or MOSPF are used; between routing domains, one uses inter-domain multicast routing protocols, such as MBGP.
A number of errors can happen if packets intended for unicast are accidentally sent to a multicast address; in particular, sending ICMP packets to a multicast address has been used in the context of DoS attacks as a way of achieving packet amplification.
[edit] 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. It can result in multiple, mostly unsatisfactory solutions.
There are a number of current general assignment strategies, these are only some of them. 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.[citation needed]
The 232.0.0.0/8 block is reserved for use by Source-specific multicast (SSM).
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. This block has been one of the most successful addressing schemes. Unfortunately, it does not scale well.
239.0.0.0/8 is currently an administratively scoped address space. Some operators have treated this entire block according to the RFC 1918 specification. A careful read of the RFC 2365 shows that only a subset of this address space should be treated this way. There are portions of this address space, the relative assignment region, that are very similar to a private unicast addressing space.
The remainder of the Class D address range is currently marked as reserved by the IANA.
[edit] Routing
Each host (and in fact each application on the host) that wants to be a receiving member of a multicast group (i.e. receive data corresponding to a particular multicast address) must use the Internet Group Management Protocol (IGMP) to join. Adjacent routers also use this protocol to communicate.
In unicast routing, each router examines the destination address of an incoming packet and looks up the destination in a table to determine which interface to use 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 data stream direction. The source of the multicast traffic is considered upstream. The router determines which downstream interfaces are destinations for this multicast group (the destination address), and sends the packet out through the appropriate interfaces. The term reverse path forwarding is used to describe this concept of routing packets away from the source, rather than towards the destination.
[edit] 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. The IANA owns the OUI MAC address 01:00:5e, therefore 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
Switches that cannot understand multicast addresses will broadcast traffic sent to a multicast group to all the members of a LAN; in this case the system's network card (and operating system) has to filter the packets sent to multicast groups they are not subscribed to.
There are switches that listen to multicast traffic and maintain a state table of which network systems are subscribed to a given multicast group. This table is then used to forward traffic destined to a given group only to a limited set of hosts (ports). This is done through the use of IGMP snooping.
Additionally, some switches with layer 3 capabilities can act as an IGMP querier. In networks where there is no router present (or enabled) to act as a multicast router a switch might be used to generate the needed IGMP messages to get users to subscribe to multicast traffic.
[edit] 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 re-multicast with other members of the Multicast group ignoring the replacement data if not needed. More recently, an expanded version, PGM-CC has attempted to make IP Multicasting more "TCP friendly" by stepping the entire group down to the bandwidth available by the worst receiver.
Two other schemes documented by the Internet Engineering Task Force (IETF) are NACK-Oriented Reliable Multicast (NORM), documented in RFC 3940, and File Delivery over Unidirectional Transport (FLUTE), documented in RFC 3926. Open-source, in addition to proprietary, implementations exist for these. Other such protocols exist, such as Scalable Reliable Multicast, and are defined by a variety of sources. Such protocols vary in the means of error detection, the mechanisms used in error recovery, the scalability of such recovery and the underlying ideas involved in what it means to be reliable. A list of reliable multicast protocols from the ACM SIGCOMM Multicast Workshop, August 27, 1996, documents a number of approaches to the problem.
Independent groups like the Internet Protocol Multicast Standards Initiative (IPMSI) have claimed that the lack of a truly scalable Secure Reliable IP Multicast protocol like the proposed SMART Multicast (SMART) (Secure Multicast for Advanced Repeating of Television) have hampered the adoption of IP Multicast in inter-domain routing. The lack of a widely adopted system that has AES level security and scalable reliability have kept mass media transmissions of sporting events (like the Super Bowl) and/or breaking news events from being transmitted on the Public Internet.
Reliable IP Multicasting protocols, such as PGM and SMART (mentioned above), are experimental.
[edit] Wireless (802.11) Considerations
An 802.11 wireless network will handle multicast traffic differently, depending on the configuration of 802.11 power-save mode, DTIM (Delivery Traffic Indication Message), and beacon interval settings. If power-save mode is disabled, then access points will deliver multicast traffic after each beacon (default interval = 100ms, but it can be adjusted). If power-save mode is enabled, the access point will deliver multicast traffic after each DTIM, which by default is every 1,2, or 3 beacon intervals in most access points. As a result, the DTIM and beacon interval settings should be adjusted for optimum performance when implementing multicast in wireless networks.[1]
[edit] IP multicast protocols
- Internet Group Management Protocol (IGMP)
- Protocol Independent Multicast (PIM)
- Distance Vector Multicast Routing Protocol (DVMRP)
- Multicast Open Shortest Path First (MOSPF)
- Multicast BGP (MBGP)
- Multicast Source Discovery Protocol (MSDP)
- Multicast Listener Discovery (MLD)
- GARP Multicast Registration Protocol (GMRP)
- Multicast DNS (mDNS)
[edit] IP multicast software
- Media Tools Repository - a collection of tools for the MBone
- VideoLAN - a free software multicasted video streaming application
- Xorp - a free software router with multicast (IGMP, PIM) support
- Smcroute - a simple tool to manipulate multicast routes on the Linux kernel
- SSM-ping - tool to test multicast connectivity
- Host implementation of IGMPv3 on FreeBSD
- IP multicast software from Xerox
- Java Reliable Multicast Service
- PIM implementation - an implementation of the PIM protocol, now obsolete
- qpimd - PIM Daemon for Quagga - PIM module for the Quagga Routing Suite
- GateD - UNIX implementation of routing protocols, including multicast
- PIM-DM code for GateD
- NORM - Nack-Oriented Reliable Multicast from the U.S. Naval Research Laboratory, with an open source C++ implementation
- ecmh (Easy Cast du Multi Hub) - IPv6 Multicast Daemon, allows IPv6 multicast to be used without the need for PIM.
[edit] See also
- Dense multicast
- Sparse multicast
- Source-specific multicast
- Core-based trees
- IGMP snooping
- Multicast address
- Multicast
[edit] References
- ^ "802.11 Multicasting". http://www.wireless-nets.com/resources/tutorials/802.11_multicasting.html. Retrieved on 2008-10-08.
[edit] External links
- RFC3170 - IP Multicast Applications: Challenges & Solutions
- Multicast over TCP/IP HOWTO, describes Multicast in the Linux kernel, although some sections (specially multicast programs) is outdated and does not cover recent software.
- IETF Reliable Multicast Transport (rmt) Working Group
- IETF Multicast & Anycast Group Membership (magma) Working Group
- IETF Protocol Independent Multicast (pim) Working Group
- IETF Source-Specific Multicast (ssm) Working Group
- IETF Multicast Security (msec) Working Group
- Multicast IP details at sockets.com
- IP-Ethernet multicast tutorial.
- Good illustrative video about IP Multicast at Cisco.
- Overview of Reliable Multicast methods, ACM SIGCOMM Multicast Workshop, August 27, 1996
- A Reliable Multicast Framework for Light-weight Sessions and Application Level Framing (the paper defining Scalable Reliable Multicast)