Freebsd
FreeBSD netstat -anx 中的 Send-Q 和 S-BCNT 有什麼區別?
擴展 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 頁