I've implemented a PGM publisher/subscriber setup. The server receives data from a TCP connection to another server, and distributes it to clients using the PGM protocol.
However, after logging the data on both server and client it would seem the data is received by my server but is not received by the client. After collecting pcaps, there are also no NAKs from what I can tell in Wireshark.
We have a very powerful network card on the server that should easily be able to handle the bandwidth of the application. The PGM buffer size and transmit rate are pulled directly from the NetMQ tutorial https://netmq.readthedocs.io/en/latest/transports/
I'm not an expert in networking and unsure what could be done to prevent the apparent packet loss. It seems we've tried everything at this point (PGM was tried after tcp pub/sub had the same issue.) Any guidance would be much, much appreciated
- TCP pub/sub
- Collecting and analyzing pcaps (no NAKs from PGM could be found in Wireshark. Some segments of out of order / retransmission with TCP.)
- Changing queue and buffer sizes.
- Increasing network card potency.
- Logging data from client to server, and from source to server.
- Trying one-to-one client to server connection to eliminate bandwidth being the cause.
- Various OS level debugging, buffer size changes, etc. that proved futile.