2010-07-26 108 views
8

我正在獲取tcp連接的性能參數,其中一個參數是帶寬。我打算使用linux 2.6以上版本支持的tcp_info結構,它包含有關tcp連接的元數據。這些信息可以使用上的getsockopt()函數調用來檢索。我花了很多時間找到一個很好的文檔,它解釋了該結構中的所有參數,但找不到一個參數。良好的結構文檔tcp_info

此外,我測試了一個小程序,檢索tcp_info的tcp連接的值,我發現大多數時間的MSS值爲零。爲了使長篇短小 - 是否有一個鏈接跟隨其中有完成tcp_info的詳細信息,使用這些值也是可靠的。

回答

10

這裏的結構和使用由勒內·菲佛在linux tcp_info的一個fairly comprehensive write-up但有兩件事情值得一提:

  • 看這些數據重複隨着時間的推移,因爲有需要的作者在該結構中沒有聚合統計。
  • 作者將您引導至tcp.c源文件作爲任何這些數據含義的最終權威。
  • 我不確定你希望從最大分段大小中得到什麼,但期待你認爲它的意思是別的。

如果你在帶寬精確的測量真正感興趣的,你需要使用測量設備,是體制外的被連拉ioctls會影響到你有興趣瞭解有關這種現象的測試。被動的線嗅探器是獲得真正準確結果的唯一方法。最後,根據您的應用,「帶寬」是一個非常寬泛的保護傘,可將許多測量(例如延遲,往返時間,變化性,抖動等)整平爲一個類別。