Routelearn.net
Course menu

Unit 4: Ethernet and CablingLesson 4.8 (8 of 9 in this unit)23 of 84 in the Network Fundamentals course

Speed and Duplex

Every Ethernet link runs at a speed (how many bits per second it carries) and a duplex (one direction at a time, or both at once). Learn how they are chosen, why bits are not bytes, and how to spot the classic duplex mismatch.

Beginner · 13 min read · Before this: Ethernet fundamentals, Copper cabling

Speed and duplex are the two basic settings of an Ethernet link. Speed is the rate at which bits are sent, in bits per second (such as 100 Mbps or 1 Gbps), and duplex is whether the link carries data in one direction at a time (half duplex) or in both directions at once (full duplex).

In simple terms: Speed is how fast data moves over the cable. Duplex is whether both ends can talk at the same time, like a phone call, or must take turns, like a walkie-talkie.

What speed and duplex mean

When you plug in a cable, the two ends of the link agree on two settings before any data is sent:

⚡ Speed

How many bits per second the link carries in each direction: 10 Mbps, 100 Mbps, 1 Gbps and so on. Both ends must use the same speed, or the link does not come up at all.

↔️ Duplex

Whether both ends can send at the same time (full duplex) or must take turns (half duplex). If the two ends disagree, the link comes up but performs badly.

These are Layer 1 settings, handled by the network interface card (NIC) and the switch port. They decide how fast and how smoothly every frame travels over that one cable.

Bits and bytes: Mbps vs. MB/s

This is the most common source of confusion. Network speeds and file sizes are counted in different units:

WrittenMeansUsed for
Mb, Mbps, Mbit/s (small b)Megabits (per second)Link speeds, internet plans, Wi-Fi rates
MB, MB/s (capital B)Megabytes (per second)File sizes, download progress in browsers
GbpsGigabits per second = 1000 MbpsFaster links

One byte is 8 bits. So to turn a link speed into bytes per second, divide by 8:

  • 100 Mbps ÷ 8 = 12.5 MB/s (about 11.8 MB/s of real data)
  • 1 Gbps ÷ 8 = 125 MB/s (about 118 MB/s of real data)
  • 10 Gbps ÷ 8 = 1250 MB/s (if your disks can keep up)

Try it · bits vs. bytes

File size (bytes: what your file manager shows)

Link speed (bits per second: what the network shows)

Step 1: bytes → bits (× 8)

700 MB × 8 = 5,600 Mb

Speed in bytes (÷ 8)

1 Gbps ≈ 125 MB/s

Transfer time

best case 5.6 s
realistic ≈ 6.0 s

“Realistic” assumes about 94% of the link carries your data once Ethernet, IP and TCP headers are counted. Real transfers can be slower still: Wi-Fi, a slow disk or a busy server is often the bottleneck, not the cable.

💡 Why is the real data rate a little lower? A full-size frame carries about 1460 bytes of TCP data, but each one also needs 78 bytes for the preamble, the Ethernet, IP and TCP headers, the FCS (frame check sequence) and the gap between frames. That is about 5% overhead.

Learn more: The Ethernet Frame

Common Ethernet speeds

SpeedUsual nameWhere you see it
10 MbpsEthernet (10BASE-T)Very old equipment, some industrial and building devices
100 MbpsFast Ethernet (100BASE-TX)Printers, IP phones, low-cost smart-home devices, old PCs
1 GbpsGigabit Ethernet (1000BASE-T)Almost every PC, laptop dock and office switch port today
2.5 / 5 GbpsMulti-gig (2.5GBASE-T, 5GBASE-T)Wi-Fi 6/7 access points, newer PCs and home routers
10 Gbps10 Gigabit (10GBASE-T, 10GBASE-SR)Servers, storage, links between switches
25 / 40 / 100 Gbps+Data-centre EthernetServer uplinks and switch-to-switch links in data centres

