CN102104446B - 编码包转发方法、编码包接收处理方法和转发节点 - Google Patents
编码包转发方法、编码包接收处理方法和转发节点 Download PDFInfo
- Publication number
- CN102104446B CN102104446B CN 201110047869 CN201110047869A CN102104446B CN 102104446 B CN102104446 B CN 102104446B CN 201110047869 CN201110047869 CN 201110047869 CN 201110047869 A CN201110047869 A CN 201110047869A CN 102104446 B CN102104446 B CN 102104446B
- Authority
- CN
- China
- Prior art keywords
- group coding
- coding coefficient
- forward node
- encoded packets
- coefficient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0076—Distributed coding, e.g. network coding, involving channel coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0097—Relays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例提供编码包转发方法、编码包接收处理方法和转发节点。转发节点获取来自上游转发节点的新颖编码包,随机生成第一组编码系数和第二组编码系数,采用第一组编码系数对一个或一个以上新颖编码包进行编码,获取一个再编码编码包,根据再编码编码包、第一组编码系数和第二组编码系数生成转发编码包并广播给其它转发节点,以使上游转发节点根据第一组编码系数和第二组编码系数更新存储的反馈矩阵,下游转发节点根据第一组编码系数更新存储的编码矩阵。采用本发明提供的编码包转发方法、编码包接收处理方法和转发节点,节省了正交向量计算所需的大量计算过程,从而降低了功率损耗。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及编码包转发方法、编码包接收处理方法和转发节点。
背景技术
目前,网状网络的应用越来越广泛。在网状网络中,常采用基于网络编码的机会路由协议,源节点首先将编码包发送给第一节点组,从该节点组中选出第一最优节点,该第一最优节点作为转发节点,把该编码包广播给第二节点组,然后再从第二节点组中选取第二最优节点,该第二最优节点作为转发节点,把该编码包广播给第三节点组,如此重复直到目的节点接收到该编码包。
采用上述基于网络编码的机会路由协议,转发节点对编码包进行转发时采用累计编码反馈(Cumulative Coded Acknowledgments,简称CCACK)方法。转发节点中的下游转发节点计算与收到的所有编码向量均正交的正交向量,将该正交向量反馈给转发节点中的上游转发节点,该上游转发节点根据该正交向量与新颖编码包的编码向量进行线性相关性分析,将线性无关的编码包进行再编码并发送。
采用现有的编码包转发方法,转发节点计算与收到的所有编码向量均正交的正交向量的过程需要的计算量大,消耗的功率损耗大。
发明内容
本发明实施例提供编码包转发方法、编码包接收处理方法和转发节点,用以解决现有技术中的缺陷,降低功率损耗。
本发明实施例提供一种编码包转发方法,包括:
获取来自上游转发节点的一个或一个以上新颖编码包;
随机生成第一组编码系数和第二组编码系数;
采用所述第一组编码系数对所述一个或一个以上新颖编码包进行编码,获取一个再编码编码包;
根据所述一个再编码编码包、所述第一组编码系数和所述第二组编码系数生成转发编码包并广播给一个以上转发节点,以使上游转发节点根据所述第一组编码系数和第二组编码系数更新存储的反馈矩阵,下游转发节点根据所述第一组编码系数更新存储的编码矩阵。
本发明实施例提供一种编码包接收处理方法,包括:
获取转发编码包,所述转发编码包包括:再编码编码包、第一组编码系数和第二组编码系数,所述第一组编码系数为所述再编码编码包的编码系数;
当所述转发编码包来自下游转发节点时,根据所述第一组编码系数和第二组编码系数更新存储的反馈矩阵;
当所述转发编码包来自上游转发节点时,根据所述第一组编码系数更新存储的编码矩阵。
本发明实施例还提供一种转发节点,包括:
获取模块,用于获取来自上游转发节点的一个或一个以上新颖编码包;
编码系数生成模块,用于随机生成第一组编码系数和第二组编码系数;
再编码模块,用于采用所述第一组编码系数对所述一个或一个以上新颖编码包进行编码,获取一个再编码编码包;
转发编码包生成模块,用于根据所述一个再编码编码包、所述第一组编码系数和所述第二组编码系数生成转发编码包;
发送模块,用于将所述转发编码包广播给一个以上转发节点,以使上游转发节点根据所述第一组编码系数和第二组编码系数更新存储的反馈矩阵,下游转发节点根据所述第一组编码系数更新存储的编码矩阵。
本发明实施例还提供一种转发节点,包括:
获取模块,用于获取转发编码包,所述转发编码包包括:再编码编码包、第一组编码系数和第二组编码系数,所述第一组编码系数为所述再编码编码包的编码系数;
第一控制模块,用于当所述转发编码包来自下游转发节点时,根据所述第一组编码系数和第二组编码系数更新存储的反馈矩阵;
第二控制模块,用于当所述转发编码包来自上游转发节点时,根据所述第一组编码系数更新存储的编码矩阵。
由上述技术方案可知,本发明实施例通过在转发编码包中加入随机生成的第一组编码系数和第二组编码系数,使得上游转发节点根据第一组编码系数和第二组编码系数更新反馈矩阵,通过该反馈矩阵更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包,因此,以在转发编码包中加入一组编码系数的方式对新颖编码包进行调整,替代了现有技术中计算与收到的所有编码向量均正交的正交向量的方式,节省了正交向量计算所需的大量计算过程,从而降低了功率损耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的编码包转发方法的流程图;
图2为本发明实施例二的编码包接收处理方法的流程图;
图3为本发明实施例三的编码包接收处理方法的流程图;
图4为本发明实施例四的转发节点的结构示意图;
图5为本发明实施例五的转发节点的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一的编码包转发方法的流程图。在本发明实施例一中,对于转发节点作为发送方所执行的方法流程进行说明。如图1所示,该方法包括如下过程。
步骤101:转发节点获取来自上游转发节点的一个或一个以上新颖编码包。
步骤102:转发节点随机生成第一组编码系数和第二组编码系数。
步骤103:转发节点采用第一组编码系数对一个或一个以上新颖编码包进行编码,获取一个再编码编码包。
步骤104:转发节点根据再编码编码包、第一组编码系数和第二组编码系数生成转发编码包并广播给一个以上转发节点,以使上游转发节点根据所述第一组编码系数和第二组编码系数更新存储的反馈矩阵,下游转发节点根据所述第一组编码系数更新存储的编码矩阵。
在上述技术方案的基础上,步骤101具体可以包括如下过程。首先,转发节点获取来自上游转发节点的转发编码包。该来自上游转发节点的转发编码包包括:来自上游转发节点的再编码编码包、来自上游转发节点的第一组编码系数和来自上游转发节点的第二组编码系数,该来自上游转发节点的第一组编码系数为所述来自上游转发节点的再编码编码包的编码系数。然后,转发节点判断该来自上游转发节点的第一组编码系数与转发节点自身存储的编码矩阵的线性相关性,当无关时,根据该来自上游转发节点的第一组编码系数解码该来自上游转发节点的再编码编码包,获取该来自上游转发节点的第一组编码系数对应的来自上游转发节点的一个或一个以上新颖编码包。
上述本发明实施例一的一种具体实现方式如下。
在转发节点中设置缓存,用于存储编码矩阵、反馈矩阵和新颖编码包,其中,编码矩阵中的每个元素对应一个新颖性编码包。当一个转发节点需要将编码包转发给其它转发节点时,执行上述步骤101至步骤104。
在上述步骤101中,转发节点根据存储的编码矩阵,从存储的新颖编码包中获取编码矩阵对应的一个或一个以上新颖编码包。以根据编码矩阵获取三个新颖性编码包为例,分别以A、B、C表示该三个新颖性编码包。
在上述步骤102中,转发节点随机生成第一组编码系数和第二组编码系数。以(a,b,c)表示第一组编码系数,以(a’,b’,c’)表示第二组编码系数。
在上述步骤103中,转发节点采用第一组编码系数对一个或一个以上新颖编码包进行编码,获取一个再编码编码包。具体地,采用(a,b,c)对A、B、C进行编码,获取再编码编码包aA+bB+cC。
在上述步骤104中,转发节点根据再编码编码包、第一组编码系数和第二组编码系数生成转发编码包并广播给一个以上转发节点。采用广播方式,本转发节点的上游转发节点以及下游转发节点都有可能获取到该转发编码包,在该转发编码包广播后,如果上游转发节点偷听到该转发编码包,则上游转发节点根据第一组编码系数和第二组编码系数更新存储的反馈矩阵;如果下游转发节点接收到该转发编码包,则下游转发节点根据第一组编码系数更新存储的编码矩阵。生成转发编码包的具体方法为:将一个再编码编码包、第一组编码系数、第二组编码系数和包头进行封装,生成转发编码包。具体地,将再编码编码包aA+bB+cC、第一组编码系数(a,b,c)、第二组编码系数(a’,b’,c’)以及包头封装在一起,生成一个新的编码包作为转发编码包。转发节点将该转发编码包广播给其它的一个以上转发节点。
在本发明实施例一中,转发节点作为发送方,其生成的转发编码包中除了包括第一组编码系数和再编码编码包,还包括随机生成的第二组编码系数,使得上游转发节点可以根据第一组编码系数和第二组编码系数更新反馈矩阵,通过该反馈矩阵更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包,因此,以在转发编码包中加入一组编码系数的方式对新颖编码包进行调整,替代了现有技术中计算与收到的所有编码向量均正交的正交向量的方式,因此节省了正交向量计算所需的大量计算过程,从而降低了功率损耗。
图2为本发明实施例二的编码包接收处理方法的流程图。在本发明实施例二中,对于转发节点作为接收方所执行的方法流程进行说明。在本发明实施例二中,在转发节点中设置缓存,用于存储编码矩阵、反馈矩阵和新颖编码包,其中,编码矩阵中的每个元素对应一个新颖性编码包。如图2所示,该方法包括如下过程。
步骤201:本转发节点获取转发编码包。转发编码包包括:再编码编码包、第一组编码系数和第二组编码系数,其中,第一组编码系数为再编码编码包的编码系数。
步骤202:当转发编码包来自下游转发节点时,本转发节点根据第一组编码系数和第二组编码系数更新存储的反馈矩阵。当转发编码包来自上游转发节点时,本转发节点根据第一组编码系数更新存储的编码矩阵。
在本发明实施例二中,转发节点作为接收方,其接收的来自其它转发节点的转发编码包中除了包括第一组编码系数和再编码编码包,还包括随机生成的第二组编码系数。如果该转发编码包来自下游转发节点,则根据第一组编码系数和第二组编码系数更新反馈矩阵,通过该反馈矩阵更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包,如果该转发编码包来自上游转发节点,则根据第一组编码系数更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包。因此,以在转发编码包中加入一组编码系数的方式对新颖编码包进行调整,替代了现有技术中计算与收到的所有编码向量均正交的正交向量的方式,因此节省了正交向量计算所需的大量计算过程,从而降低了功率损耗。
图3为本发明实施例三的编码包接收处理方法的流程图。在本发明实施例三中,在转发节点中设置缓存,用于存储编码矩阵、反馈矩阵和新颖编码包,其中,编码矩阵中的每个元素对应一个新颖性编码包。如图3所示,该方法包括如下过程。
步骤301:本转发节点获取转发编码包。转发编码包包括:再编码编码包、第一组编码系数和第二组编码系数,其中,第一组编码系数为再编码编码包的编码系数。
在本步骤中,本转发节点可以通过接收上游转发节点广播的转发编码包,或者,本转发节点也可以通过偷听下游转发节点广播的转发编码包来获取转发编码包。以本转发节点接收到的转发编码包为本发明实施例一的具体实现方式中记载的转发编码包为例,该转发编码包包括:再编码编码包aA+bB+cC、第一组编码系数(a,b,c)、第二组编码系数(a’,b’,c’)和包头。
步骤302:本转发节点判断获取的转发编码包来自上游转发节点或下游转发节点。如果来自下游转发节点,执行步骤311;如果来自上游转发节点,执行步骤321。
步骤311:本转发节点判断第一组编码系数与存储的反馈矩阵的线性相关性。如果相关,执行步骤312;如果无关,执行步骤313。
在本步骤中,判断第一组编码系数与存储的反馈矩阵的线性相关性时,具体可以采用现有技术中的任何线性相关性判断方法,一种较佳的实施方式为采用高斯消元法,即,将第一组编码系数(a,b,c)与反馈矩阵进行高斯消元。
步骤312:本转发节点丢弃第一组编码系数(a,b,c)。然后执行步骤314。
步骤313:本转发节点将第一组编码系数加入反馈矩阵。在步骤313之后,可以仅执行步骤314,还可以在执行步骤314的同时执行步骤317。
在本步骤中,将第一组编码系数(a,b,c)加入反馈矩阵。因为对反馈矩阵进行了修改,因此需要重新对反馈矩阵与编码矩阵进行线性相关性分析,并且,由于后续步骤中还有可能根据第二组编码系数修改反馈矩阵,所以该线性相关性分析的步骤可以在步骤313之后立即执行,也可以等待一下的步骤314至步骤316之后再执行。
步骤314:本转发节点判断第二组编码系数与反馈矩阵的线性相关性。如果相关,执行步骤315;如果无关,执行步骤316。
在本步骤中,判断第二组编码系数与存储的反馈矩阵的线性相关性时,具体可以采用现有技术中的任何线性相关性判断方法,一种较佳的实施方式为采用高斯消元法,即,将第二组编码系数(a’,b’,c’)与反馈矩阵进行高斯消元。
步骤315:本转发节点丢弃第二组编码系数(a’,b’,c’)。
在本步骤之后,虽然没有根据第二组编码系数对反馈矩阵进行修改,但是在前述步骤中,有可能根据第二组编码系数对反馈矩阵进行了修改,因此在本步骤之后,有可能需要重新对反馈矩阵与编码矩阵进行线性相关性分析。具体地,在步骤315之后,如果前述步骤是由步骤313进入步骤314的,并且在步骤313之后没有执行步骤317,则可以在步骤315之后执行步骤317。如果前述步骤是由步骤312进入步骤314的,或者,虽然前述步骤是由步骤313进入步骤314的,但是在步骤313之后已经执行步骤317,则在步骤315之后不执行步骤317,结束流程。
步骤316:本转发节点将第二组编码系数加入反馈矩阵。然后执行步骤317。
在本步骤中,将第二组编码系数(a’,b’,c’)加入反馈矩阵。因为对反馈矩阵进行了修改,因此需要重新对反馈矩阵与编码矩阵进行线性相关性分析,因此继续执行后续步骤317。
步骤317:本转发节点判断编码矩阵中的每一个编码向量与反馈矩阵的线性相关性。如果相关,执行步骤318;如果无关,保持编码矩阵不变。
步骤318:本转发节点从编码矩阵中删除该编码向量,并删除存储的该编码向量对应的新颖编码包。在步骤318之后,因为对编码矩阵中的编码向量进行了删除,则还可以进一步执行步骤319。
步骤319:本转发节点判断编码矩阵是否为空,如果为空,停止向其它转发节点发送转发编码包;如果不为空,不停止向其它转发节点发送转发编码包。
步骤321:本转发节点判断第一组编码系数与存储的编码矩阵的线性相关性,如果相关,执行步骤322;如果无关,执行步骤323。
在本步骤中,判断第一组编码系数与存储的编码矩阵的线性相关性时,具体可以采用现有技术中的任何线性相关性判断方法,一种较佳的实施方式为采用高斯消元法,即,将第一组编码系数(a,b,c)与编码矩阵进行高斯消元。
步骤322:本转发节点丢弃第一组编码系数(a,b,c)。
步骤323:本转发节点将第一组编码系数(a,b,c)加入编码矩阵。在步骤323之后,还可以进一步执行步骤324。
步骤324:本转发节点根据第一组编码系数(a,b,c)解码再编码编码包aA+bB+cC,获取并存储第一组编码系数(a,b,c)对应的一个或一个以上新颖编码包A、B、C。
在本发明实施例三中,转发节点作为接收方。如果接收的转发编码包来自下游转发节点,则根据第一组编码系数和第二组编码系数与反馈矩阵进行线性相关性分析,更新反馈矩阵,并通过该反馈矩阵更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包。如果接收的转发编码包来自上游转发节点,则根据第一组编码系数与编码矩阵进行线性相关性分析,更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包。因此,以在转发编码包中加入一组编码系数的方式对新颖编码包进行调整,替代了现有技术中计算与收到的所有编码向量均正交的正交向量的方式,因此节省了正交向量计算所需的大量计算过程,从而降低了功率损耗。
在以上的实施例一至三中,仅分别以转发节点作为发送方或接收方的其中一方为例,对转发节点的处理流程进行了说明,在实际应用中,每个转发节点既作为接收方又作为发送方,同时执行上述实施例一至三中所记载的方法。在此情况下,实施例一中记载的步骤101的具体过程可以包括实施例三中的步骤301至步骤302和步骤321至步骤324,采用上述步骤替代步骤101,在上述步骤之后执行步骤102。
图4为本发明实施例四的转发节点的结构示意图。如图4所示,该转发节点至少包括:获取模块41、编码系数生成模块42、再编码模块43、转发编码包生成模块44和发送模块45。
其中,获取模块41用于获取来自上游转发节点的一个或一个以上新颖编码包。编码系数生成模块42用于随机生成第一组编码系数和第二组编码系数。再编码模块43用于采用第一组编码系数对一个或一个以上新颖编码包进行编码,获取一个再编码编码包。转发编码包生成模块44用于根据一个再编码编码包、第一组编码系数和第二组编码系数生成转发编码包。发送模块45用于将转发编码包广播给一个以上转发节点,以使上游转发节点根据第一组编码系数和第二组编码系数更新存储的反馈矩阵,下游转发节点根据第一组编码系数更新存储的编码矩阵。
在上述技术方案的基础上,进一步地,获取模块41具体用于获取来自上游转发节点的转发编码包。该来自上游转发节点的转发编码包包括:来自上游转发节点的再编码编码包、来自上游转发节点的第一组编码系数和来自上游转发节点的第二组编码系数,该来自上游转发节点的第一组编码系数为该来自上游转发节点的再编码编码包的编码系数。获取模块41还具体用于判断该来自上游转发节点的第一组编码系数与存储的编码矩阵的线性相关性,当无关时,根据该来自上游转发节点的第一组编码系数解码来自上游转发节点的再编码编码包,获取该来自上游转发节点的第一组编码系数对应的来自上游转发节点的一个或一个以上新颖编码包。
在上述技术方案的基础上,进一步地,该转发编码包生成模块44具体用于将一个再编码编码包、第一组编码系数、第二组编码系数和包头封装为转发编码包。
在本发明实施例四中,转发节点作为发送方转发节点,转发编码包生成模块生成的转发编码包中除了包括编码系数生成模块生成的第一组编码系数和再编码模块生成的再编码编码包,还包括编码系数生成模块随机生成的第二组编码系数,使得上游转发节点可以根据第一组编码系数和第二组编码系数更新反馈矩阵,通过该反馈矩阵更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包,因此节省了现有技术中正交向量计算所需的大量计算过程,从而降低了功率损耗。
图5为本发明实施例五的转发节点的结构示意图。如图5所示,该转发节点至少包括:获取模块51、第一控制模块52和第二控制模块53。
其中,获取模块51用于获取转发编码包。该转发编码包包括:再编码编码包、第一组编码系数和第二组编码系数,其中,第一组编码系数为再编码编码包的编码系数。第一控制模块52用于当转发编码包来自下游转发节点时,根据第一组编码系数和第二组编码系数更新存储的反馈矩阵。第二控制模块53,用于当转发编码包来自上游转发节点时,根据第一组编码系数更新存储的编码矩阵。
在上述技术方案的基础上,进一步地,获取模块51具体用于接收上游转发节点广播的转发编码包。或者,获取模块51具体用于偷听下游转发节点广播的转发编码包。
在上述技术方案的基础上,进一步地,第一控制模块52具体用于判断第一组编码系数与存储的反馈矩阵的线性相关性,如果相关,丢弃第一组编码系数,如果无关,将第一组编码系数加入反馈矩阵。第一控制模块52还具体用于判断第二组编码系数与反馈矩阵的线性相关性,如果相关,丢弃第二组编码系数,如果无关,将第二组编码系数加入反馈矩阵。
在上述技术方案的基础上,进一步地,第一控制模块52还用于判断编码矩阵中的每一个编码向量与反馈矩阵的线性相关性,如果相关,从编码矩阵中删除该编码向量,删除存储的该编码向量对应的新颖编码包。
在上述技术方案的基础上,进一步地,第一控制模块52还用于判断编码矩阵是否为空,如果为空,停止发送转发编码包。
在上述技术方案的基础上,进一步地,第二控制模块53具体用于判断第一组编码系数与存储的编码矩阵的线性相关性,如果相关,丢弃第一组编码系数,如果无关,将第一组编码系数加入编码矩阵。
在上述技术方案的基础上,进一步地,第二控制模块53还用于根据第一组编码系数解码再编码编码包,获取并存储第一组编码系数对应的一个或一个以上新颖编码包。
在本发明实施例五中,转发节点作为接收方转发节点,获取模块获取的来自其它转发节点的转发编码包中除了包括第一组编码系数和再编码编码包,还包括随机生成的第二组编码系数。如果该转发编码包来自下游转发节点,则第一控制模块根据第一组编码系数和第二组编码系数更新反馈矩阵,通过该反馈矩阵更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包,如果该转发编码包来自上游转发节点,则第二控制模块根据第一组编码系数更新编码矩阵,从而根据该编码矩阵选择下一次转发的新颖编码包。因此,以在转发编码包中加入一组编码系数的方式对新颖编码包进行调整,替代了现有技术中计算与收到的所有编码向量均正交的正交向量的方式,因此节省了正交向量计算所需的大量计算过程,从而降低了功率损耗。
在以上的实施例四和实施例五中,仅分别以转发节点作为发送方转发节点或接收方转发节点的其中一方为例,对转发节点的组成结构进行了说明,在实际应用中,每个转发节点可以既作为接收方转发节点又作为发送方转发节点,同时具备上述实施例四和实施例五中所记载的组成结构,在此情况下,实施例四中记载的获取模块41可以被实施例五中的获取模块51结合第二控制模块53替代。
上述本发明实施例记载的技术方案中,采用累计反馈确认(CumulativeFeedback Acknowledgments,简称CFACK)的转发方法,其路由寻址与其它机会路由协议相同,即:对于一个给定的目标节点,所有节点向前发送的优先级依据发送一个包到目标节点的传输次数的期望(Expect,简称ETX)值的升序排列由高到低。作为转发节点的优先级越高越好。在本发明实施例中,转发节点的优先级可以采用任何度量值,一种优选实现方案中采用ETX[3]值作为度量值,还可以采用吞吐量作为度量值。为了避免太多的转发节点导致通信介质的竞争太激烈,在本发明实施例中可以限制转发节点的数目,例如转发节点的数目最多为8个。与其它的基于网络编码的机会路由方案类似,本发明实施例的技术方案中,采用的是基于块的流内随机线性编码。其中每个编码块的大小为32个包。随机线性编码的编码系数取自28大小的伽罗瓦域。为了解决节点应该发送多少编码包的问题,本发明实施例的技术方案中源节点和每个转发节点维护两个编码向量矩阵,即:编码矩阵和反馈矩阵,其中,编码矩阵里面存放来自上游节点的新颖编码包的编码向量,反馈矩阵里面存放来自下游节点的线性无关的编码向量。每个节点还同时维护一个缓存用来存储尚未被确认的编码包。缓存中的编码包与编码矩阵中的编码向量有一一对应关系。
采用本发明实施例的技术方案,在实验中随机生成110个拓扑,每个拓扑运行12次,记录每个协议在每个拓扑上每次运行的吞吐量,并求平均吞吐量。实验结果表明,本发明实施例提出的CFACK的性能优于现有技术中CCACK的性能。具体地,CCACK和CFACK的中位数吞吐量分别为49.526KBps和82.254KBps。CCACK在所有110场景中发包次数都多于预测的次数。实际发包数目基本都是预测数目的两倍,有的时候甚至达到了6至7倍。其原因在于,CCACK不能直接判断编码包之间的线性关系,因此导致发送许多不必要的编码包。而CFACK在所有场景的发包数目都少于CCACK,在大部分场景,CFACK的发包数目都跟预测值比较靠近,在一些场景中甚至会低于预测值。
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种编码包转发方法,其特征在于,包括:
获取来自上游转发节点的转发编码包,所述来自上游转发节点的转发编码包包括:来自上游转发节点的再编码编码包、来自上游转发节点的第一组编码系数和来自上游转发节点的第二组编码系数,所述来自上游转发节点的第一组编码系数为所述来自上游转发节点的再编码编码包的编码系数;判断所述来自上游转发节点的第一组编码系数与存储的编码矩阵的线性相关性,当无关时,根据所述来自上游转发节点的第一组编码系数解码所述来自上游转发节点的再编码编码包,获取所述来自上游转发节点的第一组编码系数对应的来自上游转发节点的一个或一个以上新颖编码包;
随机生成第一组编码系数和第二组编码系数;
采用所述随机生成的第一组编码系数对所述一个或一个以上新颖编码包进行编码,获取一个再编码编码包;
根据所述一个再编码编码包、所述随机生成的第一组编码系数和所述随机生成的第二组编码系数生成转发编码包并广播给一个以上转发节点,以使上游转发节点根据所述随机生成的第一组编码系数和随机生成的第二组编码系数更新存储的反馈矩阵,下游转发节点根据所述随机生成的第一组编码系数更新存储的编码矩阵。
2.根据权利要求1所述的方法,其特征在于,所述根据所述一个再编码编码包、所述随机生成的第一组编码系数和所述随机生成的第二组编码系数生成转发编码包包括:
将所述一个再编码编码包、所述随机生成的第一组编码系数、所述随机生成的第二组编码系数和包头封装为所述转发编码包。
3.一种编码包接收处理方法,其特征在于,包括:
获取转发编码包,所述转发编码包包括:再编码编码包、第一组编码系数和第二组编码系数,所述第一组编码系数为所述再编码编码包的编码系数;
当所述转发编码包来自下游转发节点时,判断所述第一组编码系数与存储的反馈矩阵的线性相关性,如果相关,丢弃所述第一组编码系数,如果无关,将所述第一组编码系数加入所述反馈矩阵;判断所述第二组编码系数与所述反馈矩阵的线性相关性,如果相关,丢弃所述第二组编码系数,如果无关,将所述第二组编码系数加入所述反馈矩阵;
当所述转发编码包来自上游转发节点时,判断所述第一组编码系数与存储的编码矩阵的线性相关性,如果相关,丢弃所述第一组编码系数,如果无关,将所述第一组编码系数加入所述编码矩阵。
4.根据权利要求3所述的方法,其特征在于,所述获取转发编码包包括:
接收上游转发节点广播的转发编码包;
或,偷听下游转发节点广播的转发编码包。
5.根据权利要求3所述的方法,其特征在于,所述将所述第一组编码系数加入所述反馈矩阵之后,和/或,所述将所述第二组编码系数加入所述反馈矩阵之后,该方法还包括:
判断所述编码矩阵中的每一个编码向量与所述反馈矩阵的线性相关性,如果相关,从所述编码矩阵中删除该编码向量,删除存储的该编码向量对应的新颖编码包。
6.根据权利要求5所述的方法,其特征在于,所述从所述编码矩阵中删除该编码向量之后,该方法还包括:
判断所述编码矩阵是否为空,如果为空,停止发送转发编码包。
7.根据权利要求3所述的方法,其特征在于,所述将所述第一组编码系数加入所述编码矩阵之后,该方法还包括:
根据所述第一组编码系数解码所述再编码编码包,获取并存储所述第一组编码系数对应的一个或一个以上新颖编码包。
8.一种转发节点,其特征在于,包括:
获取模块,用于获取来自上游转发节点的转发编码包;所述来自上游转发节点的转发编码包包括:来自上游转发节点的再编码编码包、来自上游转发节点的第一组编码系数和来自上游转发节点的第二组编码系数,所述来自上游转发节点的第一组编码系数为所述来自上游转发节点的再编码编码包的编码系数;所述获取模块还具体用于判断所述来自上游转发节点的第一组编码系数与存储的编码矩阵的线性相关性,当无关时,根据所述来自上游转发节点的第一组编码系数解码所述来自上游转发节点的再编码编码包,获取所述来自上游转发节点的第一组编码系数对应的来自上游转发节点的一个或一个以上新颖编码包;
编码系数生成模块,用于随机生成第一组编码系数和第二组编码系数;
再编码模块,用于采用所述随机生成的第一组编码系数对所述一个或一个以上新颖编码包进行编码,获取一个再编码编码包;
转发编码包生成模块,用于根据所述一个再编码编码包、所述随机生成的第一组编码系数和所述随机生成的第二组编码系数生成转发编码包;
发送模块,用于将所述转发编码包广播给一个以上转发节点,以使上游转发节点根据所述随机生成的第一组编码系数和随机生成的第二组编码系数更新存储的反馈矩阵,下游转发节点根据所述随机生成的第一组编码系数更新存储的编码矩阵。
9.根据权利要求8所述的转发节点,其特征在于,
所述转发编码包生成模块具体用于将所述一个再编码编码包、所述随机生成的第一组编码系数、所述随机生成的第二组编码系数和包头封装为所述转发编码包。
10.一种转发节点,其特征在于,包括:
获取模块,用于获取转发编码包,所述转发编码包包括:再编码编码包、第一组编码系数和第二组编码系数,所述第一组编码系数为所述再编码编码包的编码系数;
第一控制模块,用于当所述转发编码包来自下游转发节点时,判断所述第一组编码系数与存储的反馈矩阵的线性相关性,如果相关,丢弃所述第一组编码系数,如果无关,将所述第一组编码系数加入所述反馈矩阵;判断所述第二组编码系数与所述反馈矩阵的线性相关性,如果相关,丢弃所述第二组编码系数,如果无关,将所述第二组编码系数加入所述反馈矩阵;
第二控制模块,用于当所述转发编码包来自上游转发节点时,判断所述第一组编码系数与存储的编码矩阵的线性相关性,如果相关,丢弃所述第一组编码系数,如果无关,将所述第一组编码系数加入所述编码矩阵。
11.根据权利要求10所述的转发节点,其特征在于,
所述获取模块具体用于接收上游转发节点广播的转发编码包;
或,所述获取模块具体用于偷听下游转发节点广播的转发编码包。
12.根据权利要求10所述的转发节点,其特征在于,
所述第一控制模块还用于判断所述编码矩阵中的每一个编码向量与所述反馈矩阵的线性相关性,如果相关,从所述编码矩阵中删除该编码向量,删除存储的该编码向量对应的新颖编码包。
13.根据权利要求12所述的转发节点,其特征在于,
所述第一控制模块还用于判断所述编码矩阵是否为空,如果为空,停止发送转发编码包。
14.根据权利要求10所述的转发节点,其特征在于,
所述第二控制模块还用于根据所述第一组编码系数解码所述再编码编码包,获取并存储所述第一组编码系数对应的一个或一个以上新颖编码包。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110047869 CN102104446B (zh) | 2011-02-28 | 2011-02-28 | 编码包转发方法、编码包接收处理方法和转发节点 |
PCT/CN2011/083534 WO2012116564A1 (zh) | 2011-02-28 | 2011-12-06 | 编码包转发方法、编码包接收处理方法和转发节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110047869 CN102104446B (zh) | 2011-02-28 | 2011-02-28 | 编码包转发方法、编码包接收处理方法和转发节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102104446A CN102104446A (zh) | 2011-06-22 |
CN102104446B true CN102104446B (zh) | 2013-01-30 |
Family
ID=44157000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110047869 Expired - Fee Related CN102104446B (zh) | 2011-02-28 | 2011-02-28 | 编码包转发方法、编码包接收处理方法和转发节点 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102104446B (zh) |
WO (1) | WO2012116564A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102104446B (zh) * | 2011-02-28 | 2013-01-30 | 华为技术有限公司 | 编码包转发方法、编码包接收处理方法和转发节点 |
CN105634946B (zh) * | 2016-01-05 | 2018-10-02 | 大连大学 | 卫星网络中基于网络编码的机会路由算法 |
CN108848035A (zh) * | 2018-05-08 | 2018-11-20 | 昆明理工大学 | 一种智能电网中基于部分网络编码的机会路由算法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257366A (zh) * | 2008-03-27 | 2008-09-03 | 华为技术有限公司 | 编解码方法、通讯系统及设备 |
US7501964B2 (en) * | 2007-04-16 | 2009-03-10 | Texas Instruments Incorporated | Entropy coding for digital codecs |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162679B2 (en) * | 2003-12-12 | 2007-01-09 | Analog Devices, Inc. | Methods and apparatus for coding and decoding data using Reed-Solomon codes |
US8453038B2 (en) * | 2009-06-30 | 2013-05-28 | Apple Inc. | Chien search using multiple basis representation |
CN102104446B (zh) * | 2011-02-28 | 2013-01-30 | 华为技术有限公司 | 编码包转发方法、编码包接收处理方法和转发节点 |
-
2011
- 2011-02-28 CN CN 201110047869 patent/CN102104446B/zh not_active Expired - Fee Related
- 2011-12-06 WO PCT/CN2011/083534 patent/WO2012116564A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7501964B2 (en) * | 2007-04-16 | 2009-03-10 | Texas Instruments Incorporated | Entropy coding for digital codecs |
CN101257366A (zh) * | 2008-03-27 | 2008-09-03 | 华为技术有限公司 | 编解码方法、通讯系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102104446A (zh) | 2011-06-22 |
WO2012116564A1 (zh) | 2012-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rossi et al. | SYNAPSE++: Code dissemination in wireless sensor networks using fountain codes | |
US10880202B2 (en) | Joint fountain coding and network coding for loss-tolerant information spreading | |
CN101061659B (zh) | 自适应前向纠错的方法和设备 | |
CN105340208A (zh) | 用于多径流式传输的基于fec的可靠传输控制协议 | |
Apavatjrut et al. | Toward increasing packet diversity for relaying LT fountain codes in wireless sensor networks | |
CN110121851A (zh) | 极化码的增量冗余和变型 | |
CN101826937B (zh) | 适用于下一代移动互联网的链路层差错控制系统及其方法 | |
WO2018183694A1 (en) | System and technique for sliding window network coding-based packet generation | |
CN103650399A (zh) | 纠正数据单元的自适应生成 | |
CN106998242B (zh) | 空间通信分布式动态网络拓扑的不等保护纠删编码方法 | |
CN109347604A (zh) | 一种基于分批稀疏码的多跳网络通信方法和系统 | |
WO2020210779A2 (en) | Coded data chunks for network qualitative services | |
CN102104446B (zh) | 编码包转发方法、编码包接收处理方法和转发节点 | |
US20110051729A1 (en) | Methods and apparatuses relating to pseudo random network coding design | |
JP6487562B2 (ja) | オンデマンドファイル修復のための方法及びシステム | |
JP7282895B2 (ja) | データの再送復号方法、装置、システム及び通信装置 | |
CN101257366B (zh) | 编解码方法、通讯系统及设备 | |
US10523790B2 (en) | System and method of header compression for online network codes | |
US20230422093A1 (en) | Communication Method and Communication Participant | |
JP4722693B2 (ja) | 通信システム | |
CN104660381A (zh) | 通信方法和设备 | |
Hussain et al. | Erasure floor analysis of distributed LT codes | |
CN109495213A (zh) | 一种基于汉明重量编码的广播重传方法及系统 | |
Mahmood et al. | Adaptive random linear network coding with controlled forwarding for wireless broadcast | |
Hansen et al. | When are erasure correcting block codes better than convolutional codes in a multi-hop network? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130130 Termination date: 20160228 |