I'm writing service in python that async ping domains. So it must be able to ping many ip's at the same time. I wrote it on epoll ioloop, but have problem with packets loss.
When there are many simultaneous ICMP requests much part of replies on them didn't reach my servise. What may cause this situation and how i can make my service ping many hosts at the same time without packet loss?
Thanks)
A problem you might be having is due to the fact that ICMP is layer 3 of the OSI model and does not use a port for communication. In short, ICMP isn't really designed for this.  The desired behavior is still possible but perhaps the IP Stack you are using is getting in the way and if this is on a Windows system then 100% sure this is your problem.   I would fire up Wireshark to make sure you are actually getting incoming packets,  if this is the case then I would use libpcap to track in ICMP replies.   If the problem is with sending then you'll have to use raw sockets and build your own ICMP packets.
Problem with asyn icmp ping