Loading content...
In 1-persistent CSMA, stations that find the channel busy persistently monitor it, waiting to pounce the instant it becomes idle. This aggressive behavior causes a specific problem: when multiple stations are waiting, they all transmit simultaneously, guaranteeing a collision.
Non-persistent CSMA takes the opposite approach. When a station senses a busy channel, it backs off immediately, waits for a random time period, and then senses again. This seemingly simple change has profound implications for network behavior—it breaks the synchronization that causes waiting-station collisions, at the cost of sometimes leaving the channel idle when stations have data to send.
By the end of this page, you will understand: (1) The non-persistent CSMA algorithm in detail, (2) Why random backoff breaks waiting-station synchronization, (3) Mathematical throughput analysis and comparison with 1-persistent, (4) The tradeoff between collision reduction and channel idle time, and (5) When non-persistent outperforms 1-persistent and vice versa.
Recall the fundamental problem with 1-persistent CSMA: if N stations are waiting for a busy channel, all N transmit at the exact same moment when the channel clears. This synchronization is the root cause of waiting-station collisions.
The solution: Don't let stations wait at the channel. Instead, when a station finds the channel busy, make it:
By sending waiting stations away with random delays, they return at different times. Even if the channel clears while they're away, only the first to return will find it idle.
The random backoff delay is not wasted time—it's a mechanism to spread stations out in time. By making each station wait a different random duration, we convert a simultaneous arrival (guaranteed collision) into staggered arrivals (probable success).
Let's formalize the non-persistent CSMA algorithm precisely.
Critical difference from 1-persistent:
Notice step 4: when the channel is busy, the station does not continue sensing. It backs off completely, waits blindly for the random duration, and only then checks the channel again. During the backoff period, the channel might become idle, but the station won't know—it's not listening.
The backoff distribution:
The random backoff delay is typically chosen from a uniform or exponential distribution:
The choice of distribution and parameters affects performance, but the key property is randomness—ensuring different stations back off for different durations.
In non-persistent CSMA, when the channel is busy, the station 'looks away' completely. It doesn't camp at the channel waiting for it to clear. This is the defining characteristic that distinguishes non-persistent from 1-persistent and p-persistent approaches.
Let's trace through several scenarios to understand non-persistent behavior in practice.
Scenario 1: Single station, channel idle
| Time | Station A | Channel | Action |
|---|---|---|---|
| t=0 | Frame ready | Idle | A senses idle → Transmits |
| t=0-1200μs | Transmitting | Busy | Frame in transit |
| t=1200μs | Done | Idle | Success! |
Identical to 1-persistent: when the channel is idle, transmit immediately.
Scenario 2: Three stations, channel busy, different backoffs
Stations A, B, C all have frames. Station X is currently transmitting (finishes at t=1000μs).
| Time | Station A | Station B | Station C | Channel |
|---|---|---|---|---|
| t=0 | Frame ready, senses busy | Frame ready, senses busy | Frame ready, senses busy | Busy (X) |
| t=0 | Backoff = 500μs | Backoff = 200μs | Backoff = 800μs | Busy |
| t=200 | Waiting | Senses: still busy! | Waiting | Busy |
| t=200 | — | New backoff = 400μs | — | Busy |
| t=500 | Senses: still busy! | Waiting | Waiting | Busy |
| t=500 | New backoff = 300μs | — | — | Busy |
| t=600 | Waiting | Senses: still busy! | Waiting | Busy |
| t=600 | — | New backoff = 500μs | — | Busy |
| t=800 | Waiting | Waiting | Senses: still busy! | Busy |
| t=800 | — | — | New backoff = 600μs | Busy |
| t=800 | Waiting | Waiting | Waiting | X done |
| t=800 | A: backoff=300 → t=1100 | B: backoff=500 → t=1100 | C: backoff=600 → t=1400 | Idle |
| t=1100 | Senses idle → Transmits | Senses idle → Transmits | Waiting | COLLISION |
Collision still occurs! Both A and B happened to check at the same moment. However, notice:
Scenario 3: Three stations, staggered returns (no collision)
Same setup, but random backoffs spread stations out:
| Time | Station A | Station B | Station C | Channel |
|---|---|---|---|---|
| t=0 | Backoff = 1200μs | Backoff = 2500μs | Backoff = 1800μs | Busy (X) |
| t=1000 | — | — | — | X finishes, Idle |
| t=1200 | Senses idle → Transmits | Waiting | Waiting | A transmitting |
| t=1800 | Transmitting | Waiting | Senses busy → Backoff 500μs | Busy |
| t=2400 | Done | Waiting | Senses idle → Transmits | Idle→Busy |
| t=2500 | — | Senses busy → Backoff 400μs | Transmitting | Busy |
| t=2900 | — | Senses busy | Transmitting | Busy |
| t=2900 | — | Backoff 300μs | — | Busy |
| t=3200 | — | Senses busy | Transmitting | Busy |
| t=3600 | — | Senses idle → Transmits | Done | B transmitting |
All three transmit successfully! Random backoffs spread stations in time, preventing collision.
Non-persistent CSMA doesn't guarantee collision-free transmission, but it dramatically reduces collision probability by spreading stations across time. With well-chosen backoff distributions, most stations will 'miss' each other and transmit successfully.
Let's analyze the throughput of non-persistent CSMA mathematically, using the same model as before:
Throughput formula for Non-Persistent CSMA:
$$S = \frac{G \cdot e^{-aG}}{G(1 + 2a) + e^{-aG}}$$
This formula is simpler than the 1-persistent case because non-persistent introduces independence between transmission attempts.
When a → 0 (negligible propagation delay):
$$S = \frac{G}{1 + G}$$
This gives maximum throughput as G → ∞: $$S_{max} = 1 \text{ (100%)}$$
Theoretically, non-persistent CSMA can approach 100% utilization! In practice, a > 0, so the actual maximum is lower.
When a is small (typical LAN):
The maximum throughput is approximately: $$S_{max} \approx \frac{1}{1 + 2a}$$
For a = 0.01: S_max ≈ 98%
| Offered Load (G) | Throughput (S) | Efficiency | Compare to 1-Persistent |
|---|---|---|---|
| 0.1 | 0.09 | 90% | Similar |
| 0.5 | 0.32 | 64% | 1-persistent higher |
| 1.0 | 0.47 | 47% | 1-persistent higher |
| 2.0 | 0.58 | 29% | Non-persistent higher! |
| 5.0 | 0.72 | 14% | Non-persistent much higher! |
| 10.0 | 0.83 | 8% | Non-persistent dramatically higher! |
Non-persistent CSMA has LOWER throughput than 1-persistent at low loads (G < ~1.5), but HIGHER throughput at high loads. This is the fundamental tradeoff: non-persistent sacrifices low-load efficiency for high-load stability.
Intuition for the crossover:
At low load (G << 1):
At high load (G >> 1):
Non-persistent CSMA pays a price for its collision reduction: unnecessary channel idle time. Let's understand this tradeoff in detail.
The idle-time problem:
Consider a station A that senses the channel busy at time t=0 and backs off for 500μs. The busy transmission ends at t=100μs. The channel is now idle, but A is still in its backoff period—not sensing!
| Time | Channel State | Station A | Problem |
|---|---|---|---|
| t=0 | Busy | Senses busy → Backs off 500μs | — |
| t=100 | Idle | Still backing off | Channel wasted! |
| t=200 | Idle | Still backing off | Channel wasted! |
| t=300 | Idle | Still backing off | Channel wasted! |
| t=400 | Idle | Still backing off | Channel wasted! |
| t=500 | Idle | Senses idle → Transmits | Finally! |
For 400μs, the channel was idle but no station was using it—even though A had data ready to send!
Quantifying the waste:
In non-persistent CSMA, the average idle time after a transmission depends on:
Expected idle period ≈ (Average backoff) / (Number of waiting stations)
With few stations and long backoffs, the channel can sit idle for significant periods despite pending traffic.
The fundamental tradeoff matrix:
| Backoff Duration | Collision Rate | Idle Time | Best For |
|---|---|---|---|
| Very Short | High (stations overlap) | Low | Not recommended |
| Short | Moderate | Low-Moderate | Low-medium load |
| Medium | Low-Moderate | Moderate | Medium-high load |
| Long | Low | High | Very high load |
Backoff duration must be 'just right': too short and stations still collide; too long and the channel sits unnecessarily idle. Optimal backoff depends on network load, which is hard to estimate. This is why adaptive protocols (like Ethernet's exponential backoff) adjust backoff based on observed collisions.
Let's systematically compare 1-persistent and non-persistent CSMA across multiple dimensions.
| Dimension | 1-Persistent | Non-Persistent |
|---|---|---|
| When busy | Keep sensing continuously | Random backoff, don't sense |
| Channel monitoring | Continuous | Periodic (after backoff) |
| Latency (low load) | Minimal | Slightly higher due to backoffs |
| Latency (high load) | High (many collisions) | Lower (fewer collisions) |
| Throughput (low load) | Higher | Lower (wasted idle time) |
| Throughput (high load) | Collapses | Stable and higher |
| Waiting station collision | Guaranteed | Probabilistically avoided |
| Implementation | Simpler | Requires random number generator |
| Channel idle waste | None (always sensing) | Yes (during backoffs) |
| Behavior under overload | Unstable, cascading failures | Graceful degradation |
Use case guidance:
Choose 1-Persistent when:
Choose Non-Persistent when:
Ethernet chose 1-persistent + exponential backoff: simple initial transmission, with backoff for collision recovery. WiFi uses a hybrid approach closer to non-persistent behavior because wireless cannot detect collisions during transmission.
Let's understand the intuition behind the non-persistent throughput formula. While a rigorous derivation requires queueing theory, we can build intuition.
Model assumptions:
Time decomposition:
We can decompose time into three types of periods:
For non-persistent CSMA:
The key insight is that reschedules after sensing busy effectively thin the Poisson arrival process. If the original rate is G, the effective rate of transmission attempts becomes approximately G/(1+G) under high load.
Simplified derivation (a → 0):
When propagation delay is negligible:
Probability of successful transmission at time t given channel sensed idle: P(success) = e^(-2Gτ) ≈ e^0 = 1 when a → 0
But stations back off when busy, so effective arrival rate is reduced
Throughput S = (Rate of transmissions) × P(success) × (1 transmission time)
This leads to: S = G / (1 + G)
As G → ∞, S → 1 (100% utilization in theory)
| Parameter 'a' | Max Throughput S_max | Efficiency Loss |
|---|---|---|
| 0 (ideal) | 100% | 0% |
| 0.01 | 98% | 2% |
| 0.05 | 91% | 9% |
| 0.1 | 83% | 17% |
| 0.5 | 50% | 50% |
| 1.0 | 33% | 67% |
The mathematical advantage of non-persistent CSMA comes from introducing independence between transmission attempts. By rescheduing after sensing busy (rather than waiting), each sensing event becomes approximately independent. This independence makes the system more analyzable and more stable under load.
Non-persistent CSMA takes a patient approach to channel access: when the channel is busy, back off for a random duration rather than waiting continuously. This breaks the synchronization that causes waiting-station collisions in 1-persistent CSMA.
What's next:
We've seen two extremes:
Is there a middle ground? p-persistent CSMA offers exactly that: when sensing idle, transmit with probability p (not 1). This adds randomization even for idle-channel transmissions, further reducing collisions while avoiding excessive backoffs.
The next page explores p-persistent CSMA: its algorithm, optimal choice of p, and the elegant mathematical framework it provides.
You now understand non-persistent CSMA: its random-backoff algorithm, how it breaks waiting-station synchronization, its throughput characteristics, and when it outperforms 1-persistent (high load). Next, we'll explore p-persistent CSMA, which adds probabilistic transmission to further optimize the tradeoffs.