Collision Domain vs. Broadcast Domain | Repeater, Hub, Bridge, Switch, Router

Collision Domain Vs Broadcast Domain | Repeater, Hub, Bridge, Switch, Router | Networks

If you’ve ever wondered why adding more devices to an old-style network made everything slower, or why replacing a hub with a switch dramatically improved performance, the answer lies in two fundamental concepts: collision domains and broadcast domains. These concepts, combined with an understanding of how different networking devices (repeaters, hubs, bridges, switches, and routers) operate at different OSI layers, form the backbone of practical network design.

This article explains both concepts from first principles, in simple language, using diagrams, comparison tables, and hands-on examples with Linux, Cisco, and Python.


1. What Is a Collision Domain?

A collision domain is a network segment where data packets can “collide” with one another when two or more devices attempt to transmit at the exact same time on a shared medium.

This concept originates from Ethernet’s original design, which used a shared medium (like a coaxial cable, or later, a hub) where all connected devices had to take turns transmitting. If two devices transmitted simultaneously, their electrical signals would interfere — a collision — corrupting both transmissions.

CSMA/CD: How Ethernet Originally Handled Collisions

Classic Ethernet used a mechanism called CSMA/CD (Carrier Sense Multiple Access with Collision Detection):

  1. Carrier Sense: Before transmitting, a device listens to check if the medium is idle.
  2. Multiple Access: Multiple devices share the same medium.
  3. Collision Detection: If a collision is detected (two devices transmitted simultaneously), both devices stop, wait a random backoff period, and retry.

The larger the collision domain (more devices sharing the medium), the higher the probability of collisions, which degrades performance significantly as more devices are added.


2. What Is a Broadcast Domain?

A broadcast domain is a logical division of a network in which all devices can reach each other via broadcast at the data link layer (Layer 2) — meaning a broadcast frame (destination MAC address FF:FF:FF:FF:FF:FF) sent by any device in the domain will be received by every other device in that same domain.

Broadcasts are used for essential network functions such as:

  • ARP (Address Resolution Protocol): Discovering the MAC address associated with a known IP address.
  • DHCP Discovery: A client broadcasting to find a DHCP server on the network.

Unlike collision domains (a Layer 1 physical/electrical concept), broadcast domains are a Layer 2/Layer 3 logical concept, bounded by devices that do not forward broadcast frames — namely, routers (and Layer 3 switches with VLAN segmentation).


3. Collision Domain vs. Broadcast Domain: Key Differences

FeatureCollision DomainBroadcast Domain
OSI Layer concernedLayer 1 (Physical)Layer 2/3 (Data Link/Network)
What it limitsSimultaneous transmissions causing signal collisionScope of broadcast frame propagation
Caused byShared physical medium (e.g., hub, coax cable)Flat Layer 2 network without segmentation
Devices that separate itBridges, switches, routersRouters, Layer 3 switches (VLANs)
Devices that do NOT separate itRepeaters, hubsBridges, switches (within same VLAN)
Typical size in modern networksOne device per switch port (very small)Can span an entire VLAN/subnet

4. How Different Devices Affect Collision and Broadcast Domains

This is where understanding networking hardware becomes crucial. Let’s go through each device, from the physical layer up to the network layer.

4.1 Repeater (Layer 1)

A repeater simply regenerates and amplifies electrical signals to extend the physical reach of a network. It operates purely at Layer 1 and has no understanding of addresses (MAC or IP) at all.

  • Collision domain: Does NOT separate — all devices connected via repeaters remain in the same single collision domain.
  • Broadcast domain: Does NOT separate.

4.2 Hub (Layer 1)

A hub is essentially a multi-port repeater. When it receives an electrical signal on one port, it repeats that signal out to all other ports, regardless of the intended destination.

  • Collision domain: Does NOT separate — all ports on a hub are part of one single collision domain. This is why hubs are notorious for performance problems as more devices are added.
  • Broadcast domain: Does NOT separate — all ports are also in the same broadcast domain.

4.3 Bridge (Layer 2)

