Network adjustements - allfoxwy/UnitXP_SP3 GitHub Wiki

TCP quick ACK

Windows implements TCP delayed acknowledgment by default. UnitXP_SP3 would turn it off for performance.

Consider the game works in a message based communication system, according to a document, there could be a 200ms delayed ACK at the last transport segment of each message.

Microsoft added a switch to turn off this behavior. However to use this switch, it requires WSAIoctl() which is in Winsock 2. The game is linked with Winsock 1.

You could check if the tweak is successfully enabled by:

  • /script local quickAck=UnitXP("TCP_quickACK", "get");message(tostring(quickAck));

Smaller IP MTU

By default, the modern Internet use 1500 as its packet transfer unit. However Internet is a complex system, there are path/place via which 1500 won't pass. The ideal solution is the stuck router would inform user that its size won't fit. However at the same time, there are many clever network administrator would explicitly disable this information to keep safe/privacy. Such operation creates black holes in Internet via which all packets not fit would be dropped silently. A common solution would be use a good router at home, which would adjust TCP MSS so that packets would be smaller/fit into the path. But again, there are many cost-effective ISP would give user a router so cheap that it does not have such functionality.

So to the end, the practical solution is trying to make the client program use a smaller MTU on its own. The game does not, so UnitXP_SP3 would try to.

You could check if the tweak is successfully enabled by:

  • /script local smallerMTU=UnitXP("IP_smallerMTU", "get");message(tostring(smallerMTU));

Linux WINE

Linux supports these tweaks but by a different switch. WINE currently doesn't translate. UnitXP_SP3 would skip these tweaks on Linux WINE.