CN102413051A - 一种服务质量调度方法和装置 - Google Patents

一种服务质量调度方法和装置 Download PDF

Info

Publication number
CN102413051A
CN102413051A CN2011103893245A CN201110389324A CN102413051A CN 102413051 A CN102413051 A CN 102413051A CN 2011103893245 A CN2011103893245 A CN 2011103893245A CN 201110389324 A CN201110389324 A CN 201110389324A CN 102413051 A CN102413051 A CN 102413051A
Authority
CN
China
Prior art keywords
message
queue
formation
type
scheduling
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.)
Granted
Application number
CN2011103893245A
Other languages
English (en)
Other versions
CN102413051B (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.)
Shenzhen Gongjin Electronics Co Ltd
Original Assignee
Shenzhen Gongjin Electronics 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 Shenzhen Gongjin Electronics Co Ltd filed Critical Shenzhen Gongjin Electronics Co Ltd
Priority to CN201110389324.5A priority Critical patent/CN102413051B/zh
Publication of CN102413051A publication Critical patent/CN102413051A/zh
Application granted granted Critical
Publication of CN102413051B publication Critical patent/CN102413051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种服务质量调度方法和装置,其中方法包括:获取接收到的报文的报文类型;将报文类型为系统基础报文的报文存入系统基础信息主队列;将报文类型为用户自定义基础报文的报文存入用户定义基础信息主队列;将报文类型为系统基础报文和用户自定义基础报文以外的其他报文,按照预定条件存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列;通过预置的第一调度算法从副队列中和默认队列中提取报文存入其他信息主队列;通过预置的第二调度算法从系统基础信息主队列、用户定义基础信息主队列以及其他信息主队列中提取报文发送。可以避免流控混乱,保证测试得到回应,保证基础协议报文通信。

Description

