How would an IPV4 server (game / NetCode optimized for IPV4) affect player experience in region using IPV6?

DarkSideA8

Gawd
Joined
Apr 13, 2005
Messages
990
Ran into a new one for me; people complaining that their game is experiencing desync and lag due to the developer's use of IPV4 netcode when many players are in regions where IPV6 is the standard.

I've never heard of this as a problem - but it's talked about on several other (gaming) forums.

Can anyone explain this?





Hoping this is the correct subforum for this question.
 
Not something I'm personally familiar with, but my guess is that the NAT required for IPv6 hosts to reach an IPv4 server is introducing issues. Reminds me a bit of the Internet ~20-25 years ago, when IPv4 NAT (or more precisely, port-address translation) started to become prevalent.

The solution is simple and obvious: Any half-competent dev should be capable of enabling IPv6 for their services, and really should have done so when it was first brought up. I can't blame the players for bitching them out.
 
IPv6 isn’t that simple, it’s not like checking a box.

Realistically it means all devices don’t need NAT.
 
IPv6 isn’t that simple, it’s not like checking a box.

It can be; I'm working on adding IPv6 to something that should have had it already, and all I had to do for the server was switch from listentening on 0.0.0.0 to listening on ::. Otoh, there's more work on setting the server's firewalls and cloudy BS, and then the real work is clients get the IP to these servers from a differenr service, and that interface only has room for one IP, but now I need to give two, so that's a small change that needs to be passed through all the layers. Stuff like that is simple, but time consuming.

For game netcode, you might have real problems if the longer addresses for ipv6 mean things don't fit into regular packets anymore (hopefully things aren't that tight, but it's possible), and if there was any peer to peer, that gets messy with mixed v4 and v6, but then v4 peer to peer is messy with NAT anyway, so you're probably running some sort of packet proxy for some traffic anyway, and you'll still need that in v6 because some networks have restrictive v6 firewalls too.

Anyway, if there's a lot of users from India, there's a very popular ISP (Jio) that is very IPv6 first; they have very limited IPv4 resources and their Carrier Grade NAT (CGNAT) can be really rough to work through at times. (Several years ago, the NAT timeout on their NAT boxes was something like 10 seconds for a few weeks, and timed out connections didn't get closed or TCP RST on data, so a ton of zombie connections... ugh. They put it back to a reasonable setting after, but they probably don't have anything doing connection tracking on v6, so it's not going to fail in the same way)
 
I'm kinda wondering if there is anything a player can do on their end when they know/suspect that the game was written originally with IPv4 as the standard. (That's local in the country where the game was developed - but the client/player (and server?) is in a place where IPv6 is the norm).

This is all very new to me; please excuse any ignorance. I'm presuming from what I read that the dev team's netcode is functional for players in their home country... but trying to figure out if there is any merit to the complaints I read that the cause of desync and lag is IPv4 netcode when presumably a player from an IPv6 country connects to a server in the same country.

Fundamentally, I'd like to know whether there is anything a player can do on their end, of if it is something that, if true, must be done on the Dev side?
 
Yeah, a player can play a different game? ;)

If it's really a v4/v6 problem, getting a different internwr connection where you have a real v4 address might help, but if the other players are still having trouble, you get to be a LPB and everyone is warping around doesn't help you much does it? Alternatively, you could try to get matched in other regions, but then you're a High Ping Bastard instead.

You could also take and analyze pcaps during the game and see if there's anything there, but that's tricky when you've got all information, will be harder when you don't have client or server source code.
 
Back
Top