如何在高度可靠的批量传输期间减少 TCP ACK 的数量

本文关键字:TCP ACK 传输 高度 | 更新日期: 2023-09-27 18:31:40

我有一个应用程序,其中两台计算机的距离非常近 - 通常在几英尺之内。

我在两台计算机上的应用程序之间建立了TCP连接。服务器在Linux上是用C编写的,Windows上的客户端使用C#和TCPClient编写。

通过这个套接字,我正在传输非常大的有效负载,通常是一次千兆字节。

当我使用Wireshark来监控通信时,我注意到大约66%的传输数据包是ACK的。 每个有效负载数据包往往约为 5k。 因此,ACK中的数据百分比非常低,只有一两个百分点。

我应该关心ACK的数量吗? 我不关心数据包丢失,我希望连接在数据包丢失方面是高质量的。

我可以(或应该)做些什么来减少ACK的数量吗?

如何在高度可靠的批量传输期间减少 TCP ACK 的数量

您可能看到的是接收方确认发送方的传输。接收方必须使用仅限 ACK 的数据包,因为它没有其他要发送的内容(发送方也发送 ACK - 每个 TCP 数据包都包含一个 ACK)。

我认为您不应该为ACK的数量而烦恼 - 如果窗口大小足够大,发件人就不会等待它们。您应该问自己的问题是 - 我是否获得了 LAN 速度应该获得的吞吐量?