Reload this page using its associated frames

Is proper U-bend forwarding required at all to play TA?

Your router only needs to implement a proper U-bend forwarding behavior if the following conditions are to be true:
  • You don't want to/can't use Universal Plug And Play (which in combination with an up to date DirectX would eliminate the need for U-bend fowarding functionalities).
  • You want to get more than one TA computer from behind a router LAN into the same game hosted on a Internet game service.

How does ubendcheck test the router?

ubendcheck tests the router's U-bend forwarding implementation by a very simple approach:
On a LAN computer located behind the router one instance of the program is started in server mode and another one in client mode. The two program instances make the end points of the U-bend. The test itself is conducted as follows: The client instance sends data to the router's WAN IP, directed to a port [p1]for which a forwarding rule exists that points back to the LAN IP of the computer that runs the server instance. It's the task of the server incarnation to wait on said port for connection requests. If U-bend forwarding is implemented properly by the router then the data sent by the client instance should be redirected to the server incarnation of ubendcheck. Upon receive of the test data the server instance logs the source IP and source port of the supposed sender and sends that information back to the entity indentified by the current source IP:port values in the IP header of the initial TCP connection packet/UDP datagram packet.

    nw.nw.nw.nw - WAN IP address of the router
    cl.cl.cl.cl - LAN IP address of the computer running the ubendcheck instances

    [p1] listen port bound by ubendcheck server instance
    [p2] port locally bound by ubendcheck client instance 


    +------------------------------------------------------------------------------------+.....................
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                       port forwarding rule for [p1]                                |
    |        ===================================================================o        | router WAN interface
    |        A                                                                  |        |
    |        |                                                                  |        |
    |        |                                                                  |        |
    |        |                   port forwarding rule for [p2]                  |        |
    |        |                   ===o=========================                  |        |     
    |        |                      |                    A                      |        |
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    +--------|----------------------|--------------------|----------------------|--------+.....................
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        | router LAN interface
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    +--------|----------------------|--------------------|----------------------|--------+.....................
             |                      |                    |                      |
             |                      |                    |                      |
             |                      |                    |                      |
             |                                           |                    
             |         target: cl.cl.cl.cl:[p2]          |           target: cl.cl.cl.cl:[p1] 
             |         source: nw.nw.nw.nw:[p1]          |           source: nw.nw.nw.nw:[p2]
             |                                           |                     
             |                      |                    |                      |
             |                      |                    |                      |
             |                      |                    |                      |
                                    |                                           |
  target: nw.nw.nw.nw:[p1]          |          target: nw.nw.nw.nw:[p2]         |
  source: cl.cl.cl.cl:[p2]          |          source: cl.cl.cl.cl:[p1]         |
                                    |                                           |
             |                      |                    |                      |
             |                      |                    |                      |
             |                      |                    |                      |
    +--------|----------------------|--------------------|----------------------|--------+
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    |        |                      V                    |                      V        |
    |    +---o--------------------------+            +---o--------------------------+    |
    |    |                              |            |                              |    |
    |    |  ubendcheck client instance  |            |  ubendcheck server instance  |    |
    |    |                              |            |                              |    | 
    |    +------------------------------+            +------------------------------+    |
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                                     LAN Computer                                   |
    |                                                                                    |
    |                                                                                    |
    +------------------------------------------------------------------------------------+

