實際中 TCP 連接上肯定是要進行數據的收發的,而且還會有 TIME_WAIT 等其它狀態。在這些復雜情況下,一條連接占用多大內存呢?飛哥用做了七天的實驗結果告訴你!
實驗1:ESTABLISH空連接
實驗2:客戶端 => 服務器發送數據測試

實驗3: 服務器 => 客戶端發送數據測試

實驗4:非 ESTABLISH 狀態


總結
我們把實驗中的數據來總結一下

可見,內核在 socket 內存開銷優化上采取了不少方法:
1. 內核會盡量及時回收發送緩存區、接收緩存區,但高版本做的更好
2. 發送接收緩存區最小并一定不是 rmem 內核參數里的最小值,實際可能會更小
3. 其它狀態下,例如對于TIME_WAIT還會回收非必要的 socket_alloc 等對象
責任編輯:xj
原文標題:漫畫:花了 7 天時間測試,我徹底搞明白了 TCP 的這些內存開銷!
文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
-
協議
+關注
關注
2文章
618瀏覽量
41080 -
內存
+關注
關注
9文章
3209瀏覽量
76358 -
TCP
+關注
關注
8文章
1424瀏覽量
83503
原文標題:漫畫:花了 7 天時間測試,我徹底搞明白了 TCP 的這些內存開銷!
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Linux下擴充Swap交換空間:解決內存不足的實用指南,這些影響要注意!
Linux Swap交換空間詳解:Android編譯內存不足?這樣擴充立竿見影
為什么會有TCP/IP協議?
為什么電腦插了UPS,斷電瞬間依然會重啟?真相原來是這樣!
塔訊 Modbus RTU 轉 Modbus TCP 在污水處理廠 PLC 數據采集中的配置案例
什么是Modbus TCP協議
TCP攻擊是什么?有什么防護方式?
為什么你的電動獸耳經常卡頓?原來是這個地方出了問題
HarmonyOS優化應用內存占用問題性能優化一
labview tcp讀取數據不完整
TCP三次握手和四次揮手,這樣解釋太通俗易懂了!
Modbus TCP通信的那些坑!你遇到過幾個?
Modbus TCP轉Profibus DP網關的防撞雷達應用
HBM新技術,橫空出世:引領內存芯片創新的新篇章
TCP的這些內存開銷原來是這樣
評論