What is "Multicast" ?
Multicast is a term for a special addressing on IP Networks, which allows to target a group of devices on a LAN/WAN with one block/stream on the network, without affecting devices which are not interested in the data.
Multicast is somewhat similar to Broadcast. If a block/sequence of blocks is "broadcasted" on the network, every station (in the same IP address range as the broadcast address) will receive the broadcast. Of course, if there is no listening port open for the received block, it is discarded, but the block at least arrives at every station and will use some resources for processing.
In contrast to Broadcast, Multicast uses a specific addressing scheme, so a host (and of course also a Barix device) can decide in the early stages of the processing of incoming blocks, often even in hardware, if the block is "subscribed to" or not - if not, the block is discarded. Nowadays, with "smart"/"managed" switches, multicast blocks which a certain host is not interested in are typically not even forwarded from the switch to the host, effectively keeping them off the connection. Of course, this is only possible if the device/host can tell the switch exactly which multicasts it is interested in. This is achieved by the "IGMP" prototocol.
Multicast addresses use a specific IP address pattern. Any address in the range 224.x.x.x to 239.x.x.x is a multicast address, and will be sent on Ethernet with special MAC addresses. Devices/Hosts which do not support multicast will typically NOT receive a multicast block, and, as explained above, if a "smart switch" or router is used, a multicast block will not even show up on the link to a device unless it has requested delivery of multicast to a specific multicast group (identified by the IP address) by IGMP. This is in contrast to broadcast - all broadcast blocks are forwarded to all devices on a network and must be received by he connected device.
Does Multicast work with TCP ?
No. Multicast can only be used with services/applications using datagram (=UDP) service. TCP, in contrast, is the reliable transmission protocol, and always needs a point to point architecture. Multicast cannot work with TCP.
Does Multicast work with RTP ?
Yes. RTP is based on UDP, and UDP is the datagram (packet) service of the IP protocol stack. If the endpoints (=devices) and switches/routers support Multicast, it can be used on a network infrastructure, and RTP is just one application protocol on top of UDP.
How can I generate Multicast from a Barix device ?
No special functionality or configuration is needed. ALL Barix applications and devices support the generation of Multicast traffic. The target address (of a UDP based application protocol) just needs to be configured as a Multicast address, and the device will generate the outgoing blocks as Multicasts with correct, configured IP address and corresponding "special" MAC address.
Can a Barix device receive Multicast ?
This depends on the software application loaded. The standard "Exstreamer" firmware can not receive multicast in general but it subscribes to a default Multicast Address 184.108.40.206. Whereas the Streaming Client firmware for the Exstreamer family can do Multicast of configurable address. For example, in the Streaming Client, you can configure a URL as rtp://220.127.116.11:1234 and the Streaming Client firmware will subscribe to group 18.104.22.168 and receive an RTP stream sent to this group address, port 1234. Standard Annuncicom firmware does not support Multicast reception, but it can send multicast streams. The ABCL applications on the Audio Platforms which use RTP or UDP for distribution typically support Multicast reception.
As a rule of thumb: All Barix devices can generate Multicast. If there is no configuration of a multicast group or URL (see example above) where a receiving group address can be configured, Multicast receiving is probably not supported.
In (A)BCL programming, a UDP socket can be opened with multicast reception by simply giving the multicast address. All IGMP handling is done automatically.
Are there "reserved" addresses
Yes. 22.214.171.124 is reserved as a "link local" Multicast address, used for local link management (to say things simple), and is typically not routed even by switches. So - don't use that address unless you know what you do.
What is the "reach" of Multicast over a WAN ?
Every IP Packet has a "forwarding counter", called "Time To Live", short TTL. This counter is decreased with every router forwarding by one, and when it reaches 0, the block is discarded. This function is important to limit the life of blocks in case of cyclic misconfigurations. Standard Unicast IP packets typically are sent with a TTL of 64 or 128, so they have ample time to get to the destination. A Broadcast is sent with a TTL of one, it is just sent on the local network and not routed. A Multicast is typically sent by Barix devices with a TTL of four, but "link local" Multicasts of address 126.96.36.199 are sent with a TTL of one. Those don't go to the next network.
Can I send Multicast over the Internet ?
Generally, no - ISP's typically block Multicast distribution - at least "upstream" (into the network). For specific applications (such as IPTV distribution), they may distribute Multicast to the subscribers.
- I have 200 devices on my local network, and want to send a block to 20 of them. What do i do ?
Multicast is ideal for this scenario. By picking an (unused) Multicast address and sending the data feed to that address, every device on the network can subscribe to that Multicast. Of course, you need to configure the 20 receivers so that their application knows they are supposed to receive the Multicast to the picked group - and they need to manage the Switch with IGMP so that it forwards the blocks.
How does Barix use Multicast ?
Barix has defined and designed a system for general audio distribution over multiple subnets which we call "BARP" - the Barix Paging Protocol. BARP makes extensive use of Multicast to address many stations at the same time, yet keeping traffic low by using Multicast.
Does Multicast work over WLAN ?
Generally, yes - but IMPORTANT please read the following page for the limitations: WLAN_Broadcast/Multicast