1. Introduction
When two devices are connected together, they must agree on two important parameters: speed and duplex mode.
Speed defines how fast data can be transmitted. Common values are 10 Mbps, 100 Mbps, 1 Gbps, or higher.
Duplex defines how communication occurs:
Half-duplex: data can only be sent or received at one time (like a walkie-talkie).
Full-duplex: data can be sent and received simultaneously (like a phone call).
Let's look at each of these in detail.
2. Speed
When two devices are connected, each one uses a network interface. On PC1, the interface is Eth0, and on SW1, it is G0/0. These interfaces define how fast each device can send and receive data.
PC1 (Eth0) supports 10 Mbps and 100 Mbps.
SW1 (G0/0) supports 10 Mbps, 100 Mbps, and 1000 Mbps.
Figure 1 – Speed Capabilities
Before communication can happen, the two devices need to agree on the highest speed they both support.
You can see above that the cable linking the two devices is only the medium that carries the signal. For example, a Cat5e or Cat6 cable can support up to 1 Gbps or more. However, the actual link speed is determined by what the two interfaces can agree on.
When the devices connect, they start a process called auto-negotiation. Each side advertises the speeds it supports, and then they agree on the highest speed both have in common.
Figure 2 – Speed Agreement
In this example, the link between PC1 and SW1 operates at 100 Mbps. Even though the switch could reach 1000 Mbps, PC1 is limited to 100 Mbps, and both devices must match to communicate.
After the devices agree on the speed, they must also decide on the duplex mode.
You might be wondering: what exactly is duplex?
3. Duplex
Duplex mode defines how data flows between two devices.
In Half-Duplex, only one side can send at a time, while the other listens.
This is just like a walkie-talkie: one device speaks, the other listens, but never both at once.
Figure 3 – Half-Duplex Communication
Half-duplex was commonly used in older networks with hubs, but is no longer used in modern Ethernet networks.
In Full-Duplex, both sides can send and receive at the same time.
Just like a phone call, it allows simultaneous communication without collisions.
Figure 4 – Full-Duplex Communication
Full-duplex is the most efficient mode and is always preferred in modern enterprise networks. By default, switches and routers operate in full-duplex mode.
Now that you understand both speed and duplex, the next step is to see how devices negotiate these parameters automatically.
4. Auto-Negotiation
Now that you understand speed and duplex, the next step is to see how devices decide these parameters automatically.
This process is called auto-negotiation (defined in IEEE 802.3u, Clause 28). You don’t need to memorize the IEEE reference, it’s just for your information, but it’s good to know where this process comes from.
In auto-negotiation, both devices advertise what they are capable of.
Figure 5 – Auto-Negotiation Process
On PC1, the interface can operate at 10 or 100 Mbps, and supports both half-duplex and full-duplex.
On SW1, the interface can operate at 10, 100, or 1000 Mbps, and also supports both duplex modes.
Once these capabilities are exchanged, the negotiation process takes place in three simple steps:
Each device advertises its supported speeds and duplex modes.
They compare their capabilities and select the highest common speed.
Finally, they agree on the duplex mode, where full-duplex is always preferred over half-duplex.
In our example, the result is a link at 100 Mbps full-duplex, since this is the fastest speed PC1 supports and both devices prefer full-duplex.
Let's me show you in practice how Auto-negotiation in speed and duplex is configured:
Viewing auto-negotiation in practice
Let’s now check how this looks on our devices.
On PC1, the interface is set to Auto by default for both speed and duplex.
Figure 6 - Auto-Negotiation on PC1 on Packet Tracer
On Cisco switches, auto-negotiation is also enabled by default. We can confirm this with:
SW1# show interfaces g0/0 status
Port Name Status Vlan Duplex Speed Type
Gig0/0 connected 1 auto auto 10/100BaseTX
This confirms that the interface is configured for automatic negotiation (auto) of both speed and duplex.
Verifying the auto-negotiation
To verify the actual negotiated values, we can use the command show interfaces g0/0:
SW1# show interfaces g0/0
GigabitEthernet0/0 is up, line protocol is up (connected)
Hardware is Lance, address is 00d0.d3b6.3919 (bia 00d0.d3b6.3919)
BW 100000 Kbit, DLY 1000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full-duplex, 100Mb/s
input flow-control is off, output flow-control is off
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:08, output 00:00:05, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue :0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
956 packets input, 193351 bytes, 0 no buffer
Received 956 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
0 watchdog, 0 multicast, 0 pause input
0 input packets with dribble condition detected
2357 packets output, 263570 bytes, 0 underruns
0 output errors, 0 collisions, 10 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
As you can see in the highlighted line, the link has been successfully negotiated at 100 Mbps and full-duplex, exactly as expected.
Default behavior
By default, both Cisco devices and PCs use auto-negotiation.
On Cisco interfaces, if you configure nothing, the default settings are:
speed auto
duplex auto
This behavior is convenient because it prevents mismatches and ensures the best settings are chosen automatically.
However, there are situations where you may want to disable auto-negotiation and configure speed and duplex manually.
That’s what we will cover in the next section.
5. Manual Configuration
So far we have seen how auto-negotiation automatically chooses the best speed and duplex. But sometimes, you may want to configure these values manually.
For example, imagine a server hosting multiple services such as web and database applications. Since this server needs to handle a lot of traffic, we may want to make sure that its link is always fixed at the correct speed and duplex without relying on negotiation.
Figure 7 - Duplex and Speed Manual Configuration
In this example, we will configure both the server and the switch to operate at 1000 Mbps full-duplex.
Configuring the switch
First, enter interface configuration mode and select the speed:
SW1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW1(config)# interface g0/1
SW1(config-if)# speed ?
10 Force 10 Mbps operation
100 Force 100 Mbps operation
1000 Force 1000 Mbps operation
auto Enable AUTO speed configuration
SW1(config-if)# speed 1000
Here we chose 1000 Mbps. Notice that the option auto
is available, which is the default setting.
Next, configure the duplex:
SW1(config-if)# duplex ?
auto Enable AUTO duplex configuration
full Force full duplex operation
half Force half-duplex operation
SW1(config-if)# duplex full
%LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to down
We forced the duplex to full. Again, you can see that auto
was the default.
Configuring the Server
On the server, we set the interface Eth0 to 1000 Mbps and full-duplex manually.
Verifying the result
Since both sides are configured with the same settings, the link comes back up/up:
%LINK-5-CHANGED: Interface GigabitEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to up
We can check the status with show interfaces g0/1 status:
SW1# show interfaces g0/0 status
Port Name Status Vlan Duplex Speed Type
Gig0/1 connected 1 a-full a-1000 10/100BaseTX
And confirm with show interfaces g0/1:
SW1# show interface g0/1
GigabitEthernet0/1 is up, line protocol is up (connected)
Hardware is Lance, address is 00d0.d3b6.3919 (bia 00d0.d3b6.3919)
BW 100000 Kbit, DLY 1000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full-duplex, 1000Mb/s
input flow-control is off, output flow-control is off
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:08, output 00:00:05, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue :0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
956 packets input, 193351 bytes, 0 no buffer
Received 956 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
0 watchdog, 0 multicast, 0 pause input
0 input packets with dribble condition detected
2357 packets output, 263570 bytes, 0 underruns
0 output errors, 0 collisions, 10 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
As you can see in the highlighted line, the link is operating at 1000 Mbps full-duplex, exactly as we configured.
6. Speed and Duplex Mismatch
So far, we have seen how auto-negotiation ensures devices always agree on the same speed and duplex. But when these parameters are configured manually, mistakes can occur.
These errors usually fall into two categories: speed mismatch and duplex mismatch.
Speed Mismatch
A speed mismatch happens when both ends of the link are configured with different speeds.
Figure 9 – Manual Configuration Speed Mismatch
For example, if PC1 is set to 100 Mbps, while SW1 is set to 1000 Mbps.
SW1# show run | s interface
interface GigabitEthernet0/0
duplex full
speed 1000
The interface does not come up:
SW1# show interfaces g0/0 status
Port Name Status Vlan Duplex Speed Type
Gig0/0 notconnect 1 a-half a-100 10/100BaseTX
The status is notconnect, and the line protocol remains down.
The devices cannot communicate because their speeds do not match.
Duplex Mismatch
A duplex mismatch occurs when the speed matches on both sides, but the duplex settings are different.
Here, the link comes up, but errors quickly appear.
Figure 10 – Manual Configuration Duplex Mismatch
For example, if PC1 is configured at 100 Mbps full-duplex, while SW1 is configured at 100 Mbps half-duplex:
SW1# show run | s interface
interface GigabitEthernet0/0
duplex full
speed 1000
The link is established, but errors start to appear in the interface counters:
SW1# show interfaces g0/0
GigabitEthernet0/0 is up, line protocol is up
Hardware is Lance, address is 00d0.d3b6.3919 (bia 00d0.d3b6.3919)
BW 100000 Kbit, DLY 1000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Half-duplex, 100Mb/s
input flow-control is off, output flow-control is off
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:08, output 00:00:05, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue :0/40 (size/max)
5 minute input rate 12000 bits/sec, 15 packets/sec
5 minute output rate 18000 bits/sec, 20 packets/sec
10568 packets input, 1893511 bytes, 0 no buffer
Received 250 broadcasts, 0 runts, 0 giants, 0 throttles
120 input errors, 120 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
0 watchdog, 150 multicast, 0 pause input
0 input packets with dribble condition detected
13657 packets output, 2635700 bytes, 0 underruns
0 output errors, 95 collisions, 12 interface resets
0 babbles, 15 late collision, 5 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
When there is a duplex mismatch, the link stays up but errors appear.
On the half-duplex side, the key symptom is the CRC counter increasing.
CRC errors mean corrupted frames, a clear sign of bad transmission.
You will also notice collisions and sometimes late collisions, but the CRC errors are the most important indicator to watch.
7. Conclusion
In this lesson, we have seen how speed and duplex are two fundamental parameters that devices must agree on to communicate correctly.
Auto-negotiation makes the process easy, choosing the highest common speed and always preferring full-duplex when possible.
Manual configuration gives more control, but if misconfigured, it can create serious issues:
A speed mismatch prevents the link from coming up.
A duplex mismatch keeps the link up, but introduces errors such as CRC errors, collisions, and late collisions, which lead to poor performance.
Always remember: for stable and reliable communication, both ends of the link must use matching speed and duplex settings.