What are the symptoms of a duplex mismatch, and which side shows which counters?
Show the answer
Say this first
The link stays up and ping looks fine, but throughput collapses under load. The half-duplex side stops when it receives while transmitting, so it counts collisions and late collisions. The full-duplex side transmits whenever it wants and receives the frames the other side aborted, so it counts CRC errors and runts. The usual cause is one side hard-set to 100/full and the other left on auto, which then falls back to half duplex.
Go deeper
Why it happens
Autonegotiation only works when both ends take part. A port hard-set to 100/full does not negotiate. The auto side can still sense the speed from the signal, but it cannot learn the duplex, so it falls back to half duplex.
Counters
| Side | Counters that climb |
|---|---|
| Half duplex | collisions, late collisions |
| Full duplex | CRC, runts, input errors |
A late collision is one detected after the first 64 bytes. On a correct half-duplex segment it never happens, so late collisions mean a duplex mismatch or a cable beyond specification.
Symptoms
Light traffic such as ping works. Bulk transfers drop to a fraction of the link speed because every lost
frame costs a TCP retransmission. When both ends run CDP, Cisco logs %CDP-4-DUPLEX_MISMATCH.
Fix
Set both ends to auto, which is the preferred choice, or hard-set both ends identically. Never one of each.
They will ask next
Can this happen on gigabit copper?
Rarely, because 1000BASE-T requires autonegotiation. It is mostly a 10 and 100 Mb/s problem, common with old printers, building systems and hard-set server NICs.
Traps
- Hard-setting only your side to "fix" negotiation. Hard-setting one side is exactly what creates a mismatch.