如何测量套接字实际使用的数据量

本文关键字:数据 套接字 何测量 测量 | 更新日期: 2023-09-27 17:59:38

我需要尽可能精确地测量我的应用程序使用了多少蜂窝服务提供商的数据限制。

是否可以获取.Net UDP套接字通过网络接口传输的数据量(包括UDP和IP的开销)

该应用程序是一个与大量嵌入式设备通信的服务器,每个嵌入式设备都使用GPRS连接到互联网,数据限制非常低(最多每月几兆字节,所以即使是偶尔几字节也很重要)。我知道这些设备不会打开与任何其他服务器的连接,所以测量服务器端的流量就足够了。

我知道我无法获得100%准确的数字(我不知道服务提供商收取的流量),但我希望尽可能接近。

如何测量套接字实际使用的数据量

假设这是IPv4,您可以为传输的每个数据添加28个字节,但您的问题是检测数据包丢失和潜在的碎片。你可以在通信中添加一些元数据来检测数据包丢失(例如序列号、确认等),但这会增加更多的开销,当然这可能不是你想要的。也许预计包裹损失的百分比会有所帮助。至于碎片,当你的消息大小大于MTU大小时,你可以进行补偿(我认为MTU大小可能很小,比如296个字节,但不太确定,也许可以与你的移动提供商核实)

另一个有点非侵入性的选项可能是读取进程的网络性能计数器,或者将通信限制在一个单独的AppDomain中。