假設我有一個4MBits網絡,我想計算數據吞吐量,這是考慮最大傳輸速率減去以太網/ IP/TCP報頭的開銷。 在網上閱讀我發現TCP段的MSS(最大段大小)是576-20-20,後兩個是TCP和IP頭的開銷,導致93%的數據,這意味着我將只是使用我的4MBits鏈接的93%來傳輸數據。現在鏈路ayer在哪裏開銷?不應該添加它嗎?如果我沒有錯,一個以太網頭大約是46個字節,所以最後的總和將是576 - 20 - 20 - 46 = 490,導致85%的數據吞吐量,但我做錯了什麼?計算網絡吞吐量
計算網絡吞吐量
回答
只是自下而上。普通的以太網幀(無巨型幀,無vlan標記)總共爲1542 bytes
,可以有有效載荷1500 bytes
。沒有選項的Ipv4頭部是20 bytes
,而沒有選項的TCP頭部也是20 bytes
。所以你最終得到鏈路層幀的可能有效載荷。所以你的效率是1460/1542=0.9468223086900129
,導致最大的吞吐量爲3.7872892347600517Mbps
。
但是請注意,這通常會更低。這是在TCP會話建立後以及當您是該鏈接的唯一用戶時,您可以在全雙工鏈路上獲得的連續流的理論最大速率。另請注意,只要您以稍高的速率發送一段時間,您的鏈接就會發生擁塞,您將看到丟包,並且由於啓動緩慢,您的實際TCP吞吐量可能會顯着下降。
如果鏈路是無線的(802.11),由於RTS/CTS機制,計算變得複雜得多,但它僅對於一個活動用戶而言大約爲/2
,並且沒有合併損失,這是不現實的。
我們是否應該考慮來自tcp的ack數據包消耗部分鏈路?即使他們沒有有效載荷,他們仍然擁有標題,甚至更多地降低了吞吐量,對嗎? – user1777914
不,如果您持續流式傳輸並延遲ACK(應爲默認值),則ACK將包含在常規數據包的標頭中。 – KillianDS
一般來說,協議會影響網絡吞吐量,而不僅僅是數據包開銷。您提到您要測量以太網/ IP/TCP網絡的吞吐量,但這些協議的數據包開銷並不是唯一需要考慮的因素。 TCP是面向連接的協議,使用ACK來發送是否接收到數據包。 user1777914錯過了關於ACK的標記,但是卻是一些東西 - 它們不佔用更多的空間,但它們可以延遲數據包的傳輸。隨着延遲增加,整體網絡吞吐量可能會降低,這取決於應用程序或託管OS預期響應的頻率。
W. Richard Stevens撰寫了一本關於TCP/IP的驚人書。 Here是一個除了解釋理論TCP性能,什麼影響它,以及如何計算。
Nagle算法也有助於延遲,但是如果禁用則會減慢吞吐量。
- 1. 吞吐量網絡估計
- 2. 計算吞吐量
- 3. Jmeter的吞吐量計算
- 4. NS3吞吐量計算
- 5. 如何計算INET的「吞吐量」示例中的吞吐量?
- 6. TCP網絡吞吐量測量
- 7. 如何計算吞吐量的Hadoop
- 8. 動態計算吞吐量時間段
- 9. 如何根據wireshark計算吞吐量
- 10. 谷歌計算引擎網絡入口吞吐速度
- 11. JMeter - 吞吐量
- 12. 吞吐量測量
- 13. 如何在運行時測量網絡吞吐量
- 14. 如何使用skype測量網絡吞吐量
- 15. 從其度量中計算Cassandra的吞吐量?
- 16. 吞吐量措施
- 17. TCP吞吐量圖
- 18. 淨 - 讀出當前的網絡接口吞吐量
- 19. 什麼會降低GKSession的網絡吞吐量?
- 20. 如何最大化HTTP網絡吞吐量?
- 21. 恆定的吞吐量計時器JMeter
- 22. JMeter的吞吐量控制器中的吞吐量影響
- 23. 測量datanode的吞吐量
- 24. AS3:計算當前上傳速度(或吞吐量)
- 25. 任何計算tcpdump輸出的吞吐量的程序?
- 26. 使用JMeter從站時如何計算吞吐量?
- 27. 如何計算AWS DynamoDB表的臨時吞吐量?
- 28. 計算吞吐量從Tomcat的響應時間
- 29. Jmeter總報告總吞吐量 - 如何計算
- 30. 吞吐量計算使用響應時間和沒有請求
這是MSS的最小值。通常情況下它會是1460. – cnicutar
仍然不回答這個問題,如果使用TCP,它是否應計算鏈路層報頭以計算鏈路的最大數據吞吐量? – user1777914
我沒有試圖回答你的問題本身。我只回答了*,但我做錯了什麼*。 – cnicutar