Jump to content
Posted 12 December 2012 - 04:30 PM
Posted 12 December 2012 - 05:53 PM
Posted 12 December 2012 - 06:23 PM
Posted 12 December 2012 - 06:45 PM
Posted 12 December 2012 - 07:09 PM
Thanks for the replies. From your posts, it sounds like UDP "isn't as bad" as I had expected. I was under the impression that packets are out of order and delayed fairly regularly. But hplus0603, if you're simply dropping packets any time they come late and it hasn't been an issue, then that probably doesn't happen too often. I know the answer is probably dependent on a lot of things, but about how often do issues such as out of order/dropped packets occur with UDP under a regular network load?
Posted 13 December 2012 - 10:57 AM
Posted 13 December 2012 - 03:07 PM
Posted 13 December 2012 - 04:05 PM
I included in each outgoing packet the "largest" sequence number received and a bit pattern representing Acks and NAcks for the X preceding packets
the packet was considered dropped and was resent
Posted 13 December 2012 - 04:22 PM
A single UDP packet generally contains a number of messages, some of which are reliable, and some of which are not. The ideal implementation will just re-schedule the reliable messages that were dropped for the next outgoing packet.
Posted 13 December 2012 - 04:43 PM
Anecdotally, in our networks course in university, our professor had us write a UDP-based file transfer utility, and test it over a variety of networks. Even streaming between cable connections on opposite coasts, I had a hard time achieving 2% packet loss, unless I was overloading the local wifi/router.
I did a small very unscientific test from my laptop on the
shittyless than well implemented wireless at my university in Denmark to my old virtual server in Germany. I send 100 packages each with four bytes. From me to my server all packages arrived perfectly in order every time (I think I tested 5-8 times) while on the way back there were always one or two that came in out of order. None of the packages where lost in any of the tests. While this is (as said) not scientific at all, it still gives a good indication, that on a someway good connection UDP works just fine
Posted 13 December 2012 - 08:38 PM
In this case we would need some further reliability infrastructure at the "message" level. That is, we would need to buffer out-of-order messages until dropped messages arrive, and we would need to reject message duplicates in the instance that the original "dropped" packet eventually makes its way across the wire.
Posted 22 December 2012 - 05:05 PM
Posted 22 December 2012 - 08:12 PM
That's an interesting idea, and I have not seen it done before. I wonder how different in practice it would be compared to a per-channel ordering dependency.
Implement it and ship a large game and then let us know how it turns out :-)