1

我有一个应用程序,其中两台计算机距离非常近 - 通常彼此相距几英尺。

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

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

当我使用 Wireshark 监控通信时,我注意到大约 66% 的传输数据包是 ACK。每个有效载荷数据包往往约为 5k。所以ACK 中的数据百分比非常低,只有 1% 或 2%。

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

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

4

1 回答 1

2

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

我认为你不应该被 ACK 的数量所困扰——如果它的窗口大小足够大,发送者就不会等待它们。您应该问自己的问题是 - 我是否获得了我应该获得的 LAN 速度的吞吐量?

于 2012-04-19T05:03:39.440 回答