PDA

View Full Version : SC giving me a problem with a network




Bobaroo
07-27-2001, 03:14 PM
My friend got a linksys cable router and can't play sc games with the other computer when they are both on B.net. When a game is created on one comp and you try to join that game with the other comp it says that it is to latency is to high. Then when we join a game together it lags horribly until one of us quit. Is there anything that has to be set up or done to let the two computers play together? I tried to help him and we are now both very confused.




TotalRecall
07-27-2001, 10:55 PM
I've heard of problems like this before, something about the splitting of the packets. Canis Lupus has this router, and i'm pretty sure his computers can play together.

Maybe he'll have some suggestions...

Bobaroo
07-29-2001, 03:01 PM
i heard that u can't use the same IP address on B.net, but i dunno if that is true.

TotalRecall
07-29-2001, 07:36 PM
Like I said, it's weird...confusing. I use a hub setup with 2 IPs, and have no problem.

WuChowLee
07-30-2001, 10:07 AM
I got the same problem. tell me if u find out

Bobaroo
07-30-2001, 10:28 AM
what type of hub do u use that u get 2 ip's? does it cost more for the extra ip?

Kpoz
07-31-2001, 03:33 PM
I have this same exact problem as well. I hope someone provides a concrete answer. I have been looking around and haven't found any decent help.

Canis Lupus
07-31-2001, 08:13 PM
Hmmm, weird indeed ... I have the LinkSys Cable/DSL Router, and me and my brother could play Battle.net games together just fine... of course, everytime I did it, I needed to enable the DMZ Host feature in my router to isolate one of the PCs from the firewall, and let the other one stay in, coz I suspected that the built-in passive firewall MAY cause some lagging (although I have never tried it yet with both of them behind the passive firewall).

We played StarCraft/BroodWar with not much problems. I think Battle.Net supports NAT routing, so a single IP address "shouldn't" be a problem (I say 'shouldn't' coz I'm not so sure myself). Of course, Linksys assigns internal IP addresses to each computer, so it may or may not contribute to the problem...

As I said, it's weird. When me and Arta were playing CounterStrike in my apartment and we were both plugged into the router, we couldn't join the same game (then again, CS probably just supports one IP address per player anyway). I suggest trying out the DMZ Host and isolate one of the computers to see if it works... if it doesn't, then maybe someone else has other suggestions...

Keep us posted...

Bobaroo
08-01-2001, 10:54 AM
how do u isolate one computer and use the DMZ host?

Canis Lupus
08-01-2001, 11:09 AM
Your Linksys router manual should have the directions on how to do that... or you can peruse the online user guides (just choose your router's model number from the list):

http://www.linksys.com/products/userguide.asp

It's in PDF format, so you may need to download Adobe Acrobat Reader (http://www.adobe.com/products/acrobat/readstep.html) if you don't have it yet...

Kpoz
08-01-2001, 04:06 PM
Thanks for the reply. I did try the DMZ Host and then the two computers were able to join without that latency error. However, when both of us attempted to join a 2vs2 game(for example) the lag in the game was unbearable. This happened in any game we joined that had more than just the two of us. Hmmm. Maybe there is nothing to be done. I'll keep watching the thread for other possible suggestions which don't involve getting another IP address. Thanks.

-Memnoch-
08-01-2001, 07:52 PM
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 machine will drop or never connect.

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

Aside from simple bandwith issues, I would point the finger at NAT.

Each client has an idle time-out associated with it. Whenever new traffic is received for a client, its time-out is reset. When the time-out expires, the client is removed from the table. This ensures that the table is kept to a reasonable size. The length of the time-out varies, but taking into account traffic variations on the Internet should not go below 2-3 minutes. Most NAT implementations can also track TCP clients on a per-connection basis and remove them from the table as soon as the connection is closed. This is not possible for UDP traffic since it is not connection based.

Think about this last statment: "
This is not possible for UDP traffic since it is not connection based. "


To me that's a problem here. One client is established and the other is not. Or it times out.


Solution: Get another IP address and a hub.

TotalRecall
08-01-2001, 10:57 PM
I use a small D-Link 5 port 10/100 hub with my cable modem plugged into the uplink port. From there, both computers connect to the hub.

A 10/100 mbps hub is not totally necessary, and a 10mbps hub will suffice since that is the operating speed of the data stream between the computer and cable modem. The 100mbps is nice for LAN file transfers, though. If you opt for the higher 100mbps speed, make sure you buy a hub that will auto-toggle between 10-100mpbs.

Most ISPs charge for an additional IP, although some do allow for more than 1 for no extra fee. You'll need to contact them for this information, or it may be on their website.

Mem, you're gonna have to explain this UPD/TCP stuff to me...i'm lost. :)

-Memnoch-
08-02-2001, 01:33 AM
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 task.

With this IP address all client computers then label 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. 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, 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 mapping table as 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 and 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.

Nfested
08-05-2001, 01:06 PM
Wow I totally did not understand that.

I have the same problem as WuChowLee. Help us out plz.

TotalRecall
08-05-2001, 11:29 PM
Well, there really is no solution. As Mem explained, it's a problem with the NAT data tables.

An additional IP is basically your only alternative.