2013-11-23 80 views
0

這個問題是在一個測試審查,我真的不知道答案。TCP數據包序列號

TCP數據包正在從客戶端發送到服務器。 MMS等於1460字節,每個TCP數據包以最大容量發送。 TCP報頭中的序列號字段之前可以發送多少個TCP數據包?

這需要幾秒鐘的時間才能完成1 Mbit/s的連接?

這將花費1Gbit/s鏈路多長時間?

是否有某種形式的公式用於解決這個問題?

謝謝!

+0

你覺得呢?請注意,除非您計劃編寫代碼,並詢問與此代碼有關的事情,否則這類問題與Stack Overflow無關。 –

+0

此外,ACK和延遲可能因素。 –

+0

我的道歉。哪裏會是一個更好的地方發佈它。在這個例子中,我認爲我們忽略了ACK和延遲 –

回答

0

每個TCP段包含1460個字節,並且TCP報頭中的序列號是4個字節= 32位,因此需要發送2^32個字節(因爲序列號測量字節而不是比特)以便序列號字段環繞。

爲了計算你需要考慮延遲:

  • 傳輸時間 - 花費的時間包的比特推入鏈。
  • 傳播時間 - 信號到達目的地的時間。
  • 處理延遲 - 時間路由器處理數據包頭。
  • 排隊延遲 - 數據包在路由隊列中花費的時間。

在你的問題中,傳輸時間是1 Mbit/s和1Gbit/s,我假設其他延遲是0;所以時間將需要發送2^32個字節= 8 * 2^32上位:

1兆比特/秒鏈路: 8 * 2^32/10^6 =34359秒

的1Gbit/s鏈路: 8 * 2^32/10萬9 =34秒

希望這有助於你