Network Bytes · Episode 17 · CCNA 1.4
Duplex and speed mismatch
Your link is up, but everything crawls. Here's how full and half duplex work, why setting one end by hand causes a duplex mismatch, and the simple fix.
Full and half duplex
Duplex is about who can talk when. On a full duplex link, both ends can send at the same time, like a phone call. On a half duplex link, only one end can send at a time, like a walkie-talkie: if both talk at once, the signals collide and have to be sent again.
Modern switched Ethernet runs full duplex almost everywhere. Half duplex is a leftover from the days of shared cables and hubs.
Auto-negotiation
Both ends of a link need to agree on speed (for example 100 or 1000 Mb/s) and duplex. Normally they work it out on their own with auto-negotiation: when the cable is plugged in, each end advertises what it can do and they pick the best setting both support.
How a mismatch happens
Trouble starts when someone hard-codes one end, say a switch port set to speed 100 and duplex full, and leaves the other end on auto. A hard-coded port stops taking part in negotiation, so the auto end hears no answer. It can still sense the speed from the signal, but it can't learn the duplex, so it plays safe and falls back to half duplex.
Now the full duplex end sends whenever it likes, while the half duplex end waits its turn and treats incoming traffic during its own sends as collisions. Frames get cut off and corrupted, and the receiving side counts them as errors. The data gets resent, so everything still works, just slowly.
Why nobody notices
The link light stays green and the interface still says it's up. Pings often succeed. The only clues are poor speed and climbing error counters: FCS/CRC errors and runts on the full duplex side, and late collisions on the half duplex side.
Try it yourself
On Windows, open Settings > Network & internet > Ethernet (or run Get-NetAdapter in PowerShell) to see your link speed. On a Mac, hold Option and click the network icon, or open System Settings > Network > Ethernet > Details > Hardware, where speed and duplex are usually set to "Automatically". On a Cisco switch, show interfaces status lists each port's speed and duplex, with a- in front of values that were auto-negotiated.
Good to know
- Cisco's guidance is to configure both ends the same: both on auto, or both hard-coded to the same speed and duplex.
- When one end is hard-coded, the auto end can still detect the speed but defaults to half duplex at 10 and 100 Mb/s.
- Symptoms include FCS/CRC errors, runts and late collisions, plus slow transfers, while the link stays up.
- Gigabit Ethernet over copper (1000BASE-T) requires auto-negotiation, so leaving both ends on auto is the usual choice today.
For CCNA learners
This lines up with CCNA 200-301 exam topic 1.4, identify interface and cable issues (collisions, errors, mismatch duplex and/or speed): know that a hard-coded end plus an auto end leads to half duplex on the auto side, and recognize the error counters it causes.
Test your knowledge
Quick quiz: Duplex and speed mismatch
4 multiple-choice questions. Pick one answer for each, then check how you did.
Sources
- Cisco, "Configure and Troubleshoot Ethernet 10/100/1000Mb Half/Full Duplex Auto-Negotiation": how auto-negotiation works and why duplex mismatch occurs
- Cisco, "Troubleshoot Cisco Catalyst Switches to NIC Compatibility Issues": configure both ends the same; mismatch symptoms such as FCS errors and poor performance
- Cisco, CCNA 200-301 v1.1 exam topics: 1.4 identify interface and cable issues (collisions, errors, mismatch duplex and/or speed)
Video transcript
Your link is up, but everything crawls. Check this first.
Every Ethernet link has a speed and a duplex. Full duplex means both ends can talk at the same time, like a phone call. Half duplex means one at a time, like a walkie-talkie.
Normally both ends agree automatically. That's called auto-negotiation. But if someone sets one end by hand, the other end can't negotiate, and it falls back to half duplex.
Now one side talks whenever it wants, while the other waits its turn and thinks it's seeing collisions. Packets get mangled and resent. The link stays up, so nobody suspects it.
The fix: set both ends the same, or leave both on auto.
That's your bite. Next: why switches killed the hub.