Freebsd

FreeBSD netstat -anx 中的 Send-Q 和 S-BCNT 有什麼區別?

  • April 3, 2012

擴展 netstat 統計中的 Send Buffer byte count 的確切含義是什麼,為什麼它總是比 Send-Q 大?

換句話說,S-BCNT 算什麼,而 Send-Q 不算?

S-BCNT 是用來計算特定連接系統成本的更好數字嗎?

您可以在以下位置找到定義和評論sys/sys/sockbuf.h

   u_int   sb_cc;      /* (c/d) actual chars in buffer */
   u_int   sb_mbcnt;   /* (c/d) chars of mbufs used */

BSD 使用稱為mbuf/mbuf_cluster的結構來儲存網路數據。從驅動程式碼到套接字層,它們無處不在。即使數據包有 1 個字節的有效負載,它也會mbuf在 mbuf 中消耗 256 ( ) 個字節。如果數據包大小(包含所有幀/數據包標頭)>= 256,它將消耗 256 ( mbuf) + 2048 ( mbuf_cluster) 個字節。sb_cc因此和之間的區別sb_mbcnt

回答您的問題:S-BCNT使用更正確的值。

附言。有關詳細資訊,請參閱TCP/IP 圖解第 2 卷 - W. Richard Stevens 和 Garry R. Wright,第 16 章 - 套接字 I/O,第 16.3 節 - 套接字緩衝區,第 476 頁

引用自:https://serverfault.com/questions/348992