Python asyn icmp ping问题

Python asyn icmp ping问题,python,ping,icmp,Python,Ping,Icmp,我正在用python编写异步ping域的服务。所以它必须能够同时ping多个ip。我在epoll ioloop上写的,但是有数据包丢失的问题。 当同时有许多ICMP请求时,大部分回复都没有到达我的服务。造成这种情况的原因是什么?如何使我的服务同时ping多个主机而不丢失数据包 谢谢)您可能遇到的问题是由于ICMP是OSI模型的第3层,不使用端口进行通信。简而言之,ICMP并不是专门为此而设计的。所需的行为仍然是可能的,但可能您正在使用的IP堆栈正在妨碍您,如果这是在Windows系统上,则100

我正在用python编写异步ping域的服务。所以它必须能够同时ping多个ip。我在epoll ioloop上写的,但是有数据包丢失的问题。 当同时有许多ICMP请求时,大部分回复都没有到达我的服务。造成这种情况的原因是什么?如何使我的服务同时ping多个主机而不丢失数据包


谢谢)

您可能遇到的问题是由于ICMP是OSI模型的第3层,不使用端口进行通信。简而言之,ICMP并不是专门为此而设计的。所需的行为仍然是可能的,但可能您正在使用的IP堆栈正在妨碍您,如果这是在Windows系统上,则100%确定这是您的问题。我会启动Wireshark以确保您确实收到了传入的数据包,如果是这种情况,那么我会使用libpcap跟踪ICMP回复。如果问题在于发送,那么您必须使用原始套接字并构建自己的ICMP数据包

我在CentOs上用python写这篇文章。我使用原始套接字处理ICMP协议。我嗅了嗅那个包。。现在可以说他们真的在网上迷失了方向。我可以在不设置超时的情况下解决此问题吗。。或者我没有别的办法?感谢您的快速回答)问题出现在上层系统上,对于所有100KB的服务器,ICMP的清晰度都更高。当我们移动到服务器时,个人通道问题消失了