一种结合补偿和前瞻的编码报文自适应重传方法与流程

文档序号:11732714阅读:201来源:国知局
一种结合补偿和前瞻的编码报文自适应重传方法与流程
本发明主要涉及到计算机网络领域,特指一种结合补偿和前瞻的编码报文自适应重传方法。

背景技术:
在过去的几十年里,TCP(TransferControlProtocol)传输协议由于其强大的灵活性以及可靠的传输能力,成为了当今互联网事实上的传输骨干框架。然而TCP在设计之初是基于地面有线数据传输环境特点设计,有线网络非常可靠,误码率非常低以至于可以忽略。TCP协议假设所有丢包都是由于网络拥塞引起的,任何丢包信号的发现都会触发TCP的拥塞控制机制,盲目的降低发送速率,当数据在误码率较高的网络中传输时,这样的行为反而会造成TCP的传输性能下降。已经有数据表明,TCP在误码率较高的无线网络中的性能非常低劣。例如TCP在误码率为2%的IEEE802.11网络中所获得的吞吐量只能达到总带宽的49%,同样情况下TCP在IEEE802.11b网络中只能达到39.1%。又例如TCP在误码率(BitErrorRate,BER)为2%的蜂窝无线网络中只能获得27.3%的吞吐量。TCP在较高误码率网络中性能低劣的问题严重影响了TCP协议在恶劣网络环境中的应用,同时也阻碍了无线网络的进一步普及。因此,如何保证数据误码率较高的链路上可靠安全传输、提高现有网络资源的利用率、优化网络传输性能,已成为当今通信研究的重要课题之一。近年来提出的网络编码技术在有损链路上的可靠传输方面展现了巨大的潜力,特别是将TCP和网络编码相结合时,为数据在有损链路上的可靠传输提供了新的思路和挑战。目前,网络编码与TCP结合方案中目前比较成熟的做法是在TCP层和IP层之间增加一道随机线性网络编码和解码的操作,利用网络编码的信息融合功能和节点的计算能力,有效的屏蔽和处理底层链路损耗造成的丢包。其中最为典型的代表就是2009年MIT的Sundararajan等人提出的TCP/NC协议。由于网络编码解决方案在不破坏TCP端到端语义的同时,对TCP屏蔽了底层链路损耗造成的丢包,使得TCP能够有效的进行拥塞控制和流量控制,并通过编码报文的冗余发送,简单而高效的抵消了由于底层链路误码造成的丢包,使得TCP在有损链路中的传输性能显著提高。在网络编码和TCP相结合的解决方案中,网络编码操作单独的放在一个独立的协议层中,该层位于TCP层和IP层之间,发送端对从TCP接收的segment做缓存,对于每一个从TCP接收到的segment,都会发送R个由编码缓存区中的原始segment组成的线性组合给IP层,在这里R就是一个冗余因子。为了接收端的解码,需要在编码报文的报头中加入解码相关的信息。在接收端,在接收到从发送端发送的编码报文后,首先从编码报文的报头中提取编码系数信息,并保存到解码矩阵中。然后,对解码矩阵采用高斯解码,用以发现报文的可见性和可解码性。最新的可见报文信息,会通过构造一个ACK报文,用于应答发送端,最新的可解码报文则会提交到上层的TCP。如图1所示,即为TCP/NC中编码和解码的例子。由于引入了网络编码技术,发送的报文不再是发送原始的segment,而是发送原始segment的线性组合,由线性代数的基本原理可知,这样的线性组合由于其包含了多个原始segment的信息,故对其包含的所有segment的解码都有意义。故只要通过有效的编码报文重传策略,就可以有效的抵消底层链路损耗造成的丢包,达到屏蔽误码,提高数据传输效率的目的。所以,合适的重传策略就是屏蔽非拥塞丢包的关键。如果R太小,接收端无法接收到足够的线性组合用于解码,非拥塞丢包也就对拥塞控制算法可见了,导致TCP超时和吞吐量下降,如果R设置得太大,丢包是被屏蔽了,可是代价是可能造成链路的拥塞,同样会造成链路吞吐率的下降。在最早的TCP和网络编码相结合的方案TCP/NC中,编码报文的重传策略是自动重传有冗余因子R控制的冗余报文,对于链路丢包率为Pe,编码窗口为W并使用TCPVegas的情况来说,R的理论最优值是1/(1-Pe)。然而,在TCP/NC中R被设置为一个常数,这在实际网络中是不具有实用意义的。因为,首先在某些网络情景中,Pe是难以事先获得的。其次,Pe并不是不变的,通常会随着网络环境的改变而改变。2011年J.Chen等人提出的基于接收端信息反馈的重传策略(FNC),FNC不是提前主动重传冗余报文,而是根据接收端信息反馈调整发送端重传策略。另外还有研究者,仿照TCP-Vegas中的拥塞预测算法,动态调整自动重传报文的冗余度,还有研究者,更加接收端解码信息的反馈预测链路误码率的变化,用于调整自动重传策略。现有技术中的“重传策略”,要么无法根据链路状态的改变动态适应调整,如TCP/NC;要么在出现了解码延时之后才通过被动重传报文的发送补偿已丢失的报文;要么只是简单的根据某一个预测算法,调整自动重传报文的冗余度。在TCP协议和网络编码技术结合后,编码操作可以将报文的重传简化为编码报文的重传,然而,如何根据底层链路误码状态自适应的控制编码报文重传的时机和冗余度,目前尚没有一个完善的解决方案,错误的重传策略无法有效的抵消底层的非拥塞误码,造成数据吞吐率的下降。

