NAT Based Home Routers and Battle.net

M

Memnoch

Guest
Most home routers use NAT at some level NAT or Network Address Translation. Because of how NAT works some interactive games and client server applications simply don't work.

A modern NAT gateway must change the Source address on every outgoing packet to be its single public address. It therefore also renumbers the Source Ports to be unique, so that it can keep track of each client connection. The NAT gateway uses a port-mapping table to remember how it renumbered the ports for each client's outgoing packets. The port-mapping table relates the client's real local IP address and source port plus its translated source port number to a destination address and port. The NAT gateway can therefore reverse the process for returning packets and route them back to the correct clients.

When any remote server responds to an NAT client, incoming packets arriving at the NAT gateway will all have the same Destination address, but the destination Port number will be the unique Source Port number that was assigned by the NAT.
The NAT gateway looks in its port mapping table to determine which "real" client address and port number a packet is destined for, and replaces these numbers before passing the packet on to the local client.

When I consider how this relates to Blizzard games played online, I seem to get stuck on the fact that the ports required by Blizzard games thru a proxy of NAT based router will not allow decent connectivity. I have heard of two machines behind the same router being able to play in different games, but not the same game. One of the two machines will drop or never connect.

So I continue to think that the NAT protocol is the problem. I don't think it was ever designed to handle interactive games in the manner that blizzard games work online.

Lets start with your connection. Whatever type connection you use your ISP has either assigned you an IP address or they have a Dynamic Host Configuration Protocol (DHCP) system. DHCP is the more widely used method these days. DHCP is basically an automated method of assigning IP addresses on a network. Most Network configuration menus have some form of DHCP option within the TCP/IP settings.

In our example here involving our NAT router, the router is connected directly to the ISP and our game machines are behind the router. So the router is given the actual IP address by the ISP.

Think of the standard packets coming out of your NIC card going down the line to the router.

The machine boots up, sends out a query during boot up as you specified in your TCP/IP settings. When a client needs to start up TCP/IP operations, it broadcasts a request for IP address information. The DHCP server receives the request, assigns a new address and sends it to the client together with the other required configuration information. This information is acknowledged by the client, and used to set up its configuration. In this example the home router is performing this DHCP task. Other home routers require you to hardcode in the IP addresses. But the resulting configuration is essentially the same. The router has the real IP address.

With this configuration the gaming machines and the router then labels all packets with unique "port numbers". Each IP packet starts with a header containing the source and destination addresses and port numbers.

This combination of numbers completely defines a single TCP/IP connection. The addresses specify the two machines at each end, and the two port numbers ensure that each connection between this pair of machines can be uniquely identified.

“This process involves standards that have been set down by The Internet Engineering Task Force http://www.ietf.org/ a very informative site but also can be difficult to understand. However it remains important as all the standards set in place are clearly defined here. “

Each separate connection is originated from a unique source port number in the client, and all reply packets from the remote server for this connection contain the same number as their destination port, so that the client can relate them back to its correct connection.

In this way, for example, it is possible for a web browser to ask a web server for several images at once and to know how to put all the parts of all the responses back together.

The modern home routers are for the most part a NAT gateway. A device that changes a protocol into another medium or protocol. Home routers use NAT to accomplish this. You could also look at Internet Connection Sharing in Windows 98/2k and see a similar gateway process. Software based yet very effective under Win2k.

A modern NAT router or gateway must change the Source address on every outgoing packet to be its single public IP address (the IP address given by the ISP). So it then renumbers the Source Ports to be unique, so that it can keep track of each client connection. The NAT gateway uses a port-mapping table to remember how it renumbered the ports for each client's outgoing packets. Very similar to a RIP table (Routing Information Protocol), the port-mapping table relates the client's real local IP address and source port plus its translated source port number to a destination address and port. The NAT gateway can then reverse the process for returning packets and route them back to the correct clients.

When any remote address responds to an NAT client, incoming packets arriving at the NAT gateway will all have the same Destination address, but the destination Port number will be the unique Source Port number that was assigned by the NAT.
The NAT gateway looks in its port mapping table to determine which "real" client address and port number a packet is destined for, and replaces these numbers before passing the packet on to the local client.

This process is completely dynamic. When a packet is received from an internal client, NAT looks for the matching source address and port in the port-mapping table. If the entry is not found, a new one is created, and a new mapping port allocated to the client:

