0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCP的這些內(nèi)存開銷原來(lái)是這樣

Linux愛好者 ? 來(lái)源:Linux愛好者 ? 作者:Linux愛好者 ? 2021-02-09 18:08 ? 次閱讀

實(shí)際中 TCP 連接上肯定是要進(jìn)行數(shù)據(jù)的收發(fā)的,而且還會(huì)有 TIME_WAIT 等其它狀態(tài)。在這些復(fù)雜情況下,一條連接占用多大內(nèi)存呢?飛哥用做了七天的實(shí)驗(yàn)結(jié)果告訴你!

實(shí)驗(yàn)1:ESTABLISH空連接

實(shí)驗(yàn)2:客戶端 => 服務(wù)器發(fā)送數(shù)據(jù)測(cè)試

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

實(shí)驗(yàn)3: 服務(wù)器 => 客戶端發(fā)送數(shù)據(jù)測(cè)試

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

實(shí)驗(yàn)4:非 ESTABLISH 狀態(tài)

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

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

總結(jié)

我們把實(shí)驗(yàn)中的數(shù)據(jù)來(lái)總結(jié)一下

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

可見,內(nèi)核在 socket 內(nèi)存開銷優(yōu)化上采取了不少方法:

1. 內(nèi)核會(huì)盡量及時(shí)回收發(fā)送緩存區(qū)、接收緩存區(qū),但高版本做的更好

2. 發(fā)送接收緩存區(qū)最小并一定不是 rmem 內(nèi)核參數(shù)里的最小值,實(shí)際可能會(huì)更小

3. 其它狀態(tài)下,例如對(duì)于TIME_WAIT還會(huì)回收非必要的 socket_alloc 等對(duì)象

責(zé)任編輯:xj

原文標(biāo)題:漫畫:花了 7 天時(shí)間測(cè)試,我徹底搞明白了 TCP 的這些內(nèi)存開銷!

文章出處:【微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 協(xié)議
    +關(guān)注

    關(guān)注

    2

    文章

    592

    瀏覽量

    39053
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2903

    瀏覽量

    73547
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78759

