2017-03-25 110 views
0

我應該在Stop-and-wait協議中模擬10^-2的數據包丟失率,即0.01,這意味着100個數據包中有1個會丟失。假設我發送了1000個數據包,如何從傳輸過程中發送的100個數據包中正好丟棄1個隨機數據包?在python中模擬UDP中的數據包丟失

回答

1

速率爲0.01並不意味着100個數據包中只有1個被丟棄。這意味着每個數據包有1%的機會迷路。在假設損失彼此獨立的情況下,丟失的數據包的實際數量將遵循binomial distribution

對於您生成的每個數據包,檢查隨機均勻(0,1)是否小於或等於損失比例p,在您的情況下爲0.01。如果是這樣,那個數據包就會丟失,否則會通過。如果您增加或減少數據包總數N,則此方法會縮放。預計的損失數量將爲N * p,但如果您多次重複實驗,則會出現變化。