Networking

Half-Duplex

Half-Duplex Communication

A communication mode where data can travel in both directions but only one direction at a time — devices must take turns, like a walkie-talkie rather than a telephone.

In half-duplex operation, a channel is shared between transmit and receive, but not simultaneously. When one device is transmitting, the other must wait. This constraint applies to any shared medium — a radio channel, a coaxial cable segment, or a hub-connected Ethernet network. Modern switched Ethernet and wired broadband are full-duplex; Wi-Fi remains half-duplex per channel.

Duplex modes compared

ModeDirectionSimultaneous TX+RXExample
SimplexOne way onlyN/ABroadcast TV, FM radio
Half-duplexBoth ways, one at a timeNoWi-Fi, walkie-talkies, Ethernet hubs
Full-duplexBoth ways simultaneouslyYesEthernet switch port, phone call

CSMA/CD on legacy Ethernet hubs

Early Ethernet used a shared coaxial cable or hub where all devices were on the same collision domain. CSMA/CD (Carrier Sense Multiple Access with Collision Detection) governed access: a device wanting to transmit would listen first (carrier sense), transmit if the medium was idle, and detect collisions (two devices transmitting simultaneously) by monitoring the signal while sending. On collision detection, both devices stopped, waited a random backoff period (exponential backoff), and retried. This was necessary and functional, but collisions wasted bandwidth — effective utilisation rarely exceeded 50% under load. Hubs operate in half-duplex precisely because all ports share one collision domain.

Why modern switched Ethernet is always full-duplex

An Ethernet switch gives each port its own dedicated segment — there is only ever one device on each side of a switch port. With no possibility of collision (only one transmitter per segment), CSMA/CD is unnecessary and full-duplex becomes possible: the device can transmit and receive simultaneously on separate wire pairs within the same cable. 100BASE-TX and above use separate pairs for TX and RX, physically enabling full-duplex. This is why switch ports run full-duplex by default and modern Ethernet never experiences collisions under normal conditions.

Where half-duplex still appears today

  • Wi-Fi: all Wi-Fi remains half-duplex per channel — only one device can transmit at a time on a given frequency using CSMA/CA (Collision Avoidance rather than Detection, since detecting collisions is impractical in RF). MU-MIMO and OFDMA in Wi-Fi 6 allow some parallelism but the underlying channel is still shared
  • Walkie-talkies and PTT radios: push-to-talk radios explicitly enforce half-duplex with the PTT button
  • Some older serial links and RS-485 buses: industrial serial protocols often use half-duplex two-wire connections where direction is controlled by software or hardware
  • Legacy coax or hub segments: any remaining Ethernet hub in a network imposes half-duplex on all connected ports

Duplex mismatch: symptoms and detection

A duplex mismatch occurs when one end of an Ethernet link negotiates or is configured for full-duplex while the other operates in half-duplex. The half-duplex end uses CSMA/CD and interprets the full-duplex end's continuous transmissions as collisions, triggering exponential backoff repeatedly. The result is dramatically reduced throughput — often 10–20% of the link's rated speed — combined with a high late collision and FCS error count on the half-duplex interface.

Detection tools:

  • ethtool (Linux): ethtool eth0 shows "Duplex: Full" or "Duplex: Half" and whether speed/duplex were auto-negotiated
  • Switch port statistics: excessive late collisions or FCS errors on a port are the clearest indicator of a duplex mismatch
  • ifconfig / ip link: shows current interface settings but not the negotiated result as clearly as ethtool

Auto-negotiation and when it fails

Auto-negotiation (IEEE 802.3u) allows both ends of an Ethernet link to advertise their capabilities and agree on the highest common speed and duplex mode. When both ends support it and it is enabled, mismatches are prevented. Failures occur when: one end has auto-negotiation disabled and is hard-coded (forcing the other end to fall back to half-duplex at 10 Mbps per the standard); a broken cable causes negotiation packets to be lost; or older equipment does not support auto-negotiation at all. The correct fix when both ends support it is to set both to auto-negotiate. If one end must be hard-coded, both ends must be hard-coded to the same speed and duplex — never mix auto-negotiation on one end with a hard-coded setting on the other.

Half-duplex capacity vs full-duplex throughput

On a 1 Gbps half-duplex link, the theoretical maximum aggregate throughput (TX + RX combined) is 1 Gbps — but that capacity must be shared between both directions and cannot be used simultaneously. A 1 Gbps full-duplex link delivers 1 Gbps in each direction simultaneously — 2 Gbps aggregate. For workloads with simultaneous upload and download (file sync, video calls, backup while browsing), full-duplex doubles effective capacity. For pure one-direction bulk transfers, the practical difference is smaller — collisions and backoff under CSMA/CD are the real costs of half-duplex, not the theoretical peak.

Frequently Asked Questions

What is the difference between half-duplex and full-duplex?

Half-duplex transmits in both directions but only one at a time — each side takes turns. Full-duplex transmits in both directions simultaneously. Modern Ethernet switches use full-duplex; Wi-Fi and hubs use half-duplex per channel.

Why is Wi-Fi half-duplex?

Wi-Fi uses a shared radio medium where only one device can transmit at a time without collisions. All devices on a channel take turns using CSMA/CA. This is why more Wi-Fi clients on one channel means less throughput per device.

How does a duplex mismatch slow down a network?

When one link end is full-duplex and the other half-duplex, the half-duplex side sees constant apparent collisions and backs off repeatedly — causing dramatically reduced throughput and high late-collision error counts. Use ethtool or switch port statistics to diagnose, and ensure both ends are set to auto-negotiate or both are hard-coded identically.

Related Terms

More From This Section