This blog is thought to set the foundations for Multicast concepts which apply to IPv4More details for relevant sections will be provided in future blogs.

  • What is Multicast? Multicast is replicating a single stream of data, from one (or more) source(s) to multiple destinations.
  • Multicast is similar to Broadcast; however there are important differences that sets them apart:
    • Broadcast is one-to-all communication, regardless whether or not a specific destination is actually interested in the data. In contrast, the nature of Multicast communication is one-to-many or many-to-many whereby, only interested hosts would receive the data.
    • With Multicast communication the control-plane is state-driven in the sense that a distribution loop-free tree is esbalished on demand and triggered by either the source or receiver(s).
    • Routers do not forward broadcast packets unless configured to do so; however, by default, multicast packets will be forwarded by routers
    • Multicast forwarding strongly relies on time thresholds – most protocol messages sent out would likely initiate a timer; another action is triggered once the timer expired. In many cases, these timers are initiated at the source, as well as at the receiving end of the message
  • L3 Addresses – /4 { to} – this range is further subnetted in different multicast IP address reserved ranges – full list here. Also keep in mind that unlike with unicast addresses which are assigned by Regional Registries, multicast addresses are assigned directly by IANA.
    • Link Local Control Addresses { /24} – they have a local link scope hence they could be reused beyond the local gateway. Below is an example of well-known link-local multicast addresses; as you can see, some of addresses within this range are used for control-plane functionality within IGPs.
      • – all local hosts, including gateways
      • – all routers (gateways only)
      • – all OSPF routers on a network segment
      • – all OSPF DR routers
      • – RIPv2 routing advertisements
      • – EIGRP routing advertisements
    • Internetwork Control Block { /24} – these addresses have global scope and are routable on the Internet. Examples below:
      • – NTP (when in multicast mode)
      • – Name Service Server (NSS)
      • – Cisco RP Announce
      • – Cisco RP Discover
    • GLOP Addresses – these are to be used within the ISP realm for they make use of the two middle bytes in the middle to represent the AS number. For example, AS 8551 (binary 00100001 01100111) would result in the /24 multicast address.
    • Source Specific Multicast Addresses (SSM) { /8} – these are to be used with IGMPv3 which is the only protocol which supports SSM
    • Administratively Scoped { /8} – these are to be used privately, by organizations and they should not be routable out to the public internet! They should be used in the same fashion as IPv4 private IPs are used
  • L2 Control-Plane Protocols – It is important to understand that whilst protocols such as PIM, IGMP, MSDP would facilitate Layer3 connectivity, hosts connect straight to switches. Therefore, there was a need for switches to also “learn” of which hosts are interested in receiving multicast packets – otherwise, packets would need flooded out all ports!! This is achieved through a snooping mechanism:
    • CGMP (Cisco Group Management Protocol) – it cannot be used simultaneously with RGMP (see below); it cannot be used simultaneously with IGMP Snooping; it is a Cisco proprietary protocol
    • RGMP (Cisco Router-Port Group Management Protocol) – it works along with IGMP Snooping; it cannot be used simultaneously with CGMP; it brings improvements over CGMP
    • IGMP Snooping – despite CGMP providing better performance, this is the protocol enabled by default and most widely used, due to its multi-vendor compatibility
  •  L3 Control-Plane Protocols – these can be classified in:
    • IGMP v1/v2/v3 – enables host-to-multicast-core communication.
      • Hosts-to-Router (IGMP Reports) or Router-to-Host (IGMP Queries) multicast protocol used to establish group membership based on receiver’s interest in receiving multicast traffic for a specific group.
      • IGMP messages sent between IGMP enabled routers – for instance, when more than one router exists on the same network segment, messages are exchanged towards establishing the Querier.
    • Router-to-Router protocols:
      • PIM (Protocol Independent Multicast) – control-plane protocol for establishing a Layer3 loop-free topology over which multicast traffic is to be sent. It works in three modes: dense, sparse and sparse-dense mode.
      • MSDP (Multicast Source Discovery Protocol) – control plane protocol which enables inter-domain multicast connectivity. It is an optional “plug-in” to the PIM protocol, when operating in sparse-mode
  •  RPF Check (Reverse Path Forwarding) check is a mechanism used to avoid loops by making sure that the same incoming interface would be used for routing outgoing traffic back to the source.
  • Multicast addresses can only be used as destination addresses; a multicast address will never be used as a source IP. A multicast IP packet will have in the source and destination address fields, the unicast IP address of the source and the group multicast address respectively.

To conclude, this is how multicast works, without going into details on how each protocol works – this will be cover in future blog posts:

  1. A multicast server/source starts sending multicast packets through the network towards a multicast group destination IP address
  2. Client hosts show interest (IGMP Reports) in receiving the traffic; similar IGMP messages (IGMP Leave) are used to signal when a host wishes to leave the group
  3. PIM will build a loop-free forwarding tree through the core network, from each receiver, back to the source
  4. Multicast Traffic starts flowing downstream – should traffic flow stop, hosts will leave the multicast group based on specific thresholds and timers which in turn, will trigger IGMP Leave messages.

Thank you,
View Rafael A Couto Cabral's profile on LinkedIn

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>