日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux QoS egress处理流程

發(fā)布時間:2023/12/15 linux 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux QoS egress处理流程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在傳統(tǒng)的TCP/IP網(wǎng)絡(luò)的路由器中,所有的IP數(shù)據(jù)包的傳輸都是采用FIFO(先進先出),盡最大努力傳輸?shù)奶幚頇C制。在早期網(wǎng)絡(luò)數(shù)據(jù)量和關(guān)鍵業(yè)務(wù)數(shù)據(jù)不多的時候,并沒有體現(xiàn)出非常大的缺點,路由器簡單的把數(shù)據(jù)報丟棄來處理擁塞。但是隨著計算機網(wǎng)絡(luò)的發(fā)展, 數(shù)據(jù)量的急劇增長,以及多媒體,VOIP數(shù)據(jù)等對延時要求高的應(yīng)用的增加。路由器簡單丟棄數(shù)據(jù)包的處理方法已經(jīng)不再適合當(dāng)前的網(wǎng)絡(luò)。單純的增加網(wǎng)絡(luò)帶寬也不能從根本上解決問題。所以網(wǎng)絡(luò)的開發(fā)者們提出了服務(wù)質(zhì)量的概念。概括的說:就是針對各種不同需求,提供不同服務(wù)質(zhì)量的網(wǎng)絡(luò)服務(wù)功能。提供QoS能力將是對未來IP網(wǎng)絡(luò)的基本要求。

Linux中的QOS分為入口(Ingress)部分和出口(Egress)部分,入口部分主要用于進行入口流量限速(policing),出口部分的QOS用于隊列調(diào)度(queuing scheduling)。

在 Linux 里面,對這個功能模塊的稱呼是 Traffic Control ,簡稱 TC。

這篇文章介紹Egress。

?

數(shù)據(jù)包的發(fā)送流程(Egress):

  • 調(diào)用__dev_xmit_skb發(fā)送一個數(shù)據(jù)包,如果出口流控對象為空,直接調(diào)用sch_direct_xmit()發(fā)送數(shù)據(jù)包。(流控對象為空表示對象中沒有數(shù)據(jù)包)

  • 如果出口流控對象非空,執(zhí)行流控。

  • 調(diào)用q->enqueue(skb, q)將數(shù)據(jù)包入隊。

  • 調(diào)用qdisc_run(struct Qdisc *q)運行出口流控對象,也就是,調(diào)用對象的出隊函數(shù)選擇一個數(shù)據(jù)包,并發(fā)送這個數(shù)據(jù)包,如果時間允許就循環(huán)執(zhí)行這個過程,直到流控對象為空。注意:如果已經(jīng)有其他內(nèi)核路徑正在運行隊列,函數(shù)將不做任何事情,并提前返回。

  • 本流控對象運行時間太長了,停止本對象運行,并且將本流控對象加入軟中斷服務(wù)NET_TX_SOFTIRQ的output_queue鏈表頭。(即持續(xù)發(fā)送的數(shù)據(jù)包大于64個,也即發(fā)送時間太長)

  • 當(dāng)執(zhí)行軟中斷服務(wù)線程NET_TX_SOFTIRQ時,將從output_queue鏈表頭開始順序運行鏈表中的所有流控對象。

  • ?

    Linux QoS egress處理函數(shù)調(diào)用圖:

    總結(jié)

    以上是生活随笔為你收集整理的Linux QoS egress处理流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。