A bridge operates at Layer 2 and makes forwarding decisions based on MAC addresses. It maintains a table (learned by observing source MAC addresses) mapping which devices are reachable via which port, and only forwards frames toward the segment where the destination MAC address resides.

  • Collision domain: DOES separate — each port on a bridge is its own collision domain, since the bridge only forwards frames as needed rather than repeating everything.
  • Broadcast domain: Does NOT separate — bridges still forward broadcast frames to all connected segments, so the whole bridged network remains one broadcast domain.

4.4 Switch (Layer 2, sometimes Layer 3)

A switch is essentially a multi-port bridge (with much higher port density and hardware-based forwarding for speed). Modern switches operate similarly to bridges but at much larger scale and speed, using MAC address tables (CAM tables).

  • Collision domain: DOES separate — each individual switch port is its own collision domain. In fact, on modern full-duplex switch links, collisions are essentially eliminated entirely, since devices can send and receive simultaneously without contention.
  • Broadcast domain: Does NOT separate by default — all ports within the same VLAN remain in one broadcast domain, unless VLANs are configured to logically segment the switch into multiple broadcast domains.

4.5 Router (Layer 3)

A router operates at Layer 3, making forwarding decisions based on IP addresses. Routers do not forward Layer 2 broadcast frames between their interfaces by default.

  • Collision domain: DOES separate — each router interface is its own collision domain.
  • Broadcast domain: DOES separate — each router interface represents a separate broadcast domain. This is the primary reason routers are used to segment large networks into smaller, more manageable subnets.

5. Summary Table: Device Behavior

DeviceOSI LayerSeparates Collision Domains?Separates Broadcast Domains?
RepeaterLayer 1NoNo
HubLayer 1NoNo
BridgeLayer 2YesNo
SwitchLayer 2YesNo (unless VLANs used)
RouterLayer 3YesYes
Layer 3 Switch (with VLANs)Layer 2/3YesYes (per VLAN)

6. Diagram: Collision and Broadcast Domains in a Typical Network

graph TB
    subgraph "Broadcast Domain 1 (VLAN 10 / Subnet A)"
        H1[Host A] --- SW1[Switch]
        H2[Host B] --- SW1
        H3[Host C] --- SW1
    end

    subgraph "Broadcast Domain 2 (VLAN 20 / Subnet B)"
        H4[Host D] --- SW2[Switch]
        H5[Host E] --- SW2
    end

    SW1 --- R1[Router]
    SW2 --- R1

    style H1 fill:#cde
    style H2 fill:#cde
    style H3 fill:#cde
    style H4 fill:#fdc
    style H5 fill:#fdc

In this diagram:

  • Each host connected to a switch port has its own collision domain (since switches separate collision domains per port).
  • All hosts connected to SW1 share one broadcast domain (unless further VLAN-segmented).
  • The router (R1) separates the two broadcast domains — a broadcast sent by Host A will never reach Host D or Host E, because the router does not forward Layer 2 broadcasts between its interfaces.

7. Why This Matters: Performance and Scalability

The Problem with Large Collision Domains (Historical Hub Networks)

In old hub-based networks, as more devices were added to a single hub (or chain of hubs), the collision domain grew larger, and the probability of collisions increased dramatically. This led to more retransmissions, exponential backoff delays, and severely degraded throughput — a phenomenon informally known as “collision domain congestion.”

This is precisely why switches replaced hubs in virtually all modern wired networks: by giving each device its own dedicated collision domain (effectively eliminating collisions on full-duplex links), switches allow near-simultaneous transmission from every connected device without interference.

The Problem with Large Broadcast Domains

Even with modern switches eliminating collision issues, a large flat Layer 2 network (many switches interconnected without VLAN segmentation) can still suffer from broadcast storms or excessive broadcast traffic, since every broadcast frame (ARP requests, DHCP discovers, etc.) is flooded to every device in that broadcast domain. As the number of devices grows, so does broadcast traffic overhead, consuming bandwidth and CPU resources on every connected host.

This is why network engineers use VLANs and routers/Layer 3 switches to break large networks into smaller, more manageable broadcast domains.


8. Linux Example: Observing Broadcast Traffic

