You can also view this page in the following Languages :
english%20flag%20langline.pngspanish%20lang%20flag.pngTurkish%20flag%20lang.png

NAT Traversal


NAT Traversal removes the requirement users to manually forward ports (though it might be recommended in rare circumstances) and allows multiple LAN players to easily play in the same game room.

For more help it's recommend you visit the NAT Traversal Forum.

Contents:


Architectural Diagram



A high level architectural diagram is below:
natarch.png

Justification for NAT Traversal

Without NAT traversal the game itself tries to establish connections to all remote players after it is launched. Unfortunately, these days there are a lot of routers (NATs) in use. This causes troubles for games because instead of reaching the remote computer the data ends up getting stuck in the router. To workaround this, users typically have to forward ports to their computer. This causes trouble because (1) it's challenging to port forward for some users (2) some users don't have control over their routers (e.g.: at a wifi hotspot). The path used by the game is the NAT Traversal Off route shown above.

How NAT Traversal works

With NAT Traversal, there are three paths for the game data to go:
  1. NAT Direct Tunnel - This is a direct path from one user to another (peer-to-peer). It's like the non-NAT Traversal path, however, the Voobly server is used only when the connection is established. The server is used to able to setup a path for the two computers to communicate without first being able to talk to each other. Once the connection is established the server gets out of the way. This works for most users, however, those with symmetric NATs will still have to manually port forward (they break the technique used to establish the connection)
  2. Fast Proxy Server - This is a dedicated server for relaying game traffic that runs on one of the Voobly central servers. It's only used when a direct tunnel cannot be established. Because it's not direct using this path will increase the time it takes to delay packets and increase the players pings who use it.
  3. Slow Proxy Server - This proxy server also relays game traffic, however, unlike the fast proxy server it reuses the network connection used for the lobby / game room. Like, fast proxy in-game latency is increased, however, with the slow proxy server it's increased even more as the lobby was never designed for low latency communication, whereas, the fast proxy server was.

When NAT traversal is enabled connections are established in the game room. This is unlike when NAT traversal is off and the game establishes connections after the game is launched. When a user joins the game room a negotiation happens to determine the fastest way those computers can communication. In order of priority they are direct tunnel (peer-to-peer), fast proxy server, and then finally the slow proxy server as a last resort.

Network Diagnostic Tool


When you are experiencing problems it is recommended you run the network diagnostic tool. For more help it's recommend you visit the NAT Traversal Forum. Please copy and paste the network diagnostic log when you create a thread. If nothing in the diagnostic tool helps you can also read the common problems section.

You can find in the Lobby window, by clicking "Options" -> "Network Diagnostics", this is shown in the image below:

netdiagnostics.png

All Pass

Test Result: All Pass
Network Health: All tests passed!
Recommended Action: None
Details: All tests passed.

Not Forwarded

Test Result: Not Forwarded
Network Health: Warnings found but probably OK
Recommended Action: if you experience networking problems such fast proxy then [You must login to view link] is recommended.
Details: You were able to receive traffic on the same port from all the servers, however, you were not able to receive data on the port configured in the Voobly client settings. It is recommended you forward this port in your router to the PC you use to play.

Your router auto-assigned a different port from the one you used for your computer. The traffic was still able to be relayed by use of a routing table.
netdiagrouting.png

Symmetric NAT

Test Result: Symmetric NAT
Network Health: Poor
Recommended Action: [You must login to view link] recommended or switch routers
Details: Your router assigned different public ports to all the test servers this will make it hard for users to directly connect to you. You will likely see a large number of fast proxies.

Your router auto-assigned a different port from the one you used for your computer. Unfortunately, it is assigning each server a different port.
netdiagrouting.png

Connection failure

Test Result: Connection failure
Network Health: Failure
Recommended Action: Turn off firewall, disable firewall, or uninstall firewall, [You must login to view link], if none of that works reinstall your operation system or try to directly connect to the internet without a router.
Details: Connections to one or all of the servers failed

Is a Direct Connection Possible?

Every connection between two players is different. The following table shows which combinations should connect and which will use a fast proxy:

cguocwuwbz8b9a9o343y9pzys2jib50j

Port Forwarding


NAT traversal allows many gamers to play without forwarding ports, however, some users still need to forward a port because of their ISP or router.

With NAT you only need to forward a single UDP port, the default port is 16000 (you can change in NAT Traversal Settings). You do NOT need the directplay ports 2300-2400 and 47624.

Some guides on port forwarding are at (remember to correct the guide into using Voobly port instead of Age of Empires or Directplay ports):

If these still do not work, other things to try are:

Other Problems with NAT



Trouble with multiple players on the same network

Try giving each player a different port setting the NAT traversal options.

Settings


General NAT Traversal Settings

The latest two check boxes shouldn't be checked other than for debug.

natt.png

Game Room settings

q7jwfy8aqci9jhr4baxuujgk9gfxtbkh

Game Browser

The game rooms with the white satellites have NAT traversal enabled:
6mzeawf3bjbu3uor5bovqqgf0ah7m4rq

Debugging


NAT Log

If you have trouble connecting directly to specific users (you get fast proxy) even after the network diagnostic tool is marked as passing, please get the Debug Log (Local) and Debug Log (Remote) and post them in the NAT Traversal Forum.

To get the NAT log, right click on the player in the game list, then select "NAT" -> "Debug Log (Local)" or "Debug Log (Remote)" .

To debug issues, both logs are needed. In some cases the remote log feature won't work if the network connections are completely broken, and in that case both users should post their local logs.

Viewing the Log


To get the NAT log, right click on the player in the game list, then select "NAT" -> "Debug Log (Local)" or "Debug Log (Remote)" . The log will be printing out into the game room.

nhp8x747s2v2shdn6z0viak3md0c9e9m

A log window will popup to display the log:

debuglog.png

Understanding the Debug Log

The following table below will explain some of the fields from the table in the log:

natlogdesc.png

Host your own proxy server


Most users should be able to directly connect, however, some users with Symmetric NAT do not have the ability to port forward (e.g.: they might be connecting from a University). In some of these cases, this users will frequently need a proxy connection.

Voobly provides a proxy server, called fast proxy, which is located in the USA. While fast proxy works well for those users located near to it geographically, for users across the world it can have a significant impact on latency as the data would first go from, e.g.: China (user1) to USA back to China (user2).

Voobly now provides the option for users to host their own proxy server to allow other users to connect through them to play. This is similar to the concept of virtual private networks (VPNs) or Hamachi. These user hosted proxy servers are referred to as "user proxy" in the remainder of this guide.

The diagram below shows the difference in distance data would travel between the different connection types. Clearly, a user proxy server can be better than fast proxy if the user is not in the USA and the user proxy is located close to the user using it.

fqo874s8yw7rwoiivq3vzeg04si32vro

User Proxy Setup Guide

Instructions for Proxy Host

Instructions for Player

In NAT Traversal Settings make the following changes:

To test the proxy server connection you can disable direct connections and play some test games. Re-enable direct connections before playing normal games.

Public Proxies

Are you willing to let users connect through your proxy? Let us know! We're looking for some stable proxies in key geographic locations such as China and India.

Voobly NAT Updates

  1. Network Diagnostic Tool Released
  2. NAT Traversal 2.0 - Improved NAT Traversal
  3. NAT- User Proxy Feature


 
2 User(s) are reading this document (in the past 30 minutes)
0 members, 2 guests

What's popular right now: