一种转发和控制分离系统中拥塞控制的实现方法

文档序号:7549962阅读:137来源:国知局
专利名称:一种转发和控制分离系统中拥塞控制的实现方法
技术领域
本发明涉及通信技术领域,尤其涉及一种转发和控制分离系统中拥塞控制的实现方法。
背景技术
过去一直以来,人们总是为特定业务构建特定网络,又为融合新兴业务不断改造网络,这使得网络的基础能力和用户业务需求之间总是存在一条难以逾越的鸿沟。究其主要原因其一网络是刚性的,改造只能依靠升级和扩展,无法实现面向新业务的重构;其二网络节点(如路由器/交换机/网关等)是封闭的,节点的升级和扩展只能由原制造商实施,无法实现面向新业务的运营商级别的开放。针对上述问题,为了摆脱传统网络设备体系结构的束缚,2003年IETF成立了ForCES (Forwarding and Control Element Separation,转发和控制件分离)工作组,专门研究开放架构的新一代网络设备的体系结构。ForCES技术的关键点是网络节点设备在结构上实现转发面和控制面分离,同时转发面内部资源实现虚拟化、模块化、标准化,进而实现柔性的开放可重构,这些特征使得网络运营者可以搭积木的方式重组功能模块,进而定制实现各种新业务。以上这些技术特点,使得ForCES架构成为实现新型网络服务应用如三网融合、云计算等的网络节点设备重要技术架构。如图1所示,一个满足ForCES标准的网络设备内有至少一个(或多个,用于冗余备份)控制件(Control Element, CE)和多达几百个转发件(Forwarding Element, FE)。CE和FE间的通信通过ForCES协议的标准协议来完成,这个链接面成为Fp参考点,Fp参考点可以经由一跳也可以经由多跳 网络实现。ForCES协议规定了 Fp参考点上传递的两种消息的格式。这两种消息是控制消息的重定向消息。控制消息是包括CE对FE控制管理内容的消息,例如属性的配置和查询消息,能力和事件的上报消息。重定向消息是包含CE上所处理重定向数据包的消息。Fi/f为各个FE的对网络设备外的网络接口参考点,网络数据经由此进出,并被该网络设备转发处理;Fi为同一网络设备内各个FE间相互连接接口协议,多个FE可以构成一个分布式的转发件网络以完成复杂的转发功能。Fr为同一 ForCES网络设备内各个CE间的连接协议。所有CE通过一个CE管理器(CE Manager, CEM)来管理,所有FE通过FE管理器(FE Manager,FEM)来管理,CEM和FEM也相互交换管理信息。但要注意的是,CEM和FEM的管理知识一些最基本的设置管理,如给各个CE和FE分配ID号等,而对FE的全面管理是通过CE上面的软件经由ForCES协议完成的。CEM和FEM可以被理解成CE或FE管理用的人机接口。如图2所示,考虑到连接CE-FE链路的多样性和复杂性,传递ForCES协议消息的ForCES控制接口被进一步分层为协议层PL(Protocol Layer)和传输映射层TML(TransportMapping Layer),其结构如图2所示。这样做的目的是使ForCES协议的设计能独立于其所用的传输层。传输层可以是多样化的,如使用基于SCTP协议、基于TCP/UDP协议甚至基于ATM网络的传输层等。在传输时,PL将ForCES协议消息交付TML。本地的TML再将该消息发送到对方的TML0在接收端,TML将此消息交付与PL。TML的存在不仅使PL软件相对于传输层协议和传输媒介(如TCP、IP、ATM、以太网等)保持自己的独立性,不会随着传输层协议和传输媒介的改变而发生显著改变,而且保证里PL的实现可移植到所有的TML。因此,TML对于CE和FE上两个PL的通信不可或缺的。不同的传输层协议和传输媒介,就意味着TML应该具备“映射”不同传输层的能力。不管传输层如何变化,TML总是提供相同的接口给PL。当前ForCES系统的相关研究主要集中在ForCES系统的具体实现,网络拥塞方面的内容相对较少。然而实际的情况是,ForCES的CE和FE之间是典型的一对多的通信形式,所以拥塞问题无可避免,尤其是FE对CE的重定向攻击更是绕不开的难题。目前,已有的各种ForCES拥塞解决方案,主要是通过TML自身的调度机制合理地分配带宽,进而达到解除拥塞的目的,大量的实践表明单独依靠TML自身来解决拥塞问题,丢包率过高、代价过大、耗时过多,效率很低。基于上述,本发明提供了一种基于反馈的拥塞控制方法。该方法中,通过反馈拥塞状态,PL和TML联动、CE和FE联动,共同作用实现拥塞状态的快速解除。

