mirror of
https://github.com/wangyu-/udp2raw.git
synced 2025-07-07 17:46:05 +08:00
Updated faketcp方案和常见的udp over tcp、udp in tcp方案的对比 (markdown)
parent
5ff485ec65
commit
6d7373cd32
@ -1,10 +1,10 @@
|
||||
#### udp over tcp、udp in tcp方案
|
||||
|
||||
udp over tcp、udp in tcp说的是一回事儿,是把udp协议封装到tcp协议里发送。 常见的有$$R的tcp in udp模式,还有tcp模式的openvpn。 这种方式是把udp数据包打包封装后用tcp协议来发送。 本质上是发送时把udp转换成tcp,然后在接收方恢复出来。
|
||||
udp over tcp、udp in tcp说的是一回事儿,是把udp协议封装到tcp协议里发送。 常见的有tcp模式的openvpn,还有$$R的tcp in udp模式。 这种方式是把udp数据包打包封装后用tcp协议来发送。 本质上是发送时把udp转换成tcp,然后在接收方恢复出来。
|
||||
|
||||
这种方案的缺点是会影响udp传输的速率和实时性,因为tcp有可靠传输、拥塞控制、按序到达等特性,而且这些特性是没法关掉的。尤其是按序到达这个特性,本质上是牺牲延迟来换取数据包的有序。
|
||||
|
||||
udp in tcp方案的特点:
|
||||
udp in tcp方案的常见特点:
|
||||
|
||||
1. 如果网络很好不丢包,那么udp in tcp方案会工作得很好;如果网路稍微有一点丢包,数据的延迟会极大得增加。 (按序到达造成的副作用)
|
||||
|
||||
@ -12,7 +12,7 @@ udp in tcp方案的特点:
|
||||
|
||||
#### faketcp方案
|
||||
|
||||
用raw socket给udp协议直接加上伪造的tcp包头,把udp伪装成tcp;本质上还是udp,不需要经过系统的tcp协议栈,所以不会引入上述的问题。
|
||||
用raw socket给udp协议直接加上伪造的tcp包头,把udp伪装成tcp;本质上还是udp,不需要经过系统的tcp协议栈,所以不会引入上述的问题。但是伪装成tcp的udp流量可以骗过运营商的防火墙,获得更好的速度。
|
||||
|
||||
#### 如何自己验证
|
||||
|
||||
@ -21,3 +21,13 @@ udp in tcp方案的特点:
|
||||
1. 通过ping可以看出来,tcp的openvpn延迟明显会增大。
|
||||
|
||||
2. 通过iperf3测速可以发现,tcp的openvpn速度要低很多,而且波动大。 如果用ipef3 -P10 (10个线程去压),经过几秒以后tcp模式的openvpn速度会跌到0,而且10秒内都无法恢复,而且tcp模式的openvpn可能会直接掉线。
|
||||
|
||||
#### 回答一些常见误解
|
||||
|
||||
Q : 既然OpenVPN本身就支持TCP模式,那么使用udp2raw +OpenVPN(udp模式)还有什么用,直接使用OpenVPN(tcp模式)不就可以了吗?
|
||||
|
||||
A : 因为前面提到的性能问题。
|
||||
|
||||
Q: kcptun是靠把tcp转换成udp提升速度,配合udp2raw后岂不是又转回去了,那kcptun是不是就没效果了?
|
||||
|
||||
A : udp2raw只会把udp伪装成tcp,本质上还是udp,所以不会影响kcptun的效果。
|
Loading…
x
Reference in New Issue
Block a user