0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TCP的这些内存开销原来是这样

Linux爱好者 来源:Linux爱好者 作者:Linux爱好者 2021-02-09 18:08 次阅读

实际中 TCP 连接上肯定是要进行数据的收发的,而且还会有 TIME_WAIT 等其它状态。在这些复杂情况下,一条连接占用多大内存呢?飞哥用做了七天的实验结果告诉你!

实验1:ESTABLISH空连接

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

4ee33f2c-61ff-11eb-8b86-12bb97331649.png

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

5221db58-61ff-11eb-8b86-12bb97331649.png

实验4:非 ESTABLISH 状态

54c32614-61ff-11eb-8b86-12bb97331649.png

55ae012a-61ff-11eb-8b86-12bb97331649.png

总结

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

567e20c6-61ff-11eb-8b86-12bb97331649.png

可见,内核在 socket 内存开销优化上采取了不少方法:

1. 内核会尽量及时回收发送缓存区、接收缓存区,但高版本做的更好

2. 发送接收缓存区最小并一定不是 rmem 内核参数里的最小值,实际可能会更小

3. 其它状态下,例如对于TIME_WAIT还会回收非必要的 socket_alloc 等对象

责任编辑:xj

原文标题:漫画:花了 7 天时间测试,我彻底搞明白了 TCP 的这些内存开销!

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 协议
    +关注

    关注

    2

    文章

    570

    浏览量

    38911
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72769
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1272

    浏览量

    78299

原文标题:漫画:花了 7 天时间测试,我彻底搞明白了 TCP 的这些内存开销!

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    涨知识了!元器件包装标签中的“e”代码,原来是这个含义……

    涨知识了!元器件包装标签中的“e”代码,原来是这个含义……
    的头像 发表于 12-06 15:43 571次阅读

    高速DAC相位噪声从何而来?首要的原因原来是它……

    高速DAC相位噪声从何而来?首要的原因原来是它……
    的头像 发表于 11-29 16:56 185次阅读
    高速DAC相位噪声从何而来?首要的原因<b class='flag-5'>原来是</b>它……

    tcp最大连接数受什么限制

    第一种,对端程序是正常工作的。当 TCP 保活的探测报文发送给对端, 对端会正常响应,这样 TCP 保活时间会被重置,等待下一个 TCP 保活时间的到来。
    发表于 11-16 16:23 430次阅读
    <b class='flag-5'>tcp</b>最大连接数受什么限制

    高并发内存池项目实现

    池相关知识 1、池化技术 池化技术就是程序先向系统申请过量的资源,并将这些资源管理起来,避免频繁的申请和释放资源导致的开销内存池可以使用池化技术来维护可用内存块的链表。当程序需要分
    的头像 发表于 11-09 11:16 282次阅读
    高并发<b class='flag-5'>内存</b>池项目实现

    什么是内存

    1什么是内存池 1.1池化技术 所谓“池化技术”,就是程序先向系统申请过量的资源,然后自己管理,以备不时之需。之所以要申请过 量的资源,是因为每次申请该资源都有较大的开销,不如提前申请好了,这样
    的头像 发表于 11-08 16:26 395次阅读
    什么是<b class='flag-5'>内存</b>池

    如何解决内存碎片与内存交换效率慢的问题

    内存分页 分段的好处是能产生连续的内存空间,但是会出现大量内存碎片与内存交换效率低的问题 先思考一下怎么解决这两个问题,内存碎片是由多个不连
    的头像 发表于 10-09 16:57 548次阅读
    如何解决<b class='flag-5'>内存</b>碎片与<b class='flag-5'>内存</b>交换效率慢的问题

    以太网/TCP-IP-内存管理

    Lwip:堆+池 •堆(两个选项) •C标准库 •lwIP的自定义基于堆(默认),需要反转一些内存 •用于什么(PBUF_RAM,tcp参数) •记忆池 •实现快速高效的内存分配 •用于什么(PCB、PBUF_POOLS和ROM
    发表于 09-12 07:33

    LED原理,原来是这样的!

    电源电路元器件电子技术
    学习电子知识
    发布于 :2023年09月07日 20:49:01

    手机信号满格却无法使用,原来是这些问题!

    为什么有时候手机信号显示满格,却无法拨打电话或者上网呢?是什么原因导致的?手机信号的强弱又取决于什么呢?
    的头像 发表于 09-04 11:43 1565次阅读
    手机信号满格却无法使用,<b class='flag-5'>原来是</b><b class='flag-5'>这些</b>问题!

    避障常用哪些传感器?机器人视觉避障原来是这样

    避障是指移动机器人在行走过程中,通过传感器感知到在其规划路线上存在静态或动态障碍物时,按照 一定的算法实时更新路径,绕过障碍物,最后达到目标点。
    发表于 07-26 14:47 1602次阅读
    避障常用哪些传感器?机器人视觉避障<b class='flag-5'>原来是</b><b class='flag-5'>这样</b>的

    八类网线原来是这样的-

    若您身处于网络通信行业,相信您应该了解一些以太网线缆,比如说超五类网线、六类网线和七类网线等等。但是您知道八类网线是什么吗?它与五类网线、六类/超六类网线及七类/超七类网线有着怎么样的区别呢?下面就由科兰通讯带您认识新一代网络跳线——八类网线吧。 八类网线是什么? 八类网线是最新一代双屏蔽(SFTP)的网络跳线,它拥有两个导线对,可支持2000MHz的带宽,且传输速率高达40Gb/s,但它最大传输距离仅有30m,故一般用于短距离数据中心
    的头像 发表于 07-14 10:29 483次阅读

    TCP四次挥手的过程与状态

    这样他们两个之间就没有什么关系。这样一个过程同样像极了TCP要断开连接的过程。
    的头像 发表于 07-10 16:25 510次阅读
    <b class='flag-5'>TCP</b>四次挥手的过程与状态

    4515-DS5A004DP差压传感器原来是这样

    在这个大流行的世界中,我们比以往任何时候都更需要高效的HVAC系统,4515-DS5A004DP传感器确定一个良好的HVAC系统可以输出的空气质量。 什么是传感器差压?
    的头像 发表于 06-09 15:33 293次阅读
    4515-DS5A004DP差压传感器<b class='flag-5'>原来是</b><b class='flag-5'>这样</b>的

    欧姆龙PLC的地址原来是这样分配的

    欧姆龙PLC系统中的单元,根据前后位置或单元的特殊性,分别占用CIO区不同的地址,了解地址分配、知道输入、输出数据的具体存放位置,就能够利用编程对数据进行正确的处理。
    发表于 06-08 09:53 5798次阅读
    欧姆龙PLC的地址<b class='flag-5'>原来是</b><b class='flag-5'>这样</b>分配的

    IC芯片为什么要进行测试?原来是这样

    对于大多数产品来说,在上市初期都是更看重它的性能,但如果想要长期发展,那么品质必须决定产品的长期价值。其实这个道理很简单,但是在我国芯片产业的发展中却没有体现出来。市场更关注芯片产业链的上游,对质量控制并不太重视。IC芯片产业链从上游到下游是设计、带出、制造、封装和测试。目前市场上基本上集中在芯片设计、流片、制造三个环节,对芯片测试环节并不重视,甚至把测试和封装一起称为封装测试。那么IC芯片测试有什么作用。为什么要做IC芯片测试。下面跟安玛科技小编一起来看看吧。
    的头像 发表于 06-05 17:43 841次阅读