一种服务质量调度方法和装置
技术领域
本发明涉及通信技术领域,特别涉及一种服务质量调度方法和装置。
背景技术
伴随网络技术、多媒体技术的飞速发展,互联网协议(Internet Protocol,IP)网在承载万维网(World Wide Web,WWW)、文件传送协议(File TransferProtocol,FTP)、电子邮件(E-mail)等服务的基础上,开始越来越多地承载互联网协议电话(Voice over Internet Protocol,VoIP)以及交互式多媒体通信业务。
由于每种业务要求的传输时延和抖动等服务参数不尽相同;因此,为用户提供服务质量(Quality of Service,QOS)成为互联网(Internet)发展的重要挑战。网络QoS技术作为公认的网络的核心技术之一,是当前网络研究和开发的热点。IP QoS的研究涉及许多内容,因特网工程任务组(InternetEngineering Task Force,IETF)已经提出了许多服务模型与机制来满足QoS需求,典型的有:集成服务(IntServ)/资源预留协议(Resource ReSerVationProtocol,RSVP)模型、区分服务(DiffServ)模型、多协议标签交换(MultiprotocoLabel Switching,MPLS)与流量工程(Traffic Engineering)等,而国际电信联盟-电信标准部门(International Telecommunication Union TelecommunicationStandardization Sector,ITU-T)则更偏重于QoS整体框架的制定和IP性能指标体系的构建。此外,城域网交换论坛(Multiservice Switching Forum,MSF)等组织也提供了多种端到端的IP QoS解决方案。
对于网络业务来说,服务质量包括:传输的带宽、传送的时延、数据的丢包率等。提高服务质量则需要保证传输的带宽,降低传送的时延,降低数据的丢包率以及时延抖动等。服务质量涉及网络应用的方方面面,只要是对网络应用有利的措施,其实都是在提高服务质量。因此,从这个意义上来说,防火墙、策略路由、快速转发等也都是提高网络业务服务质量的措施之一。
虽然企业和运营商想在努力扩展链路带宽,但是现实网络上各种应用对带宽的消耗速度远远超出企业和运营商带宽扩充能力,也就是说网络的拥塞成为常态,这也决定了拥塞管理这一技术的重要性。
队列调度机制在QoS技术体系中属于拥塞管理的范畴。拥塞管理是指:网络发生拥塞时进行管理和控制,方法是:使用合适的队列技术来确保关键业务的优先保障。在出接口发生拥塞时,通过适当的队列调度机制,可以优先保证某种类型的报文的QoS参数,例如带宽、时延、抖动等。可以理解的是这里的队列是指出队列,队列的技术实质是指向指定缓存的一系列指针,其作用是在接口有能力发送报文之前先将报文在缓存中保留下来,直到接口可以继续发送报文,所以队列调度机制在出端口发生拥塞情况下产生作用,另外一个主要作用就是将报文重新排序。
队列调度算法是实现队列调度机制的核心,是网络资源管理的重要内容,通过控制不同类型的分组对链路带宽的使用,使不同的数据流得到不同等级的服务。
调度算法的工作模式可以分为两种:工作保留模式和非工作保留模式。如果队列中有数据包等待发送服务器就工作的调度算法称为工作保留调度算法;如果队列中有数据包等待发送但服务器仍然处于空闲状态的调度算法称为非工作保留调度算法,例如,即使服务器处于空闲状态同时队列中有数据包等待发送,但是为了等待下一个高优先级的数据包服务器也会推迟当前数据包的传输,这种调度算法就属于非工作保留调度算法。调度算法的另一种分类方法是根据调度算法的内部结构来划分的,主要有两种:基于优先级分类的调度算法和基于帧结构的调度算法。在基于优先级的调度算法中有一个称为虚拟时间(virtualtime)的全局变量。调度算法根据该变量为每个数据包计算一个时间戳,然后根据时间戳对数据包排序和调度。在基于帧结构的调度算法中,时间被分为固定长度或可变长度的帧。每个数据流所能使用的带宽资源就是每一帧中所允许传输业务量的最大值。
由上可知QOS的出现是为了解决流量超负荷的技术问题,但是在流量超负荷的情况下使用以上调度方案,存在一些缺陷:不管是互联网协议第四版(Internet Protocol Version 4,ipv4)还是互联网协议第六版(ipv6)协议栈都会出现间隙很短的流控混乱情况。一些基础的工具(如PING)测试网络将得不到回应导致无法正确定位问题。一些最终基础协议报文无法通信导致无法正常使用网络。
发明内容
本发明实施例提供了一种服务质量调度方法,用于避免流控混乱,保证测试得到回应,保证基础协议报文通信。
一种服务质量调度方法,包括:
获取接收到的报文的报文类型;
将报文类型为系统基础报文的报文存入系统基础信息主队列;
将报文类型为用户自定义基础报文的报文存入用户定义基础信息主队列;
将报文类型为系统基础报文和用户自定义基础报文以外的其他报文,按照预定条件存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列;通过预置的第一调度算法从副队列中和默认队列中提取报文存入其他信息主队列;
通过预置的第二调度算法从系统基础信息主队列、用户定义基础信息主队列以及其他信息主队列中提取报文发送。
一种服务质量调度装置,包括:
报文获取单元,用于获取接收到的报文的报文类型;
报文分类单元,用于将报文类型为系统基础报文的报文存入系统基础信息主队列;将报文类型为用户自定义基础报文的报文存入用户定义基础信息主队列;将报文类型为系统基础报文和用户自定义基础报文以外的其他报文,按照预定条件存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列;
第一调度单元,用于通过预置的第一调度算法从副队列中和默认队列中提取报文存入其他信息主队列;
第二调度单元,通过预置的第二调度算法从系统基础信息主队列、用户定义基础信息主队列以及其他信息主队列中提取报文发送。
从以上技术方案可以看出,本发明实施例具有以下优点:通过将不同类型的报文分别存储到不同的队列中,使用调度算法可以使重要的报文不参与普通报文流控,从而保证重要报文的发送,避免了ipv4和ipv6协议栈的流控混乱,可以保证测试得到回应,保证基础协议报文通信。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例传输控制协议(Transmission Control Protocol,TCP)/IP协议族划分示意图;
图3为本发明实施例标记流程流程示意图;
图4为本发明实施例数据流连接跟踪赋值流程示意图;
图5为本发明实施例方法流程示意图;
图6为本发明实施例一层分类器分类方法流程示意图;
图7为本发明实施例二层分类器分类方法流程示意图;
图8为本发明实施例三层分类器分类方法流程示意图;
图9为本发明实施例装置结构示意图;
图10为本发明实施例装置结构示意图;
图11为本发明实施例装置结构示意图;
图12为本发明实施例装置结构示意图;
图13为本发明实施例装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
发明人在实现本发明实施例的过程中对流量超负荷的情况下使用背景技术中的调度方案,存在缺陷的原因进行了分析和实验。
1、通过SmartBit(一款测试软件)仪器测试与抓包发现,流控混乱的原因如表1所示:
表1
  IPV4   arp、rarp报文丢失
  IPV6   icmpv6路由发现、邻居发现报文丢失
而报文丢失的原因是表1中丢失的包参与普通报文流控导致,即:基础的协议报文也参与了流量竞争,在网络涌塞的环境下导致这些报文被丢弃。例如:arp报文被用户端设备(Customer Premise Equipment,CPE)丢弃,而该报文需要在OSI协议二层通过媒体接入控制(Medium Access Control,MAC)地址传输帧,则后续的使用因为找不到MAC地址而无法为用户提供服务。其他如:域名系统(Domain Name System,DNS)、动态主机配置协议(DynamicHost Configuration Protocol,DHCP)报文类似。
2、通过SmartBit仪器测试与抓包发现,工具测试网络失败的原因如表2所示:
表2
  IPV4   icmp报文丢失
  IPV6   icmpv6报文中回显请求、回显应答等类型报文丢失
