我正在开发一个应用程序来分析您的互联网连接质量,其中一部分是测量数据包丢失。
我正在考虑将包发送到一个 IP 地址,但是如何发送消息并检查它们是否返回?我猜我需要发送一个提示回复的包裹,但我无法使用搜索或谷歌找到一个例子。
或者我应该使用现有流量(如何?)?
除此之外,我如何测量往返时间?
我正在开发一个应用程序来分析您的互联网连接质量,其中一部分是测量数据包丢失。
我正在考虑将包发送到一个 IP 地址,但是如何发送消息并检查它们是否返回?我猜我需要发送一个提示回复的包裹,但我无法使用搜索或谷歌找到一个例子。
或者我应该使用现有流量(如何?)?
除此之外,我如何测量往返时间?
由于 TCP 是可靠传输,因此您不会看到丢弃的数据包。在 Linux 中,您可以使用 ifconfig 查看发生了多少次重新传输。我不确定哪些命令行工具会在 Android 上向您显示此信息,但您需要使用系统工具来为您提供此信息。
顺便说一句,您可以使用 UDP 数据包估计数据包丢失。UDP 和 TCP 的数据包丢失率不一样,但它给了你一个想法。
您需要为此使用 UDP 或 ICMP (ping),因为您无法轻易看到 TCP 数据包丢失。
如果您使用 ICMP,则需要确保对方计算机响应 ICMP。防火墙通常会阻止 ICMP。
如果您使用 UDP,另一台计算机将需要能够识别您的数据包并尽快回复的服务器软件。最简单的服务器类型称为 Echo 服务器。
往返时间可以通过获取传输数据包的时间与收到该传输的回复的时间之间的差异来衡量。您的协议应该是微不足道的,以免污染往返时间与处理时间。