How to Fix Packet Loss

What causes it, and what to do about it

Packet loss occurs when a network connection loses information while it's in transit. It can make your connection seem slower than it should be and reduces the reliability of network communication with local and remote devices. Knowing how to stop packet loss should be a top priority for anyone looking to improve a troublesome network.

A technician pulling on a tangled mess of CAT 5 cables in a computer server room
Mint Images / Getty Images

What Causes Packet Loss?

Packet loss doesn't happen for only one reason. Diagnosing the cause of packet loss on your network will tell you what you need to fix:

  • Network bandwidth and congestion: A primary cause of packet loss is insufficient network bandwidth. This happens when too many devices attempt to communicate on the same network.
  • Insufficient hardware: Problems with any hardware on a network that routes packets can cause packet loss. Routers, switches, firewalls, and other networking devices are the most vulnerable.
  • Damaged cables: Packet loss can occur on the physical network layer. If Ethernet cables are damaged, improperly wired, or too slow to handle the network's traffic, the cables leak packets.
  • Software bugs: The firmware in the network hardware or computer software can have bugs that cause packet loss.

How to Fix Packet Loss on Your Network

To determine the cause of packet loss, start with the easiest problem to detect:

  1. Check the physical connections. Check the Ethernet connection between the devices. Look for signs of physical damage or misfiring and see if switching out the cables solves the problem.

  2. Free up bandwidth. Is any piece of hardware handling more connections than it should? If so, limit the bandwidth on the router.

  3. Replace the hardware. Swap out potentially problematic devices on the network to see if the packet loss disappears when a specific device is removed.

  4. Report software bugs. If you suspect the packet loss is caused by software bugs, the only way to fix it is through a firmware patch from the vendor supplying the hardware. Report suspected bugs as you find these issues to encourage vendors to fix the problem.

How to Detect Packet Loss

There are a number of applications that can detect packet loss across a network. These work by sniffing packets in some way, either by analyzing the trip time or looking at the packet contents. The simplest way to discover if packet loss exists is by pinging devices on the network:

  1. In Windows, open a command prompt window and use the ping command to target your router. For example, if the router's local IP address is 127.0.0.1, enter ping 127.0.0.1 -t to ping the router. On macOS or Linux, open a Terminal window and enter ping 127.0.0.1.

    The only difference is the missing -t at the end of the command.

  2. After the ping command processes a sufficient number of packets (at least 10), press Ctrl+C or Command+C to stop the command.

  3. Look to see if there was any packet loss. If the specific connection between the pinging device and the target is functioning correctly, you should see 0% packet loss. The report might look like this:

--- 127.0.0.1 ping statistics ---
27 packets transmitted, 27 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.820/8.351/72.343/14.186 ms

Detect Packet Loss With Tcpdump

The tcpdump command on macOS and Linux is more powerful than ping. The command captures packets and then calculates the amount of packet loss. To use the command, open a command prompt or Terminal window and enter tcpdump -i any.

This runs tcpdump over any network connection. It can also be run with -i eth0 to capture only the primary network interface, or with -c 10 to capture only ten packets.

After the command runs, look at the bottom line to see if any packets were lost:

17 packets captured
85 packets received by filter
0 packets dropped by kernel

The process of detecting packets is fairly low tech. After you establish a way to check communications across the network, follow a practice of isolation and elimination to determine the source and cause of the packet loss. This will require pinging a majority of devices on the network. Knowledge of the network's topology is essential.

On Windows, either use tcpdump through the Bash shell on Windows 10 or run Wireshark.