一种基于网络处理器的流量整形实现方法及其装置的制作方法

文档序号:7693032阅读:225来源:国知局
专利名称:一种基于网络处理器的流量整形实现方法及其装置的制作方法
技术领域
本发明涉及数据通讯领域中宽带通讯技术,特别是涉及一种基于网络处理 器的流量整形实现方法及其装置。
背景技术
随着Internet的普及和商用化,运营商日益希望对不同的业务类型进行划 分和对用户的服务等级级别进行更有力的控制,提供具有个性化的宽带数据服 务。实现这些差别服务(Quality of Service, QOS)的关键技术之一是流量整形。 流量整形可以对用户不规则或不符合预定流量特性的流量进行整形,使用户的 流量更加平滑,以利于网络上下游之间的带宽匹配。相对于其它带宽控制方式, 流量整形需要将用户超过预定带宽的流量暂时缓存下来,占用较大的队列和内 存资源。在没有专甩的TM芯片的情况,实现流量整形难度较大。发明内容本发明所要解决的技术问题在于提供一种基于网络处理器的流量整形实 现方法及其装置,用于解决现有技术中在没有专用的TM芯片的情况,实现流 量整形难度较大的问题。为了实现上述目的,本发明提供了一种基于网络处理器的流量整形实现方法,其特征在于,包括队列管理步骤,用于进行报文的入队、出队和队列拥塞处理; 队列调度步骤,用于根据报文调度策略进行基于端口和业务的队列调度; 业务流量整形步骤,用于完成不同业务报文的流量计算,根据报文流量确定是否延缓业务的队列调度;端口流量整形步骤,用于将出业务队列的报文入端口队列,进行基于端口的队列调度,完成端口的流量计算,根据端口流量延缓端口的队列调度或发送出端口队列的报文。所述的基于网络处理器的流量整形实现方法,其中,所述业务流量整形步 骤中,进一步包括获取业务当前允许发送的报文长度,并比较该业务当前允许发送的报文长 度与入业务队列的报文长度的步骤若该业务当前允许发送的报文长度大于入业务队列的报文长度,则转入所 述队列调度步骤,进行端口的队列调度;若该业务当前允许发送的报文长度小于或等于入业务队列的报文长度,则 设置业务延缓调度标志,延缓端口的队列调度。所述的基于网络处理器的流量整形实现方法,其中,所述队列调度歩骤中, 进一步包括获取一个端口,并判断该端口是否有报文且未设置业务延缓调度标志的步骤若该端口有报文且未设置业务延缓调度标志,则调度该端口下的业务队 列,并进一步判断该业务队列是否有报文且未设置业务延缓调度标志,若是, 则将该报文调出该业务队列;否则调度该端口下的下一个业务队列;若该端口无报文或设置业务延缓调度标志,则调度下一个端口 。 所述的基于网络处理器的流量整形实现方法,其中,所述端口流量整形步骤中,进一步包括将调出所述业务队列的报文入端口队列,获取该端口当前允许发送的报文 长度,并进一步比较该端口当前允许发送的报文长度与入端口队列的报文长度 的步骤若该端口当前允许发送的报文长度大于入端口队列的报文长度,则进一步 判断该端口的队列长度是否大于配置的队列长度阈值,若大于,则设置端口延 缓调度标志,延缓该端口的队列调度,否则调度下一个端口队列;若该端口当前允许发送的报文长度小于或等于入端口队列的报文长度,则 在该报文出端口队列后发送。所述的基于网络处理器的流量整形实现方法,其中,所述队列调度歩骤中, 进一步包括判断该端口下的所有业务队列是否都已调度的步骤,若是,则获取下一个 端口;否则继续进行队列调度。所述的基于网络处理器的流量整形实现方法,其中,进一步包括 根据业务的承诺信息速率获取该业务当前允许发送的报文长度的歩骤;和/或根据该端口配置的承诺信息速率获取该端口当前允许发送的报文长度的 步骤。为了实现上述目的,本发明提供了一种基于网络处理器的流量整形实现装 置,其特征在于,包括队列管理模块,用于进行报文的入队、出队和队列拥塞处理;队列调度模块,连接所述队列管理模块,用于根据所述队列管理模块的报 文调度策略进行基于端口和业务的队列调度;业务流量整形模块,连接所述队列管理模块、所述队列调度模块,用于完 成不同业务报文的流量计算,根据报文流量确定是否通知所述队列调度模块延 缓业务的队列调度;端口流量整形模块,连接所述队列管理模块、所述队列调度模块,用于将 出业务队列的报文入端口队列,进行基于端口的队列调度,完成端口的流量计 算,根据端口流量通知所述队列调度模块延缓端口的队列调度或发送出端口队 列的报文。所述的基于网络处理器的流量整形实现装置,其中,所述业务流量整形模 块获取业务当前允许发送的报文长度,并比较该业务当前允许发送的报文长度 与入业务队列的报文长度若该业务当前允许发送的报文长度大于入业务队列的报文长度,则通知所 述队列调度模块进行端口的队列调度;或若该业务当前允许发送的报文长度小于或等于入业务队列的报文长度,则 设置业务延缓调度标志,通知所述队列调度模块延缓端口的队列调度。所述的基于网络处理器的流量整形实现装置,其中,所述队列调度模块获 取一个端口 ,并判断该端口是否有报文且未设置业务延缓调度标志若该端口有报文且未设置业务延缓调度标志,则调度该端口下的业务队 列,并进一步判断该业务队列是否有报文且未设置业务延缓调度标志,若是, 则通知所述队列管理模块将该报文调出该业务队列,所述端口流量整形模块再 将该报文入端口队列,否则调度该端口下的下一个业务队列;务延缓调度标志,则调度下一个端口 。所述的基于网络处理器的流量整形实现装置,其中,所述端口流量整形模 块在将该报文入端口队列后,获取该端口当前允许发送的报文长度,并比较该 端口当前允许发送的报文长度与入端口队列的报文长度若该端口当前允许发送的报文长度大于入端口队列的报文长度,则进一步 判断该端口的队列长度是否大于配置的队列长度阈值,若大于,则设置端口延 缓调度标志,延缓该端口的队列调度,否则调度下一个端口队列;若该端口当前允许发送的报文长度小于或等于入端口队列的报文长度,则 在该报文出端口队列后发送。本发明的有益技术效果与现有技术相比,本发明提供了一种不借助TM芯片,采用网络处理器实 现端口和业务二级流量整形的实现方法,其通过队列管理模块、队列调度模块、 业务流量整形模块和端口流量整形模块等四个模块的协调和配合,共同实现基 于端口和业务二级流量整形;本发明仅仅提出了实现流量整形的架构,并没有 规定具体的算法和实现细节,可根据不同的业务需要采用不同的算法。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的 限定。


