Staredit Network > Forums > Technology & Computers > Topic: My friend suddenly lags
My friend suddenly lags
Jun 7 2010, 4:30 am
By: Ryan  

Jun 7 2010, 4:30 am Ryan Post #1



Hey.

Yesterday, my friend and I played Starcraft with full houses without any problems. Today, my friend will lag if there're more players than just him and me. As far as our knowledge goes, nothing has been changed that could affect his connection to other players except perhaps for one thing.

My friend runs Windows Vista, and tried setting it so that Starcraft would run as administrator. Run program as administrator was greyed out under Compatability, but under Shortcut\Advanced he checked "Run program as administrator". When he started lagging, he unchecked this, but he still lags when there're more players than him and me.

He's currently going to try and disable his firewall settings, but if that doesn't help, I'll need your guys' help.

Edit: Disabling his firewall did nothing. I've figured out that if I leave a game when he's in it, it'll drop all the players in the game. This shows that our connections are incompatible with each other when there're more players than just us, but I don't know why this issue has suddenly arisen. We were playing just fine yesterday. Any help would be appreciated.

Thanks in advance,



Ryan.


Post has been edited 1 time(s), last time on Jun 7 2010, 4:46 am by Ryan.



None.

Jun 7 2010, 8:38 am NudeRaider Post #2

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

This phenomenon is widely know as IP conflict. Whether or not it has actually something to do with IPs is currently unknown. My guess is it's an incompatibility with newer revision of the Internet protocol (which would explain the name).
We had a large topic about this issue months ago but it yielded no result whatsoever. Basically everyone is aware, but clueless.
However some people have reported that resetting the Internet connection and relogging into battle.net solves this. At least for a while. But that's far from reliable.

What we do know is that it prevents 2 players from playing the same game when there's 3 or more players total.
When one of them leaves, the game is fine and they both don't lag if they join separate games.
A good indication of a IP conflict in the lobby is when one of the players is seen with 2 green bars. But be careful though, as 2 green bar doesn't always mean IP conflict.
The slots are responding fine (which they don't for classic laggers) and in-game the speed is extremely slow, but constant.

The described symptoms are not by much, but still noticeably different from classic laggers so it might help calm tension to tell someone to leave because of IP conflict rather than accusing him of lagging.




Jun 8 2010, 12:49 am Lanthanide Post #3



Can you link to this original thread, Nude?

I work as a software developer for a company that makes switches and routers for the internet, so I know a thing or two about IP addresses and internet routing :)



None.

Jun 8 2010, 6:30 am NudeRaider Post #4

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Hmmm. I think I remembered wrong. The topic I was thinking of was about Warden. Not sure if we had this topic already.
But there's no reason we can't discuss the problem here. If we could actually find a solution or at least a sound explanation that'd be lovely.
I already gave all info I have on the topic, so now you guys discuss away. ;)

P.S. Some people call it "IP crash"




Jun 8 2010, 6:55 am Lanthanide Post #5



Unfortunately the information you've given isn't concrete enough to really say much.

Unless Starcraft is embedding IP addresses in it's data packets (HIGHLY unlikely, very few protocols do this unless they have very special reason to, which SC really doesn't have), then there is no real way for there to be an "IP address" conflict. All IP addresses on the internet are globally routable (and unique); if they aren't, then there's no way that you'd be able to join/create an SC game at all.

Some kind of weird IP address problem would be more specifically indicated if you could player games with some people, but not others. But if it always fails when you get 3+ people, then it is not going to be an IP address problem.

Also IPv6 vs IPv4 would have no impact on this whatsoever as SC isn't IPv6 aware. There are not multiple versions of IPv4, either.

Actually now that I think about it, the likely problem is a lack of ports being forwarded on the firewall/router. SC actually has a range of 8 ports, both TCP and UDP 6112-6119 for connecting up to 8 players. Farily suspicious if a certain # of players stops everything working properly. That wouldn't explain why it would work fine one day and break the next if no changes had been made, though, unless your ISP is doing something weird.

Edit: thinking more, and with reference to what Nude says about resetting connection sometime fixing it. It could be a result of dodgy firewalls/routers that aren't forwarding ports properly. NAT is used to translate global IP addresses to local private ones (like 192.168.1.1 or whatever), and there is further NAT tricks that apply to ports specifically. It is possible that the router/firewall has started fowarding port 6114 to a particular local IP address, like 192.168.1.3, and you're trying to play with a computer that has IP address 192.168.1.2 - this would allow you to have traffic on ports 6112 and 6113, but not 6114, and hence limit you to 2 players. Possible ways for this to occur: multiple PCs in the house used to play SC, DHCP server on the router has a short lease time and you're getting different IP addresses for your computer over time. Possibly solution would be to reboot your router/firewall, or configure it so you always get the same IP address from the DHCP server, and/or use a static IP address and use permanent port forwards to that address.

