一种实现异步转移模式下虚通道流量控制的方法及装置的制作方法

文档序号:7881849阅读:118来源:国知局
专利名称:一种实现异步转移模式下虚通道流量控制的方法及装置的制作方法
技术领域
本发明涉及流量控制技术,特别是指一种实现异步转移模式下虚通道流量控制的方法及装置。
背景技术
异步转移模式(ATM)已被国际电联电信标准部(ITU-T)定义为未来宽带综合业务数字网(B-ISDN)的传递模式。ATM中的转移包括了传输和交换两层含义,所以转移模式是指信息在网络中传输和交换的方式。ATM中的异步是指信息在接续和用户中带宽分配的方式。因此,ATM就是在用户接入、传输和交换级综合处理各种通信量的技术。所有信息在ATM网络中以信元为固定长度的数据单元格式发送。
ATM论坛根据网络应用定义了多种业务类型,例如,固定比特率(CBR,Constant Bit Rate)业务、实时可变比特率(RT-VBR,Real-Time Variable BitRate)业务、非实时可变比特率(NRT-VBR,Non-Real-Time Variable Bit Rate)业务和未指定比特率(UBR,Unspecified Bit Rate)业务等业务。
CBR业务对数据流的时延抖动非常敏感,要求网络以恒定的速率发送数据,有最高优先级。CBR业务数据的流量稳定,业务突发很小。CBR业务主要应用于电路仿真、语音等业务。用户在向网络侧申请CBR业务时,必须提供峰值信元速率(PCR)参数。
RT-VBR业务对数据流的时延抖动也非常敏感,主要应用于语音和交互式视频业务。与CBR业务不同的是RT-VBR业务允许一定的突发,不同时间段数据速率可不同。用户在向网络侧申请RT-VBR业务时,必须提供PCR、平均信元速率(SCR)和最大突发(MBS)等参数。
NRT-VBR业务对数据流的实时性要求不高,NRT-VBR业务数据在网络侧处理的优先级比RT-VBR业务数据低,其他与NRT-VBR业务基本相同。
UBR业务适用于对实时性要求不高和突发性较大的场合,只要求网络侧尽最大能力传输数据,当网络发生拥塞时,UBR业务信元首先被丢弃。UBR业务适用于文件传输、电子邮件等业务。用户向网络侧申请UBR业务时,不附带任何服务质量参数;网络侧也不对UBR业务用户提供任何服务质量保证。
通常使用通用信元速率算法(GCRA)对上述各业务类型进行流量调度控制,GCRA算法又称漏桶算法。下面对GCRA算法进行详细描述。
用户端与ATM交换机直接相连,如果用户端发送信元的速率比较大,则ATM交换机在相同的时间内收到的信元也会比较多。当用户端发送数据的速率太大,使ATM交换机在短时间内收到的信元数量过多,将超出配置的虚通道(VC)速率,甚至导致网络拥塞。此时,ATM交换机会对该用户端采取一些惩罚性措施,要么将上述信元直接丢弃,要么将上述信元的信元丢弃优先级(CLP)位置1,在网络发生拥塞时,优先丢弃这些CLP位置1的信元。信元可在其预期到达时刻之后到达ATM交换机,也可比其预期到达时刻提前到达ATM交换机,但不能提前过多时间,必须在允许的时间范围内。下面通过对GCRA算法的介绍,对信元的预期到达时刻、实际到达时刻和允许的时间范围进行描述。
如果某用户在向网络侧申请一项业务时,所申请的最大网络带宽为PCR,单位为信元/秒,则令T=1/PCR,T的物理意义为用户每隔不小于T的时间,向网络发送一个信元。另外,预先设置允许信元早到达ATM交换机的时间容限τ,τ<T。
图1A至图1D为GCRA算法基本思想示意图,ATM交换机在t1时刻收到信元1,将t1记为初始时刻,如图1A所示,正常情况下,信元2在信元1到达T时刻后准时到达ATM交换机,即t2=t1+T;此时,信元3预期在t2+T时刻到达ATM交换机,即信元3预期在t1+2T时刻到达ATM交换机。如图1B所示,信元2预期在t1+T时刻到达ATM交换机,但信元2实际到达ATM交换机的时刻为t2,比t1+T时刻晚,即t2>t1+T;此时,信元3预期到达ATM交换机的时刻为t2+T。如图1C所示,用户端发送信元的速率大于预先设定的PCR,因此,信元2到达ATM交换机的时刻为t2,比t1+T时刻早,即t2<t1+T,因为t1+T-t2τ,所以信元2没有违约;此时,信元3预期到达ATM交换机的时刻应为t1+2T,而不是t2+T。这样做是为了加强用户信元的严格监管,避免过度纵容用户导致用户信元发送速率过大,使用户信元的发送速率在一段时间内均大于预先设定的PCR。如图1D所示,用户端发送信元的速率过大,远大于预先设定的PCR,导致信元2到达ATM交换机的t2时刻比t1+T时刻早很多,即t2<t1+T,并且t1+T-t2>τ,此时,认为信元2违约;这样,信元3预期到达ATM交换机的时刻为t1+T。
用户端发送信元的速率大于预先设定的PCR,或用户端发生信元突发现象,如图1C所示的情况,造成信元2到达ATM交换机的时刻比预期到达时刻早,因为t1+T-t2τ,所以信元2没有违约。如果只是一个信元发生上述情况,则该信元可被ATM交换机视作未违约信元;如果连续多个信元发生突发现象,则很可能出现违约信元,导致违约信元被丢弃。
图2为多个信元连续发生突发现象示意图,如图2所示,t0为信元0到达ATM交换机的时刻,之后,用户端连续以大于PCR的速率向ATM交换机发送了4个突发信元,信元1到达ATM交换机的时刻比预期到达时刻t0+T早了时间e,此处,令e=τ/3。因为信元1提前到达的时间eτ,所以信元1没有违约。随后,信元2到达ATM交换机的时刻比预期到达时刻t0+2T早了时间2e,信元3到达ATM交换机的时刻比预期到达时刻t0+3T早了时间3e,均为未违约信元。信元4到达ATM交换机的时刻比预期到达时刻早太多,已经超出时间容限τ,因此信元4被ATM交换机视作违约信元。
在图1C中,信元2到达ATM交换机的时刻比预期到达时刻早,并且早的时间在时间容限内,此时,信元3预期到达ATM交换机的时刻是t1+2T,而不是t2+T,这样做的目的是对用户端发送的信元进行严格监控。
由以上描述可见,GCRA算法的基本思想是保证信元到达ATM交换机的平均时间间隔不小于T。前面曾经提到GCRA算法又称漏桶算法,下面以这个通俗的名称对GCRA算法进行更为形象的介绍。
正常情况下,ATM交换机每隔T时间收到一个信元。如果用户不是将信元发送到ATM交换机,而是将信元发送到一个有出口的漏桶中,图3为GCRA算法的漏桶示意图,如图3所示,每到达一个信元,漏桶被占据T体积空间;漏桶的出口匀速地流出信元,每单位时间流出1体积信元,漏桶的总容量为T+L。正常情况下,每到达一个信元就占据漏桶T体积空间。经过T时间后,下一个信元到达,此时,上一个信元刚好从漏桶中流出,该时刻漏桶仍然被占据T体积空间。
下面通过漏桶对图2中所述的多个信元连续发生突发现象的情况进行描述,信元1比预期到达时刻提前e时间到达,漏桶中还剩余e体积空间信元没有流尽,加上刚到达的T体积的信元1,漏桶被占据T+e体积空间。信元1到达T-e时间后,信元2到达,此时漏桶中剩余的信元为T+e-(T-e)=2e体积,加上刚到达的T体积的信元2,漏桶被占据T+2e体积空间。同样地,信元2到达T-e时间后,信元3到达时,此时漏桶中剩余的信元为T+2e-(T-e)=3e=τ体积,漏桶被占据T+τ体积空间,刚好被占满。这样,信元4到达时,漏桶中剩余的信元大于τ体积,造成信元4在漏桶中溢出,导致信元4被ATM交换机视作违约信元。
从上述分析可以看出将漏桶容量设置为T+L体积的原因。如前所述,GCRA算法的关键之处在于,信元的实际到达时刻不能提前预期到达时刻太多,否则该信元会被ATM交换机视作违约信元。通过对GCRA算法的描述可见,信元的实际到达时刻是否提前预期到达时刻太多,是由时间容限τ来衡量的。从漏桶的角度看,信元到得太早,漏桶中剩余的信元体积大于τ,造成该信元在漏桶中溢出,导致该信元被ATM交换机视作违约信元。在上述的漏桶分析中,描述的是漏桶中存放的是信元,并且漏桶中不停的流出信元。实际上,更确切地说,漏桶中存放的应该是时间。
目前,在进行ATM流量控制时,通常通过设置时间队列对信元进行时间上的精确调度。图4为现有技术中ATM流量控制示意图,如图4所示,激活并配置一条VC通道后,ATM交换机中的流量控制模块41将该VC通道写入到VC信元队列42中,按照配置的速率进行调度。当轮到该VC通道发送信元时,就去检查该VC通道所属的VC信元队列是否有信元需要发送,如果该VC通道所属的VC信元队列有信元需要发送,则该VC信元队列通过信元发送模块43发送一个信元;如果该VC通道所属的VC信元队列没有信元需要发送,则不作任何处理;然后将该VC通道再次写入VC信元队列,进行下一次的调度。这种处理方式,在某条VC没有信元发送时,也被频繁地写入时间队列进行调度。当VC数量很多时,而且并非所有VC都有信元发送时,由于同样对没有信元发送的VC信元队列也进行了调度,而大大浪费了网络的资源。

