Collision vs Broadcast Domains: How to Use Them
In the early days of wired ethernet, the collision and broadcast domain were almost synonymous because all traffic from one machine was broadcasted to every machine on the segment. Today, they are very different and have different tools and equipment to mitigate them. In this article, we'll cover how to avoid collisions, use broadcasts, and cover the difference between a collision and broadcast domain.
What is a Collision and Collision Domain?
Collisions happen when two nodes on a half duplex network attempt to send data at the same time. When this happens, the network discards the collision and each node attempts to retry again. Each node does this at a random interval in an attempt to avoid another collision.
A collision domain is a network segment containing nodes that are capable of causing collisions with each other. If two nodes are able to cause collisions but not with each other, they are on different collision domains.
How to Avoid Collisions — and Deal with Them if They Happen
Collisions have been around since the advent of ethernet. CSMA/CD is a core protocol built to detect collisions in wired ethernet. CSMA/CA was built to avoid collisions and used in wireless networks. Most modern equipment has technology to avoid collisions all together. Avoiding collisions is the best policy; here's how you can reduce them.
Routers. In older environments, where half duplex was the norm or full duplex was not possible, implementing routers was the original solution to collision domains. It would not completely alleviate them but it would minimize. Switches were expensive at the time. Routers were as well but they were slightly more cost effective. It is challenging to introduce routers into a topology solely to split up collision domains. Luckily, there are better options.
Switches and Full Duplex. Switches with full duplex ports completely alleviate a collision domain. Nodes that can negotiate full duplex do not have collision domains. In the case of half duplex ports, switches also limit collision domains to those half duplex ports further helping this along. For 1 gbps and higher, half duplex is not a valid negotiation. Half duplex was only a valid option at 100 mbps and lower. Negotiations would default to half duplex in the event of an issue. These half duplex negotiations were typically caused by faulty wiring but could sometimes also indicate a bad network card or switch port.
Avoid channel saturation. For wireless, excessive collisions happen due to channel saturation. With many nodes communicating over the same channel they are bound to collide. The key is to have enough access points on enough non-overlapping channels to minimize the collision domain. For 2.4 GHz, there are only three non-overlapping channels. The 5 GHz spectrum has many more but that number is dependent upon your channel width. Ensuring that you are using 5 GHz when possible, ensuring access points are properly spaced to avoid interference and that there are sufficient access points on a diverse set of channels tends to be the best mitigation strategy for wireless.
What is a Broadcast and Broadcast Domain?
A broadcast is a packet or frame destined for all nodes on the network segment. These are typically used when the specific endpoint is not known. Commonly, they are used for discovery services to seek those unknown nodes.
A broadcast domain is a segment of the network where broadcasts from any node will reach all other nodes in that broadcast domain. Another way of putting it is that broadcasts will only reach nodes in the same broadcast domain.
Unlike collisions, broadcasts can be very useful. Workstations may use them to autodiscover a printer on the same network or other devices needing to be communicated with. DHCP is a common protocol that uses broadcasts to help auto assign IP addresses to workstations.The workstation starts out without an IP address and does not know the DHCP server's IP address.
It uses a broadcast to discover and request an IP from the DHCP server. The DHCP server responds back with a broadcast because the workstation does not have an IP address at this point and they negotiate until the workstation has an IP address. Equipment vendors such as SANs have even been known to use them for first time setup discovery until an IP address is configured.
Broadcasts can be inefficient, though, because they are sent to every device on the same LAN segment. A network of DHCP clients and printers can be quite chatty. If you have hundreds of endpoints, or even thousands, broadcasts would quickly start to consume the LAN segments.
5 Methods for Handling Broadcasts
Luckily, modern equipment can minimize these broadcasts with VLANs, DHCP Helpers, Multicast or implementing routers between segments. In severe cases, broadcast suppression can be enabled.
Routing. Routers were one of the original solutions to segmenting broadcast domains. By default, broadcasts are only sent to machines within the same IP subnet. Routers could be configured to forward broadcasts to other subnets/networks when necessary but use of this was limited because the goal of implementing a router was to split up broadcast domains.
VLANs. With the advent of VLAN functionality in switches, we could split up the broadcast domains using this. Workstations still needed to use broadcasts to help discover services, but VLANs could be broken out by clients, printers and endpoints that needed to communicate with each other. Routers could then route between VLANs when necessary. Layer 3 switches started to negate the need for internal routers between VLANs.
DHCP Helpers. As switches got even smarter, IP or DHCP helpers started showing up. This is a process on the switch that would listen to DHCP requests. It would prevent them from being forwarded to all ports and redirect them directly to the DHCP server. Doing so saves everyone from hearing that chatter.
Multicast. Multicast is another protocol that helps to greatly reduce noisy broadcasts when implemented properly. Discovery of services usually produces a small burst of broadcasts which usually does not generate much traffic. Streaming video services where you want a server to send data to multiple endpoints but do not want to have to send it multiple times is a great use case for multicast. Sending this as a broadcast though would mean that even those that do not want the traffic will still receive it.
Some "real-time" applications also use multicast to send data to multiple nodes at the same time. Multicast allows clients to subscribe to services or endpoints and receive the data they are interested in. It can be somewhat complex to properly set up and is many times misunderstood. In its default configuration, it typically reverts back to using broadcasts.
Broadcast Suppression. Broadcast suppression is an option baked into switching hardware. It allows you to configure a user-defined threshold for broadcast traffic and simply blocks the broadcast traffic to a port or set of ports to meet that threshold. This can provide undesirable results because expected/needed broadcasts are dropped along with the unwanted and bursty broadcasts.
Collision Domain vs. Broadcast Domain
Less collisions lead to less overhead and delays in packets arriving at their destination. In most cases the strategy is to mitigate these to as close to zero as possible. On the other hand, broadcasts can be acceptable and often used. Reducing broadcasts can make a more efficient network but do not worry about going overboard trying to get these to zero.
Less broadcasts lead to more efficient network transmissions and less overhead that needs to be processed by nodes on the LAN segments. At the end of the day though, many networking protocols use broadcasts like Spanning Tree (STP), OSPF and DHCP as a few examples.