本页协议说明(点开阅读)

TCP (Transmission Control Protocol)

干什么用的

UDP 只加了端口号,剩下的全丢给应用:包丢了没人补、顺序乱了没人排、发太快了没人拦。

★★★ TCP 把这三件事全接过来了。代价是两端都要为每条连接记状态,头也从 8 字节涨到 20 字节起,而且传数据之前先得花一个半 RTT 握手。

为什么握手是三次

★★★ 因为要让双方各自的序号都被对方确认过:

· A 发 SYN 带自己的初始序号 → B 知道了 A 的;
· B 回 SYN+ACK,带自己的序号、并确认 A 的 → A 两件事都知道了;
· A 再 ACK 一次 → B 才知道自己的序号也被收到了。

★★ 两次不够(B 的序号没人确认),四次是多余的一步。

★ 常见误解

★★★ 「TCP 保证送到」 —— 它保证的是送不到会告诉你。网线拔了它也变不出办法。

★★★ 「TCP 比 UDP 慢」 —— 链路好的时候一样快。差别出在丢包时:TCP 停下来补,UDP 继续往前冲。

★★ 「收到 ACK 就是对方应用读到了」 —— ACK 只说明内核收下了,应用可能还没 read。

冀ICP备2026021556号-2|冀公网安备13068302000206号