基于窗机制作用下数据传输的方法

文档序号:7611572阅读:220来源:国知局
专利名称:基于窗机制作用下数据传输的方法
技术领域
本发明涉及数据传输技术,特别是涉及一种基于窗机制作用下数据传输的方法。
背景技术
在数据传输的过程中,经常会遇到传输数据错或未收到所传数据的现象,如此就会影响整个系统的正常工作,为了保证系统的正常工作,一些支持重传机制的系统就采取不断重传同一数据直至收到对端接收数据正确的确认为止。通常在数据传输中,会存在以下几种机制窗机制、确认机制和重传机制。其中,所述窗机制,即滑窗机制,其实现原理就是将接收端和发送端的窗口大小要保持一致。比如,如果发送窗和接受窗配置设置为5,在数据传输过程中,允许发送端发送的数据端最大为5个数据分段,当窗口已发送5个数据分段时,则不允许再发送新的数据分段;而对于接收端来说,最大只能接收5个数据分段。当接收端已接收5个数据段时,则不允许再接收其它的数据段。所述确认机制,就是接收端将得到的确认信息,告知发送端数据报文的接收状态。所述重传机制,发送端通过解析确认信息得到需要重传的数据分段,并对这些数据分段进行重新发送。
由此可知,在数据传输过程中,所述窗机制主要是为了避免循环编号的序列混淆、并限制进入网络的数据量以及告知预留资源量;确认机制主要是为了让发送端得到数据接收的正确错误情况指示;重传机制主要是发送端对未正确接收数据进行重新发送的处理。对于具有以上机制特性的数据传输过程,比如,WCDMA系统中的RLC AM模式,有线传输网中的TCP协议等这些模式中,当窗机制起作用时,对于如何判断窗满的问题,发送端是会纪录发送了多少数据分段,故此,判断发送窗口是否满,只需要根据发送的数据量与窗口设定值比较便可知晓,如果当前发送窗口的数据量等于窗口设定值,则不允许发送新的数据;否则,允许发送端发送新数据。在发送新数据后,发送端只有接收到接收端该数据的确认信息后才能发送下一个新数据;由此可见有效的降低了数据的传输数率。
因此,现有技术的缺点为当发送窗满时,存在一段时间不允许发送端进行数据发送,这样便降低发送端的数据传输效率。

发明内容
本发明解决的技术问题是为了解决窗机制作用下带宽的浪费,在发送窗的数据满或数据较少时,主动对未确认的数据进行选择性发送,而提供一种基于窗机制作用下数据传输的方法,以提高在数据传输过程中发送端的发送效率,并通过重传来提高接收端的接收正确率,从而有效的降低了传输时延。
为解决上述问题,本发明提供一种基于窗机制作用下数据传输的方法,包括步骤设置发送窗占用门限值,并监测发送窗大小和待发送数据;判断发送窗大小是否小于发送窗占用门限值,若否,从发送窗大小中选取未确认的数据进行发送,结束;若是,则执行如下步骤;判断发送窗大小是否小于待发送数据,若否,从待发送数据中选取未确认的数据进行发送(步骤S15),若是,则返回到上述第一个步骤。
所述设置发送窗占用门限值是根据业务的传速速率来确定的。
监测发送窗大小的过程具体为统计发送端未发送的数据量,剔除发送序列中最前面的数据,其统计公式为TxWin=(2n+VT(S)-VT(A))mod 2n其中,TxWin表示发送窗大小,VT(S)表示下一个允许发送的数据序号,VT(A)表示下一个需要确认的数据序号,所述数据序号是按照2n进行循环预留编号,n预留的数据位,mod是取模。
所述待发送数据包括发送缓冲区和重传缓冲区中未确认的数据。
所述从发送窗大小中选取未确认的数据是按照循环调度算法对未确认的数据进行选取的。
所述循环发送调度算法包括步骤确定未确认的数据,并对未确认的数据进行排序以及为其分配调度序号;根据调度序号选取当前未确认的数据进行发送。
所述对未确认的数据进行排序是按照先进先出进行排序的。
所述从待发送的数据中选取未确认的数据是根据交叉选择算法进行选取的。
所述交叉选择算法包括步骤判断发送缓冲区和重传缓冲区是否小于允许发送的数据量,若是,则将所述发送缓冲区和重传缓冲区中的数据全部发送,并跳出选择过程;否则,执行判断发送缓冲区或重传缓冲区的数据是否小于允许发送的数据量/2,若是,则将所述发送缓冲区或重传缓冲区中的数据全部发送,且将剩余的发送空间分配给重传缓冲区或发送缓冲区,否则,再执行判断允许发送的数据量为偶数或奇数,若为偶数,则分别从发送缓冲区或重传缓冲区的序列中选取允许发送的数据量/2个数据发送;若为奇数,则从发送缓冲区或重传缓冲区的序列中选取的数据个数分别为A=(允许发送的数据量-1)/2或B=(允许发送的数据量+1)/2,且选取A和B的数据个数依次轮换。
与现有技术相比,本发明具有以下有益效果本发明在发送窗满或快满时,主动对未确认的数据进行发送,从而解决了现有技术中发送端只有接收到接收端的确认消息后,才能知道需要重传那个数据段,影响了数据的传输,本发明在现有技术的基础上,通过设置发送窗占用门限来提高在数据传输过程中发送端的发送效率,并通过重传来提高接收端的接收正确率,从而有效的降低了传输时延。