报文丢失的原因是被丢弃的报文参与普通报文流控导致。
3、通过SmartBit仪器测试与抓包发现,工具测试网络失败的原因如表3所示:
表3
  IPV4   类似DNS、DHCP等基础应用报文丢失
  IPV6   类似DNS、DHCPV6等基础应用报文丢失
报文丢失的原因是被丢弃的报文参与普通报文流控导致。
4、通过用户端设备(Customer Premise Equipment,CPE)有关实际实现以及代码查看发现,SKB(描述数据包的一个结构体名称)结构的mark(SKB内的变量名)是常用的分类条件选择,但mark存在的缺陷,如表4所示:
表4
  外在缺陷   mark被多个功能使用,可能引起混乱
  内在缺陷   针对每一个包都要进行匹配和mark处理
针对上述缺陷,发明人提出了基础报文优先分类扩展(basic messageclassfy extend,BMC+)调度框架,并依此提出了服务质量调度方法和装置。
本发明实施例提供了一种服务质量调度方法,如图1所示,包括:
101:获取接收到的报文的报文类型;
本发明实施例中的报文类型可以分为系统基础报文、用户自定义基础报文、系统基础报文和用户自定义基础报文以外的其他报文三类;
A:系统基础报文可以依据TCP/IP协议族划分,如图2所示:虚线框依次为应用层201、传输层202、网络层203、链路层204、其中应用层201为用户进程;传输层202协议包含TCP\用户数据包协议(User Datagram Protocol,UDP);网络层203协议包括:网际控制消息协议(Internet Control MessageProtocol,ICMP)\IP\互联网组管理协议(Internet Group Management Protocol,IGMP);链路层204协议包括:地址解析协议(Address Resolution Protocol,ARP)\硬件接口\逆地址解析协议(Reverse Address Resolution Protocol,RARP);其中硬件接口连接媒体,图2中的虚线框表示为各层,箭头表示协议数据通信关系。
IPV4协议包含的系统基础报文为:arp,rarp,icmp,igmp;
IPV6协议将arp,rarp,icmp,igmp协议全部合并到一个协议的不同类型,icmpv6;
所以,系统基础报文综合如表5所示:
表5
  协议族   系统基础报文协议类型
  IPV4   arp,rarp,icmp,igmp
  IPV6   icmpv6
B:用户自定义基础报文:所谓用户自定义,即用户自己来决定那些报文属于基础类型报文,关于怎样定义将在“层分类器的处理”中介绍。在这里建议保留两种协议,如表6所示。
表6
  协议族   用户自定义基础报文建议保留协议类型
  IPV4   dns,dhcp
  IPV6   dns,dhcpv6