Post has been edited 1 time(s), last time on Jun 8 2010, 7:02 am by Lanthanide.



None.

Jun 8 2010, 7:58 am NudeRaider Post #6

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

This last paragraph sounds like it's a possible cause since this has become a problem like 2 years ago which is roughly the time when more and more people had multiple computers and started using routers rather than modems to connect to internet.

Quote from Lanthanide
Some kind of weird IP address problem would be more specifically indicated if you could player games with some people, but not others. But if it always fails when you get 3+ people, then it is not going to be an IP address problem.
Lets put it that way: Those two people always lag a game when they are both in it, but if any one of them leaves the lag vanishes.
The exception to that rule is if they are the only players in the game it won't lag.

Quote from Lanthanide
SC actually has a range of 8 ports, both TCP and UDP 6112-6119 for connecting up to 8 players.
I don't ever seem to be conflicting with anyone (just 1 computer), or at least it's so rare that I didn't notice and I have only Port 6112 forwarded. I can host just fine. So what are 6113-6119 for exactly?




Jun 8 2010, 8:50 am Jack Post #7

>be faceless void >mfw I have no face

Quote from NudeRaider
This last paragraph sounds like it's a possible cause since this has become a problem like 2 years ago which is roughly the time when more and more people had multiple computers and started using routers rather than modems to connect to internet.

Quote from Lanthanide
Some kind of weird IP address problem would be more specifically indicated if you could player games with some people, but not others. But if it always fails when you get 3+ people, then it is not going to be an IP address problem.
Lets put it that way: Those two people always lag a game when they are both in it, but if any one of them leaves the lag vanishes.
The exception to that rule is if they are the only players in the game it won't lag.

Quote from Lanthanide
SC actually has a range of 8 ports, both TCP and UDP 6112-6119 for connecting up to 8 players.
I don't ever seem to be conflicting with anyone (just 1 computer), or at least it's so rare that I didn't notice and I have only Port 6112 forwarded. I can host just fine. So what are 6113-6119 for exactly?
Other battle.net games, IIRC, such as WC3, D2. You only need 6112 AFAIK.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Jun 8 2010, 8:52 am Lanthanide Post #8



I'm not sure what ports 6113-6119 actually do, just lots of port forwarding guides and starcraft sites suggest you forward all of them. I've seen (at least) one site that said 1 port is used for each additional player. The additional ports could just be used for the lobby only.

But what I *do* know is that the "latency" problem is to do with ports not being forwarded, and each game can have at most 1 player that doesn't have port forwarding set up, and that person can never host. With the way NAT and port forwarding work in general, this makes sense because the person without the forwarded ports can only create out-going connections, but cannot accept incoming connections. When someone joins your game, that person sends a message to your computer asking to join - people without ports forwarded will never receive this message, hence they can never host. Similarly because each computer must talk to every other computer in the game, the person without forwarded ports can start conversations with all other people in in the game, but if there was a 2nd player that didn't have forwarded ports, they would never be able to talk to each other.

Now presumably the additional ports would be used for outgoing connections from each computer, however it wouldn't necessarily be the case, and I don't know exactly how SC transmits packets in-game, someone like Heinerman might be able to help with how the ports work. There are several different possibilities for how it could work - ports 6113-6119 may never, or rarely, be used, or they could sometimes be used between different computers basically on a random basis. Eg P1 might use 6114 to talk to P2 on 6112, and P2 could either talk back on the same connection or start their own connection on say 6117 to talk to P2 on 6112.



None.

Jun 10 2010, 12:08 pm Lanthanide Post #9



Ok, I started SC up and did a packet capture so I've got an idea how the ports work now.

It looks like only port 6112 is used. So all my speculation about different ports above is incorrect - all connections are sent to and from port 6112 for all players in the game. So where the recommendations for ports 6113-6119 being forwarded have come from I don't know.

Probably the only way to really diagnose what is going on properly is going to be getting packet captures from one or both computers while they are having the problem.

Anyway, I thought of another possibility. The extreme stuttery lag is probably a result of packets being dropped, but eventually getting through. Another possible explanation for that would be a bad router/firewall that isn't able to open multiple NAT sessions between the victim computer and the rest of the computers in the game. Each player needs to send packets to every other player in the game, and in a 2 player game this requires a single connection between them, so everything is fine. But in a 3 player (or more) player game, each computer needs 2 (at least) connections to other players open simultaneously. However if your router/firewall is dumb and only allows a single connection on a particular port (6112) at a time, then when P1 is talking to P2, packets from P3 will be dropped. Then P1 sends a packet to P3, and the packets from P3 get through but the packets from P2 are dropped. This would result in P1 dropping packets from alternating players, and potentially dropping many packets in a row if the packets were arriving shortly outside the window during which they would be accepted (eg receive P2 packet when could receive P3, then receive P3 when could receive P2).