1. An incoming packet received on non-NAT port
2. It looks for source address, port in the mapping table
3. If found, replaces source port with previously allocated mapping port
4. If not found, it allocates a new mapping port
5. Replaces source address with NAT address, source port with mapping port

Packets received on the NAT port go thru a reverse translation process.

Many higher-level TCP/IP protocols embed client-addressing information in the packets. For example, during an active FTP transfer the client informs the server of its IP address and port number, and then waits for the server to open a connection to that address. NAT has to monitor these packets and modify them on the fly to replace the client's IP address (which is on the internal network) with the NAT address. Since this changes the length of the packet, the TCP sequence/acknowledge numbers must be modified as well.

When I consider this process (Above) of what NAT is doing to the packets, and what is required to establish a game session Battle.net - I see the a possible issue. Why else would one client be able to connect and play and not the other?

Most protocols and applications can be supported within the NAT but some protocols may require that the clients themselves are made aware of the NAT and that they participate in the address translation process. Or the NAT must be protocol-sensitive so that it can monitor or modify the embedded address or port data.

Because the port-mapping table relates complete connection information - source and destination address and port numbers - it is possible to validate any or all of this information before passing incoming packets back to the client. This checking provides a very effective firewall.

So again, as I look at this issue time and time again as it has been posted frequently here on the Helper.net. I have studied why this happens to so many people who can’t establish two client sessions to the same game over battle.net.

Because is the simplicity of setting up most home routers, I assume the users have done everything correctly in terms of set up. I have owned a few home routers and seen the software used to create filters or map ports. I don’t see this as the issue.

I look at how NAT handles other applications like BattleCom or ICQ and Direct Connect. Certain client server applications will not work at all under NAT. Some of this can be helped with filters that default all packets to one client machine. Thus that machine can join, but not host with these applications. And in any case the second machine is effectively cut off under this configuration.

This equation seems to look the same with Internet Connection Sharing thru Win98/2k as well. The common denominator is NAT.

It breaks down to one simple fact. Battle.net claims to support NAT. And it does as long as only one machine is connecting. But add another instance of the same game thru the same connection and the NAT support no longer exists.

Or, one game session per IP address.

Although I have not tried this method, I often thought that altering the server list on both machine might provide a work around to this issue.

Give one machine a couple of the servers to connect with and give the other machine the others. As long as they are not the same addresses – Two machines would be able to get around the NAT barrier.

A complex problem for those who desire to play behind home routers. And one that seems to be limited to Battle.net. Many people seem to be able to play almost any other game from 2 machines behind a NAT router without issue.


I would be interested to hear if anyone else has had success with any other work arounds to this issue.
 
S

Swilo

Guest
If I was at home on my dad's network I'd try it out on all 4 comps at once, but I can't.
The solution is blizzard needs to update its netcode to properly support multi-client NAT connections.
 

Wargasm

Ultra Cool Member
Reaction score
48
okay we gonna stick this so it won't get lost till we get more info and move it around .
 
A

Arta

Guest
It's been my experience that you can't play HL or it's mods from a NAT network either.

It may be of interest to you that the later clients (IE, Starcraft onwards) send the internal IP address of machine they're on to Battle.net during logon. This IP address is in fact sent in the first packet these games send to Battle.net (SID_AUTH_INFO), so maybe Bnet's support has something to do with that?

I've never tried connecting 2 clients from behind a NAT simultaneously, but i would have though it *should* work :)
 
G

Guest

Guest
I am having this problem. My roomate and I are behind the same router, and we can both play on Battle.net at the same time, just not in the same game.

This is in Starcraft. However, we have NO problems at all when it comes to Warcraft 3 or Diablo 2.

Must just be Starcraft's coding itself?
 
A

Arta

Guest
It would seem so. Just saw this in BTS:


[01:14:02] <Mike_Kr@Lordaeron> Deimos-006@USWest: What is your question, Deimos-006@USWest?
[01:15:32] <Mike_Kr@Lordaeron> Deimos-006@USWest: Routers don't work well with StarCraft and Warcraft II: BNE.
[01:15:50] <Mike_Kr@Lordaeron> Deimos-006@USWest: Your best bet is to lease an additional IP from your Internet Provider.
[01:16:15] <Mike_Kr@Lordaeron> Deimos-006@USWest: Battle.net has trouble sending data for multiple computers to one IP address.
[01:16:46] <Mike_Kr@Lordaeron> Deimos-006@USWest: You need to talk to your ISP about getting another valid/external IP address.
[01:17:14] <Mike_Kr@Lordaeron> Deimos-006@USWest: Warcraft III uses port forwarding, but StarCraft does not.
[01:17:56] <Mike_Kr@Lordaeron> Deimos-006@USWest: I don't think so, Deimos-006.
[01:18:09] <Mike_Kr@Lordaeron> Deimos-006@USWest: Our newer games are designed to work better with routers.
[01:18:30] <Mike_Kr@Lordaeron> Deimos-006@USWest: When StarCraft was released, people didn't share IPs the way they do today.
[01:18:44] <Mike_Kr@Lordaeron> Deimos-006@USWest: Anything else, Deimos-006@USWest?
[01:18:52] <Mike_Kr@Lordaeron> Deimos-006@USWest:You're welcome.
 