C:其它报文:泛指除系统基础报文、用户自定义基础报文之外的所有其它报文。
102:将报文类型为系统基础报文的报文存入系统基础信息主队列;
将报文类型为用户自定义基础报文的报文存入用户定义基础信息主队列;
将报文类型为系统基础报文和用户自定义基础报文以外的其他报文,按照预定条件存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列;通过预置的第一调度算法从副队列中和默认队列中提取报文存入其他信息主队列;
103:通过预置的第二调度算法从系统基础信息主队列、用户定义基础信息主队列以及其他信息主队列中提取报文发送。
本发明实施例,通过将不同类型的报文分别存储到不同的队列中,使用调度算法可以使重要的报文不参与普通报文流控,从而保证重要报文的发送,避免了ipv4和ipv6协议栈的流控混乱,可以保证测试得到回应,保证基础协议报文通信。
在上述101获取接收到的报文的报文类型之前还包括:在内核中描述数据包的结构体内添加变量名,并对变量名赋值,上述赋值标识数据包内报文的报文类型。
本实例可以通过层分类器的处理来实现;其中可以使用tcmark(一个变量名称)变量设计,具体实现方式如下:为了使层分类器不受报文五元组和服务类型(Type of service,TOS)等相关帧内容字段的约束,考虑未来流控对CPE的重要性,将通过为SKB(SKB是内核中描述数据包的一个结构体名称,tcmark是被设计为SKB结构体中的一个成员变量)内核结构添加一个专门的成员变量tcmark来实现层分类器。具体如表7所示:
表7
Figure BDA0000114370510000071
Figure BDA0000114370510000081
在tcmark标记定义后,针对数据包的标记流程,如图3所示,针对每一数据包进行标记处理的举例,如下:
301:判断是否匹配用户流控条件,如果是(Y)进入302;如果否(N)结束;
流控条件由用户给出,比如用户希望DNS是基础报文;比如用户希望RTP被优先处理等。
匹配的具体实现方式举例:
如用户自定义基础报文的匹配,将tcmark值设置为0x 00 00 80 00(即:第3个字节为1000 0000,由于支持127种用户自定义基础报文,不关心后续的七位值,实际设置为1xxx xxxx),若判断第3字节的最高位为1即可判定为用户自定义基础报文;
如其他报文的匹配,将tcmark值设置为0x 00 00 00 80(即第4个字节为1000 0000,由于支持127种其它报文,不关心后续的七位值,实际设置为1xxxxxxx),其他报文将进入副队列,副队列再根据该值的后七位分别进入各自的队列,然后按所选的调度策略调度。
302:设置skb的tcmark值。
可选地,上述方法还包括:在每条数据流连接跟踪的结构体中添加上述变量名,并对上述变量名赋值,上述赋值标识数据包内报文的报文类型。
本实例所针对的技术问题是:在实际应用中,还存在编程人员希望改进之处:tcmark针对每个包都要进行匹配设置处理。此处提供一种方法加快该处理过程,即利用连接跟踪(conntrack)特性,conntrack是针对流的,对每条数据流在建立conntrack时带上tcmark值(为描述conntrack的结构体添加tcmark成员变量),后续数据包在匹配conntrack时设置tcmark值。在持续发包的应用中,这种处理将在内核上带来一定改善。
连接跟踪的特性是:内核为每一条数据流分配一个连接跟踪来维护该数据流的相关信息,每一条数据流包含N个数据包(N>=1)该特性是连接跟踪服务于数据流而非数据包,这样做的好处是加快了CPE的处理能力。
具体如图4所示,包括:
401:判断是否标记conntrack?如果是,进入402,否则进入403;
如何确定是否标记conntrack的方法可以是:为描述conntrack的结构体添加tcmark成员变量,这样就可以直接通过判断conntrack,tcmark是否为0来判断是否已经标记conntrack。连接跟踪的匹配可以通过五元组实现。
402:通过conntrack的tcmark设置skb的tcmark值;
403:判断是否匹配用户流控条件,如果是进入404;如果否进入402;
404:设置conntrack、skb的tcmark值。
可选地,获取接收到的报文的报文类型包括:先判断接收到的报文是否为系统基础报文、然后判断接收到的报文是否为用户自定义基础报文。
基于以上关于层分类器的介绍,图1方法对应的更具体的流程如图5所示,包括:
501:在一层分类器中判断是系统基础报文,则存入系统基础信息(systembasic message,SBM)主队列;
502:在二层分类器中判断是用户自定义基础报文,则进入用户定义基础信息(user-defined basic message,UBM)主队列;
503:在三层分类器中通过预定条件将报文送入不同副队列,如果不命中,则进入默认队列;副队列一般可以有2~N个,一般可以设置4个副队列,本发明实施例对具体数量不予限定。
上述预定条件由用户定义,可以是五元组或其它被支持的条件,比如:可以让源(source)ip为192.168.1.2的报文进入副队列2,让192.168.1.3的报文进入副队列3,让192.168.1.4的报文进入副队列4等等,队列的调度特性会根据调度1采用的调度策略改变而改变,如果调度1采用优先级调度算法(SP)调度方式,则副队列2~N依次被发送,这样就依次保证了192.168.1.2、192.168.1.3、192.168.1.4报文的优先处理。
504:通过调度1的调度策略从副队列和默认队列中提取元素存入其他信息(other message,OM)主队列;
505:通过调度2的调度策略从上述三个主队列中提取元素发送。
更具体地,上述图5方案中的分类器匹配具体可以是:
一层分类器,如图6所示,包括:
601:协议类型判断;
602:判断是否为系统基础报文?如果是,进入SBM主队列,如果否将报文发送给二层分类器。二层分类器,如图7所示,包括:
701:通过tcmark值&用户自定义基础报文基础码操作判断报文类型;
702:判断是否是用户自定义基础报文?如果是存入UBM主队列,否则发送给层三分类器。
三层分类器,其它报文到此处被分为流控报文和默认报文,如图8所示,包括:
801:通过tcmark值&其它流控报文基础码操作判断报文类型;
802:判断是否为流控报文?如果是存入编号2~N副队列,否则进入默认队列。流控报文将按tcmark值分别进入各自不同的副队列。
进一步地,上述方法还包括:为上述系统基础信息主队列、用户定义基础信息主队列、其他信息主队列中的至少一种设置可配置的长度和丢包机制。
本实例的实现,可以通过队列定义来实现,队列的定义:队列元素为指针,队列内存连续。队列默认采用尾部(tail)丢包机制的原因在于在实际应用中tail丢包机制更高效并且很好的满足了现有的流控工作,建议不要修改该丢包机制。
主队列:系统在发包之前都是通过取主队列的指针来获取包数据发送。具体如表8所示:
表8
Figure BDA0000114370510000101
其它队列,OM主队列的元素来源于副队列和默认队列,副队列的个数取决于中央处理器(Central Processing Unit,CPU)能力和内存容量,建议不要将队列数量设置的太多,否则根据调度算法的不一样可能导致数据包处理的吞吐量下降。如表9所示:
表9
可选地,本发明实施例中的调度算法可以由用户自行设置,那么上述方法还包括:接收用户设定的第一调度算法和第二调度算法。
下面介绍三种可选的调度算法,
先进先出(First input first output,FIFO):
FIFO队列不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。FIFO队列具有处理简单,开销小的优点。但FIFO不区分报文类型,采用尽力而为的转发模式,使对时间敏感的实时应用(如VoIP)的延迟得不到保证,关键业务的带宽也不能得到保证。
优先队列(Priority Queueing,PQ):
PQ队列是针对关键业务应用设计的。关键业务有一个重要特点,需要在拥塞发生时要求优先获得服务以减少响应的延迟。PQ的4个队列分别为高优先队列、中优先队列、正常优先队列和低优先队列,它们的优先级依次降低。在报文出队的时候,PQ首先让高优先队列中的报文出队并发送,直到高优先队列中的报文发送完,然后发送中优先队列中的报文,同样,直到发送完,然后是正常优先队列和低优先队列。这样,分类时属于较高优先级队列的报文将会得到优先发送,而较低优先级的报文将会在发生拥塞时被较高优先级的报文抢占。这样会使得实时业务(如:VoIP)的报文能够得到优先处理,非实时业务(如:E-Mail)的报文在网络处理完关键业务后的空闲间隙得到处理,既保证了实时业务的优先,又充分利用了网络资源。PQ的缺点是,当较高优先级队列中总有报文存在时,则低优先级队列中的报文将一直得不到服务,出现队列“饿死”现象。
定制队列(Custom Queueing,CQ):
CQ的17个队列中,0号队列是优先队列,路由器总是先把0号队列中的报文发送完,然后才处理1到16号队列中的报文,所以0号队列一般作为系统队列,把实时性要求高的交互式协议报文放到0号队列。1到16号队列调度采用轮询方式,按照用户预先配置的额度依次从1到16号用户队列中取出一定数量的报文发送。如果轮询到某队列时该队列恰好为空,则立即转而轮询下一个队列。CQ把报文分类,然后按类别将报文分配到CQ的一个队列中去,而对每个队列,又可以规定队列中的报文所占接口带宽的比例,这样,就可以让不同业务的报文获得合理的带宽,从而既保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽。但由于采用轮询调度各个队列,CQ无法保证任何数据流的延迟。
加权公平队列(Weighted Fair Queueing,WFQ):
WFQ对报文按流特征进行分类,对于IP网络,相同源IP地址、目的IP地址、源端口号、目的端口号、协议号、ToS的报文属于同一个流,而对于MPLS网络,具有相同的标签和EXP域值的报文属于同一个流。每一个流被分配到一个队列,该过程称为散列,采用HASH算法来自动完成,这种方式会尽量将不同特征的流分入不同的队列中。WFQ优点在于配置简单,有利于小包的转发,每条流都可以获得公平调度,同时照顾高优先级报文的利益。但由于流是自动分类,无法手工干预,故缺乏一定的灵活性,且受资源限制,当多个流进入同一个队列时无法提供精确服务,无法保证每个流获得的实际资源量。WFQ均衡各个流的延迟与抖动,同样也不适合延迟敏感的业务应用。
加权循环调度算法(Weighted Round Robin,WRR):
加权循环(WRR)所有业务队列服务,并且将优先权分配给较高优先级队列。在大多数情况下,相对低优先级,WRR将首先处理高优先级,但是当高优先级业务很多时,较低优先级的业务并没有被完全阻塞。加权循环调度算法WRR是一种较强的队列调度算法,它能够有效地区分队列中所有的业务。对于所有的业务流在排队等待调度的队列,WRR是根据每个队列配置的权值与所有的业务流在排队等待调度的队列的权值总和的比来平等地分配带宽。因此,在处理多个用户的高优先等级的业务时,WRR确保每个用户都不会过度地占用网络带宽。
当然还有一些其它的算法如CBWFQ,RTP本发明实施例不再一一介绍。
可选地,本发明实施例中,第一调度算法默认为优先级调度算法(SP),按队列顺序副队列的优先级依次下降,默认队列优先级别最低。优选地,第二调度算法默认为加权循环调度算法。可选地,若第二调度算法为优先级调度算法,则优先级从高到低依次为:系统基础信息主队列、用户定义基础信息主队列、其他信息主队列。在后续实施例中将就可选的调度算法以及算法的选择进行详细说明。
在本发明实施例提供的BMC+调度框架下不需要唯一的指定调度算法,算法的调度是可配的。主要调度算法的配置在“调度1”处实现。如果“调度1”采用优先级调度,按队列顺序副队列的优先级别依次下降,默认队列优先级别最低。在“调度2”处的调度算法默认为WRR,不建议修改该值为SP或其它。原因在于系统基础报文和用户自定义基础报文数量相对少量并且不均衡,对时实性也只是正常要求。WRR虽然多个队列的调度是轮循进行的,但对每个队列不是固定地分配服务时间片-如果某个队列为空,可以迅速换到下一个队列调度,这样带宽资源可以得到充分的利用。如果将调度策略改为优先级别调度方式,主队列的优先级别次序SBM大于UBM和OM,UBM强烈建议大于OM,一般的设置方法是SBM>UBM>OM。如表10所示:
表10
Figure BDA0000114370510000141
建议采用的混合调度方式方式(调度方式是用户可选的。即用户自己设定调度方式),如表11所示:
表11
  调度2   调度1   备注
  wrr   wrr
  wrr   sp
  sp   sp
  sp   wrr