You can directly observe broadcast traffic (like ARP requests) reaching your Linux machine using tcpdump, illustrating the concept of a shared broadcast domain.

# Capture broadcast traffic only
sudo tcpdump -i eth0 -n ether broadcast

Sample output:

14:10:01.203 ARP, Request who-has 192.168.1.1 tell 192.168.1.55, length 28
14:10:03.560 ARP, Request who-has 192.168.1.100 tell 192.168.1.20, length 28

These ARP requests are sent to the Ethernet broadcast address (ff:ff:ff:ff:ff:ff), and every device within the same broadcast domain (i.e., connected to the same switch/VLAN, without a router in between) will receive and process them.

You can also check your machine’s ARP table, which was populated via broadcast-based discovery:

ip neigh show
192.168.1.1 dev eth0 lladdr 00:1a:2b:3c:4d:5e REACHABLE
192.168.1.20 dev eth0 lladdr 00:1a:2b:3c:4d:6f STALE

9. Cisco Example: Configuring VLANs to Separate Broadcast Domains

Here’s how a network engineer segments a single switch into two separate broadcast domains using VLANs — directly applying the concepts discussed above.

Switch(config)# vlan 10
Switch(config-vlan)# name SALES
Switch(config-vlan)# exit

Switch(config)# vlan 20
Switch(config-vlan)# name ENGINEERING
Switch(config-vlan)# exit

Switch(config)# interface range GigabitEthernet0/1-12
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 10
Switch(config-if-range)# exit

Switch(config)# interface range GigabitEthernet0/13-24
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 20
Switch(config-if-range)# exit

Now, ports 1–12 (VLAN 10) and ports 13–24 (VLAN 20) are in separate broadcast domains, even though they’re on the same physical switch. A broadcast from a device on VLAN 10 will never reach a device on VLAN 20 unless it passes through a router or Layer 3 switch performing inter-VLAN routing.

To verify VLAN and broadcast domain segmentation:

Switch# show vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active
10   SALES                            active    Gi0/1, Gi0/2, Gi0/3 ... Gi0/12
20   ENGINEERING                      active    Gi0/13, Gi0/14 ... Gi0/24

To check collision statistics on an individual switch port (illustrating per-port collision domains):

Switch# show interfaces GigabitEthernet0/1 | include collision
     0 collisions, 0 late collision

Note: On modern full-duplex switch ports, you’ll almost always see zero collisions, since each port is its own collision domain and full-duplex operation eliminates contention entirely.


10. Python Example: Simulating Broadcast Domain Propagation

Here’s a simple simulation to visualize how a broadcast frame propagates within a broadcast domain but is blocked at a router boundary.

class NetworkDevice:
    def __init__(self, name):
        self.name = name

class Switch:
    def __init__(self, name):
        self.name = name
        self.connected_hosts = []

    def connect(self, host):
        self.connected_hosts.append(host)

    def send_broadcast(self, sender):
        print(f"[{self.name}] Broadcast from {sender.name} flooding to all connected hosts:")
        for host in self.connected_hosts:
            if host != sender:
                print(f"   -> {host.name} received the broadcast")

class Router:
    def __init__(self, name):
        self.name = name
        self.interfaces = {}  # interface_name -> Switch

    def attach_interface(self, iface_name, switch):
        self.interfaces[iface_name] = switch

    def broadcast_from(self, iface_name, sender):
        switch = self.interfaces[iface_name]
        switch.send_broadcast(sender)
        print(f"[{self.name}] Broadcast BLOCKED — not forwarded to other interfaces "
              f"(separate broadcast domain)")

# Setup: two switches, each its own broadcast domain, connected via a router
sw1 = Switch("Switch-VLAN10")
sw2 = Switch("Switch-VLAN20")

hostA = NetworkDevice("HostA")
hostB = NetworkDevice("HostB")
hostC = NetworkDevice("HostC")
hostD = NetworkDevice("HostD")

sw1.connect(hostA)
sw1.connect(hostB)
sw2.connect(hostC)
sw2.connect(hostD)

router = Router("CoreRouter")
router.attach_interface("Gig0/0", sw1)
router.attach_interface("Gig0/1", sw2)

