CN102404226B - Linux系统下基于802.1p的数据帧绝对优先级调度方法 - Google Patents

Linux系统下基于802.1p的数据帧绝对优先级调度方法 Download PDF

Info

Publication number
CN102404226B
CN102404226B CN201110401547.9A CN201110401547A CN102404226B CN 102404226 B CN102404226 B CN 102404226B CN 201110401547 A CN201110401547 A CN 201110401547A CN 102404226 B CN102404226 B CN 102404226B
Authority
CN
China
Prior art keywords
frame
priority
steps
skb
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110401547.9A
Other languages
English (en)
Other versions
CN102404226A (zh
Inventor
阳琳峰
王志军
周转运
李长春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201110401547.9A priority Critical patent/CN102404226B/zh
Publication of CN102404226A publication Critical patent/CN102404226A/zh
Application granted granted Critical
Publication of CN102404226B publication Critical patent/CN102404226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种Linux系统下基于802.1p的数据帧绝对优先级调度方法,包括以下步骤:A10.在网络设备驱动层,完成数据帧中优先级字段数值与skb->nfmark的映射;A20.根据数据帧中的以太网类型,将数据帧引导进入Linux内核中的NF_IP_POSTROUTINGhook点;A30.对从NF_IP_POSTROUTINGhook点取出的数据帧,应用流量控制工具,通过htb与prio组合队列进行优先级调度。本发明通过调整linux内核源代码,综合运用TC等系统工具,实现了对linux系统中二层数据的绝对优先级调度,从而使高优先级数据的带宽得到保障。

Description

Linux系统下基于802.1p的数据帧绝对优先级调度方法
技术领域
本发明涉及IP QoS区分服务模型技术领域,具体涉及Linux系统下基于802.1p的数据帧绝对优先级调度方法。
背景技术
随着各种接入技术(EPON,GPON)的日趋成熟,IP网络的传输能力大大加强,新的业务也不断涌现。对IP网络的服务质量也提出了新的要求,例如VoIP、IPTV等实时业务对数据包的传输延迟提出了较高要求,如果数据包的传送延时太长,将是用户所不能接受的。为了支持具有不同服务质量需求的语音、视频以及数据等业务,要求IP网络具备区分业务以及提供有效服务质量保证的能力,QoS(Quality of Service,服务质量)技术的出现便致力于解决这个问题。
为满足IP网络上多种业务对QoS的需求,Internet工程任务组(IETF)先后制定了两种QoS服务模型:集成服务(InterServ)/RSVP模型和区分服务(DiffServ)模型。
集成服务/RSVP模型能够提供有绝对保证的QoS,但扩展性不好,对路由器的要求较高,实现相对复杂。区分服务模型(DiffServ)扩展性较好,便于实现,不影响路由等优点,目前在终端接入设备中广泛使用。
对于区分服务模型来说,业务流需要一个全网统一的优先级标记方式。在802.1p协议中,以太网帧携带VLAN TAG(VLAN标签)时,可以通过VLAN TAG的优先级字段来携带优先级信息。具体地说,802.1p协议头包括一个3bit的优先级字段,定义了8种优先级:最高优先级为7,应用于关键性网络流量,如路由选择信息协议(RIP)和开放最短路径优先(OSPF)协议的路由表更新;优先级6和5主要用于延迟敏感(delay-sensitive)应用程序,如交互式视频和语音;优先级4到1主要用于受控负载(controlled-load)应用程序,如流式多媒体(streaming multimedia)和关键性业务流量(business-critical traffic)-例如,SAP 数据-以及 "loss eligible" 流量;优先级0是缺省值,并在没有设置其它优先级值的情况下自动启用。
目前运营商大都采用优先级来区分业务和进行优先级调度,最典型的对应关系如下表所示:
ITMS管理 优先级字段:4 优先级队列1
VoIP 优先级字段:6 优先级队列2
IPTV 优先级字段:5 优先级队列3
Internet 优先级字段:0 优先级队列4
从上表中我们不难看出,上网业务优先级字段值为0,具有较低的优先级,而IPTV和VoIP等实时业务,优先级字段值分别为6和5,具有较高的优先级。
根据运营商规划,在数据帧经过的每一个设备,都必须实现基于802.1p的优先级调度,否则无法实现业务的端到端的服务质量保证。
如附图1所示,用户通过宽带接入设备连接运营商网络(此处假设除宽带接入设备外的所有网络设备均实现了802.1p优先级调度),internet连接vlan为41,优先级为0,最大下载速度为5M;IPTV连接vlan为45,优先级为5,需要的最小带宽为4M。宽带接入设备提供的下行总带宽为5M。现在用户需要同时观看IPTV和进行internet高速下载,正常观看IPTV需要4M带宽,而internet高速下载最大可达5M流量,这样两流量相加为9M,远远的超出5M的带宽限制,如果在宽带接入设备上不进行有效的优先级调度的话,internet下载必将影响用户观看IPTV,这是用户所不能接受的。
为提供用户满意的服务,在宽带接入设备上实现基于802.1p的绝对优先级调度势在必行。宽带接入设备多采用嵌入式Linux操作系统,Linux操作系统自2.2版本以后,都提供了一个功能非常强大的流量控制工具--TC,TC把队列规定(Queuing discipline)、类(Class)、过滤器(Filter)结合在一起,可以提供和专业的带宽管理系统相媲美的流量控制管理。TC虽然使用低廉有效,但有几个缺陷:
1. TC对IP路由数据能提供有效的带宽管理,但对Linux系统中二层数据的调度却是无能为力;
2. Linux内核桥提供了丰富的队列形式(cbq,htb,prio),但没有一种队列可以实现限速加绝对优先级调度;
3. Linux提供的过滤器不能针对数据帧的优先级字段进行分类和队列映射。
如何克服和解决上述三点限制,将是利用Linux TC工具实现基于802.1p有效调度的关键所在。
发明内容
本发明所要解决的技术问题是解决利用Linux TC工具实现基于802.1p有效调度的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种的Linux系统下基于802.1p的数据帧绝对优先级调度方法,包括以下步骤:
A10、在网络设备驱动层,完成数据帧中优先级字段数值与skb->nfmark的映射;
A20、根据数据帧中的以太网类型,将数据帧引导进入Linux内核中的NF_IP_POSTROUTING hook点;
A30、对从NF_IP_POSTROUTING hook点取出的数据帧,应用流量控制工具,通过htb与prio组合队列进行优先级调度。
在上述方法中,步骤A10的具体步骤为,
A101、Linux系统宽带网络接入设备接收数据帧,并将数据帧转入网络设备驱动层;
A102、检测数据帧是否携带VLAN标签,如果带有VLAN 标签,则将VLAN 标签中的优先级值映射为对应的skb->nfmark值;如果数据帧不带VLAN TAG,则相应的skb->nfmark值为0。
在上述方法中,步骤A20包括以下步骤:
A201、用户根据需要调度的以太网类型,向linux内核空间配置QoS调度的以太网类型链表;
A202、利用函数br_nf_post_routing检测数据帧的以太网类型,与以太网类型链表进行匹配,如果匹配不成功,则由Linux内核桥直接转发;否则转步骤A203;
A203、将数据帧引导进入Linux内核中的NF_IP_POSTROUTING hook点。
在上述方法中,步骤A30包括以下步骤:
A301、添加一条iptables规则,根据数据帧的输出端口标识,将该数据帧引导进入相应输出端口的中介队列设备IMQ;
A302、在中介队列设备IMQ中添加htb与prio的组合队列;
A303、以所述skb->nfmark值为依据,利用TC过滤器将数据帧压入htb与prio组合队列不同优先级子队列中。
在上述方法中,在步骤A202中,将数据帧引导进入NF_IP_POSTROUTING hook点时,同时将数据帧中的skb->ether_type_tc_flags值设置为0x1。
在上述方法中,步骤A303的具体步骤为:
A3031、利用函数ipt_route_hook遍历iptables规则,判断从哪些输出端口输出的数据帧需要进行QoS调度,需要进行QoS调度的数据帧转入步骤A3032,不需要调度的数据帧转入步骤A3033;
A3032、从NF_IP_POSTROUTING hook点取出数据帧,根据skb->nfmark值,将数据帧映射到不同的优先级队列中,htb与prio组合队列优先转发高优先级队列中的数据帧,丢弃超出带宽的低优先级队列中的数据帧;
A3033、完成数据帧中skb->nfmark与优先级值的逆映射,并从相应的输出端口输出。
本发明,通过调整linux内核源代码,综合运用TC等系统工具,实现了对linux系统中二层数据802.1p的绝对优先级的调度,从而使高优先级数据帧的带宽得到了有效保障。
附图说明
图1是基于802.1p绝对优先级调度典型应用场景;
图2是Linux内核桥中htb与prio组合队列示意图;
图3是本发明的流程图。
具体实施方式
本发明的核心是:在网络设备驱动层完成数据帧中优先级字段与skb->nfmark的一一映射关系,然后再利用流量控制工具TC filter,根据skb->nfmark,将数据帧分别压入htb与prio组合队列的不同优先级子队列,实现对数据帧的限速以及绝对优先级调度。
本发明提供的方法,主要应用于宽带接入设备,且宽带接入设备提供桥接通道供用户接入运营商网络,所有数据均通过linux内核桥转发。
如附图1所示,家庭用户通过宽带接入设备连接运营商网络,其中上网数据vlan为41、优先级值为0;IPTV数据vlan为45、优先级值为5,且用户均通过PPPoE的拨号方式连接到运营商网络。用户上网下载的最大速率为5M,保证流畅观看IPTV节目的最小带宽要求为4M,同时运营商要求宽带接入设备下行总带宽为5M。在这种情况下,如果用户在高速下载的同时在观看IPTV节目,则在宽带接入设备上,存在9M(5M+4M)数据抢占5M带宽的情景。如果宽带设备不执行有效的QoS管理,那么上网下载数据与IPTV数据将会随机的丢弃部分,从而直接导致用户无法观看到清晰流畅IPTV节目。
本发明在宽带接入设备下行方向,将优先级为5的IPTV数据映射到高的优先级队列1,将普通下载数据映射到低优先级队列3,从而有效保证IPTV数据的带宽要求,使用户在高速下载的同时,享受流畅的IPTV节目。
下面结合附图3对本发明的实现流程进行详细的说明,主要包括三个步骤:
A10、在网络设备驱动层,完成数据帧中优先级字段数值与skb->nfmark的映射;
A20、根据数据帧中的以太网类型,将需要调度的数据帧引导进入Linux内核中的NF_IP_POSTROUTING hook点;
A30、对从NF_IP_POSTROUTING hook点取出的数据帧,应用流量控制工具,通过htb与prio组合队列进行优先级调度,其中htb用于限制总带宽,prio用于实现绝对优先级调度。
具体地说:
步骤A10的具体步骤为:
A101、Linux系统宽带网络接入设备接收数据帧,并将数据帧转入网络设备驱动层;
A102、检测数据帧是否携带VLAN TAG(VLAN标签),如果带有VLAN TAG,则将VLAN TAG中的优先级值映射为对应的skb->nfmark值,其对应关系为:优先级 0对应skb->nfmark 1;优先级1对应skb->nfmark 2;优先级2对应skb->nfmark 3....,依次类推;如果数据帧中没有VLAN TAG,则相应的skb->nfmark值为0。
步骤A20的具体步骤为:
A201、用户根据需要调度的以太网类型,向linux内核空间配置QoS调度的以太网类型链表,例如:PPPoE以太网类型为0x8863或0x8864等。
A202、利用函数br_nf_post_routing检测数据帧的以太网类型,依次与需要进行QoS调度的以太网类型链表中的数值进行匹配,如果匹配成功则转入步骤A203;如果匹配不成功,说明该数据帧不需要进行QoS调度,由Linux内核桥直接转发;
A203、将数据帧引导进入NF_IP_POSTROUTING hook点,并将数据帧中的skb->ether_type_tc_flags设置为0x1,以便三层数据处理函数区分。
步骤A30的具体步骤为:
A301、添加一条iptables规则,根据数据帧的输出端口标识,将该数据帧引导进入相应输出端口的中介队列设备IMQ;
A302、在中介队列设备IMQ中添加htb与prio组合队列,htb用于限制总带宽,prio用于实现绝对优先级调度;
A303、以所述skb->nfmark值为依据,利用TC过滤器将数据帧压入htb与prio组合队列不同优先级子队列中。
步骤A303的具体步骤为:
A3031、利用函数ipt_route_hook遍历iptables规则,判断从哪些输出端口输出的数据帧需要进行QoS调度,需要进行QoS调度的数据帧转入步骤A3032,不需要调度的数据帧转入步骤A3033。
ipt_route_hook遍历的iptables规则可以由iptables命令进行配置,例如从网络接口eth0.41输出的数据帧需要压入中介队列设备imq1进行QoS调度,则可以执行以下指令:
  iptables -t mangle -A POSTROUTING -m physdev --physdev-out eth0.41 -j IMQ --todev 1。
A3032、从NF_IP_POSTROUTING hook点取出数据帧,根据数据帧中的skb->nfmark值,将数据帧映射到不同的优先级队列中,htb与prio组合队列优先转发高优先级队列中的数据帧,丢弃超出带宽的低优先级队列中的数据帧,如图2所示。
例如,将skb->nfmark值为6的数据映射到队列2:1命令如下:
  tc filter add dev imq0 parent 2:0 protocol ip prio 200 handle 6 fw classid 2:1
A3033、完成数据帧中skb->nfmark与优先级值的逆映射,并从相应的输出端口输出。
本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。

Claims (3)

1.Linux系统下基于802.1p的数据帧绝对优先级调度方法,其特征在于,包括以下步骤:
A10、在网络设备驱动层,完成数据帧中优先级字段数值与skb->nfmark的映射;
A20、根据数据帧中的以太网类型,将数据帧引导进入Linux内核中的NF_IP_POSTROUTING hook点,同时将数据帧中的skb->ether_type_tc_flags值设置为0x1;
A30、对从NF_IP_POSTROUTING hook点取出的数据帧,应用流量控制工具,通过htb与prio组合队列进行优先级调度;
步骤A30包括以下步骤:
A301、添加一条iptables规则,根据数据帧的输出端口标识,将该数据帧引导进入相应输出端口的中介队列设备IMQ;
A302、在中介队列设备IMQ中添加htb与prio的组合队列;
A303、以所述skb->nfmark值为依据,利用TC过滤器将数据帧压入htb与prio组合队列不同优先级子队列中;
步骤A303的具体步骤为:
A3031、利用函数ipt_route_hook遍历iptables规则,判断从哪些输出端口输出的数据帧需要进行QoS调度,需要进行QoS调度的数据帧转入步骤A3032,不需要调度的数据帧转入步骤A3033;
A3032、从NF_IP_POSTROUTING hook点取出数据帧,根据skb->nfmark值,将数据帧映射到不同的优先级队列中,htb与prio组合队列优先转发高优先级队列中的数据帧,丢弃超出带宽的低优先级队列中的数据帧;
A3033、完成数据帧中skb->nfmark与优先级值的逆映射,并从相应的输出端口输出。
2.如权利要求1所述的Linux系统下基于802.1p的数据帧绝对优先级调度方法,其特征在于,步骤A10的具体步骤为,
A101、Linux系统宽带网络接入设备接收数据帧,并将数据帧转入网络设备驱动层;
A102、检测数据帧是否携带VLAN标签,如果带有VLAN标签,则将VLAN标签中的优先级值映射为对应的skb->nfmark值;如果数据帧不带VLANTAG,则相应的skb->nfmark值为0。
3.如权利要求1所述的Linux系统下基于802.1p的数据帧绝对优先级调度方法,其特征在于,步骤A20包括以下步骤:
A201、用户根据需要调度的以太网类型,向linux内核空间配置QoS调度的以太网类型链表;
A202、利用函数br_nf_post_routing检测数据帧的以太网类型,与以太网类型链表进行匹配,如果匹配不成功,则由Linux内核桥直接转发;否则转步骤A203;
A203、将数据帧引导进入Linux内核中的NF_IP_POSTROUTING hook点。
CN201110401547.9A 2011-12-06 2011-12-06 Linux系统下基于802.1p的数据帧绝对优先级调度方法 Active CN102404226B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110401547.9A CN102404226B (zh) 2011-12-06 2011-12-06 Linux系统下基于802.1p的数据帧绝对优先级调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110401547.9A CN102404226B (zh) 2011-12-06 2011-12-06 Linux系统下基于802.1p的数据帧绝对优先级调度方法

Publications (2)

Publication Number Publication Date
CN102404226A CN102404226A (zh) 2012-04-04
CN102404226B true CN102404226B (zh) 2015-01-14

Family

ID=45886029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110401547.9A Active CN102404226B (zh) 2011-12-06 2011-12-06 Linux系统下基于802.1p的数据帧绝对优先级调度方法

Country Status (1)

Country Link
CN (1) CN102404226B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012210126A1 (de) 2012-06-15 2013-12-19 Siemens Aktiengesellschaft Verfahren zum Betreiben einer Netzwerkanordnung, Netzwerkeinrichtung und Netzwerkanordnung
CN103560970A (zh) * 2013-09-25 2014-02-05 深圳市共进电子股份有限公司 一种对具有多lan口的网络设备下行限速的实现方法
CN104539555B (zh) * 2014-11-28 2018-10-09 深圳市共进电子股份有限公司 一种上行业务数据的处理方法及装置
CN107659449A (zh) * 2017-09-27 2018-02-02 郑州云海信息技术有限公司 一种保证管理系统服务质量的方法和装置
CN112511461A (zh) * 2020-11-06 2021-03-16 无锡江南计算技术研究所 一种面向申威平台的网络数据包的调度方法
CN112953848B (zh) * 2021-03-12 2023-05-02 西安电子科技大学 一种基于严格优先级的流量监管方法、系统及设备
CN113630339A (zh) * 2021-08-04 2021-11-09 安超云软件有限公司 流量转发方法及装置、电子设备和存储介质
CN114268623B (zh) * 2021-12-29 2024-04-05 深圳前海同益网络技术有限公司 一种实现应用网络优先级设定的方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Netfilter/Iptable和TC的带宽管理设计与实现;郑伟发 杨创新;《华南金融电脑》;20090410;第2页第3段第1-18行、第5段、第6段第1-4行、图2 *
支持QoS的实时Linux系统QR-Linux;王永新;《大连理工大学硕士学位论文》;20060415;正文部分第31页第3-6行、第32页第4-6行、第33页第1-5行、第14-21行、图4.10 *

Also Published As

Publication number Publication date
CN102404226A (zh) 2012-04-04

Similar Documents

Publication Publication Date Title
CN102404226B (zh) Linux系统下基于802.1p的数据帧绝对优先级调度方法
CA2832448C (en) Packet scheduling method and apparatus
CN104378309B (zh) OpenFlow网络中实现QoS的方法、系统和相关设备
US7693985B2 (en) Technique for dispatching data packets to service control engines
US8867349B2 (en) Regulation of network traffic in virtual private networks
CN106341346A (zh) 基于SDN的数据中心网络中一种保障QoS的路由算法
CN101068227B (zh) 一种基于家庭网关和预留带宽技术以保障QoS的系统及其方法
CN102811159B (zh) 一种上行业务的调度方法及装置
CN105634991B (zh) 一种实现业务带宽分配的方法及装置
US8233390B2 (en) Priority and source aware packet memory reservation and flow control in forwarding planes
CN106161275A (zh) 针对服务质量的预测出口分组分类
CN111082955A (zh) 一种网络切片的方法、计算机设备及存储介质
CN101127723B (zh) 多协议标签交换三层虚拟专用网服务质量保障方法
CN101924781A (zh) 终端设备及其QoS实施方法以及流分类器
CN102546395B (zh) 基于l2vpn网络的业务调度方法和装置
CN102377645B (zh) 交换芯片及其实现方法
CN105281986A (zh) 数据流的传输方法、装置及系统
US20130108269A1 (en) Apparatus and method for controlling vpn service
CN107786468B (zh) 基于HQoS的MPLS网络带宽分配方法及装置
US8953449B2 (en) Virtual subport data traffic management
CN109286566A (zh) Hybrid交换机中的Qos模块分类实现方法及系统
US8305918B2 (en) Method of configuring the quality-of-service profile of a given stream at an access node of a packet communications network
CN112468411B (zh) 一种网络设备qos的部署方法、装置及设备
Iwasawa et al. Flexible Time-Aware Shaper Scheduling System for a Multitenancy Environment
KR100569193B1 (ko) E-PON OLT 시스템에서 802.1p를 이용한품질보장형 VOD 서비스 제공 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant