tcp 的延时是不是 udp 的三倍啊,因为要浪费三次握手才能发数据

2021-05-08 10:35:46 +08:00
 dayudayupao

对 tcp/udp 传输理解的不深,突发奇想,这样解释对吗,望大佬来解释一下

5221 次点击
所在节点    程序员
18 条回复
rrfeng
2021-05-08 10:36:47 +08:00
握手完了后面就是 2 倍了(因为要 ACK )
linvon
2021-05-08 10:42:54 +08:00
握手过程只会让 TCP 在建立连接的时候比 UDP 多发几个建连包而已,并不会影响真正数据传输时的延时。而像 1 楼说的因为 ACK 所以两倍时延其实也不对,TCP 是全双工的协议,ACK 本身就可以作为一个标记包含在数据包内。真正造成 TCP 比 UDP 延时高的是因为 TCP 的流量控制和拥塞控制,也就是常说的滑动窗口 Reno 算法等等
walsh
2021-05-08 10:49:22 +08:00
理想状态下没有差别,udp 要实现可靠性也需要自己实现 ack
daimiaopeng
2021-05-08 10:53:38 +08:00
月经贴
serverABCD
2021-05-08 10:55:14 +08:00
这个问题估计论坛里%95 的人都打不上来(包括我。。。)。我的理解是你要基于使用场景来问,应用层协议比如 http 的长链接和短连接都是 TCP 延迟都是不一样的,而且三次握手也仅限于建立连接的时候。此外拥塞控制流量控制这些都是基于高数和统计得出来的结论,你要往深了挖得找 phd 。
dayudayupao
2021-05-08 10:55:44 +08:00
@linvon 我想的是在握手的这个时间内是不是要白白等着连接建立好才能发数据,假设客户端信号从光纤传出去到另一台服务器需要耗时 5ms,三次握手是不是就相当于 5*3=15ms,然后再加上连接后数据传输的 5ms,总共是不是算 20ms, udp 的话是不是就是直接 5ms 就行了,不知道这样理解对不对
linvon
2021-05-08 10:58:24 +08:00
@dayudayupao #6 简单理解的话,是这样没错,建连会增加主链路耗时,这也是为什么 https 比 http 耗时要高,因为需要先交换秘钥实现 ssl 握手
ch2
2021-05-08 11:16:35 +08:00
@dayudayupao #6 这个握手可以是一次性的,连接完成之后一直复用,延时就没区别了。另外 ACK 不是两倍时延,因为 TCP 是全双工的而且有发送窗口,一次性发多个包,不是一个确认完了再发下一个。真正影响 tcp 发包速率的是拥塞控制,TCP 是慢启动,窗口达到实际允许的最大值需要很多个周期,一旦丢包了就会回到解放前
newmlp
2021-05-08 11:50:03 +08:00
ack 不会造成额外的延迟,只有网络质量差,需要频繁重传的时候才会造成延迟高
rrfeng
2021-05-08 12:01:31 +08:00
@linvon 从一条流上统计出来是 1RTT,单个包看的话都是 2RTT,因为没有 ACK 等于没收到,说不定还有等重发(
privil
2021-05-08 12:22:51 +08:00
不是。
ng29
2021-05-08 14:19:20 +08:00
买本教材看看吧
CrazyMonkeyV
2021-05-08 15:49:32 +08:00
tcp 对比 udp 的耗时,和几次握手没关系。主要是确保不丢失和时序。
vindurriel
2021-05-08 16:18:50 +08:00
@linvon 可以对照看下 QUIC 基于 udp 重写的 tcp 简化握手 提高容错
misaka19000
2021-05-08 16:22:08 +08:00
哈哈哈哈哈哈哈哈哈哈楼主真可爱~
wanguorui123
2021-05-08 16:28:12 +08:00
协商的时候是的,协商完后没什么区别
nicebird
2021-05-08 17:49:53 +08:00
看场景
Dganzh
2021-05-08 17:53:45 +08:00
感觉限制只发一个字节数据,还可以讨论讨论

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/775590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX