基于网络介质的流量控制系统及方法与流程

文档序号:16672108发布日期:2019-01-18 23:39阅读:251来源:国知局
基于网络介质的流量控制系统及方法与流程

本发明涉及网络通信领域,具体是涉及一种基于网络介质的流量控制系统及方法。



背景技术:

目前的数据通信设备通常分为控制平面和转发平面,以otn(opticaltransportnetwork,光传送网)信令网的gcc(generalcommunicationchannel,通用通信信道)开销举例进行说明,正常的处理流程为:控制平面的应用层和协议模块发送管理数据,通过信令通道下发到转发平面;转发平面首先将数据缓存到硬件缓冲区中,等待进行otn成帧和光电交叉处理后,将数据发送到数据线路上。

由于gcc通用通信信道每帧只能携带两字节网管数据,在一个otn成帧周期只能传输两个字节网管数据,同时转发平面的硬件也存在硬件周期,会定时清理发送缓冲区;基于此限制,在控制平面突发进行网管数据传输时,可能会出现以下问题:

(1)控制平面无法感知转发平面网络拥塞情况,持续发送报文数据,会增加网络负担;

(2)转发平面硬件缓冲区满的情况下,会导致丢包、包数据检验和异常等问题,导致实际线路上传输无效帧而引发不一致问题;

(3)数据通道缺少管理机制,不能提供有效的流量控制和数据统计功能、以及相关的监管机制。

针对传统方案存在的问题,可以通过增加硬件缓冲区的方式,来满足大量的网管数据传输需求,但基于转发平面硬件的限制缓冲区不可能做到很大,并且在处理突发流量时,硬件缓存也会存在失效的情况;另一种解决方案是:增加每帧传输管理数据的字节数,以增加带宽,但在通道固化和修改帧封装格式代价较大情况时,也不是最优化的方案。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种基于网络介质的流量控制系统及方法,能够实时调整带宽,在流量突发情况下,使报文以比较均匀的速度向外发送,降低了对转发平面硬件缓冲区的要求。

本发明提供一种基于网络介质的流量控制系统,包括转发平面和控制平面,转发平面建立物理通道,根据物理通道的类型,确认每类物理通道的实时带宽,上报至控制平面;

控制平面根据物理通道的类型生成对应的接口,根据每类物理通道的实时带宽,计算接口的流量整形参数,对接口的流量进行整形。

在上述技术方案的基础上,所述转发平面建立物理通道时,上报物理通道的类型及实时带宽至控制平面,计算硬件缓冲区的大小并设置;物理通道的类型或实时带宽发生变化时,转发平面实时上报物理通道的变化至控制平面,重新计算硬件缓冲区的大小并设置。

在上述技术方案的基础上,所述控制平面包括接口管理模块、ip协议栈、流量控制模块;

控制平面的接口管理模块接收转发平面上报的物理通道的类型及实时带宽,根据物理通道的类型生成接口创建命令;接口管理模块通过配置命令向ip协议栈发送接口创建命令,并将物理通道的实时带宽下发至ip协议栈;

ip协议栈接收到接口管理模块下发的接口创建命令后,创建相应的接口,ip协议栈通过配置通道将接口类型及接口实时带宽下发到流量控制模块;

流量控制模块根据每类物理通道的实时带宽,计算接口的流量整形参数,根据接口的流量整形参数进行接口的流量整形处理,实现实时带宽调整。

在上述技术方案的基础上,所述接口的流量整形参数包括:接口实时带宽breal、流量整形定时器时钟周期tscycle、流量整形定时器周期数tks、每个流量整形周期tshaping内的最大传输字节数max_byte_per_tick,所述接口实时带宽breal与物理通道的实时带宽相同。

在上述技术方案的基础上,所述接口的流量整形参数的具体计算过程如下:

计算每秒钟的流量整形定时器周期数tksec:tksec=1000ms/tscycle;计算数据传输速率达到接口实时带宽breal时,每个整形定时器时钟周期tscycle内需要传输的字节数记为bcal,bcal=breal/tksec=(breal×tscycle)/1000ms;

将bcal与基础网络带宽bbase进行比较,

如果bcal≥bbase,表示当前的实际带宽需求己达到或超过基础带宽值,记流量整形定时器计算周期数tkcal=1,并将bcal记为最大传输字节数max_byte_per_tick,计算过程结束;

如果bcal<bbase,则根据计算得到的bcal计算需要多少个流量整形定时器周期数tkcal才能达到基础带宽bbase,计算公式为:tkcal=sup(bbase/bcal),其中sup表示最小上界;根据计算得到的流量整形定时器周期数tkcal,计算最大传输字节数max_byte_per_tick,计算公式为:max_byte_per_tick=bcal×tkcal。

