Autonegotiation is the feature that allows a port on a switch, router, server, or other device to communicate with the device at the other end of the link to determine the optimal duplex mode and speed for the connection.
The controller then dynamically configures the interface with the values determined for the binding.
1. Speed: Speed
is the speed of the interface, usually listed in megabits per second (Mbps). Common Ethernet speeds include 10 Mbps, 100 Mbps, and 1,000 Mbps. 1,000 Mbps Ethernet is also known as Gigabit Ethernet.
2. Duplex
Duplex
refers to how data flows on the interface
.
In a half-duplex interface, data can only be transmitted or received at any given time. A conversation on a two-way radio is usually half-duplex: each person must press a button to speak, and while talking, that person cannot hear.
A full-duplex interface, on the other hand, can send and receive data simultaneously. A conversation on a phone is full duplex.
:: How
auto-negotiation works What auto-negotiation doesn’t
do:
When auto-negotiation is enabled on one port, it
doesn’t automatically determine the port settings on the other side of the Ethernet cable and then match them
. This is a
common mistake that often leads to problems. Autonegotiation
is a protocol, and
as with any protocol, it only works if it runs on both sides
of the link. So if one side of a link is running auto-negotiation and the other side
of the link is not, auto-negotiation CANNOT determine the speed and duplex settings of the other side.
If auto-negotiation runs on the other side of the link, the two devices decide TOGETHER on the best speed and duplex mode. Each interface advertises the speeds and duplex modes at which it can operate, and the best match is selected (higher speeds and full duplex are preferred).
:: When auto-negotiation fails When auto-negotiation
fails
on 10/100 links, the
most likely cause is that one side of the link has been set to 100/full, and the other side has been set to auto-negotiation. This results in one side being 100/full, and the other side being 100/half.
1. Half-duplex The
following figure shows a half-duplex link. In a half-duplex environment, the receiving line (Rx) is monitored. If a frame is present in the Rx link, no frames are sent until the Rx line is clear. If a frame is received on the Rx line while sending a frame on the transmitting line (Tx), a collision occurs. Collisions cause the collision error counter to increment (and the send frame to be retransmitted) after a random rollback delay.
2. Full duplex The following figure shows a full-duplex link. In
full-duplex
operation, the Rx line is not monitored, and the Tx line is always considered available. Collisions do not occur in full-duplex mode because the Rx and Tx lines are completely independent.
3. Incorrect settings
When one side of the
link is full duplex and the other side is half duplex, a large number of collisions will occur on the half-duplex side.
Because the full-duplex side sends frames without checking the Rx line, if it’s a busy device, it’s likely to send frames constantly.
The other end of the link, being half-duplex, will listen to the Rx line and will not transmit unless the Rx line is available. It will struggle to have the opportunity to transmit and will record a large number of collisions, which will make the device appear slow on the network.
This problem may not be obvious because a half-duplex interface typically shows collisions. The problem should be presented as excessive collisions.
The following illustration shows a link where auto-negotiation failed.
In the real world, if you see that one interface that is configured for auto-negotiation has negotiated at 100/half, the other broad is likely set to 100/full. Non-full-duplex 100 Mbps interfaces are rare, so properly configured auto-negotiation ports should almost never end up configured for half-duplex.
:: Auto-Negotiation Best Practices
Using auto-negotiation
to your advantage is as easy as remembering a simple rule:
make sure both sides of the link are set up the same way
.
If one side of the link is configured for auto-negotiation, make sure that the other side is also configured for auto-negotiation. If one side is set to 100/full, make sure the other side is also set to 100/full.
Be careful about using 10/full, as full duplex is not compatible with all 10Base-T Ethernet devices.
:: Auto-negotiation
Gigabit Ethernet Gigabit Ethernet uses a
substantially more robust autonegotiation mechanism than the one described above.
Therefore, Gigabit Ethernet should always be configured for auto-negotiation, unless there is a compelling reason to do so (such as an interface that will not negotiate properly). Even then, this should be considered a temporary solution until the misbehaving part can be replaced.