Packet loss happens when data packets traversing a network fail to reach their intended destination.

Let’s see it in action. Imagine two servers, server-a and server-b, trying to send data back and forth. We can use ping to simulate this and observe packet loss.

# On server-a, pinging server-b
ping server-b

You might see output like this:

PING server-b (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: icmp_seq=0 ttl=64 time=0.587 ms
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.712 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.650 ms
Request timeout for icmp_seq 3
64 bytes from 192.168.1.100: icmp_seq=4 ttl=64 time=0.901 ms
Request timeout for icmp_seq 5

Notice "Request timeout for icmp_seq 3" and "Request timeout for icmp_seq 5". Those are lost packets. In this simple scenario, ping is sending ICMP echo request packets and server-b is supposed to send back ICMP echo reply packets. When a reply doesn’t arrive within a certain timeout, ping reports it as lost.

Packet loss is a fundamental problem in networking because most modern communication relies on reliable delivery of these discrete data chunks. Protocols like TCP add layers of complexity to retransmit lost packets, but this retransmission has a direct performance cost, introducing latency and reducing throughput. UDP, on the other hand, often just drops the lost packet, leading to corrupted data or incomplete streams for applications that use it.

The core problem packet loss solves is breaking down large amounts of data into manageable pieces for transmission. Each packet is like a small envelope with a destination address, a return address, and a piece of the overall message. Routers and switches along the path read the destination address and forward the packet. If the path is congested, a router might drop packets because its buffers are full. If a link is physically damaged, packets might never arrive. If the destination is overwhelmed, it might drop incoming packets.

To understand packet loss, you need to think about the entire path a packet takes. This path isn’t fixed; it’s dynamic and can involve dozens of hops (routers/switches). Each hop is a potential point of failure or congestion.

Here’s a breakdown of how it works internally and what you control:

  • The Network Path: Data travels from your device, through your local network (router, switches), out to your Internet Service Provider (ISP), and then across multiple other networks until it reaches the destination. Each of these segments is a "hop."
  • Routers and Switches: These devices are the traffic cops of the internet. They receive packets, look at their destination IP address, and decide where to send them next. They have queues (buffers) to hold packets temporarily if the next hop is busy.
  • Congestion: This is the most common cause of packet loss. If too many packets arrive at a router or switch at once, and the outgoing link can’t handle the volume, the device’s buffer fills up. To make space for new, incoming packets, it has to discard older ones. This is like a postal worker having too many letters to sort and having to throw some away because the bin is full.
  • Link Failures/Degradation: Physical problems like a damaged Ethernet cable, a faulty fiber optic line, or interference on a wireless link can cause packets to be corrupted or lost entirely.
  • Device Overload: The destination server itself might be too busy to process incoming packets fast enough. Its network interface card (NIC) or operating system might drop packets if its receive buffers overflow.
  • Firewalls and Intrusion Detection Systems (IDS): Sometimes, security devices might be configured to drop packets that they deem suspicious, even if they are legitimate. This can look like packet loss.
  • Quality of Service (QoS) Policing: In enterprise networks, QoS rules can be set to drop traffic that exceeds certain bandwidth limits or priority levels.

When you’re troubleshooting, you’re essentially trying to identify which hop in the chain is dropping packets.

You can use tools like traceroute (or tracert on Windows) to see the path packets take.

# On Linux/macOS
traceroute google.com

# On Windows
tracert google.com

This will show you the IP addresses of the routers between you and the destination. You can then use ping to test individual hops or sections of the path. For example, if traceroute shows hops 192.168.1.1, 10.0.0.1, 203.0.113.5, and then the destination, you might ping 192.168.1.1 and ping 10.0.0.1 to see if packet loss starts after a specific hop.

The one thing most people don’t realize is that packet loss isn’t always a binary "it works or it doesn’t" situation. You can have intermittent loss, or loss that only occurs during peak traffic times. A link might appear to be up and functional, but if it’s experiencing high error rates (like CRC errors on an Ethernet link), it can cause a significant amount of packet loss even if the link itself is technically "connected." This is why looking at interface statistics on routers and switches for error counts, discards, and buffer utilization is crucial for deep diagnostics.

The next problem you’ll likely encounter is understanding how TCP retransmissions impact latency.

Want structured learning?

Take the full Computer Networking course →