tcp 的延时是不是 udp 的三倍啊,因为要浪费三次握手才能发数据 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
dayudayupao
V2EX    程序员

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

  •  
  •   < href="/member/dayudayupao">dayudayupao 2021-05-08 10:35:46 +08:00 5652 次点击
    这是一个创建于 1617 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    18 条回复    2021-05-08 17:53:45 +08:00
    rrfeng
        1
    rrfeng  
       2021-05-08 10:36:47 +08:00
    握手完了后面就是 2 倍了(因为要 ACK )
    linvon
        2
    linvon  
       2021-05-08 10:42:54 +08:00   11
    握手过程只会让 TCP 在建立连接的时候比 UDP 多发几个建连包而已,并不会影响真正数据传输时的延时。而像 1 楼说的因为 ACK 所以两倍时延其实也不对,TCP 是全双工的协议,ACK 本身就可以作为一个标记包含在数据包内。真正造成 TCP 比 UDP 延时高的是因为 TCP 的流量控制和拥塞控制,也就是常说的滑动窗口 Reno 算法等等
    walsh
        3
    walsh  
       2021-05-08 10:49:22 +08:00
    理想状态下没有差别,udp 要实现可靠性也需要自己实现 ack
    labubu
        4
    labubu  
       2021-05-08 10:53:38 +08:00
    月经贴
    serverABCD
        5
    serverABCD  
       2021-05-08 10:55:14 +08:00
    这个问题估计论坛里%95 的人都打不上来(包括我。。。)。我的理解是你要基于使用场景来问,应用层协议比如 http 的长链接和短连接都是 TCP 延迟都是不一样的,而且三次握手也仅限于建立连接的时候。此外拥塞控制流量控制这些都是基于高数和统计得出来的结论,你要往深了挖得找 phd 。
    dayudayupao
        6
    dayudayupao  
    OP
       2021-05-08 10:55:44 +08:00
    @linvon 我想的是在握手的这个时间内是不是要白白等着连接建立好才能发数据,假设客户端信号从光纤传出去到另一台服务器需要耗时 5ms,三次握手是不是就相当于 5*3=15ms,然后再加上连接后数据传输的 5ms,总共是不是算 20ms, udp 的话是不是就是直接 5ms 就行了,不知道这样理解对不对
    linvon
        7
    linvon  
       2021-05-08 10:58:24 +08:00
    @dayudayupao #6 简单理解的话,是这样没错,建连会增加主链路耗时,这也是为什么 https 比 http 耗时要高,因为需要先交换秘钥实现 ssl 握手
    ch2
        8
    ch2  
       2021-05-08 11:16:35 +08:00   8
    @dayudayupao #6 这个握手可以是一次性的,连接完成之后一直复用,延时就没区别了。另外 ACK 不是两倍时延,因为 TCP 是全双工的而且有发送窗口,一次性发多个包,不是一个确认完了再发下一个。真正影响 tcp 发包速率的是拥塞控制,TCP 是慢启动,窗口达到实际允许的最大值需要很多个周期,一旦丢包了就会回到解放前
    newmlp
        9
    newmlp  
       2021-05-08 11:50:03 +08:00
    ack 不会造成额外的延迟,只有网络质量差,需要频繁重传的时候才会造成延迟高
    rrfeng
        10
    rrfeng  
       2021-05-08 12:01:31 +08:00
    @linvon 从一条流上统计出来是 1RTT,单个包看的话都是 2RTT,因为没有 ACK 等于没收到,说不定还有等重发(
    privil
        11
    privil  
       2021-05-08 12:22:51 +08:00
    不是。
    ng29
        12
    ng29  
       2021-05-08 14:19:20 +08:00
    买本教材看看吧
    CrazyMonkeyV
        13
    CrazyMonkeyV  
       2021-05-08 15:49:32 +08:00
    tcp 对比 udp 的耗时,和几次握手没关系。主要是确保不丢失和时序。
    vindurriel
        14
    vindurriel  
       2021-05-08 16:18:50 +08:00 via iPhone
    @linvon 可以对照看下 QUIC 基于 ud 重写的 tcp 简化握手 提高容错
    misaka19000
        15
    misaka19000  
       2021-05-08 16:22:08 +08:00
    哈哈哈哈哈哈哈哈哈哈楼主真可爱~
    wanguorui123
        16
    wanguorui123  
       2021-05-08 16:28:12 +08:00
    协商的时候是的,协商完后没什么区别
    nicebird
        17
    nicebird  
       2021-05-08 17:49:53 +08:00
    看场景
    Dganzh
        18
    Dganzh  
       2021-05-08 17:53:45 +08:00
    感觉限制只发一个字节数据,还可以讨论讨论
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5493 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:38 PVG 16:38 LAX 01:38 JFK 04:38
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86