本发明还提供一种基于网络介质的流量控制方法,包括以下步骤:

转发平面建立物理通道,根据物理通道的类型,确认每类物理通道的实时带宽,上报至控制平面;

控制平面根据物理通道的类型生成对应的接口,根据每类物理通道的实时带宽,计算接口的流量整形参数,对接口的流量进行整形。

在上述技术方案的基础上,该方法还包括以下步骤:所述转发平面建立物理通道时,上报物理通道的类型及实时带宽至控制平面,计算硬件缓冲区的大小并设置;物理通道的类型或实时带宽发生变化时,转发平面实时上报物理通道的变化至控制平面,重新计算硬件缓冲区的大小并设置。

在上述技术方案的基础上,所述控制平面根据物理通道的类型生成对应的接口,根据每类物理通道的实时带宽,计算接口的流量整形参数,对接口的流量进行整形,具体过程为:

控制平面的接口管理模块接收转发平面上报的物理通道的类型及实时带宽,根据物理通道的类型生成接口创建命令;接口管理模块通过配置命令向ip协议栈发送接口创建命令,并将物理通道的实时带宽下发至ip协议栈;

ip协议栈接收到接口管理模块下发的接口创建命令后,创建相应的接口,ip协议栈通过配置通道将接口类型及接口实时带宽下发到流量控制模块;

流量控制模块根据每类物理通道的实时带宽,计算接口的流量整形参数,根据接口的流量整形参数进行接口的流量整形处理,实现实时带宽调整。

在上述技术方案的基础上,所述接口的流量整形参数包括:接口实时带宽breal、流量整形定时器时钟周期tscycle、流量整形定时器周期数tks、每个流量整形周期tshaping内的最大传输字节数max_byte_per_tick,所述接口实时带宽breal与物理通道的实时带宽相同。

在上述技术方案的基础上,所述接口的流量整形参数的具体计算过程如下:

计算每秒钟的流量整形定时器周期数tksec:tksec=1000ms/tscycle;计算数据传输速率达到接口实时带宽breal时,每个整形定时器时钟周期tscycle内需要传输的字节数记为bcal,bcal=breal/tksec=(breal×tscycle)/1000ms;

将bcal与基础网络带宽bbase进行比较,

如果bcal≥bbase,表示当前的实际带宽需求己达到或超过基础带宽值,记流量整形定时器计算周期数tkcal=1,并将bcal记为最大传输字节数max_byte_per_tick,计算过程结束;

如果bcal<bbase,则根据计算得到的bcal计算需要多少个流量整形定时器周期数tkcal才能达到基础带宽bbase,计算公式为:tkcal=sup(bbase/bcal),其中sup表示最小上界;根据计算得到的流量整形定时器周期数tkcal,计算最大传输字节数max_byte_per_tick,计算公式为:max_byte_per_tick=bcal×tkcal。

与现有技术相比,本发明的优点如下:

(1)转发平面建立物理通道,根据物理通道的类型,确认每类物理通道的实时带宽,上报至控制平面;控制平面根据物理通道的类型生成对应的接口,根据每类物理通道的实时带宽,计算接口的流量整形参数,对接口的流量进行整形,能够实时调整带宽,在流量突发情况下,使报文以比较均匀的速度向外发送,降低了对转发平面硬件缓冲区的要求,在一个硬件时钟周期内,硬件缓冲区也能满足带宽要求,保证数据包不丢失、不会被截断,有效解决当前otn设备在突发流量时出现大量的帧检验错误问题。

(2)时效性更好,当转发平面的物理通道的类型和实时带宽发生变化时,主动上报控制平面,控制平面根据上报的物理通道的类型和实时带宽,动态调整流量整形参数,能够实现毫秒级的控制切换。

(3)在每个接口上维护发送缓冲区和周期时钟,能够对通道的流量进行精确控制,保证任何时刻通道流量不会超过通道带宽。

(4)本发明支持多种接口模型,可适应不同的通道类型和通道带宽。

附图说明

图1是本发明实施例中基于网络介质的流量控制系统的结构框图。

图2是本发明实施例中流量控制的示意图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

实施例1

参见图1所示,本发明实施例提供一种基于网络介质的流量控制系统,包括转发平面和控制平面,其中:

转发平面建立物理通道,根据物理通道的类型,确认每类物理通道的实时带宽,上报至控制平面;

控制平面根据物理通道的类型生成对应的接口,根据每类物理通道的实时带宽,计算接口的流量整形参数,对接口的流量进行整形。

