實際中 TCP 連接上肯定是要進行數據的收發的,而且還會有 TIME_WAIT 等其它狀態。在這些復雜情況下,一條連接占用多大內存呢?飛哥用做了七天的實驗結果告訴你!
實驗1:ESTABLISH空連接
實驗2:客戶端 => 服務器發送數據測試
實驗3: 服務器 => 客戶端發送數據測試
實驗4:非 ESTABLISH 狀態
總結
我們把實驗中的數據來總結一下
可見,內核在 socket 內存開銷優化上采取了不少方法:
1. 內核會盡量及時回收發送緩存區、接收緩存區,但高版本做的更好
2. 發送接收緩存區最小并一定不是 rmem 內核參數里的最小值,實際可能會更小
3. 其它狀態下,例如對于TIME_WAIT還會回收非必要的 socket_alloc 等對象
責任編輯:xj
原文標題:漫畫:花了 7 天時間測試,我徹底搞明白了 TCP 的這些內存開銷!
文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
-
協議
+關注
關注
2文章
614瀏覽量
39816 -
內存
+關注
關注
8文章
3108瀏覽量
74983 -
TCP
+關注
關注
8文章
1397瀏覽量
80374
原文標題:漫畫:花了 7 天時間測試,我徹底搞明白了 TCP 的這些內存開銷!
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
新版本 IDE 的啟動速度變快了?原來是在背后做了這些!

TCP協議的常見應用場景
如何優化TCP協議的性能
TCP協議的安全性分析
什么是TCP協議及其工作原理


MODBUS TCP 轉 CANOpen

EtherCAT轉Modbus TCP協議網關(JM-ECT-TCP)


EtherNet/IP轉Modbus-TCP協議網關(EtherNet/IP轉Modbus-TCP)

EtherNet/IP轉Modbus-TCP協議網關(JM-EIP-TCP)

一文了解TCP/IP協議

評論