色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux內核網絡擁塞控制算法的具體實現框架(一)

麥辣雞腿堡 ? 來源:技術簡說 ? 作者:董旭 ? 2023-07-28 11:32 ? 次閱讀

談起網絡擁塞控制,大家可能很熟悉八股文中的“加法增大“、”乘法減小“、”慢開始“、“擁塞避免”、“快重傳”、“快恢復”等概念。沒錯,這是一種經典網絡擁塞控制算法的基礎理論,但在實際的實現時不同的擁塞控制算法,有很大差別。本文從Linux內核源碼中學習網絡擁塞控制算法的具體實現框架。從當前網絡擁塞控制算法的發展歷程上看,網絡擁塞控制算法的類型主要有以下四種:

基于丟包的擁塞控制算法,這類算法將丟包視為發生了網絡擁塞。采取緩慢的探測方式,逐漸增大擁塞窗口,當出現丟包時,將擁塞窗口減少,代表的算法有Tahoe、Reno、NewReno、BIC、Cubic等。

基于延時的擁塞控制算法,這類算法將延時增大視為發生了網絡擁塞,延時增大時減少擁塞窗口,延時減少時增大擁塞窗口,代表的算法有Vegas、Westwood等。

基于鏈路容量的擁塞控制算法,代表算法是BBR,其采用了另類的方式,不再使用丟包、延時等信號去衡量擁塞是否發生,而是直接對網絡建模來避免以及應對真實的網絡擁塞。

基于學習的擁塞控制算法,這類算法也沒有特定的擁塞信號,一般是基于訓練數據、評價函數,通過機器學習生成網絡擁塞控制策略模型,代表算法有Remy、PCC、Aurora、DRL-CC、Orca等。

由于每類擁塞控制算法的核心理念有很大差別,關于每種算法的實現與原理在后續的文章中進行呈現。

本次文章先對Linux內核中網絡擁塞控制實現細節、大致框架,進行分析和大概學習。在進行正式的分析前先簡單梳理一下常識與概念:

什么是網絡擁塞:網絡擁塞是指在網絡中傳輸的數據量超過網絡鏈路或節點的處理能力,導致網絡延遲增加、丟包率升高和帶寬利用率下降的現象。

窗口(Window):如下圖的TCP協議頭中占據16位,用于接收端告訴發送端還有多少緩沖區可以接收數據。

圖片

滑動窗口、發送窗口:下圖所示黑色方框代表發送窗口。滑動窗口只是一種形象的稱呼,即發送窗口一直移動從而達到發送新的數據的目的,如下圖當接收到接收端發來的ACK數據包后發送窗口向右移動。圖中灰色的方框代表已經發送且確認的數據,紅色代表已發送且剛剛確認的數據,正是因為剛剛確認了5byte的數據,才驅動發送窗口可以向右移動5個單位,使得序號52~56的數據(綠色方框,代表允許發送的待發送數據)可以發送,當37 ~51區間的數據(藍色方框,代表發送但未確認的數據包)能夠被確認時,發送窗口才能向右滑動。發送窗口前方的數據(黃色方框,不允許發送的待發送數據)只能等待發送窗窗口區間內才能發送。TCP的滑動窗口是動態的,我們可以想象成小學常見的一個數學題,一個水池,體積V,每小時進水量V1,出水量V2。當水池滿了就不允許再注入了,如果有個液壓系統控制水池大小,那么就可以控制水的注入速率和量。這樣的水池就類似TCP的窗口。應用根據自身的處理能力變化,通過本端TCP接收窗口大小控制來對對對端的發送窗口流量限制。圖片

擁塞窗口:上面介紹了發送窗口的概念,在TCP協議中有一個反映網絡傳輸能力的變量,叫做擁塞窗口(congestion
window),記作cwnd。發送端實際的發送窗口大小實際是為 接收端通告窗口 rwnd 與 擁塞窗口 cwnd 較小的那個值。

W=min(cwnd,rwnd)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1372

    瀏覽量

    40282
  • Linux
    +關注

    關注

    87

    文章

    11295

    瀏覽量

    209348
  • 網絡
    +關注

    關注

    14

    文章

    7556

    瀏覽量

    88734
