Extreme lag

Unplayable lag on all the EU servers today at approximately 10:15 PM UTC.

I took a packet capture today… here is an excerpt of what I’m seeing:

There seems to be a whole lot of individual requests, maybe those are the HTTP requests you were talking about.

I believe the constant connection I see would be the websocket then (I’m not able to dissect the packets because of encryption and I don’t have to tools to capture the secrets). On this connection I am seeing packet loss with the server.

In this case I believe it’s Gloviathosa, is trying to send me some data. The flow is from Glovia to my PC.

I see out of order segments, which cause me to send duplicate acks to enable TCP fast retransmissions. This means a packet was lost in transit from Gloviathosa to me. I do eventually receive the missing packet(s) (in many cases as fast as possible… the very next packet). The missing packets are marked as retransmissions meaning packets are not getting delayed. They are getting dropped.

This is causing my RTT to spike though, which is especially bad because the server is located far away in Germany (I’m in the states).

So my RTT Is on average very low ~168ms (fast as heck for Europe). Anyway it looks like 1 packet drop is causing a delay up to 510 ms. I guess that’s not a great latency, but honestly… it seems the game network code should be able to handle that. It does explain why the “unplayable connection” screen is showing.

Does something special happen when it’s deemed unplayable? What I’m observing is the game is warping me back to a previous position (maybe due to some code related to “unplayable connection” it’s probably the last acknowledged position from the server). And then I’m warped forward to where the server “thinks I am” (which is where my client was before).

image

Honestly if #3 (the client moving me backwards) never happened, the problem would be resolved. My connection is otherwise fine. Dropping 1 packet in TCP is a pretty normal situation. It’s the mechanism used for flow control.

Another option might be, don’t let the client snap the position around during “unplayable connection”. Even if my player was forced to stand still in that scenario it would feel much better than warping too a fro.

1 Like