在python

时间:2017-03-25 13:41:40

标签: python random packet-loss

我应该在Stop-and-wait协议中模拟丢包率为10 ^ -2,即0.01,这意味着传输的100个数据包中有1个会丢失。假设我正在发送1000个数据包,如何从整个传输过程中发送的100个数据包中丢弃1个随机数据包?

1 个答案:

答案 0 :(得分:1)

速率为0.01并不意味着100个数据包中只有1个被丢弃。这意味着每个数据包丢失的可能性为1%。假设损失相互独立,实际丢失的数据包数将遵循binomial distribution

对于您生成的每个数据包,检查随机统一(0,1)是否小于或等于损失的比例p,在您的情况下为0.01。如果是,则该数据包丢失,否则它将通过。如果增加或减少数据包总数N,此方法将进行扩展。预期的损失数量为N * p,但如果您多次重复实验,则会出现变异。