Autonegotiation CISCO Port

Imagine you want to set up a meeting with a potential employer in Japan while living in Alaska. You have several communication options like Skype, Vonage, FaceTime, and a cell phone. Your employer also has Skype, an international cell phone, and a landline. You both agree to use Skype for the meeting. This process is similar to autonegotiation in networking.

Autonegotiation is a method used in Ethernet connections where two devices communicate to agree on transmission settings, such as speed, duplex mode, and flow control. The connected devices send messages to each other to share their capabilities and then select the best performance option that both can support. This process happens at the physical layer, which is the first layer of the OSI model.

With autonegotiation, devices can choose different transmission rates and duplex modes, including half-duplex (where data can flow in both directions but not at the same time) and full-duplex (where data can flow in both directions simultaneously). Higher speeds and full-duplex are preferred whenever possible. If one device does not support autonegotiation, the device that does will select a speed that matches the other device, but it will default to half-duplex since full-duplex cannot be assumed. Standards for 1000BASE-T, 1000BASE-TX, and 10GBASE-T require that autonegotiation be enabled.

Example of Configuring a Router

Here’s an example of how to set a router for full-duplex operation at a speed of 100 Mbps:

Terminal Console output
R2(config-if)#int f0/0           
R2(config-if)#no shut           
R2(config-if)#duplex ?
auto Enable AUTO duplex configuration
full Force full duplex operation
half Force half-duplex operation           
R2(config-if)#duplex full           
R2(config-if)#speed ?           
10  Force 10 Mbps operation           
100  Force 100 Mbps operation           
auto Enable AUTO speed configuration           
R2(config-if)#speed 100           
R2(config-if)#do sh int f0/0           
FastEthernet0/0 is up, line protocol is up           
Hardware is Gt96k FE, address is c402.484c.0000 (bia c402.484c.0000)           
MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec,           
reliability 255/255, txload 1/255, rxload 1/255           
Encapsulation ARPA, loopback not set           
Keepalive set (10 sec)           
Full-duplex, 100Mb/s, 100BaseTX/FX           

Example of Autonegotiation on Another Router

Now, let’s see how to set up autonegotiation on another router, which negotiates to half-duplex and 10 Mbps:

Terminal Console output
R1(config-if)#int f0/0           
R1(config-if)#duplex auto           
R1(config-if)#speed auto           
*Mar 1 00:08:55.523: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up           
*Mar 1 00:08:59.967: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up           
R1(config-if)#do sh int f0/0           
FastEthernet0/0 is up, line protocol is up           
Hardware is Gt96k FE, address is c401.4f4c.0000 (bia c401.4f4c.0000)           
MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec,           
reliability 255/255, txload 1/255, rxload 1/255           
Encapsulation ARPA, loopback not set           
Keepalive set (10 sec)           
Half-duplex, 10Mb/s, 100BaseTX/FX           

Important Note

In both examples, it’s crucial that the routers are set to autonegotiation, and that both duplex and speed settings match for the routers to successfully negotiate to full-duplex and 100 Mbps.