In this newsletter, we will consider three modes of transmitting packets in IP networks: unicasting, multicasting and broadcasting. Most messages are unicast. That is, a single sender sends a message to a single recipient. Netflix and YouTube are based on it. Multicasting happens when a single user sends a message to a group of receivers. It is often used in IPTV, digital signage, and surveillance.
Broadcasts are when a message is sent to every device on the network. These are critical in Ethernet. They are a means by which a sender can find a receiver even if it doesn’t know the receiver’s address. The ARP (Address Resolution Protocol) and DHCP (Dynamic Host Configuration Protocol) are both based on layer two broadcasts. Also, a device entering a network will send a broadcast asking for the local routers mac address to be returned. If it doesn’t get an answer, it is limited to sending and receiving on the local network.
A factor that is not well known about these three types of messages is that they can be sent at either the MAC (medium access ) level or the IP level. And, each one has distinct purposes. At the MAC level, the difference between the types is based on distinctions in the 48-bit hardware address, which is placed in the destination address field of the Ethernet frame. It’s the first field. If that address is the unique hardware address assigned by the network interface card manufacturer, the frame is a unicast message to the device containing that card. If the sending interface card modifies the address so that the first bit sent is a one, the destination is either a broadcast or a multicast. But, if all 48 bits are set to one, it is a broadcast.
Level three or IP level addressing is very different. Here, any address whose first byte is 1-223 is a unicast. If the first byte is 224-239, the IP packet is being sent to a group. If the address is 255.255.255.255, it is a broadcast. An IP address such as 188.8.131.52 would be a limited broadcast to the network 184.108.40.206.
So, from where does the controversy about multicasting arise? It’s over the issue of whether multicasting is better done at layer two or layer three. If you have ever studied switching or routing, you know that the network architecture must be composed of paths that form a mathematical tree. In such a structure, there is one and only one path between any source and any destination. It precludes the possibility of network loops. In both forms of multicast, there is a protocol that defines who belongs to the group and who receives the frames or packets. With level two addressing, it is defined as part of a standard for Shortest Path Bridging (SPB), IEEE 802.2 aq. With layer three multicasting, it is defined by the IGMP (Internet Group Messing Protocol). IGMP has been widely implemented for IPTV and digital signage systems because it is an effective means of getting a program (video) to many devices with the least possible consumption of bandwidth. However, it has a flaw. If the tree network of paths created for delivery is disrupted by a single link failure, the time to create a new tree can be up to ten seconds. This delay would be disastrous at a live event or with hundreds of surveillance cameras in an emergency. On the other hand, if the multicasting is based on SPB and layer two addressing, the new set of paths can be created in milliseconds.
Here we find the controversy. Do we use the widely implemented protocol knowing of its flaw or do we embrace a relatively new approach with little deployment history? I believe SPB will ultimately win this dispute. In my experience, layer three multicasting often is difficult to implement and easy to disrupt. While the underlying method of SPB is more complicated to understand, it can be made to be just about plug-and-play. And, it is rapidly gaining acceptance in the data center environment