跳转至

TCP 如何保证可靠传输

一、序号和确认

每个字节有编号。收到后 ACK 确认。

二、超时重传

发出去没收到 ACK,超时重传。

三、滑动窗口

不用等 ACK 就可以继续发,窗口大小由接收方告诉发送方。

四、流量控制

接收方告诉发送方自己还有多少缓冲(窗口大小),防止发送太快。

五、拥塞控制

  • 慢启动。
  • 拥塞避免。
  • 快重传。
  • 快恢复。

六、校验和

数据带校验,接收方检查出错就重传。

七、去重

重复的包丢弃。

八、按序交付

乱序的包缓存,按序交给应用。

一句话

序号 + 确认 + 重传 + 窗口 + 拥塞控制 = 可靠。