本发明实施例还提供了一种服务质量调度装置,如图9所示,包括:
报文获取单元901,用于获取接收到的报文的报文类型;
报文分类单元902,用于将报文类型为系统基础报文的报文存入系统基础信息主队列;将报文类型为用户自定义基础报文的报文存入用户定义基础信息主队列;将报文类型为系统基础报文和用户自定义基础报文以外的其他报文,按照预定条件存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列;
第一调度单元903,用于通过预置的第一调度算法从副队列中和默认队列中提取报文存入其他信息主队列;
第二调度单元904,通过预置的第二调度算法从系统基础信息主队列、用户定义基础信息主队列以及其他信息主队列中提取报文发送。
本发明实施例,通过将不同类型的报文分别存储到不同的队列中,使用调度算法可以使重要的报文不参与普通报文流控,从而保证重要报文的发送,避免了ipv4和ipv6协议栈的流控混乱,可以保证测试得到回应,保证基础协议报文通信。
进一步地,如图10所示上述装置还包括:
赋值单元1001,用于在上述获取接收到的报文的报文类型之前,在内核中描述数据包的结构体内添加变量名,并对变量名赋值,上述赋值标识数据包内报文的报文类型。
进一步地,上述赋值单元,还用于在每条数据流连接跟踪的结构体中添加上述变量名,并对上述变量名赋值,上述赋值标识数据包内报文的报文类型。
可选地,如图11所示,上述装置,其特征在于,上述报文分类单元902包括:
一层分类器1101、二层分类器1102和三层分类器1103;
一层分类器1101,用于判断接收到的报文是否为系统基础报文,若是,则将存入系统基础信息主队列,否则发送给二层分类器1102;
二层分类器1102,用于判断来自一层分类器1101的报文是否为用户自定义基础报文,若是,则存入用户定义基础信息主队列,否则发送给三层分类器1103;
三层分类器1103,用于按照预定条件将来自二层分类器1102的报文存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列。
进一步地,如图12所示,上述装置还包括:
配置设置单元1201,用于为上述系统基础信息主队列、用户定义基础信息主队列、其他信息主队列中的至少一种设置可配置的长度和丢包机制。
进一步地,如图13所示,上述装置还包括:
算法设置单元1301,用于接收用户设定的第一调度算法和第二调度算法。
值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (15)