图1是本发明网络处理器流量整形的装置架构示意图; 图2是本发明网络处理器流量整形处理方法的流程图。
具体实施方式
下面结合附图和具体实施方式
对本发明的技术方案作进一步更详细的描述。如图1所示,是本发明网络处理器流量整形的装置架构示意图。该装置 100包括队列管理模块IO、队列调度模块20、业务流量整形模块30和端口 流量整形模块40。队列管理模块10,用于根据数据报文的不同业务分类进行报文的入队、 出队和队列拥塞处理。具体地,首先队列管理模块IO根据不同的业务分类策略将数据报文入不同的队列;收到队列调度模块20的出队消息后,队列管理模块IO将报文出队, 并将出队的报文传递到端口流量整形模块40,通知端口流量整形模块40处理 出队的报文;当发生队列拥塞时,可以有选择的采用尾部丢弃(TaiI Drop, TD), 或早期随机丢弃算法(Random Early Detection, RED)或加权早期随机检测算 法(Weighted Random Early Detection, WRED)进行拥塞控制。队列调度模块20,连接队列管理模块IO,用于根据调度策略进行基于端 口和业务的队列调度。具体地,队列调度模块20根据用户的配置采用PQ (Priority Queuing,优 先队列)、WFQ (Weighted Fair Queuing,加权公平队列)或LLQ (Low Latency Queuing,低延迟队列)等调度算法进行队列调度,并根据业务流量整形模块 30或端口流量整形模块40传递的信息延缓特定业务和端口的队列调度。业务流量整形模块30,连接队列管理模块IO、队列调度模块20,用于完 成不同业务报文的流量计算,确定是否延缓业务队列调度。当业务的流量大于 预先配置的业务流量整形带宽时,延缓业务报文的发送,通知队列调度模块 20延缓该业务队列的调度。进一步地,业务流量整形模块30接收队列管理模块10的入队消息后,将 入队消息和是否延缓业务队列调度消息通知队列调度模块20;进一步地,业务流量整形模块30根据业务的承诺信息速率(Committed Information Rate, CIR)计算当前允许发送的报文长度。并将当前允许发送的 报文长度与接收到的报文长度进行比较,如果当前允许发送的报文长度大于接 收的报文长度,通知队列调度模块20进行端口的队列调度,否则设置业务延 缓发送标志,发送延缓业务队列调度消息,通知队列调度模块20延缓端口的 队列调度。业务流量整形模块30可采用的流量计算和控制算法很多,如SRTCM和 TRTCM。本发明的装置100框架,并不限定特定的算法。端口流量整形模块40,连接队列管理模块10、队列调度模块20,负责将 报文进入不同的端口队列,进行基于端口的队列调度;并进行端口的流量计算, 决定报文是否延缓调度。进一步地,端口流量整形模块40接收队列管理模块10出业务队列的报文,根据端口配置的承诺信息速率CIR计算端口当前允许发送的报文长度。进一步地,将端口当前允许发送的报文长度与接收到的报文长度进行比 较,如果当前允许发送的报文长度大于接收的报文长度,调度该端口下的报文出队,并计算队列相关参数;如果端口队列长度大于配置的队列长度阀值,设 置端口延缓调度标志,通知队列调度模块20延缓该端口的调度,如果小于或 等于配置的队列长度阀值,将出队的报文发送出去。如图2所示,是本发明网络处理器流量整形处理方法的流程图。结合图1, 该流程描述了网络处理器流量整形处理方法的具体实施流程和各模块之间消息交互,具体如下步骤S201,对数据报文进行业务分类;步骤S202,队列管理模块IO根据不同的业务类型,把接收的数据包加入 不同的优先级队列(即将数据报文送入业务队列),并通知业务流量整形模块 30,转入步骤S204;步骤S203,队列管理模块10将报文出业务队列,进入步骤S213;步骤S204,业务流量整形模块30根据配置计算不同业务当前允许发送的 报文长度,进入歩骤S205;该步骤中,业务流量盤形模块30根据不同业务的承诺信息速率 (Committed Information Rate, CIR)计算不同业务当前允许发送的报文长度;歩骤S205,业务流量整形模块30将当前允许发送的报文长度与接收到的 入队的报文长度进行比较,判断当前允许发送的报文长度是否大于入队的报文 长度;若是,通知队列调度模块20,并转入步骤S207;否则进入步骤S206;歩骤S206,业务流量整形模块30设置业务队列延缓调度标志,通知队列 调度模块20;步骤S207,队列调度模块20进行基于端口的队列调度,获取一个端口, 并进入步骤S208;歩骤S208,队列调度模块20判断端口是否有报文,且是否没有设置延缓 调度标志(即允许调度);如果端口有报文且没有设置延缓调度标志,则进入 步骤S209;如果端口没有报文需要调度或设置延缓调度标志(延缓调度), 则转入步骤S207,调度下一个端口;步骤S209,队列调度模块20进行业务队列调度,调度该端口的下一个业务队列,获取该端口下的一个业务,进入步骤S210;步骤S210,队列调度模块20判断业务队列是否报文,且是否没有设置延 缓调度标志,如果业务队列有报文且没有设置延缓调度标志,则通知队列管理模块10将报文出队,进入步骤S211;如果业务队列没有报文或设置延缓调度标志,则转入步骤S209;步骤S211,进入步骤S203,调度业务队列,继续步骤S212;步骤S212,队列调度模块20判断该端口下的所有业务是否都已调度?若 是,转入步骤S207;否则转入步骤S209;步骤S213,端口流量整形模块40将从队列调度模块20调度出来的报文 入端口队列;步骤S214,端口流量整形模块40根据配置计算端口当前允许发送的报文 长度;该步骤中,端口流量整形模块40根据端口配置的承诺信息速率CIR计算 端口当前允许发送的报文长度。步骤S215,端口流量整形模块40判断当前允许发送的报文长度是否大于 入队的报文长度;若是,则转入步骤S217;否则进入步骤S216;步骤S216,端口流量整形模块40调度该端口下的报文出队,将报文出队, 进入步骤S217;步骤S217,端口流量整形模块40判断端口的队列长度是否大于配置的队 列长度阈值?若是,则进入步骤S218;否则转入步骤S219;步骤S218,端口流量整形模块40设置端口延缓调度标志,通知队列调度 模块20延缓该端口的调度;步骤S219,端口流量整形模块40将出队的报文发送出去,调度下一个端 口队列,并转入步骤S214。本发明提供了一种采用网络处理器进行端口和业务流量整形的实现方法 和架构,其通过队列管理模块、端口流量整形模块、业务流量整形模块和队列 调度模块等四个模块的协调和配合,共同实现基于端口和业务二级流量整形。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但 这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种基于网络处理器的流量整形实现方法,其特征在于,包括队列管理步骤,用于进行报文的入队、出队和队列拥塞处理;队列调度步骤,用于根据报文调度策略进行基于端口和业务的队列调度;业务流量整形步骤,用于完成不同业务报文的流量计算,根据报文流量确定是否延缓业务的队列调度;端口流量整形步骤,用于将出业务队列的报文入端口队列,进行基于端口的队列调度,完成端口的流量计算,根据端口流量延缓端口的队列调度或发送出端口队列的报文。
2、 根据权利要求1所述的基于网络处理器的流量整形实现方法,其特征 在于,所述业务流量整形步骤中,进一歩包括获取业务当前允许发送的报文长度,并比较该业务当前允许发送的报文长 度与入业务队列的报文长度的步骤若该业务当前允许发送的报文长度大于入业务队列的报文长度,则转入所 述队列调度步骤,进行端口的队列调度;若该业务当前允许发送的报文长度小于或等于入业务队列的报文长度,则 设置业务延缓调度标志,延缓端口的队列调度。
3、 根据权利要求2所述的基于网络处理器的流量整形实现方法,其特征 在于,所述队列调度歩骤中,进一步包括获取一个端口,并判断该端口是否有报文且未设置业务延缓调度标志的步骤若该端口有报文且未设置业务延缓调度标志,则调度该端口下的业务队 列,并进一歩判断该业务队列是否有报文且未设置业务延缓调度标志,若是, 则将该报文调出该业务队列;否则调度该端口下的下一个业务队列;若该端口无报文或设置业务延缓调度标志,则调度下一个端口 。
4、 根据权利要求3所述的基于网络处理器的流量整形实现方法,其特征 在于,所述端口流量整形步骤中,进一步包括将调出所述业务队列的报文入端口队列,获取该端口当前允许发送的报文 长度,并进一步比较该端口当前允许发送的报文长度与入端口队列的报文长度的步骤若该端口当前允许发送的报文长度大于入端口队列的报文长度,则进一步 判断该端口的队列长度是否大于配置的队列长度阈值,若大于,则设置端口延 缓调度标志,延缓该端口的队列调度,否则调度下一个端口队列;若该端口当前允许发送的报文长度小于或等于入端口队列的报文长度,则 在该报文出端口队列后发送。
5、 根据权利要求4所述的基于网络处理器的流量整形实现方法,其特征 在于,所述队列调度步骤中,进-步包括判断该端口下的所有业务队列是否都已调度的步骤,若是,则获取下一个 端口;否则继续进行队列调度。
6、 根据权利要求4或5所述的基于网络处理器的流量整形实现方法,其 特征在于,进一步包括根据业务的承诺信息速率获取该业务当前允许发送的报文长度的歩骤;和/或根据该端口配置的承诺信息速率获取该端口当前允许发送的报文长度的 步骤。
7、 -一种基于网络处理器的流量整形实现装置,其特征在于,包括 队列管理模块,用于进行报文的入队、出队和队列拥塞处理; 队列调度模块,连接所述队列管理模块,用于根据所述队列管理模块的报文调度策略进行基于端口和业务的队列调度;业务流量整形模块,连接所述队列管理模块、所述队列调度模块,用于完 成不同业务报文的流量计算,根据报文流量确定是否通知所述队列调度模块延 缓业务的队列调度;端口流量整形模块,连接所述队列管理模块、所述队列调度模块,用于将 出业务队列的报文入端口队列,进行基于端口的队列调度,完成端口的流量计 算,根据端口流量通知所述队列调度模块延缓端口的队列调度或发送出端口队 列的报文。
8、 根据权利要求7所述的基于网络处理器的流量整形实现装置,其特征 在于,所述业务流量整形模块获取业务当前允许发送的报文长度,并比较该业 务当前允许发送的报文长度与入业务队列的报文长度若该业务当前允许发送的报文长度大于入业务队列的报文长度,则通知所 述队列调度模块进行端口的队列调度;或若该业务当前允许发送的报文长度小于或等于入业务队列的报文长度,则 设置业务延缓调度标志,通知所述队列调度模块延缓端口的队列调度。
9、 根据权利要求8所述的基于网络处理器的流量整形实现装置,其特征 在于,所述队列调度模块获取一个端口,并判断该端口是否有报文且未设置业 务延缓调度标志若该端口有报文且未设置业务延缓调度标志,则调度该端口下的业务队 列,并进一步判断该业务队列是否有报文且未设置业务延缓调度标志,若是, 则通知所述队列管理模块将该报文调出该业务队列,所述端口流量整形模块再 将该报文入端口队列,否则调度该端口下的下一个业务队列;若该端口无报文或设置业务延缓调度标志,则调度下一个端口。
10、 根据权利要求9所述的基于网络处理器的流量整形实现装置,其特征 在于,所述端口流量整形模块在将该报文入端口队列后,获取该端口当前允许 发送的报文长度,并比较该端口当前允许发送的报文长度与入端口队列的报文 长度若该端口当前允许发送的报文长度大于入端口队列的报文长度,则进一步 判断该端口的队列长度是否大于配置的队列长度阈值,若大于,则设置端口延 缓调度标志,延缓该端口的队列调度,否则调度下一个端口队列;若该端口当前允许发送的报文长度小于或等于入端口队列的报文长度,则 在该报文出端口队列后发送。
全文摘要
本发明公开了一种基于网络处理器的流量整形实现方法及其装置,其中该方法包括队列管理步骤,用于进行报文的入队、出队和队列拥塞处理;队列调度步骤,用于根据报文调度策略进行基于端口和业务的队列调度;业务流量整形步骤,用于完成不同业务报文的流量计算,根据报文流量确定是否延缓业务的队列调度;端口流量整形步骤,用于将出业务队列的报文入端口队列,进行基于端口的队列调度,完成端口的流量计算,根据端口流量延缓端口的队列调度或发送出端口队列的报文。本发明在没有专用TM芯片情况下实现了基于端口和业务二级流量整形。
文档编号H04L12/56GK101257453SQ200810101829
公开日2008年9月3日 申请日期2008年3月12日 优先权日2008年3月12日
发明者牛广平 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1