From c748c23f6ec03e997ded661b2af0f889fa5a0054 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 22 Feb 2018 01:48:31 +0800 Subject: [PATCH] =?UTF-8?q?Created=20faketcp=E6=96=B9=E6=A1=88=E5=92=8Cudp?= =?UTF-8?q?=20over=20tcp=E3=80=81udp=20in=20tcp=E7=9A=84=E5=8C=BA=E5=88=AB?= =?UTF-8?q?=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 | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 faketcp方案和udp-over-tcp、udp-in-tcp的区别.md diff --git a/faketcp方案和udp-over-tcp、udp-in-tcp的区别.md b/faketcp方案和udp-over-tcp、udp-in-tcp的区别.md new file mode 100644 index 0000000..d693dae --- /dev/null +++ b/faketcp方案和udp-over-tcp、udp-in-tcp的区别.md @@ -0,0 +1,15 @@ +#udp over tcp、udp in tcp方案 + +说的是把udp协议封装到tcp协议里发送。 常见的有$$R的tcp in udp模式,还有tcp模式的openvpn。 这种方式是把udp数据包打包封装后用tcp协议来发送。 本质上是发送时把udp转换成tcp,然后在接收方恢复出来。 + +这种方案的缺点是会影响udp传输的速率和实时性,因为tcp有可靠传输、拥塞控制、按序到达等特性,而且这些特性是没法关掉的。尤其是按序到达这个特性,本质上是牺牲延迟来换取数据包的有序。 + +udp in tcp方案的特点: + +1. 如果网络很好不丢包,那么udp in tcp方案会工作得很好;如果网路稍微有一点丢包,数据的延迟会极大得增加。 + +2. 如果带宽充足,udp in tcp方案也会工作得很好;如果udp数据发送的数据一但超过了tcp的带宽,连接就会卡住一段时间,有时候会造成超过10秒的时间无法发送数据。 + +# faketcp方案 + +用raw socket给udp协议直接加上伪造的tcp包头,把udp伪装成tcp;本质上还是udp,不需要经过系统的tcp协议栈,所以无上述问题。 \ No newline at end of file