1.一种服务质量调度方法,其特征在于,包括:
获取接收到的报文的报文类型;
将报文类型为系统基础报文的报文存入系统基础信息主队列;
将报文类型为用户自定义基础报文的报文存入用户定义基础信息主队列;
将报文类型为系统基础报文和用户自定义基础报文以外的其他报文,按照预定条件存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列;通过预置的第一调度算法从副队列中和默认队列中提取报文存入其他信息主队列;
通过预置的第二调度算法从系统基础信息主队列、用户定义基础信息主队列以及其他信息主队列中提取报文发送。
2.根据权利要求1所述方法,其特征在于,在所述获取接收到的报文的报文类型之前还包括:
在内核中描述数据包的结构体内添加变量名,并对变量名赋值,所述赋值标识数据包内报文的报文类型。
3.根据权利要求2所述方法,其特征在于,还包括:
在每条数据流连接跟踪的结构体中添加所述变量名,并对所述变量名赋值,所述赋值标识数据包内报文的报文类型。
4.根据权利要求1至3任意一项所述方法,其特征在于,获取接收到的报文的报文类型包括:
先判断接收到的报文是否为系统基础报文、然后判断接收到的报文是否为用户自定义基础报文。
5.根据权利要求1至3任意一项所述方法,其特征在于,还包括:
为所述系统基础信息主队列、用户定义基础信息主队列、其他信息主队列中的至少一种设置可配置的长度和丢包机制。
6.根据权利要求1至3任意一项所述方法,其特征在于,还包括:
接收用户设定的第一调度算法和第二调度算法。
7.根据权利要求1至3任意一项所述方法,其特征在于,
第一调度算法默认为优先级调度算法,按队列顺序副队列的优先级依次下降,默认队列优先级别最低。
8.根据权利要求1至3任意一项所述方法,其特征在于,
第二调度算法默认为加权循环调度算法。
9.根据权利要求1至3任意一项所述方法,其特征在于,
若第二调度算法为优先级调度算法,则优先级从高到低依次为:系统基础信息主队列、用户定义基础信息主队列、其他信息主队列。
10.一种服务质量调度装置,其特征在于,包括:
报文获取单元,用于获取接收到的报文的报文类型;
报文分类单元,用于将报文类型为系统基础报文的报文存入系统基础信息主队列;将报文类型为用户自定义基础报文的报文存入用户定义基础信息主队列;将报文类型为系统基础报文和用户自定义基础报文以外的其他报文,按照预定条件存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列;
第一调度单元,用于通过预置的第一调度算法从副队列中和默认队列中提取报文存入其他信息主队列;
第二调度单元,通过预置的第二调度算法从系统基础信息主队列、用户定义基础信息主队列以及其他信息主队列中提取报文发送。
11.根据权利要求10所述装置,其特征在于,还包括:
赋值单元,用于在所述获取接收到的报文的报文类型之前,在内核中描述数据包的结构体内添加变量名,并对变量名赋值,所述赋值标识数据包内报文的报文类型。
12.根据权利要求11所述装置,其特征在于,
所述赋值单元,还用于在每条数据流连接跟踪的结构体中添加所述变量名,并对所述变量名赋值,所述赋值标识数据包内报文的报文类型。
13.根据权利要求10至12任意一项所述装置,其特征在于,所述报文分类单元包括:
一层分类器、二层分类器和三层分类器;
一层分类器,用于判断接收到的报文是否为系统基础报文,若是,则将存入系统基础信息主队列,否则发送给二层分类器;
二层分类器,用于判断来自一层分类器的报文是否为用户自定义基础报文,若是,则存入用户定义基础信息主队列,否则发送给三层分类器;
三层分类器,用于按照预定条件将来自二层分类器的报文存入副队列,在将报文以预定条件存入副队列命中失败时,将该未命中的报文存入默认队列。
14.根据权利要求10至12任意一项所述装置,其特征在于,还包括:
配置设置单元,用于为所述系统基础信息主队列、用户定义基础信息主队列、其他信息主队列中的至少一种设置可配置的长度和丢包机制。
15.根据权利要求10至12任意一项所述装置,其特征在于,还包括:
算法设置单元,用于接收用户设定的第一调度算法和第二调度算法。
CN201110389324.5A 2011-11-30 2011-11-30 一种服务质量调度方法和装置 Active CN102413051B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110389324.5A CN102413051B (zh) 2011-11-30 2011-11-30 一种服务质量调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110389324.5A CN102413051B (zh) 2011-11-30 2011-11-30 一种服务质量调度方法和装置