# HostA sends a broadcast (e.g. ARP request)
router.broadcast_from("Gig0/0", hostA)

Sample output:

[Switch-VLAN10] Broadcast from HostA flooding to all connected hosts:
   -> HostB received the broadcast
[CoreRouter] Broadcast BLOCKED — not forwarded to other interfaces (separate broadcast domain)

Notice that HostC and HostD (on the other switch/VLAN) never see the broadcast — the router acts as the broadcast domain boundary, exactly as it does in real networks.


11. Real-World Design Implications

Design GoalRecommended Approach
Eliminate collisions entirelyUse switches (not hubs) with full-duplex links
Reduce broadcast traffic overheadSegment the network into multiple VLANs/subnets
Improve security and isolationUse VLANs to separate departments (e.g., Sales vs. Engineering) into different broadcast domains
Scale a large enterprise networkUse a hierarchical design (access, distribution, core) with routers/Layer 3 switches at aggregation points to bound broadcast domains
Support real-time/latency-sensitive trafficMinimize collision domain size (switches, not hubs) and consider QoS policies

12. Best Practices

  1. Never use hubs in modern network designs — replace with switches to eliminate collision domain issues almost entirely.
  2. Segment large Layer 2 networks with VLANs to keep broadcast domains reasonably sized (a common rule of thumb is to avoid more than a few hundred hosts per broadcast domain, though this varies by environment).
  3. Use routers or Layer 3 switches at aggregation points to control broadcast domain boundaries and enable inter-VLAN routing where necessary.
  4. Monitor broadcast traffic levels periodically; a sudden spike could indicate a broadcast storm, often caused by a Layer 2 loop (mitigated by Spanning Tree Protocol).
  5. Enable Spanning Tree Protocol (STP) on switched networks with redundant links to prevent broadcast storms caused by Layer 2 loops.

13. Troubleshooting Common Issues

Issue: Network Slowdown Traced to Excessive Collisions

Symptom: show interfaces reveals a high collision count on a switch port.

Cause: Likely caused by a duplex mismatch (one side set to half-duplex) or, in rare legacy cases, an old hub still in use.

Fix: Verify and correct duplex settings:

Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# duplex full
Switch(config-if)# speed 1000

Issue: Broadcast Storm Bringing Down the Network

Symptom: Extremely high broadcast traffic, network-wide slowdowns, switches showing very high CPU utilization.

Cause: Often caused by a Layer 2 loop (e.g., an accidental cable connecting two switch ports together) without STP enabled or functioning correctly.

Fix: Verify STP is enabled and check for topology changes:

Switch# show spanning-tree summary
Switch# show interfaces status err-disabled

Issue: Devices in the Same VLAN Cannot Reach Each Other

Symptom: Two hosts configured with IPs in the same subnet, connected to the same switch, cannot ping each other.

Cause: Possibly a VLAN misconfiguration — the two hosts might actually be on different VLANs despite the intended subnet design, meaning they’re in different broadcast domains without a router route between them.

Fix: Verify VLAN assignment per port:

Switch# show interfaces GigabitEthernet0/1 switchport | include VLAN

14. Conclusion

Collision domains and broadcast domains are two distinct but related concepts that shape how efficiently and securely a network operates. Collision domains, a Layer 1 concern, are separated by bridges, switches, and routers, but not by repeaters or hubs — this is why hubs are obsolete in modern networking. Broadcast domains, a Layer 2/3 concern, are only separated by routers (or VLAN-aware Layer 3 switches), which is why VLAN segmentation and routing are essential tools for managing broadcast traffic in growing networks. A solid grasp of how each networking device — repeater, hub, bridge, switch, and router — affects these domains is fundamental knowledge for designing, troubleshooting, and scaling any computer network.


Further Reading

Total
1
Shares

Leave a Reply

Previous Post
Types Of Cables in Computer Networks | Coaxial, twisted pair, fibre optic cable

Types of Cables in Computer Networks | Coaxial, Twisted Pair, Fiber Optic Cable

Next Post
What is Circuit Switching in Computer Networks

What Is Circuit Switching in Computer Networks

Related Posts