Anyway, if the above is what is happening, then the problem should be with a particular indivdual player, and that player would never be able to play games with 3+ players. They could play games with any other single player just fine, though, and the problem wouldn't not be limited to occuring just between a specific two players. Eg if Player A always has the problem, then games with A, B, C or A, B, D or A, B, E would suffer, but so would games with A, C, D or A, C, E (player Bs presence does not induce the problem with player A).

Incidentally if SC did make use of ports 6113-6119, then the failure mode I've outlined above wouldn't occur, because the victim computer could talk on 6112, 6113, 6114 etc to all other computers and therefore not have any problems - it is only because all computers talk soley on 6112 that this could be an issue.

Post has been edited 1 time(s), last time on Jun 10 2010, 12:27 pm by Lanthanide.



None.

Jun 10 2010, 1:08 pm NudeRaider Post #10

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Well your theory sounded very promising at first - until you came to the point that it should always lag for one specific player and couldn't be caused by a specific pair of players, which is definitely the case...
So something else is going on here.

I've got 2 german friends which almost always have IP conflict. Would it help your analysis if we joined a game with them?




Jun 10 2010, 2:43 pm BeeR_KeG Post #11



I had a very similar problem the other day when I'd be lagging heavily for no apparent reason at all. I recently acquired a Starcraft cd-key (although it's muted) and I lagged like if there was no tomorrow. I knew something had to be wrong, since I've played WoW and Need for Speed: World both online without any problems at all and my download rate is a decent 200 KB/s so I know my connection is more than up to the job. What I did was open port 6112 on TCP and UDP on the inbound side. It didn't work. I then completely turned off my Windows Firewall and then played SC on b.net without any problems at all. Later up I turned on the firewall and could play just fine. Apparently any changes you make to your ports don't take immediate effect, you'd have to restart your firewall. I don't know if turning off/on the laptop also did the trick, since I also did in between, but it follows the same principle.



None.

Jun 11 2010, 4:38 am Ryan Post #12



So we've found out that when HE hosts, everything runs perfectly fine. It's only when I host a game that we will lag together, but I can host normally with anybody else.



None.

Jun 11 2010, 5:44 am Lanthanide Post #13



Ok, that is very interesting Ryan. Would you and your friend be able to get some packet captures for me?

Get WireShark from here: http://www.wireshark.org/download.html it's a legit, widely-known and open source program, so you don't need to worry about malware or whatever. What it does is captures the network packets going in and out of your computer. So you would start up SC, log in to battle.net, then alt-tab out and start up wireshark capturing on your network interface (wireless or wired, it can do either). Start the SC game with you hosting and get 3 players in, only need to play it for 30 seconds or so and then quit, then alt-tab back out and stop the packet capture, then save it to a file.

If both you and your friend could do this for the same game, that'd be even better. Ideally all 3 players could do this - I could be the 3rd player if we can arrange a time that we can all do it (I live in New Zealand which is ~20 hours ahead of USA).

With those packet captures I'll be able to see what is actually going on between the computers in the game, and it'd help with coming up with a theory for why this lag happens, and might be able to come up with a possible solution for it.



None.

Jun 18 2010, 7:20 am O)FaRTy1billion[MM] Post #14

👻 👾 👽 💪

Quote from NudeRaider
Well your theory sounded very promising at first - until you came to the point that it should always lag for one specific player and couldn't be caused by a specific pair of players, which is definitely the case...
It is one player. That is why if one leaves, everyone else is fine afterwards.

Also, just a quick thought ...
Will the players see eachother with 192.168.*.* ips, and everyone else see them with the same external IP ... ?

I just remember I made a tool for testing this. :P

EDIT:
Quote
O)FaRTy1billion 0.0.0.0
O)FaRTy1billion 192.168.2.166
You don't know your own IP address (hence 0.0.0.0) ... Even though I'm on battle.net, it says that my other computer is a local address. (Note that these ips are taken from SC's memory)

So, if I'm correct, then players will see different IPs (two players with the same ip, too).

EDIT2:
Also there's the added bonus that when this occurs, not everyone can see your text.

Post has been edited 2 time(s), last time on Jun 18 2010, 7:28 am by FaRTy1billion.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Jun 18 2010, 7:50 am ShadowFlare Post #15



I'm fairly sure it uses the IP address that Battle.net sees from you, not the IP address that the computer is using. If you already have your SC port configuration and port forwards set up correctly for each computer, another possibility is that the router does not support connections to your port forwards on your internet IP address from local computers. Some routers do what needs to be done to make it work, but not all do. Yet another possibility is a form of source port randomization on some routers that uses a random source port for each new connection.



None.

Jun 18 2010, 7:54 am O)FaRTy1billion[MM] Post #16

