
Author Profile - Chris Greer is a Senior Network Analyst for Network Protocol Specialists, a Seattle based Network Consulting company. Chris has 10 years of experience in analyzing and troubleshooting networks. He regularly assists companies in tracking down the source of network and application performance problems using a variety of protocol analysis and monitoring tools including Wireshark. When he isn’t hunting down problems at the packet level, he can be found teaching various analysis workshops at Interop and other industry trade shows. Chris also delivers Fluke Networks public courses and protocol analysis themed webcasts. He can be contacted at chris (at) nps-llc (dot) com.
If I have a dollar for every performance problem caused by a duplex mismatch!! These are sometimes at the root of the classic “The network is slow” complaint. Why is it though in 2009 we still see these underlying connectivity problems when these should have been put to an end a decade ago?
Often, it comes down to the simple fact of misunderstanding how auto-negotiation really works. Recently at Network Protocol Specialists we received a report which recommended that IT staff hard-set speed and duplex on all switch ports to achieve maximum network performance. After reading this we felt that this debate needs to finally be put to rest!
To put it simply:
Both sides of the connection must be set the same. Set each side to auto or set each side to the same static speed and duplex.
At NPS, we recommend to our customers that they just let auto-negotiation do what it was designed to do and leave all ports at auto. The whole purpose of auto is to make it so you don’t have to configure your ports, document their config, then hope that nothing else ever gets connected to that port in the future. The spec for Auto-Negotiation was written over 15 years ago, so it has had sufficient time to mature and be tested across vendors to test that it really works.
In RARE instances where devices do not interoperate well together, we recommend statically setting each side of the connection.
We have found that hard-setting every Ethernet port eventually comes back to bite you. For example, if a switch port is set to 100-Full, and the PC connected to that port is also set to 100-Full, all is fine until that PC moves to another port. Perhaps a mini-switch is connected inline to provide connectivity to another PC in the area. This will induce a duplex mismatch because the mini-switch will be auto-negotiating. In environments where hard-setting is the rule, we almost always find duplex mismatches causing peformance problems.
Now for the details:
Why doesn’t auto just figure out what the other side is doing? Why can’t an auto-configured PC figure out that the switch port is set to 100-Full?
Two devices that are set to auto will negotiate their highest common speed and duplex. When a switch port is set to 100-Full or any other setting, it is no longer negotiating. The side that is still negotiating is finding that it can’t determine the connection possiblities of the link partner because that link partner is no longer advertising its speed and duplex. That functionality was disabled when it was forced to use a specific setting. The auto side can determine the link partner speed, but it cannot determine the duplex of the other side. So, when in doubt, Ethernet will default to half duplex. This is how 99% of the problems we see related to duplex occur.
Hopefully this article will help to put the debate to rest! Just use auto unless you see in rare instances that it simply isn’t working.
Note: On Gigabit interfaces we don’t typically see the above problem, as half-duplex Gigabit is very rarely implimented on switches. This is mostly for 10/100 Ethernet interfaces.








Recent Comments