收藏 人收藏

    評論

    相關推薦

    TCP協議技術之擁塞控制算法

    擁塞控制是在網絡層和傳輸層進行的功能。在網絡層,擁塞控制可以通過路由
    的頭像 發表于 02-03 17:06 ?2179次閱讀
    TCP協議技術之<b class='flag-5'>擁塞</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>

    Linux內核網絡的TCP傳輸控制塊相關資料分享

    1、Linux內核網絡之傳輸層接收消息簡析在傳輸層發送消息時,TCP發送出去消息后,會跟蹤這些數據包,直到得到對方的確認為止。對于接收方來講,當收到個報文段時,其會根據情況把這些數據包添加到接收
    發表于 06-21 16:53

    基于衛星網絡的TCP擁塞控制算法

    分析衛星網絡的特點和現有慢啟動算法的不足,提出種使擁塞窗口平滑增長的慢啟動算法。引入門限因子和粒度因子
    發表于 03-20 13:54 ?18次下載

    Linux中傳輸控制協議的擁塞控制分析

    TCP(transport control protocol)的性能在很大程度上取決于其所使用的擁塞控制算法。傳統的TCP在實現多種擁塞
    發表于 06-17 07:43 ?21次下載

    高速網絡中TCP擁塞控制算法的研究

    針對TCP 在高速網絡中的缺陷,提出了改進的BIC TCP 擁塞控制算法。優化算法通過監控鏈路緩存的變化,調整探索可用帶寬過程中的
    發表于 09-17 10:18 ?15次下載

    嵌入式LINUX內核網絡棧(源代碼)

    本文選擇 LINUX-1.2.13 內核所包含的網絡部分代碼分析(注意網絡部分代碼與內核代碼的演變是分離的,如
    發表于 05-12 10:39 ?57次下載
    嵌入式<b class='flag-5'>LINUX</b><b class='flag-5'>內核網絡</b>棧(源代碼)

    基于模糊控制和壓縮感知的無線傳感網絡擁塞算法

    針對無線傳感網絡(WSN)的擁塞問題,提出了種將模糊控制和壓縮感知(cs)技術相結合來緩解無線傳感網絡
    發表于 01-03 09:59 ?0次下載
    基于模糊<b class='flag-5'>控制</b>和壓縮感知的無線傳感<b class='flag-5'>網絡</b><b class='flag-5'>擁塞</b><b class='flag-5'>算法</b>

    具有預測與自我調節能力的擁塞控制算法

    隨著網絡技術的日益發展,計算機網絡擁塞問題已極大地影響了用戶的使用體驗與數據傳遞。單地提高硬件設備的投入并不能持續地防止網絡
    發表于 01-18 16:18 ?0次下載
    具有預測與自我調節能力的<b class='flag-5'>擁塞</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>

    防止網絡擁塞現象的TCP擁塞控制算法

    ,近些年又出現了選擇性應答(selectiveacknowledgement,SACK)算法,還有其他方面的大大小小的改進,成為網絡研究的個熱點。 TCP的擁塞
    的頭像 發表于 10-29 14:54 ?2480次閱讀

    如何使用Linux內核實現USB驅動程序框架

    Linux內核提供了完整的USB驅動程序框架。USB總線采用樹形結構,在條總線上只能有唯的主機設備。
    發表于 11-06 17:59 ?20次下載
    如何使用<b class='flag-5'>Linux</b><b class='flag-5'>內核實現</b>USB驅動程序<b class='flag-5'>框架</b>

    如何用eBPF寫TCP擁塞控制算法

    是兩個痛點: 內核越來越策略化。 內核接口不穩定。 分別簡單說下。 所謂內核策略化就是說越來越多的?靈巧的算法?,?小tricks?等靈活
    的頭像 發表于 12-26 09:44 ?1667次閱讀

    伙伴算法如何才能在Linux內核實現應用及其改進

    伙伴算法是內存管理的比較常用的算法。以Linux內存管理為基礎,闡述了Linux內核中關于伙
    發表于 03-04 14:37 ?14次下載
    伙伴<b class='flag-5'>算法</b>如何才能在<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>中<b class='flag-5'>實現</b>應用及其改進

    Linux內核配置的網絡資料說明

    Linux不止在上網時候才會用到網絡功能’些程序在單機時候也會需要內核網絡支持。 X server是個典型的例子。如果你是從
    發表于 03-12 10:33 ?14次下載

    Linux內核網絡擁塞控制算法實現框架(二)

    從上面的概念中可以得知,擁塞窗口可以間接反映網絡的狀況,進而去限制發送窗口的大小。擁塞窗口作為網絡擁塞
    的頭像 發表于 07-28 11:34 ?817次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核網絡</b><b class='flag-5'>擁塞</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>的<b class='flag-5'>實現</b><b class='flag-5'>框架</b>(二)

    Linux內核網絡擁塞控制算法實現框架(三)

    下面看個特別重要的框架,也可以稱為是擁塞控制引擎,如下結構體所示, tcp_congestion_ops描述了
    的頭像 發表于 07-28 11:38 ?985次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核網絡</b><b class='flag-5'>擁塞</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>的<b class='flag-5'>實現</b><b class='flag-5'>框架</b>(三)
    主站蜘蛛池模板: 5278欧美一区二区三区| 欧美MV日韩MV国产网站| 国产免费不卡| 青青视频 在线 在线播放| 美女脱三角裤| 久久热精品18国产| 久久re6热在线视频精品| 后入式狂顶免费视频| 国产在线观看免费观看| 国产在线观看免费| 精品久久久久中文字幕日本 | 嗯啊快拔出来我是你老师视频| 高清毛片一区二区三区| 成人午夜精品久久久久久久秋霞| SORA是什么意思| 爱情岛aqdlttv| 动漫美女3d被爆漫画| 各种肉黄浪荡故事集| 国产99热在线观看| 国产精品人妻系列21P| 国产欧美日韩视频怡春院| 国产色欲一区二区精品久久呦| 国产免费怕怕免费视频观看| 国产午夜精品鲁丝片| WWW国产亚洲精品久久久日本| SM调教贱屁股眼哭叫求饶H| xxx日本免费| 国产精品7777人妻精品冫| 99久久婷婷国产麻豆精品电影| 97色伦久久视频在观看| jazzjazzjazz欧美| 2017欧美狠狠色| 99久久国产综合精品| RUNAWAY韩国动漫免费网| 国产精品AV色欲蜜臀在线| 国语大学生自产拍在线观看| 久久久久久久久久毛片精品美女| 美女张开腿露尿口给男人亲| 奇米网一区二区三区在线观看| 少妇精品无码一区二区三区 | 人人听力网mp3下载|