From 98aa6538d3eeeabf063ec1bef3e012bddb761f6b Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 22 Feb 2018 02:09:26 +0800 Subject: [PATCH] =?UTF-8?q?Updated=20faketcp=E6=96=B9=E6=A1=88=E5=92=8C?= =?UTF-8?q?=E5=B8=B8=E8=A7=81=E7=9A=84udp=20over=20tcp=E3=80=81udp=20in=20?= =?UTF-8?q?tcp=E6=96=B9=E6=A1=88=E7=9A=84=E5=AF=B9=E6=AF=94=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- faketcp方案和常见的udp-over-tcp、udp-in-tcp方案的对比.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/faketcp方案和常见的udp-over-tcp、udp-in-tcp方案的对比.md b/faketcp方案和常见的udp-over-tcp、udp-in-tcp方案的对比.md index ee54a25..42a4282 100644 --- a/faketcp方案和常见的udp-over-tcp、udp-in-tcp方案的对比.md +++ b/faketcp方案和常见的udp-over-tcp、udp-in-tcp方案的对比.md @@ -1,4 +1,4 @@ -#### udp over tcp、udp in tcp方案 +### udp over tcp、udp in tcp方案 udp over tcp、udp in tcp说的是一回事儿,是把udp协议封装到tcp协议里发送。 常见的有tcp模式的openvpn,还有$$R的tcp in udp模式。 这种方式是把udp数据包打包封装后用tcp协议来发送。 本质上是发送时把udp转换成tcp,然后在接收方恢复出来。 @@ -10,11 +10,11 @@ udp in tcp方案的常见特点: 2. 如果带宽充足,udp in tcp方案也会工作得很好;如果udp数据发送的数据一但超过了tcp的带宽,连接就会卡住一段时间,有时候会造成超过10秒的时间无法发送数据。(可靠传输、拥塞控制造成的副作用) -#### faketcp方案 +### faketcp方案 用raw socket给udp协议直接加上伪造的tcp包头,把udp伪装成tcp;本质上还是udp,不需要经过系统的tcp协议栈,所以不会引入上述的问题。但是伪装成tcp的udp流量可以骗过运营商的防火墙,获得更好的速度。 -#### 如何自己验证 +### 如何自己验证 在一条有一定丢包的网络上,同时建立一条tcp和udp的openvpn连接。 @@ -22,7 +22,7 @@ udp in tcp方案的常见特点: 2. 通过iperf3测速可以发现,tcp的openvpn速度要低很多,而且波动大。 如果用ipef3 -P10 (10个线程去压),经过几秒以后tcp模式的openvpn速度会跌到0,而且10秒内都无法恢复,而且tcp模式的openvpn可能会直接掉线。 -#### 回答一些常见误解 +### 回答一些常见误解 Q : 既然OpenVPN本身就支持TCP模式,那么使用udp2raw +OpenVPN(udp模式)还有什么用,直接使用OpenVPN(tcp模式)不就可以了吗?