• ↑↓ to navigate
  • ↵ to open
  • ⟶ to select
  • ⌘ ⌥ ↵ to open in a panel
  • ←→ to navigate
  • esc to dismiss
⌘ '
keyboard shortcuts

The Problem

CSMA reduces collisions but doesn’t handle them when they occur. Once a collision happens, devices keep transmitting garbage, wasting bandwidth until the packet finishes.

Core Idea

An extension of CSMA that detects collisions during transmission and immediately stops, then uses a backoff algorithm before retrying, minimizing wasted bandwidth.

How It Works

  1. Device listens before transmitting (carrier sense)
  2. If idle, start transmitting AND continuously monitor for collision
  3. If collision detected (signal strength changes): stop transmitting immediately
  4. Send a jam signal to notify all devices of the collision
  5. Wait a random time (binary exponential backoff) before retrying

Visual Explanation

G Listen Listen (Idle?) Transmit Transmit + Monitor Collision Listen->Transmit Idle Collision Collision Detected! Transmit->Collision Collision? Jam Send Jam Signal Collision->Jam Backoff Binary Exponential Backoff (random wait) Jam->Backoff Backoff->Listen

Key Properties

  • Listens before AND during transmission
  • Detects collisions quickly and stops transmission
  • Uses binary exponential backoff to reduce retry collisions
  • Standard for traditional wired Ethernet (10/100 Mbps)

Semantic Network

semantic_CSMA_CD THIS Csma/Cd REL1 Related Concept THIS--REL1 related REL2 Builds Into THIS--REL2 builds into

Connections

Edge Cases & Gotchas

  • Only works on wired networks (can’t detect collision in wireless due to hidden terminal)
  • Not used in modern full-duplex Ethernet (switches eliminate collisions)
  • Maximum network diameter limited by collision detection time (slot time)