2014-02-21 52 views
1

我想了解如何通過求解一些數值示例來計算滑動窗口數據傳輸的吞吐量。下面是我的分析後面的例子。滑動窗口數據傳輸的最大吞吐量

主機A將數據發送到主機B,歷經全雙工鏈路。 A和B使用滑動窗口協議,每個發送和接收窗口大小爲5。僅從A發送到B的數據包大小爲1000字節,一個這樣的數據包的傳輸時間爲50us。傳播延遲是200 us。假設Ack數據包需要可忽略的傳輸時間。 Mbps的最大可達到吞吐量是多少?
A. 7.69 B. 11.11 12.33 C. D. 15.00

分析

  • 往返時間是2 * 200我們= 400我們。             ...填補發送窗口=窗口大小(5)1包的*發送時間(50微秒)= 250我們需要一個
  • 時間。            。B
  • 由於B < A,發送者在發送數據包6日之前等待ACK給1包。這一點出現在450美元。 (往返時間爲400美元)
  • 在250 us和450 us之間,發送者處於空閒狀態,即沒有新的數據通過線路發送。
  • 假設發件人有無限量的數據幀供應,上面的循環會重複。
  • 因此,在每450美國,發送者發送5個數據包= 5 * 1000 * 8 = 40000位數據。
  • 因此,吞吐量= 40000比特/ 450 us = 84.7710兆比特每秒。 (84.7710 Mbps)

但是,這不是給定的選項之一,甚至沒有關閉!上述分析中是否有錯誤?

+0

其實您的計算結果爲88.88 ... Mbps。現在,你確定他們不要求MBps(字節)嗎?因爲這將作爲其中一個選項完美結束(11.11)。你的計算似乎對我是正確的。 – KillianDS

回答

1

正如我在評論中所述,您的分析和計算方法是正確的。但是,如果我是你,我會檢查我的計算器,因爲40000 bits/450 us = 88.88...Mbps,而不是84.7710 Mbps

我不認爲這僅僅是巧合,​​3210只是11.11*8,所以這是一個公平的假設,問題實際上是要求每秒兆字節而不是每秒兆比特。

+0

自從我問這個問題以來,它已經很長時間了,所以我不得不再次滑動窗口協議*,但我認爲你是對的。我的計算中有一個錯誤。 MB/Mb(兆字節或兆字節)的擴展是混淆的一個豐富來源,因爲不同的作者使用它的方式不同,在這種情況下,我認爲作者/編輯也很困惑。這個問題是由Andrew Tanenbaum的計算機通信網絡逐字引用的。 –

0

吞吐量=窗口/ RTT

這裏窗口大小= 5 * 1000字節= 5000字節。

RTT = 50us + 2 * 200us => 450us。

因此吞吐量= 5000字節/ 450 us = 11.11Mpbs