Linux QoS ingress处理流程
在傳統(tǒng)的TCP/IP網(wǎng)絡(luò)的路由器中,所有的IP數(shù)據(jù)包的傳輸都是采用FIFO(先進(jìn)先出),盡最大努力傳輸?shù)奶幚頇C(jī)制。在早期網(wǎng)絡(luò)數(shù)據(jù)量和關(guān)鍵業(yè)務(wù)數(shù)據(jù)不多的時(shí)候,并沒有體現(xiàn)出非常大的缺點(diǎn),路由器簡單的把數(shù)據(jù)報(bào)丟棄來處理擁塞。但是隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展, 數(shù)據(jù)量的急劇增長,以及多媒體,VOIP數(shù)據(jù)等對(duì)延時(shí)要求高的應(yīng)用的增加。路由器簡單丟棄數(shù)據(jù)包的處理方法已經(jīng)不再適合當(dāng)前的網(wǎng)絡(luò)。單純的增加網(wǎng)絡(luò)帶寬也不能從根本上解決問題。所以網(wǎng)絡(luò)的開發(fā)者們提出了服務(wù)質(zhì)量的概念。概括的說:就是針對(duì)各種不同需求,提供不同服務(wù)質(zhì)量的網(wǎng)絡(luò)服務(wù)功能。提供QoS能力將是對(duì)未來IP網(wǎng)絡(luò)的基本要求。
Linux中的QOS分為入口(Ingress)部分和出口(Egress)部分,入口部分主要用于進(jìn)行入口流量限速(policing),出口部分的QoS用于隊(duì)列調(diào)度(queuing scheduling)。
在 Linux 里面,對(duì)這個(gè)功能模塊的稱呼是 Traffic Control ,簡稱 TC。
這篇文章介紹Ingress。
?
大多數(shù)排隊(duì)規(guī)則(qdisc)都是用于輸出方向的,輸入方向只有一個(gè)排隊(duì)規(guī)則,即ingress qdisc。ingress qdisc本身的功能很有限(速率控制),但可用于重定向incoming packets。通過Ingress qdisc把輸入方向的數(shù)據(jù)包重定向到虛擬設(shè)備ifb,而ifb的輸出方向可以配置多種qdisc,就可以達(dá)到對(duì)輸入方向的流量做隊(duì)列調(diào)度的目的。
Linux TC是一個(gè)控發(fā)不控收的框架,然而這是對(duì)于TC所置于的位置而言的,而不是TC本身的限制,事實(shí)上,你完全可以自己在ingress點(diǎn)上實(shí)現(xiàn)一個(gè)隊(duì)列機(jī)制,說TC控發(fā)不控收只是因?yàn)長inux TC目前的實(shí)現(xiàn)沒有實(shí)現(xiàn)ingress隊(duì)列而已。
?
Linux QoS ingress處理函數(shù)調(diào)用圖:
tc filter add dev eth0 parent ffff: protocol ip prio 50 handle 1 fw police rate 1kbit burst 40 mtu 9k drop flowid :1
總結(jié)
以上是生活随笔為你收集整理的Linux QoS ingress处理流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界马鞍怎么做
- 下一篇: Linux QoS egress处理流程