gpt4 book ai didi

networking - 停止并等待 TCP 是否发送带有 ACK 的数据?

转载 作者:可可西里 更新时间:2023-11-01 02:42:40 26 4
gpt4 key购买 nike

假设我有一个带有客户端和服务器的简单 TCP 连接。客户端向服务器发送一些数据,服务器在对原始数据进行一些处理后将一些数据返回给客户端。

我不是 100% 了解数据包流在这种情况下如何使用停止和等待协议(protocol)工作。客户端向服务器发送原始数据时,服务器是同时发送ACK和新数据(同一个数据包?),还是分开发送?

根据我在网上看到的示例,我无法完全理解服务器何时将数据发送回客户端与何时发送 ACK 相关。

谢谢!

最佳答案

如果服务器已经排队等待发送回客户端的一些数据,它可以使用TCP piggybacking这样(服务器对客户端数据包的确认)和(服务器的一些回复数据)共享一个数据包。这使得协议(protocol)更加高效,因为需要发送回客户端的数据包更少。

如果服务器在它想要发送 ACK 数据包时没有任何它自己的应用程序级数据要发回,那么 ACK 数据包将作为一个独立的数据包返回给客户端。 (在停止等待协议(protocol)中,服务器可能还没有准备好发送回任何应用程序级数据,因为一旦收到客户端的数据包,ACK 就应该返回给客户端,并且在在这种情况下,服务器应用程序在完成对接收到的客户端数据的处理之前不会生成任何数据)

关于networking - 停止并等待 TCP 是否发送带有 ACK 的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28550187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com