Why your PLDT friends have worse ping

Why your PLDT friends have worse ping

Anyone who plays multiplayer or competitive games knows that there is nothing more frustrating than high latency. Although I'm more of a Minecraft and Cities: Skylines player (C:S II can't come soon enough), I play VALORANT from time to time with my friends. I live in the Philippines, so the closest servers are in Singapore, Hong Kong, and Japan. Hong Kong and Singapore usually have the lowest latency to me, with Network RTT measurements hovering around 30 milliseconds.

Latency from my house to VALORANT's Singapore servers. Measured with SmokePing.
Latency from my house to VALORANT's Hong Kong servers. Measured with SmokePing.

For reference, my house in Metro Manila is serviced by a symmetric 600 Mbps fiber connection from Converge. Connection to VALORANT is usually flawless, save for the occasional ping spikes during inclement weather. The same can't be said for my friends who are PLDT users though. I sometimes see that their in-game ping is considerably higher than mine, with occasional spikes in the hundreds.

Although it's likely that one of the reasons for this higher latency is that they play over Wi-Fi (you will generally have a better multiplayer experience over wired Ethernet), it doesn't explain the overall slow browsing experience on PLDT connections outside of gaming. For example, my family home in Tarlac is serviced by a 200 Mbps fiber connection from PLDT. When I stay there, I notice that sites tend to load a little slower than on my connection in Manila - Google searches take a few seconds longer to finish, for instance. No amount of playing with DNS settings changed that.

Interestingly, some users seem to have better latencies on PLDT when using a VPN [1, 2]. At first glance, this is a counterintuitive result: most of the popular VPN providers do not have servers in the Philippines, so if you use a VPN here, you're likely piping all of your traffic through a server in a different country. Why would latencies be lower instead of higher?

So I did an investigation out of curiosity, and if you don't want to stick around for the whole thing:

🌐
TL;DR: Some traffic from PLDT users tend to take a less optimal route to their destination than traffic from other ISPs. This means that packets take longer to arrive and your Internet connection feels sluggish as a result.

High latency could also be caused by Wi-Fi interference, so try to use Ethernet cables where possible.

In this blog post, I'll be brushing on the intricacies of the Internet and how they can affect the experience of a PLDT user compared to their non-PLDT peers. Hopefully I won't bore you too much!

Before we begin

Everything I present in this post is all based on anecdotal evidence that I collected myself. It should not be taken as fact. Additionally, because I began writing this post a few months before I published it, the latencies and IP addresses in my tests could very well have changed since. Network conditions change all the time.

The crux of this post – PLDT's peering with other networks or autonomous systems (ASes) – was still accurate while I was finishing the final edits, so I felt that this post was still worth publishing.

I'm also not an expert, so everything I say here is just from my research and understanding. Feel free to leave a comment at the end!

Bandwidth versus latency

Your Internet connection might seem fine when you perform a speed test. You could be paying for a 200 Mbps plan, see that speed tests are hitting 200 Mbps, and conclude that your connection is working properly. But when you start lagging out of a multiplayer game or load an especially complex webpage, suddenly your connection seems awfully slow.

To understand why this happens, let's use an analogy. Imagine that your Internet connection is a pipe and the water in that pipe represents the websites you visit.

In this analogy, the diameter of the pipe is your bandwidth, as it determines how much water (traffic) can flow through your connection at any given time. The length of the pipe determines your latency or ping, as a shorter length will mean that traffic arrives at its destination quicker.

When your bandwidth is large, bigger files like game updates download faster, as there is more space in the pipe for water to flow through. When the pipe is too long, however, things start downloading slower, as the first drops of water take longer to arrive from the server to your computer.

You will sometimes see latency expressed as round-trip time (RTT). This is because latency is actually a measure of the time between a request sent to a server and a reply received from that server. In our analogy, this would mean that there's actually two pipes at work, one for upload and another for download, but to simplify things we're going to combine them into one pipe where water can flow in both directions.

Suppose you were playing an online game. Let's extend our analogy a little bit:

Here, we can see that the pipe to your computer is only part of the whole path. For a packet to be sent between the game server and your computer, it would have to pass through two pipes with your ISP in between. In real life, these "pipes" can be hundreds of kilometers in length, like when the server for your game is located in another country.

