一种以太网出口速率限制装置及其方法
技术领域
本发明涉及一种以太网接口以及以太网数据传输方法,特别是涉及一种以太网出口速率限制方法与装置。
背景技术
以太网接口是目前数据设备中最广泛使用的一种接口方式,出口速率限制也是常用的功能之一。但是目前在实现以太网接口出口速率限制的过程中,都是使用突发方式,这种方式通过设置突发长度,然后等待一段时间的方式,来实现出口速率的限制。这个方式实现起来简单,但是有很大的缺陷:
第一,需要下游接收设备具有比较大的缓存能力,并且缓存能力的大小必须能匹配突发的长度,但是下游设计并不一定了解这个具体值,并且不同厂家的器件,突发的长度是不一致的,下游不同厂家的设备缓存的能力大小也是不一致的,因此就造成了对接中不可预知的一些问题;
第二,采用突发方式,报文的时延抖动比较大,由于图像和语音业务传输质量对于时延抖动很敏感,采用突发方式不适合这类业务在数据网路中的传输。
发明内容
本发明所要解决的技术问题在于提供一种以太网出口速率限制装置及其方法,用于实现以太网出口匀速发送报文。
为了实现上述目的,本发明提供了一种以太网出口速率限制装置,用于对以太网接口的出口速率进行控制,其特点在于,包括:
一出口报文存储电路,用于存储将要发送到以太网出口的所有报文并在接收到一报文发送启动命令后从报文出口队列发送一报文到所述以太网出口;
一报文发送花费时间监控电路,用于监控所述出口报文存储电路从所述报文出口队列发送当前报文到所述以太网出口需花费的时间;
一等待时间计算电路,用于接收所述报文发送花费时间监控电路的等待时间计算启动命令、报文发送花费时间,并结合配置信息计算本次报文发送完成后需要等待的时间,所述报文发送花费时间为所述出口报文存储电路从所述报文出口队列发送当前报文到所述以太网出口需花费的时间;及
一延时电路,用于在接收所述等待时间计算电路的延时发送启动命令、等待时间后进行时间计数,直到时间等于所述等待时间或设定的最大等待时间时,向所述出口报文存储电路发出一报文发送启动命令,所述等待时间为所述等待时间计算电路计算出的所述本次报文发送完成后需要等待的时间。
所述的以太网出口速率限制装置,其中,所述出口报文存储电路包括:一出口报文存储区,用于存储所述所有报文。
所述的以太网出口速率限制装置,其中,所述配置信息包括:报文发送速率参数。
所述的以太网出口速率限制装置,其中,所述延时电路包括:一计数器,用于进行时间计数。
为了实现上述目的,本发明还提出了一种以太网出口速率限制方法,用于对以太网接口的出口速率进行控制,其特点在于,包括:
步骤一,存储将要发送到以太网出口的所有报文,接收一报文发送启动命令并从报文出口队列发送一报文到所述以太网出口;
步骤二,监控从所述报文出口队列发送当前报文到所述以太网出口需花费的时间;
步骤三,接收一等待时间计算启动命令、报文发送花费时间,并结合配置信息计算本次报文发送完成后需要等待的时间,所述报文发送花费时间为所述出口报文存储电路从所述报文出口队列发送当前报文到所述以太网出口需花费的时间;及
步骤四,接收一延时发送启动命令、等待时间后进行时间计数,直到时间等于所述等待时间或设定的最大等待时间时,发出一报文发送启动命令进行报文发送,所述等待时间为所述等待时间计算电路计算出的所述本次报文发送完成后需要等待的时间。
所述的以太网出口速率限制方法,其中,所述步骤一中,通过一出口报文存储区存储到达所述以太网出口的所有报文。
所述的以太网出口速率限制方法,其中,所述步骤一中,还包括:在接收所述报文发送启动命令后判断所述出口报文存储区是否有报文的步骤,若有,则发送当前报文直至发送结束,否则等待所述出口报文存储区有报文时再进行报文发送。
所述的以太网出口速率限制方法,其中,所述步骤二中,还包括:判断当前发送的数据是所述当前报文的第一个数据单位还是最后一个数据单位的步骤,若是第一个数据单位,则将所述报文发送花费时间进行初始化,若是最后一个数据单位,则发送所述报文发送花费时间,若两者都不是,则将所述报文发送花费时间累加一个时间单位。
所述的以太网出口速率限制方法,其中,所述步骤三中,所述结合配置信息计算本次报文发送完成后需要等待的时间的步骤具体是:
步骤91,用以太网接口的满流量工作速率减去配置的速率参数得到第一数值,并用所述第一数值除以所述速率参数得到第二数值;及
步骤92,将所述第二数值乘以所述报文发送花费时间得到所述等待时间。
本发明通过一种在以太网出口报文匀速发送机制,使得下游设备需要的缓存减少,减少了业务的时延抖动。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1是本发明以太网出口速率限制装置结构图。
具体实施方式
请参阅图1,是本发明以太网出口速率限制装置结构图。该装置包含如下几个部分:
出口报文存储电路101,用于在出口报文存储区存储将要发送到以太网出口的所有报文,当接收到报文发送启动命令后,就发送一个报文到以太网出口105;
报文发送花费时间监控电路102,连接出口报文存储电路101,用于监控从出口队列发送当前报文到以太网出口105需要花费的时间,将该时间送给等待时间计算电路103,并启动等待时间计算电路103;
等待时间计算电路103,用于接收到报文发送花费时间监控电路102的等待时间计算启动命令和报文发送花费时间,根据配置的速率参数,计算本次报文发送完成后,需要等待的时间,将等待时间传递给延时电路104,并启动延时电路104的工作;
延时电路104,用于在接收到等待时间计算电路103的延时发送启动命令和等待时间后,就进行时间计数,直到时间等于等待时间后或者设定的最大等待时间后,发出一个报文发送启动命令,给出口报文存储电路101。
结合图1所示的各电路,进一步描述本发明以太网出口速率限制方法流程。
所有到达以太网出口105的报文被首先存放在出口报文存储电路101中。
出口报文存储电路101的工作流程如下:
a1),等待延时电路104发送的进行报文发送的启动命令3,接收到命令后转入步骤a2);
a2),检查出口报文存储区是否有报文,如果有报文,则转入步骤a3)。否则等待,直到出口报文存储区有报文,转入步骤a3);
a3),发送当前报文,直到发送结束,转入步骤a1)。
报文发送花费时间监控电路102的工作流程如下:
b1),判断当前发送报文的数据是第一个数据单位还是最后一个数据单位,若是第一个数据单位,转入步骤b2),若是最后一个数据单位,转入步骤b3),若不属于上述两种情况,转入步骤b4);
b2),如果是当前发送报文的第一个数据单位,则将报文发送花费时间初始化;
b3),如果是当前发送报文的最后一个数据单位,则将报文发送花费时间传递给等待时间计算电路103,并发送一个进行等待时间计算的启动命令1;
b4),如果是当前发送的数据单位不是上述两种情况,则报文发送花费时间累加一个时间单位。
等待时间计算电路103在接收到一个启动命令1后的工作流程如下:
c1),用以太网接口的满流量工作速率减去速率参数,然后用该值除以速率参数;
c2),用步骤c1)的结果乘以报文发送花费时间,就得到需要的等待时间;
c3),发送一个进行延时发送的启动命令2和等待时间到延时电路104。
延时电路104的工作流程如下:
d1),如果接收到启动命令2,则清除延时电路104的计时器,
d2),其它情况下,延时电路104每一个时钟周期增加一个时间单位,直到计数器达到一个预定的最大值,或者等于等待时间,此时发送一个启动命令3,然后计时器清除。重新上述过程。
采用本发明装置可以实现以太网出口报文的实时匀速发送,使得下游设备需要的缓存减少,减少了业务的时延抖动。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。