基于前向阀门的数据包传输调度方法和装置
技术领域
本发明涉及无线通信领域,特别是指一种基于前向阀门的数据包传输调度方法和装置。
背景技术
在能源日益紧张的背景下,追求较高的能量效率是无线通信发展的一个重要目标,而低能耗数据包传输是实现未来无线通信较高能量效率的关键部分。对于给定大小的数据包,传输速率越小,传输时间越长,相应的传输能耗就越小。下面将以AWGN(加性高斯白噪声)传输信道为例,结合香农定理说明以上结论。
在给定信道带宽B及噪声功率谱密度N0的情况下,香农定理描述了信道容量即可达的传输速率R与信号功率P的关系,如下式所示:
其中λ为路径损耗因子。从上式中可以得知,在要求的传输速率R下,信号功率P(R)可以表示为:
从上式可知,对于一个给定大小为l的数据包,如果传输速率为R,所需传输时间为l/R,传输能耗E(R)为:
可以看出,传输速率越小,传输能耗就越低。然而,对于任何一个给定的数据包,传输速率不能任意小,即传输时间不能无限制地长。一方面,数据包只有在到达之后才可以进行传输,并且要求在截止时刻之前传输完毕;另一方面,如果传输某个数据包占用了大量时间,就会使得随后的数据包传输时间很短,这可能反而会增加整体传输能耗。对于一系列数据包,实现较低的传输能耗需结合数据包的到达时间,截止时间进行相应的调度。
针对具有不同到达时刻但有相同传输截止时刻的一系列大小不同的数据包,考虑低复杂度低能耗传输调度。图1给出了典型的场景示例,要求在时间区间[0,T)内到达的数据包在截止时刻T之前全部传输完毕。
如图1所示,记数据包的数目为N,对第n个数据包,其到达时刻为tn,数据包大小为ln。记第1个包到达的时刻为0时刻,即t1=0,接下来其余数据包按编号顺序先后到达,即:
0=t1<t2<…<tN<tN+1=T
其中,tN+1仅代表传输截止时刻T,而并非是一个包的到达时刻。如图1所示,dn用来表示第n及n+1个包的到达时间间隔,即dn=tn+1-tn,dn可能具有不同的大小且
对于上述场景,一般有如下两种方案:
现有技术一:根据数据包到达时间间隔进行传输,这是一种很直观的数据包传输调度策略,在这种方案下,每个数据包在到达后就开始传输,并且在下一个包到达时刻正好传完,即ln的数据量在dn的时间内传输。如此,第n个数据包即时刻tn至tn+1的传输速率可以表示为下式所示:
该方案中,根据数据包到达时间间隔传输调度算法具有较低的复杂度,然而其并不能保证较低的传输能耗,尤其是在各个数据包传输速率rn差异较大的情况下所需传输能耗离最小传输能耗差异较大。
现有技术二:为了实现最低能耗数据包传输调度,M.A.Zafer等人提出了利用数据包累积曲线来搜索各个时间段的最佳传输速率。以图2中的5个数据包传输为例,呈阶梯上升的折线为到达曲线A(t),描述了在不同时刻已经到达的数据量,可以得到连续折线C(t)为传输曲线,描述了在不同时刻已经传输的数据量,显然有C(t)≤A(t),即数据包只有在到达后才可能传输;此外,要求C(tN+1)=A(tN+1)(在图2中N=5),即在截止时刻所有数据包都要传输完毕。设传输曲线被分成M个传输段,并且第m传输段的起始时刻记为Tm,传输速率大小记为Rm。
最佳能耗传输曲线应该是以A(t)为边界,以(t1,0)及为端点的具有最短长度的曲线。具体实现方式为:记T1=t1且(T1,0)为传输曲线第一传输段的起点,连接该点及各点,找出能得到最小斜率线段的点,记相应的时刻为T2,为第一传输段的终点及第二传输段的起点,且该最小斜率即为第一传输段的传输速率;同理,对于第m传输段,连接起点及各点,记能得到最小斜率线段的点为Tm+1,即为第m传输段的终点及第m+1传输段的起点,且该最小斜率为第m传输段的传输速率;不断重复以上过程,直至Tm+1=tN+1,便得到整个传输曲线。该算法具体描述为下式所示。
对于图2中5个数据包的情况,最低能耗传输曲线包含两个传输段,即M=2,其中第1,2,3个数据包作为传输的第1段,第4,5个数据包作为传输的第2段。
该方案中,实现了最低能耗数据包传输,但其需要对传输曲线的每一个传输段对斜率进行遍历搜索,具有较高的计算复杂度。对于N个数据包及M个传输段,计算复杂度为O(MN)。
发明内容
本发明提供一种基于前向阀门的数据包传输调度方法和装置,能够实现最低能耗数据包传输的传输调度,并且具有低复杂度。
为解决上述技术问题,本发明提供技术方案如下:
一方面,本发明提供一种基于前向阀门的数据包传输调度方法,包括:
步骤1:设定M=0,其中,M为传输段数;
步骤2:将n从1遍历到N,同时执行步骤3至步骤5,遍历完毕后,转至步骤8,其中,n为待处理的数据包的序号,N为数据包的总数;
步骤3:将第n个数据包当作第M+1传输段,该传输段数据量为LM+1=ln,起始时刻为TM+1=tn,结束时刻为TM+2=tn+1,该传输段长度为DM+1=TM+2-TM+1,传输速率为RM+1=LM+1/DM+1,其中,tn为第n个数据包到达的时刻,ln为第n个数据包的大小;
步骤4:更新传输段数目为M=M+1;
步骤5:当M>1且RM≤RM-1时,执行步骤6至步骤7,否则,返回步骤2执行下一次遍历;
步骤6:将第M-1传输段及第M传输段合并为新的第M-1传输段,该传输段的数据量为LM-1=LM-1+LM,起始时刻仍为原来第M-1传输段的起始时刻,结束时刻更新为TM=TM+1,传输段长度为DM-1=DM-1+DM,传输速率为RM-1=LM-1/DM-1;
步骤7:更新传输段数目为M=M-1,并转至步骤5;
步骤8:得到传输速率随时间的变化情况为R(t)=Rm,其中Tm≤t<Tm+1,1≤m≤M,并据此进行数据包的传输;
其中,每个数据包到达的时刻tn及大小ln在数据包到达前均已知。
与上述方法对应的,本发明提供一种基于前向阀门的数据包传输调度装置,包括:
初值设置模块,用于设定M=0,其中,M为传输段数;
循环模块,用于将n从1遍历到N,同时执行传输段设置模块、第一计数模块、比较模块,遍历完毕后,转至传输模块,其中,n为待处理的数据包的序号,N为数据包的总数;
传输段设置模块,用于将第n个数据包当作第M+1传输段,该传输段数据量为LM+1=ln,起始时刻为TM+1=tn,结束时刻为TM+2=tn+1,该传输段长度为DM+1=TM+2-TM+1,传输速率为RM+1=LM+1/DM+1,其中,tn为第n个数据包到达的时刻,ln为第n个数据包的大小;
第一计数模块,用于更新传输段数目为M=M+1;
比较模块,用于当M>1且RM≤RM-1时,转至传输段合并模块和第二计数模块,否则,返回循环模块执行下一次遍历;
传输段合并模块,用于将第M-1传输段及第M传输段合并为新的第M-1传输段,该传输段的数据量为LM-1=LM-1+LM,起始时刻仍为原来第M-1传输段的起始时刻,结束时刻更新为TM=TM+1,传输段长度为DM-1=DM-1+DM,传输速率为RM-1=LM-1/DM-1;
第二计数模块,用于更新传输段数目为M=M-1,并转至比较模块;
传输模块,用于得到传输速率随时间的变化情况为R(t)=Rm,其中Tm≤t<Tm+1,1≤m≤M,并据此进行数据包的传输。
另一方面,本发明提供一种基于前向阀门的数据包传输调度方法,包括:
步骤1’:将n从1遍历到N,同时执行步骤2’至步骤6’,其中,n为待处理的数据包的序号,N为数据包的总数;
步骤2’:当第n个数据包到达后,计算出剩余时间dr=T-tn,其中,T为截止时刻,tn为第n个数据包到达的时刻;
步骤3’:比较dr与的大小,若则预计没有新的数据包要传输了,接下来的传输速率为Ron=Bn/dr,并转至步骤6’,否则,执行步骤4’,其中,d为数据包平均到达时间间隔,Bn为第n个数据包到达后的缓存大小;
步骤4’:接下来的时间分为两段,第一段对应于缓存中的数据量Bn,第二段对应于后面到达的数据包,比较Bn与的大小,若则表示第一段具有更小的传输速率,不需要合并两段,接下来的传输速率为并转至步骤6’,否则,执行步骤5’;
步骤5’:合并两段并计算出接下来的传输速率其中,为估计出的还未到达的数据包的数目,代表向下取整,为数据包平均到达时间间隔;
步骤6’:按传输速率Ron传输缓存中的数据,直至第n+1个数据包到达或缓存变空;
其中,每个数据包的到达时刻tn及大小ln在相应数据包到达之前是未知的,最开始只有数据包平均到达时间间隔d,平均大小l,以及截止时刻T是已知的。
与上述方法对应的,本发明提供一种基于前向阀门的数据包传输调度装置,包括:
循环模块,用于将n从1遍历到N,同时执行时间模块、第一比较模块、第二比较模块、传输段合并模块和传输模块,其中,n为待处理的数据包的序号,N为数据包的总数;
时间模块,用于当第n个数据包到达后,计算出剩余时间dr=T-tn,其中,T为截止时刻,tn为第n个数据包到达的时刻;
第一比较模块,用于比较dr与的大小,若则预计没有新的数据包要传输了,接下来的传输速率为Ron=Bn/dr,并转至传输模块,否则,执行第二比较模块,其中,为数据包平均到达时间间隔,Bn为第n个数据包到达后的缓存大小;
第二比较模块,用于将接下来的时间分为两段,第一段对应于缓存中的数据量Bn,第二段对应于后面到达的数据包,比较Bn与的大小,若则表示第一段具有更小的传输速率,不需要合并两段,接下来的传输速率为并转至传输模块,否则,执行传输段合并模块;
传输段合并模块,用于合并两段并计算出接下来的传输速率其中,为估计出的还未到达的数据包的数目,代表向下取整,为数据包平均到达时间间隔;
传输模块,用于按传输速率Ron传输缓存中的数据,直至第n+1个数据包到达或缓存变空。
进一步的,所述基于前向阀门的数据包传输调度装置为具有无线通信功能的智能设备,包括但不限于PC、手机或平板电脑。本发明提供一种基于前向阀门的数据包传输调度方法,包括:
本发明有以下有益效果:
与现有技术相比,本发明的基于前向阀门的数据包传输调度方法中,采用前向阀门模型来实现数据包传输调度,整个传输时间由数据包到达时刻分成了N个区间,每个区间被看作一个容器,各个容器按数据包的到达顺序从左至右排列,而数据包被看作液体,每个空容器内液体的初始体积即为数据包大小,液体的高度代表传输速率大小。在相邻容器间共存在N-1个前向阀门,前向阀门的特点是允许液体从左流向右,但不能从右流向左。具体实现流程为:按照时间顺序,每一个新到达的数据包被考虑成为一个新的传输段,其传输速率为ln/dn;打开该传输段左边的阀门,如果新的这一传输段的传输速率小于等于它前面的传输段,将这两个传输段合并为一个新的传输段,并将传输速率更新为加权平均值;不断重复比较新合并的传输段及它前面的传输段,如果前者传输速率小于等于后者,再次合并,直至新合并的传输段比它前面的传输段的传输速率大或它前面不存在其它传输段,即实现了最低能耗传输。该方法中共涉及三种运算类型,即比较运算、加/减运算以及乘/除法运算,相对而言乘/除法运算的次数直接决定整个算法的计算复杂度。可以看出,对每一个数据包及每一次传输段合并,都涉及一次除法运算,考虑N个数据包及M个传输段,传输段合并次数为N-M,那么整个除法的次数为N+(N-M)=2N-M,故复杂度可以表示为O(N),即是相对于数据包数目N的线性复杂度,复杂度低。
附图说明
图1为本发明中的数据包到达场景示意图;
图2为本发明中的现有技术二的传输曲线示意图;
图3为本发明中的引理一证明示意图;
图4为本发明中的最低能耗传输的唯一性证明示意图;
图5为本发明中的前向阀门模型的示意图;
图6为本发明中的前向阀门算法的实例示意图;
图7为本发明中的数据包传输能耗比较曲线图;
图8为本发明中的数据包传输调度计算复杂度比较曲线图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
首先,介绍本发明涉及到的理论基础:
最低能耗传输的相关定理:
定理一:对于最低能耗数据包传输,在每一个包到达时间间隔区间dn内,传输速率是恒定不变的。
证明:由于信号功率是传输速率的凸函数,根据Jensen不等式可以得到:
其中为区间dn内的平均传输速率。上式中右半部分是在dn内按传输速率R(t)传输的能耗,而左半部分是按平均传输速率传输的能耗。可以得知,如果在dn内传输速率不是恒定值,那么只要把传输速率调整为平均值rn就会更节能。同时,在dn内除了端点处之外没有数据包到达,所以在保证dn内传输数据总量不变的前提下,调整传输速率至均值并不会违背数据包必须在到达后才能传输的条件。因此,对于最低能耗数据包传输,传输速率在每一个包到达时间间隔区间dn内是恒定不变的。
引理一:考虑两段区间dn及dn+1,假定总数据传输量恒定不变,如果这两段的传输速率大小差异越小,则越节能。
证明:图3给出了信号功率随传输速率的变化曲线。假定在某种调度方案下,区间dn及dn+1的传输速率分别为rn及rn+1,并且rn<rn+1。在保证数据包在到达后才能传输的前提下,通过将区间dn+1内传输的部分数据移至区间dn内传输,得到这两个区间新的传输速率为r′n和r′n+1,并有rn<r′n≤r′n+1<rn+1。如果把dn及dn+1看作一个整体区间,由定理一可知,当r′n=r′n+1时最节能,不过,由于在tn+1时刻到达的包不可能在dn区间传输这个限制条件,这种最节能的条件不一定得以满足。然而,即使在r′n<r′n+1的情况下,也比移动前的传输速率rn及rn+1更节能。
由于P(R)是凸函数,可以得出:
上式中左边是按移动后的数据传输速率进行传输的耗能,而右边是移动前的传输耗能。可以看出,在区间dn及dn+1总数据传输量不变的情况下,如果它们的传输速率大小差异越小,则越节能。
定理二:对于最低能耗数据包传输,在整个传输时间区间[0,T)内,传输速率随时间是非减变化的。
证明:在每一个时间区间dn内,由定理一可知传输速率应该是恒定值才能保证最节能,因此非减特性满足。这样,定理二的表述等价于对任意两个相邻区间dn及dn+1,最低能耗传输方案要求rn≤rn+1。假定rn>rn+1,由引理一可知,可以将区间dn内传输的部分数据移至区间dn+1传输,并使这两个区间具有相同的传输速率(rndn+rn+1dn+1)/(dn+dn+1)(注:将数据传输从前面的时间区间移至后面的时间区间不会造成数据包还未到达就调度传输的情况,而从后面的区间移至前面的区间需要兼顾这个约束)。综上可知,对于最低能耗传输,一定满足rn≤rn+1,定理二得证。
定理三:对于最低能耗数据包传输,如果传输速率在tn+1(1≤n<N)时刻增加,那么前面的n个数据包正好在这个时刻传输完毕。
证明:定理三等价于如果rn+1>rn,那么在tn+1时刻前面到达的n个数据包正好在tn+1传送完毕。假定在这种情况下前n个包还有部分数据在区间dn+1内传输,根据引理一,可以将dn+1内的部分属于前n个包的数据移至dn内传输,rn与rn+1的差异就会减小并更节能。因此,对于最低能耗传输,定理三必定成立。相反,如果n个数据包在tn+1传送完毕并且rn+1>rn,将区间dn+1内的部分数据移动区间dn内传输是不现实的(这些数据在tn+1时刻前还未到达),所以这种情况下传输速率增加是可能的。
综合以上定理,对于最低能耗数据包传输,传输速率只有在某个数据包到达时刻并且之前的数据包正好在该时刻传输完毕的情况下才会增加,而在其它情况下都维持不变。
最低能耗传输的唯一性
最低能耗数据包传输调度需要满足以上三条定理,而以上三条定理也决定了唯一的传输策略,其必定满足最低能耗要求。
考虑服从上述三个定理的传输策略一,设传输速率变化点为{T1,T2,…,TM,TM+1},其中T1=t1=0,TM+1=tN+1=T,并且Tm∈{t2,t3,…,tN}(2≤m≤M),具有相同传输速率的传输段为{D1,D2,…,DM}且Dm=Tm+1-Tm,各传输段所对应的传输数据量为{L1,L2,…,LM},传输速率为{R1,R2,…,RM}(注,小写字母变量tn,dn,ln,rn针对数据包到达时间点及其所划分出的时间区间,大写字母变量Tm,Dm,Lm,Rm针对调度后传输速率变化时间点及其所划分出的时间区间)。假定另有一个传输策略二也满足三条定理,如果其不完全等同于策略一,必会导致矛盾。
如果策略二的传输速率在某个点开始比策略一小,从定理二可知传输速率随时间是非减函数,所以这个传输速率变小点一定属于{T1,T2,…,TM}。如图4(a)所示,假定在Tm时刻,策略二的传输速率相对于策略一降低至在Tm+1时刻,策略一将之前的数据包传输完毕并且传输速率上升至Rm+1。由于策略二在Tm+1时刻不可能将前面到达的数据包传输完毕,由定理三可知,策略二的传输速率在Tm+1时刻不会增加。同理,策略二在随后的Tm+2,Tm+3,…,TM时刻都不会增加,如此,到达截止点T,策略二必定还有一些数据没传完,因此上述假设不成立。
如果策略二的传输速率在某个点开始比策略一大,由于传输速率是非减函数,这个点对策略二本身也是传输速率增大点,从定理三可知传输速率变大点是数据包到达点并且前面的包已经传完(此时这样的点并不一定局限于{T1,T2,…,TM})。如图4(b)所示,假定在时刻策略二的传输速率相对于策略一升至那么在时刻Tm+1之前,策略二传输的数据量大于策略一。然而,Tm+1是策略一的传输速率上升点,从定理三可知,策略一在时刻Tm+1已经将之前到达的数据包传输完毕,因此策略二不可能比策略一传更多的数据,故上述假设也不成立。
可以看出,策略二在任何点的传输速率相对于策略一都不会有改变,即这两种策略相同。所以,满足三条定理的调度方案是唯一的,也说明最低能耗传输策略是唯一的。这也表明如果能找到一种满足三条定理的调度方案,它必定是唯一的最低能耗传输方案。
前向阀门模型
虽然最低能耗传输方案具有唯一性,但实现这种方案的算法并不是唯一的,本发明的目标就是通过一种简单的算法实现最低能耗数据包传输调度,并采用如图5所示的前向阀门模型来达到目标。根据图1所示的数据包到达过程,整个传输时间由{t1,t2,…tN,tN+1}分成了N个区间。在前向阀门模型中,每个区间被看作一个容器,而数据包被看作液体,每个空器内液体的初始体积即为数据包大小,液体的高度代表传输速率大小。在相邻容器间共存在N-1个前向阀门,记为{S2,S3,…,SN},前向阀门的特点允许液体从左流向右,但不能从右流向左。
在开始,假定各个阀门都处于关闭状态,将N个数据包分别倒入各个容器之中,如图5(a)所示,此时的状态其实对应于现有技术一的方案,并不能实现最低能耗传输。然后,打开所有的阀门,液体会在各容器间流动,并达到一个新的平衡状态,如图5(b)所示,这个平衡状态满足三条定理的约束。
首先,由于数据包被当作液体,每个容器内的高度必定相同,这也意味着在每个时间区间dn内传输速率是相同的,即符合定理一。其次,如果右边容器的高度低于左边容器,那么左边容器内的液体会通过前向阀门流向右边容器,直至具有相同的高度,这表明在图5(b)的平衡状态中,右边容器的高度不可能低于左边空器,即符合定理二中表述的传输速率是非减的特性。再次,如果平衡状态下液体高度在某个阀门Sn+1处(对应于时间点tn+1)增加,左边容器内的液体不可能通过Sn+1流向右边容器,即前面n个数据包在tn+1传输完毕,即符合定理三。综上,前向阀门模型能实现满足三条定理的传输方案,即唯一的最低能耗传输调度。
实现算法
图5所示的前向阀门模型给出了最低能耗数据包传输的物理实现,而具体的算法可按如下方式实现:按照时间顺序,每一个新到达的数据包被考虑成为一个新的传输段,其传输速率为ln/dn;打开该传输段左边的阀门,如果新的这一传输段的传输速率小于等于它前面的传输段,将这两个传输段合并为一个新的传输段,并将传输速率更新为加权平均值;不断重复比较新合并的传输段及它前面的传输段,如果前者传输速率小于等于后者,再次合并,直至新合并的传输段比它前面的传输段的传输速率大或它前面不存在其它传输段。该算法过程对每一个数据包都执行一遍,并最终可以得到图5(b)所示的传输速率呈现阶梯上升的平衡状态。如果只考虑图5中的前5个数据包,图6给出了前向阀门算法的具体实现过程。
第1步,第1个数据包作为第1传输段,传输速率为R1;第2步,第2个数据包被看作第2传输段,传输速率为R2,由于R2>R1,在打开S2后这两个传输段并不会合并;第3步,第3个数据包作为第3传输段,传输速率为R3;第4步,由于R3<R2,打开S3后第2传输段与第3传输段合并为新的第2传输段,两个传输段传输速率的加权平均值作为新传输段的传输速率R2;第5步,由于R1<R2,第1传输段与第2传输段再次合并为新的第1传输段,并更新传输速率R1;第6步,第4个数据包作为第2传输段,传输速率为R2,由于R2>R1,打开S4后并不会出现传输段的合并;第7步,第5个数据包作为第3传输段,传输速率为R3;第8步,由于R3<R2,打开S5后第2传输段与第3传输段合并为新的第2传输段,传输速率为更新后的R2,随后由于R2>R1,传输段合并停止。经过以上8步,5个数据包最终的调度结果是按两个传输段进行传输。对于N个数据包的一般情况,本发明的基于前向阀门的数据包传输调度方法,包括:
步骤1:设定M=0,其中,M为传输段数;
步骤2:将n从1遍历到N,同时执行步骤3至步骤5,遍历完毕后,转至步骤8,其中,n为待处理的数据包的序号,N为数据包的总数;
步骤3:将第n个数据包当作第M+1传输段,该传输段数据量为LM+1=ln,起始时刻为TM+1=tn,结束时刻为TM+2=tn+1,该传输段长度为DM+1=TM+2-TM+1,传输速率为RM+1=LM+1/DM+1,其中,tn为第n个数据包到达的时刻,ln为第n个数据包的大小;
步骤4:更新传输段数目为M=M+1;
步骤5:当M>1且RM≤RM-1时,执行步骤6至步骤7,否则,返回步骤2执行下一次遍历;
步骤6:将第M-1传输段及第M传输段合并为新的第M-1传输段,该传输段的数据量为LM-1=LM-1+LM,起始时刻仍为原来第M-1传输段的起始时刻,结束时刻更新为TM=TM+1,传输段长度为DM-1=DM-1+DM,传输速率为RM-1=LM-1/DM-1;
步骤7:更新传输段数目为M=M-1,并转至步骤5;
步骤8:得到传输速率随时间的变化情况为R(t)=Rm,其中Tm≤t<Tm+1,1≤m≤M,并据此进行数据包的传输;
其中,每个数据包到达的时刻tn及大小ln在数据包到达前均已知。
上述方法是针对的离线模式下的数据包传输调度,即每个数据包到达的时刻tn及大小ln在调度前均已知,在离线模式下,将所有的数据包分段完成后再进行数据包的传输。
本发明的基于前向阀门的数据包传输调度方法中,采用前向阀门模型来实现数据包传输调度,整个传输时间由数据包到达时刻分成了N个区间,每个区间被看作一个容器,各个容器按数据包的到达顺序从左至右排列,而数据包被看作液体,每个空容器内液体的初始体积即为数据包大小,液体的高度代表传输速率大小。在相邻容器间共存在N-1个前向阀门,前向阀门的特点是允许液体从左流向右,但不能从右流向左。具体实现流程为:按照时间顺序,每一个新到达的数据包被考虑成为一个新的传输段,其传输速率为ln/dn;打开该传输段左边的阀门,如果新的这一传输段的传输速率小于等于它前面的传输段,将这两个传输段合并为一个新的传输段,并将传输速率更新为加权平均值;不断重复比较新合并的传输段及它前面的传输段,如果前者传输速率小于等于后者,再次合并,直至新合并的传输段比它前面的传输段的传输速率大或它前面不存在其它传输段,即实现了最低能耗传输。该方法中共涉及三种运算类型,即比较运算、加/减运算以及乘/除法运算,相对而言乘/除法运算的次数直接决定整个算法的计算复杂度。可以看出,对每一个数据包及每一次传输段合并,都涉及一次除法运算,考虑N个数据包及M个传输段,传输段合并次数为N-M,那么整个除法的次数为N+(N-M)=2N-M,故复杂度可以表示为O(N),即是相对于数据包数目N的线性复杂度,复杂度低。
具体算法程序如表1所示:
表1
表1中共涉及三种运算类型,即比较运算、加/减运算以及乘/除法运算,相对而言乘/除法运算的次数直接决定整个算法的计算复杂度。可以看出,对每一个数据包及每一次传输段合并,都涉及一次除法运算,考虑N个数据包及M个传输段,传输段合并次数为N-M,那么整个除法的次数为N+(N-M)=2N-M,故复杂度可以表示为O(N),即是相对于数据包数目N的线性复杂度。当然,这只是本发明的一种算法实现方式,还可以采用其他算法来实现。
与上述方法对应的,本发明提供一种基于前向阀门的数据包传输调度装置,包括:
初值设置模块,用于设定M=0,其中,M为传输段数;
循环模块,用于将n从1遍历到N,同时执行传输段设置模块、第一计数模块、比较模块,遍历完毕后,转至传输模块,其中,n为待处理的数据包的序号,N为数据包的总数;
传输段设置模块,用于将第n个数据包当作第M+1传输段,该传输段数据量为LM+1=ln,起始时刻为TM+1=tn,结束时刻为TM+2=tn+1,该传输段长度为DM+1=TM+2-TM+1,传输速率为RM+1=LM+1/DM+1,其中,tn为第n个数据包到达的时刻,ln为第n个数据包的大小;
第一计数模块,用于更新传输段数目为M=M+1;
比较模块,用于当M>1且RM≤RM-1时,转至传输段合并模块和第二计数模块,否则,返回循环模块执行下一次遍历;
传输段合并模块,用于将第M-1传输段及第M传输段合并为新的第M-1传输段,该传输段的数据量为LM-1=LM-1+LM,起始时刻仍为原来第M-1传输段的起始时刻,结束时刻更新为TM=TM+1,传输段长度为DM-1=DM-1+DM,传输速率为RM-1=LM-1/DM-1;
第二计数模块,用于更新传输段数目为M=M-1,并转至比较模块;
传输模块,用于得到传输速率随时间的变化情况为R(t)=Rm,其中Tm≤t<Tm+1,1≤m≤M,并据此进行数据包的传输。
本发明的基于前向阀门的数据包传输调度装置中,采用前向阀门模型来实现数据包传输调度:按照时间顺序,每一个新到达的数据包被考虑成为一个新的传输段,其传输速率为ln/dn;打开该传输段左边的阀门,如果新的这一传输段的传输速率小于等于它前面的传输段,将这两个传输段合并为一个新的传输段,并将传输速率更新为加权平均值;不断重复比较新合并的传输段及它前面的传输段,如果前者传输速率小于等于后者,再次合并,直至新合并的传输段比它前面的传输段的传输速率大或它前面不存在其它传输段,即实现了最低能耗传输。该装置中共涉及三种运算类型,即比较运算、加/减运算以及乘/除法运算,相对而言乘/除法运算的次数直接决定整个算法的计算复杂度。可以看出,对每一个数据包及每一次传输段合并,都涉及一次除法运算,考虑N个数据包及M个传输段,传输段合并次数为N-M,那么整个除法的次数为N+(N-M)=2N-M,故复杂度可以表示为O(N),即是相对于数据包数目N的线性复杂度,复杂度低。
上述方法是针对离线模式的数据包传输调度,即每个数据包到达的时刻及大小在调度前均已知。然而,对于在线模式,在一个数据包到达之前,它的到达时刻及大小是未知的,而只有数据包平均到达时间间隔平均大小以及截止时刻T是已知的。经过简单处理,前向阀门调度算法可以从离线模式过渡到在线模式。
当第n个数据包到达后,设缓存大小为Bn(包含第n个数据包ln),可以根据余下的时间长度dr=T-tn来估计出还未到达的数据包数目。当时,可以认为没有新的数据包要传输了,传输速率就设定为Bn/dr;当时,预计还会有新的数据包到达,那么接下的时间可以分为两段,即和第一段对应的数据量为Bn,传输速率为第二段的传输速率可以估计为根据前向阀门模型,如果第一段传输速率大于第二段,即就将这两段合并为一段(需要估计还未到达的包的数目)。具体的,本发明的基于前向阀门的数据包传输调度方法,包括:
步骤1’:将n从1遍历到N,同时执行步骤2’至步骤6’,其中,n为待处理的数据包的序号,N为数据包的总数;
步骤2’:当第n个数据包到达后,计算出剩余时间dr=T-tn,其中,T为截止时刻,tn为第n个数据包到达的时刻;
步骤3’:比较dr与的大小,若则预计没有新的数据包要传输了,接下来的传输速率为Ron=Bn/dr,并转至步骤6’,否则,执行步骤4’,其中,d为数据包平均到达时间间隔,Bn为第n个数据包到达后的缓存大小;
步骤4’:接下来的时间分为两段,第一段对应于缓存中的数据量Bn,第二段对应于后面到达的数据包,比较Bn与的大小,若则表示第一段具有更小的传输速率,不需要合并两段,接下来的传输速率为并转至步骤6’,否则,执行步骤5’;
步骤5’:合并两段并计算出接下来的传输速率其中,为估计出的还未到达的数据包的数目,代表向下取整,为数据包平均到达时间间隔;
步骤6’:按传输速率Ron传输缓存中的数据,直至第n+1个数据包到达或缓存变空;
其中,每个数据包的到达时刻tn及大小ln在相应数据包到达之前是未知的,最开始只有数据包平均到达时间间隔d,平均大小l,以及截止时刻T是已知的。
上述方法是针对的在线模式下的数据包传输调度,即每个数据包的到达时刻tn及大小ln在相应的数据包到达前是未知的,只有数据包平均到达时间间隔平均大小以及截止时刻T在最开始是已知的。在在线模式下,数据包的分段和传输是同时进行的。
本发明的基于前向阀门的数据包传输调度方法中,对于不同的数据包到达状态,乘/除法计算次数也不相同。不过,对于第一次循环,如果进入步骤5’,涉及的乘/除法计算次数最多,即为3次,所以N个数据包传输调度最多需要3N次乘/除法运算,因此计算复杂度仍可表示为O(N),复杂度低。
具体算法程序如表2所示:
表2
对于不同的数据包到达状态,在线模式下的前向阀门算法的乘/除法计算次数也不相同。不过,对于第一次循环,如果进入表2中合并两段的步骤(第二个else),涉及的乘/除法计算次数最多,即为3次,所以N个数据包传输调度最多需要3N次乘/除法运算,因此计算复杂度仍可表示为O(N)。当然,这只是本发明的一种算法实现方式,还可以采用其他算法来实现。
与上述方法对应的,本发明提供一种基于前向阀门的数据包传输调度装置,包括:
循环模块,用于将n从1遍历到N,同时执行时间模块、第一比较模块、第二比较模块、传输段合并模块和传输模块,其中,n为待处理的数据包的序号,N为数据包的总数;
时间模块,用于当第n个数据包到达后,计算出剩余时间dr=T-tn,其中,T为截止时刻,tn为第n个数据包到达的时刻;
第一比较模块,用于比较dr与的大小,若则预计没有新的数据包要传输了,接下来的传输速率为Ron=Bn/dr,并转至传输模块,否则,执行第二比较模块,其中,为数据包平均到达时间间隔,Bn为第n个数据包到达后的缓存大小;
第二比较模块,用于将接下来的时间分为两段,第一段对应于缓存中的数据量Bn,第二段对应于后面到达的数据包,比较Bn与的大小,若则表示第一段具有更小的传输速率,不需要合并两段,接下来的传输速率为并转至传输模块,否则,执行传输段合并模块;
传输段合并模块,用于合并两段并计算出接下来的传输速率其中,为估计出的还未到达的数据包的数目,代表向下取整,为数据包平均到达时间间隔;
传输模块,用于按传输速率Ron传输缓存中的数据,直至第n+1个数据包到达或缓存变空。
本发明的基于前向阀门的数据包传输调度装置中,对于不同的数据包到达状态,在线模式下的前向阀门装置的乘/除法计算次数也不相同。不过,对于第一次循环,如果进入传输段合并模块,涉及的乘/除法计算次数最多,即为3次,所以N个数据包传输调度最多需要3N次乘/除法运算,因此计算复杂度仍可表示为O(N),复杂度低。
无论是离线模式还是在线模式,本发明在关于数据包传输领域带来两方面有益效果,一方面实现了最低能耗传输,另一方面保证了较低复杂度。现举例说明,图7给出了单位比特传输能耗比较(其中最低能耗传输是指本发明的基于前向阀门的数据包传输调度方法以及现有技术二的方法),相关条件设置为:信道带宽B为1.4MHz,噪声功率谱密度N0为-174dBm/Hz,传输路径长度为S=1000m,路径损耗为λ=28.6+35log10S dB,数据包按泊松过程到达,数据包大小均匀分布在0.5Kbyte至1.5Kbyte之间,考虑的时间长度T为10s。可以看到,随着包数目的增加,单位比特的能耗也增加。不过,在各种数据包数目的情况下,相对于现有技术一,本发明的基于前向阀门的数据包传输调度方法,在离线及在线模式下均可大大降低能耗(也与现有技术二具有相同的能耗效果)。
现有技术二及本发明的基于前向阀门的数据包传输调度方法都能实现最低能耗传输,但本发明具有更低的计算复杂度。图8给出了在不同数据包数目下的乘/除法运算次数,从中可以看出本发明的基于前向阀门的数据包传输调度方法在计算复杂度上的优越性。
进一步的,基于前向阀门的数据包传输调度装置为具有无线通信功能的智能设备,包括但不限于PC、手机或平板电脑等。
本发明的基于前向阀门的数据包传输调度装置可以是任何具有无线通信功能的智能设备,包括但不限于PC、手机或平板电脑等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。