原文標(biāo)題:漫畫:花了 7 天時(shí)間測(cè)試,我徹底搞明白了 TCP 的這些內(nèi)存開銷!

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    EtherCAT轉(zhuǎn)Modbus TCP協(xié)議網(wǎng)關(guān)(JM-ECT-TCP

    JM-ECT-TCP網(wǎng)關(guān)實(shí)現(xiàn)EtherCAT網(wǎng)絡(luò)與Modbus TCP網(wǎng)絡(luò)之間的數(shù)據(jù)通訊,即將Modbus TCP設(shè)備轉(zhuǎn)換為EtherCAT設(shè)備。
    的頭像 發(fā)表于 09-07 17:05 ?194次閱讀
    EtherCAT轉(zhuǎn)Modbus <b class='flag-5'>TCP</b>協(xié)議網(wǎng)關(guān)(JM-ECT-<b class='flag-5'>TCP</b>)

    EtherNet/IP轉(zhuǎn)Modbus-TCP協(xié)議網(wǎng)關(guān)(EtherNet/IP轉(zhuǎn)Modbus-TCP

    /IP轉(zhuǎn)Modbus TCP從站協(xié)議網(wǎng)關(guān),可以實(shí)現(xiàn)對(duì)這些設(shè)備的集中管理和控制。 二,典型應(yīng)用拓?fù)鋱D 三,設(shè)備技術(shù)參數(shù) 捷米特JM-EIP-TCP設(shè)備在Et
    的頭像 發(fā)表于 09-04 11:09 ?159次閱讀
    EtherNet/IP轉(zhuǎn)Modbus-<b class='flag-5'>TCP</b>協(xié)議網(wǎng)關(guān)(EtherNet/IP轉(zhuǎn)Modbus-<b class='flag-5'>TCP</b>)

    一文了解TCP/IP協(xié)議

    TCP/IP協(xié)議是現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)通信的基礎(chǔ),是互聯(lián)網(wǎng)及局域網(wǎng)廣泛使用的一套協(xié)議。TCP/IP協(xié)議集包括許多協(xié)議,其中最重要的是傳輸控制協(xié)議(TCP)和因特網(wǎng)協(xié)議(IP)。這些協(xié)議定義了
    的頭像 發(fā)表于 08-07 15:38 ?376次閱讀
    一文了解<b class='flag-5'>TCP</b>/IP協(xié)議

    使用espconn_set_opt設(shè)置了TCP斷開連接后立刻釋放內(nèi)存,好像不生效,怎么解決?

    在使用espconn_set_opt設(shè)置了TCP斷開連接后立刻釋放內(nèi)存,好像不生效。我用的是以下的設(shè)置方法: err=espconn_set_opt(conn,ESPCONN_REUSEADDR
    發(fā)表于 07-10 07:21

    精密空調(diào)—機(jī)房空調(diào)“鬧情緒”?原來(lái)是這些故障在作怪!

    故障現(xiàn)象:精密空調(diào)不制冷或制冷效果不佳 原因分析:制冷系統(tǒng)故障、制冷劑泄漏、過(guò)濾網(wǎng)堵塞等。 解決方法:檢查制冷系統(tǒng)是否正常,補(bǔ)充制冷劑,清洗或更換過(guò)濾網(wǎng)。
    的頭像 發(fā)表于 02-24 18:21 ?308次閱讀
    精密空調(diào)—機(jī)房空調(diào)“鬧情緒”?<b class='flag-5'>原來(lái)是</b><b class='flag-5'>這些</b>故障在作怪!

    UDP與TCP的主要區(qū)別 UDP能否像TCP一樣實(shí)現(xiàn)可靠傳輸?

    據(jù)包的傳輸不進(jìn)行確認(rèn)和重傳,而TCP是一種面向連接的協(xié)議,通過(guò)確認(rèn)和重傳來(lái)實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸。 首先,UDP無(wú)連接的特點(diǎn)使得它在傳輸時(shí)的開銷較小。UDP的數(shù)據(jù)包不需要建立和維護(hù)連接,僅包括源端口、目的端口、長(zhǎng)度和校驗(yàn)和等基本信息,因此UDP的頭部比
    的頭像 發(fā)表于 01-22 16:10 ?613次閱讀

    漲知識(shí)了!元器件包裝標(biāo)簽中的“e”代碼,原來(lái)是這個(gè)含義……

    漲知識(shí)了!元器件包裝標(biāo)簽中的“e”代碼,原來(lái)是這個(gè)含義……
    的頭像 發(fā)表于 12-06 15:43 ?970次閱讀

    高速DAC相位噪聲從何而來(lái)?首要的原因原來(lái)是它……

    高速DAC相位噪聲從何而來(lái)?首要的原因原來(lái)是它……
    的頭像 發(fā)表于 11-29 16:56 ?340次閱讀
    高速DAC相位噪聲從何而來(lái)?首要的原因<b class='flag-5'>原來(lái)是</b>它……

    tcp最大連接數(shù)受什么限制

    第一種,對(duì)端程序是正常工作的。當(dāng) TCP ?;畹奶綔y(cè)報(bào)文發(fā)送給對(duì)端, 對(duì)端會(huì)正常響應(yīng),這樣 TCP 保活時(shí)間會(huì)被重置,等待下一個(gè) TCP 保活時(shí)間的到來(lái)。
    發(fā)表于 11-16 16:23 ?1197次閱讀
    <b class='flag-5'>tcp</b>最大連接數(shù)受什么限制

    TCP協(xié)議的連接狀態(tài)

    TCP是一個(gè)巨復(fù)雜的協(xié)議,因?yàn)樗鉀Q很多問(wèn)題,而這些問(wèn)題又帶出了很多子問(wèn)題和陰暗面。所以學(xué)習(xí)TCP本身是個(gè)比較痛苦的過(guò)程,但對(duì)于學(xué)習(xí)的過(guò)程卻能讓人有很多收獲。 一、TCP協(xié)議的定義
    的頭像 發(fā)表于 11-13 15:47 ?1111次閱讀
    <b class='flag-5'>TCP</b>協(xié)議的連接狀態(tài)

    高并發(fā)內(nèi)存池項(xiàng)目實(shí)現(xiàn)

    相關(guān)知識(shí) 1、池化技術(shù) 池化技術(shù)就是程序先向系統(tǒng)申請(qǐng)過(guò)量的資源,并將這些資源管理起來(lái),避免頻繁的申請(qǐng)和釋放資源導(dǎo)致的開銷。 內(nèi)存池可以使用池化技術(shù)來(lái)維護(hù)可用內(nèi)存塊的鏈表。當(dāng)程序需要分配
    的頭像 發(fā)表于 11-09 11:16 ?566次閱讀
    高并發(fā)<b class='flag-5'>內(nèi)存</b>池項(xiàng)目實(shí)現(xiàn)

    什么是內(nèi)存

    1什么是內(nèi)存池 1.1池化技術(shù) 所謂“池化技術(shù)”,就是程序先向系統(tǒng)申請(qǐng)過(guò)量的資源,然后自己管理,以備不時(shí)之需。之所以要申請(qǐng)過(guò) 量的資源,是因?yàn)槊看紊暾?qǐng)?jiān)撡Y源都有較大的開銷,不如提前申請(qǐng)好了,這樣
    的頭像 發(fā)表于 11-08 16:26 ?693次閱讀
    什么是<b class='flag-5'>內(nèi)存</b>池

    嵌入式系統(tǒng)動(dòng)態(tài)內(nèi)存的使用技巧

    一種比較好的方法是建立日志塊,即每次分配內(nèi)存時(shí)記錄該內(nèi)存塊的指針和大小,釋放時(shí)再去除該日志塊,如果有內(nèi)存泄露就會(huì)有對(duì)應(yīng)的日志塊記錄這些內(nèi)存
    發(fā)表于 10-12 15:22 ?262次閱讀

    如何解決內(nèi)存碎片與內(nèi)存交換效率慢的問(wèn)題

    內(nèi)存分頁(yè) 分段的好處是能產(chǎn)生連續(xù)的內(nèi)存空間,但是會(huì)出現(xiàn)大量內(nèi)存碎片與內(nèi)存交換效率低的問(wèn)題 先思考一下怎么解決這兩個(gè)問(wèn)題,內(nèi)存碎片是由多個(gè)不連
    的頭像 發(fā)表于 10-09 16:57 ?838次閱讀
    如何解決<b class='flag-5'>內(nèi)存</b>碎片與<b class='flag-5'>內(nèi)存</b>交換效率慢的問(wèn)題

    TCP協(xié)議如何優(yōu)化

    TCP/IP協(xié)議經(jīng)常在面試中會(huì)被問(wèn)到,基礎(chǔ)的會(huì)問(wèn)三次握手和四次揮手,更深一點(diǎn)可能會(huì)問(wèn)TCP如何優(yōu)化等問(wèn)題,下面我們來(lái)再詳細(xì)了解一下這些問(wèn)題。 1. 前言 TCP/IP(Transmis
    的頭像 發(fā)表于 10-08 15:15 ?1224次閱讀
    <b class='flag-5'>TCP</b>協(xié)議如何優(yōu)化