发明内容
有鉴于此,本发明的目的在于提供一种实现异步转移模式下虚通道流量控制的方法,实现对虚通道流量的精确控制。本发明还提供了一种实现异步转移模式下虚通道流量控制的装置,实现对虚通道流量的精确控制。
为了达到上述目的,本发明提供了一种实现异步转移模式下虚通道流量控制的装置,该装置至少包括队列管理模块,用于收发信元,并在收到信元时向流量管理模块发送调度请求,流量管理模块,用于接收队列管理模块发送的调度请求,对调度请求离开时间进行控制,并在到达调度请求离开时间后,向队列管理模块发送调度响应,队列管理模块根据其返回的调度响应发送信元,
队列管理模块与流量管理模块相连。
所述流量管理模块进一步包括整型子模块,用于计算调度请求最早离开时间,并将调度请求存放至调度时间队列中时间段对应于所述最早离开时间的时间队列,调度子模块,用于将处理时间为当前时间段的时间队列中的调度请求存放至等待发送的发送队列,消息响应子模块,用于从发送队列中取出发送时间为当前时间的调度请求,根据所述调度请求生成调度响应,并向队列管理模块发送所述调度响应,整型子模块与队列管理模块和调度子模块相连,调度子模块与消息响应子模块相连,消息响应子模块与队列管理模块相连。
所述队列管理模块进一步包括用于接收信元并将该信元存放至虚通道信元队列的入队列子模块,与流量管理模块中的整型子模块相连;用于从虚通道信元队列中取出信元并发送该信元的出队列子模块,与流量管理模块中的整型子模块和消息响应子模块相连。
所述入队列子模块通过高速消息队列与流量管理模块中的整型子模块相连,出队列子模块通过高速消息队列与流量管理模块中的整型子模块和消息响应子模块相连。
本发明还提供了一种实现异步转移模式下虚通道流量控制的方法,预先设置队列管理模块和流量管理模块,该方法包含A、队列管理模块收到信元后,向流量管理模块发送调度请求,然后将该信元存放至虚通道信元队列;B、流量管理模块收到所述调度请求后,读取虚通道流量参数,根据所述虚通道流量参数计算所述调度请求的最早离开时间;C、到达所述调度请求的最早离开时间后,流量管理模块向队列管理模块发送调度响应;
D、队列管理模块收到所述调度响应后,从虚通道信元队列中取出一个信元,并将取出的信元发送出去。
所述虚通道信元为一个以上时,步骤A中所述将信元存放至虚通道信元队列是队列管理模块根据所述信元携带的该信元所属的虚通道信元队列标识,将该信元存放至对应于所述虚通道信元队列标识的虚通道信元队列。
步骤A中所述向流量管理模块发送调度请求之前,进一步包括判断所述虚通道信元队列是否已向流量管理模块发送了调度请求,如果是,则直接将信元存放至虚通道信元队列;否则,向流量管理模块发送调度请求。
所述步骤B之前进一步包括B0、流量管理模块判断当前时间是否到达读取当前调度请求的时间,如果是,执行步骤B;否则,返回执行步骤B0。
预先设置存放调度请求的调度时间队列,调度时间队列包含一个以上以调度时间段划分的时间队列,计算调度每个时间队列所占用的时间,所述步骤B之后进一步包括流量管理模块计算调度请求最早离开时间与当前时间的差,并将所述差值折算成与当前调度的时间队列相距的队列数,然后将所述调度请求存放至与当前调度时间队列相距所述队列数的时间队列。
所述将调度请求存放至与当前调度时间队列相距所述队列数的时间队列中,之前进一步包括判断所述时间队列是否已满,如果是,将所述调度请求存放至所述时间队列的下一个时间队列中;否则,将调度请求存放至所述时间队列中。
所述将调度请求存放至与当前调度时间队列相距所述队列数的时间队列中,之前进一步包括判断所述时间队列是否已满,如果是,向队列管理模块返回队列满消息;否则,将调度请求存放至所述时间队列中。
所述向队列管理模块返回队列满消息,之后进一步包括队列管理模块收到所述队列满消息后,重新向流量管理模块发送调度请求。
所述计算调度每个时间队列所占用的时间包括首先确定每个时间队列中存放调度请求数量的最大值,然后计算发送每个信元所占用的时间,最后计算调度每个时间队列所占用的时间为发送每个信元所占用的时间与每个时间队列中存放调度请求数量最大值的乘积。
所述计算发送每个信元所占用的时间包括首先确定端口传输数据的线速率,然后计算发送每个信元所占用的时间为,每个信元的长度53字节与每个字节8比特位的乘积,再与所述线速率的比值,所述线速率单位为比特每秒。
预先设置存放一个时间队列中调度请求的发送队列,所述步骤C之前进一步包括以下步骤C011、流量管理模块判断当前时间是否到达当前时间队列的调度时间,如果是,执行步骤C012,否则,返回执行步骤C011;C012、流量管理模块读取当前时间队列,将所述当前时间队列中的调度请求存放至发送队列。
预先设置业务优先级,所述将当前时间队列中的调度请求存放至发送队列包括将当前时间队列中的调度请求按照不同业务优先级存放至不同发送队列。
所述步骤C之前进一步包括以下步骤C011、流量管理模块判断当前时间是否到达当前调度请求的发送时间,如果是,执行步骤C011;否则,执行步骤C;C011、流量管理模块按照优先级的高低轮循发送队列,然后向队列管理模块发送调度响应。
所述步骤C之前进一步包括以下步骤C031、流量管理模块判断当前时间是否到达当前调度请求的发送时间,如果是,执行步骤C031;否则,执行步骤C;C032、流量管理模块向队列管理模块发送调度响应。
所述步骤C032之前进一步包括流量管理模块判断发送队列是否存放有调度请求,如果是,执行步骤C032;否则,返回执行步骤C031。
流量管理模块根据业务类型的优先级预先设置一个以上的调度时间队列,流量管理模块对每个调度时间队列进行并行处理。
所述虚通道信元为一个以上时,步骤D中所述从虚通道信元队列中取出一个信元是队列管理模块根据所述调度响应携带的虚通道信元队列标识,从对应于所述虚通道信元队列标识的虚通道信元队列中取出一个信元。
步骤D中所述将取出的信元发送出去进一步包括队列管理模块向信元发送模块发送取出的信元。
本发明通过在ATM交换机中设置队列管理模块和流量管理模块,使队列管理模块收到信元后,将信元存放至VC信元队列中,然后向流量管理模块发送调度请求,流量管理模块收到调度请求后,对该信元发送时间进行整型调度,在流量管理模块计算的信元发送时刻到达时,流量管理模块向队列管理模块发送调度响应;队列管理模块收到调度响应后,从VC信元队列中取出一个信元并发送出去,通过流量管理模块实现对VC流量的精确控制,使得VC发送的每个信元都具有准确的定时。另外,本发明提出的方案简单易行,模块间的结构清晰明确,并且运行可靠。