本发明实施例能够实时调整带宽,在流量突发情况下,使报文以比较均匀的速度向外发送,降低了对转发平面硬件缓冲区的要求,在一个硬件时钟周期内,硬件缓冲区也能满足带宽要求,保证数据包不丢失、不会被截断,有效解决当前otn设备在突发流量时出现大量的帧检验错误问题。

转发平面建立物理通道时,上报物理通道的类型及实时带宽至控制平面,计算硬件缓冲区的大小并设置;物理通道的类型或实时带宽发生变化时,转发平面实时上报物理通道的变化至控制平面,重新计算硬件缓冲区的大小并设置。

当转发平面的物理通道的类型和实时带宽发生变化时,主动上报控制平面,控制平面根据上报的物理通道的类型和实时带宽,动态调整流量整形参数,能够实现毫秒级的控制切换。

实施例2

在实施例1的基础上,参见图1所示,控制平面包括接口管理模块、ip协议栈、流量控制模块,控制平面的接口管理模块接收转发平面上报的物理通道的类型及实时带宽,根据物理通道的类型生成接口创建命令;接口管理模块通过配置命令向ip协议栈发送接口创建命令,并将物理通道的实时带宽下发至ip协议栈;

ip协议栈接收到接口管理模块下发的接口创建命令后,创建相应的接口,ip协议栈通过配置通道将接口类型及接口实时带宽下发到流量控制模块;

流量控制模块根据每类物理通道的实时带宽,计算接口的流量整形参数,根据接口的流量整形参数进行接口的流量整形处理,实现实时带宽调整。

接口的流量整形参数包括:接口实时带宽breal、流量整形定时器时钟周期tscycle、流量整形定时器周期数tks、每个流量整形周期tshaping内的最大传输字节数max_byte_per_tick,其中,接口实时带宽与物理通道的实时带宽相同。

流量整形定时器时钟周期,符号记为tscycle,本发明实施例中的周期是时间概念,在此特指控制平面进行流量整形“定时器”的时间,时间长度固定。

流量整形定时器周期数:即进行一次流量平滑整形处理需要多个tscycle时间,符号记为tks。

流量整形周期:是指进行一次流量平滑整形的时间tshaping,由符号定义流量整形周期为tshaping=tscycle×tks。

硬件定时器时钟周期:指转发平面处理数据缓冲区的“硬件定时器”的时间,记为thcycle。

硬件定时器周期数:即硬件经过多少个硬件周期处理一次数据缓存,记为tkh。

硬件周期:是指硬件处理缓冲区的间隔时间,记为thard,计算方法为thard=thcycle×tkh。

在每个接口上维护发送缓冲区和周期时钟,能够对通道的流量进行精确控制,保证任何时刻通道流量不会超过通道带宽。

本发明实施例支持多种接口模型,可适应不同的通道类型和通道带宽。

实施例3

本发明实施例还提供一种基于网络介质的流量控制方法,包括以下步骤:

转发平面建立物理通道,根据物理通道的类型,确认每类物理通道的实时带宽,上报至控制平面;

控制平面根据物理通道的类型生成对应的接口,根据每类物理通道的实时带宽,计算接口的流量整形参数,对接口的流量进行整形。

本发明实施例能够实时调整带宽,在流量突发情况下,使报文以比较均匀的速度向外发送,降低了对转发平面硬件缓冲区的要求,在一个硬件时钟周期内,硬件缓冲区也能满足带宽要求,保证数据包不丢失、不会被截断,有效解决当前otn设备在突发流量时出现大量的帧检验错误问题。

转发平面建立物理通道时,上报物理通道的类型及实时带宽至控制平面,计算硬件缓冲区的大小并设置;物理通道的类型或实时带宽发生变化时,转发平面实时上报物理通道的变化至控制平面,重新计算硬件缓冲区的大小并设置。

当转发平面的物理通道的类型和实时带宽发生变化时,主动上报控制平面,控制平面根据上报的物理通道的类型和实时带宽,动态调整流量整形参数,能够实现毫秒级的控制切换。

实施例4

在实施例3的基础上,控制平面根据物理通道的类型生成对应的接口,根据每类物理通道的实时带宽,计算接口的流量整形参数,对接口的流量进行整形,具体过程为:

控制平面的接口管理模块接收转发平面上报的物理通道的类型及实时带宽,根据物理通道的类型生成接口创建命令;接口管理模块通过配置命令向ip协议栈发送接口创建命令,并将物理通道的实时带宽下发至ip协议栈;

