Multicast Semantics

Multicasting has two important properties: the control plane and the data plane. The control plane defines the way in which group membership is organized. The data plane refers to the way in which data is propagated among the members. Either one of these properties can be rooted or nonrooted. In a rooted control plane, there is a special member of the multicast group known as the c_root. Each of the remaining group members is known as a c_leaf. In most cases, the c_root establishes the multipoint group by initiating connections to any number of c_leafs. In some cases, a c_leaf might request membership to a given multipoint group at a later time. Note that there can be only one root node for a given group. The ATM protocol is an example of a rooted control plane.

A nonrooted control plane allows anyone to join a group without exception. In this situation, all group members are c_leaf nodes. Each member has the power to join a multipoint group. You can impose your own group membership scheme in a nonrooted control plane (this will in effect make one node a c_root) by implementing your own group membership protocol. However, your group membership scheme is still built upon a nonrooted control plane. IP multicasting is an example of a nonrooted control plane. Figure 11-1 illustrates the difference between rooted and nonrooted control planes. In the rooted control plane on the left, the c_root must explicitly ask each c_leaf to join the group, while in the nonrooted scheme on the right anyone can join the group.

The data plane also can be rooted or nonrooted. A rooted data plane has a participant called the d_root. The transfer of data occurs only between d_root and all other members of the multipoint session, who are each referred to as a d_leaf. The traffic can be either unidirectional or bidirectional, but a rooted data plane implies that data sent from one d_leaf will be received only by the d_root, while data sent from the d_root will be received by each d_leaf. ATM is an example of a rooted data plane. Figure 11-2 illustrates the difference between rooted and nonrooted data planes. In the rooted data plane on the left, data abc from the d_root is propagated to every d_leaf. Data xyz sent from a d_leaf is received only by the d_root. This contrasts with the nonrooted example on the right, in which data abc and xyz are propagated to every member, no matter who sent the data.

click to view at full size.

Figure 11-1. Rooted and nonrooted control planes

Finally, in a nonrooted data plane all group members can send data to all other members of the group. A block of data sent from a group member is delivered to all other members, and all recipients can send data back. There are no restrictions on who can receive or send data. Again, IP multicasting is nonrooted in the data plane.

So we see that ATM multicasting is rooted in the control and data planes, while IP multicasting is nonrooted in both planes. Combinations other than these two can exist. For example, it is possible to have a rooted control plane in which one node decides who can join the group and also have a nonrooted data plane in which data sent from any member is seen by all other members. However, none of the currently supported protocols under Winsock behave in this manner.

click to view at full size.

Figure 11-2. Rooted and nonrooted data planes

Finding Multicast Properties

In Chapter 5, we discussed how to enumerate protocol entries and determine their properties. All the pertinent multipoint information about a protocol is also available from the protocol's entry in the catalog. The dwServiceFlags1 entry in the WSAPROTOCOL_INFO structure returned by WSAEnumProtocols contains several bits we're interested in. If the XP1_SUPPORT_MULTIPOINT bit is set, the protocol entry supports multicasting. Then, if the XP1_MULTIPOINT_CONTROL_PLANE bit is set, the protocol supports a rooted control plane; otherwise, it is nonrooted. If the XP1_MULTIPOINT_DATA_PLANE bit is set, the protocol supports a rooted data plane. Likewise, if the bit is 0, the protocol supports only a nonrooted data plane.



Network Programming for Microsoft Windows
Linux Server Hacks, Volume Two: Tips & Tools for Connecting, Monitoring, and Troubleshooting
ISBN: 735615799
EAN: 2147483647
Year: 1998
Pages: 159

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net