I do have 2 processes running. One is with RoundRobin (with a timer every 1ms) and triggers sending of data via raw socket. The other is just a simple binary, that sends via TCP data to a socket. As receiver I use the hercules TCP client tool . Once connected everything is fine. Both work in parallel.
As soon as I move the hercules window (or in rarer case just without action) I can observe the following in wireshark:
Sending TCP messages stops, just raw socket is working. After a while, a few ten to max 200ms the TCP traffic continues and at that moment raw socket is not sending anymore for around 20ms.
In my simplified test with just a binary that sends TCP data I can see in wireshark that TCP WINDOW ZERO is send by PC (device stops sending TCP data). After a while TCP WINDOW UPDATE is issued by PC and device continues sending. But data via raw sockets (triggered by 1ms timer) are not sent for 20ms.
In the original binary this are 2 processes in same binary. Behaviour is simular. I can't the this TCP WINDOW ZERO and WINDOW UPDATE message, but one of the TCP packages gets the ACK from PC only after 70...200ms. After resuming the raw socket is also dead for some time.
Anyone of you has an idea what is going wrong here? Is this a bug in network? Misconfiguration?