hello, I did open this issue
http://bugs.python.org/issue27271 and I got recommendation from to open a discussion . I do have a solution by UDP. +++++ client generating traffic by SCTP -----> server generating reports by UDP ( without any response back) ---> server asyncio receiving UDP and sending heartbeat every 10 seconds to another ip.addr and sending all reports by tcp to elasticsearch. +++++ I am monitoring all machines by tcpdump , I do have linux embedded and windows7 and windows server 2012 in this scenario. tcpdump 163 packets captured 835 packets received by filter 0 packets dropped by kernel 001A-$ tcpdump have this func to report packets dropped by kernel. and in my case it will be always zero. here is the mismatch that I am always seen during tests: +++ 124605 UDP packets send from client. and received by server network: tcpdump Packets: 124605 correct number send and received. 124605 ++++++ received by application, I do have a count for all udp received by application: def datagram_received(self, data, addr): [2016-06-08 14:59:49] total udp = 124255,queue size =0 [2016-06-08 14:59:49] Got 124255 json report from server. only 124255 received by application. 124605 - 124255 = 350 udp , received by network card , but application never got it. we are missing 350 udp. less udp per second then this problem will disappear. and I am monitoring cpu/memory/network and there is no bottleneck. +++ now, I have this problem . tcpdump does not show any dropped by kernel, but on asyncio i am not able to debug it. debug between kernel and datagram_received : def datagram_received(self, data, addr): asyncio_queue.put_nowait(data) I do have two threads, main to handle datagram_received add to queue and another to read from queue and handle tcp/json. regards! Valdemar
