12月 032010
 

August 24, 2010 by LostRiver

        使用OpenVPN一段时间,发现Windows客户端速度一直远小于Linux客户端。我的网络环境两边都是百兆 IPv6共享接入服务端是OpenVZ VPS。linux下客户端和服务端单个TCP连接速度在500KB/s上下波动,通过OpenVPN后速度差别不大。未优化时,Windows下速度明显降低,全局下载带宽只能到100KB/s左右。优化后部分问题能够得到明显改善。

        OpenVPN有TCP和UDP两种连接方式,虽然OpenVPN over TCP不被推荐。
优化Windows TCP接收窗口(RWIN)

        作用有二,优化运行于OpenVPN上的TCP连接,在使用TCP模式时优化OpenVPN所使用的TCP连接。这里Vista/Win7无需优化。

        Windows下情况有些复杂,对于IPv6 TCP,Vista/Win7没有问题但之前版本Windows处理得很不好。首先Windows Server 2003系统下有个BUG,见KB966321,简单说被动打开的TCP连接接收窗口大小固定为16384且不随注册表项相应的设定值影响。我发现XP情况更坏,所有IPv6 TCP连接窗口大小都固定为最大44800,在我这里260ms的RTT下,单IPv6 TCP连接的带宽最大只有约160KB/s,该问题尚未解决。微软并未发布Win32 XP平台的补丁。 Continue reading »