Publications (2)

Publication Number Publication Date
CN102413051A true CN102413051A (zh) 2012-04-11
CN102413051B CN102413051B (zh) 2015-01-14

Family

ID=45914910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110389324.5A Active CN102413051B (zh) 2011-11-30 2011-11-30 一种服务质量调度方法和装置

Country Status (1)

Country Link
CN (1) CN102413051B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102739523A (zh) * 2012-06-05 2012-10-17 深圳市共进电子股份有限公司 一种linux内核定位CPE业务流类型的方法
CN103634233A (zh) * 2013-11-29 2014-03-12 华南理工大学 变电站通信网络中报文的多级子队列分层调度方法
CN104092626A (zh) * 2014-07-22 2014-10-08 太仓市同维电子有限公司 保障ip融合通信系统服务质量的方法
CN109104437A (zh) * 2018-10-22 2018-12-28 盛科网络(苏州)有限公司 路由域、用于在路由域中处理ip报文的方法和装置
CN110266731A (zh) * 2013-10-24 2019-09-20 微软技术许可有限责任公司 针对通信会话的服务策略的系统和方法
CN112055015A (zh) * 2020-09-02 2020-12-08 许继集团有限公司 一种电力保护装置站控层网络数据处理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878167A (zh) * 2005-06-09 2006-12-13 中兴通讯股份有限公司 一种在多协议标签交换协议中保证服务质量的方法
CN101217499A (zh) * 2008-01-21 2008-07-09 中兴通讯股份有限公司 队列调度方法
CN101436987A (zh) * 2008-10-06 2009-05-20 中兴通讯股份有限公司 QoS服务的调度配置方法和装置
CN101471854A (zh) * 2007-12-29 2009-07-01 华为技术有限公司 一种转发报文的方法及装置
CN101505273A (zh) * 2009-03-04 2009-08-12 中兴通讯股份有限公司 一种交换机及其实现虚拟私有网报文的调度方法
US20100150182A1 (en) * 2008-12-12 2010-06-17 Tandberg Television Inc. Systems and methods for mutiplexing mpeg services for ip networks
CN102255819A (zh) * 2011-08-29 2011-11-23 神州数码网络(北京)有限公司 基于vlan的trill流量优先调度方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878167A (zh) * 2005-06-09 2006-12-13 中兴通讯股份有限公司 一种在多协议标签交换协议中保证服务质量的方法
CN101471854A (zh) * 2007-12-29 2009-07-01 华为技术有限公司 一种转发报文的方法及装置
CN101217499A (zh) * 2008-01-21 2008-07-09 中兴通讯股份有限公司 队列调度方法
CN101436987A (zh) * 2008-10-06 2009-05-20 中兴通讯股份有限公司 QoS服务的调度配置方法和装置
US20100150182A1 (en) * 2008-12-12 2010-06-17 Tandberg Television Inc. Systems and methods for mutiplexing mpeg services for ip networks
CN101505273A (zh) * 2009-03-04 2009-08-12 中兴通讯股份有限公司 一种交换机及其实现虚拟私有网报文的调度方法
CN102255819A (zh) * 2011-08-29 2011-11-23 神州数码网络(北京)有限公司 基于vlan的trill流量优先调度方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102739523A (zh) * 2012-06-05 2012-10-17 深圳市共进电子股份有限公司 一种linux内核定位CPE业务流类型的方法
CN102739523B (zh) * 2012-06-05 2016-04-27 深圳市共进电子股份有限公司 一种linux内核定位CPE业务流类型的方法
CN110266731A (zh) * 2013-10-24 2019-09-20 微软技术许可有限责任公司 针对通信会话的服务策略的系统和方法
CN110266731B (zh) * 2013-10-24 2022-02-25 微软技术许可有限责任公司 针对通信会话的服务策略的系统和方法
CN103634233A (zh) * 2013-11-29 2014-03-12 华南理工大学 变电站通信网络中报文的多级子队列分层调度方法
CN104092626A (zh) * 2014-07-22 2014-10-08 太仓市同维电子有限公司 保障ip融合通信系统服务质量的方法
CN109104437A (zh) * 2018-10-22 2018-12-28 盛科网络(苏州)有限公司 路由域、用于在路由域中处理ip报文的方法和装置
CN112055015A (zh) * 2020-09-02 2020-12-08 许继集团有限公司 一种电力保护装置站控层网络数据处理方法

