Riot Server Relocation and Ping
While I have no desire to wade into the coast vs. coast pissing contest, I would like to point out a few misconceptions out there (since people seem to be spreading some misinformation on the nature of ping).
-
Ping is not a direct consequence of distance. For example, I rock a 75 ping from NYC to Riot's current West Coast servers and do not have anywhere near top tier internet.
-
Ping is measure of latency (i.e. how long it takes your TCP packet to leave your computer and reach its destination). Ping is often measured in round trip time (i.e. how long it takes a response to reach your computer from the destination after you sent the initial packet). Your bandwidth (or "internet speed") has no bearing on ping*.
-
While distance is certainly an aggravating factor, your packet is either moving at the speed of electricity (over copper) or the speed of light (over fiber). Distance is the least important part in this (barring things like signal degradation which I will go into).
So why do some regions see higher ping and why is does it appear to be correlated to distance?
The TL;DR: Packet routing and congestion.
The long version?
Your packets do not travel from your local computer to Riot's servers in a straight shot. They take a number of "hops" (see your trace route output). Each hop is like getting off an exit of one highway and and merging onto another (this is a rough analogy for how packets are routed, I'm trying to keep this simple). In real world terms, you have to slow down your car, wait for an opening, accelerate, and be on your way. In packet terms, real, measurable time elapses while the networking device processes your packet, manipulates it (such as with IPv4/6 NATs... and yes, while IPv6 technically doesn't require NAT, many providers and companies do it anyway), and puts it on the destination wire when it is your packet's turn to go.
During periods of high congestion, your packet will be queued for some amount of time (or ultimately failed; this is packet loss). If there is a routing issue (such as a temporary circular route due to a human error or line failover), you will see packet loss.
This makes the following interesting things true:
-
I am further than many east coast players, yet my ping is way better (even on Cable based internet with 50 down, 15 up). This is probably because my provider has invested in reliable, high performance networking equipment (and the infrastructure in the NYC metro area is very well developed and funded).
-
Your available bandwidth has no bearing on latency*. Thus, a person with 150MBs down can have worse latency than someone with 10MBs down. Why? Your provider may not have the capacity or utilize backbone infrastructure to handle all its costumers' usage.
-
Location only matters from a physical network perspective; if Riot's server moves reduce the number of hops and/or move you onto a route with higher performance equipment, you will see a decrease in latency in spite of an increase in distance.
-
You have to have hops. There is a max distance a packet can travel before it becomes useless. Switches and Routers act as repeaters and show up in trace route. Actual repeaters do add minuscule amounts of latency and do not show up in your trace route. As such, there may be more "hops" than your realize (though these hidden hops only matter if something is going wrong with the provider).
-
For those who know about this stuff: Things like TCP_NO_DELAY can affect latency. Generally, enabling TCP_NO_DELAY hurts performance as you generate too many small packets (which incurs move overhead for routing). Having this off (which is the default in pretty much every application out there) allows the kernel to buffer packets and send one larger packet, granting increased network efficiency. However, the trade off is you do add delays when you need immediate data. For message oriented architectures and some gaming applications, enabling TCP_NO_DELAY will reduce your latency. Typically, low latency applications will utilize this feature at the cost of network efficiency. I do not know if Riot utilizes TCP_NO_DELAY or not or if they provide a hidden configuration option to enable/disable this in the client.
-
You may be your own worst enemy. Packet processing in your kernel affects latency. If your system is over utilized or you have a poor performing firewall/security service doing (deep) packet inspection, you will get a ton of latency.
* If you saturate your local connection, you will see latency increase due to congestion. This is where "faster" internet comes in (which by the way, isn't really faster, again, speed of electrons/light; higher bandwidth means you can move a fixed amount of data in a shorter amount of time).