|
I've seen a number of posts where people claim to be able to reduce lag in SC2 by way of the Leatrix Latency Fix (among other suggestions that don't actually do anything). This was a valid suggestion in the beta since SC2 used TCP which is what the latency fix changes (it disables delayed acks, resulting in a latency improvement in exchange for lower throughput). However Blizzard has implemented UDP in SC2, of which no amount of OS tweaking will improve since UDP is packet oriented rather than stream oriented.
Usually you will be playing games on SC2 bnet using UDP since the SC2 UDP protocol is faster, incredibly tolerant to packet loss (I tested 75% packetloss and still didn't get dropped) and doesn't suffer from the ack issues or slow start issues of TCP. However, if something is preventing you from using UDP such as a firewall, router or other misconfiguration, bnet will revert to using TCP without telling you which could result in increased lag and drops.
The point of this blog post is a tool I made called SC2NetInfo that will tell you whether you are using TCP or UDP when playing SC2. Grab Sc2NetInfo.7z and extract both files somewhere. Run SC2 and start a Multiplayer Custom Game vs an AI - while this tool does work in regular ladder games, there is a small risk of crashing SC2 when it is run due to race conditions. Run Loader.exe to load the analyzer. You will see a window with the number of TCP and UDP packets sent, whichever number is increasing is the protocol your SC2 is using. Requires VC 2008 runtimes if you don't have them already.
If you are using TCP, this means that bnet wasn't able to communicate over UDP for some reason. Check any firewall software to ensure SC2 isn't blocked or anything in your router (you don't need any port forwarding for SC2 - turn it off if you have any). SC2 UDP runs on port 1119.
WARNING: While this doesn't modify SC2 at all, this is still a 3rd party program and you should use this at your own risk.
|
Will try this out, thanks
My connection from Singapore -> NA servers has been laggy as hell.
After a game: 15 TCP 7232 UDP, so looks like that isnt the issue.
|
R1CH you are fucking godly.
|
On December 28 2010 13:50 synapse wrote: R1CH you are fucking godly. ^ Yep. I wanna be just like rich when I grow up <3
|
FYI (that's efff, your eye?), it's possible to disable slow start after idle in the kernel for the tcp stack, I'm not an expert in it, but I know it's possible, don't really know what the downsides would be.
|
i'm scared to touch the wizards magic
|
On December 28 2010 15:58 MoreFasho wrote: FYI (that's efff, your eye?), it's possible to disable slow start after idle in the kernel for the tcp stack, I'm not an expert in it, but I know it's possible, don't really know what the downsides would be. It's more than just slow start though, the exponential backoff in response to dropped packets kills games like SC2.
|
On December 28 2010 16:19 R1CH wrote:Show nested quote +On December 28 2010 15:58 MoreFasho wrote: FYI (that's efff, your eye?), it's possible to disable slow start after idle in the kernel for the tcp stack, I'm not an expert in it, but I know it's possible, don't really know what the downsides would be. It's more than just slow start though, the exponential backoff in response to dropped packets kills games like SC2. Chill, Hot_Bid, are you reading this?
|
|
wait so you're saying if I forwarded the ports for sc2 I should take it away? Why?
|
Because SC2 doesn't accept incoming connections.
|
Zurich15306 Posts
First we didn’t think it would be possible to create SC2ProMod before the SC2 release. After all, Blizzard hasn’t implemented much of the game yet, and large parts of the Beta are protected against crackers. They did a much better job obfuscating their SLO’s for example. However, after probing some of the less obvious registers it appeared that they forgot to properly pad a couple of the bigints on the D3D integration. From there, injecting a hook for SC2ProMod into the Hold-RIs was a piece of cake. The rest was straightforward assembly redialing. -- R1CH, Wizard
|
I am on a wifi connect for fios which is super fast, but i still get skipping and It said I was on TCP. No ports were forwarded but there is some port triggering, but I dunno what this is exactly.
Port Triggering
Trigger opening of ports for incoming data.
NOTE: Only advanced technical users should use this feature.
Protocol Outgoing Trigger Ports Incoming Ports to Open Action L2TP Triggering - Layer Two Tunneling Protocol UDP Any -> 1701 UDP Any -> Same as Initiating Ports TFTP Triggering - Trivial File Transfer Protocol UDP 1024-65535 -> 69 UDP Any -> Same as Initiating
|
konadora
Singapore66063 Posts
idk exactly what i just read but i'm pretty damn sure it'll work
|
Well this time it was using UDP but i still got lag spikes. Pretty frustrating to lose a game you should have won because a pylon didn't cancel during a quick spike causing you to not have money for a canon before your probe dies.
|
It's most likely your wireless that is the problem, FIOS should be low enough latency to never have any lag issues on bnet.
|
Awesome R1ch, will try your hard work ;D
|
wait, I don't get why this is in blogs? Shouldn't this be in SC2 General?
|
I usually post all my little projects in blogs, it's kind of too specific for SC2 General.
|
On December 28 2010 13:15 R1CH wrote:WARNING: While this doesn't modify SC2 at all, this is still a 3rd party program and you should use this at your own risk. Could you specify what and where you are reading from? If you are hooking network libraries from windows, there shouldn't be much trouble. I think warden is just especially allergic to reads and writes to/from sc2 allocated ram space.
Anyway, many thx for this thing (even if didn't check it out yet). This will be incredible helpful at lan parties to show the orgas what the problem is.
|
|
|
|