图1是现有技术基于窗机制作用下数据传输的方法的原理图;图2是本发明基于窗机制作用下对带宽利用改进地原理图。
图3是图2基于窗机制作用下数据传输的方法的流程图。
图4是本发明中所述交叉选择算法的流程图。
具体实施例方式
请参阅图2,为本发明在窗机制作用下对带宽利用改进的原理图。本发明为了解决窗机制造成带宽的浪费,在数据从发端到收端的传输过程中,通过判断发送窗中的数据是满或者是数据在较少时,对未确认的数据进行选择发送,其中,所述尚未确认的数据包括新数据和需进行重传的数据。也就是通过比较发送窗大小与预先配置的发送窗占用门限的大小,确定是否对发送窗中尚未确认的数据尽可能多地发送,来提高接收端的接收正确率,从而获得更小地传输时延。
请参考图3,为本发明基于窗机制作用下数据传输的方法的流程图,所述方法包括下列步骤步骤S11设置发送窗占用门限值,并确定发送窗大小和待发送的数据;步骤S12判断发送窗大小是否小于发送窗占用门限值,若否,从发送窗中选取尚未确认的数据进行发送(步骤S13),结束;若是,则执行步骤14;步骤S14判断发送窗大小是否小于待发送的数据,若否,从待发送的数据中选取未确认的数据进行发送(步骤S15),若是,返回步骤S11。
在步骤S11中,首先预设发送窗占用门限,通常情况下设置为配置的发送窗大小。不同的业务速率窗口设置不同,基本关系是速率越大窗口也越大。在进行窗口设置时同时还需要考虑对等层的时延,资源预留等问题。
对于发送窗口的设置,我们可以采用仿真或是通过外场测试来获得窗口的设置。目前,由仿真结果表明,发送窗平均占有率大于一定比例将影响端到端的数据传速(比如,当发送窗平均占有率大于40%时,将影响到端到端的数据传输)。当发送窗设置大到一定程度时,发送窗对数据传速将不产生影响。
通过外场测试可参考的经验公式为 其中ηtx_win_thresh为平均的发送窗口占有率的上门限,α为与底层的BLER(误块率)相关的系数。
在数据传输过程中,发送端实时监测发送窗大小TxWin中未确认的数据量,其中,不同的实现机制有不同的监测过程,一种监测发送窗大小的过程为发送端统计未发送的数据量,剔除发送序列中最前面的数据(这只是统计监测发送窗大小有很多方案,这只是其中的一种方案),其统计公式为TxWin=(2n+VT(S)-VT(A))mod 2n其中,TxWin表示发送窗大小,VT(S)表示下一个允许发送的数据序号,VT(A)表示下一个需要确认的数据序号,所述数据序号是按照2n进行循环预留编号,n预留的数据位,(比如2n为4096时为优选实施例),mod是取模。该发送窗大小的设定,其影响因素比较多,特别是在进行该发送窗大小参数的设置时,需要考虑物理层的突发误码率情况以及端到端的时延,而在发送端设置发送窗占用门限的目的就是当发送窗占用门限满或者数据较少时,对于所要发送的数据进行选择性发送,以提高发送端的发送速率以及接收端的接收正确率,从而减少了端到端的传输时延。所述监测发送端待发送数据量DATAin是统计到达发送缓冲区和重传缓冲区的未确认的数据量。
步骤S12中判断发送窗大小是否小于发送窗占用门限,若不小于,则系统按照一定的策略从发送窗中的选取未确认的数据(对已经确认的数据不在选取之列),并对其进行发送(步骤S13)。其中,所述一定的策略可以是循环调度(RR,Round Robin)算法或加权循环调度算法,所述选择加权循环调度算法,是因为在通常情况下,发送窗占满是因为窗移动慢,故此,本发明也可以从不同的权重来选择。现已循环调度算法来说明本发明。
所述循环调度算法是所有调度算法中最简单也最容易实现的一种方法。在一个任务队列里,队列的每个成员(节点)都具有相同的地位,循环调度算法简单的在这组成员中顺序循环选择。将新的重传请求轮流发给队列中的每一个成员,如此连续、周而复始,每个队列中的成员都在相等的地位下被轮流选择。循环调度算法的活动是可预知的,每个成员被选择的机会都是1/N,因此很容易计算出成员的分布情况。循环调度算法适用于数据传输中所有队列成员的处理能力和性能均相同的情况。在实际应用中,该方法的实现简单有效。其实现过程为先确定未确认的数据,并将其按照先进先出进行排序以及为其分配调度序号;其次,根据调度序号选取当前未确认的数据进行发送。为了便于理解现举例说明。比如,如果某个对象一共有N个队列成员,它们按照先进先出的方式进行排序,并分别赋予了一个调度序号,记作0,1,2,...,(n-2),(n-1);假设当前选取的对象为cur_index,则下将要被选取一个对象为next_index,其计算公式为next_index=mod(cur_index+1,N);(mod表示取模的含义,本例中,即(cur_inde+1)除于N,取余数)。
若小于,即当发送窗大小小于发送窗占用门限时,则执行步骤S14,即判断发送窗大小是否小于待发送的数据,若否,按照一定的策略从发送缓冲区和发送重传缓冲区中选取未确认的数据进行发送(步骤S15),其中,所述选取未确认的数据是按照交叉选择算法来选取的,所述交叉选择算法的流程图详见图4。所述交叉选择算法包括步骤步骤M11判断发送缓冲区和重传缓冲区的总数据是否小于允许发送的数据量,若是,则将所有的数据全部发送,并跳出选择过程(步骤M12);否则,执行步骤M13;步骤M13判断发送缓冲区或重传缓冲区的数据是否小于允许发送的数据量/2,若是,则将所述发送缓冲区或重传缓冲区中的数据全部发送步骤,且将剩余的发送空间分配给重传缓冲区或发送缓冲区(步骤M14),否则,执行步骤(M15);步骤M15判断允许发送的数据量为偶数或奇数时,若为偶数,则分别从发送缓冲区或重传缓冲区的序列中选取允许发送的数据量/2个数据发送(步骤M17);若为奇数,则从发送缓冲区或重传缓冲区的序列中选取的数据个数分别为A=(允许发送的数据量-1)/2或B=(允许发送的数据量+1)/2,且A和B个数据依次轮换选取(步骤M16)。
其实现过程具体为首先,将发送缓冲区(标记为txbuf)和重传缓冲区(标记为retxbuf)的数据按序号顺序或时间先后顺序排序;其次,设置某个时刻发送缓冲区大小(即需要发送的数据总量为Ntx_num个数据);因为,不同的时刻允许发送的数据量tx_num可能不同;再次,判断txbuf和retxbuf的数据总量是否小于发送缓冲区需要发送的数据量tx_num,若是,则将选择所有的数据进行发送,并跳出该选择过程;否则,再判断txbuf或retxbuf的数据量是否小于(tx_num/2)(向下取整),若是,则将txbuf或retxbuf中所有的数据进行发送,且将剩余的发送空间分配给retxbuf或txbuf;否则,再判断允许发送的数据量tx_num为偶数或者奇数,若tx_num为偶数时,则分别从txbuf和retxbuf序列中选取tx_num/2个数据发送;若tx_num为奇数时,则选取的个数分别为A=(tx_num-1)/2和B=(tx_num+1)/2,如果上一次从txbuf选取的个数为A,retxbuf选取的个数为B,则本次将从txbuf选取B个,从retxbuf选取A个。依次轮换。所述上一次,是指上一次发送奇数个数据的发送情况。此外,由于新发数据会使得发送窗大小变大,此时在进行选择时,如果发生发送窗大小到达配置的发送窗,此时,则不再允许发送新的数据,则仅仅发送窗中为得到确认的数据。
若是,即发送窗大小小于待发送的数据,则返回步骤A。
本发明中引入发送窗占用门限WINth的作用主要是使重传算法启动控制更加灵活;在实施过程中不受发送窗口配置不合理的影响;该发送窗占用门限的引入并不是为了期望在窗不满的时候进行该重发策略,而是期望通过该设置该发送窗占用门限参数,更早地对数据进行控制,而不是等到发送窗满时才进行选择发送操作,从而达到了灵活控制该传输算法。
为了避免这种因为参数设置不合理带来的影响,可以考虑将该流程进一步补充。如果发送窗大小TxWin大于等于发送窗占用门限WINth,同时有待发送的新数据,则综合考虑已发数据和待发数据的发送,按一定的策略选择发送。比如,将需重新发送数据和待发送的新数据交替选择发送。从而达到本发明的目的,即提高发送端的发送速率,对未确认的数据通过重传来提高接收端的接收正确率,从而减小了端到端的时延。
在本发明的实现过程中,由于对未确认的数据进行重新发送会带来明显的增益,因此,在发送端和接收端的数据递交时延明显较快,因为,在现有技术中只有等到接收到确认消息后,才能知道需要重新发送哪个数据分段的数据,而本发明在实施过程中,通过判断发送窗中的数据是满或者是数据在较少时,对未确认的数据进行选择发送,从而解决了现有技术中当窗满时,存在一段时间不允许发送端进行数据发送问题。
下面举一应用实例来说明本发明。为了描述的方便,此处仅提供单重传缓冲区有数据的情况。详见表1和表2,分别为本技术的时序图和现有技术的时序图,为了便于说明,假设发送窗大小为2,接收状态序列相同,并假设数据从发送端发出,到达接收端需要经历4个发送时序。当发送时序(1)发送的数据序号为3,在发送时序(5)到达接收端时,详见现表所示表1,本技术方案时序图

