3 ms·
Arguably "expect this to fail X% of the time" is a more robust approach - because in-order delivery or zero-loss situations are then simply best cases that "jus
by ay 12y ago
Arguably "expect this to fail X% of the time" is a more robust approach - because in-order delivery or zero-loss situations are then simply best cases that "just work".
But you can not make work what you can't test.
So anyone embarking on making their own transport protocol should test how their app works with various amounts of packet loss (1%, 5% and 20% are three reasonable marks to try which may happen in real world - especially in the wireless links case), as well as jitter, and variable delay.
To do such testing, it's handy to use a Linux module called "netem" which allows to simulate the delay, jitter and loss:
http://www.linuxfoundation.org/collaborate/workgroups/networking/netem
https://calomel.org/network_loss_emulation.html
- dspillett 12y agoYou also need vary the pattern of packet loss as well as the overall frequency: You could lose 20% of your packets over a short period in roughly even distribution (perhaps due to "constant" background noise), or you could lose a sequence of packets amounting to that much (due to a sudden burst of interference on a particular hop of a route).