发明内容

本发明的目的是克服现有技术的不足,提供一种转发和控制分离系统中拥塞控制的实现方法。本发明解决其技术问题所采用的技术方案包含如下步骤
步骤(I)控制件和转发件中的传输映射层模块都维护了三个用于接收的消息队列,分别是控制消息队列、事件消息队列和重定向消息队列;为每个消息队列分配一个固定长度的缓存区,每个消息队列维护一个权重因子,该权重因子是消息队列缓存区的占用比,同时为每个消息队列缓存区的占用比设定一个队列阀值,为三个消息队列的总体缓存区的占用比设定一个全局阀值。步骤(2)传输映射层模块中的调度器对步骤(I)所述的三个消息队列进行轮询,每一轮的轮询时间等长;在每一轮的轮询中,调度器根据消息队列之间权重因子的比例来分配消息队列的服务时间;新一轮的轮询开始时,调度器首先计算三个消息队列的总体缓存区的占用比,并判断是否超出全局阀值,如果已超出,表示系统进入全局拥塞模式,执行步骤(5);如果没有超出,则进入步骤(3)。步骤(3)每个消息队列的服务时机到来时,调度器首先计算该消息队列缓存区的占用比,并判断是否超出队列阀值,如果没有超出,则按照已分配的服务时间对消息队列进行先进先出服务;如果已超出,表示系统进入局部拥塞模式,执行步骤(4)。步骤(4)在局部拥塞模式下,调度器重新分配本轮剩余的服务时间,最大程度地满足本消息队列的要求;在本消息队列原已分配到的服务时间不足的情况下,向未被服务过的消息队列借用服务时间,直到本消息队列为空或本轮剩余时间用完为止;同时,在下一轮的轮询中,忽略该消息队列,即该消息队列将被空置一轮。步骤(5)全局拥塞模式下,传输映射层模块通过控制件管理模块以回调函数的方式通知协议层模块;协议层模块构造拥塞反馈消息并通过传输映射层模块发送到传输映射层对端模块;
步骤(6)传输映射层对端模块将拥塞反馈消息交付给协议层模块,协议层模块主动地以和式增加积式减少的方式调整数据包的发送速率;
所述的步骤(5)中拥塞反馈消息的构造过程,具体包含如下步骤
5-1.以捎带返回的方式,将拥塞信息嵌入到即将发送的消息,该即将发送的消息类型有两种心跳消息和配置消息。5-2.在心跳消息和控制消息的头部,启用标志字段中的预留位,将拥塞告警放置在预留位中的前面两位,该拥塞告警的长度为两个比特,00表示未发生拥塞,01表示拥塞正在发生,10表示拥塞解除。本发明有益效果如下
本发明解决了 ForCES技术实现和技术标准化过程中对拥塞控制策略急需解决的重要问题,即一种有效可实施的拥塞控制机制。从IETF ForCES工作组的工作看。本发明是目前唯一一套具有完整解决方案、可向IETF ForCES工作组申请进行标准化的拥塞控制方法,目前还未见其它任何有效的解决方法发表。本发明显著优点有1)使用心跳消息承载反向显式拥塞通知消息不会给系统带来额外开销;2)将此方法应用于现有ForCES原型系统和,大大提高了系统整体的QoS性能;3)本发明已经被实际系统使用证明是切实可行的;4)可被标准化的前景使得本发明具有广阔的应用前景和广泛的实际使用效果前景。


