17.1 Group Communication Before we introduce the details of IP multicast in Linux, the following sections give a brief summary of the three communication forms: unicast, broadcast, and multicast. Unicast is the classic form of communication between two partners point to point. In the context of this book, this means that two computers communicate with each other only. When a unicast communication service is used to transmit data to several receivers, then this has to be done independently of one another in several transmit processes. This means that the cost for the data transport increases in proportion to the number of receivers, as shown in Figure 17-1. Figure 17-1. In unicast communication, the packet is sent to each receiver separately. Naturally, if there is a large number of receivers, this cost leads to an extreme load on the network, and so this technique is unsuitable for the distribution of large data volumes, such as multimedia data. Broadcast communication represents a better solution in some cases. 17.1.2 Broadcast Broadcasting means that all participants in a communication network that can be reached over a specific medium receive the distributed data packets, regardless of whether they are interested in it. Examples for broadcast communication include the broadcasting of television and radio broadcasting programs, and advertisements in the mailboxes of homes. At first sight, broadcast communication looks expensive. However, a closer look reveals that it is supported by the network technologies, especially in local area networks (LANs). In fact, each communication is a broadcast communication in local area networks, because the local network technologies (Ethernet, token ring, etc.) are broadcast media, where data packets are distributed to all stations. When a packet is received, the MAC destination address is checked to see whether the packet should be further handled by that station. This means that broadcast communication is very easy in local area networks. In fact, it is sufficient to send a packet to the network, so that all stations can receive it. However, as with advertisements in mailboxes, not everybody will want to receive a broadcast packet they are not interested in. For this reason, though it is simple to broadcast data to a group, this approach is a burden for stations not interested in this data and reduces their performance. This holds also true for wide area network (WAN) traffic: Where point-to-point connections prevail, the benefit of the simplicity of broadcasting can easily turn into a heavy burden for the networks [Tan97]. 17.1.3 Multicast Multicast communication offers a solution to the problem described in the previous section. It enables a targeted transmission of data packets, in contrast to n single transmissions in unicast, yet it prevents the uncontrolled copying of data packets done in broadcast. In the Internet, this is implemented by defining groups, and each Internet computer can subscribe to groups. Once a system has demonstrated its interest in participating in a multicast group, it will receive packets addressed to this group. In addition, an attempt is made to transport packets across the network so that as few network resources as possible are consumed. With multicast, data packets are not transmitted separately for each receiver. Instead, they are transmitted once and then replicated in the appropriate branching points and delivered to the receivers. (See Figure 17-2.) In contrast to broadcast, only stations that are members of that group receive data packets (with a few minor limitations, as we will see in Section 17.4.1). Figure 17-2. In multicast communication, the packets are first replicated in the network. In any event, IP multicast forwards data packets selectively to the subnetworks that really connect members of the corresponding multicast group. This approach reduces the network load considerably, compared to the distribution of packets in unicast and broadcast. |