Before autonegotiation: manual configuration
In early twisted-pair Ethernet, a single port could support several operational modes, but devices did not automatically agree on one. For example, a switch port might support:
- 10 Mbps, 100 Mbps, or 1000 Mbps (1 Gbps) speeds.
- In either or mode.
Before auto-negotiation became widespread, administrators configured the settings on both endsof a link. A switch port set to "100 Mbps, full-duplex" required the network card to use the same parameters.
Manual configuration made duplex mismatches possible, with one side full and the other half duplex, as well as speed mismatches, such as 100 Mbps on one side and 10 Mbps on the other. The link might fail to establish or operate with errors and low throughput. Counters for late collisions, FCS errors, and retransmissions can indicate such a problem, but they must be interpreted together with both port configurations. An automatic agreement procedure was needed.
What is autonegotiation?
Autonegotiation is a procedure specified by IEEE 802.3, introduced for 10 and 100 Mbps by 802.3u and later extended, including for 1000BASE-T. Two connected devices advertise their capabilities and select a shared mode during link initialization. The base link code word includes fields for the selector, supported technologies, and duplex mode, while extensions can use additional pages. 1000BASE-T also resolves a master or slave role for synchronization, which is separate from duplex.
The goal is to select the highest-priority common mode supported by both devices. If no common mode exists, the port may remain without an active link or require manual settings compatible with the PHY capabilities. If a laptop supports 1 Gbps full-duplex and an older switch supports only 100 Mbps full-duplex, both select 100 Mbps full-duplex.
The negotiation process: how it works
The autonegotiation process uses Fast Link Pulse (FLP) bursts. A single FLP burst carries a 16-bit Link Code Word: 17 positions provide clock pulses and 16 positions carry data bits describing capabilities. FLP signaling is distinct from data traffic and allows interoperability with devices that do not support autonegotiation. The code word describes the base capabilities. Additional pages can carry further technology information, while PAUSE support is represented by defined advertisement fields. FLP itself is a negotiation signal rather than user data.
- Step 1: Link detection
Legacy 10BASE-T devices send a Normal Link Pulse (NLP) to check link continuity. NLP indicates that a partner is present, but it does not carry the partner's speed or duplex list. An autonegotiating port recognizes that signal as well as FLP signaling from a partner. - Step 2: Advertising capabilities
Autonegotiating ports send FLP bursts. Each burst carries a 16-bit Link Code Word, a set of fields that advertises device capabilities, such as 100BASE-TX full- or half-duplex and 10BASE-T. Repeated bursts allow the link partner to acknowledge the advertisement, and the procedure can continue with additional pages when the base fields are insufficient. - Step 3: Comparing capabilities and choosing a mode
Each device receives and decodes the partner's FLP, compares the advertised capabilities with its own, and follows the standardized priority list. The selected mode is the highest-ranked one that both devices advertised. After consistent advertisements have been received, the devices acknowledge them, and the PHY checks signal readiness before declaring the link active.
Priority hierarchy
The selection rule is defined by the standard. In a simplified twisted-pair Ethernet order, higher speed has priority, and full-duplex has priority over half-duplex at the same speed. The list below presents typical teaching entries; the actual result depends on the bits advertised by both devices and the scope of the standard they support:
- 1000BASE-T, full-duplex
- 1000BASE-T, half-duplex
- 100BASE-TX, full-duplex (highest common mode in the example)
- 100BASE-TX, half-duplex
- 10BASE-T, full-duplex
- 10BASE-T, half-duplex
If a PC advertises capabilities up to 1000BASE-T and the switch port advertises only 100BASE-TX full-duplex, both select 100BASE-TX full-duplex.
Duplex mismatch: a common autonegotiation problem
A failed negotiation or inconsistent configuration can produce the hard-to-diagnose duplex mismatch.
It occurs when an administrator manually configures one side, such as the switch port set to 100 Full, but leaves the other side, such as the PC, set to Auto.
- The manually configured side, such as the switch, does not exchange FLP and operates in
100 Fullmode. - The other side is set to
Auto, sends FLP bursts, and receives no Link Code Word from its partner. It therefore gets no information about the duplex setting chosen manually on the other side. - With parallel detection, the device can identify a 10 or 100 Mbps carrier but cannot determine duplex. Under IEEE 802.3u it therefore selects half-duplex for the detected speed. This mechanism does not replace a complete FLP exchange or negotiate every parameter.
The resulting mismatch
The link may come up with inconsistent assumptions:
- The switch port is operating in full-duplex mode and can transmit while receiving.
- The PC's network card is operating in half-duplex mode and uses CSMA/CD, expecting the medium to be idle while it transmits.
When the PC transmits while the switch also transmits, the PC's half-duplex logic may detect a collision and start backoff, while the other side assumes full-duplex operation. These inconsistent medium-access rules cause errors, lower throughput, and connection problems, especially under heavy load. A reported link-up state by itself does not prove duplex agreement; counters and both port settings must also be checked.
Practical configuration rule
To avoid duplex mismatches, enable autonegotiation on both sides or configure both sides manually. Mixing manual and automatic settings makes agreement unreliable.