【问题标题】:Problem with asyn icmp ping异步 icmp ping 的问题
【发布时间】:2010-02-19 21:32:25
【问题描述】:

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

谢谢)

【问题讨论】:

    标签: python ping icmp


    【解决方案1】:

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

    【讨论】:

    • 我在 CentOs 上用 python 写这个。我正在使用原始套接字来处理 ICMP 协议。我嗅了嗅数据包..现在可以说他们真的在网上的某个地方丢失了。我可以在不设置超时的情况下解决这个问题..还是我没有其他方法?感谢您的快速回答))
    • 问题出在对所有 100kBytes 的服务器具有 ICMP 更清晰的高级系统上。当我们移动到服务器时,个人频道问题消失了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多