使用Java测量数据包丢失

时间:2013-07-18 15:29:54

标签: java android packet packet-loss

我正在开发一个分析您的互联网连接质量的应用程序,其中一部分是测量数据包丢失。

我在考虑将包发送到IP地址,但是如何发送邮件并检查它们是否返回?我猜我需要发送一个提示回复的软件包,但我找不到使用搜索或Google的示例。

或者我应该使用现有流量(如何?)?

除此之外,我如何衡量往返时间?

2 个答案:

答案 0 :(得分:1)

由于TCP是可靠的传输,因此您看不到丢弃的数据包。在Linux中,您可以使用ifconfig查看您发生的重新传输次数。我不确定哪些命令行工具会在Android上显示此信息,但您需要使用系统工具为您提供此信息。

BTW您可以使用UDP数据包估计数据包丢失.UDP和TCP的数据包丢失率并不相同,但它可以让您有所了解。

答案 1 :(得分:0)

您需要使用UDP或ICMP(ping),因为您将无法轻松看到TCP数据包丢失。

如果您使用ICMP,则需要确保对方计算机响应ICMP。防火墙通常会阻止ICMP。

如果您使用UDP,则另一台计算机将需要服务器软件,该软件可以识别您的数据包并尽快回复。最简单的服务器类型称为Echo Server。

这是Java UDP Echo Server

往返时间可以通过获取传输数据包的时间与收到传输回复的时间之间的差异来衡量。您的协议应该是微不足道的,以免污染往返时间和处理时间。

相关问题