IP multicasting

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

IP multicasting

Message Queuing provides a mechanism to send and receive IP multicast traffic using the Pragmatic General Multicast (PGM) driver, which is installed and configured as part of the Core subcomponent during every installation of Message Queuing. Messages can be sent to a single destination IP address and then received and processed by multiple IP hosts. A host listens for a specific IP multicast address and receives all packets sent to it. The set of hosts listening on a specific IP multicast address is called the host group.

Using this method, a single copy of the message is sent on the network, and this message can then be received and processed by numerous destination applications. This method is especially useful if the same message has to be delivered to large numbers of receiving applications.

The sender specifies a target IP multicast address. An IP multicast address property is attached to a queue. Subsequently, every message that is sent to that multicast address is inserted into the queue by Message Queuing. Applications continue to read messages from the queue using standard Message Queuing features. The Message Queuing service on a specific host listens to all multicast addresses to which its local queues are bound, routes incoming messages to the appropriate queues, duplicates messages that are sent to multiple queues, and dynamically starts and stops listening to a multicast address as local queues become bound and unbound.

Be aware of the security implications of multicasting. Messages cannot be encrypted, and messages could be read or used by unauthorized persons. Ensure that the specified address is used only for Message Queuing multicasting.

The following are some of the specific features of IP multicast messaging:

  • Only one copy of the message is sent, and it is received and processed only by computers, or hosts, that are listening for it.

  • Hosts can join and leave the host group dynamically at any time.

  • There are no limitations on the size of a host group.

  • A host can send messages to an IP multicast address without belonging to the corresponding host group.

  • Transactional sending is not supported.

A multicast address and a port number in the IP_Address: PortNumber syntax can be associated with any public or private queue. For public queues, this information is stored in Active Directory. For a private queue, this information is stored on the computer where messages sent to the queue are stored. Therefore, in workgroup mode, multicast addresses can be associated only with private queues, and in domain mode, a Windows Server 2003 family domain controller must be available to associate multicast addresses with public queues.

IP multicast addresses must be in the class D range from 224.0.0.0 to 239.255.255.255, which corresponds to setting the first four high-order bits equal to 1110. However, only certain ranges of addresses in this range are available for sending multicast messages. For the latest list of reserved multicast addresses, see the link to Internet Assigned Number Authority (IANA) Internet Multicast Addresses at Windows 2000 Resource Kits - Web Resources (https://go.microsoft.com/fwlink/?LinkID=291).

For information about how to specify or view the multicast address and port number for a specific queue, see Specify or view queue multicast addresses and ports.

No additional security mechanisms are provided for multicast messaging. Security is achieved through authorization and authentication based on the mechanisms for one-to-one messaging. Each target queue is protected by authentication based on sender and access based on sender and receiver. Encryption and decryption are not supported.

Multicast messaging with multiple network adapters

On a computer with multiple network adapters, a problem will occur when the computer tries to send multicast messages by means of these multiple network adapters. In effect, Message Queuing randomly chooses a network adapter for sending multicast messages. If the private network adapter is chosen, multicast recipients will not receive the message. To work around this issue, you can specify the source IP address to be used for sending multicast messages. To do this, create the REG_SZ value HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\MulticastBindIP in the usual IP address format. After setting the registry, restart the Message Queuing service for the changes to take effect.

Warning

Incorrectly editing the registry may severely damage your system. It is recommended that you back up any valuable data on the computer before making changes to the registry.

Multicast messaging on a cluster node

For multicast messaging on a cluster node, if no IP address is specified in the MulticastBindIP key, the IP address is derived in the following way:

  • On a virtual server, the virtual server's IP address that is defined for the IP address resource is used.

  • If the cluster node has only one IP address, that address is used.

  • If an IP address is specified in the registry, that address is used. If the IP address that is specified cannot be found on the node, an event is issued and the registry entry is ignored.

  • If a node has multiple IP addresses, the cluster application programming interface (API) is used to make two lists—a first list of all private (not static) IP addresses, and a second list of all the node's IP addresses. These two lists are then compared to select an address that is in the second list but not in the first list. An informational event is issued with the IP address that is chosen. If the only IP addresses available are the addresses in the first list, one of those addresses is used and an event is issued.

To specify an IP address, create a REG_SZ value HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\ClusterBindIP in the usual IP address format. After editing the registry, restart the Message Queuing service for the changes to take effect.

Warning

Incorrectly editing the registry may severely damage your system. It is recommended that you back up any valuable data on the computer before making changes to the registry.