基于POTN的流量控制优化方法技术

技术编号:13676991 阅读:136 留言:0更新日期:2016-09-08 03:25
本发明专利技术公开了一种基于POTN的流量控制优化方法,包括:CCU应用层定时向每个单盘发送轮询帧,获取在位物理端口信息,并根据在位物理端口信息对流控队列进行物理端口加入和物理端口移出操作,实时更新流控队列;CCU应用层对流控队列中的每个端口进行轮询发包,控制每个端口的流量,且每个端口的发包时间和在该发包时间内发出的数据包总长度最大门限值根据每个端口的发包速率预设。本发明专利技术通过对流控队列进行动态维护,保证流控队列中全部为实际在位端口,避免设备上并没有在用的端口加入到流控队列,减少流控队列中需要轮询的端口数目,从而明显降低流控线程的CPU占用率。

【技术实现步骤摘要】

本专利技术涉及数据传输领域,具体涉及基于POTN的流量控制优化方法
技术介绍
在POTN设备中,由于单盘带宽的限制,MCC(通道控制器)和SCC(串行通信控制器)通道发送数据的速率不能超过一定的限制,因此在POTN设备主控盘的协议栈上开发了流量控制功能,以便根据单盘的带宽控制数据的发送速率。目前,流量控制是将各etsppp端口加入到一个流量控制队列(简称流控队列),在每个单位时间内,对流控队列中的各个etsppp端口进行定时轮询实现的。由于流量控制需要控制的各个etsppp端口发包速率是10毫秒级别(如表1),因此轮询的频率非常高,当设备的etsppp端口数目较多时,就会出现流量控制线程CPU占用率过高的问题。表1:流量控制需要控制的各个etsppp端口发包速率表。端口名称MCC通道速率轮询时间周期单位周期最大发送长度2m2m/s10MS2500个字节512k512k/s30MS1640个字节2.5G1.3m/s40MS1640个字节10G1.3m/s10MS1640个字节
技术实现思路
本专利技术所要解决的技术问题是当POTN设备的etsppp端口数目较多时,现有流量控制方案的流量控制线程CPU占用率过高的问题。为了解决上述技术问题,本专利技术所采用的技术方案是提供一种基于POTN的流量控制优化方法,包括以下步骤:第一步、CCU应用层定时向每个单盘发送轮询帧,获取在位物理端口信息,并根据在位物理端口信息对流控队列进行物理端口加入和物理端口移出操作,实时更新流控队列;第二步、CCU应用层对流控队列中的每个端口进行轮询发包,控制每个端口的流量,且每个端口的发包时间和在该发包时间内发出的数据包总长度最大门限值根据每个端口的发包速率预设。在上述方法中,第一步具体包括以下步骤:步骤S11、CCU应用层定时向每个单盘发送轮询帧;步骤S12、收到轮询帧的单盘向CCU应用层回复报带有该单盘的槽位号以及物理端口在位信息和数目的报文;步骤S13、CCU应用层解析回复报文,得到每个回复报文单盘的槽位号以及物理端口在位信息和数目;步骤S14、CCU应用层查询解析得到的所有槽位号,判定本次轮询单盘是否回复报文,回复报文的单盘,判定为在位,执行步骤S17;没有回复报文的单盘,判定为不在位,执行步骤S15;步骤S15、查询当前流控队列中是否存在不在位单盘的端口,如果存在,执行步骤S16;如果不存在,执行步骤S19;步骤S16、CCU应用层调用协议栈接口,将不在位单盘对应的所有端口从流控队列中移除,并将其端口的流控标志位置为0,执行步骤S19;步骤S17、查询在位单盘回复报文中物理端口是否全部在流控队列中,如果在,执行步骤S19;否则,执行步骤S18;步骤S18、CCU应用层调用CCU协议栈的接口,将不在流控队列中的端口加入到流控队列,并将该端口的流控标志位置为1;步骤S19、结束程序。在上述方法中,根据单盘在位四种情况,分别对流控队列的处理方式如下:单盘一直在位:CCU协议栈查找流控队列,判定该单盘回复报文中的每个端口是否在流控队列中,如果存在,直接返回;否则,调用CCU协议栈接口将该端口加入流控队列,并将其流控标志位置为1;单盘原来在位,现在不在位:CCU协议栈查找到流控队列中需要移除的该单盘端口,调用CCU协议栈接口从流控队列中移除该端口,并将其流控标志位置为0;单盘原来不在位,现在在位:CCU协议栈查找到流控队列,判定需要加入流控队列的端口是否在流控队列中,如果不在调用CCU协议栈接口将不在流控队列中的端口加入流控队列,并将端口的流控标志位置为1,如果在,直接返回;单盘原来不在位,现在依然不在位:CCU协议栈查找到流控队列,判定每个需要移除流控队列的端口是否在流控队列中,如果在,调用CCU协议栈接口将该端口从流控队列移除,并将端口的流控标志位置为0;如果不在,直接返回。在上述方法中,第二步包括以下步骤:步骤S21、端口发包,判断发包端口的流控标志是否为1,如果是执行步骤S23;否则,执行步骤S22;步骤S22、正常发包,不做流量控制;步骤S23、将数据包加入流控队列对应端口的发包队列中,等待轮询发包;步骤S24、CCU应用层控制流控队列中的每个端口在其对应发包时间内轮询发包;步骤S25、判断在发包时间内发包端口当前转发数据包的包长与已发数据包长之和是否超过该端口的数据包总长度最大门限值,如果超过,执行
步骤S27;否则,执行步骤S26;步骤S26、将当前转发数据包发送给以太网驱动;步骤S27、停止转发该端口发包队列中当前转发数据包和剩余的数据包,在该端口的下一次发包时间到来时继续发送;步骤S28、当该端口本次发包时间结束,开始对流控队列中下一个端口数据包进行发送。在上述方法中,发包时间和数据包总长度最大门限值的数值根据CCU单盘提供的通道速率参数预设;通过改变端口的发包时间和数据包总长度最大门限值,控制控流队列中每个不同速率端口发包速度。在上述方法中,数据包总长度最大门限值不能超过MTU。本专利技术通过对流控队列进行动态维护,保证流控队列中全部为实际在位端口,避免设备上并没有在用的端口加入到流控队列,减少流控队列中需要轮询的端口数目,从而明显降低流控线程的CPU占用率。附图说明图1为本专利技术基于POTN的流量控制优化方法中第一步的流程图;图2为本专利技术基于POTN的流量控制优化方法的流量控制状态的示意图;图3为本专利技术基于POTN的流量控制优化方法中第二步的流程图。具体实施方式经过对现有流量控制方案的流量控制线程CPU占用率过高原因进行分析,可知,要优化现有流量控制方案,降低现有流量控制CPU占用率,可以通过只将动态的实际在位物理端口所对应的MCC和SCC端口加入到流控队列实现,而不是将设备所有的逻辑端口全部加入流控队列,因此需要实
时获取在位物理端口信息。在POTN设备中,CCU应用层和单盘应用层之间由于需要进行数据交互(比如告警,配置),因此存在一套完善的盘间通信系统,本专利技术利用该盘间通信系统,通过CCU应用层与单盘之间的通信实时获取物理端口在位信息,CCU应用层通过盘间通信系统定时向单盘发送轮询帧,单盘收到该轮询帧后,回复CCU应用层该单盘的槽位和物理端口在位信息和数目,CCU应用层根据单盘回复内容调用协议栈的接口,对流控队列进行加入端口或移除端口的操作,从而达到流控队列中物理端口的动态增、删效果。下面结合说明书附图和具体实施例对本专利技术做出详细的说明。本专利技术提供的基于POTN的流量控制优化方法,包括以下步骤:第一步、CCU应用层定时向每个单盘发送轮询帧,获取在位物理端口信息,并根据在位物理端口信息对流控队列进行物理端口加入和物理端口移出操作,实时更新流控队列中的在位物理端口信息,保证流控队列中的端口都在位,减少CCU应用层轮询发包的端口数目;第二步、CCU应用层对流控队列中的每个端口进行轮询发包,每个端口的发包时间和在该发包时间内发出的数据包总长度最大门限值根据每个端口的发包速率预设,以此来控制每个端口的流量。如图1所示,本专利技术的第一步具体包括以下步骤:步骤S11、CCU应用层定时向设备中的每个单盘发送轮询帧;步骤S12、单盘收到轮询帧后,向CCU应用层回复报文,该报文包括该单盘的槽位号以及物理端本文档来自技高网
...

