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:
| Written | Means | Used 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 |
| Gbps | Gigabits per second = 1000 Mbps | Faster 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
| Speed | Usual name | Where you see it |
|---|---|---|
| 10 Mbps | Ethernet (10BASE-T) | Very old equipment, some industrial and building devices |
| 100 Mbps | Fast Ethernet (100BASE-TX) | Printers, IP phones, low-cost smart-home devices, old PCs |
| 1 Gbps | Gigabit Ethernet (1000BASE-T) | Almost every PC, laptop dock and office switch port today |
| 2.5 / 5 Gbps | Multi-gig (2.5GBASE-T, 5GBASE-T) | Wi-Fi 6/7 access points, newer PCs and home routers |
| 10 Gbps | 10 Gigabit (10GBASE-T, 10GBASE-SR) | Servers, storage, links between switches |
| 25 / 40 / 100 Gbps+ | Data-centre Ethernet | Server 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.
- 1. The PC transmits… the other side must stay silent and listen.
- 2. …then the other side transmits. The two sides take turns. If both start at once, a collision ruins both frames.
- 1. Both send at the same time. No collisions are possible, so the full speed is available in each direction.
| Half duplex | Full duplex | |
|---|---|---|
| Send and receive at the same time? | No, the ends take turns | Yes |
| Collisions | Normal and expected | Impossible |
| CSMA/CD | On | Off |
| Where you find it | Hubs 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.
- Speed:
- 1 Gbps
- Duplex:
- Full
- The cable is plugged in, and each side sends bursts of pulses that list its abilities.
- Each side compares its own list with the other side's.
- Both sides use the same priority order and pick the highest speed both support, with full duplex if both support it.
- 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.
- 1. The switch starts sending a frame… it believes the link is shared, so it checks for collisions while it transmits.
- 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. 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.
| Side | What its counters show |
|---|---|
| Half-duplex side | Collisions, and especially late collisions (collisions after the first 64 bytes, which never happen on a healthy network) |
| Full-duplex side | CRC / FCS errors and runts (frames cut short when the other side stops sending) |
| Users | Small 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:
Checking speed and duplex
Windows (PowerShell)
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
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.PS C:\> Get-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Speed & Duplex" Name DisplayName DisplayValue RegistryKeyword RegistryValue ---- ----------- ------------ --------------- ------------- Ethernet Speed & Duplex Auto Negotiation *SpeedDuplex {0}
Linux (ethtool)
$ 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
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.$ 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
sudo ethtool -S enp3s0 for the card's detailed counters, including CRC errors.macOS
$ ifconfig en0 | grep media media: autoselect (1000baseT <full-duplex>)
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”:
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
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
- 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).
- Link at 100 Mbps on gigabit gear? Suspect the cable or a damaged pair first. Try a known-good patch lead.
- Slow under load, but ping works? Check the duplex on both ends and look for late collisions, CRC errors and runts.
- One end hard-set? Return both ends to auto.
- 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.
- 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-NetAdapteron Windows,ethtoolon Linux andifconfigon macOS.
Check yourself
Your internet plan is 200 Mbps. Roughly how fast should a large download run in a browser that shows MB/s?
A server is hard-set to 100 Mbps full duplex. The switch port is on auto. What happens?
Users complain that one PC is slow, and its switch port shows a growing number of late collisions. What is the most likely cause?
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