But that's only the best-case scenario. Often, your ISP will not have a direct connection to the game server, and so the path will look like this:

Now it starts to become obvious that bandwidth is not the only important factor in your Internet connection: the longer the total length of pipes is, the longer it takes for the water to arrive. Even if we make the pipes wider (increase the bandwidth), as long as the total pipe length is large, water will take a long time to arrive.

In other words, the longer the path between you and the game server, the higher your latency. Typically you notice this as "rubberbanding" or delays in your in-game movements. It can also manifest when browsing complex webpages with lots of elements such as images. Your browser has to request each of those elements individually; when those requests (and corresponding replies from the server) take a long time to be transmitted, the webpage loads very slowly.

Internet exchange points

One good way for an ISP to lower latencies for its users is to get itself connected to an Internet Exchange Point (IXP), which is a place where different ISPs and companies can communicate directly. Think of it like a set of network switches connecting the likes of Converge, Globe, etc.

In our analogy, an IXP could look like this:

When two independent networks are connected to each other ("peered") through an IXP, traffic can flow between them through a much shorter path. This means decreased latency and happier users. When these networks aren't peered, traffic will have to flow through a transit provider. Besides increased cost (transit isn't free), traffic can take a lot longer to arrive, as the transit path can span anywhere from the next city to another country altogether.

GetaFIX is one of the few IXPs in the Philippines. You can see a list of companies connected to GetaFIX here. Among this list are Converge (AS17639), Sky (AS23944), Globe (AS4775), and even DITO (AS139831). You will also see some other familiar names, such as Riot Games (AS6507) and Cloudflare (AS13335), which owns the 1.1.1.1 DNS service.

Curiously, PLDT is not a member of GetaFIX. Neither is PLDT a member of PHOpenIX, another local IXP, although they used to be. In fact, as of this writing, PLDT (AS9299) isn't connected to any Philippine IXP. This means that traffic to and from PLDT users take longer to arrive, even when the other end of the pipe is also in the Philippines!

Following the water

Usually we don't have to worry about any of this. PLDT users can still browse the Web normally even though PLDT isn't peered with any local IXP. The problem only becomes significant in real-time situations, like competitive online games, where latency becomes an important consideration.

Cloudflare

My dantis.me website, including this blog, is hosted in a server somewhere in Australia, but it's proxied through Cloudflare which has servers all over the globe. This means that no matter how far you are from Australia when you access my site, Cloudflare takes care of connecting you to the nearest Cloudflare server, so everything loads faster. Fun fact: Cloudflare also has servers in Manila and Cebu!

Most modern operating systems come with a traceroute utility for inspecting the path traffic takes from your computer to a server. On Windows it's TRACERT.EXE, while on Linux and macOS it's traceroute.

To demonstrate, I conducted some traceroutes from my Converge connection in Manila and our family's PLDT connection in Tarlac. Below is a sample traceroute result between my Converge connection and one of Cloudflare's IP addresses:

Traceroute from Converge to Cloudflare

We can observe that the route involved nine stops in total, the first (10.0.0.1) being my router and the last (104.21.25.115) being the destination Cloudflare address. All of the stops in between seem to be within Converge's network, judging by the *.convergeict.com domains and the private 10.x.x.x, 172.20.x.x, and 192.168.x.x addresses. This likely means that the path between my computer to Cloudflare's nearest server stayed completely inside the country.

We can also see from the last stop that my latency to Cloudflare is at most 3.883 milliseconds. That's really fast!

Now let's look at another traceroute result, this time originating from my family home's PLDT connection:

Traceroute from PLDT to Cloudflare

We can observe that the route involved eleven stops in total, the first (192.168.1.1) being my family home router and the last (104.21.25.115) being the destination Cloudflare address. Stops 7 and 8 involve servers owned by NTT-GIN, which is a company that provides transit services. The domain names *.hk.bb.gin.ntt.net also suggest that those servers might be located in Hong Kong, so it's likely that the path here involved trips outside the Philippines.

We can also see from the last stop that my latency to Cloudflare is around 75 milliseconds. This is significantly worse than the ~3 millisecond latency I had with Converge, and is likely caused by the fact that PLDT isn't peered with Cloudflare through a Philippine IXP.

