【问题标题】:What happen when in 3 way handshake, Server did not get client's ACK message?在 3 次握手中,服务器没有收到客户端的 ACK 消息时会发生什么?
【发布时间】:2020-09-30 16:51:13
【问题描述】:

我了解客户端在 3 次握手期间收到来自服务器的 SYN ACK 消息并向服务器发送 ACK 消息后,客户端和服务器已连接。连接后,当客户端向服务器发送其他消息时,如果这些消息在客户端进行 3 次握手时发送的 ACK 消息之前到达服务器会发生什么情况?

【问题讨论】:

  • 按照常规规则重传SYN-ACK。

标签: networking tcp


【解决方案1】:

如果在进行 3 次握手时,该消息在客户端发送的 ACK 消息之前到达服务器会发生什么情况?

ACK 只是 TCP 标头中的标志以及最新接收到的数据的序列号。它可以包含在一个空数据包中(即没有有效负载,只有 TCP 标头),也可以包含在一个带有有效负载的数据包中。只要接收到覆盖数据的 ACK,是否接收到带有 ACK 的特定数据包并不重要。

这意味着如果客户端发送的初始数据覆盖 TCP 握手的最终 ACK 就足够了。事实上,甚至根本不需要从客户端发送一个独立的 ACK(没有负载)来完成 TCP 握手,但是客户端可以在客户端从服务器收到 SYN 和 ACK 后立即开始发送数据。

【讨论】:

  • 感谢您的回答。所以你的意思是服务器不关心客户端发送给服务器的ACK(3次握手结束)是否丢失?
  • 不,他的意思是它可以搭载在发送的第一个数据上。
猜你喜欢
  • 1970-01-01
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
相关资源
最近更新 更多