FuelRats / RatTracker

The Fuel Rats RatTracker - Getting more fuel on target faster since 3302
http://www.fuelrats.com/
BSD 3-Clause "New" or "Revised" License
10 stars 12 forks source link

Client NAT type detection #28

Closed kenneaal closed 8 years ago

kenneaal commented 8 years ago

The Netlog provides a breakdown of the connection properties of all clients attempting to our session. Using this, we can see what kind of NAT the other player has, and detect possible instancing problems early.

This parsing has to be done in the main netlog parser, looking for RxRoute: lines that contains our client's RunID. After the last IP block, we get four numbers like this: (x,x,x,x). First number: NAT Type Second number: UPNP status Third number: Whether one or more levels of NAT are in use. Fourth number: MTU

The first number is the NAT type. 2 is great, 5 is just as good, and 8 is horribly bad. If the third number is greater than 1, the player is behind multiple NATs, which is VERY bad.

Implement checks in the netlog parser that detect client's NAT type and reports this, especially if the NAT type seems likely to cause instancing problems.

kenneaal commented 8 years ago

Metrics for this is now being logged to AI, and shared with FDev.

[--- Commented from Asana.com

commenter Kenneth Aalberg

---[aa]