N

Newbie101

Guest
Originally posted by Arta
It's been my experience that you can't play HL or it's mods from a NAT network either.

I am actually in a position to try that out at school with my computer gaming club. You can't play at the same server, or not at all? They prolly can't have same CD-keys either, right?
 
S

Swilo

Guest
Half-Life works, but you need unique CD Keys because only one CD Key can log on at a time.
 
A

Arta

Guest
I tried this with Laggy in LA over ICS with his machine as the gateway, and my laptop. We got a duplicate IP error and whoever was connected got booted as soon as the second person joined. We both had our own keys.
 
N

Newbie101

Guest
hmmm, not exactly the setup I have in school, but close enough to make me wonder. Will have to test it out sometime.
 
G

Guest

Guest
Testing of Blizzard games on bnet using a Linksys Router

General setup of home network:

DSL internet access (1 external IP address)
Linksys Router model: BEFSR41 (firmware ver 1.43)
1st comp: NT4 SP6A
2nd comp: 98SE
3rd comp: 98SE

D1: I'd tried getting 2 comp's into the same game (comp 1 creating the game, comp 2 joining) on bnet before but not from my home network (location I was at had Linux as a server and I don't think any type of port forwarding was tried). This method did not work and we ended up playing a LAN game using IPX.

So I tried it at home except I setup port forwarding on the router: 6112 to comp 1 and port 6113 to comp 2. Created a D1 game on bnet from comp 1 then successfully joined with comp 2. woohoo !


SC and WC2: I left the port forwarding on the router the same as it was for D1 - couldn't get comp 2 into the game that comp 1 had made. Received the message: latency to the creator blah-blah-blah.


D2: we'd already had 3 comp's in the same game on bnet months ago without any kind of port forwarding setup on the router (comp 1 created the game, comp's 2 & 3 joined).


WC3: I don't have the game but I've heard visitors to east OTS say they can't get multiple comp's into the same game on bnet (comp 1 creating, comp 2 joining) when using a router (not sure if they tried port forwarding tho).


D1 doesn't involve ladder game play, D2 has a char ladder (altho having multiple comps in the same game but only 1 char actually killing stuff is more of a challenge) while SC and WC3 do have ladder games. Perhaps Blizzard has designed game and/or server coding to disallow the same external IP from creating a game on bnet and joining with another comp from the same external IP ?
 
U

Unregistered

Guest
Hi.. I recently bought satalite internet, and it does not work at all with bnet, how ever it does with most everything else I have.

I know that the technology that brings satalite internet to me is quite bloated and uses some faulty things, anyways I think, but I am almost positive I have seen other satalite users play the same games I have.

So I am asking, what can I do? They have thrown me around looop after loop. One was to try and make a local lan connection, by adding a proxie to 127.0.0.1, and that just made everything screw up.

I am not sure of what is used for satalite internet, but im sure NAT is in there somewhere.

If anyone has ever seen this problem, or seen a player playing battle.net games, please let me know.

I would be really gratefull if you could either give me their account name, or find out how they have gotten around this problem.

I would reallllly realllly like to keep satalite, but if I cant play my games, I dunno if I will be able to.

By the way, internet is my ONLY other option for internet, so dsl wont fix my problem.
 
U

Unregistered

Guest
godamit im anewbie on d1 and i have no freaking clue what to do with my router so i dont know just typ me where to click im 12 so i got no freaking clue what im doing plez help me.e-mail me at [email protected] plez help
 
U

Unregistered

Guest
Although I had Diablo 2 LOD for a long time I just recently started using Battel.net. At first things seemed to be going well. But over the last couple weeks I find myself getting disconnected fairly often. I have even seen the Realm down message about once a day. I have a cable modem and a small 4 port router. I have two computers on my internal network but only one is playing at a time. After reading the postings on this thread I am wondering can my network setup be what is causing my problems? Assuming my router uses the NAT protocal, which I have not had a chance to check yet, is it possible that packets are getting lost since they have to be relabeled by my router?
 
U

Unregistered

Guest
Originally posted by Unregistered
Although I had Diablo 2 LOD for a long time I just recently started using Battel.net. At first things seemed to be going well. But over the last couple weeks I find myself getting disconnected fairly often. I have even seen the Realm down message about once a day. I have a cable modem and a small 4 port router. I have two computers on my internal network but only one is playing at a time. After reading the postings on this thread I am wondering can my network setup be what is causing my problems? Assuming my router uses the NAT protocal, which I have not had a chance to check yet, is it possible that packets are getting lost since they have to be relabeled by my router?
hey sup guys? i need some help i don't know y i'm getting kick out from b.net all the time when i play at my house. but when i play at my g/f house i don't get kick out at all. we use the same isp. can anyone help me?
 

Kittie_Killer

New Member
Reaction score
0
Originally posted by Unregistered
Hi.. I recently bought satalite internet, and it does not work at all with bnet, how ever it does with most everything else I have.

I know that the technology that brings satalite internet to me is quite bloated and uses some faulty things, anyways I think, but I am almost positive I have seen other satalite users play the same games I have.

So I am asking, what can I do? They have thrown me around looop after loop. One was to try and make a local lan connection, by adding a proxie to 127.0.0.1, and that just made everything screw up.

I am not sure of what is used for satalite internet, but im sure NAT is in there somewhere.

Unless your home network (aka: LAN (local area network)) has a router (hardware based NAT) or multiple ethernet cards in a single comp with the other comp(s) connected either directly or thru a hub using a program such as Sygate (software based NAT) then you don't have NAT.

If anyone has ever seen this problem, or seen a player playing battle.net games, please let me know.

I would be really gratefull if you could either give me their account name, or find out how they have gotten around this problem.

I would reallllly realllly like to keep satalite, but if I cant play my games, I dunno if I will be able to.

By the way, internet is my ONLY other option for internet, so dsl wont fix my problem.

satelite internet connection may be fine for web surfing and emailing but I've heard reports that it totally sucks for gaming.

Takes too long for the packets to travel thus timing you out during gameplay.

Have you considered moving to an area with decent net connection? :)
 

Kittie_Killer

New Member
Reaction score
0
Originally posted by Unregistered
Although I had Diablo 2 LOD for a long time I just recently started using Battel.net. At first things seemed to be going well. But over the last couple weeks I find myself getting disconnected fairly often. I have even seen the Realm down message about once a day. I have a cable modem and a small 4 port router. I have two computers on my internal network but only one is playing at a time. After reading the postings on this thread I am wondering can my network setup be what is causing my problems? Assuming my router uses the NAT protocal, which I have not had a chance to check yet, is it possible that packets are getting lost since they have to be relabeled by my router?

Ok, first things first: who's the manufacturer of the router and what model number is it ? Have you looked into updating the firmware ?

2nd: the speed of cable internet access is determined by how many other users there are in your neighbourhood: lots of users can equal slower internet speed.

3rd: it's possible that there's a router out between your net connection and the bnet servers and you're taking the scenic route in which results in a delay (mild or extreme delay depends on the how the routing tables are setup at by your ISP).

tell us what operating system you're using so we can tell you how to run a tracert to the bnet servers in order to test your connection.
 
U

Unregistered

Guest
It would be most helpful if people claiming success with Diablo II battle.net games could specify whether they're talking about realms play or open battle.net.

So far, realms play seems impossible for me (SMC Barricade 7008br) and everyone claiming success with different routers has failed to be specific about their setup and what kind of battle.net games they are playing.
 
U

Unregistered

Guest
Being a recently unemployed senior network engineer, i have turned to starcraft to the kill the time. I have problems using two of my computers at once. I have read a lot of this and if the man at Blizzard is reading this please help me out.

I assume this works with lots of bandwidth. But i only have a modem.....

I can play a game with my computers 1 vs 1 and it works fine, on battlenet, add a third and it sucks, lags, people won't play. WHY?


Two machines should work fine under nat only/allow all outbound conditions. The source port of your machines will be unique, this is how 1000 people all surf the internet at once. To receive packets, or create games, one open/forward incoming port 6112, and this will usually only allow ONE PC to connect. (unless you are blessed with multiple ones, if you have 5 IPs, you could create 5 games....)
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top