表2,现有技术方案时序图


其中,表1和表2中所述注1至注5所表示的意思分别为注1表示接收端检测到数据报文段丢失,触发状态报告(数据序号3丢失,4正确接收);注2表示接收端正确接收到数据序号为3和4的数据;触发状态报告,通知发端所有数据报文已经正确接收;注3表示发送端接收到状态报告,得知需要重传序号为3的数据;注4数据传输完毕;注5表示发送端接收到状态报告,得知需要重传序号为3的数据。
从上述的具体应用实施例的对比中,我们可以看到采用本发明可以有效地缩短数据递交时延。其时间耗时对比表,详见表3表3,时间耗时对比表

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种基于窗机制作用下数据传输的方法,其特征在于,包括A、设置发送窗占用门限值,并监测发送窗大小和待发送数据;B、判断发送窗大小是否小于发送窗占用门限值,若否,从发送窗大小中选取未确认的数据进行发送,结束;若是,则执行步骤C;C、判断发送窗大小是否小于待发送数据,若否,从待发送数据中选取未确认的数据进行发送,若是,则返回步骤A。
2.根据权利要求1所述基于窗机制作用下数据传输的方法,其特征在于,步骤A中所述设置发送窗占用门限值是根据业务的传速速率来确定的。
3.根据权利要求1所述基于窗机制作用下数据传输的方法,其特征在于,步骤A中监测发送窗大小的过程具体为统计发送端未发送的数据量,剔除发送序列中最前面的数据,其统计公式为TxWin=(2n+VT(S)-VT(A))mod 2n其中,TxWin表示发送窗大小,VT(S)表示下一个允许发送的数据序号,VT(A)表示下一个需要确认的数据序号,所述数据序号是按照2n进行循环预留编号,n预留的数据位,mod是取模。
4.根据权利要求3所述基于窗机制作用下数据传输的方法,其特征在于,步骤A中所述待发送数据包括发送缓冲区和重传缓冲区中未确认的数据。
5.根据权利要求4所述基于窗机制作用下数据传输的方法,其特征在于,步骤B中所述从发送窗大小中选取未确认的数据是按照循环调度算法对未确认的数据进行选取的。
6.根据权利要求5所述基于窗机制作用下数据传输的方法,其特征在于,所述循环发送调度算法包括61)确定未确认的数据,并对未确认的数据进行排序以及为其分配调度序号;62)根据调度序号选取当前未确认的数据进行发送。
7.根据权利要求6所述基于窗机制作用下数据传输的方法,其特征在于,步骤61)所述对未确认的数据进行排序是按照先进先出进行排序的。
8.根据权利要求1所述基于窗机制作用下数据传输的方法,其特征在于,步骤C中所述从待发送的数据中选取未确认的数据是根据交叉选择算法进行选取的。
9.根据权利要求8所述基于窗机制作用下数据传输的方法,其特征在于,所述交叉选择算法包括91)判断发送缓冲区和重传缓冲区的数据是否小于允许发送的数据量,若是,则将所述发送缓冲区和重传缓冲区中的数据全部发送,并跳出选择过程;否则,执行步骤92;92)判断发送缓冲区或重传缓冲区的数据是否小于允许发送数的据量/2,若是,则将所述发送缓冲区或重传缓冲区中的数据全部发送,且将剩余的发送空间分配给重传缓冲区或发送缓冲区,否则,执行步骤93;93)判断允许发送数的数据量为偶数或奇数,若为偶数,则分别从发送缓冲区或重传缓冲区的序列中选取允许发送的数据量/2个数据发送;若为奇数,则从发送缓冲区或重传缓冲区的序列中选取的数据个数分别为A=(允许发送数的据量-1)/2或B=(允许发送的数据量+1)/2,且选取A和B的数据个数依次轮换。
全文摘要
本发明涉及一种基于窗机制作用下数据传输的方法,包括A、设置发送窗占用门限值,并实时监测发送窗大小和待发送数据;B、判断发送窗大小是否小于发送窗占用门限值,若否,从发送窗大小中选取未确认的数据进行发送,结束;若是,则执行步骤C;C、判断发送窗大小是否小于待发送数据,若否,从待发送数据中选取未确认的数据进行发送,若是,返回步骤A。本发明以解决窗机制作用下带宽的浪费,而提出在发送窗的数据满或数据较少时,主动对数据进行选择性发送,以提高在数据传输过程中发送端的发送效率,并通过重传来提高接收端的接收正确率,从而有效地降低了端到端的时延。
文档编号H04L1/18GK1815942SQ200510005209
公开日2006年8月9日 申请日期2005年2月1日 优先权日2005年2月1日
发明者吴玉忠, 张劲林 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1