The speed a link can reach depends on both ends and on the cable in between. A 1 Gbps PC on a 100 Mbps switch port runs at 100 Mbps. Each speed also needs the right category of cable.

Learn more: Copper CablingEthernet Standards

Half duplex vs. full duplex

Half duplex works like a walkie-talkie: only one side can talk at a time. If both talk at once, the signals collide, and both sides must stop, wait a random time and try again. This is CSMA/CD (Carrier Sense Multiple Access with Collision Detection), the method used in the days of hubs and shared cables, where every shared segment was one collision domain.

Full duplex works like a phone call: both sides talk and listen at the same time. On 10 and 100 Mbps copper, each direction has its own wire pair. Gigabit copper sends in both directions on all four pairs at once and uses signal processing (echo cancellation) to separate them. Fibre uses one strand for each direction. There are no collisions, so CSMA/CD is switched off, and a 1 Gbps link can carry 1 Gbps in each direction.

shared: take turnsPCHub / half-duplex port
  1. 1. The PC transmits… the other side must stay silent and listen.
  2. 2. …then the other side transmits. The two sides take turns. If both start at once, a collision ruins both frames.
TX → RXPCSwitch port
  1. 1. Both send at the same time. No collisions are possible, so the full speed is available in each direction.
Half duplexFull duplex
Send and receive at the same time?No, the ends take turnsYes
CollisionsNormal and expectedImpossible
CSMA/CDOnOff
Where you find itHubs and very old devices (Wi-Fi is also half duplex, but uses CSMA/CA instead)Every modern switch port, fibre link and wired NIC

Autonegotiation: how the two ends agree

Autonegotiation lets the two ends of a copper link tell each other what they support and pick the best match automatically. It is on by default on every modern NIC and switch port, and it is required for 1000BASE-T and faster copper standards.

Step 1 of 3 · Link pulses: my abilities
PC network card
10/100/1000, full + half
Switch port
10/100/1000/2500, full + half
Link up
Speed:
1 Gbps
Duplex:
Full
The abilities travel as bursts of electrical pulses (fast link pulses) while the link is coming up, not as Ethernet frames.
  1. The cable is plugged in, and each side sends bursts of pulses that list its abilities.
  2. Each side compares its own list with the other side's.
  3. Both sides use the same priority order and pick the highest speed both support, with full duplex if both support it.
  4. The link comes up and the port light turns on. Frames can now be sent.

When only one end negotiates

If one end has autonegotiation turned off (speed and duplex hard-set by hand), it sends no list of abilities. The other end can still detect the speed from the type of signal it receives, a fallback called parallel detection. But it cannot detect the duplex, so the standard says it must assume half duplex at 10 or 100 Mbps. That rule is the root cause of most duplex mismatches.

Duplex mismatch: the classic problem

A duplex mismatch happens when one end of a link runs full duplex and the other runs half duplex. The link light is on and ping works, but the link is very slow under real load.

100 Mbps link is upFULLServerhard-set 100/fullHALFSwitch portauto → fell back to half
  1. 1. The switch starts sending a frame… it believes the link is shared, so it checks for collisions while it transmits.
  2. 2. …and the full-duplex server sends at the same time, because a full-duplex device never waits. The half-duplex switch sees this as a collision. If it happens after the first 64 bytes, it is a late collision.
  3. 3. Both sides suffer. The switch stops sending and counts collisions and late collisions. The server receives cut-off frames and counts CRC errors and runts. TCP slows down sharply to recover the lost data.
SideWhat its counters show
Half-duplex sideCollisions, and especially late collisions (collisions after the first 64 bytes, which never happen on a healthy network)
Full-duplex sideCRC / FCS errors and runts (frames cut short when the other side stops sending)
UsersSmall tasks work (ping, light browsing); large transfers are very slow, video stutters, and file copies take many times longer than expected

⚠️ The fix is almost never “set the other end by hand too”. The fix is to put both ends back on auto. If a device really cannot negotiate, hard-set both ends to the same speed and duplex.

