停止和等待TCP是否使用ACK发送数据?

时间:2015-02-16 20:55:18

标签: networking tcp

我们说我有一个简单的TCP连接w /客户端和服务器。客户端将一些数据发送到服务器,服务器在对原始数据进行一些处理后将一些内容发送回客户端。

对于使用停止和等待协议在这种情况下数据包流如何工作,我不是100%。当客户端将原始数据发送到服务器时,服务器是否同时发送ACK和新数据(相同的数据包?),还是单独发送?

从我在网上看过的例子来看,当服务器发送数据与客户端发送ACK时,我无法完全理解数据。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果服务器有一些数据已经排队等待发送回客户端,它可以使用TCP piggybacking以便(服务器的客户端数据包)和(某些数据包)服务器的回复数据)共享一个数据包。这使协议更有效率,因为必须将更少的数据包发送回客户端。

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