Note that the graphic above describes an optimal U-bend forwarding environment. Depending on the router implementation and the forwarding rules you have setup things might look a bit dfifferent. For example, some routers might be able to provide an automatically generated reply path for the data sent back by the server instance based on the path the inital request took thru the WAN interface. In case of an implicitly created reply path the router might be using arbitrarly picked port numbers when it comes to change the source information in IP headers before reinjecting network packets back into the LAN.
So removing the port forwarding rule for [p2] might change things as showed below:

    nw.nw.nw.nw - WAN IP address of the router 
    cl.cl.cl.cl - LAN IP address of the computer running the ubendcheck instances

    [p1] listen port bound by ubendcheck server instance
    [p2] port locally bound by ubendcheck client instance 
    [pA] arbitrarily picked port 


    +------------------------------------------------------------------------------------+.....................
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                       port forwarding rule for [p1]                                |
    |        ===================================================================o        | router WAN interface
    |        A                                                                  |        |
    |        |                                                                  |        |
    |        |                                                                  |        |
    |        |             implicitly generated reply path for [p1]             |        |
    |        |             =========o==============================             |        |     
    |        |                      |                    A                      |        |
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    +--------|----------------------|--------------------|----------------------|--------+.....................
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        | router LAN interface
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    +--------|----------------------|--------------------|----------------------|--------+.....................
             |                      |                    |                      |
             |                      |                    |                      |
             |                      |                    |                      |
             |                                           |                    
             |         target: cl.cl.cl.cl:[p2]          |           target: cl.cl.cl.cl:[p1] 
             |         source: nw.nw.nw.nw:[p1]          |           source: nw.nw.nw.nw:[pA]
             |                                           |                     
             |                      |                    |                      |
             |                      |                    |                      |
             |                      |                    |                      |
                                    |                                           |
  target: nw.nw.nw.nw:[p1]          |          target: nw.nw.nw.nw:[pA]         |
  source: cl.cl.cl.cl:[p2]          |          source: cl.cl.cl.cl:[p1]         |
                                    |                                           |
             |                      |                    |                      |
             |                      |                    |                      |
             |                      |                    |                      |
    +--------|----------------------|--------------------|----------------------|--------+
    |        |                      |                    |                      |        |
    |        |                      |                    |                      |        |
    |        |                      V                    |                      V        |
    |    +---o--------------------------+            +---o--------------------------+    |
    |    |                              |            |                              |    |
    |    |  ubendcheck client instance  |            |  ubendcheck server instance  |    |
    |    |                              |            |                              |    | 
    |    +------------------------------+            +------------------------------+    |
    |                                                                                    |
    |                                                                                    |
    |                                                                                    |
    |                                     LAN Computer                                   |
    |                                                                                    |
    |                                                                                    |
    +------------------------------------------------------------------------------------+

If you had already problems to understand anything up to here then you have very likely approached the whole router issue from the wrong end and should start over with the basics.

The test process in detail

Important

