What are the symptoms of a duplex mismatch, and why do they look that way?
Show the answer
Say this first
The link is up and ping works, but anything heavy crawls. The half-duplex side counts late collisions,
because it treats the other side's traffic as collisions and aborts its own frames well past the first 64
bytes. The full-duplex side counts CRC errors and runts, because it receives those cut-off frames. Throughput
collapses under load since TCP sees loss. Cisco CDP logs a %CDP-4-DUPLEX_MISMATCH message.
Go deeper
Mechanism
- The full-duplex side transmits whenever it has data. It never listens for collisions.
- The half-duplex side runs CSMA/CD. If it is sending and a frame arrives, it calls that a collision, sends a jam signal and stops. If that happens after the first 512 bits (64 bytes), it is a late collision, and the MAC does not retry the frame. Loss is left to TCP.
- The full-duplex side receives the truncated frame plus jam, which fails the FCS: CRC errors and runts.
On the counters
Full-duplex side:
SW1# show interfaces GigabitEthernet1/0/2 | include CRC|runts
112 runts, 0 giants, 0 throttles
845 input errors, 733 CRC, 0 frame, 0 overrun, 0 ignoredHalf-duplex side:
SW2# show interfaces FastEthernet0/1 | include collision
0 output errors, 2290 collisions, 3 interface resets
0 babbles, 418 late collision, 1022 deferredAnd the CDP hint on SW1:
%CDP-4-DUPLEX_MISMATCH: duplex mismatch discovered on GigabitEthernet1/0/2 (not half duplex), with SW2 FastEthernet0/1 (half duplex).Why ping hides it
Small, occasional packets rarely overlap with traffic in the other direction. A file copy keeps both directions busy (data one way, ACKs the other), so collisions explode.
Fix
Make both sides the same: both auto (preferred) or both hard-coded to the same speed and duplex. Then clear counters and confirm CRC and late collisions stop increasing.
They will ask next
Why does a mismatch usually happen?
One side hard-coded to 100 full and the other left on auto. The auto side cannot detect duplex from a side that does not negotiate, so it falls back to half duplex.
Can a duplex mismatch happen at 1 Gbps on copper?
Rarely in practice. 1000BASE-T requires autonegotiation and almost nothing supports gigabit half duplex. It is a 10 and 100 Mbps problem, which is why it shows up with old printers, building systems and industrial gear.
Traps
- Putting late collisions on the full-duplex side. Full duplex never counts collisions.
- Concluding the link is fine because ping works.