Question

I am writing an application that needs to send pictures from multiple senders to multiple receivers. This is already implemented via TCP but I would like to be able to achieve better speed so I am looking at multicast. UDP is too unreliable. PGM looks like the solution, but I am still not clear on some of its specifics:

  1. At some places it is stated: "PGM does not support acknowledged delivery, nor does it guarantee ordering of packets from multiple senders." Does this mean the following: Sender A sends 5 packets, sender B sends - 3. The receiver receives lets say the first 3 packets form A in the right order of sending, then for example the first 2 from B in the right order of sending and then the last 2 of A. So in the end I have A1, A2, A3, B1, B2, A4, A5. Or does it mean that even the packets from a given source won't be in order for example in the given case: A2, A5, B2, A4...? I hope this question is not too confusing.
  2. "PGM is a reliable and scalable multicast protocol that enables receivers to detect loss, request retransmission of lost data, or notify an application of unrecoverable loss." My question is regarding the notification for unrecoverable loss. I cannot understand what this means exactly. Will it give the application enough information so it can try to resend the packet?
Was it helpful?

Solution

1.) The first case. Packets from a single source are delivered in order

2.) No, on Windows the socket gets closed. I have not tried OpenPGM on Linux.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top