The folder names, port numbers and IP addresses in the following screen shots are only examples. Also, deploying and executing the tool ubendcheck will require at least some basic knowledge about the Windows Command Interpreter.
For the example shown in the screen shots below let's assume the following environment:
  • The designated TA host computer in the LAN runs under IP 192.168.0.2.
  • The router's WAN (Internet) IP is 84.163.92.234.
  • In the routers's configuration the following port forwarding rules have been set up:

    11111 (TCP/UDP) ----> 192.168.0.2 ([p1])
    11112 (TCP/UDP) ----> 192.168.0.2 ([p2])

  1. Deploy ubendcheck on the designated LAN computer

    Download ubendcheck.exe and copy the file as it is into a folder of your choice.
    People who fear that the binary might be infested with a kind of backdoor, trojan or other evil stuff may prefer to download the ubendcheck sources instead in order to compile their own version of the program. The project file in the source zip file was generated using Microsoft's Visual C++ 6.0 IDE.
  2. Check your router's configuration

    Make sure that the required forwarding rules for [p1] and [p2] exist and point to the LAN computer's IP you gonna run ubendchecks on.
  3. Figure out the router's WAN (Internet) IP

    Most of nowadays routers sport a web server interface that allows to display the its status information by using an Internet browser of your choice. The WAN IP currently assigned to the router by the ISP can usually be found on those status pages.
  4. Start ubendcheck in server mode on the LAN computer

    On the designated LAN computer open a Command Interpreter window, navigate to the folder where ubendcheck.exe resides and issue the following command:

    ubendcheck -s cl.cl.cl.cl [p1]

    Considering our example data the command line would look like this:

    ubendcheck -s 192.168.0.2 11111

    If everything went right the output in the Command Interpreter window should look like this:

    If a connection could be established between ubendcheck's client and server incarnation then the server part will wait for futher connection attempts until you terminate the program by closing the Command Interpreter window, hitting CTRL-C or CTRL-SYS:
  5. Start ubendcheck in client mode on the LAN computer

    Open a second Command Interpreter window, navigate into the folder where ubendcheck.exe resides and issue the following command:

    ubendcheck -c cl.cl.cl.cl [p2] nw.nw.nw.nw [p1]

    In the particular environment I described above the command would look like this:

    ubendcheck -c 192.168.0.2 11112 84.163.92.234 11111

  6. Interpreting the test results

    Depending on how your router actually implements U-bend forwarding the output of ubendcheck will look different. As a rule of thumb the following applies: Lines starting with (+) indicate a successfully completed test while lines starting with (-) indicate a failed test. Thus a perfect U-bend forwarding implementation will only sport (+) lines.
    Below follow output examples for some quite distinct implementation scenarios:

    1. The router implements a flawless variant of U-bend forwarding by not only reinjecting packets originating from the LAN and directed to its WAN (Internet) IP back into the LAN (done by replacing the target IP address in the packet as indicated by port forwarding rules) but by also overwriting the sender's original source IP in such packets with its own WAN (Internet) IP:

      If the test tool produces a result as shown above then your router should support running any kind of multiple TA computer mix in the LAN: Both scenarios, all TA clients only or a mix of TA clients and the TA host, should work.
      To get a real game going you certainly need to pin the LAN TA server and the LAN TA clients on fixed DirectPlay ports as well. Details related to that issue are explained in more detail in the router section.
    2. The router implements a faulty variant of U-bend forwarding by really forwarding packets for the TCP protocol but just bouncing UDP packets back to the original sender (Note that I had to plug in a differnt router to produce this result and thus the WAN IP does differ from the one in the screen shot before):

      The funny thing about this particular router is that the crazy firmware programmers actually took the effort to change the source IP and source port information in the bounced packet so it looks as if it was a reply from the actually targeted server instance which it's not.
      In any case you'll get two ta instances into the same game from behind such a router (because the TCP traffic forwarding works as supposed to) but in battleroom the two instances will probably show a zero ping for each other. Once you start the game they would sooner or later get a drop screen for each other (because the UDP traffic isn't getting thru).
    3. The last screen shot shows the program output for the case that the router implements no U-bend forwarding for whatsoever but just drops packets originating from the LAN and directed to its WAN (Internet) IP:

      With such a router you shouldn't be able to get more than a single ta instance from behind the router into the same Internet game.
    Note that a test failure might not only be caused by the router's U-bend forwarding implementation. Other reasons could cause a test to fail as well so you should make absolutely sure that none of them applies. Below follows a list with alternative resons for a test failure:

    • You may have set up port forwarding in the router's configuration improperly. Double check that the port forwarding rules exist and point to the LAN IP of the computer you run ubendcheck's server incarnation on.
    • A firewall may block the traffic on the forwarded ports anywhere in between the LAN computer and the router's LAN interface. Make sure that any firewall is open for TCP connection requests and UDP data traffic on the ports [p1] and [p2].
    • You may have used the wrong address for the router's WAN IP. Make sure that the source you took this information from is correct. Some NAT solutions' status displays can be a bit confusing if you don't know exactly what you are looking for.
    • You made a typo when you entered the ubendcheck command line into one of the Command Interpreter windows. Double check the port number and/or the router's WAN IP you entered before you issue the commands.

Conclusions

If your router is a hardware based solution (as in cable/DSL modem router hybrid or stand alone DSL router) and lacks the desired level of U-bend forwarding support then you should first check whether there is a firmware update available. If you are lucky then your problem will be fixed after having patched the firmware with an up to date version.
If the router still fails to provide proper U-bend forwarding after the firmware update than you have to live with the fact that the developers who created its firmware did screw things up a bit.
Also, if your router supports UPnP then this is still a fallback option you can pick instead trying to setup everything manually. Not a preferred option due to the security risks it introduceds to the LAN but nevertheless an option.

Page last updated 2006/11/18 by tcbw@tcbw.net