本发明属于通信技术领域,涉及一种基于卡尔曼滤波的传输时延预测数据调度方法。
背景技术:
目前,针对多路径并行传输模型的研究主要集中在路径集合构建与选择、数据调度、数据重传等方面。李文等利用扩展矢量卡尔曼滤波对每条路径的实时带宽和往返时延进行联合预测,并基于预测结果提出了一种综合考虑发送端未经接收端确认的数据的路径选择算法,仿真表明,该算法能够减轻接收端数据乱序程度;相关学者依据每条路径空闲发送窗口的大小,来进行分组调度,以最小化每条路径发送队列中积压分组的数量;基于传输延迟感知的数据分配算法,改算法根据各条路径的传输延迟比,将待发送的数据分配给各条指定的路径,从而提高网络的整体吞吐性能;杜文峰等提出了基于传输时延预测的数据分配算法,该算法以按序到达为目标,通过对端到端时延进行预测,以减少接收端的乱序;同时,有国外学者为实现负载均衡,提出了一种基于分组到达时间的负载均衡算法atlb(arrival-timematchingload-balancing,atlb),通过估算每条路径的得分,把将要发送的分组分配给得分最小的路径,以保证分组按序到达接收端。liutj等首先建立了一个路径质量评价模型,根据待发数据中最后一个数据块离开发送缓存的时间和最早一个数据块进入发送缓存的时间的差值与发送缓存的大小的比值作为路径质量评价的标准,然后评价结果再与拥塞窗口之积来进行数据调度;prabhavats等提出了最小最大路径时延算法,通过降低时延大的路径选为传输路径的概率,来获取最佳的流量分配;leufy将数据包的加解密、拥塞窗口的大小和往返时延作为关键的动态参数来进行路径选择,最终选择最小时延的路径来发送数据,同时还考虑了路径重传问题。
技术实现要素:
有鉴于此,本发明的目的在于提供一种卡尔曼滤波的传输时延预测数据调度方法,采用卡尔曼滤波理论,对传输时延进行预测,然后利用预测结果,完成数据块在各路径上的分发。
为达到上述目的,本发明提供如下技术方案:
一种基于卡尔曼滤波的传输时延预测数据调度方法,包括以下步骤:
s1:采用卡尔曼滤波理论,对传输时延进行预测;
s2:利用预测结果,完成数据块在各路径上的分发。
进一步,所述步骤s1具体为:
s101:在数据块的头部加上时间戳,记录数据块的发送时间;在多路径并行传输时延估计模型中,网路时延,即端到端时延dnet是指发送端开始发送数据块的第一个字节到接收端接收到该数据包的最后一个字节所需要的时间;发送端等待时延dwait为数据块在发送队列中等待发送的时长,其值为路径发送队列的长度与吞吐量的比值,其中qi是指路径i的队列长度;ti是指路径i上的吞吐量;数据包传输过程中的端到端时延由四个部分组成,分别是:传播时延(propagationdelay)dprop、传输时延(transmissiondelay)dtrans、处理时延(processingdelay)dproc和排队时延(queuingdelay)dque,其中传播时延是指数据包由离开发送端到到达接收端过程中在传输链路上所经历的时间,传输时延是指数据包发送到传输链路上所花费的时间,处理时延是指节点对数据包进行计算处理过程的时延,排队时延是指数据包在节点缓存中等待发送所经历的时间;
s102:采用信号与噪声的状态空间模型,结合前一时刻的估计结果和当前时刻的测量值,来求取当前时刻对系统状态的估计值;利用卡尔曼滤波算法对离散系统的状态进行最优估计,该算法假设离散系统表示成线性随机微分方程的形式:
x(k)=ax(k-1)+bu(k-1)+w(k-1);
而系统状态的测量值为:z(k)=hx(k)+v(k);
x(k)和x(k-1)分别是k时刻和k-1时刻的系统状态,u(k-1)是k-1时刻系统的控制量;a、b均为目标系统的参数,若目标系统是多模型系统,则a和b是矩阵的形式;z(k)是k时刻系统状态的测量值,h是测量系统的参数,若是多测量系统,则h是矩阵的形式;w(k-1)是系统过程的噪声,而v(k)表示测量的噪声,两者均为高斯白噪声,方差分别是q和r;
s103:利用卡尔曼滤波算法对传输时延进行估计;从较长一段时间来看,多路径并行传输系统各条链路上的传输时延是一个相对稳定的值,因此假设端到端的传输时延是一个常量信号与一个高频变化的分量之和,该高频分量是一个高斯白噪声,则传输时延表示为:
x(k)=x(k-1)+w(k-1)
z(k)=x(k)+v(k)
其中,x(k)和z(k)分别表示传输时延的预测值和通过sack报文获得得到的测量值;w(k)代表传输时延的估计高频噪声分量,满足方差为q的标准高斯分布,即w(k)~n(0,q);v(k)表示传输时延测量值的噪声,满足方差为r的标准高斯分布,即v(k)~n(0,r)。
进一步,所述步骤s2具体为:
s201:根据多路径并行传输模型运行原理,发送端根据接收窗口和cwnd窗口的大小,向各路径发送数据块;设通信链路空闲时间为tfree,则发端根据空闲时间预测下一个数据块到达接收端的时间tarrive,并在预测时间最短的路径上分配一个最大传输单元(maxmiumtransmissionunit,mtu)的数据块:tarrive=tfree+dnet
分发完该数据块后,发送端更新通信链路重新进入空闲时间tnew_free、待发送数据量以及cwnd大小:tfree_new=tfree_old+d'trans;
s202:此过程循环进行,直到接收窗口或者所有路径的cwnd全部被填满为止,算法结束。
本发明的有益效果在于:本发明针对多路径并行传输中数据包乱序问题,提出一种基于卡尔曼滤波的传输时延预测数据调度算法(transmissiondelaypredictionbasedkalmanfilter,tdp-kf),通过建立时延估计模型,来对数据块到达接收端的时间进行分析、预测,有效减少了接收端数据乱序,提高了cmt传输系统的吞吐性能。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明所述的多路径并行传输时延估计模型;
图2为本发明所述的基于卡尔曼滤波的端到端时延估计;
图3为本发明所述的数据块有序调度过程。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
本发明提供的一种基于卡尔曼滤波的传输时延预测方法,如图1,2所示,需要在数据块的头部加上时间戳,用来记录数据块的发送时间。图1给出了多路径并行传输时延估计模型,其中网路时延,即端到端时延dnet是指发送端开始发送数据块的第一个字节到接收端接收到该数据包的最后一个字节所需要的时间;发送端等待时延dwait为数据块在发送队列中等待发送的时长,其值为路径发送队列的长度与吞吐量的比值,其中qi是指路径i的队列长度;ti是指路径i上的吞吐量。imtiaza指出,数据包传输过程中的端到端时延由四个部分组成,分别是:传播时延(propagationdelay)dprop、传输时延(transmissiondelay)dtrans、处理时延(processingdelay)dproc和排队时延(queuingdelay)dque,其中传播时延是指数据包由离开发送端到到达接收端过程中在传输链路上所经历的时间,传输时延是指数据包发送到传输链路上所花费的时间,处理时延是指节点对数据包进行计算处理过程的时延,排队时延是指数据包在节点缓存中等待发送所经历的时间。
为了评估路径的传输性能,发送端将大小一致的3个数据块放入某一通信链路的发送队列,并设该发送队列初始为空,也即数据块1的等待时延dwait1=0,可以得出该数据块在到达接收端引入的总时延d1为:
d1=dwait+dtrans+dprop+dproc+dque=dwait1+dnet=dnet(1)
其中d取值为rtts/2,之后分析第二个数据块,首先等第一个数据块发送完毕后,才可以发送。因此此过程引入的总时延d2为:
d2=dwait2+dnet=(dwait1+dtrans1)+dnet=dtrans1+dnet(2)
同理,第三个数据块,要等第1,2个数据块发送完后,才可以发送,因此,此时到达接收端引入的总时延d3为:
d3=dwait3+dnet=dtrans1+dtrans2+dnet(3)
因此由上式可知,发送端数据块的传输时延为该路径两个相邻数据块的差值:
由上述的分析可知,该路径发送队列中的第n个数据块需要等前n-1个数据块传输完毕后才能传输,因此可以推出:
若传输数据块固定大小为datachunk,网络吞吐量大小为t,则该路径的传输时延可以表示为:
由上式可知,数据块的传输时延受网络状态的影响,其时延大小在一定范围内动态变化。而本发明获取传输时延的方式,是通过接收端将记录所有通信链路最近一次传输的数据块的发送时间和接收时间,若当前接收的数据块的发送时间与上次接收的数据块的发送时间相同,则认为这两个数据块是同时进入的发送队列,然后根据上述的理论,通过接收端相邻数据块之间的时延差来获得路径传输时延,dtrans=dn-dn-1,并记录下来,接收端将在sack数据块中加入该参数及路径的其他信息反馈给发送端。由于文中在获取传输时延的过程中,忽略了相邻两个数据包之间因网络状态变化而引起的网络时延的变化,因此其测量值与真实值存在一定的误差。基于此,本发明将利用卡尔曼滤波算法对传输时延进行估计,因为卡尔曼滤波器作为一个离散时间线性滤波器,它可以根据线性系统的历史估计数据和系统当前时刻测量数据,对系统状态做出最优估计,即使模型系统不准确的情况下,也可以使用该算法进行预测。因此,本发明利用卡尔曼滤波的最优估计的传输时延d'trans,作为发送端发送队列中每个数据块平均的传输时延,这样可以根据各路径的反馈信息,实时感知路径的传输性能,协助数据调度。因此发送端各路径第n个数据块的等待时延及到达接收端的总时延可以表示为:
本发明利用卡尔曼滤波算法的核心思想是:采用信号与噪声的状态空间模型,结合前一时刻的估计结果和当前时刻的测量值,来求取当前时刻对系统状态的估计值。卡尔曼滤波算法可以对离散系统的状态进行最优估计,该算法假设离散系统可表示成线性随机微分方程的形式:
x(k)=ax(k-1)+bu(k-1)+w(k-1)(8)
而系统状态的测量值可以描述为:
z(k)=hx(k)+v(k)(9)
式(8)和式(9)中,x(k)和x(k-1)分别是k时刻和k-1时刻的系统状态,u(k-1)是k-1时刻系统的控制量。a、b均为目标系统的参数,若目标系统是多模型系统,则a和b是矩阵的形式。z(k)是k时刻系统状态的测量值,h是测量系统的参数,若是多测量系统,则同理h是矩阵的形式。w(k-1)是系统过程的噪声,而v(k)表示测量的噪声,两者均为高斯白噪声,方差分别是q和r。卡尔曼滤波器对于任何满足以上条件的系统来说都是最优的信息处理器,可以估算出系统的最优化输出。
本发明将利用卡尔曼滤波算法对传输时延进行估计。从较长一段时间来看,多路径并行传输系统各条链路上的传输时延是一个相对稳定的值,因此假设端到端的传输时延是一个常量信号与一个高频变化的分量之和,该高频分量是一个高斯白噪声,则传输时延可以用下面的式子表示:
x(k)=x(k-1)+w(k-1)(10)
z(k)=x(k)+v(k)(11)
其中,x(k)和z(k)分别表示传输时延的预测值和通过sack报文获得得到的测量值。w(k)代表传输时延的估计高频噪声分量,满足方差为q的标准高斯分布,即w(k)~n(0,q)。v(k)表示传输时延测量值的噪声,满足方差为r的标准高斯分布,即v(k)~n(0,r)。
基于卡尔曼滤波的时延估计算法可以划分为两个不断循环的阶段:更新时延估计值(预测状态)和更新估计误差(修正状态),两个阶段之间的状态转移过程如图2所示;
卡尔曼滤波算法的两个阶段可以分别用以下两组公式描述:
更新传输时延估计值:
x(k|k-1)=x(k-1|k-1)(12)
p(k|k-1)=p(k-1|k-1)+q(13)
更新估计误差:
x(k|k)=x(k|k-1)+kg(k)(z(k)-x(k|k-1))(15)
p(k|k)=(1-kg(k))p(k|k-1)(16)
更新传输时延估计值阶段根据前一时刻的时延最优估计值和时延估计误差完成对当前时刻的传输时延的先验估计。其中,x(k|k-1)是根据k-1时刻的状态预测得到的k时刻传输时延的先验估计,x(k-1|k-1)是k-1时刻的最优估计。p(k|k-1)是x(k|k-1)对应的估计误差,类似的,p(k-1|k-1)是x(k-1|k-1)对应的估计误差。而更新估计误差阶段根据当前时刻的测量值对先验估计值及其估计误差进行修正,得到当前时刻的时延最优估计值,作为下一次估计的依据。kg为卡尔曼增益(kalmangain),z(k)是k时刻的时延测量值(从sack报文中包含的信息中获取)。
本发明提供的一种基于博弈论和节点分簇的无线传感网能耗均衡方法,如图2所示。
步骤1)根据图3提出的多路径并行传输模型运行原理,发送端根据接收窗口和cwnd窗口的大小,向各路径发送数据块。设通信链路空闲时间为tfree,则发端根据空闲时间预测下一个数据块到达接收端的时间tarrive,并在预测时间最短的路径上分配一个最大传输单元(maxmiumtransmissionunit,mtu)的数据块:
tarrive=tfree+dnet(17)
分发完该数据块后,发送端更新通信链路重新进入空闲时间tnew_free、待发送数据量以及cwnd大小等:
tfree_new=tfree_old+d'trans(18)
此过程循环进行,直到接收窗口或者所有路径的cwnd全部被填满为止,该算法结束。图3给出了具体的数据块调度过程。
其中,分块代表标准的数据块大小为1mtu。为了便于分析问题,发端只接入到两种网络,分别用路径a和b表示。路径a的最优估计传输时延和网络时延分别为d'trans_a和dnet_a;路径b的最优传输时延和网络时延分别为d'trans_b和dnet_b。并设路径a和路径b的cwnd空闲值分别为4mtu和3mtu,且两条路径的初始发送队列均为空,因此当数据调度开始的时候,两条链路的空闲时刻是相等的,均为tfree。同时,为了便于对调度过程的分析,假设路径a和路径b的传输时延最优估计值和网络时延满足如下关系:
数据开始发送后,发端将比较数据块a1和b1到达时间tfree+dnet_a、tfree+dnet_b的大小。由上式(19)可知,发送端将优先给路径b分发一个数据块。利用式(18)更新链路b重新进入空闲的时间tfree_new_b=tfree+d'trans_b,此时路径b的cwnd空闲值变为2mtu。
步骤2)然后,发端再次比较数据块a1与b2的到达时间。此时,数据块a1的到达时间不变,b2的到达时间变为tfree_new_b+dnet_b=tfree+d'trans_b+dnet_b,代入式(19)可知,b2的到达时间为
步骤3)接着,发送端继续比较数据块a2和b2的到达接收端时间,其中数据块a2的到达时间为tfree+d'trans_a+dnet_a,数据块b2的到达时间保持不变,可以得出数据块b2先到达,因此发端将给路径b分配一个数据块,并相应更新路径信息。
步骤4)以照此计算下去,可以得到最终数据分发的结果为b1,a1,b2,b3,a2,b4和a3。而cmt默认的轮询调度算法由于未考虑路径的差异性,其数据块会平均的分配到各路径上,造成接收端数据块的乱序。若采用本发明所提出的基于卡尔曼滤波的传输时延预测数据分发策略,数据块将会按序到达接收端。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。