Whether you’re doing some research for school, diligently working in a professional setting, or burning some time playing your favorite multiplayer games, nothing is more annoying than packet loss and lag spikes.
The worst part about these situations is that your Internet connection is tantalizingly close to being usable, but really it just strings you along and causes headaches as applications and websites load infuriatingly slow.
Unfortunately, most people don’t have a full understanding of packet loss, and as such, aren’t equipped to fix the issue. And while it’s true that sometimes packet loss issues are outside our control, many other times there are direct actions you can take to troubleshoot the issue and browse the Internet with ease.
But before we talk about common packet loss issues and how to fix them, let’s first define packet loss, starting with the concept of a packet.
Though the inner workings of the TCP/IP protocol stack (that’s a mouthful, isn’t it?) are rather complicated, let’s take a moment to hash out a few basic concepts and shed some light on this cryptic terminology.
To better describe the numerous ways data is encapsulated or “boxed up” for delivery to another computer system, electronics engineers created a model they dubbed the OSI (Open Systems Interconnect) model.
Each layer represents a different leg of the journey must take before it can be translated from data on your computer or mobile device’s monitor into 1’s and 0’s transmitted across a cable. Don’t worry too much about the nitty-gritty details. Instead, simply note the following high-level description of the seven layers of the OSI model:
The most interesting layer for our discussion about packet loss is Layer 4: the Transport layer. At this level, data is chunked up into little pieces called packets.
So, a packet is simply the smallest unit of data at the Transport layer, and each packet contains a lot of overhead information to facilitate the data exchange. That overhead data is contained in the packet’s header, while all the data you’re trying to send or receive is contained in the packet’s payload.
Unfortunately, some of the packets fail to be properly delivered to two separate systems, either accidentally or by design. Some protocols were designed to make sure that lost data isn’t present. Such is the case with UDP (User Datagram Protocol) because resending the data would be undesirable and wouldn’t make sense.
If you’re having some difficulties browsing the web, streaming audio or video smoothly, or playing your favorite game, packet loss might be to blame. But how do you identify packet loss in the first place?
Well, some applications have graphical interfaces that display Internet connection statistics and speed settings. For instance, a lot of multiplayer games show real-time latency somewhere within the game or hidden within a menu.
If you notice an inordinate amount of lag spikes, poorly performing applications, or an altogether slow Internet connection, there are a few tools at your disposal. Fist and foremost, I’d like to draw your attention to simple ICMP echo requests and replies, which are more commonly known as pings.
A continuous ping will be able to display how reliably ICMP packets are sent to a server and back. If you notice that a lot of the ping operations are failing, packet loss may very well be the root cause of your problem. To test your Internet connection in a general fashion, you can set up a continuous ping to Google’s DNS servers, which are hosted at 22.214.171.124.
However, for specific services, I’d recommend setting up a continuous ping the specific destination web server you’re trying to reach. For reference, the following is the syntax used on common operating systems for the ping command:
Also, note that you can substitute “126.96.36.199” with the URL of a domain or website you want to reach. For instance, on a PC, I could type “ping www.facebook.com -t” to set up a continuous ping to Facebook’s nearest server.
If you don’t know the address or domain of the server you’re trying to test for packet loss, you’ll have to do a little sleuthing via Internet research. Most often, servers are pretty easy to find though.
For example, I was able to find the IP address of popular League of Legend’s NA server within a few seconds. So, remember to set up a continuous ping to the destination server and check to make sure that you aren’t losing any pings. You may also want to run a trace-route command.
From a PC command prompt, just type “tracert 188.8.131.52” and the trace-route operation will find all of the IP addresses in the path through which your data flows to reach its destination.
You may find that one IP address is failing each time, which is indicative of congestion, packet loss, or other similar network issues.
Using Google, you can easily find where that IP address is located geographically.
If you find that a particular region, such as a West Coast IP address, telecommunications company, or network is producing packet loss and connectivity issues, you can easily circumvent the network with a VPN tunnel.
If your data takes a different path through the Internet (as it would when using a VPN), your data’s path may completely avoid the problematic networks. However, as we’ll discuss in the next section, sometimes packet loss is intentionally created.
Networking devices like routers and firewalls have finite amounts of bandwidth. And when an interface or device is maxed out, any data that’s tried to push through the device beyond its maximum threshold will be lost. Basically, limitations in interface bandwidth create a bottleneck affect.
And because bandwidth – especially WAN (Wide Area Network) bandwidth – is so expensive, prized, and in short supply, engineers found ways to intelligently decide which packets to forward…and which packets to discard or drop.
For instance, real-time voice data is extremely sensitive to packet loss and latency. Because most voice applications use UDP, it wouldn’t really make sense to retransmit lost voice data.
By the time the data is finally retransmitted, the end result would sound like an unintelligible and garbled mess as more real-time audio is generated, sent, and received. As such, voice calls are often given higher priority during times of network congestion.
On the other hand, a basic file download is often given lower priority, since the data can easily be resent of blocks of the data fall victim to packet loss.
This process of choosing which data to forward and which to drop, during times of network congestion, is called QoS (Quality of Service). It all can actually get pretty darn complex, but the end result is the same: maximize the efficiency of interface bandwidth to ensure that higher priority traffic isn’t crowded out by lower priority traffic.
And interestingly enough, even by default, pings are set to the lowest or near lowest priority, which makes them sensitive to packet loss and hence identifies it more easily than other protocols.
Now that we have a firm understanding of what packet loss is, as well as a few of its causes, I wanted to talk about other issues that are usually thought of as packet loss.
In reality, however, these other issues have deeper root problems, and packet loss may only be a symptom. For the purposes of this guide, we’ll still continue to lump them together under the packet loss umbrella, even though they’re not technically packet loss issues.
The following are just a few root causes that everyday Internet users might attribute to packet loss:
Now that we know a little bit about packets, packet loss, and what causes it, let’s take a closer look at some of the most common ways to test and rectify poor connection issues.
If you experience chronic packet loss over a long period of time, the issue could have something to do with your ISP. Maybe they have a router or switch configured incorrectly for your connection, perhaps they’re using some type of QoS to restrict your bandwidth, or perhaps there is a physical problem with your modem.
Whatever the root cause may be, you can tell if the issue is with your home configuration or ISP by testing out other connections.
Try connecting to a friend’s network or go to a local coffee shop to use the WiFi. Run ping tests and compare the results with what you experienced on your home network. If the problem persists on your home network but disappears on other networks or different ISP connections, the problem is either your ISP connection or home network.
If you have determined that the problem exists through your ISP connection or home network, the next thing to do is troubleshoot wireless. The bad news is that there are a million and one things that can make a wireless network go wrong, so the first step is to perform a test. Try plugging your computer into the wireless router with a cable and run a ping test to whichever server you’re testing.
If you notice an inordinate amount of packet loss through the wireless connection but not through the Ethernet connection, then the wireless network is to blame. Next, try connecting to the wireless network and check your signal strength. If you have a weak signal, try moving your computer closer to the router and try removing any obstructions.
Concrete and metal can drastically weaken a wireless signal and cause packet loss (really they’re frame drops, collisions, and errors).
Furthermore, you could have a weak wireless signal due to interference from other devices. Microwaves, cordless phones, and other wireless technologies (even other wireless routers) can interfere with each other. Check if your other wireless devices operate in the 2.4 or 5.0 GHz ranges, and try powering them down to see if that improves your packet loss issue.
Hubs are a truly archaic network device, though they are still used and often mistaken for switches. Without delving into the technical details, a hub can cause a lot of collisions on the same Ethernet segment, which could be part of your problem. Every wireless router I have seen includes a switch instead of a hub. Still, check to make sure that your router uses switching technology.
Also check the other end of the Ethernet cable that’s hooked up to your computer, just to verify that the device it’s plugged into on the other end of the cable is either a router or a switch. If there’s a mysterious networking device that looks like a switch and you aren’t sure, Google it’s model number to find out if it’s a Layer 1 hub or a Layer 2/3 switch.
Sometimes, if you have a VPN tunnel connected, you may notice that performance is slow and resultantly incur a lot of packet loss. Start with a continuous ping to make sure that you are actually losing packets. If you are, it could be that the VPN server is simply overburdened.
To rectify this issue, try one of two solutions. Firstly, you could disconnect and reconnect to the same server. If that doesn’t work, try connecting to a whole new VPN server entirely. Also, if you’re getting packet loss without a VPN tunnel connected, try connecting a VPN tunnel to circumvent QoS restrictions and other network policies via the tunnel’s encryption.
If two IP addresses on the same subnet are assigned the same IP address and mask, all kinds of weird issues can crop up. Not only will ARP misbehave, but one of the symptoms is an intermittently working connection that flaps off and on repeatedly.
If your network uses DHCP, try restarting your computer to lease a new IP address. If your network uses static addressing, try assigning a different address to your machine that’s still free.
You will also want to log into your local wireless router to ensure verify your QoS policy. Even if you didn’t personally configure it, someone else could have. Additionally, it’s possible that there are some default QoS settings or simple misconfigurations that are causing packet loss on your home network.
This guide really barely scratches the surface on packet loss issues. Still, these are among the most common reasons for poorly performing connections and other related issues. If you think you’re experiencing packet loss (link to website), first verify it with a continuous ping. Then, move through the aforementioned list of possibilities to troubleshoot the connectivity issue.