tcp 抓包遇到的 ack 问题

20210313_150613.png

第一个红框是三次握手,第二个红框是客户端发送数据给服务端,服务端不作应答,第三个红框是客户端发送数据给服务端,但服务端自动应答一条数据回来。

我的疑惑是,第三个红框那里,一共四条。

  • 第一条,客户端发送;
  • 第二条,服务端返回 ack;
  • 第三条,服务端自动应答发送的数据;
  • 第四条,客户端返回 ack

我的疑惑是,为什么第二条和第三条不放在一起呢?不是可以节省流量么?反正都是要回复的啊?

阅读 2.6k
1 个回答

因为在第二条的时候,服务端并不知道有数据需要发送,所以立即回复了 ACK

观察抓包结果,你这个是交互(ping pong)的流量,那么即使 delay-ack 使能(默认),也不会生效。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进