👻 👾 👽 💪

I got those that IP from a program I wrote that collects the usernames and IPs from SC's memory. ;o
Though I don't fully remember how I found this method of collecting them.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Jun 18 2010, 8:04 am ShadowFlare Post #17



If Battle.net does tell you the local IP for the other system on the same network, not configuring the two systems for different port numbers could cause problems. Depending on the router, either one system likely won't connect or will get disconnected or the router will change the source port on the second one, which the local system may not find out about (and thus won't know it should listen on that port instead). Battle.net probably won't know the real local port, so it won't be able to tell your other system.

As for that 0.0.0.0, that could just be what address it is listening on, which would probably mean all.



None.

Jun 18 2010, 8:06 am NudeRaider Post #18

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Quote from O)FaRTy1billion[MM]
Quote from NudeRaider
Well your theory sounded very promising at first - until you came to the point that it should always lag for one specific player and couldn't be caused by a specific pair of players, which is definitely the case...
It is one player. That is why if one leaves, everyone else is fine afterwards.
No, the problem of "IP conflict" is definitely caused by a pair of players. I've witnessed it countless times and played test games with conflicting friends.

Quote from O)FaRTy1billion[MM]
Also, just a quick thought ...
Will the players see eachother with 192.168.*.* ips, and everyone else see them with the same external IP ... ?
Using Oblivion I can see the IPs of players ingame. They all have regular external addresses during an IP conflict..

EDIT:
Oh and Ryan, I just got an idea: Have you or your friend changed any settings or hardware on your computers prior to the problem appearing?
The examples could seem trivial like your friend let a laptop connect to his router for a few hours,
or changed port settings for a game or installed a torrent/emule client. Anything you can remember?

Post has been edited 1 time(s), last time on Jun 18 2010, 8:12 am by NudeRaider.




Jun 18 2010, 8:13 am ShadowFlare Post #19



BTW, the reason I brought up source ports is that the Battle.net version used for everything before WC3 decides what port you are hosting on based on the source port of your connection to Battle.net. With WC3, they changed this behavior and added an explicit option to decide what port you are using, ignoring what the source port is.

On a router that lets you do more advanced address translation (specifically, changing what it tells the other end is the source of the connection), it is possible to have multiple people host games on pre-WC3 Battle.net without reconfiguring port numbers for the games on the computers. This can allow more than one system running Diablo 1 or 2, WC2, or SC to host games at the same time with all of them thinking they are still using port 6112. It is possible this is only available on specific open source routers, except maybe high-end stuff.

Post has been edited 1 time(s), last time on Jun 18 2010, 8:22 am by ShadowFlare.



None.

Jun 18 2010, 7:13 pm O)FaRTy1billion[MM] Post #20

👻 👾 👽 💪

Quote from NudeRaider
Quote from O)FaRTy1billion[MM]
Quote from NudeRaider
Well your theory sounded very promising at first - until you came to the point that it should always lag for one specific player and couldn't be caused by a specific pair of players, which is definitely the case...
It is one player. That is why if one leaves, everyone else is fine afterwards.
No, the problem of "IP conflict" is definitely caused by a pair of players. I've witnessed it countless times and played test games with conflicting friends.
Er. The conflict is because of the pair, but really only 1 is causing the problem because he is the one with the conflicting IP. If it was the pair as a whole, both would have to leave to free the lag. (/random way I look at this)

Quote from NudeRaider
Quote from O)FaRTy1billion[MM]
Also, just a quick thought ...
Will the players see eachother with 192.168.*.* ips, and everyone else see them with the same external IP ... ?
Using Oblivion I can see the IPs of players ingame. They all have regular external addresses during an IP conflict..
I'm talking about for the people lagging, not the onlookers (I connected both computers to battle.net, joined a game, then looked at the ips.)
Quote from me
Also, just a quick thought ...
Will the players see eachother with 192.168.*.* ips, and everyone else see them with the same external IP ... ?
Is what I was talking about. I was confirming the first part (they they see eachother with local addresses.)



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[09:19 am]
Linekat -- cool
[01:56 am]
Oh_Man -- cool bit of history, spellsword creator talking about the history of EUD ^
[09:24 pm]
Moose -- denis
[05:00 pm]
lil-Inferno -- benis
[2024-4-19. : 10:41 am]
v9bettel -- Nice
[2024-4-19. : 1:39 am]
Ultraviolet -- no u elky skeleton guy, I'll use em better
[2024-4-18. : 10:50 pm]
Vrael -- Ultraviolet
Ultraviolet shouted: How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
hey cut it out I'm getting all the minerals
[2024-4-18. : 10:11 pm]
Ultraviolet -- :P
[2024-4-18. : 10:11 pm]
Ultraviolet -- How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
Please log in to shout.


Members Online: Roy