ip协议栈接收到接口管理模块下发的接口创建命令后,创建相应的接口,ip协议栈通过配置通道将接口类型及接口实时带宽下发到流量控制模块;

流量控制模块根据每类物理通道的实时带宽,计算接口的流量整形参数,根据接口的流量整形参数进行接口的流量整形处理,实现实时带宽调整。

接口的流量整形参数包括:接口实时带宽breal、流量整形定时器时钟周期tscycle、流量整形定时器周期数tks、每个流量整形周期tshaping内的最大传输字节数max_byte_per_tick,其中,接口实时带宽与物理通道的实时带宽相同。

在每个接口上维护发送缓冲区和周期时钟,能够对通道的流量进行精确控制,保证任何时刻通道流量不会超过通道带宽。

本发明实施例支持多种接口模型,可适应不同的通道类型和通道带宽。

实施例5

转发平面建立物理通道,根据物理通道的类型,按照otn协议规定或者通道带宽设计,确认每类物理通道的实时带宽,通过控制平面和转发平面之间的通信通道上报物理通道的类型及实时带宽至控制平面,根据物理通道的实时带宽,计算硬件缓冲区的大小并设置;物理通道的类型或实时带宽发生变化时,转发平面实时上报物理通道的变化至控制平面,重新计算硬件缓冲区的大小并设置,可以根据实际情况进行冗余设计或者适当增加硬件缓冲区大小。

控制平面接收转发平面上报的物理通道的类型及实时带宽,根据物理通道的类型生成对应的接口,根据每类物理通道的实时带宽,计算接口的流量整形参数,对接口的流量进行整形。

控制平面的应用层及协议模块发送流量报文时,不再通过转发平面的信令通道下发到转发平面,而是先缓存到接口的数据发送队列,等待进行流量整形。

每个接口控制一个时钟定时器,根据计算的流量整形参数对流量进行整形,确认每个时间片可发送报文的数量。

可选方案为:所有接口共享一个时钟定时器,在定时器超时后,对所有接口统一进行流量整形操作。

控制平面发送缓冲区满时丢弃报文,避免出现网络拥塞情况。

在流量控制时,还可以提供统计功能,提供实时通道状态信息。

实施例6

转发平面在建立物理通道时,完成物理通道的类型及实时带宽上报和物理缓存大小设置即可;控制平面接收转发平面上报的物理通道的类型及实时带宽,生成相应的接口,计算相关流量整形参数,并根据流量整形参数进行流量限速,同时提供相应的统计功能,以方便查询物理通道的类型及实时带宽。这里存在转发平面和控制平面的联动机制,控制平面被动根据物理通道的类型来确认流量整形参数。

转发平面的实施步骤如下:

1、转发平面启动后,建立物理通道,并通过配置通道将物理通道的类型及实时带宽上送到控制平面,转发平面仅将物理通道的参数(通道类型、实时带宽)通过信道发送到控制平面。

2、转发平面在物理通道的状态(通道类型、实时带宽)发生变化时,例如:通过波道开关调整了物理通道的实时带宽时,将物理通道的实时带宽变化实时上报至控制平面。

3、转发平面根据所有信令通道的带宽属性,计算实时带宽所需报文的缓冲区空间大小,并设置报文缓冲区,缓冲区大小可适当增加以满足带宽要求;此处转发平面的缓冲区为硬件缓冲区,受限于硬件有限的缓存,会综合考量预留的硬件缓冲区大小,前提是:控制平面发送的报文在一个硬件周期处理周期内不超过缓冲区大小。

4、转发平面的物理通道的状态(即类型及带宽)发生变化时,重新计算缓冲区大小并设置。

控制平面的实施步骤如下:

1、控制平面的接口管理模块处理转发平面上送的通道类型和带宽信息,根据通道类型生成相应的抽象信令接口,此处涉及控制平面和转发平面联动,转发平面上送的通道类型和带宽信息作为控制平面计算流量整形的参数。

2、接口管理模块通过配置命令向ip协议栈通告抽象信令接口的创建命令,同时将接口带宽信息通过io或者其它通道方式下发ip协议栈。

3、接口管理模块处理信令通道带宽上报消息,并将实时通道带宽消息通告给ip协议栈。

4、ip协议栈接收到接口配置模块下发的接口创建命令后,创建相关的抽象信令接口,并通过io或者其它通信方式将配置下发到流量控制模块。