Also Published As

Publication number Publication date
CN102413051B (zh) 2015-01-14

Similar Documents

Publication Publication Date Title
US11316795B2 (en) Network flow control method and network device
US6757249B1 (en) Method and apparatus for output rate regulation and control associated with a packet pipeline
US6934250B1 (en) Method and apparatus for an output packet organizer
US6882642B1 (en) Method and apparatus for input rate regulation associated with a packet processing pipeline
CN101217499B (zh) 队列调度方法
Vegesna IP quality of service
Roberts Internet traffic, QoS, and pricing
KR100608904B1 (ko) 서비스 품질 보장을 위한 시스템 및 방법
US9438527B2 (en) Flexible queues in a network switch
US7411971B2 (en) Systems and methods for the schedule alignment of packet flow
CN102413051B (zh) 一种服务质量调度方法和装置
EP1227624A2 (en) Qos monitoring system and method for a high-speed diffserv-capable network element
US20060239188A1 (en) Providing a quality of service for various classes of service for transfer of electronic data packets
CN101075963B (zh) 一种基于网络QoS的动态控制装置及其方法
CN102158418A (zh) 基于内容处理消息的系统
CN104378309A (zh) OpenFlow网络中实现QoS的方法、系统和相关设备
Wójcik et al. Flow oriented approaches to QoS assurance
CA2462793C (en) Distributed transmission of traffic streams in communication networks
CN105915468B (zh) 一种业务的调度方法及装置
CN100466593C (zh) 一种支持多业务的综合队列调度的实现方法
US9128755B2 (en) Method and apparatus for scheduling resources in system architecture
CN109039791A (zh) 一种带宽管理方法、装置及计算机设备
Domżał et al. Guide to Flow-Aware Networking: Quality-of-Service Architectures and Techniques for Traffic Management
Li et al. Design and implementation of a new queue scheduling scheme in DiffServ networks
Gerla et al. Resource allocation and admission control styles in QoS DiffServ networks

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