Autonegotiation
When Fast Ethernet was introduced by the IEEE, another feature was implemented called auto-negotiation. Imagine a network where different parts implement different standards. For example you may have a 100BASE-Tx network segment connected to a 10BASE-T segment, by a 1000BASE-T switch. Since the different parts operate at different speeds and some can operate half-duplex while others can operate at full-duplex, there needs to be a mechanism whereby the different parts can agree on common speed and duplex modes that will be suitable for communication.
Autonegotiation is a mechanism whereby devices sharing a link segment can automatically configure themselves to operate at the highest speed and duplex mode that they can both cope with. Thus, the autonegotiation standard allows devices based on different Ethernet standards, from 10BASE-T to 1000Base-T, to coexist in the network.
~~ The Autonegotiation Fast Link Pulse ~~
For the 10Base-T standard, a link test mechanism is used to test for a connection. In the absence of network traffic, a 100 nanosecond pulse is sent every 16 milliseconds. This pulse is called a Normal Link Pulse (NLP).
When the Fast Ethernet standard was introduced, the NLP used on 10BASE-T was adopted for use in the autonegotiation process. In autonegoatiation, a group of 33 pulses are sent, one after another. This group of pulses is call the Fast Link Pulse (FLP).
Since 10BASE-T has no knowledge of FLP's and can only understand NLP pulses, each FLP group of pulses are sent at the same rate as a single NLP, once every 16 milliseconds. Then, 10BASE-T can just interpret the group of pulses in an FLP burst to be a single NLP pulse. This is to maintain backward compatibility.
Each FLP group of pulses, contains 33 pulses. 17 are clock pulses that are alternated with 16 data pulses. First a clock pulse is sent, then a data pulse may be sent, then another clock pulse, and so on. The clock pulses are uses for timing and all 17 pulses are always present.
The 16 data pulses found between each clock pulse, may or may not be present, depending on the information being transmitted by the sender. The data pulses contain a code word, specifying the technology ability of the sender, 100BASE-Tx, for example. The diagram below illustrates this.
The diagram shows how different code words represent different technology standards. Additional bits include the Acknowledge bit and the Next Page bit. Once both sides of the link have exchanged FLP's and have decoded the code word from it's link partner, each side then knows what the other side is capable of. Both link partners then send three NLP's with the Acknowledge bit set indicating they have decoded the technology code word. Then both sides either send additional NLP pages - if the Next Page bit is set, or they both stop. Using the technology configuration information that has been exchanged in the code word, they then decide on and enable the highest common performance mode possible.
~~ The Autonegotiation Process~~
When a station first attempts autonegotiation with a link partner, it sends out a series of FLP pulses. If the link partner supports Autonegotiation and is in autonegotiation mode, then the negotiation process can start between the link partners, resulting in the establishment of a link, where the highest common performance mode possible is used.
If however, autonegotiation exists at only one end of a link because the link partner does not support the autonegotiation mechanism, the station must examine the signal it is receiving, to try and discover which technology the link partner supports. This is known as parallel detection and gives autonegotiation the ability to be compatible with any device that does not support autonegotiation. The parallel detection function can detect 10BASE-T, 100BASE-TX, or 100BASE-T4 technologies.
The picture below shows that my NIC is set to use autonegotiation. You can also see that it is possible for me to fix it at a particular mode, ranging from 100Mbps Full Duplex to 10Mbps Half Duplex.
Fixing it at a particular mode is risky though. Suppose I set it to 100Mbps full duplex and a link partner attempts to establish a connection. Since autonegotiation defaults to half-duplex mode but I have set my NIC to a fixed full-duplex mode then the link will fail.
Autonegotiation only works when...
- both sides are in autonegotiation mode and can negotiate the best common configuration
- one side is autonegotiation mode and the link partner is in a fixed half-duplex mode.
It is possible for both sides to establish a full-duplex mode and will occur when...
- both sides are in an autonegotiation mode and decide that both sides are capable of operating in full-duplex mode.
- both sides are in a fixed full-duplex mode that match
~~ Examples of Autonegotiation ~~
Scenario 1
Suppose a DTE can operate at 10/100/1000 Mbps but is configured to autonegotiate. Suppose the link partner is a legacy device, operating at 10BASE-T. How will a link be established between them?
What will the resulting Link Mode be?
Scenario 2
Suppose a DTE can operate at 10/100/1000 Mbps but is configured to autonegotiate. Suppose the link partner is configured to operate at 100BASE-Tx in full-duplex mode. How will a link be established between them?
What will the resulting Link Mode be?
Scenario 3
Suppose a DTE can operate at 10/100/1000 Mbps but is configured to operate at a fixed mode of 1000 Mbps full duplex. Suppose the link partner is a 1000BASE-Tx device operating in full-duplex mode. How will a link be established between them?
What will the resulting Link Mode be?
Scenario 4
Suppose a DTE can operate at 10/100/1000 Mbps but is configured to autononegotiate. Suppose the link partner can operate at 10/100/1000 Mbps and is also configured to autonegoatiate. How will a link be established between them?
What will the resulting Link Mode be?
|