Post inspired by a couple of questions I saw posted on here recently about server selection and the daily posts about desync, stutters, etc.
First, a handful of disclaimers. I am not a network engineer, sysadmin, or even particularly knowledgeable about networking or infrastructure. The guide below is based on trying a bunch of things out, things I've googled, things I've read. My understanding of game-related network traffic comes almost exclusively from my time as a League of Legends player, and the efforts Riot undertook to improve their networking – I highly recommend reading this:
Basically, the genesis of my approach to try and address the issues I was having in Tarkov: hops that drop packets = the worst, jitter (large variation in ping) = bad, more routing hops = more potential for issues. Closer geographic servers may not be the most optimal based on how packets get handled and routed.
The below worked for me to reduce desync, stutters, and ping spikes, but YMMV. I live in the US and have no idea how much any of this will help someone in other regions.
Part 1: Gather Background Info
Before you can start to sniff out what your connection to a server looks like from a routing standpoint, you'll need it's IP address. You can use Wireshark or similar tools, but for a filthy casual like me, that shit looked scary and inaccessible. So I poked around in log files and found that…Tarkov records the IP address of the server you connect to every raid. Easy!
That won't help you though, unless you can isolate a server and match it with an IP address. So to start, select a single server in the launcher and run an online raid. Once you complete the raid, you'll be able to grab the IP address of the server you connected to in your log files. You'll have to exit Tarkov for the log file to be created.
To access your logs:
C:Battlestate GamesEFT (live)Logs
(Or whatever drive you have EFT installed on)
Sort by date modified to get the most recent logs first, open the most recent one up. The specific log file you're looking for is the one that ends in 'application'. The line you're looking for is the one that contains your 'Profileid'. It should look like this:
TRACE-NetworkGameCreate profileStatus: 'Profileid: (redacted by me), Status: Busy, Ip: 220.127.116.11, Port: 17016, Location: bigmap, Sid: 18.104.22.168-17016_PID_24.03.21_04.24.26, GameMode: deathmatch, shortId: MVUL'
The IP is the Ip address of the server you connected to.
Do this for every server you'd like to test. I ran this test for every server that had sub 90 ping in the launcher (~9 servers for me).
Part 2: Test Your Connection
So, now you have a list of servers and their IP addresses to test. If you don't want to download a third party application to test your connection, you can use the tracert command in Windows 10 through the CMD console:
I've also been told you can use the netstat -b command, but again, I'm a pleb and have no idea what I'm doing with that. Here's a link if you'd like to explore it:
I found it better to use a third party application, because tracert seemed limited in how many packets it sent, and netstat looked like greek to me. I downloaded WinMTR for my testing:
WinMTR is pretty easy. Run the application, punch the server IP into the 'host' field, and click 'start'. You'll see every hop your data is taking, packets sent/received, best-average-worst-last ping to each hop. You can also export your results as raw text or HTML to compare.
You should run these tests during the time(s) you normally play, so you can get the best picture of your network routing as it normally happens when you're raiding. I would also suggest doing this test whenever BSG adds new servers (as happened recently) or makes server changes, and once a month or so, as some of your routing may change over time.
Part 3: Conclusion
With data at your disposal now, you can make a decision as to which server or servers you want to use. The server I play on now has 9 hops from my computer to the server – including pushing to my home network, my ISP, then routing out of my city and to the game server. Of all of the servers I tested, this was the second fewest number of hops. More hops = more potential failure points IMO, so fewer hops are desirable. It's also the server that had the smallest # of packet drops during my testing.
Since I did this, my issues with micro-stuttering have all but disappeared and instances of obvious desync are considerably lower. I almost never experience ping spikes. The downside, with only one server selected, is that during off-peak hours my queue times are longer and I've had more 'dead raids' than before.
Some additional notes: Hops that drop packets are going to be your worst enemy. 'Jitter' – large variation in highest/lowest ping, is also pretty bad. For me, my biggest issues were with the interface between my ISP and 'backbone' connections – this is probably pretty common. The closest server to where I live (Los Angeles) was actually one of the worst for me in terms of packets dropped and jitter.
Again, YMMV, and I am not an expert in networking. Feedback is welcome and I'll answer any questions to the best of my ability.