【发布时间】:2020-05-21 11:46:15
【问题描述】:
我正在开发一种基于 UDP 的面向连接的协议(仅用于学习)。例如 TCP 使用的三次握手很简单:
- 客户端发送 SYN
- 服务器发送 SYN + ACK
- 客户端发送 ACK
但是,这些包中的任何一个都可能丢失。 TCP 如何从初始化阶段的错误中恢复?如果步骤 1 永远不会发生,会发生什么?只需重新发送 SYN,但如果客户端从未收到 SYN + ACK,那么要么 SYN + ACK 丢失,要么第一个 SYN 丢失。如果最后一个 ACK 没有成功,服务器是否应该在一段时间后假设一切正常?错误的可能性很多:o
【问题讨论】:
标签: error-handling tcp handshake