一種物聯(lián)網(wǎng)數(shù)據(jù)傳輸路徑恢復方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及物聯(lián)網(wǎng)領域,特別涉及一種物聯(lián)網(wǎng)數(shù)據(jù)傳輸路徑恢復方法及系統(tǒng)。
【背景技術】
[0002]在無線傳感器網(wǎng)絡領域,每個數(shù)據(jù)包的傳輸路徑是了解無線傳感器網(wǎng)絡詳細信息的重要測試信息。以數(shù)據(jù)包傳輸路徑作為測試信息,診斷和維護無線傳感器網(wǎng)絡的做法越來越常見。在數(shù)據(jù)包傳輸過程中,由于無線傳感器網(wǎng)絡的拓撲不停地變化,導致對于每個源節(jié)點來講,它到信宿節(jié)點的傳輸路徑是不固定的。針對這一問題,形成了各種不同的數(shù)據(jù)包傳輸路徑恢復方法,實際使用最多的是內(nèi)部數(shù)據(jù)相關法。
[0003]內(nèi)部數(shù)據(jù)相關法,在源節(jié)點處,利用一組數(shù)據(jù)包傳輸路徑的時間相關性和傳輸路徑的不同,有效地壓縮數(shù)據(jù)包傳輸路徑信息;同時在信宿節(jié)點處,通過壓縮的數(shù)據(jù)包傳輸路徑信息,推斷數(shù)據(jù)包傳輸路徑,并且利用重建率高的智能路徑猜測方法重建數(shù)據(jù)包傳輸路徑。
[0004]內(nèi)部數(shù)據(jù)相關法的缺點:其需要無線傳感器網(wǎng)絡充分可靠和穩(wěn)定條件下的內(nèi)部數(shù)據(jù)包相關性。但是,實際無線傳感器網(wǎng)絡中拓撲是不斷變化的,且數(shù)據(jù)包丟失率比較高;因此,利用內(nèi)部數(shù)據(jù)相關法恢復數(shù)據(jù)包傳輸路徑的效果并不理想。
【發(fā)明內(nèi)容】
[0005]本發(fā)明目的是提供一種物聯(lián)網(wǎng)數(shù)據(jù)傳輸路徑恢復方法及系統(tǒng),解決現(xiàn)有技術中存在的上述問題。
[0006]本發(fā)明解決上述技術問題的技術方案如下:
[0007]—種物聯(lián)網(wǎng)數(shù)據(jù)傳輸路徑恢復方法,包括如下步驟:
[0008]步驟1,數(shù)據(jù)包在源節(jié)點時,初始化源節(jié)點處所述數(shù)據(jù)包的包頭文件;
[0009]步驟2,所述數(shù)據(jù)包傳輸過程中,根據(jù)所述數(shù)據(jù)包到達的中繼節(jié)點,實時修改所述中繼節(jié)點處所述數(shù)據(jù)包的包頭文件;
[0010]步驟3,所述數(shù)據(jù)包到達信宿節(jié)點時,根據(jù)信宿節(jié)點處所述數(shù)據(jù)包的包頭文件搜索數(shù)據(jù)庫;如果,獲得與信宿節(jié)點處所述數(shù)據(jù)包的包頭文件相匹配的包頭文件,且所述相匹配的包頭文件的對應數(shù)據(jù)包的傳輸路徑已恢復,則將所述對應數(shù)據(jù)包的傳輸路徑作為所述數(shù)據(jù)包的傳輸路徑,結(jié)束操作;否則,執(zhí)行步驟4 ;
[0011]步驟4,當數(shù)據(jù)庫中所述相匹配的包頭文件的個數(shù)累積到預設值后,將稀疏重現(xiàn)法和壓縮傳感法相結(jié)合求解所述數(shù)據(jù)包的傳輸路徑,并將所述數(shù)據(jù)包的傳輸路徑和信宿節(jié)點處所述數(shù)據(jù)包的包頭文件相對應存儲于所述數(shù)據(jù)庫。
[0012]本發(fā)明的有益效果是:所述數(shù)據(jù)包到達信宿節(jié)點時,根據(jù)信宿節(jié)點處所述數(shù)據(jù)包的包頭文件搜索數(shù)據(jù)庫;如果獲得相匹配的包頭文件,且對應數(shù)據(jù)包傳輸路徑已恢復,則將對應數(shù)據(jù)包傳輸路徑作為所述數(shù)據(jù)包的傳輸路徑;否則,當數(shù)據(jù)庫中所述相匹配的包頭文件的個數(shù)累積到預設值后,將稀疏重現(xiàn)法和壓縮傳感法相結(jié)合求解所述數(shù)據(jù)包的傳輸路徑;查詢和求解兩種途徑相結(jié)合,有效提高數(shù)據(jù)傳輸路徑恢復效率;實現(xiàn)不需獲取無線傳感器網(wǎng)絡中內(nèi)部數(shù)據(jù)包相關性,簡單方便,資源消耗低;且在拓撲發(fā)生變化和數(shù)據(jù)包丟失率較高的情況下,能高效恢復數(shù)據(jù)傳輸路徑。
[0013]在上述技術方案的基礎上,本發(fā)明還可以做如下改進。
[0014]進一步,所述包頭文件包括數(shù)據(jù)包序列號SEQ、數(shù)據(jù)包源節(jié)點地址sArr、數(shù)據(jù)包傳輸路徑長度pLen、數(shù)據(jù)包傳輸過程中傳輸路徑信息數(shù)組bFlt和數(shù)據(jù)包傳輸過程中傳輸路徑信息編碼方式aMsr。
[0015]進一步,所述步驟I的具體實現(xiàn)包括:將源節(jié)點處所述數(shù)據(jù)包的包頭文件的PLen設置為O ;bFlt設置為長度L的數(shù)組,所述數(shù)組的所有元素都為O ;和aMsr設置為O ;其中所述L為預設值;
[0016]所述步驟2的具體實現(xiàn)包括:當所述數(shù)據(jù)包傳輸至任意一個中繼節(jié)點,則所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的pLen采用如下第一公式計算,bFlt采用如下第二公式計算,aMsr采用如下第三公式計算,SEQ和sArr保持不變;
[0017]所述第一公式如下:
[0018]PLeni= pLen 土 !+I
[0019]所述第二公式如下:
[0020]bFlti= F(bFlt 土 1? PLenij j)
[0021]所述第三公式如下:
[0022]BMsri= aMsr i JpLen1-Dj [SEQk]
[0023]其中,所述j為所述任意一個中繼節(jié)點的ID,所述PLeni為所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的pLen,所述PLeni i為所述任意一個中繼節(jié)點的前一傳輸節(jié)點處所述數(shù)據(jù)包的包頭文件的pLen,所述bFlt*所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的bFlt,所述bFlt;:為所述任意一個中繼節(jié)點的前一傳輸節(jié)點處所述數(shù)據(jù)包的包頭文件的bFlt,所述F(bFlti !, pLen;, j)為所述解函數(shù),所述aMsr ;為所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的aMsr,所述aMsr; 所述任意一個中繼節(jié)點的前一傳輸節(jié)點處所述數(shù)據(jù)包的包頭文件的aMsr,所述SEQk為所述數(shù)據(jù)包的包頭文件的SEQ,所述Dj [SEQk]為所述任意一個中繼節(jié)點的高斯分布數(shù)組中的第SEQk個數(shù)值;
[0024]所述F (bFlt; !, pLen;, j)為所述bFlt;求解函數(shù),其求解關系為:
[0025]所述任意一個中繼節(jié)點處都具有預先設置的H個哈希函數(shù)Vn = fn(pLen;, j), η =1,2……H,且Vne {0,1,2……L-1};根據(jù)Vn的取值,將bFlt:數(shù)組中的Vn位設置為1,其它位保持不變。
[0026]進一步,所述步驟3的具體實現(xiàn)包括:
[0027]步驟31,根據(jù)信宿節(jié)點處所述數(shù)據(jù)包的包頭文件的sArr搜索所述數(shù)據(jù)庫;如果獲得具有與所述sArr相同sArr的同sArr的包頭文件,則執(zhí)行步驟32 ;反之,執(zhí)行步驟4 ;
[0028]步驟32,判斷信宿節(jié)點處所述數(shù)據(jù)包的包頭文件的pLen與所述同sArr的包頭文件的PLen是否相同;如果相同,則執(zhí)行步驟33 ;反之,執(zhí)行步驟4 ;
[0029]步驟33,判斷信宿節(jié)點處所述數(shù)據(jù)包的包頭文件的bFlt與所述同sArr的包頭文件的bFlt是否相同;如果相同,則所述同sArr的包頭文件為所述相匹配的包頭文件,并執(zhí)行步驟34;反之,執(zhí)行步驟4;
[0030]步驟34,根據(jù)所述相匹配的包頭文件搜索所述數(shù)據(jù)庫;如果所述相匹配的包頭文件的對應數(shù)據(jù)包的傳輸路徑已恢復,則將所述對應數(shù)據(jù)包的傳輸路徑作為所述數(shù)據(jù)包的傳輸路徑,結(jié)束操作;反之,執(zhí)行步驟4。
[0031]進一步,所述步驟4的具體實現(xiàn)包括:
[0032]步驟41,利用稀疏重現(xiàn)法分別根據(jù)預設值個所述相匹配的包頭文件的SEQ和信宿節(jié)點處所述數(shù)據(jù)包的包頭文件的SEQ提取物聯(lián)網(wǎng)各節(jié)點的高斯分布數(shù)組中的第SEQ個數(shù)值組成第一矩陣;
[0033]步驟42,將預設值個所述相匹配的包頭文件的aMsr和信宿節(jié)點處所述數(shù)據(jù)包的包頭文件的aMsr組成與所述第一矩陣中各包頭文件的SEQ排列對應的列矩陣形式的第二矩陣;
[0034]步驟43,利用壓縮傳感法,通過如下第四公式求解所述數(shù)據(jù)包的傳輸路徑信息向量列矩陣,從而獲知所述數(shù)據(jù)包的傳輸路徑;
[0035]其中,所述第四公式如下:
[0036]Y = XXS
[0037]其中,X為所述第一矩陣,Y為所述第二矩陣,S為所述數(shù)據(jù)包的傳輸路徑信息向量列矩陣。
[0038]本發(fā)明的另一技術方案如下:
[0039]—種物聯(lián)網(wǎng)數(shù)據(jù)傳輸路徑恢復系統(tǒng),包括初始化模塊、包頭文件更新模塊、傳輸路徑查詢模塊和傳輸路徑求解模塊;
[0040]所述初始化模塊,其用于數(shù)據(jù)包在源節(jié)點時,初始化源節(jié)點處所述數(shù)據(jù)包的包頭文件;
[0041]所述包頭文件更新模塊,其用于所述數(shù)據(jù)包傳輸過程中,根據(jù)所述數(shù)據(jù)包到達的中繼節(jié)點,實時修改所述中繼節(jié)點處所述數(shù)據(jù)包的包頭文件;
[0042]所述傳輸路徑查詢模塊,其用于所述數(shù)據(jù)包到達信宿節(jié)點時,根據(jù)信宿節(jié)點處所述數(shù)據(jù)包的包頭文件搜索數(shù)據(jù)庫;如果,獲得與信宿節(jié)點處所述數(shù)據(jù)包的包頭文件相匹配的包頭文件,且所述相匹配的包頭文件的對應數(shù)據(jù)包的傳輸路徑已恢復,則將所述對應數(shù)據(jù)包的傳輸路徑作為所述數(shù)據(jù)包的傳輸路徑,結(jié)束操作;否則,驅(qū)動所述傳輸路徑求解模塊工作;
[0043]所述傳輸路徑求解模塊,其用于當數(shù)據(jù)庫中所述相匹配的包頭文件的個數(shù)累積到預設值后,將稀疏重現(xiàn)法和壓縮傳感法相結(jié)合求解所述數(shù)據(jù)包的傳輸路徑,并將所述數(shù)據(jù)包的傳輸路徑和信宿節(jié)點處所述數(shù)據(jù)包的包頭文件相對應存儲于所述數(shù)據(jù)庫。
[0044]在上述技術方案的基礎上,本發(fā)明還可以做如下改進。
[0045]進一步,所述包頭文件包括數(shù)據(jù)包序列號SEQ、數(shù)據(jù)包源節(jié)點地址sArr、數(shù)據(jù)包傳輸路徑長度pLen、數(shù)據(jù)包傳輸過程中傳輸路徑信息數(shù)組bFlt和數(shù)據(jù)包傳輸過程中傳輸路徑信息編碼方式aMsr。
[0046]進一步,所述初始化模塊,其具體用于將源節(jié)點處所述數(shù)據(jù)包的包頭文件的pLen設置為O ;bFlt設置為長度L的數(shù)組,所述數(shù)組的所有元素都為O ;和aMsr設置為O ;其中所述L為預設值;
[0047]所述包頭文件更新模塊包括pLen更新單元、bFlt更新單元、aMsr更新單元、SEQ保持單元和sArr保持單元;
[0048]所述pLen更新單元,其用于采用如下第一公式計算所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的pLen ;
[0049]所述bFlt更新單元,其用于采用如下第二公式計算所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的bFlt ;
[0050]所述aMsr更新單元,其用于采用如下第三公式計算所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的aMsr ;
[0051]所述SEQ保持單元,其用于保持所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的SEQ不變;
[0052]所述sArr保持單元,其用于保持所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的s Arr不變;
[0053]所述第一公式如下:
[0054]pLen;= pLen ; Jl
[0055]所述第二公式如下:
[0056]bFlt;= F(bFlt ; 1; PLeni, j)
[0057]所述第三公式如下:
[0058]aMsr;= aMsr ; !+PLeni^Dj[SEQk]
[0059]其中,所述j為所述任意一個中繼節(jié)點的ID,所述PLeni為所述任意一個中繼節(jié)點處所述數(shù)據(jù)包的包頭文件的pLen,所述PLe