5、ip协议栈处理通道带宽更新消息,通过配置通道将更新消息下发给流量控制模块,实现实时带宽调整。ip协议栈通告流量控制模块接口相关参数;流量控制模块通过带宽信息计算接口的流量整形参数,ip协议栈不进行流量模型整形参数计算,由流量控制模块进行计算。接口的流量整形参数包括接口实时带宽breal、流量整形定时器时钟周期tscycle、流量整形定时器周期数tks、每个流量整形周期tshaping内的最大传输字节数max_byte_per_tick,其中,接口实时带宽breal与物理通道的实时带宽相同。流量控制模块根据计算的接口的流量整形参数启动定时器任务,开始接口流量整形处理。

接口的流量整形参数具体包括:

[1].接口实时带宽breal,单位为字节每秒(byte/s),接口实时带宽breal与物理通道的实时带宽相同;网络基础带宽bbase,单位为字节每秒(byte/s)。

[2].流量整形定时器时钟周期tscycle,单位为毫秒(ms)。

[3].流量整形定时器周期数tks,单位为个;实际流量整形周期tshaping=tscycle×tks,单位为毫秒(ms)。

[4].流量整形周期tshaping(单位为毫秒ms)内最大传输字节数max_byte_per_tick,单位为字节(byte)。

接口的流量整形参数的具体计算过程如下:

计算每秒钟的流量整形定时器周期数tksec:tksec=1000ms/tscycle,tksec的单位为个;计算数据传输速率达到接口实时带宽breal时,每个整形定时器时钟周期tscycle内需要传输的字节数记为bcal,bcal=breal/tksec=(breal×tscycle)/1000ms,bcal的单位为字节每秒(byte/s);

将每个整形定时器时钟周期tscycle内需要传输的字节数bcal与基础网络带宽bbase进行比较,bcal、bbase的单位相同,均为字节每秒(byte/s);

如果bcal≥bbase,表示当前的实际带宽需求己达到或超过基础带宽值,此时不需要等待多个tscycle周期,单个周期的数据发送即可充分利用网络带宽,因此记流量整形定时器计算周期数tkcal=1,tkcal的单位为个,并将bcal记为最大传输字节数max_byte_per_tick,计算过程结束;

如果bcal<bbase,则根据计算得到的bcal计算需要多少个流量整形定时器周期数tkcal才能达到基础带宽bbase,计算公式为:tkcal=sup(bbase/bcal),其中sup表示最小上界;根据计算得到的流量整形定时器周期数tkcal,计算最大传输字节数max_byte_per_tick,计算公式为:max_byte_per_tick=bcal×tkcal。

网管、协议及应用模块主动发送流量报文,通过socket下发到ip协议栈,ip协议栈将用户数据保存在socket的发送缓冲区中等待发送;ip协议栈socket将发送缓冲区报文发送到控制/转发信令通道之前,会先缓存到流量控制模块。

参见图2所示,每个接口根据物理通道的实时带宽,计算流量整形定时器周期数tks和流量整形周期tshaping内最大传输字节数(max_byte_per_tick)参数;每个接口维护一个时钟定时器,以(tscycle×tks)为时钟周期参数,用于周期性的清0接口的已发送字节数;维护一个全局报文发送任务,用于遍历所有接口的发送缓冲区,当接口己发送报文长度,加上发送缓冲区中的下一个待发送报文的长度,小于最大传输字节数(max_byte_per_tick)时,表示当前接口可进行报文发送操作,否则等待接口下时钟定时器超时后,清0己发送字节数,才能继续发送,从而达到流量整形目的。

下面举例说明:

场景一:假设基础参数:

[1].breal=2兆字节每秒(mbyte/s)。

[2].tscycle=5毫秒,流量整形定时器周期为5毫秒(ms);

tksec=1000/5=200,即每秒钟200个时钟周期。

[3].bbase=1600字节每秒(byte/s)。

则流量整形参数计算如下:

[1].bcal=breal/tksec=10000byte/s,此值比基础带宽bbase的数值更大,则将此值作为最大传输字节数max_byte_per_tick参数,tks为1,即一个定时器周期即可完成数据传输。

场景二:假设基础参数:

[1]breal.=64千字节每秒(kbyte/s)。

[2]tscycle.=5毫秒,流量整形定时器周期为5毫秒(ms);

tksec=1000/5=200,即每秒钟200个时钟周期。

[3]bbase.=1600字节每秒(byte/s)。

则流量整形参数计算如下:

[1].bcal=breal/tksec=320byte/s,此值比基础带宽bbase的数值要小。

[2].计算tkcal=sup(bbase/bcal)=5,即达到基础带宽bbase需要的定时器周期数为5。

[3].计算最大传输字节数,max_byte_per_tick的计算值为tkcal×bcal=1600byte/s,实际的max_byte_per_tick取值会根据需要进行调整。

本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。

说明书中未详细描述的内容为本领域技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1