图1 ForCES系统的基本结构 图2 PL-TML分层结构图;
图3 —种ForCES系统的软件结构;
图4 ForCES中间件的软件结构;
图5 ForCES系统拥塞控制流程示意 图6基于拥塞告警字段扩展的ForCES协议消息头部结构。
具体实施例方式下面结合附图和实施例对本发明作进一步说明。如图5所示,一种转发和控制分离系统中拥塞控制的实现方法,包含如下步骤 步骤(I)控制件和转发件中的传输映射层模块都维护了三个用于接收的消息队列,分
别是控制消息队列、事件消息队列和重定向消息队列;为每个消息队列分配一个固定长度的缓存区,每个消息队列维护一个权重因子,该权重因子是消息队列缓存区的占用比,同时为每个消息队列缓存区的占用比设定一个队列阀值,为三个消息队列的总体缓存区的占用比设定一个全局阀值。步骤(2)传输映射层模块中的调度器对步骤(I)所述的三个消息队列进行轮询,每一轮的轮询时间等长;在每一轮的轮询中,调度器根据消息队列之间权重因子的比例来分配消息队列的服务时间;新一轮的轮询开始时,调度器首先计算三个消息队列的总体缓存区的占用比,并判断是否超出全局阀值,如果已超出,表示系统进入全局拥塞模式,执行步骤(5);如果没有超出,则进入步骤(3)。
步骤(3)每个消息队列的服务时机到来时,调度器首先计算该消息队列缓存区的占用比,并判断是否超出队列阀值,如果没有超出,则按照已分配的服务时间对消息队列进行先进先出服务;如果已超出,表示系统进入局部拥塞模式,执行步骤(4)。步骤(4)在局部拥塞模式下,调度器重新分配本轮剩余的服务时间,最大程度地满足本消息队列的要求;在本消息队列原已分配到的服务时间不足的情况下,向未被服务过的消息队列借用服务时间,直到本消息队列为空或本轮剩余时间用完为止;同时,在下一轮的轮询中,忽略该消息队列,即该消息队列将被空置一轮。步骤(5)全局拥塞模式下,传输映射层模块通过控制件管理模块以回调函数的方式通知协议层模块;协议层模块构造拥塞反馈消息并通过传输映射层模块发送到传输映射层对端模块;
步骤(6)传输映射层对端模块将拥塞反馈消息交付给协议层模块,协议层模块主动地以和式增加积式减少的方式调整数据包的发送速率;
所述的步骤(5)中拥塞反馈消息的构造过程,具体包含如下步骤
5-1.以捎带返回的方式,将拥塞信息嵌入到即将发送的消息,该即将发送的消息类型有两种心跳消息和配置消息。5-2.在心跳消息和控制消息的头部,启用标志字段中的预留位,将拥塞告警放置在预留位中的前面两位,该拥塞告警的长度为两个比特,00表示未发生拥塞,01表示拥塞正在发生,10表示拥塞解除。
实施例 下面结合实施例对本发明作进一步说明。为了更好地理解本发明所述的拥塞控制方法,首先介绍一种典型的ForCES系统内部软件结构如图3,App指的是CE中运行在PL之上的各种应用软件,可以是一个图形化的用户操作管理系统、路由协议软件等;资源功能层(Resource Function Layer, RFL)完成LFB及属性管理,相关LFB的注册,从PL获取操作信息,调用已注册的处理函数进行LFB属性操作等。在图3的基础上,本发明所述的拥塞控制方法所涉及的ForCES中间件软件结构如图4所示,该中间件整体上由三部分组成TML、PL和CEM/FEM,这三部分都是以独立线程的方式存在,TML和PL之间通过共享消息队列实现两个线程间的通信,而TML和CEM/FEM、PL和CEM/FEM都是通过回调函数的方式互连。整个ForCES中间件既可以存在于CE也可以存在于FE。各内部模块的简单描述如下
I) PL组成
0应用接口管理该模块是一个API集合,其主要功能是向上层App提供API,
App利用这些API可以达到控制整个ForCES中间件运行的目的。上层App的每次API调用被映射为事件、重定向、配置或链路管理的一个动作。同时,该模块还需向CEM/FEM注册回调函数,该注册接口用于拥塞的反馈处理。当全局拥塞发送时,已注册的回调函数将会被CEM/FEM触发。在回调函数执行过程中,扫描配置管理和链路管理这两个模块,找出其中最先要发生的动作,以捎带返回的方式,将拥塞信息嵌入其中。0事件管理这里的事件特指ForCES所定义的事件,如断链、超时、LFB事件等,事件通常由FE产生,目的地是CE。该模块只描述事件信息,收集事件参数,具体到事件消息的构造要由下面的消息构造管理模块来完成。0重定向管理重定向消息指的是从FE外部注入的,需要CE进行处理的消息,如路由协议交互包等。0配置管理CE端所有针对LFB属性、能力的配置命令,都需要经过ForCES中间件转换成相应的ForCES配置消息。0链路管理主要针对ForCES的建链、拆链、心跳等。0消息构造管理上述事件管理、重定向管理、配置管理、链路管理模块只负责收集相关参数,消息构造管理模块将这些参数按照ForCES协议消息格式进行封装,并放入共享消息队列。2) TML 组成
0接口管理向外部提供TML的管理API,具体包括TML的创建、开启和关闭,并从共享消息队列中读取PL所构造的ForCES消息。同时,该模块还需向CEM/FEM提供回调函数注册接口,当全局拥塞发送时,触发CEM/FEM所注册的`回调函数,处理流程转入到CEM/FEM。0 队列管理=ForCES系统中对于不同的消息,划分了 3个独立消息通道,对于需要可靠传输的消息(建链消息、配置消息等),采用了高优先级可靠的通道(HP),对于在传输过程中能容忍超时和丢失的消息(事件消息),采用了中优先级半可靠的通道(MP),对于外部消息(重定向消息),采用了低优先级不可靠的通道(LP)。该队列管理模块针对每个消息通道,分配缓存区。0全局拥塞监控每一轮的轮询开启时,计算三个消息队列的总体缓存区的占用比,并判断是否超出预定阀值。如果超出,则调用上述接口管理模块所提供的API,产生拥塞告警,该API提供了用于表示拥塞状态的参数,O表示未发生拥塞,I表示拥塞正在发生,2表示拥塞解除。0 局部拥塞监控每个消息队列的服务时机到来时,计算每个消息队列缓存区的占用比,决定调度策略。0 服务队列根据局部拥塞的程度,对消息队列进行服务(包括丢包),转入消息发送/接收模块进行处理。0消息发送/接收基于SCTP协议,发送或接收消息,过程中并不会区分ForCES消息的边界。3) CEM/FEM
同时连接了 TML和PL,表现为两个方向不同的回调。对于TML,CEM/FEM提供了回调函数注册接口,并适时触发该回调函数;对于PL,CEM/FEM需向其注册回调函数,由PL完成回调函数的触发动作。PL层收到来自CEM的拥塞告警通知后,将会封装一个ForCES协议类型的拥塞反馈消息。如果重新为ForCES定义一个消息,那么势必会增加ForCES系统的负担,因此,本发明所述的拥塞控制方法用捎带返回的方式,将拥塞信息嵌入到即将发送的消息,该即将发送的消息类型有两种心跳消息和配置消息,具体的嵌入位置是ForCES消息的头部。这里之所以选择心跳消息和配置消息,原因如下1、拥塞反馈由CE端发出,而CE端不会主动发出重定向消息和事件消息;2、心跳消息并不是固定时间间隔的,只有在链路空闲时心跳才会发出,考虑到这种情况引入配置消息是必须的。ForCES消息的头部由版本号、保留字段、消息类型、长度、源ID和目的ID、关联因子和标志组成,如图6所示,心跳消息头部中的标志字段具有以下内容ACK、Pr1、Resv, EM、AT、TP、Reserved。将拥塞告警标记在优先级后面的预留位中的前面两位,标记的内容占用两个比特的位置,00表示未发生拥塞,01表示拥塞正在发生,10表示拥塞解除。CE端的TML层将会向所有的FE发送带有拥塞告警的反馈消息,当各FE PL层接收并解封装该反馈消息后,将以和式增加积式减少的方式调整数据包的发送速率。虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神 。
权利要求
1.一种转发和控制分离系统中拥塞控制的实现方法,其特征在于包含如下步骤步骤(I)控制件和转发件中的传输映射层模块都维护了三个用于接收的消息队列,分别是控制消息队列、事件消息队列和重定向消息队列;为每个消息队列分配一个固定长度的缓存区,每个消息队列维护一个权重因子,该权重因子是消息队列缓存区的占用比,同时为每个消息队列缓存区的占用比设定一个队列阀值,为三个消息队列的总体缓存区的占用比设定一个全局阀值;步骤(2)传输映射层模块中的调度器对步骤(I)所述的三个消息队列进行轮询,每一轮的轮询时间等长;在每一轮的轮询中,调度器根据消息队列之间权重因子的比例来分配消息队列的服务时间;新一轮的轮询开始时,调度器首先计算三个消息队列的总体缓存区的占用比,并判断是否超出全局阀值,如果已超出,表示系统进入全局拥塞模式,执行步骤(5);如果没有超出,则进入步骤(3);步骤⑶每个消息队列的服务时机到来时,调度器首先计算该消息队列缓存区的占用比,并判断是否超出队列阀值,如果没有超出,则按照已分配的服务时间对消息队列进行先进先出服务;如果已超出,表示系统进入局部拥塞模式,执行步骤(4);步骤(4)在局部拥塞模式下,调度器重新分配本轮剩余的服务时间,最大程度地满足本消息队列的要求;在本消息队列原已分配到的服务时间不足的情况下,向未被服务过的消息队列借用服务时间,直到本消息队列为空或本轮剩余时间用完为止;同时,在下一轮的轮询中,忽略该消息队列,即该消息队列将被空置一轮;步骤(5)全局拥塞模式下,传输映射层模块通过控制件管理模块以回调函数的方式通知协议层模块;协议层模块构造拥塞反馈消息并通过传输映射层模块发送到传输映射层对端模块;步骤(6)传输映射层对端模块将拥塞反馈消息交付给协议层模块,协议层模块主动地以和式增加积式减少的方式调整数据包的发送速率;所述的步骤(5)中拥塞反馈消息的构造过程,具体包含如下步骤5-1.以捎带返回的方式,将拥塞信息嵌入到即将发送的消息,该即将发送的消息类型有两种心跳消息和配置消息;5-2.在心跳消息和控制消息的头部,启用标志字段中的预留位,将拥塞告警放置在预留位中的前面两位,该拥塞告警的长度为两个比特,00表示未发生拥塞,01表示拥塞正在发生,10表示拥塞解除。
全文摘要
本发明公开了一种转发和控制分离系统中拥塞控制的实现方法。本发明包括以下步骤1)控制件根据传输映射层中的调度器计算总缓冲区队列的占用比是否超出预先设置的阀值;2)如果判定队列中的消息处于局部拥塞状态,调度器重新分配本轮剩余的服务时间,最大程度地满足本队列的要求;3)传输映射层模块通过控制件管理模块并以回调函数的方式通知协议层模块。协议层模块构造拥塞反馈消息并通过传输映射层模块发送到传输映射层对端;4)传输映射层对端模块将拥塞反馈消息交付与协议层模块,协议层模块主动地以和式增加积式减少的方式调整数据包的发送速率。本发明应用于现有ForCES原型系统和,提高了系统整体的QoS性能。
文档编号H04L12/861GK103051560SQ20131000661
公开日2013年4月17日 申请日期2013年1月7日 优先权日2013年1月7日
发明者高明, 肖邦志, 王伟明, 陈洪涛 申请人:浙江工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1