实际中 TCP 连接上肯定是要进行数据的收发的,而且还会有 TIME_WAIT 等其它状态。在这些复杂情况下,一条连接占用多大内存呢?飞哥用做了七天的实验结果告诉你!
实验1:ESTABLISH空连接
实验2:客户端 => 服务器发送数据测试

实验3: 服务器 => 客户端发送数据测试

实验4:非 ESTABLISH 状态


总结
我们把实验中的数据来总结一下

可见,内核在 socket 内存开销优化上采取了不少方法:
1. 内核会尽量及时回收发送缓存区、接收缓存区,但高版本做的更好
2. 发送接收缓存区最小并一定不是 rmem 内核参数里的最小值,实际可能会更小
3. 其它状态下,例如对于TIME_WAIT还会回收非必要的 socket_alloc 等对象
责任编辑:xj
原文标题:漫画:花了 7 天时间测试,我彻底搞明白了 TCP 的这些内存开销!
文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。
-
协议
+关注
关注
2文章
620浏览量
41185 -
内存
+关注
关注
9文章
3231浏览量
76499 -
TCP
+关注
关注
8文章
1432浏览量
83758
原文标题:漫画:花了 7 天时间测试,我彻底搞明白了 TCP 的这些内存开销!
文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
存储芯片闪崩!谷歌发布新算法,AI内存占用只需原来1/6?
TCP/BDP问题的诊断方法和优化方案
Linux Swap交换空间详解:Android编译内存不足?这样扩充立竿见影
为什么会有TCP/IP协议?
为什么电脑插了UPS,断电瞬间依然会重启?真相原来是这样!
塔讯 Modbus RTU 转 Modbus TCP 在污水处理厂 PLC 数据采集中的配置案例
什么是Modbus TCP协议
TCP攻击是什么?有什么防护方式?
为什么你的电动兽耳经常卡顿?原来是这个地方出了问题
HarmonyOS优化应用内存占用问题性能优化一
labview tcp读取数据不完整
TCP三次握手和四次挥手,这样解释太通俗易懂了!
TCP的这些内存开销原来是这样
评论