TwKit

推文

@BaiBtw · 2026-10-16 22:55

TCP 和 UDP 的差别,不止是丢包后要不要重传。 ① 连接方式 TCP 面向连接,通常先经过 SYN、SYN-ACK、ACK 三次握手。UDP 无连接,不需要先完成这套握手就能发送数据报。 ② 发给谁 TCP 是单播,一条连接对应通信的两端。UDP 除了单播,也能用于组播和广播;能不能这样发,还取决于具体网络环境。 ③ 报头开销 TCP 报头至少 20 字节,不含可选项;UDP 报头固定 8 字节,包括源端口、目的端口、长度和校验和。这里比的是传输层报头,不是整个数据包。 ④ 交付方式 TCP 会重传丢失的数据、去重,并按顺序向应用交付字节流。UDP 本身不保证送达、顺序或去重,这些需求得由上层另外处理。TCP 的可靠交付也不意味着网络断了还能无限等到成功。 ⑤ 谁在限制发送速度 TCP 的流量控制照顾接收方:应用读得慢、接收缓冲区快满了,就不能继续猛塞。 拥塞控制照顾网络:链路已经拥堵,也得收敛发送量。接收窗口和拥塞窗口一起约束发送方,有效窗口取两者中较小的那个。 UDP 本身没有这两套机制,不代表使用 UDP 的应用就可以不管拥塞。 选协议时,先看需要什么交付语义、能容忍多少延迟,以及哪些机制愿意自己补。只记“TCP 慢、UDP 快”,容易把真正的取舍漏掉。

曝光 12 · 评论 1 · 点赞 0 · 书签 0 · 曝光/时 9.98977769358097

TwKit
正在载入