技术实现要素:
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、可解决重传发送策略度与链路误码率的匹配问题、可有效提高数据的吞吐率的结合补偿和前瞻的编码报文自适应重传机制。为解决上述技术问题,本发明采用以下技术方案:一种结合补偿和前瞻的编码报文自适应重传方法,其步骤为:(1)、网络编码操作单独的放在一个独立的网络编码层中,即NC层;所述网络编码层位于TCP层和IP层之间;发送端NC层发送由TCP接收的segment组成的线性组合给IP层,接收端NC层将接收到的线性组合解码;(2)、发送端以接受到10个接收端NC层发送的ACK为一个调整/补偿周期,进行补偿重传和前瞻重传冗余度的调整;在接收端反馈的应答报文所包含的信息中加入了Gap值信息,Gap值为解码端NC层解码矩阵中First_Byte_Uninvolved与First_Byte_Unseen的差值;发送端在每一个补偿/调整周期,根据Gap值的大小和Gap值的变化规律分别进行补偿报文的重传以及前瞻重传冗余度R的调整;所述补偿报文的重传为:在每一个补偿/调整期都发送Gap个由发送端NC层编码窗口中的原始报文组成的线性组合,补偿重传是由反馈ACK触发的;所述前瞻重传为:通过Gap值变化情况的统计规律,预测底层链路的误码率变化规律,动态的调整发送端NC层前瞻重传冗余度R。作为本发明的进一步改进:所述反馈ACK的报文结构中,确认字节序号字段值不是在接收端希望接收到的下一字节序列,而是在接收端经过解码之后,第一个不可见报文的初始字节序列号;且在确认字节序号字段后加入了一个4字节的Gap字段。所述步骤(2)中,发送端计数从接收端接收到的反馈ACK的数量,每接收到第十个新的反馈ACK,发送端的NC层进入一个新的补偿/调整周期;在接收到第十个新的反馈ACK之前和发送补偿报文和调整完前瞻重传冗余度R之后,发送端处于探测期;每到一个补偿/调整期,发送端都会根据第十反馈个ACK报文中Gap值的大小,在下个编码报文发送时补偿重传对应数量的编码报文用于加速接收端的解码,同时发送端的NC层根据上个探测周期中接收到的反馈ACK中的Gap值的增长数与接收端感知到冗余报文数量之间的差值,探测底层链路误码丢包率的变化,动态调整主动重传的前瞻重传冗余度R。与现有技术相比,本发明的优点在于:1、本发明是一种基于接收端解码矩阵信息反馈、综合了报文丢失补偿和丢失前瞻预测的自适应重传机制,解决了重传发送策略度与链路误码率的匹配问题。2、本发明将对非拥塞丢包的补偿和对将来链路丢包率的预期相结合,设计了新的自适应重传方法,根据链路状态动态改变重传策略,有效的提高数据的吞吐率。通过接收端解码矩阵中Gap值信息以及接收报文统计信息的反馈,一方面,通过发送重传补偿报文,及时补偿已丢包报文丢接收端解码时延的影响,提高解码速度;另一方面,发送端根据反馈信息的统计,设计了新的链路误码率预测算法,根据链路误码率的预测,将R前瞻调整为一个最优值,主动重传足够的冗余报文,用于抵消非拥塞丢包。本发明通过新的自适应重传策略达到这么一种状态:非拥塞误码被有效的屏蔽,但当拥塞真正发生时,拥塞控制算法又能起作用。当Pe增大,加大冗余报文的发送数量,用于抵消底层的误码丢包。同样的,当拥塞发生了,应当降低冗余度。3、本发明针对编码报文的自适应重传问题,提出一种新的根据接收端信息反馈,结合了对补偿重传和对前瞻主动重传的动态自适应重传方法。新的方法通过接收端信息反馈,得知接收端解码所有报文需要重传的报文数量,通过发送补偿重传报文,加速接收端解码;同时,接收端将链路误码丢包率变化引起在解码端解码矩阵中信息的变化反馈给发送端,发送端变化信息动态调整前瞻主动重传报文的发送,通过补偿重传和前瞻重传的结合,提高了数据传输吞吐效率,具有极强的应用前景。附图说明图1是现有技术的TCP/NC中编码和解码原理示意图。图2是解码矩阵中原始报文状态的示意图。图3是本发明中NC层ACK报文的结构示意图。图4是本发明中接收端应答操作的流程示意图。图5是本发明中进行补偿重传和前瞻重传动态调整的流程示意图。具体实施方式以下将结合说明书附图和具体实施例对本发明做进一步详细说明。本发明的一种结合补偿和前瞻的编码报文自适应重传方法,其步骤为:(1)、网络编码操作单独的放在一个独立的网络编码层(NC层)中,该网络编码层位于TCP层和IP层之间。发送端NC层发送由TCP接收的segment组成的线性组合给IP层,接收端NC层将接收到的线性组合解码。接收端NC层对解码矩阵采用高斯解码,用以更新解码矩阵中所有原始报文的状态,解码端原始报文在解码矩阵中的状态如图2所示。当报文处于可见状态,报文可解码时处于可解码状态。当一个报文处于involved状态,意味着接收端已经接收到包含有该报文的线性组合,但仍然不足以可见;当一个报文处于Uninvolved状态,意味着接收端未接收到包含有该报文的任何线性组合。在接收端解码矩阵中,First_Byte_Uninvolved和First_Byte_Unseen之间的差值就是Gap值。本发明的核心就是通过Gap值的变化以及报文反馈的统计信息动态的自适应调整重传策略。其中,报文的可见性是指:如果一个节点有足够的信息计算出Pk+Q形式的线性组合,那么就说Pk是可见的,在Pk+Q中,Q=∑l>kαlPl,其中对于所有的l>k,都有αl∈Fq,也就是说Q是一个只包含了索引号比k大的报文的线性组合。其中,Pk是第k个原始报文,Q是多个原始报文的线性组合,其所包含的每个原始报文的编号l均大于k,al是Q中所包含原始报文的编码系数,Fq为编码系数的选择范围,是一个随机线性空间。(2)、发送端以接受到10个接收端NC层发送的ACK为一个调整/补偿周期,进行补偿重传和前瞻重传冗余度的调整。另外,本发明扩展了接收端反馈的应答报文所包含的信息,加入了Gap值信息,充分利用在接收端解码过程中由解码矩阵所显示的更多的信息。本发明中发送端在每一个补偿/调整周期,根据Gap值的大小和Gap值的变化规律分别进行补偿报文的重传以及前瞻重传冗余度R的调整。(3)、基于反馈的补偿重传。由线性代数的基本原理可知解码端NC层解码矩阵中First_Byte_Uninvolved与First_Byte_Unseen的差值(也就是Gap),是NC层能够将所有的原始报文解码还缺少的线性组合的数量。本发明在每一个补偿/调整期都发送Gap个由发送端NC层编码窗口中的原始报文组成的线性组合,这些线性组合可以有效的加速接收端的解码速度。另外,还需要指出的,这样的补偿重传是由反馈ACK触发的,不同于TCP/NC等协议基于上层TCP的报文触发发送重传。(4)、基于前瞻预测的自动重传。当发送端的重传策略设置得当时,Gap的值是相对稳定不变的。当链路状态变化或者是重传策略与实际网络中的丢包状况不匹配时,Gap值同样会变化。因此在每一个补偿/调整周期,本发明可以通过Gap值变化情况的统计规律,预测底层链路的误码率变化规律,动态的调整发送端NC层前瞻自动重传的冗余度R,提前屏蔽底层链路的误码丢包。由于R的动态调整依赖于接收端反馈的解码矩阵中的Gap值,故本发明需要重新设计应答报文。如图3所示,为本实施例中,本发明中为了新的链路误码率反馈机制而设计的ACK的报文结构图。与普通TCP报文相比引入了两点不同:首先,确认字节序号字段值不是在接收端希望接收到的下一字节序列,而是根据可见性的概念在接收端经过解码之后,第一个不可见报文的初始字节序列号;其次,在确认字节序号字段后加入了一个4字节的Gap字段,该字段值是当前接收端解码矩阵中First_Byte_Uninvolved与First_Byte_Unseen的差值。如图4所示,为接收端NC层ACK报文生成的流程示意图。本发明实施的关键之一如何根据接收端解码矩阵的变化来反映链路误码丢失率的变化,本发明选取的信息是First_Byte_Uninvolved与First_Byte_Unseen的差值Gap。接收端的NC层每接收到一个线性组合,都运用高斯解码和可见性的概念,更新解码矩阵,并记录下最新的Gap值,并将Gap值填充到ACK报文的对应字段反馈给发送端。另外,如果发送端接收到了无法发现新的可见报文的编码报文,则将该报文标记为冗余报文,并丢弃;同时在ACK报文的Gap字段填上-1,用于反馈给发送端发送了过多的冗余报文。如图5所示,为本发明中发送端NC层自适应重传策略进行动态调整的过程。本发明的发送端计数从接收端接收到的ACK的数量,每接收到第十个新的ACK,发送端的NC层进入一个新的补偿/调整周期;在接收到第十个新的ACK之前和发送补偿报文和调整完主动重传参数R之后,发送端处于探测期。每到一个补偿/调整期,发送端都会根据第十个ACK报文中Gap值的大小,在下个编码报文发送时补偿重传对应数量的编码报文用于加速接收端的解码,同时发送端的NC层根据上个探测周期中接收到的ACK中的Gap值的增长数与接收端感知到冗余报文数量之间的差值,探测底层链路误码丢包率的变化,动态调整主动重传的冗余因子R,实现丢误码丢包的前瞻补偿。图中α,β,μ都小于1。以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1