TCP下的OpenVPN是非常缓慢(TSG附加)

我有OpenVPN的一个非常奇怪的问题。

大多数VPN工作正常,除了这一个。 在这里,我从TCP连接性能非常低,但CPU负载很低(所以,不是CPU问题)。

OpenVPNconfiguration了UDP,AES-256-CBC密码,SHA256authentication和不压缩。

这里是我用iperf做的一些测量:

没有VPN的networking连接:

iperf -c external.ip result:300 - 500mbps (good) iperf -c vpn.int.ip result: 20-30mbps (not good) 

两端的CPU使用率很低。 好的,也许一些ISP形状或过滤UDP数据包。

 iperf -c external.ip -b 500M result: no packet loss 

嗯…如果我强迫UDPstream槽VPN

 iperf -c vpn.int.ip -b 100M result: no packet loss iperf -c vpn.int.ip -b 180M result: packet loss ~0.1% 

所以,根据UDP的结果,我的VPN连接应该达到180mbps,但是不会。 我也用tcptrace得到很奇怪的图。

这是好的testing(不使用VPN,使用外部IP)的方式: 外部连接的TSG

如您所见,发送的数据包保持在黄线附近,这意味着接收窗口几乎保持满。 这部分graphics接近连接的开始,稍后,发送的数据包实际上位于黄线之上。

而这张图是我从VPN获得的: vpn'ed连接的TSG

现在,由于某种原因,发送者的行为就好像窗口很小,尽pipe它很大(不pipe我设置窗口的大小,尝试保持默认设置和4MB),并且只以小的突发发送数据包。

这是我第一次看到这样的图表? 什么可能导致它? 一些UDP过滤的ISP,OpenVPN本身,别的东西?

编辑:运行使用TCP而不是UDP的VPN结果10mbps结果。

我已经解决了。 或者说,我知道如何让速度更快,但不知道为什么它会变慢。 AES密码似乎干扰了TCP在这个特定的服务器上,导致性能低下。 如果我将密码更改为3des(这比“openssl速度”报告的速度慢),我得到150mbps。 经过一些试验后,我现在用这个:

 cipher camellia-128-cbc auth sha1 tun-mtu 9000 

现在我得到一个单一的stream300mbps和多个stream450mbps。

也许你正在遇到连接MTU的问题。 看看以下两个链接,他们可能包含一些有用的信息。

使用Fragment和MSSconfigurationMTU

优化千兆networking的性能