On 14 April 2010 16:41, Emmanuel TAUREL <[email protected]> wrote: > On Wireshark, I now see the RDATA packets nevertheless, I have > identified two cases in which I have lost data: > > 1 - While my sender was re-transmitting packets due to NAK sent by the > sender, there was another NAK coming from the sender. > Then, the sender stops re-sending the lost packets requested by the > first NAK to re-send the packets requested by the second NAK. > Therefore, not all the packets requested by the first NAK were re-sent > and my application has lost messages. >
The NAK from the sender would actually be a NCF, a NAK confirmation. It should have the same set of sequences as the original NAK. Incoming NAKs are appended to a queue, there is no method for one NAK packet to preempt another. The NAKs will be dropped if the sequence is no longer available in the transmit window. The transmit window advances by time not by data, the sender needs to be configured such that the window is large enough in time to be valid for receiver NAKs. > 2 - A more obscure case where during a transmission in which I had NAK > and RDATA packets, there was simply a hole in the sequences of sent packets > without any NAK packet sent by the recever about this lost packets The absence of data is detected by the next valid packet, either ODATA or SPM. After the last ODATA packet you should see a stream of SPMs to specifically catch this situation. The intervals roughly double from 100ms until the heartbeat SPM rate which is in ØMQ is thirty seconds. -- Steve-o
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
