具体实施方式
下面结合附图6、7详细介绍本发明的数据流量控制方法的具体工作方式。
图6是本发明对缓存器设置门限的示意图。
其中,数据由右侧依次进入缓存器后,由左向右暂存在缓存器中。同时,暂存在最左端的数据从缓存器中输出,提供给应用程序或者上层结构。随着最左端数据不断从缓存器中输出,右侧的数据依次向左流动。缓存器的占有量就在这样的动态过程中不断波动。
在本发明中,为了达到数据流量控制的目的,对缓存器设置4个门限,由对应的占有量由高至低的次序依次为最上门限(Max Up Threshold)、上门限(Upper Threshold)、下门限(Downer Threshold)、以及最下门限(Max Down Threshold)。
其中,最上门限的值应当低于缓存器的实际最大容量,一般可以设为最大容量的90%。上门限低于最上门限,一般为最大容量的60%~70%。最下门限较低,可以为最大容量的10%。下门限的值介于最下门限与上门限间,可以将其设置的较高从而有利于尽快恢复数据传输,一般为最大容量的40%。设置了4个门限后,就可以根据缓存器当前数据占有量与4个门限之间的关系,对数据流量进行控制。具体的控制步骤参考图7。
当缓存器占有量较低时,例如低于上门限时,系统工作在步骤10所示的正常状态。这时对数据传输不作数据流量限制,或者控制数据流量为系统允许的最高值。
而后,执行步骤20,判断缓存器中的数据占有量是否超过最上门限。一旦数据占有量超过了最上门限,系统立即转入步骤50。否则,执行判断步骤30。
在步骤30中,判断缓存器占有量是否已经超过了上门限。如果超过,系统进入步骤40。否则转回到步骤10,以正常传输状态继续工作。
如系统进入步骤40,那么当前数据占有量介于最上门限与上门限之间。这说明:一方面,缓存器还能够接收新的数据,因此不必中止数据的传输;另一方面,也不宜继续正常工作状态,否则最终会造成数据传输的中止。因此进入步骤40后,系统根据控制算法对数据传输进行限制,通过减小数据流量,防止缓存器占有量超过最上门限造成数据传输中止。同时,减小数据流量也有利于使缓存器占有量下降到上门限之下,使系统回到正常传输状态。
在步骤40中,减小数据流量的控制算法可以是简单的静态控制,如控制数据流量为某个固定值。但更佳的是使用动态控制算法,采用变化的数据流量控制算法,例如随着缓存器占有量的提高逐渐减小数据的数据流量。具体可以采用各种线性的、或非线性的算法加以控制,在后文的实际应用中将更详细的加以介绍。
如果系统进入了步骤50,表明缓存器占有量已经超过了最上门限,缓存器的剩余空间不多,必须立即中止数据的传输,也就是限制数据流量为0。这样才能防止数据继续传输而不能进入缓存器,最终造成被丢弃并且要求重传。同时,由于最大上限低于缓存器的实际最大容量,因此,系统中止前已经发出的数据能够进入缓存器,不会被丢弃。
系统进入中止状态50后,表明数据流量过大,因此需要中止传输,等待缓存器恢复工作能力。而后转入判断步骤60。
在步骤60中,判断缓存器占有量是否低于下门限。如果不满足条件,表明自系统中止数据传输后,缓存器的占有量仍然居高不下,还不能恢复数据传输。因此跳回步骤50,继续保持中止状态。
如果缓存器占有量已经低于下门限,表明可以恢复数据传输。但由于下门限设置的较高,因此需要进一步执行步骤70,判断是否低于最下门限。如果超过最下门限,在恢复数据传输的同时仍要对数据数据流量进行限制,避免缓存器中数据占有量增长太快。具体步骤如下。
在步骤70中,判断缓存器占有量是否低于最下门限。如果低于最下门限,表明缓存器已经完全恢复了工作能力,可以立即转回到步骤10,以数据流量不受限制的正常状态工作。如果缓存器占有量超过最下门限,则进入步骤80。
在步骤80中,系统在进行数据传输的同时根据控制算法对数据传输进行限制,逐步增加数据流量,防止缓存器占有量增长过快。
步骤80中所依据的控制算法可以与步骤40中使用的算法相同,也可以不同。当两种控制算法不同时,称步骤40中使用的为第一控制算法,步骤80中使用的为第二控制算法。
为防止缓存器中的数据占有量超过最上门限,执行判断步骤90。一旦数据占有量超过了最上门限,系统立即进入步骤50,中止数据传输。否则,跳回到判断步骤70,判断缓存器占有量是否低于最下门限。
在本发明的方法中,“超过”可以理解为“大于”,也可以理解为“大于等于”;“低于”可以理解为“小于”,也可以理解为“小于等于”。
以上就是本发明的数据流量控制方法,通过使用第一控制算法控制缓存器占有量较高时的数据流量,能够有效地维持数据的传输与交换,减少系统进入中止状态的可能性。同时,使用第二控制算法对数据传输恢复时的数据流量进行控制,从而大大缩短了数据传输中止后的等待时间,提供了一种兼具灵活性和鲁棒性(Robust)的数据流量控制机制。此外,本发明的数据流量控制方法能够适用于各种具有缓存器(Buffer)结构的数据传输或交换系统。
下面就结合附图详细介绍本发明的数据流量控制方法在多种不同数据传输或交换系统中的应用。
本发明的第一应用实例是在第三代移动通信(3GPP)系统中媒体接入控制层(MAC)上的数据传输中的应用。
在新一代无线移动通信系统的无线网络控制器(RNC)中,数据流量控制方法是一个重要而且具有决定意义的技术问题。尤其是MAC层中,MAC-d逻辑实体和MAC-c/sh逻辑实体间的数据流量控制方法。其主要功能是:在下行链路中,将SRNC(主RNC)中MAC-d逻辑实体上的专有逻辑信道(专用业务信道DTCH/专用控制信道DCCH)中的数据经过Iur协议接口(RNC间的连接接口),稳定、高效、尽可能流畅地传送到DRNC(从RNC)中MAC-c/sh逻辑实体上的公共传输信道(前向接入传输信道FACH/下行链路共享信道DSCH)上;或者在同一RNC中,不经过Iur接口而由MAC-d经数据流量控制机制直接传送到MAC-c/sh上。
在本实例中,主要针对RNC的MAC层中,MAC-d实体和MAC-c/sh实体之间,在下行链路中由专用逻辑信道(DTCH/DCCH)映射到前向接入传输信道(FACH)时将会出现的数据流量控制问题。尤其是在不同RNC间,数据由SRNC中MAC-d的专有逻辑信道(DTCH/DCCH)经Iur接口处理后,传入DRNC中MAC-c/sh的FACH信道的情况。在同一RNC中,数据从MAC-d中的专有逻辑信道(DTCH/DCCH)直接映射到MAC-c/sh中的FACH信道,而无需经过Iur接口处理的情况对于数据流量控制方法是相同的,仅仅是数据信息和数据流量控制信息不经过Iur接口而直接在MAC-d和MAC-c/sh之间进行传输。
图8就是SRNC中MAC-d与DRNC中MAC-c/sh之间的数据流传输示意图。在数据流从SRNC中MAC-d流向DRNC中MAC-c/sh的过程中,SRNC中MAC-d内不同用户的传输缓存器110中同一优先级别的数据,经过Iur接口,在流量控制方法的控制下,流向指定的DRNC中MAC-c/sh内具有相应优先级的传输缓存器120中。
图9为图8中SRNC端某个用户的传输缓存器110的工作示意图。该传输缓存器110位于SRNC端的MAC-d逻辑实体中。来自专有逻辑信道(DTCH/DCCH)的数据流在MAC-d控制器的控制下,经过传输信道类型切换以及C/T复用/优先级设置后,按照优先级的高低不同,在每个触发时刻将数据送入对应各个优先级的传输缓存器110中。并且等待在下一个触发时刻,由该缓存器110将数据传送到MAC-c/sh中。其中,依据协议参数,优先级的设置数目最高可以为15。该缓存器110的数据容量大小可以设置为在一个传输触发时刻中,传输的最大PDU(协议数据单元)个数与最大PDU容量的乘积,即每个触发时刻所能传递的最大数据容量。在实际工作中,为保证缓存器110的工作稳定性,其容量可以规定得略大一些。
图10为图8中DRNC端的传输缓存器120的工作示意图。来自SRNC端MAC-d逻辑实体中的缓存器110的数据流经过Iur协议接口的处理后,进入DRNC端的MAC-c/sh层中。在MAC-c/sh控制器的控制下,经过TCIF复用/UE Id复用,最后依据优先级的不同进入MAC-c/sh中具有相应优先级的传输缓存器120中。此外,为了支持随后的时序/优先级操作以及TFC选择处理,对应于每一个传输缓存器120,都设置有一个辅助缓存器(图上未示),该辅助缓存器用来存储进入到传输缓存器120的数据流的SDU(服务数据单元)的个数与容量。MAC-c/sh中各个优先级对应的传输缓存器120的结构如图6所示。
虽然在上述系统中,用户数目、各自优先级及其数据流量具有不可预知性,但通过采用本发明的数据流量控制方法,可以有效避免更多的丢弃和重传几率的出现。
在3GPP协议中,规定了标准的消息交换机制来传递与数据流量控制有关的各种参数及状态信息。例如,在Iur接口中可以采用FACH FLOW CONTROL和FACH CAPACITY REQUEST消息对用来传输包含数据流量控制参数的控制帧。在FACH FLOW CONTROL控制帧中,一个长度为8位的参数Credits的设定只规定了,当其值为0时无传输限制,而为255时则中止传输,其它的值可以由用户自己定义。因此可以通过自己定义Credits值,利用FACH FLOW CONTROL控制帧实现本发明的控制方法。
具体控制方法为:
对于发送端(SRNC的MAC-d):
在新的数据发送时刻,发送端要发送一个控制帧信息FACH CAPACITY REQUEST给接收端,告知接收端自己需要的缓存器容量的大小,并等待DRNC发送FACH FLOW CONTROL控制帧。其中,FACH CAPACITY REQUEST控制帧和FACH FLOW CONTROL控制帧的格式见下表1和表2。
表一FACH CAPACITY REQUEST控制帧的格式
7 0
Control Frame CRC |
Frame Type(1) |
Control Frame Type(0000 0011) |
DNTI |
DRNTI(Cont) |
DRNTI(Cont) |
CmCH-PI |
User Buffer Size |
User Buffer Size(Cont) |
Spare Extension |
表二FACH FLOW CONTROL控制帧的格式
7 0
Control Frame CRC |
Frame Type(1) |
Control Frame Type(0000 0010) |
SRNTI |
SRNTI(Cont) |
SRNTI(Cont) |
CmCH-PI |
Credits |
Spare Extension |
如果在规定的等待时间内收到FACH FLOW CONTROL控制帧,进入(a),反之进入(b)。
(a)根据FACH FLOW CONTROL控制帧中的信息,决定要发送的SRNC中MAC-d的PDU的数目;(b)发送一个FACH CAPACITY REQUEST给接收端。根据该控制帧结构,发送请求中包含发送容量需求,且需求为可发送容量的最小值。
其中,上述的等待时间可以根据不同系统决定。作为一个具体示例,可以设为M×TTI(Transmission Time Interval),而参数M可以由产品设计者根据具体情况设定。
对于接收端(DNRC的MAC-c/sh),参考图7及前述流程,在每一个接收触发时刻观测当前缓存器的容量占有量Q。
执行步骤20,判别该Q值+接收的数据量是否大于最上门限(Max Up Threshold)。
如果是,跳转到步骤50;如果否,则跳转到步骤30。
步骤30,判别该Q值+接收的数据量是否大于上门限(Upper Threshold)。
如果是,则执行步骤40,根据后面介绍的计算规则,发送FACH FLOW CONTROL控制帧给当前用到该缓存器的MAC-d,用该帧中的Credits参数调整MAC-c/sh的SDU的发送数目;如果否,则执行步骤10,根据原来的各种参数继续进行发送和接收。而后返回20。
进入步骤50,发送一个Credit值为0的FACH FLOW CONTROL控制帧给当前用到该缓存器的MAC-d,中止数据传输;同时记下中止信息,格式见下表3。
表3
7 0
SRNTI |
SRNTI(Cont) |
SRNTI(Cont) |
CmCH-PI |
Spare Bits7-6 |
UE-IDType | MAC-c/sh SDU Length |
MAC-c/sh SDU Length(Cont) |
Spare Extension |
步骤60,判断该Q值是否小于下门限(Downer Threshold),如果是,则进入步骤70;如果否,则跳转到步骤50。
步骤70,判断该Q值是否小于最下门限(Max Down Threshold),如果是,则根据中止信息(按照表3格式记录),发送一个Credit值为255的FACH FLOW CONTROL控制帧(按照表2格式记录)给所有用到该缓存器的MAC-d,进入步骤10,MAC-d重新发送数据;
如果否,进入步骤80,根据表3中记录的中止信息,按照给出的计算规则,发送FACH FLOWCONTROL控制帧给当前用到该缓存器的MAC-d,调整DRNC中MAC-c/sh的SDU的发送数目。
其中,使用的步骤40和80中MAC-c/sh的SDU数目的调整规则为:
在假定每一个用户的优先级别相同的条件下,根据式(1)来估计每个用户可以拥有的传输容量。
其中:
QMax:缓存器的可用的最大容量,即等于最上门限;
QCur:缓存器当前被占用的容量;
mind:当前使用该缓存器的用户可以使用的容量大小;
N:当前使用该缓存器的用户数目。
然后根据该容量和传输的SDU的容量估计可以传输的SDU的个数,最后将该信息通过FACHFLOW CONTROL控制帧中的Credits参数传送给发送端,用来控制发送端应该发送的数据容量的大小。
所有的门限均由缓存器的设计大小以及相关的系统具体参数设置。作为一个实例,我们给出该数据流量控制算法各个参数的量化设定。Qmax由产品设计者根据产品的具体情况设定。为保证一定的冗余度,设定Max Up Threshold为0.9×Qmax;而Max Down Threshold为0.1×Qmax。二阶门限中Upper Threshold为0.6×Qmax;而Downer Threshold为0.4×Qmax。
这样,就充分、灵活地利用了3GPP中给出的规则,尽量避免了在发送数据过程中,SRNC的MAC-d与DRNC的MAC-c/sh之间频繁的控制信息交换。该方法发送请求信息FACH CAPACITYREQUEST只在新的数据发送时刻或者系统重新置位时才启用,减少了控制信息的交换,有利于改善控制算法的复杂程度、提高系统的稳定性;
在具体应用中,还可以对上述的数据流量控制的算法以及各个门限值加以变化,从而适用于不同的系统。
例如可以采用台阶式的控制算法,举例而言:0.6Qmax<Qcur<0.7Qmax时, 0.7Qmax<Qcur<0.8Qmax时,
0.8Qmax<Qcur<0.9Qmax时,
也可以采用随QCur的增大,mind呈抛物线下降的抛物线算法等其它算法,甚至采用静态算法,例如规定数据流量为单位传输时间内小于缓存器容量的5%。
进一步,步骤40和80可以分别使用不同的控制算法。例如,步骤40使用式(1)所示的算法作为第一控制算法,步骤80使用上述的静态算法作为第二控制算法。
此外,各门限值也可以做出改变。例如设定Max Up Threshold为0.85×Qmax;而Min DownThreshold为0.2×Qmax。二阶门限中Upper Threshold为0.7×Qmax;而Downer Threshold为0.5×Qmax。只要满足最上门限>上门限>下门限>最下门限即可。
本发明的第二个应用实例是在ISDN(Integrated Services Digital Network)交换技术的排队机制中。
ISDN交换机是根据信头的信息和基本信元完成交换的。一个ISDN交换机使用信头来决定如何转发信息。ISDN交换有两个基本特点:信元交换和各虚连接间的统计复用。为解决信元对传输资源的竞争,必须对信元进行排队,从时间上将各信元分开。借用电路交换的思想,ISDN在交换中体现为时分交换,并通过缓存排队机制实现。基本的排队机制有三种:输入排队、输出排队和中央排队。
我们以中央排队机制作为我们的缓存机制的一个实施例。如图11所示。
从中我们看出它的缓存队列也必须解决队列拥塞的问题。为此可以使用如图7所示的控制方法。
当缓存器占有量较低时,例如低于上门限时,系统工作在步骤10所示的正常状态。这时对数据传输不作数据流量限制,或者控制数据流量为系统允许的最高值。
而后,执行步骤20,判断缓存器中的数据占有量是否超过最上门限。一旦数据占有量超过了最上门限,系统立即进入步骤50。否则,执行判断步骤30。
在步骤30中,判断缓存器占有量是否已经超过了上门限。如果超过,系统进入步骤40。否则回到步骤10,以正常传输状态继续工作。
系统进入中止状态50后,执行判断步骤60。
步骤60中,判断缓存器占有量是否低于下门限。如果不满足条件,跳回步骤50。如果缓存器占有量已经低于下门限,进一步执行步骤70,判断是否低于最下门限。如果低于最下门限,立即回到步骤10,以数据流量不受限制的正常状态工作。如果缓存器占有量超过最下门限,则进入步骤80。
在步骤80中,系统根据控制算法对数据传输进行限制,并执行判断步骤90。
其他两种排队策略亦同样可以使用这样的缓存队列机制来完成网络传输的数据流量控制,以防止系统产生阻塞。
本发明的第三个应用例是ATM(异步传输模式)交换结构的数据流量控制。
缓冲策略或排队策略是ATM交换结构设计中的一个重要内容,它主要包括缓冲设置方式、缓冲器的数量、队列的存取控制、以及缓冲器的管理。而缓冲器的管理中就包含如何为缓冲器设计有效而合理的门限的问题。如图12所示。
因此,使用本发明的具体控制方法可以有效的解决上述问题。
当缓存器占有量较低时,系统工作在步骤10所示的正常状态。这时对数据传输不作数据流量限制,或者控制数据流量为系统允许的最高值。
而后,执行步骤20,判断缓存器中的数据占有量是否超过最上门限。一旦数据占有量超过了最上门限,系统立即进入步骤50。否则,执行判断步骤30。
在步骤30中,判断缓存器占有量是否已经超过了上门限。如果超过,系统进入步骤40。否则回到步骤10,以正常传输状态继续工作。
系统进入中止状态50后,执行判断步骤60。
步骤60中,判断缓存器占有量是否低于下门限。如果不满足条件,跳回步骤50。如果缓存器占有量已经低于下门限,进一步执行步骤70,判断是否低于最下门限。如果低于最下门限,立即回到步骤10,以数据流量不受限制的正常状态工作。如果缓存器占有量高于最下门限,则进入步骤80。
在步骤80中,系统根据控制算法对数据传输进行限制,并执行判断步骤90。
以上结合附图详细描述了本发明的实施方式以及多种具体应用,这些描述以及附图仅是为了说明本发明的思想、内容以及应用。对于本技术领域内熟练的技术人员而言,根据以上描述的内容作出各种变化和修改是显而易见的,因此,都不能脱离本发明的精神和范围。本发明保护范围以权利要求的记载为准。