VALORANT

This time, let's perform some latency measurements for VALORANT's Singapore server. This server uses AWS Accelerator which, like Cloudflare, proxies traffic through the Amazon server located nearest to a user.

The IP address I tested against here belongs to Amazon's network (AS16509), which is also a member of the GetaFIX IXP. This network isn't peered with PLDT as of writing this post.

Here are some ping results from my Converge connection:

Latency measurement between Converge and AWS Accelerator

We see an average of around 29 milliseconds, which is about the same as what I get in game.

Meanwhile, here are some ping results from my PLDT connection:

Latency measurement between PLDT and AWS Accelerator

We see a significantly higher average of around 83 milliseconds, with an initial spike of almost 190 (!) milliseconds. For reference, Riot Games has servers around the world in an effort to "deliver 35ms ping to 70% of [their] player base" (source). In a game where every millisecond counts, latencies like this could mean the difference between a headshot and a whiff.

What can I do about it?

Unfortunately, the problem lies with how PLDT's traffic gets routed on the Internet. Without optimal peering, data has to take much longer routes than necessary to arrive at its destination, resulting in high latency and an overall poor experience.

There's sadly not much an end user can do to fix this except to wait for PLDT to improve its routing, but there are some things you can try to improve your latency.

Virtual private networks

I mentioned at the start that some PLDT users seem to have lower latencies using a virtual private network (VPN). Continuing with our pipe analogy, using a VPN is akin to using a separate set of pipes to connect to a server. In this way, given the same destination, if the pipes owned by your VPN are shorter overall than the pipes your ISP provides, then data can potentially travel faster.

Almost any VPN could work for this purpose. Those who care about gaming in particular usually turn to ExitLag or Mudfish. Just make sure to familiarize yourself with your VPN provider's privacy policies, especially if the VPN service is free.

Wired networking

If you don't want to resort to a VPN, there's something else you can use to improve your latency: Ethernet cables. Yes, they're unsightly, especially if your router is far away from the device you're connecting, but stick with me here.

From family members using the home Wi-Fi to hundreds of people browsing the Web at the mall, Wi-Fi is a medium meant to be used by many devices at once. But how does it do that? The gist of it is this: at any given point in time, only one device should be transmitting data on a given Wi-Fi channel.

Think of it like walkie-talkies: only one person should be speaking at any moment or nobody gets understood. Since we all share the same air, we also share the same channels, so it's possible that other people's conversations on the same channel are causing interference on your conversations and vice versa. In real life, interference can also come from your appliances, like your microwave.

Every device on a Wi-Fi network waits for the channel to be quiet before they start transmitting data. This is called CSMA/CA. When there are many devices on the channel trying to transmit data, everyone gets a smaller share of the airtime, and the network feels slow because everyone keeps waiting for their turn to speak.

Wired Ethernet networks don't have to worry about this. Modern Ethernet is a full-duplex medium, which means that devices can transmit and receive at the same time. (Wi-Fi, in contrast, is a half-duplex medium.) This is made possible by dedicated electrical connections for transmitting and receiving. Ethernet also doesn't have to worry about interference in most cases, except maybe if you put your Ethernet cable beside a power line or anything with an electromagnetic field.

Of course, not everything should be connected via Ethernet. No one wants to walk around the house with a phone and an Ethernet cable dangling off it. Instead, you should run a cable to everything that doesn't move, like your game console or your TV. Feel free to use Wi-Fi for everything else.

Final thoughts

For most people, the amount of "Mbps" in an Internet service plan determines whether the connection is fast or not. This is good enough in some situations. People get used to buffering on YouTube and Netflix eventually. But this only tells half the story. A truly fast Internet connection has to have both high bandwidth and low latency, especially when the connection is used for real-time applications like gaming.

It's a shame that latency isn't usually a consideration when choosing between ISPs, nor is it something that ISP sales agents are usually equipped to address. It's usually something that a customer finds out later, after the installation is done and paid for. That's why it's important to do your research regarding your choices of ISP and pay attention to the reviews that people share about them.

Being aware of the technicalities of latency, or at least the basics of it, helps you make more informed decisions so that in the end, when you're all settled with your new ISP and ready to queue into a match, you're not left wondering why your ping is so high.