本发明涉及控制技术,尤其涉及一种网络编码转发速率在线控制方法及装置。
背景技术:
网络编码指,允许网络中间转发节点将接收的数据分组进行编码转发。其中,就随机网络编码而言,它是一种分布式算法,每个节点均随机选取编码系数对数据分组进行编码,并将得到的编码分组重新编码,继续向下游节点发送。当目的节点接收到足够多线性无关的编码分组后,即可解码出原始数据分组。随着技术的演进,通过将机会路由和随机网络编码有效结合,提出了经典的路由协议more。其后,基于随机网络编码的路由协议得到了广泛关注和研究,将其应用于手机自组网将有助于改善网络吞吐量以及可靠性等性能。
现有反馈机制作为对基于随机网络编码的路由协议设计不可或缺的技术,源节点或者中间转发节点可以利用反馈信息获取其他节点的接收状态并由此决定自身的转发状态,实现对中间节点转发速率的控制。
采用现有反馈机制,存在的问题是:在各类基于捎带反馈的转发速率控制方法中,目的节点并不发送任何独立的反馈信息,源节点或者中间节点开始下一批次的分组传输时并不能确定所有目的节点或者其下游节点已经收到了足够多的当前批次的编码分组。基于捎带反馈的协议虽然数据发送的速率不会被某些目的节点拖慢,但其无法保证传输的可靠性;此外,这种反馈方式的反馈计算复杂度比较高,对节点的计算能力和速度要求高,不太适合应用于智能手机之类的移动设备。
技术实现要素:
有鉴于此,本发明实施例希望提供一种网络编码转发速率在线控制方法及装置,至少解决了现有技术存在的问题,具备传输可靠性,计算复杂度低,对节点的计算能力和速度要求不高,适用于智能手机之类的移动设备。
本发明实施例的技术方案是这样实现的:
本发明实施例的一种网络编码转发速率在线控制方法,所述方法包括:
中间转发节点接收到上游节点发送的第一数据分组,对所述第一数据分组重新编码,按照预设的网络编码转发速率转发编码处理后得到的第二数据分组;
监控网络的平均吞吐量的变化,源节点根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,得到调整后的网络编码转发速率,使中间转发节点根据调整后的网络编码转发速率执行数据分组的转发处理。
上述方案中,所述中间转发节点接收到上游节点发送的第一数据分组,对所述第一数据分组重新编码,包括:
所述中间转发节点每收到来自其上游节点的线性无关的第一数据分组,且仅当其下游节点未收到所述第一数据分组时,对所述第一数据分组重新编码并转发所述编码处理后得到的第二数据分组。
上述方案中,所述方法包括:
计算初始转发信用值;
根据所述初始转发信用值得到所述预设的网络编码转发速率。
上述方案中,所述计算初始转发信用值,包括:
根据公式
根据公式
根据公式
根据
其中,lj为中间转发节点应当转发的分组个数,tj为实际转发的分组个数,rj为实际接收到的分组个数,cj为初始转发信用值;εij表征节点i和j间的链路丢失概率。
上述方案中,所述根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,包括:
根据所述网络的平均吞吐量的变化周期性计算调整后的转发信用值,根据调整后的转发信用值对所述预设的网络编码转发速率进行调整。
上述方案中,所述根据所述网络的平均吞吐量的变化周期性计算调整后的转发信用值,包括:
根据公式
本发明实施例的一种网络编码转发速率在线控制装置,所述装置包括:
编码单元,用于在中间转发节点接收到上游节点发送的第一数据分组,对所述第一数据分组重新编码,按照预设的网络编码转发速率转发编码处理后得到的第二数据分组;
监控调整单元,用于监控网络的平均吞吐量的变化,在源节点根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,得到调整后的网络编码转发速率,使中间转发节点根据调整后的网络编码转发速率执行数据分组的转发处理。
上述方案中,所述编码单元,进一步用于:
在所述中间转发节点每收到来自其上游节点的线性无关的第一数据分组,且仅当其下游节点未收到所述第一数据分组时,对所述第一数据分组重新编码并转发所述编码处理后得到的第二数据分组。
上述方案中,所述装置还包括:
信用值计算单元,用于计算初始转发信用值;
转发速率确定单元,用于根据所述初始转发信用值得到所述预设的网络编码转发速率。
上述方案中,所述信用值计算单元,进一步用于:
根据公式
根据公式
根据公式
根据
其中,lj为中间转发节点应当转发的分组个数,tj为实际转发的分组个数,rj为实际接收到的分组个数,cj为初始转发信用值;εij表征节点i和j间的链路丢失概率。
上述方案中,所述根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,包括:
根据所述网络的平均吞吐量的变化周期性计算调整后的转发信用值,根据调整后的转发信用值对所述预设的网络编码转发速率进行调整。
上述方案中,所述监控调整单元,进一步用于:
根据公式
本发明实施例的网络编码转发速率在线控制方法,包括:中间转发节点接收到上游节点发送的第一数据分组,对所述第一数据分组重新编码,按照预设的网络编码转发速率转发编码处理后得到的第二数据分组;监控网络的平均吞吐量的变化,源节点根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,得到调整后的网络编码转发速率,使中间转发节点根据调整后的网络编码转发速率执行数据分组的转发处理。采用本发明实施例, 具备传输可靠性,计算复杂度低,对节点的计算能力和速度要求不高,适用于智能手机之类的移动设备。
附图说明
图1为本发明实施例一的实现流程示意图;
图2为本发明实施例二的实现流程示意图;
图3为采用现有技术和应用本发明实施例的网络吞吐量性能对比示意图;
图4为采用现有技术和应用本发明实施例的能效性能对比示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述。
实施例一:
本发明实施例的一种网络编码转发速率在线控制方法,如图1所示,所述方法包括:
步骤101、中间转发节点接收到上游节点发送的第一数据分组,对所述第一数据分组重新编码,按照预设的网络编码转发速率转发编码处理后得到的第二数据分组。
这里,预设的网络编码转发速率是由初始转发信用值决定的,因此,本步骤具体为:计算初始转发信用值;根据所述初始转发信用值得到所述预设的网络编码转发速率后,再按照预设的网络编码转发速率转发编码处理后得到的第二数据分组。
这里,计算初始转发信用值,包括以下内容:
根据公式
根据公式
根据公式
根据
其中,lj为中间转发节点应当转发的分组个数,tj为实际转发的分组个数,rj为实际接收到的分组个数,cj为初始转发信用值;εij表征节点i和j间的链路丢失概率。
步骤102、监控网络的平均吞吐量的变化,源节点根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,得到调整后的网络编码转发速率,使中间转发节点根据调整后的网络编码转发速率执行数据分组的转发处理。
实施例二:
本发明实施例的一种网络编码转发速率在线控制方法,如图2所示,所述方法包括:
步骤201、中间转发节点每收到来自其上游节点的线性无关的第一数据分组,且仅当其下游节点未收到所述第一数据分组时,对所述第一数据分组重新编码,按照预设的网络编码转发速率转发编码处理后得到的第二数据分组。
这里,预设的网络编码转发速率是由初始转发信用值决定的,因此,本步骤具体为:计算初始转发信用值;根据所述初始转发信用值得到所述预设的网络编码转发速率后,再按照预设的网络编码转发速率转发编码处理后得到的第二数据分组。
这里,计算初始转发信用值,包括以下内容:
根据公式
根据公式
根据公式
根据
其中,lj为中间转发节点应当转发的分组个数,tj为实际转发的分组个数,rj为实际接收到的分组个数,cj为初始转发信用值;εij表征节点i和j间的链路丢失概率。
步骤202、监控网络的平均吞吐量的变化,源节点根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,得到调整后的网络编码转发速率。
这里,本步骤具体为:根据所述网络的平均吞吐量的变化周期性计算调整后的转发信用值,根据调整后的转发信用值对所述预设的网络编码转发速率进行调整,以得到调整后的网络编码转发速率。
这里,根据公式
这里,调整策略至少包括:第一周期用初始转发信用值;从第二周期开始调整转发信用值,节点根据反馈分组的时延变化来判断吞吐量的变化。如果当前周期内平均吞吐量下降,表明转发信用值当前周期内调整过度,应减小所述调整参数值的大小;如果当前周期内平均吞吐量相比上一周期上升,说明继续增加参数值大小,吞吐量还可能继续上升。每次调整步长均为δr。这里需要指出的是,转发信用值表示的是转发的分组与接收的分组之间的比值。所以,转发信用值越大,节点要转发的分组数目越多。因此,当统计的吞吐量下降时,说明转发速率过高,因此,降低转发信用值,反之,则增大。无论是降低还是增大,都是按照调整步长δr进行调整。
步骤203、使中间转发节点根据调整后的网络编码转发速率执行数据分组的转发处理。
实施例三:
本发明实施例的一种网络编码转发速率在线控制装置,其特征在于,所述装置包括:
编码单元,用于在中间转发节点接收到上游节点发送的第一数据分组,对所述第一数据分组重新编码,按照预设的网络编码转发速率转发编码处理后得到的第二数据分组;
监控调整单元,用于监控网络的平均吞吐量的变化,在源节点根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,得到调整后的网络编码转发速率,使中间转发节点根据调整后的网络编码转发速率执行数据分组的转发处理。
在本发明实施例一实施方式中,所述编码单元,进一步用于:在所述中间转发节点每收到来自其上游节点的线性无关的第一数据分组,且仅当其下游节点未收到所述第一数据分组时,对所述第一数据分组重新编码并转发所述编码处理后得到的第二数据分组。
在本发明实施例一实施方式中,所述装置还包括:信用值计算单元,用于计算初始转发信用值;及转发速率确定单元,用于根据所述初始转发信用值得到所述预设的网络编码转发速率。
在本发明实施例一实施方式中,所述信用值计算单元,进一步用于:根据公式
在本发明实施例一实施方式中,所述根据所述网络的平均吞吐量的变化周期性对所述预设的网络编码转发速率进行调整,包括:根据所述网络的平均吞吐量的变化周期性计算调整后的转发信用值,根据调整后的转发信用值对所述预设的网络编码转发速率进行调整。
在本发明实施例一实施方式中,所述监控调整单元,进一步用于:根据公 式
以一个现实应用场景为例对本发明实施例阐述如下:
在手机自组网场景中,应用本发明实施例,具体是适用于手机自组网的网络编码转发速率在线控制策略所形成的技术方案,不是采用捎带反馈的思想,而是基于独立反馈的思路,即目的节点会向源节点发送独立的反馈报文,源节点根据由目的节点反馈时延变化而引起的网络吞吐量变化,告知中间转发节点改变其转发速率。本方案简单易行,非常适合在智能手机等移动设备上使用,相比其他的一些基于独立反馈的转发速率控制策略,本发明在网络吞吐量等性能方面也获得了一定的提升。
采用现有技术不适用于这个应用场景,现有技术中,基于随机网络编码的路由协议中,依靠反馈信息实现对中间节点的转发速率控制是减少冗余传输的关键所在。根据是否发送独立的反馈信息,现有的转发速率控制策略可以分为2大类:基于独立反馈的策略和基于捎带反馈的策略。
其中,第一:基于独立反馈的策略
在独立反馈机制中,当目的节点解码出原始分组时,其发送反馈信息至源节点;中间转发节点仅对接收分组进行再一次编码转发,并不处理反馈信息的内容,只有源节点接收反馈信息并处理。more首先采用了基于独立反馈的转发速率控制策略。由于节点计算和存储能力有限等原因,源节点提前将需要发送的数据流等分为多个批次分组,目的节点只有解码出当前批次的原始分组才发送反馈信息至源节点。在协议运行中,源节点将持续发送当前批次的编码分组,直至收到所有目的节点对当前批次的反馈。每当源节点接收到一个目的节点的反馈时,源节点更新转发节点及其转发信用值,实现对转发节点及其转发速率的控制。但是,如果反馈信息不能及时到达源节点,源节点在等待反馈信息的同时,势必继续发送冗余分组。基于独立反馈的转发速率控制策略,方法简单且实现简易,但在网络负载较重时,独立发送的反馈信息必将占用本来就紧张的信道资源,造成反馈不及时的问题,拖慢其他目的节点乃至整个网络的 数据接收。
第二:基于捎带反馈的策略
在捎带反馈机制中,节点不发送单独的反馈信息,反馈信息往往包含在数据包的头部。codecast协议首先采用了基于零空间向量(nsb)的反馈方式,每个数据包头部中包含其编码向量。上游节点根据接收数据包中编码向量与本地数据包中编码向量的相乘结果,判断是否向下游节点继续发送新的编码分组。目的节点解码出当前批次的原始分组时并不发送独立反馈信息至源节点,源节点开始下一批次的分组传输时并不依赖目的节点的反馈信息。codecast虽然提高了数据交付率,但无法保证可靠传输。尽管ccack和oncr对nsb反馈机制做出改进,但目前的研究仅限于单播业务,能否应用于组播尚不清楚,同时,这种策略的计算复杂度比较高,对节点的计算能力和速度要求高,可扩展性较差。
采用现有技术,由于基于捎带反馈的策略计算复杂度比较高,不太适合在智能手机之类的移动设备上使用,而且在网络负载较重的时候,现有的基于独立反馈的策略无法很好地适应环境,从而导致反馈时延过大,最终影响网络的吞吐量等性能。
基于随机网络编码的路由协议中,转发速率由转发信用值决定,中间节点只根据已计算好的转发信用值转发数据分组,转发速率并不随网络性能(如吞吐量)的变化作出改变。然而,在一定范围内吞吐量会随着随节点转发速率的降低而增大,故而中间节点转发速率有必要随吞吐量变化作出适当调整。在手机自组网场景中,应用本发明实施例,源节点是可以根据网络的平均吞吐量的变化周期性调整中间节点的转发速率,具体描述如下,适用于手机自组网的网络编码转发速率在线控制方法,可以包括以下内容。
一,计算初始转发信用值
假设中间节点j应当转发lj个编码分组,实际转发tj个编码分组,实际接收rj个编码分组;i>j表示节点i为节点j的上游节点,i<j表示节点i为节点j的下 游节点;εij表征节点i和j间的链路丢失概率。
中间节点每收到来自其上游节点的线性无关数据分组,当且仅当其下游节点未收到该分组时,重新编码转发数据分组。先考虑源节点发送单个数据分组的情况。那么,根据假设,节点j收到来自其上游节点的数据分组个数为∑i>jti(1-εij);其下游节点未收到该数据分组的概率为∏k<jεjk。因此,节点j需要转发的分组个数可定义为lj:
特别的,源节点ls=1。由于是不可靠链路,为保证至少有一个下游节点能够接收到数据分组,其概率为(1-∏k<jεjk),那么,每个中间节点实际转发的分组个数为:
节点j实际接收到的分组个数为:
定义转发信用值为实际转发分组个数与实际接收分组个数的比值。
二,调整转发信用值
假设调整参数为r,则调整后信用值为cj:
第一个周期节点按预先计算好的转发信用值转发数据分组,从第二周期开始调整转发信用值。节点根据反馈分组的时延变化来判断吞吐量的变化,如果当前周期内平均吞吐量下降,表明转发信用值当前周期内调整过度,应减小调整参数值大小;如果当前周期内平均吞吐量相比上一周期上升,说明继续增加参数值大小,吞吐量还可能继续上升。每次调整步长均为δr。
如图3所示为网络吞吐量性能图,如图4所示为能效性能图(使用总转发 次数表示能效性能),可以看出:转发次数越多,能效性能越低。图3-4中,more为采用现有技术得到的取值和仿真结果,采用olrc为采用本发明实施例得到的取值和仿真结果。可见,本应用场景采用本发明实施例,充分考虑了网络负载比较重的时候数据流量会影响反馈信息的时延从而影响网络编码的性能,提出了一种网络编码转发速率在线控制方法,相比more协议,获得了10%的能效性能增益与19%的吞吐量性能增益。
本发明实施例所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
相应的,本发明实施例还提供一种计算机存储介质,其中存储有计算机程序,该计算机程序用于执行本发明实施例的一种网络编码转发速率在线控制方法。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。