專利名稱:編碼包轉發(fā)方法、編碼包接收處理方法和轉發(fā)節(jié)點的制作方法
技術領域:
本發(fā)明實施例涉及通信技術,尤其涉及編碼包轉發(fā)方法、編碼包接收處理方法和 轉發(fā)節(jié)點。
背景技術:
目前,網(wǎng)狀網(wǎng)絡的應用越來越廣泛。在網(wǎng)狀網(wǎng)絡中,常采用基于網(wǎng)絡編碼的機會路 由協(xié)議,源節(jié)點首先將編碼包發(fā)送給第一節(jié)點組,從該節(jié)點組中選出第一最優(yōu)節(jié)點,該第一 最優(yōu)節(jié)點作為轉發(fā)節(jié)點,把該編碼包廣播給第二節(jié)點組,然后再從第二節(jié)點組中選取第二 最優(yōu)節(jié)點,該第二最優(yōu)節(jié)點作為轉發(fā)節(jié)點,把該編碼包廣播給第三節(jié)點組,如此重復直到目 的節(jié)點接收到該編碼包。采用上述基于網(wǎng)絡編碼的機會路由協(xié)議,轉發(fā)節(jié)點對編碼包進行轉發(fā)時采用累計 編碼反饋(Cumulative Coded Acknowledgments,簡稱CCACK)方法。轉發(fā)節(jié)點中的下游轉 發(fā)節(jié)點計算與收到的所有編碼向量均正交的正交向量,將該正交向量反饋給轉發(fā)節(jié)點中的 上游轉發(fā)節(jié)點,該上游轉發(fā)節(jié)點根據(jù)該正交向量與新穎編碼包的編碼向量進行線性相關性 分析,將線性無關的編碼包進行再編碼并發(fā)送。采用現(xiàn)有的編碼包轉發(fā)方法,轉發(fā)節(jié)點計算與收到的所有編碼向量均正交的正交 向量的過程需要的計算量大,消耗的功率損耗大。
發(fā)明內容
本發(fā)明實施例提供編碼包轉發(fā)方法、編碼包接收處理方法和轉發(fā)節(jié)點,用以解決 現(xiàn)有技術中的缺陷,降低功率損耗。本發(fā)明實施例提供一種編碼包轉發(fā)方法,包括獲取來自上游轉發(fā)節(jié)點的一個或一個以上新穎編碼包;隨機生成第一組編碼系數(shù)和第二組編碼系數(shù);采用所述第一組編碼系數(shù)對所述一個或一個以上新穎編碼包進行編碼,獲取一個 再編碼編碼包;根據(jù)所述一個再編碼編碼包、所述第一組編碼系數(shù)和所述第二組編碼系數(shù)生成轉 發(fā)編碼包并廣播給一個以上轉發(fā)節(jié)點,以使上游轉發(fā)節(jié)點根據(jù)所述第一組編碼系數(shù)和第二 組編碼系數(shù)更新存儲的反饋矩陣,下游轉發(fā)節(jié)點根據(jù)所述第一組編碼系數(shù)更新存儲的編碼 矩陣。本發(fā)明實施例提供一種編碼包接收處理方法,包括獲取轉發(fā)編碼包,所述轉發(fā)編碼包包括再編碼編碼包、第一組編碼系數(shù)和第二組 編碼系數(shù),所述第一組編碼系數(shù)為所述再編碼編碼包的編碼系數(shù);當所述轉發(fā)編碼包來自下游轉發(fā)節(jié)點時,根據(jù)所述第一組編碼系數(shù)和第二組編碼 系數(shù)更新存儲的反饋矩陣;當所述轉發(fā)編碼包來自上游轉發(fā)節(jié)點時,根據(jù)所述第一組編碼系數(shù)更新存儲的編碼矩陣。本發(fā)明實施例還提供一種轉發(fā)節(jié)點,包括獲取模塊,用于獲取來自上游轉發(fā)節(jié)點的一個或一個以上新穎編碼包;編碼系數(shù)生成模塊,用于隨機生成第一組編碼系數(shù)和第二組編碼系數(shù);再編碼模塊,用于采用所述第一組編碼系數(shù)對所述一個或一個以上新穎編碼包進 行編碼,獲取一個再編碼編碼包;轉發(fā)編碼包生成模塊,用于根據(jù)所述一個再編碼編碼包、所述第一組編碼系數(shù)和 所述第二組編碼系數(shù)生成轉發(fā)編碼包;發(fā)送模塊,用于將所述轉發(fā)編碼包廣播給一個以上轉發(fā)節(jié)點,以使上游轉發(fā)節(jié)點 根據(jù)所述第一組編碼系數(shù)和第二組編碼系數(shù)更新存儲的反饋矩陣,下游轉發(fā)節(jié)點根據(jù)所述 第一組編碼系數(shù)更新存儲的編碼矩陣。本發(fā)明實施例還提供一種轉發(fā)節(jié)點,包括獲取模塊,用于獲取轉發(fā)編碼包,所述轉發(fā)編碼包包括再編碼編碼包、第一組編 碼系數(shù)和第二組編碼系數(shù),所述第一組編碼系數(shù)為所述再編碼編碼包的編碼系數(shù);第一控制模塊,用于當所述轉發(fā)編碼包來自下游轉發(fā)節(jié)點時,根據(jù)所述第一組編 碼系數(shù)和第二組編碼系數(shù)更新存儲的反饋矩陣;第二控制模塊,用于當所述轉發(fā)編碼包來自上游轉發(fā)節(jié)點時,根據(jù)所述第一組編 碼系數(shù)更新存儲的編碼矩陣。由上述技術方案可知,本發(fā)明實施例通過在轉發(fā)編碼包中加入隨機生成的第一組 編碼系數(shù)和第二組編碼系數(shù),使得上游轉發(fā)節(jié)點根據(jù)第一組編碼系數(shù)和第二組編碼系數(shù)更 新反饋矩陣,通過該反饋矩陣更新編碼矩陣,從而根據(jù)該編碼矩陣選擇下一次轉發(fā)的新穎 編碼包,因此,以在轉發(fā)編碼包中加入一組編碼系數(shù)的方式對新穎編碼包進行調整,替代了 現(xiàn)有技術中計算與收到的所有編碼向量均正交的正交向量的方式,節(jié)省了正交向量計算所 需的大量計算過程,從而降低了功率損耗。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根 據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例一的編碼包轉發(fā)方法的流程圖;圖2為本發(fā)明實施例二的編碼包接收處理方法的流程圖;圖3為本發(fā)明實施例三的編碼包接收處理方法的流程圖;圖4為本發(fā)明實施例四的轉發(fā)節(jié)點的結構示意圖;圖5為本發(fā)明實施例五的轉發(fā)節(jié)點的結構示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明實施例一的編碼包轉發(fā)方法的流程圖。在本發(fā)明實施例一中,對于 轉發(fā)節(jié)點作為發(fā)送方所執(zhí)行的方法流程進行說明。如圖1所示,該方法包括如下過程。步驟101 轉發(fā)節(jié)點獲取來自上游轉發(fā)節(jié)點的一個或一個以上新穎編碼包。步驟102 轉發(fā)節(jié)點隨機生成第一組編碼系數(shù)和第二組編碼系數(shù)。步驟103 轉發(fā)節(jié)點采用第一組編碼系數(shù)對一個或一個以上新穎編碼包進行編 碼,獲取一個再編碼編碼包。步驟104 轉發(fā)節(jié)點根據(jù)再編碼編碼包、第一組編碼系數(shù)和第二組編碼系數(shù)生成 轉發(fā)編碼包并廣播給一個以上轉發(fā)節(jié)點,以使上游轉發(fā)節(jié)點根據(jù)所述第一組編碼系數(shù)和第 二組編碼系數(shù)更新存儲的反饋矩陣,下游轉發(fā)節(jié)點根據(jù)所述第一組編碼系數(shù)更新存儲的編 碼矩陣。在上述技術方案的基礎上,步驟101具體可以包括如下過程。首先,轉發(fā)節(jié)點獲取 來自上游轉發(fā)節(jié)點的轉發(fā)編碼包。該來自上游轉發(fā)節(jié)點的轉發(fā)編碼包包括來自上游轉發(fā) 節(jié)點的再編碼編碼包、來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)和來自上游轉發(fā)節(jié)點的第二組 編碼系數(shù),該來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)為所述來自上游轉發(fā)節(jié)點的再編碼編碼 包的編碼系數(shù)。然后,轉發(fā)節(jié)點判斷該來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)與轉發(fā)節(jié)點自 身存儲的編碼矩陣的線性相關性,當無關時,根據(jù)該來自上游轉發(fā)節(jié)點的第一組編碼系數(shù) 解碼該來自上游轉發(fā)節(jié)點的再編碼編碼包,獲取該來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)對 應的來自上游轉發(fā)節(jié)點的一個或一個以上新穎編碼包。上述本發(fā)明實施例一的一種具體實現(xiàn)方式如下。在轉發(fā)節(jié)點中設置緩存,用于存儲編碼矩陣、反饋矩陣和新穎編碼包,其中,編碼 矩陣中的每個元素對應一個新穎性編碼包。當一個轉發(fā)節(jié)點需要將編碼包轉發(fā)給其它轉發(fā) 節(jié)點時,執(zhí)行上述步驟101至步驟104。在上述步驟101中,轉發(fā)節(jié)點根據(jù)存儲的編碼矩陣,從存儲的新穎編碼包中獲取 編碼矩陣對應的一個或一個以上新穎編碼包。以根據(jù)編碼矩陣獲取三個新穎性編碼包為 例,分別以A、B、C表示該三個新穎性編碼包。在上述步驟102中,轉發(fā)節(jié)點隨機生成第一組編碼系數(shù)和第二組編碼系數(shù)。以(a, b,c)表示第一組編碼系數(shù),以(a’,b’,c’)表示第二組編碼系數(shù)。在上述步驟103中,轉發(fā)節(jié)點采用第一組編碼系數(shù)對一個或一個以上新穎編碼包 進行編碼,獲取一個再編碼編碼包。具體地,采用(a,b,c)對A、B、C進行編碼,獲取再編碼 編碼包aA+bB+cC。在上述步驟104中,轉發(fā)節(jié)點根據(jù)再編碼編碼包、第一組編碼系數(shù)和第二組編碼 系數(shù)生成轉發(fā)編碼包并廣播給一個以上轉發(fā)節(jié)點。采用廣播方式,本轉發(fā)節(jié)點的上游轉發(fā) 節(jié)點以及下游轉發(fā)節(jié)點都有可能獲取到該轉發(fā)編碼包,在該轉發(fā)編碼包廣播后,如果上游 轉發(fā)節(jié)點偷聽到該轉發(fā)編碼包,則上游轉發(fā)節(jié)點根據(jù)第一組編碼系數(shù)和第二組編碼系數(shù)更 新存儲的反饋矩陣;如果下游轉發(fā)節(jié)點接收到該轉發(fā)編碼包,則下游轉發(fā)節(jié)點根據(jù)第一組 編碼系數(shù)更新存儲的編碼矩陣。生成轉發(fā)編碼包的具體方法為將一個再編碼編碼包、第一 組編碼系數(shù)、第二組編碼系數(shù)和包頭進行封裝,生成轉發(fā)編碼包。具體地,將再編碼編碼包aA+bB+cC、第一組編碼系數(shù)(a,b,c)、第二組編碼系數(shù)(a’,b’,c’ )以及包頭封裝在一起, 生成一個新的編碼包作為轉發(fā)編碼包。轉發(fā)節(jié)點將該轉發(fā)編碼包廣播給其它的一個以上轉 發(fā)節(jié)點。在本發(fā)明實施例一中,轉發(fā)節(jié)點作為發(fā)送方,其生成的轉發(fā)編碼包中除了包括第 一組編碼系數(shù)和再編碼編碼包,還包括隨機生成的第二組編碼系數(shù),使得上游轉發(fā)節(jié)點可 以根據(jù)第一組編碼系數(shù)和第二組編碼系數(shù)更新反饋矩陣,通過該反饋矩陣更新編碼矩陣, 從而根據(jù)該編碼矩陣選擇下一次轉發(fā)的新穎編碼包,因此,以在轉發(fā)編碼包中加入一組編 碼系數(shù)的方式對新穎編碼包進行調整,替代了現(xiàn)有技術中計算與收到的所有編碼向量均正 交的正交向量的方式,因此節(jié)省了正交向量計算所需的大量計算過程,從而降低了功率損耗。圖2為本發(fā)明實施例二的編碼包接收處理方法的流程圖。在本發(fā)明實施例二中, 對于轉發(fā)節(jié)點作為接收方所執(zhí)行的方法流程進行說明。在本發(fā)明實施例二中,在轉發(fā)節(jié)點 中設置緩存,用于存儲編碼矩陣、反饋矩陣和新穎編碼包,其中,編碼矩陣中的每個元素對 應一個新穎性編碼包。如圖2所示,該方法包括如下過程。步驟201 本轉發(fā)節(jié)點獲取轉發(fā)編碼包。轉發(fā)編碼包包括再編碼編碼包、第一組 編碼系數(shù)和第二組編碼系數(shù),其中,第一組編碼系數(shù)為再編碼編碼包的編碼系數(shù)。步驟202 當轉發(fā)編碼包來自下游轉發(fā)節(jié)點時,本轉發(fā)節(jié)點根據(jù)第一組編碼系數(shù) 和第二組編碼系數(shù)更新存儲的反饋矩陣。當轉發(fā)編碼包來自上游轉發(fā)節(jié)點時,本轉發(fā)節(jié)點 根據(jù)第一組編碼系數(shù)更新存儲的編碼矩陣。在本發(fā)明實施例二中,轉發(fā)節(jié)點作為接收方,其接收的來自其它轉發(fā)節(jié)點的轉發(fā) 編碼包中除了包括第一組編碼系數(shù)和再編碼編碼包,還包括隨機生成的第二組編碼系數(shù)。 如果該轉發(fā)編碼包來自下游轉發(fā)節(jié)點,則根據(jù)第一組編碼系數(shù)和第二組編碼系數(shù)更新反饋 矩陣,通過該反饋矩陣更新編碼矩陣,從而根據(jù)該編碼矩陣選擇下一次轉發(fā)的新穎編碼包, 如果該轉發(fā)編碼包來自上游轉發(fā)節(jié)點,則根據(jù)第一組編碼系數(shù)更新編碼矩陣,從而根據(jù)該 編碼矩陣選擇下一次轉發(fā)的新穎編碼包。因此,以在轉發(fā)編碼包中加入一組編碼系數(shù)的方 式對新穎編碼包進行調整,替代了現(xiàn)有技術中計算與收到的所有編碼向量均正交的正交向 量的方式,因此節(jié)省了正交向量計算所需的大量計算過程,從而降低了功率損耗。圖3為本發(fā)明實施例三的編碼包接收處理方法的流程圖。在本發(fā)明實施例三中, 在轉發(fā)節(jié)點中設置緩存,用于存儲編碼矩陣、反饋矩陣和新穎編碼包,其中,編碼矩陣中的 每個元素對應一個新穎性編碼包。如圖3所示,該方法包括如下過程。步驟301 本轉發(fā)節(jié)點獲取轉發(fā)編碼包。轉發(fā)編碼包包括再編碼編碼包、第一組 編碼系數(shù)和第二組編碼系數(shù),其中,第一組編碼系數(shù)為再編碼編碼包的編碼系數(shù)。在本步驟中,本轉發(fā)節(jié)點可以通過接收上游轉發(fā)節(jié)點廣播的轉發(fā)編碼包,或者,本 轉發(fā)節(jié)點也可以通過偷聽下游轉發(fā)節(jié)點廣播的轉發(fā)編碼包來獲取轉發(fā)編碼包。以本轉發(fā)節(jié) 點接收到的轉發(fā)編碼包為本發(fā)明實施例一的具體實現(xiàn)方式中記載的轉發(fā)編碼包為例,該轉 發(fā)編碼包包括再編碼編碼包aA+bB+cC、第一組編碼系數(shù)(a,b,C)、第二組編碼系數(shù)(a’, b’,c’)和包頭。步驟302:本轉發(fā)節(jié)點判斷獲取的轉發(fā)編碼包來自上游轉發(fā)節(jié)點或下游轉發(fā)節(jié) 點。如果來自下游轉發(fā)節(jié)點,執(zhí)行步驟311 ;如果來自上游轉發(fā)節(jié)點,執(zhí)行步驟321。
步驟311 本轉發(fā)節(jié)點判斷第一組編碼系數(shù)與存儲的反饋矩陣的線性相關性。如 果相關,執(zhí)行步驟312 ;如果無關,執(zhí)行步驟313。在本步驟中,判斷第一組編碼系數(shù)與存儲的反饋矩陣的線性相關性時,具體可以 采用現(xiàn)有技術中的任何線性相關性判斷方法,一種較佳的實施方式為采用高斯消元法,即, 將第一組編碼系數(shù)(a,b,c)與反饋矩陣進行高斯消元。步驟312 本轉發(fā)節(jié)點丟棄第一組編碼系數(shù)(a,b,c)。然后執(zhí)行步驟314。步驟313 本轉發(fā)節(jié)點將第一組編碼系數(shù)加入反饋矩陣。在步驟313之后,可以僅 執(zhí)行步驟314,還可以在執(zhí)行步驟314的同時執(zhí)行步驟317。在本步驟中,將第一組編碼系數(shù)(a,b,c)加入反饋矩陣。因為對反饋矩陣進行了 修改,因此需要重新對反饋矩陣與編碼矩陣進行線性相關性分析,并且,由于后續(xù)步驟中還 有可能根據(jù)第二組編碼系數(shù)修改反饋矩陣,所以該線性相關性分析的步驟可以在步驟313 之后立即執(zhí)行,也可以等待一下的步驟314至步驟316之后再執(zhí)行。步驟314 本轉發(fā)節(jié)點判斷第二組編碼系數(shù)與反饋矩陣的線性相關性。如果相關, 執(zhí)行步驟315 ;如果無關,執(zhí)行步驟316。在本步驟中,判斷第二組編碼系數(shù)與存儲的反饋矩陣的線性相關性時,具體可以 采用現(xiàn)有技術中的任何線性相關性判斷方法,一種較佳的實施方式為采用高斯消元法,即, 將第二組編碼系數(shù)(a’,b’,c’ )與反饋矩陣進行高斯消元。步驟315 本轉發(fā)節(jié)點丟棄第二組編碼系數(shù)(a’,b’,c’ )。在本步驟之后,雖然沒有根據(jù)第二組編碼系數(shù)對反饋矩陣進行修改,但是在前述 步驟中,有可能根據(jù)第二組編碼系數(shù)對反饋矩陣進行了修改,因此在本步驟之后,有可能需 要重新對反饋矩陣與編碼矩陣進行線性相關性分析。具體地,在步驟315之后,如果前述步 驟是由步驟313進入步驟314的,并且在步驟313之后沒有執(zhí)行步驟317,則可以在步驟315 之后執(zhí)行步驟317。如果前述步驟是由步驟312進入步驟314的,或者,雖然前述步驟是由 步驟313進入步驟314的,但是在步驟313之后已經(jīng)執(zhí)行步驟317,則在步驟315之后不執(zhí) 行步驟317,結束流程。步驟316 本轉發(fā)節(jié)點將第二組編碼系數(shù)加入反饋矩陣。然后執(zhí)行步驟317。在本步驟中,將第二組編碼系數(shù)(a’,b’,c’ )加入反饋矩陣。因為對反饋矩陣進 行了修改,因此需要重新對反饋矩陣與編碼矩陣進行線性相關性分析,因此繼續(xù)執(zhí)行后續(xù) 步驟317。步驟317 本轉發(fā)節(jié)點判斷編碼矩陣中的每一個編碼向量與反饋矩陣的線性相關 性。如果相關,執(zhí)行步驟318 ;如果無關,保持編碼矩陣不變。步驟318 本轉發(fā)節(jié)點從編碼矩陣中刪除該編碼向量,并刪除存儲的該編碼向量 對應的新穎編碼包。在步驟318之后,因為對編碼矩陣中的編碼向量進行了刪除,則還可以 進一步執(zhí)行步驟319。步驟319 本轉發(fā)節(jié)點判斷編碼矩陣是否為空,如果為空,停止向其它轉發(fā)節(jié)點發(fā) 送轉發(fā)編碼包;如果不為空,不停止向其它轉發(fā)節(jié)點發(fā)送轉發(fā)編碼包。步驟321 本轉發(fā)節(jié)點判斷第一組編碼系數(shù)與存儲的編碼矩陣的線性相關性,如 果相關,執(zhí)行步驟322 ;如果無關,執(zhí)行步驟323。在本步驟中,判斷第一組編碼系數(shù)與存儲的編碼矩陣的線性相關性時,具體可以采用現(xiàn)有技術中的任何線性相關性判斷方法,一種較佳的實施方式為采用高斯消元法,即, 將第一組編碼系數(shù)(a,b,c)與編碼矩陣進行高斯消元。步驟322 本轉發(fā)節(jié)點丟棄第一組編碼系數(shù)(a,b,c)。步驟323 本轉發(fā)節(jié)點將第一組編碼系數(shù)(a,b,c)加入編碼矩陣。在步驟323之 后,還可以進一步執(zhí)行步驟324。步驟324 本轉發(fā)節(jié)點根據(jù)第一組編碼系數(shù)(a,b,c)解碼再編碼編碼包aA+bB+cC, 獲取并存儲第一組編碼系數(shù)(a,b,c)對應的一個或一個以上新穎編碼包A、B、C。在本發(fā)明實施例三中,轉發(fā)節(jié)點作為接收方。如果接收的轉發(fā)編碼包來自下游轉 發(fā)節(jié)點,則根據(jù)第一組編碼系數(shù)和第二組編碼系數(shù)與反饋矩陣進行線性相關性分析,更新 反饋矩陣,并通過該反饋矩陣更新編碼矩陣,從而根據(jù)該編碼矩陣選擇下一次轉發(fā)的新穎 編碼包。如果接收的轉發(fā)編碼包來自上游轉發(fā)節(jié)點,則根據(jù)第一組編碼系數(shù)與編碼矩陣進 行線性相關性分析,更新編碼矩陣,從而根據(jù)該編碼矩陣選擇下一次轉發(fā)的新穎編碼包。因 此,以在轉發(fā)編碼包中加入一組編碼系數(shù)的方式對新穎編碼包進行調整,替代了現(xiàn)有技術 中計算與收到的所有編碼向量均正交的正交向量的方式,因此節(jié)省了正交向量計算所需的 大量計算過程,從而降低了功率損耗。在以上的實施例一至三中,僅分別以轉發(fā)節(jié)點作為發(fā)送方或接收方的其中一方為 例,對轉發(fā)節(jié)點的處理流程進行了說明,在實際應用中,每個轉發(fā)節(jié)點既作為接收方又作為 發(fā)送方,同時執(zhí)行上述實施例一至三中所記載的方法。在此情況下,實施例一中記載的步驟 101的具體過程可以包括實施例三中的步驟301至步驟302和步驟321至步驟324,采用上 述步驟替代步驟101,在上述步驟之后執(zhí)行步驟102。圖4為本發(fā)明實施例四的轉發(fā)節(jié)點的結構示意圖。如圖4所示,該轉發(fā)節(jié)點至少 包括獲取模塊41、編碼系數(shù)生成模塊42、再編碼模塊43、轉發(fā)編碼包生成模塊44和發(fā)送 模塊45。其中,獲取模塊41用于獲取來自上游轉發(fā)節(jié)點的一個或一個以上新穎編碼包。編 碼系數(shù)生成模塊42用于隨機生成第一組編碼系數(shù)和第二組編碼系數(shù)。再編碼模塊43用于 采用第一組編碼系數(shù)對一個或一個以上新穎編碼包進行編碼,獲取一個再編碼編碼包。轉 發(fā)編碼包生成模塊44用于根據(jù)一個再編碼編碼包、第一組編碼系數(shù)和第二組編碼系數(shù)生 成轉發(fā)編碼包。發(fā)送模塊45用于將轉發(fā)編碼包廣播給一個以上轉發(fā)節(jié)點,以使上游轉發(fā)節(jié) 點根據(jù)第一組編碼系數(shù)和第二組編碼系數(shù)更新存儲的反饋矩陣,下游轉發(fā)節(jié)點根據(jù)第一組 編碼系數(shù)更新存儲的編碼矩陣。在上述技術方案的基礎上,進一步地,獲取模塊41具體用于獲取來自上游轉發(fā)節(jié) 點的轉發(fā)編碼包。該來自上游轉發(fā)節(jié)點的轉發(fā)編碼包包括來自上游轉發(fā)節(jié)點的再編碼編 碼包、來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)和來自上游轉發(fā)節(jié)點的第二組編碼系數(shù),該來 自上游轉發(fā)節(jié)點的第一組編碼系數(shù)為該來自上游轉發(fā)節(jié)點的再編碼編碼包的編碼系數(shù)。獲 取模塊41還具體用于判斷該來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)與存儲的編碼矩陣的線 性相關性,當無關時,根據(jù)該來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)解碼來自上游轉發(fā)節(jié)點 的再編碼編碼包,獲取該來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)對應的來自上游轉發(fā)節(jié)點的 一個或一個以上新穎編碼包。在上述技術方案的基礎上,進一步地,該轉發(fā)編碼包生成模塊44具體用于將一個
10再編碼編碼包、第一組編碼系數(shù)、第二組編碼系數(shù)和包頭封裝為轉發(fā)編碼包。在本發(fā)明實施例四中,轉發(fā)節(jié)點作為發(fā)送方轉發(fā)節(jié)點,轉發(fā)編碼包生成模塊生成 的轉發(fā)編碼包中除了包括編碼系數(shù)生成模塊生成的第一組編碼系數(shù)和再編碼模塊生成的 再編碼編碼包,還包括編碼系數(shù)生成模塊隨機生成的第二組編碼系數(shù),使得上游轉發(fā)節(jié)點 可以根據(jù)第一組編碼系數(shù)和第二組編碼系數(shù)更新反饋矩陣,通過該反饋矩陣更新編碼矩 陣,從而根據(jù)該編碼矩陣選擇下一次轉發(fā)的新穎編碼包,因此節(jié)省了現(xiàn)有技術中正交向量 計算所需的大量計算過程,從而降低了功率損耗。圖5為本發(fā)明實施例五的轉發(fā)節(jié)點的結構示意圖。如圖5所示,該轉發(fā)節(jié)點至少 包括獲取模塊51、第一控制模塊52和第二控制模塊53。其中,獲取模塊51用于獲取轉發(fā)編碼包。該轉發(fā)編碼包包括再編碼編碼包、第一 組編碼系數(shù)和第二組編碼系數(shù),其中,第一組編碼系數(shù)為再編碼編碼包的編碼系數(shù)。第一控 制模塊52用于當轉發(fā)編碼包來自下游轉發(fā)節(jié)點時,根據(jù)第一組編碼系數(shù)和第二組編碼系 數(shù)更新存儲的反饋矩陣。第二控制模塊53,用于當轉發(fā)編碼包來自上游轉發(fā)節(jié)點時,根據(jù)第 一組編碼系數(shù)更新存儲的編碼矩陣。在上述技術方案的基礎上,進一步地,獲取模塊51具體用于接收上游轉發(fā)節(jié)點廣 播的轉發(fā)編碼包?;蛘?,獲取模塊51具體用于偷聽下游轉發(fā)節(jié)點廣播的轉發(fā)編碼包。在上述技術方案的基礎上,進一步地,第一控制模塊52具體用于判斷第一組編碼 系數(shù)與存儲的反饋矩陣的線性相關性,如果相關,丟棄第一組編碼系數(shù),如果無關,將第一 組編碼系數(shù)加入反饋矩陣。第一控制模塊52還具體用于判斷第二組編碼系數(shù)與反饋矩陣 的線性相關性,如果相關,丟棄第二組編碼系數(shù),如果無關,將第二組編碼系數(shù)加入反饋矩 陣。在上述技術方案的基礎上,進一步地,第一控制模塊52還用于判斷編碼矩陣中的 每一個編碼向量與反饋矩陣的線性相關性,如果相關,從編碼矩陣中刪除該編碼向量,刪除 存儲的該編碼向量對應的新穎編碼包。在上述技術方案的基礎上,進一步地,第一控制模塊52還用于判斷編碼矩陣是否 為空,如果為空,停止發(fā)送轉發(fā)編碼包。在上述技術方案的基礎上,進一步地,第二控制模塊53具體用于判斷第一組編碼 系數(shù)與存儲的編碼矩陣的線性相關性,如果相關,丟棄第一組編碼系數(shù),如果無關,將第一 組編碼系數(shù)加入編碼矩陣。在上述技術方案的基礎上,進一步地,第二控制模塊53還用于根據(jù)第一組編碼系 數(shù)解碼再編碼編碼包,獲取并存儲第一組編碼系數(shù)對應的一個或一個以上新穎編碼包。在本發(fā)明實施例五中,轉發(fā)節(jié)點作為接收方轉發(fā)節(jié)點,獲取模塊獲取的來自其它 轉發(fā)節(jié)點的轉發(fā)編碼包中除了包括第一組編碼系數(shù)和再編碼編碼包,還包括隨機生成的第 二組編碼系數(shù)。如果該轉發(fā)編碼包來自下游轉發(fā)節(jié)點,則第一控制模塊根據(jù)第一組編碼系 數(shù)和第二組編碼系數(shù)更新反饋矩陣,通過該反饋矩陣更新編碼矩陣,從而根據(jù)該編碼矩陣 選擇下一次轉發(fā)的新穎編碼包,如果該轉發(fā)編碼包來自上游轉發(fā)節(jié)點,則第二控制模塊根 據(jù)第一組編碼系數(shù)更新編碼矩陣,從而根據(jù)該編碼矩陣選擇下一次轉發(fā)的新穎編碼包。因 此,以在轉發(fā)編碼包中加入一組編碼系數(shù)的方式對新穎編碼包進行調整,替代了現(xiàn)有技術 中計算與收到的所有編碼向量均正交的正交向量的方式,因此節(jié)省了正交向量計算所需的大量計算過程,從而降低了功率損耗。在以上的實施例四和實施例五中,僅分別以轉發(fā)節(jié)點作為發(fā)送方轉發(fā)節(jié)點或接收 方轉發(fā)節(jié)點的其中一方為例,對轉發(fā)節(jié)點的組成結構進行了說明,在實際應用中,每個轉發(fā) 節(jié)點可以既作為接收方轉發(fā)節(jié)點又作為發(fā)送方轉發(fā)節(jié)點,同時具備上述實施例四和實施例 五中所記載的組成結構,在此情況下,實施例四中記載的獲取模塊41可以被實施例五中的 獲取模塊51結合第二控制模塊53替代。上述本發(fā)明實施例記載的技術方案中,采用累計反饋確認(CumulativeFeedback Acknowledgments,簡稱CFACK)的轉發(fā)方法,其路由尋址與其它機會路由協(xié)議相同,即對 于一個給定的目標節(jié)點,所有節(jié)點向前發(fā)送的優(yōu)先級依據(jù)發(fā)送一個包到目標節(jié)點的傳輸 次數(shù)的期望(Expect,簡稱ETX)值的升序排列由高到低。作為轉發(fā)節(jié)點的優(yōu)先級越高越 好。在本發(fā)明實施例中,轉發(fā)節(jié)點的優(yōu)先級可以采用任何度量值,一種優(yōu)選實現(xiàn)方案中采用 ETX[3]值作為度量值,還可以采用吞吐量作為度量值。為了避免太多的轉發(fā)節(jié)點導致通信 介質的競爭太激烈,在本發(fā)明實施例中可以限制轉發(fā)節(jié)點的數(shù)目,例如轉發(fā)節(jié)點的數(shù)目最 多為8個。與其它的基于網(wǎng)絡編碼的機會路由方案類似,本發(fā)明實施例的技術方案中,采用 的是基于塊的流內隨機線性編碼。其中每個編碼塊的大小為32個包。隨機線性編碼的編 碼系數(shù)取自觀大小的伽羅瓦域。為了解決節(jié)點應該發(fā)送多少編碼包的問題,本發(fā)明實施例 的技術方案中源節(jié)點和每個轉發(fā)節(jié)點維護兩個編碼向量矩陣,即編碼矩陣和反饋矩陣,其 中,編碼矩陣里面存放來自上游節(jié)點的新穎編碼包的編碼向量,反饋矩陣里面存放來自下 游節(jié)點的線性無關的編碼向量。每個節(jié)點還同時維護一個緩存用來存儲尚未被確認的編碼 包。緩存中的編碼包與編碼矩陣中的編碼向量有一一對應關系。采用本發(fā)明實施例的技術方案,在實驗中隨機生成110個拓撲,每個拓撲運行12 次,記錄每個協(xié)議在每個拓撲上每次運行的吞吐量,并求平均吞吐量。實驗結果表明,本發(fā) 明實施例提出的CFACK的性能優(yōu)于現(xiàn)有技術中CCACK的性能。具體地,CCACK和CFACK的 中位數(shù)吞吐量分別為49. 526KBps和82. 254KBps。CCACK在所有110場景中發(fā)包次數(shù)都多 于預測的次數(shù)。實際發(fā)包數(shù)目基本都是預測數(shù)目的兩倍,有的時候甚至達到了 6至7倍。 其原因在于,CCACK不能直接判斷編碼包之間的線性關系,因此導致發(fā)送許多不必要的編碼 包。而CFACK在所有場景的發(fā)包數(shù)目都少于CCACK,在大部分場景,CFACK的發(fā)包數(shù)目都跟 預測值比較靠近,在一些場景中甚至會低于預測值。需要說明的是對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列 的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為 依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知 悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明 所必須的。在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部 分,可以參見其他實施例的相關描述。本領域普通技術人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過 程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序 在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質。
最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡 管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然 可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替 換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精 神和范圍。
權利要求
1.一種編碼包轉發(fā)方法,其特征在于,包括獲取來自上游轉發(fā)節(jié)點的一個或一個以上新穎編碼包;隨機生成第一組編碼系數(shù)和第二組編碼系數(shù);采用所述第一組編碼系數(shù)對所述一個或一個以上新穎編碼包進行編碼,獲取一個再編 碼編碼包;根據(jù)所述一個再編碼編碼包、所述第一組編碼系數(shù)和所述第二組編碼系數(shù)生成轉發(fā) 編碼包并廣播給一個以上轉發(fā)節(jié)點,以使上游轉發(fā)節(jié)點根據(jù)所述第一組編碼系數(shù)和第二組 編碼系數(shù)更新存儲的反饋矩陣,下游轉發(fā)節(jié)點根據(jù)所述第一組編碼系數(shù)更新存儲的編碼矩 陣。
2.根據(jù)權利要求1所述的方法,其特征在于,所述獲取來自上游轉發(fā)節(jié)點的一個或一 個以上新穎編碼包包括獲取來自上游轉發(fā)節(jié)點的轉發(fā)編碼包,所述來自上游轉發(fā)節(jié)點的轉發(fā)編碼包包括來 自上游轉發(fā)節(jié)點的再編碼編碼包、來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)和來自上游轉發(fā)節(jié) 點的第二組編碼系數(shù),所述來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)為所述來自上游轉發(fā)節(jié)點 的再編碼編碼包的編碼系數(shù);判斷所述來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)與存儲的編碼矩陣的線性相關性,當無 關時,根據(jù)所述來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)解碼所述來自上游轉發(fā)節(jié)點的再編碼 編碼包,獲取所述來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)對應的來自上游轉發(fā)節(jié)點的一個或 一個以上新穎編碼包。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述根據(jù)所述一個再編碼編碼包、所 述第一組編碼系數(shù)和所述第二組編碼系數(shù)生成轉發(fā)編碼包包括將所述一個再編碼編碼包、所述第一組編碼系數(shù)、所述第二組編碼系數(shù)和包頭封裝為 所述轉發(fā)編碼包。
4.一種編碼包接收處理方法,其特征在于,包括獲取轉發(fā)編碼包,所述轉發(fā)編碼包包括再編碼編碼包、第一組編碼系數(shù)和第二組編碼 系數(shù),所述第一組編碼系數(shù)為所述再編碼編碼包的編碼系數(shù);當所述轉發(fā)編碼包來自下游轉發(fā)節(jié)點時,根據(jù)所述第一組編碼系數(shù)和第二組編碼系數(shù) 更新存儲的反饋矩陣;當所述轉發(fā)編碼包來自上游轉發(fā)節(jié)點時,根據(jù)所述第一組編碼系數(shù)更新存儲的編碼矩陣。
5.根據(jù)權利要求4所述的方法,其特征在于,所述獲取轉發(fā)編碼包包括接收上游轉發(fā)節(jié)點廣播的轉發(fā)編碼包;或,偷聽下游轉發(fā)節(jié)點廣播的轉發(fā)編碼包。
6.根據(jù)權利要求4或5所述的方法,其特征在于,所述根據(jù)所述第一組編碼系數(shù)和第二 組編碼系數(shù)更新存儲的反饋矩陣包括判斷所述第一組編碼系數(shù)與所述存儲的反饋矩陣的線性相關性,如果相關,丟棄所述 第一組編碼系數(shù),如果無關,將所述第一組編碼系數(shù)加入所述反饋矩陣;判斷所述第二組編碼系數(shù)與所述反饋矩陣的線性相關性,如果相關,丟棄所述第二組 編碼系數(shù),如果無關,將所述第二組編碼系數(shù)加入所述反饋矩陣。
7.根據(jù)權利要求6所述的方法,其特征在于,所述將所述第一組編碼系數(shù)加入所述反 饋矩陣之后,和/或,所述將所述第二組編碼系數(shù)加入所述反饋矩陣之后,該方法還包括判斷所述編碼矩陣中的每一個編碼向量與所述反饋矩陣的線性相關性,如果相關,從 所述編碼矩陣中刪除該編碼向量,刪除存儲的該編碼向量對應的新穎編碼包。
8.根據(jù)權利要求7所述的方法,其特征在于,所述從所述編碼矩陣中刪除該編碼向量 之后,該方法還包括判斷所述編碼矩陣是否為空,如果為空,停止發(fā)送轉發(fā)編碼包。
9.根據(jù)權利要求4或5所述的方法,其特征在于,所述根據(jù)所述第一組編碼系數(shù)更新存 儲的編碼矩陣包括判斷所述第一組編碼系數(shù)與所述存儲的編碼矩陣的線性相關性,如果相關,丟棄所述 第一組編碼系數(shù),如果無關,將所述第一組編碼系數(shù)加入所述編碼矩陣。
10.根據(jù)權利要求9所述的方法,其特征在于,所述將所述第一組編碼系數(shù)加入所述編 碼矩陣之后,該方法還包括根據(jù)所述第一組編碼系數(shù)解碼所述再編碼編碼包,獲取并存儲所述第一組編碼系數(shù)對 應的一個或一個以上新穎編碼包。
11.一種轉發(fā)節(jié)點,其特征在于,包括獲取模塊,用于獲取來自上游轉發(fā)節(jié)點的一個或一個以上新穎編碼包;編碼系數(shù)生成模塊,用于隨機生成第一組編碼系數(shù)和第二組編碼系數(shù);再編碼模塊,用于采用所述第一組編碼系數(shù)對所述一個或一個以上新穎編碼包進行編 碼,獲取一個再編碼編碼包;轉發(fā)編碼包生成模塊,用于根據(jù)所述一個再編碼編碼包、所述第一組編碼系數(shù)和所述 第二組編碼系數(shù)生成轉發(fā)編碼包;發(fā)送模塊,用于將所述轉發(fā)編碼包廣播給一個以上轉發(fā)節(jié)點,以使上游轉發(fā)節(jié)點根據(jù) 所述第一組編碼系數(shù)和第二組編碼系數(shù)更新存儲的反饋矩陣,下游轉發(fā)節(jié)點根據(jù)所述第一 組編碼系數(shù)更新存儲的編碼矩陣。
12.根據(jù)權利要求11所述的轉發(fā)節(jié)點,其特征在于,所述獲取模塊具體用于獲取來自上游轉發(fā)節(jié)點的轉發(fā)編碼包;所述來自上游轉發(fā)節(jié)點 的轉發(fā)編碼包包括來自上游轉發(fā)節(jié)點的再編碼編碼包、來自上游轉發(fā)節(jié)點的第一組編碼 系數(shù)和來自上游轉發(fā)節(jié)點的第二組編碼系數(shù),所述來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)為 所述來自上游轉發(fā)節(jié)點的再編碼編碼包的編碼系數(shù);所述獲取模塊還具體用于判斷所述來 自上游轉發(fā)節(jié)點的第一組編碼系數(shù)與存儲的編碼矩陣的線性相關性,當無關時,根據(jù)所述 來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)解碼所述來自上游轉發(fā)節(jié)點的再編碼編碼包,獲取所 述來自上游轉發(fā)節(jié)點的第一組編碼系數(shù)對應的來自上游轉發(fā)節(jié)點的一個或一個以上新穎 編碼包。
13.根據(jù)權利要求11或12所述的轉發(fā)節(jié)點,其特征在于,所述轉發(fā)編碼包生成模塊具體用于將所述一個再編碼編碼包、所述第一組編碼系數(shù)、 所述第二組編碼系數(shù)和包頭封裝為所述轉發(fā)編碼包。
14.一種轉發(fā)節(jié)點,其特征在于,包括獲取模塊,用于獲取轉發(fā)編碼包,所述轉發(fā)編碼包包括再編碼編碼包、第一組編碼系數(shù)和第二組編碼系數(shù),所述第一組編碼系數(shù)為所述再編碼編碼包的編碼系數(shù);第一控制模塊,用于當所述轉發(fā)編碼包來自下游轉發(fā)節(jié)點時,根據(jù)所述第一組編碼系 數(shù)和第二組編碼系數(shù)更新存儲的反饋矩陣;第二控制模塊,用于當所述轉發(fā)編碼包來自上游轉發(fā)節(jié)點時,根據(jù)所述第一組編碼系 數(shù)更新存儲的編碼矩陣。
15.根據(jù)權利要求14所述的轉發(fā)節(jié)點,其特征在于,所述獲取模塊具體用于接收上游轉發(fā)節(jié)點廣播的轉發(fā)編碼包; 或,所述獲取模塊具體用于偷聽下游轉發(fā)節(jié)點廣播的轉發(fā)編碼包。
16.根據(jù)權利要求14或15所述的轉發(fā)節(jié)點,其特征在于,所述第一控制模塊具體用于判斷所述第一組編碼系數(shù)與所述存儲的反饋矩陣的線性 相關性,如果相關,丟棄所述第一組編碼系數(shù),如果無關,將所述第一組編碼系數(shù)加入所述 反饋矩陣;所述第一控制模塊還具體用于判斷所述第二組編碼系數(shù)與所述反饋矩陣的線性相關 性,如果相關,丟棄所述第二組編碼系數(shù),如果無關,將所述第二組編碼系數(shù)加入所述反饋 矩陣。
17.根據(jù)權利要求16所述的轉發(fā)節(jié)點,其特征在于,所述第一控制模塊還用于判斷所述編碼矩陣中的每一個編碼向量與所述反饋矩陣的 線性相關性,如果相關,從所述編碼矩陣中刪除該編碼向量,刪除存儲的該編碼向量對應的 新穎編碼包。
18.根據(jù)權利要求17所述的轉發(fā)節(jié)點,其特征在于,所述第一控制模塊還用于判斷所述編碼矩陣是否為空,如果為空,停止發(fā)送轉發(fā)編碼包。
19.根據(jù)權利要求14或15所述的轉發(fā)節(jié)點,其特征在于,所述第二控制模塊具體用于判斷所述第一組編碼系數(shù)與所述存儲的編碼矩陣的線性 相關性,如果相關,丟棄所述第一組編碼系數(shù),如果無關,將所述第一組編碼系數(shù)加入所述 編碼矩陣。
20.根據(jù)權利要求19所述的轉發(fā)節(jié)點,其特征在于,所述第二控制模塊還用于根據(jù)所述第一組編碼系數(shù)解碼所述再編碼編碼包,獲取并存 儲所述第一組編碼系數(shù)對應的一個或一個以上新穎編碼包。
全文摘要
本發(fā)明實施例提供編碼包轉發(fā)方法、編碼包接收處理方法和轉發(fā)節(jié)點。轉發(fā)節(jié)點獲取來自上游轉發(fā)節(jié)點的新穎編碼包,隨機生成第一組編碼系數(shù)和第二組編碼系數(shù),采用第一組編碼系數(shù)對一個或一個以上新穎編碼包進行編碼,獲取一個再編碼編碼包,根據(jù)再編碼編碼包、第一組編碼系數(shù)和第二組編碼系數(shù)生成轉發(fā)編碼包并廣播給其它轉發(fā)節(jié)點,以使上游轉發(fā)節(jié)點根據(jù)第一組編碼系數(shù)和第二組編碼系數(shù)更新存儲的反饋矩陣,下游轉發(fā)節(jié)點根據(jù)第一組編碼系數(shù)更新存儲的編碼矩陣。采用本發(fā)明提供的編碼包轉發(fā)方法、編碼包接收處理方法和轉發(fā)節(jié)點,節(jié)省了正交向量計算所需的大量計算過程,從而降低了功率損耗。
文檔編號H04L1/00GK102104446SQ201110047869
公開日2011年6月22日 申請日期2011年2月28日 優(yōu)先權日2011年2月28日
發(fā)明者豐大洋, 魯鳴鳴 申請人:華為技術有限公司