UDP message delivery order is not guaranteed. Hell, UDP delivery itself is not guaranteed (although IME, messages don't usually get dropped unless they cross subnets).
UDP message delivery order is not guaranteed. Hell, UDP delivery itself is not guaranteed (although IME, messages don't usually get dropped unless they cross subnets).
> I asked if at-most-one delivery was ok, he said yes.
Use case satisfied.
>> I asked if at-most-one delivery was ok, he said yes.
> Use case satisfied.
No. https://wiki.wireshark.org/DuplicatePackets
"ConnectionlessProtocols such as UDP won't detect duplicate packets, because there's no information in, for example, the UDP header to identify a packet so that packets can be recognized as duplicates. The data from that packet will be indicated twice (or even more) to the application; it's the responsibility of the application to detect duplicates (perhaps by supplying enough information in its headers to do so) and process them appropriately, if necessary"
Nope. This is what "at-most-one" means. Either zero or one. Not two.
Three is right out.
> you also assume there is no other identifying info inside the packets that might provide an inherent protection anyways
Yes, but then if we're positing a system on top of UDP, then it doesn't matter what the protocol is, TCP or UDP. We can also assume the underlying system we're relying on can also detect missing requests, or even ensure we have exactly one.
But "is at-most-one ok?" doesn't necessarily mean that more is also unacceptable. All the valid and invalid conditions are not completely specified IMO.
If you propose delivering an at-most-once solution, the customer agrees that that is an acceptable parameter, and then you deliver a solution that has no at-most-once guarantee, you haven't delivered what you proposed, and you certainly have no reason to believe you've met the customer's needs.
> if we're positing a system on top of UDP, then it doesn't matter what the protocol is
And this is still true, and neither of us know if they would have designed it this way or not, but they could.
But given OPs need for at-most-once, this doesn't really seem to matter in the first place.
My thinking was that ordering would be pretty unaffected when there is only a single hop. But yeah, we would have needed to test that under load.