图1A至图1D为GCRA算法基本思想示意图;图2为多个信元连续发生突发现象示意图;图3为GCRA算法的漏桶示意图;图4为现有技术中ATM流量控制示意图;图5为本发明中实现ATM流量控制装置的结构示意图;图6A至图6B为本发明中队列管理模块处理流程图;图7A至图7C为本发明中流量管理模块处理流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明通过在ATM交换机中设置队列管理模块和流量管理模块,使队列管理模块收到信元后,将信元存放至VC信元队列中,然后向流量管理模块发送调度请求,流量管理模块收到调度请求后,对该信元发送时间进行整型调度,在流量管理模块计算的信元发送时刻到达时,流量管理模块向队列管理模块发送调度响应;队列管理模块收到调度响应后,从VC信元队列中取出一个信元并发送出去。
图5为本发明中实现ATM流量控制装置的结构示意图,如图5所示,实现ATM流量控制的装置主要包括队列管理模块51和流量管理模块52,并进一步包括信元发送模块43。队列管理模块51分别与流量管理模块52和信元发送模块43相连。由于队列管理模块51、流量管理模块52和信元发送模块43能够并行工作,因此可通过消息队列实现队列管理模块51、流量管理模块52和信元发送模块43间的消息传输。为避免由于传输速度的不足,对各模块处理速度的造成不良影响,可采用高速消息队列进行消息的传输。队列管理模块51通过高速消息队列A获取新到达的信元,队列管理模块51根据该信元携带的VC信元队列标识,将该信元存放至与VC信元队列标识相对应的VC信元队列42中,然后向流量管理模块52发送携带有VC信元队列标识的调度请求,流量管理模块52收到调度请求后,根据VC流量参数524对信元发送时刻进行整型调度,到达流量管理模块52计算的信元发送时刻时,流量管理模块52向队列管理模块51发送调度响应;队列管理模块51收到调度响应后,从相应VC信元队列42中取出一个信元,并通过高速消息队列B向信元发送模块43发送取出的信元,最后由信元发送模块43将该信元发送出去。VC信元队列42可包括多个VC信元队列,每激活并配置一条VC通道,就会有一个VC信元队列与该VC通道相对应。
其中,队列管理模块51包括入队列子模块511和出队列子模块512。下面对入队列子模块511和出队列子模块512进行详细介绍。
入队列子模块511通过高速消息队列A获取新到达的信元后,根据该信元携带的VC信元队列标识,确定该信元所属的VC信元队列42,然后该根据VC信元队列42的当前状态,判断是否需要向流量管理模块52发送调度请求,如果需要,则首先通过高速消息队列C向流量管理模块52发送调度请求,然后将当前获取的信元存放至其所属的VC信元队列42,如果不需要,则直接将当前获取的信元存放至其所属的VC信元队列42。VC信元队列42的当前状态是指该VC信元队列42是否已向流量管理模块52发送了调度请求,如果是,则直接将当前获取的信元存放至其所属的VC信元队列42;否则,首先通过高速消息队列C向流量管理模块52发送调度请求,然后将当前获取的信元存放至其所属的VC信元队列42。此处判断VC信元队列42是否已向流量管理模块52发送了调度请求,是指判断该VC信元队列42是否已向流量管理模块52发送了调度请求,并且该调度请求正在等待流量管理模块52返回的调度响应。出队列子模块512通过高速消息队列D获取流量管理模块52返回的调度响应,根据调度响应中携带的VC信元队列标识,从对应于VC信元队列标识的VC信元队列42中取出一个信元,通过高速消息队列B向信元发送模块43发送取出的信元,最后由信元发送模块43将该信元发送出去。
每个VC信元队列42均按照信元到达时间的先后存放信元,因此在队列管理模块51从VC信元队列42中取出一个信元发送时,取出的信元都是该VC信元队列42中当前到达时间最早的信元。
流量管理模块52包括整型子模块521、调度子模块522和消息响应子模块523。下面对整型子模块521、调度子模块522和消息响应子模块523进行详细介绍。整型子模块521通过高速消息队列C获取队列管理模块51发送的调度请求后,根据该调度请求中携带的VC信元队列标识,读取与VC信元队列标识相对应的VC信元队列的VC流量参数,然后通过GCRA算法根据该VC流量参数计算与当前收到的调度请求相对应的信元的最早离开时间,然后将携带有VC信元队列标识的调度请求存放至调度时间队列525中。调度子模块522从调度时间队列中取出调度请求后,将调度请求存放至按优先级排列的发送队列526。消息响应子模块523根据发送队列526的优先级高低,预先处理其存放的高优先级调度请求,通过高速消息队列D向队列管理模块51发送调度响应,该调度响应中携带有与处理的调度请求相对应的VC信元队列标识。
调度时间队列525由多个以时间段划分的时间队列组成,可对不同时间段进行编号,然后通过该编号标识不同的时间队列,即可通过编号标识与每个时间队列相对应的处理时间段,每个时间队列中可存放的调度请求数量最大值是固定的。因为每个调度请求与一个信元相对应,所以处理一个调度请求所占用的时间可等同于发送一个信元所占用的时间。
由于每个信元的长度为53个字节,每个字节为8比特位,因此,发送一个信元所占用的时间tc=(53×8)/LineRate,LineRate为线速率,即端口每秒钟传输数据的比特数,单位为bps。发送一个信元所占用的时间tc,即为处理一个调度请求所占用的时间,或发送一条调度响应所占用的时间。
每个时间队列中可存放调度请求数量的最大值为cq,则处理每个时间队列所占用的时间tq=tc×cq。处理每个时间队列所占用的时间tq,即为发送cq个信元所占用的时间。
调度子模块522以tq为周期,在每个tq周期的起始点从调度时间队列525中取出一个时间队列,将该时间队列中的调度请求按照优先级的高低存放至相应的发送队列526。
每个时间队列具有与其自身相对应的处理时间段,可通过编号标识,各时间队列按照各自处理时间段的先后依次排列,整型子模块计算出信元最早离开时间与当前时间的差,并将该差值折算为与调度子模块522当前调度的时间队列相距的队列数,然后将当前收到的调度请求存放至与调度子模块当前调度的时间队列相距该队列数的时间队列中。
另外,可根据业务类型优先级的高低设置多个调度时间队列,调度子模块522对多个调度时间队列之间进行并行处理,例如,按照实时性与非实时性将调度时间队列划分为实时性调度时间队列和非实时性时间队列。
图6A至图6B为本发明中队列管理模块处理流程图,分别描述了入队列模块和出队列模块的处理流程。
如图6A所示,入队列子模块的处理过程包括以下步骤步骤601~步骤602入队列子模块通过高速消息队列A获取新到达的信元,根据该信元携带的VC信元队列标识,确定该信元所属的VC信元队列,然后判断该VC信元队列是否已向流量管理模块发送了调度请求,如果是,执行步骤605;否则,执行步骤603。
步骤603~步骤604入队列子模块生成携带有VC信元队列标识的调度请求,通过高速消息队列C向流量管理模块发送该调度请求。
步骤605入队列子模块将当前获取的信元存放至与该信元携带的VC信元队列标识相对应的VC信元队列。
如图6B所示,出队列子模块的处理过程包括以下步骤步骤606~步骤608出队列子模块通过高速消息队列D获取携带有VC信元队列标识的调度响应,从对应于VC信元队列标识的VC信元队列取出一个信元,通过高速消息队列B向信元发送模块发送取出的信元,由信元发送模块将该信元发送出去。
步骤609出队列子模块判断对应于当前收到的调度响应中携带的VC信元队列标识的VC信元队列是否为空,如果是,即该VC信元队列中已没有信元,则结束当前流程;如果不是,即该VC信元队列中仍存放有信元,则执行步骤610。
步骤610~步骤611出队列子模块生成携带有VC信元队列标识的调度请求,通过高速消息队列C向流量管理模块发送该调度请求。
入队列子模块和出队列子模块可并行工作,也可串行工作。如果某个VC信元队列中没有存放信元时,入队列子模块开始接收信元,则入队列子模块收到第一个信元后,判断出该VC信元队列没有向流量管理模块发送调度请求。此时,入队列子模块通过高速消息队列C向流量管理模块发送调度请求;入队列子模块连续收到后续信元,即该VC信元队列中始终存放有信元时,入队列子模块不再向流量管理模块发送调度请求。出队列子模块收到流量管理模块返回的携带有该VC信元队列标识的调度响应后,从该VC信元队列中取出一个信元发送出去,在该VC信元队列中始终存放有信元时,后续过程中是否向流量管理模块发送调度请求由出队列子模块进行判断的。
通过上述描述可以看出,以某个VC信元队列中没有存放信元的状态为初始状态,当入队列子模块连续收到携带有该VC信元队列标识的信元时,入队列子模块收到第一个信元后,向流量管理模块发送调度请求;后续的发送信元至向流量管理模块发送调度请求的循环操作,由出队列子模块完成。
图7A至图7C为本发明中流量管理模块处理流程图,分别描述了整型子模块、调度子模块和消息响应子模块的处理流程。
如图7A所示,整型子模块的处理过程包括以下步骤步骤701~步骤703整型子模块通过高速消息队列C获取队列管理模块发送的调度请求,根据该调度请求中携带的VC信元队列标识,读取与VC信元队列标识相对应的VC信元队列的VC流量参数,然后通过GCRA算法根据该VC流量参数计算当前收到的调度请求的最早离开时间。
步骤704~步骤705整型子模块计算信元最早离开时间与当前时间的差,并将该差值折算为与调度子模块当前调度的时间队列相距的队列数,然后将当前收到的调度请求存放至与调度子模块当前调度的时间队列相距该队列数的时间队列中。如前所述,由于处理每个时间队列所占用的时间tq是固定的,因此计算信元最早离开时间与当前时间的差与tq的比值,即为与调度子模块当前调度的时间队列相距的队列数。如果调度请求应该存放的相应的时间队列已满,即该时间队列中存放的调度请求已达到一个时间队列能够存放调度请求的最大值,无法再存放调度请求,此时,整型子模块可直接要求消息响应子模块向队列管理模块返回队列满消息,通知队列管理模块时间队列的空间不足,队列管理模块收到队列满消息后,可再向整型子模块发送一条调度请求。整型子模块也可将该调度请求存放至其应该存放的队列的下一个队列中。
另外,如果整型子模块在一段时间内通过高速消息队列C获取大量调度请求,将使某个时间段内的时间队列已满,不能再存放调度请求,导致消息响应子模块不断向队列管理模块返回队列满消息,极大地浪费了网络的资源。为避免出现上述情况,可令整型子模块每隔发送一个信元所占用的时间tc,从高速消息队列中获取一条调度请求。
如图7B所示,调度子模块的处理过程包括以下步骤步骤706~步骤708调度子模块判断当前时间是否到达当前时间队列的调度时间,如果是,则读取当前时间队列,将读取到的当前时间队列按照不同优先级存放至不同的发送队列;否则,等待到达当前时间队列的调度时间。
每个时间队列都有与其相对应的处理时刻,必须保证每个时间队列的调度时刻正确无误。在调度子模块调度完成一个时间队列后,必须等待时间到达下一个时间队列的调度时刻,才对下一个时间队列进行调度。即使某个时间队列中没有调度请求,调度子模块也要等待tq时间后,才能处理下一个时间队列。另外,必须保证分配给调度子模块的处理能力不小于需要的处理能力,即调度子模块完成对一个时间队列的调度所占用的时间,必须不大于一个时间队列的调度时间tq。
如图7C所示,消息响应子模块的处理过程包括以下步骤步骤709消息响应子模块判断当前时间是否到达下一个信元的发送时间,如果是,执行步骤710;否则,等待到达下一个信元的发送时间。消息响应子模块每发送一条调度响应,所等待的时间即为发送一个信元所占用的时间tc。为防止队列管理模块发送的信元的发送时间间隔出现过大的抖动,在此增加延时等待,控制消息响应子模块在时间tc内仅处理一条调度响应。
步骤710消息响应子模块判断高优先级发送队列中是否有调度请求,如果是,执行步骤713;否则,执行步骤711。
步骤711消息响应子模块判断中优先级发送队列中是否有调度请求,如果是,执行步骤713;否则,执行步骤712。
步骤712消息响应子模块判断低优先级发送队列中是否有调度请求,如果是,执行步骤713;否则,返回执行步骤709。
步骤713消息响应子模块通过高速消息队列D向队列管理模块发送携带有VC信元队列标识的调度响应,通知队列管理模块从对应于VC信元队列标识的VC信元队列中取出一个信元并发送。
整型子模块、调度子模块和消息响应子模块互相独立,整型子模块仅负责过高速消息队列C获取队列管理模块发送的调度请求,通过GCRA算法根据确定的VC流量参数计算信元的最早离开时间,然后将调度请求存放至调度时间队列中;调度子模块仅负责在到达当前时间队列的调度时间时,将当前时间队列中的调度请求按照不同优先级存放至不同的发送队列中。消息响应子模块仅负责按照优先级的高低轮循发送队列,依次通过高速消息队列D向队列管理模块发送调度响应,通知队列管理模块发送一个信元。
如果与收到的调度请求相对应的信元是最低优先级业务的信元,如UBR业务信元,可直接将该调度请求存放至最低优先级的发送队列,在消息响应子模块中没有高优先级的调度请求需要处理时,对该调度请求进行处理。
以上所述的携带有VC信元队列标识的调度请求可仅为VC信元队列标识,流量管理模块收到该VC信元队列标识后,获知该消息为对应于VC信元队列标识的VC信元队列的调度请求;相应地,携带有VC信元队列标识的调度响应也可仅为VC信元队列标识,队列管理模块收到该VC信元队列标识后,获知该消息为对应于VC信元队列标识的VC信元队列的调度响应。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种实现异步转移模式下虚通道流量控制的装置,其特征在于该装置至少包括队列管理模块,用于收发信元,并在收到信元时向流量管理模块发送调度请求,流量管理模块,用于接收队列管理模块发送的调度请求,对调度请求离开时间进行控制,并在到达调度请求离开时间后,向队列管理模块发送调度响应,队列管理模块根据其返回的调度响应发送信元,队列管理模块与流量管理模块相连。
2.根据权利要求1所述的装置,其特征在于,所述流量管理模块进一步包括整型子模块,用于计算调度请求最早离开时间,并将调度请求存放至调度时间队列中时间段对应于所述最早离开时间的时间队列,调度子模块,用于将处理时间为当前时间段的时间队列中的调度请求存放至等待发送的发送队列,消息响应子模块,用于从发送队列中取出发送时间为当前时间的调度请求,根据所述调度请求生成调度响应,并向队列管理模块发送所述调度响应,整型子模块与队列管理模块和调度子模块相连,调度子模块与消息响应子模块相连,消息响应子模块与队列管理模块相连。
3.根据权利要求2所述的装置,其特征在于,所述队列管理模块进一步包括用于接收信元并将该信元存放至虚通道信元队列的入队列子模块,与流量管理模块中的整型子模块相连;用于从虚通道信元队列中取出信元并发送该信元的出队列子模块,与流量管理模块中的整型子模块和消息响应子模块相连。
4.根据权利要求3所述的装置,其特征在于,所述入队列子模块通过高速消息队列与流量管理模块中的整型子模块相连,出队列子模块通过高速消息队列与流量管理模块中的整型子模块和消息响应子模块相连。
5.一种实现异步转移模式下虚通道流量控制的方法,其特征在于,预先设置队列管理模块和流量管理模块,该方法包含以下步骤A、队列管理模块收到信元后,向流量管理模块发送调度请求,然后将该信元存放至虚通道信元队列;B、流量管理模块收到所述调度请求后,读取虚通道流量参数,根据所述虚通道流量参数计算所述调度请求的最早离开时间;C、到达所述调度请求的最早离开时间后,流量管理模块向队列管理模块发送调度响应;D、队列管理模块收到所述调度响应后,从虚通道信元队列中取出一个信元,并将取出的信元发送出去。
6.根据权利要求5所述的方法,其特征在于,所述虚通道信元为一个以上时,步骤A中所述将信元存放至虚通道信元队列是队列管理模块根据所述信元携带的该信元所属的虚通道信元队列标识,将该信元存放至对应于所述虚通道信元队列标识的虚通道信元队列。
7.根据权利要求5所述的方法,其特征在于,步骤A中所述向流量管理模块发送调度请求之前,进一步包括判断所述虚通道信元队列是否已向流量管理模块发送了调度请求,如果是,则直接将信元存放至虚通道信元队列;否则,向流量管理模块发送调度请求。
8.根据权利要求5所述的方法,其特征在于,所述步骤B之前进一步包括B0、流量管理模块判断当前时间是否到达读取当前调度请求的时间,如果是,执行步骤B;否则,返回执行步骤B0。
9.根据权利要求5所述的方法,其特征在于,预先设置存放调度请求的调度时间队列,调度时间队列包含一个以上以调度时间段划分的时间队列,计算调度每个时间队列所占用的时间,所述步骤B之后进一步包括流量管理模块计算调度请求最早离开时间与当前时间的差,并将所述差值折算成与当前调度的时间队列相距的队列数,然后将所述调度请求存放至与当前调度时间队列相距所述队列数的时间队列。
10.根据权利要求9所述的方法,其特征在于,所述将调度请求存放至与当前调度时间队列相距所述队列数的时间队列中,之前进一步包括判断所述时间队列是否已满,如果是,将所述调度请求存放至所述时间队列的下一个时间队列中;否则,将调度请求存放至所述时间队列中。
11.根据权利要求9所述的方法,其特征在于,所述将调度请求存放至与当前调度时间队列相距所述队列数的时间队列中,之前进一步包括判断所述时间队列是否已满,如果是,向队列管理模块返回队列满消息;否则,将调度请求存放至所述时间队列中。
12.根据权利要求11所述的方法,其特征在于,所述向队列管理模块返回队列满消息,之后进一步包括队列管理模块收到所述队列满消息后,重新向流量管理模块发送调度请求。
13.根据权利要求9所述的方法,其特征在于,所述计算调度每个时间队列所占用的时间包括首先确定每个时间队列中存放调度请求数量的最大值,然后计算发送每个信元所占用的时间,最后计算调度每个时间队列所占用的时间为发送每个信元所占用的时间与每个时间队列中存放调度请求数量最大值的乘积。
14.根据权利要求13所述的方法,其特征在于,所述计算发送每个信元所占用的时间包括首先确定端口传输数据的线速率,然后计算发送每个信元所占用的时间为,每个信元的长度53字节与每个字节8比特位的乘积,再与所述线速率的比值,所述线速率单位为比特每秒。
15.根据权利要求9所述的方法,其特征在于,预先设置存放一个时间队列中调度请求的发送队列,所述步骤C之前进一步包括以下步骤C011、流量管理模块判断当前时间是否到达当前时间队列的调度时间,如果是,执行步骤C012,否则,返回执行步骤C011;C012、流量管理模块读取当前时间队列,将所述当前时间队列中的调度请求存放至发送队列。
16.根据权利要求15所述的方法,其特征在于,预先设置业务优先级,所述将当前时间队列中的调度请求存放至发送队列包括将当前时间队列中的调度请求按照不同业务优先级存放至不同发送队列。
17.根据权利要求15所述的方法,其特征在于,所述步骤C之前进一步包括以下步骤C011、流量管理模块判断当前时间是否到达当前调度请求的发送时间,如果是,执行步骤C011;否则,执行步骤C;C011、流量管理模块按照优先级的高低轮循发送队列,然后向队列管理模块发送调度响应。
18.根据权利要求15所述的方法,其特征在于,所述步骤C之前进一步包括以下步骤C031、流量管理模块判断当前时间是否到达当前调度请求的发送时间,如果是,执行步骤C031;否则,执行步骤C;C032、流量管理模块向队列管理模块发送调度响应。
19.根据权利要求18所述的方法,其特征在于,所述步骤C032之前进一步包括流量管理模块判断发送队列是否存放有调度请求,如果是,执行步骤C032;否则,返回执行步骤C031。
20.根据权利要求9所述的方法,其特征在于,流量管理模块根据业务类型的优先级预先设置一个以上的调度时间队列,流量管理模块对每个调度时间队列进行并行处理。
21.根据权利要求5所述的方法,其特征在于,所述虚通道信元为一个以上时,步骤D中所述从虚通道信元队列中取出一个信元是队列管理模块根据所述调度响应携带的虚通道信元队列标识,从对应于所述虚通道信元队列标识的虚通道信元队列中取出一个信元。
22.根据权利要求5所述的方法,其特征在于,步骤D中所述将取出的信元发送出去进一步包括队列管理模块向信元发送模块发送取出的信元。
全文摘要
本发明公开了一种实现异步转移模式下虚通道流量控制的方法,该方法包含队列管理模块收到信元后,向流量管理模块发送调度请求,然后将该信元存放至虚通道信元队列;流量管理模块收到所述调度请求后,读取虚通道流量参数,根据所述虚通道流量参数计算所述调度请求的最早离开时间;到达所述调度请求的最早离开时间后,流量管理模块向队列管理模块发送调度响应;队列管理模块收到所述调度响应后,从虚通道信元队列中取出一个信元,并将取出的信元发送出去。本发明还公开了一种实现异步转移模式下虚通道流量控制的装置。通过本发明可实现对虚通道流量的精确控制。另外,本发明提出的方案简单易行,模块间的结构清晰明确,并且运行可靠。
文档编号H04L12/42GK1612546SQ20031010428
公开日2005年5月4日 申请日期2003年10月28日 优先权日2003年10月28日
发明者马继彬 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1