Error handling 有错误的三方握手

Error handling 有错误的三方握手,error-handling,tcp,handshake,Error Handling,Tcp,Handshake,我正在UDP之上开发一个面向连接的协议(仅供学习)。例如TCP使用的三方握手很简单: 客户端发送SYN 服务器发送SYN+ACK 客户端发送确认 但是,这些包中的任何一个都可能丢失。TCP如何从初始化阶段的错误中恢复?如果第1步从未发生,会发生什么?只需重新发送SYN,但如果客户端从未收到SYN+ACK,则SYN+ACK或第一个SYN丢失。如果最后一次确认没有成功,服务器应该在一段时间后假设一切正常吗?错误的可能性如此之多:o非常简单:如果发送方没有收到确认,它将再次发送相同的数据包。这将多次完

我正在UDP之上开发一个面向连接的协议(仅供学习)。例如TCP使用的三方握手很简单:

  • 客户端发送SYN
  • 服务器发送SYN+ACK
  • 客户端发送确认

  • 但是,这些包中的任何一个都可能丢失。TCP如何从初始化阶段的错误中恢复?如果第1步从未发生,会发生什么?只需重新发送SYN,但如果客户端从未收到SYN+ACK,则SYN+ACK或第一个SYN丢失。如果最后一次确认没有成功,服务器应该在一段时间后假设一切正常吗?错误的可能性如此之多:o

    非常简单:如果发送方没有收到确认,它将再次发送相同的数据包。这将多次完成,过了一段时间没有成功,发送者会放弃并认为它被打破了。ACK到SYN、ACK到data或ACK到FIN都是如此。

    非常简单:如果发送方没有收到ACK,它将再次发送相同的数据包。这将多次完成,过了一段时间没有成功,发送者会放弃并认为它被打破了。对SYN的确认、对数据的确认或对FIN的确认都是如此