A real-world example: the slow back-office PC

An office reports that one PC copies files from the server at 3 MB/s, while everyone else gets over 100 MB/s. You investigate and find:

Link light on, ping works
Layer 1 is up, so the cable is not completely dead.
PC reports 100 Mbps, not 1 Gbps
Testing the cable shows a damaged pair. Gigabit needs all four pairs; 100 Mbps needs only two.
Switch port counters: late collisions
Years ago, someone hard-set the PC's network card to 100/full, so the switch port (on auto) fell back to half duplex.
PC set back to auto, cable replaced
The link comes up at 1 Gbps full duplex, and copies run at about 110 MB/s.
Two separate faults at once: a manual setting created a duplex mismatch, and a damaged pair would still have limited the link to 100 Mbps.

Checking speed and duplex

Windows (PowerShell)

Example output from a Windows PC, written for this lesson
PS C:\> Get-NetAdapter | Format-Table Name, Status, LinkSpeed, FullDuplex
Name     Status       LinkSpeed FullDuplex
----     ------       --------- ----------
Ethernet Up           1 Gbps          True
Wi-Fi    Disconnected 0 bps          False
What to look for: LinkSpeed is the speed the link is running at now. On a wired desktop, you normally want 1 Gbps (or more) and FullDuplex True. The disconnected Wi-Fi adapter shows 0 bps, which is normal.
Example output from a Windows PC, written for this lesson (the setting's name varies by network card driver)
PS C:\> Get-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Speed & Duplex"
Name      DisplayName     DisplayValue     RegistryKeyword RegistryValue
----      -----------     ------------     --------------- -------------
Ethernet  Speed & Duplex  Auto Negotiation *SpeedDuplex    {0}
What to look for: this is the setting, not the result. DisplayValue should be Auto Negotiation unless you have a very good reason to change it. In the graphical interface, it is under Device Manager → network adapter → Properties → Advanced.

Linux (ethtool)

Example output from a Linux PC, written for this lesson (trimmed)
$ sudo ethtool enp3s0
Settings for enp3s0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	                                     1000baseT/Full
	Link partner advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Auto-negotiation: on
	Port: Twisted Pair
	MDI-X: on (auto)
	Link detected: yes
What to look for: Advertised link modes is what this card offered; Link partner advertised link modes is what the switch offered. Speed and Duplex are the result. If the link partner lines are missing, the switch is not negotiating, which is a warning sign for a duplex mismatch.
Example output from a Linux PC, written for this lesson
$ ip -s link show enp3s0
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 02:00:00:00:00:aa brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
    184467233  152311    417       0       0     412
    TX:  bytes packets errors dropped carrier collsns
     21983345   98012      0       0       0       0
What to look for: receive (RX) errors that keep climbing (here 417) mean damaged frames are arriving, usually because of a bad cable or a duplex mismatch. On the TX line, collsns (collisions) should be 0 on a full-duplex link. Run sudo ethtool -S enp3s0 for the card's detailed counters, including CRC errors.

macOS

Example output from a Mac with a wired adapter, written for this lesson
$ ifconfig en0 | grep media
	media: autoselect (1000baseT <full-duplex>)
What to look for: autoselect means autonegotiation is on. The result, 1000baseT <full-duplex>, is in brackets.

Seen on a switch

If you have access to the switch, its port list shows the same information from the other side. On a Cisco switch, an a- prefix means “autonegotiated”:

Example output · based on Cisco documentation; exact format varies by platform and software version
SW1#show interfaces status
Port      Name               Status       Vlan       Duplex  Speed Type
Gi1/0/4   Office-PC-12       connected    10         a-full a-1000 10/100/1000BaseTX
Gi1/0/5   Back-office        connected    10         a-half  a-100 10/100/1000BaseTX
What to look for: Gi1/0/4 shows a-full and a-1000, a healthy link. Gi1/0/5 shows a-half and a-100: the far end is probably not negotiating, so the port fell back to half duplex. This is the same situation as in the example above. Configuring switch ports is covered in the CCNA course; here you only need to read the output.

Troubleshooting checklist

  1. No link light at all? There is no signal, or the two ends cannot agree on a speed. Check the cable, the port, and that both ends support a common speed (a 10 Gbps-only port will not link with a 1 Gbps card).
  2. Link at 100 Mbps on gigabit gear? Suspect the cable or a damaged pair first. Try a known-good patch lead.
  3. Slow under load, but ping works? Check the duplex on both ends and look for late collisions, CRC errors and runts.
  4. One end hard-set? Return both ends to auto.
  5. Still slow? The bottleneck may not be the link at all. It could be Wi-Fi, a slow disk or the internet connection.

Learn more: Layer 1 and 2 Problems

Common mistakes

  • Comparing Mbps with MB/s. Speeds are in bits and file sizes in bytes. A 100 Mbps internet plan that downloads at 11 MB/s is working perfectly.
  • Hard-setting only one end. The other end, still on auto, falls back to half duplex, which causes an instant duplex mismatch.
  • Blaming the network for a cable problem. A link stuck at 100 Mbps is usually a bad cable, not a slow switch.
  • Thinking full duplex doubles your download speed. It lets you upload and download at full speed at the same time, but each direction is still limited to 1 Gbps on a gigabit link.
  • Expecting Wi-Fi to deliver its link rate. A laptop showing a 1200 Mbps Wi-Fi rate usually moves far less real data, because the radio channel is shared and half duplex.
✅ Key takeaways
  • Speeds are in bits per second; divide by 8 for bytes per second.
  • Half duplex takes turns and can have collisions; full duplex sends in both directions at once, with no collisions.
  • Autonegotiation picks the highest common speed and duplex; leave it on at both ends.
  • An auto port that receives no negotiation from the other end assumes half duplex, which causes duplex mismatches.
  • Mismatch symptoms: slow transfers, late collisions on one side, CRC errors and runts on the other.
  • Check with Get-NetAdapter on Windows, ethtool on Linux and ifconfig on macOS.

Check yourself

Predict · scenario 1

Your internet plan is 200 Mbps. Roughly how fast should a large download run in a browser that shows MB/s?

Predict · scenario 2

A server is hard-set to 100 Mbps full duplex. The switch port is on auto. What happens?

Predict · scenario 3

Users complain that one PC is slow, and its switch port shows a growing number of late collisions. What is the most likely cause?

Predict · scenario 4

A new gigabit PC links at 100 Mbps on a gigabit switch. Both are set to auto. What do you check first?

Where to go next

Next, learn why half duplex needed collision detection, and how to find physical faults step by step.

Learn more: Collision DomainsLayer 1 and 2 Problems

FAQ

Why does my 1 Gbps connection only download at about 115 MB/s?
Because network speeds are measured in bits and file sizes in bytes. 1 Gbps divided by 8 is 125 MB/s, and Ethernet, IP and TCP headers use a few percent of that, leaving roughly 110 to 118 MB/s of real data. That means the link is working perfectly.
Should I set speed and duplex manually?
Usually not. Leave both ends on autonegotiation, which is the default on almost all equipment and is required for gigabit copper. If you ever must hard-set a link, set both ends to the same values. Setting only one end usually causes a duplex mismatch.
My gigabit PC shows a 100 Mbps link. What is wrong?
Most often, the cable. Gigabit needs all four wire pairs, while 100 Mbps only needs two. With a damaged pair, a bad plug or an old two-pair cable, the link can still come up, but only at 100 Mbps. Try a known-good Cat5e (or better) patch lead first.
Do collisions still happen on modern networks?
Not on healthy switched links running full duplex. Collisions only happen in half duplex. If you see collisions or late collisions on a switch port today, something is wrong, and the usual cause is a duplex mismatch.