【技术保护点】
一种基于POTN的流量控制优化方法,其特征在于,包括以下步骤:第一步、CCU应用层定时向每个单盘发送轮询帧,获取在位物理端口信息,并根据在位物理端口信息对流控队列进行物理端口加入和物理端口移出操作,实时更新流控队列;第二步、CCU应用层对流控队列中的每个端口进行轮询发包,控制每个端口的流量,且每个端口的发包时间和在该发包时间内发出的数据包总长度最大门限值根据每个端口的发包速率预设。

【技术特征摘要】
1.一种基于POTN的流量控制优化方法,其特征在于,包括以下步骤:第一步、CCU应用层定时向每个单盘发送轮询帧,获取在位物理端口信息,并根据在位物理端口信息对流控队列进行物理端口加入和物理端口移出操作,实时更新流控队列;第二步、CCU应用层对流控队列中的每个端口进行轮询发包,控制每个端口的流量,且每个端口的发包时间和在该发包时间内发出的数据包总长度最大门限值根据每个端口的发包速率预设。2.如权利要求1所述的方法,其特征在于,第一步具体包括以下步骤:步骤S11、CCU应用层定时向每个单盘发送轮询帧;步骤S12、收到轮询帧的单盘向CCU应用层回复报带有该单盘的槽位号以及物理端口在位信息和数目的报文;步骤S13、CCU应用层解析回复报文,得到每个回复报文单盘的槽位号以及物理端口在位信息和数目;步骤S14、CCU应用层查询解析得到的所有槽位号,判定本次轮询单盘是否回复报文,回复报文的单盘,判定为在位,执行步骤S17;没有回复报文的单盘,判定为不在位,执行步骤S15;步骤S15、查询当前流控队列中是否存在不在位单盘的端口,如果存在,执行步骤S16;如果不存在,执行步骤S19;步骤S16、CCU应用层调用协议栈接口,将不在位单盘对应的所有端口从流控队列中移除,并将其端口的流控标志位置为0,执行步骤S19;步骤S17、查询在位单盘回复报文中物理端口是否全部在流控队列中,如果在,执行步骤S19;否则,执行步骤S18;步骤S18、CCU应用层调用CCU协议栈的接口,将不在流控队列中的端口加入到流控队列,并将该端口的流控标志位置为1;步骤S19、结束程序。3.如权利要求2所述的方法,其特征在于,根据单盘在位四种情况,分别对流控队列的处理方式如下:单盘一直在位:CCU协议栈查找流控队列,判定该单盘回复报文中的每个端口是否在流控队列中,如果存在,则直接返回;否则调用CCU协议栈接口将该端口加入流控队列,并...

【专利技术属性】
技术研发人员:邓绍政程小鹏宋冬生
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1