即使主机设备具有有效的IP地址

时间:2016-07-15 19:39:12

标签: networking ubuntu-14.04

我在cpp代码中使用ping命令,我的应用程序将使用此代码根据ping响应确定网络中的特定设备是连接还是断开连接。我们将以下参数发送到ping命令 dataBlockSize [56] packetCount [1] timeOut [1] host [IP Address]。

对于其中一个设备间歇性地ping不通,我们收到的数据包为0.它是间歇性的(有时ping是成功的,有时是几秒钟的失败)。即使设备有有效的IP,我也不确定为什么ping失败。任何人都可以让我知道ping命令失败的任何原因,即使设备已连接且具有有效的IP。如果连接类型很重要,则设备通过WiFi连接。

2 个答案:

答案 0 :(得分:1)

通常,这是网络拥塞。 ping使用的ICMP是低优先级流量,它是第一个在网络拥塞时被丢弃的流量。此外,被ping的主机可能太忙而无法响应。您应该检查路径中的网络设备的日志和接口,以查看是否存在拥塞。

答案 1 :(得分:1)

一个相关的问题可以在这里找到

https://unix.stackexchange.com/questions/211536/network-connection-only-works-for-a-while/211769#211769

一个好的答案对我有所帮助。如果您不想单击该链接,我在下面提供了更多信息。

在我的情况下,以以下方式对网络网关(10.20.0.254)进行ping操作时看到了问题:

$ ping 10.20.0.254
PING 10.20.0.254 (10.20.0.254) 56(64) bytes of data
64 bytes from 10.20.0.254: icmp_seq=4 ttl=255 time=0.815ms
64 bytes from 10.20.0.254: icmp_seq=5 ttl=255 time=0.792ms
64 bytes from 10.20.0.254: icmp_seq=6 ttl=255 time=0.619ms
64 bytes from 10.20.0.254: icmp_seq=7 ttl=255 time=0.781ms
64 bytes from 10.20.0.254: icmp_seq=8 ttl=255 time=0.740ms
64 bytes from 10.20.0.254: icmp_seq=54 ttl=255 time=0.812ms
64 bytes from 10.20.0.254: icmp_seq=55 ttl=255 time=0.757ms
64 bytes from 10.20.0.254: icmp_seq=56 ttl=255 time=0.775ms
64 bytes from 10.20.0.254: icmp_seq=57 ttl=255 time=0.799ms
64 bytes from 10.20.0.254: icmp_seq=58 ttl=255 time=0.748ms

请注意icmp_seq编号中与已删除的ping对应的间隔。

最后,我的问题是DHCP服务器为我的机器提供了一个已经在使用的IP(我猜是静态分配的)。手动设置一个未分配的IP(通过使用另一台计算机对DHCP服务器分配的IP周围的IP进行ping操作来确定)解决了我的问题。