Auto-negotiation, or negotiation speed, refers to a signaling mechanism that allows ethernet interfaces of two connected devices to determine the optimal speed and duplex mode of the connection. For instance, wired routers make use of these interfaces to communicate with devices on their local network. Auto-negotiation parameters can be set automatically by the devices themselves or manually, so it's important to note how to optimize this for the best connections in your smart home. Read on to learn more!
When discussing auto-negotiation, there are some terms to keep in mind:
- Interface – this describes a physical port on a given network device, such as a router, a switch, server, or a hub, that is capable of transmitting data from one device to another
- Speed – It is usually displayed in megabits per second (Mbps), and it is the rate of each interface. Interfaces can have ethernet speed rates of 10 Mbps, 100 Mbps, and 1000 Mbps, which is also known as Gigabit Ethernet.
- Duplex – Refers to how data is transmitted on the interface. Interfaces can be either half-duplex or full-duplex:
- Half-duplex interfaces can only transmit or receive data at one time. For example, a hub (e.g. printer, speaker, etc) is always a half-duplex, since only one device can communicate with it at once. This is possibly why they are barely used anymore.
- Full-duplex interfaces, on the other hand, can both transmit and receive data simultaneously. For example, a switch or telephone is a full-duplex interface that allows several devices on your network to communicate at once.
How Auto-Negotiation Works
Auto-negotiation is a protocol, specified in clause 28 of the IEEE 802.3. standard, that has a simple, albeit important objective: to establish the best mode of connection between devices. Here’s a brief rundown of what happens during the auto-negotiation process:
- Each interface shares its parameters via Fast Link Pulses (FLP’s): duplex mode (full-duplex or half-duplex) and ethernet speed (10, 100, 1000 Mbps)
- The interfaces select the highest transmission rate they can both support to achieve the highest performance:
Imagine interface A and interface B. Interface A has the capability of sustaining 10, 100, or 1000 Mbps speed at either half or full-duplex. Interface B, however, can only achieve 10 or 100 Mbps at either half or full-duplex. In this scenario, the best possible option is to transmit at 100 Mbps full-duplex. Naturally, the highest speed is preferred over the lowest, and full-duplex achieves better results than half-duplex.
For auto-negotiation to occur, both interfaces must be configured to negotiate automatically. While this may come off as obvious, it’s actually one of the main reasons that problems occur when auto-negotiating.
When one of the interfaces is auto-negotiating and the other is not, that means that only one interface is sending FLPs that contain information regarding its capabilities. If this is the case, the other interface has already hard-set a speed rate and a duplex mode, making it impossible to negotiate with its link partner.
Because one of the interfaces has already set at which speed and duplex it will be operating, the device that is negotiating must determine itself what are the appropriate speed and duplex mode to connect to its link partner. At this point, the negotiating interface can determine at which speed its partner is communicating – 10, 100, or 1000 Mbps – because each of these ethernet speeds have different signaling methods. However, what the negotiating interface cannot decipher is its link partners’ duplex mode, which in many cases can lead to a mismatch.
What Should I Do If A Mismatch Occurs?
First things first – what causes a mismatch? Due to the odd human error, as explained above, failing to determine duplex mode is the main cause for mismatch between interfaces. Let’s see why.
For one, the interface that is already auto-negotiating is unable to know at which duplex mode its link partner is operating, since it is unable to negotiate due to being hard-set. In order to avoid a mismatch, the negotiating partner must use the same speed as the hard-set interface (which it can communicate), but in accordance with the 802.3. standard, it must connect at half-duplex – the default duplex for Ethernet. Most of the times this action will result in a duplex mismatch between interfaces.
In turn, because one of the interfaces can both send and receive simultaneously and the other is only able to either send or receive, the mismatch will generate collisions on the link connecting the two devices, particularly on the half-duplex side. In the end, a mismatch impacts overall performance, and can reduce throughput and increase the number of error counts on the affected interfaces.
The best way to avoid a mismatch is to make sure that the settings on both sides are set to auto-negotiate. Nonetheless, you could also configure the settings manually, but keep in mind that both interfaces would have to be configured the same way. If one interface is set at 100 Mbps, full-duplex, the interface it’s going to connect with must also be set at 100 Mbps, full-duplex.
Want to learn more about connectivity? Check out our latest article on Wi-Fi Roaming; the way it works might surprise you!
For more information about Mercku's Connectivity Suite, our hardware, and how you can partner with Mercku, please reach out to the team at firstname.lastname@example.org.
Thank you for reading our blog! Mercku Blogs covers the latest in wireless technology - subscribe to our newsletter to make sure you don't miss our newest releases!