肖 融 孫 波 陳文龍 肖永康 魏云剛
1(北京師范大學(xué)信息科學(xué)與技術(shù)學(xué)院 北京 100875)2(首都師范大學(xué)信息工程學(xué)院 北京 100048)(xiaorong@bnu.edu.cn)
IPv6物聯(lián)網(wǎng)層次轉(zhuǎn)發(fā)體系中的地址壓縮
肖融1孫波1陳文龍2肖永康1魏云剛1
1(北京師范大學(xué)信息科學(xué)與技術(shù)學(xué)院北京100875)2(首都師范大學(xué)信息工程學(xué)院北京100048)(xiaorong@bnu.edu.cn)
摘要作為“互聯(lián)網(wǎng)+”計(jì)劃的重要組成部分,物聯(lián)網(wǎng)廣泛應(yīng)用于人類社會(huì)的各個(gè)方面.IPv6節(jié)點(diǎn)標(biāo)識(shí)是物聯(lián)網(wǎng)大規(guī)模部署的基礎(chǔ).然而,128 b的IPv6地址卻給資源受限的物聯(lián)網(wǎng)增加了存儲(chǔ)、帶寬等代價(jià).面向物聯(lián)網(wǎng)層次轉(zhuǎn)發(fā)體系,設(shè)計(jì)了IACH地址壓縮機(jī)制,包括:去除尾部無效尋徑信息、地址剝離、地址擴(kuò)展等.接著,提出了地址映射機(jī)制,將外部無規(guī)律的IPv6地址映射成物聯(lián)子網(wǎng)虛擬地址,使其可應(yīng)用上述IACH機(jī)制進(jìn)行壓縮.該機(jī)制與現(xiàn)有6LoWPAN兼容.實(shí)驗(yàn)及性能分析表明:IACH可大幅提升物聯(lián)網(wǎng)報(bào)文傳輸?shù)挠行ж?fù)載比例.對(duì)于相同長(zhǎng)度的IP上層負(fù)載,IACH轉(zhuǎn)發(fā)時(shí)延略低于標(biāo)準(zhǔn)6LoWPAN.
關(guān)鍵詞物聯(lián)網(wǎng);層次轉(zhuǎn)發(fā);地址壓縮;IPv6;地址映射
“互聯(lián)網(wǎng)+”計(jì)劃正迅速推動(dòng)社會(huì)各行業(yè)的互聯(lián)網(wǎng)進(jìn)程,而物聯(lián)網(wǎng)是“互聯(lián)網(wǎng)+”最核心的技術(shù)之一,它在智慧城市、物流管理、環(huán)境監(jiān)測(cè)等多個(gè)方面發(fā)揮重要作用.物聯(lián)網(wǎng)部署與現(xiàn)有互聯(lián)網(wǎng)的廣泛融合[1],對(duì)物聯(lián)網(wǎng)體系結(jié)構(gòu)的統(tǒng)一性及規(guī)范性提出了更高的要求.一體化節(jié)點(diǎn)標(biāo)識(shí)是物聯(lián)網(wǎng)技術(shù)規(guī)范化、標(biāo)準(zhǔn)化的基礎(chǔ),IPv6地址充當(dāng)物聯(lián)網(wǎng)節(jié)點(diǎn)標(biāo)識(shí)是大勢(shì)所趨.然而,IPv6地址也給資源受限的物聯(lián)網(wǎng)帶來了新的難題,128 b的地址格式使得物聯(lián)網(wǎng)節(jié)點(diǎn)在存儲(chǔ)、處理、協(xié)議帶寬等多個(gè)方面增加了代價(jià).所以,物聯(lián)網(wǎng)環(huán)境中的IPv6地址壓縮機(jī)制研究極為重要.現(xiàn)有6LoWPAN[2]的地址壓縮技術(shù)雖能有效壓縮IPv6地址存儲(chǔ),但其在壓縮對(duì)象的范圍及可擴(kuò)展等方面略顯不足.
IPv6物聯(lián)網(wǎng)轉(zhuǎn)發(fā)體系以層次樹為主,例如RPL協(xié)議[3],它已在典型物聯(lián)網(wǎng)操作系統(tǒng)中實(shí)現(xiàn)[4-5].文獻(xiàn)[6]為了提升自愈、可擴(kuò)展等路由性能,設(shè)計(jì)了一種IPv6輕量級(jí)樹型層次轉(zhuǎn)發(fā)模型TFAD.本文針對(duì)TFAD提出了層次結(jié)構(gòu)地址壓縮機(jī)制(IPv6 address compression based on hierarchical structure, IACH).它利用層次結(jié)構(gòu)中父子節(jié)點(diǎn)IPv6地址的繼承關(guān)系,設(shè)計(jì)轉(zhuǎn)發(fā)過程中IP地址的壓縮存儲(chǔ)機(jī)制,以最經(jīng)濟(jì)的代價(jià)提供IPv6節(jié)點(diǎn)標(biāo)識(shí).主要壓縮方法包括:去除尾部“0”值無效尋徑信息;下行傳輸時(shí)的IPv6地址剝離技術(shù);上行傳輸時(shí)的IPv6地址擴(kuò)展技術(shù).另一方面,由于訪問物聯(lián)子網(wǎng)的外部IPv6地址范圍大、無特定規(guī)律,導(dǎo)致IP地址壓縮困難.提出了基于網(wǎng)關(guān)的地址映射機(jī)制,將外部IPv6地址映射成物聯(lián)子網(wǎng)虛擬地址,再應(yīng)用前述IPv6地址壓縮機(jī)制對(duì)虛擬地址進(jìn)行壓縮.地址映射只在資源豐富、處理能力較強(qiáng)的的網(wǎng)關(guān)(根節(jié)點(diǎn))實(shí)施,對(duì)于通信過程中的其它物聯(lián)網(wǎng)節(jié)點(diǎn)完全透明.而且,IACH機(jī)制基于6LoWPAN協(xié)議擴(kuò)展設(shè)計(jì)實(shí)現(xiàn),兼容現(xiàn)有6LoWPAN功能.基于真實(shí)節(jié)點(diǎn)的實(shí)驗(yàn)及性能分析表明:IACH地址壓縮機(jī)制大幅增加了物聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)挠行ж?fù)載比例;對(duì)于相同長(zhǎng)度的IP上層負(fù)載,IACH轉(zhuǎn)發(fā)處理時(shí)延略低于標(biāo)準(zhǔn)6LoWPAN.
1相關(guān)研究
IEEE 802.15.4標(biāo)準(zhǔn)[10]描述了低速無線個(gè)域網(wǎng)(low-rate wireless personal area network, LR-WPAN)的物理層及媒體接入控制層協(xié)議規(guī)范,其協(xié)議復(fù)雜度較低、運(yùn)行成本小,適合傳感節(jié)點(diǎn)間的低帶寬傳輸.基于802.15.4的IPv6報(bào)文傳輸面臨的一個(gè)重要問題是:鏈路層傳輸?shù)拿總€(gè)數(shù)據(jù)幀承載的有效數(shù)據(jù)太少.802.15.4協(xié)議幀長(zhǎng)度不超過127 B,鏈路層MAC幀頭最大為25 B,MAC安全頭最大為21 B.每個(gè)數(shù)據(jù)幀中IP報(bào)文只有少量的存儲(chǔ)空間.考慮40 B的IPv6報(bào)頭以及傳輸層頭部信息(TCP為20 B、UDP為8 B),應(yīng)用層協(xié)議所能傳輸?shù)男畔⒕蜆O為有限.所以,基于802.15.4的IPv6報(bào)文傳輸必須使用壓縮技術(shù)提高傳輸性能.
此前的IP壓縮技術(shù)研究,如ROHC[11],主要基于有狀態(tài)的數(shù)據(jù)流進(jìn)行壓縮,核心思想是去除報(bào)文中屬于同一數(shù)據(jù)流的公共信息.這種壓縮技術(shù)只對(duì)生存期較長(zhǎng)的數(shù)據(jù)流有意義,不適用數(shù)據(jù)傳輸少且不太頻繁的低功耗有損網(wǎng)絡(luò).最初基于802.15.4的IP壓縮技術(shù)由文獻(xiàn)[12]提出,包括HC1和HC2算法.之后,壓縮技術(shù)又由文獻(xiàn)[13]優(yōu)化擴(kuò)展:使用共享上下文對(duì)全局地址壓縮、對(duì)流量類別和流標(biāo)簽單獨(dú)壓縮.6LoWPAN工作組針對(duì)IPv6頭部提出的LOWPAN_IPHC編碼格式是目前最被各界認(rèn)可的壓縮算法.
6LoWPAN壓縮技術(shù)主要實(shí)施3個(gè)方面的工作:1)去除不同協(xié)議層之間的冗余信息;2)省略IPv6頭部中基本不變化的字段或壓縮取值范圍較小的字段;3)利用共享上下文信息,壓縮部分傳輸內(nèi)容.
6LoWPAN存在如下局限或不足:1)只對(duì)無狀態(tài)自動(dòng)生成的全局IPv6地址或本地鏈路地址(Link local地址)壓縮效果較好.Link local地址只在單跳鏈路傳輸時(shí)使用,使用范圍很小;而無狀態(tài)自動(dòng)全局IPv6地址沒有層次性,在物聯(lián)子網(wǎng)中無法基于子樹進(jìn)行地址聚合,無法支撐高效的層次路由.2)沒有提供物聯(lián)子網(wǎng)外部IPv6地址的壓縮方法.LOWPAN_IPHC規(guī)范中,對(duì)于外部地址,如果基于上下文狀態(tài)可壓縮至64 b,否則就只能攜帶128 b完整地址傳輸,壓縮效果不理想.3)壓縮機(jī)制的可擴(kuò)展性不強(qiáng).該規(guī)范對(duì)主機(jī)位給出了典型長(zhǎng)度的限制,如64 b或16 b,不支持更靈活的長(zhǎng)度變化.本文工作在以上3個(gè)方面進(jìn)行了改進(jìn)或優(yōu)化.
無論是早期的無線傳感器網(wǎng)絡(luò)還是現(xiàn)在的物聯(lián)網(wǎng),層次體系都是最廣泛使用的路由轉(zhuǎn)發(fā)結(jié)構(gòu)[14].層次結(jié)構(gòu)中,物聯(lián)網(wǎng)節(jié)點(diǎn)被劃分成多個(gè)小組,每組的組員節(jié)點(diǎn)與組頭節(jié)點(diǎn)嚴(yán)格遵循層次隸屬關(guān)系,組員總是通過組頭與外部進(jìn)行通信.RPL路由體系[2]與廣泛使用的分簇路由[15]都屬于層次路由.作者前期完成的輕量級(jí)樹型層次轉(zhuǎn)發(fā)模型TFAD[5],支持IPv6地址在子樹范圍內(nèi)高度聚合,并提供了故障后快速恢復(fù)機(jī)制,本文工作正是基于TFAD展開.
2地址壓縮模型
首先對(duì)TFAD模型進(jìn)行簡(jiǎn)要介紹.TFAD層次轉(zhuǎn)發(fā)樹中,根節(jié)點(diǎn)被稱為網(wǎng)關(guān)節(jié)點(diǎn),如圖1中的節(jié)點(diǎn)1.網(wǎng)關(guān)節(jié)點(diǎn)的層數(shù)為0,各節(jié)點(diǎn)的層數(shù)等于其父節(jié)點(diǎn)的層數(shù)加1.層數(shù)為最大層次數(shù)Lmax的節(jié)點(diǎn)稱為底層節(jié)點(diǎn),否則稱為非底層節(jié)點(diǎn).每一層兄弟節(jié)點(diǎn)的IPv6地址通過層次比特位(layer bit,LB)進(jìn)行標(biāo)識(shí).圖1是一個(gè)層次轉(zhuǎn)發(fā)結(jié)構(gòu)示例,該轉(zhuǎn)發(fā)樹的層次比特位為8 b,通過層次比特位的不同取值來標(biāo)識(shí)各自的子樹.如節(jié)點(diǎn)2~4的層次比特位為IPv6地址的第65~72位,分別取值0x01,0x02,0xFF標(biāo)識(shí)不同的子樹;節(jié)點(diǎn)5,6的層次比特位為IPv6地址的第73~80位.另外,每個(gè)節(jié)點(diǎn)繼承了父輩節(jié)點(diǎn)的地址范圍,在父節(jié)點(diǎn)地址范圍的尾部加上自己的層次比特位,就是該節(jié)點(diǎn)的地址范圍.例如,節(jié)點(diǎn)3的子樹地址范圍為“2500::0200:0:0:072”,節(jié)點(diǎn)5繼承父節(jié)點(diǎn)3的地址范圍,再加上自身的層次比特位0x01,其子樹地址范圍為“2500::0201:0:0:080”.每個(gè)節(jié)點(diǎn)的地址是在自己的地址范圍后面加0補(bǔ)足128位即可自動(dòng)生成,節(jié)點(diǎn)3地址為“2500::0200:0:0:064”,節(jié)點(diǎn)5地址為“2500::0201:0:0:064”.
Fig. 1 Example of hierarchical forwarding tree.圖1 層次轉(zhuǎn)發(fā)樹示例
定義1. 有效尋徑地址位.層次轉(zhuǎn)發(fā)樹中,從網(wǎng)關(guān)節(jié)點(diǎn)到節(jié)點(diǎn)Ni各級(jí)層次比特位組成的部分被稱為節(jié)點(diǎn)Ni地址的有效尋徑地址位VA(valid address bits for routing),它在層次轉(zhuǎn)發(fā)樹中可唯一標(biāo)識(shí)節(jié)點(diǎn).VA占用的位數(shù)被稱為有效尋徑地址位數(shù)VAN(VAnumber).本文地址體系中,有:0 圖1中,節(jié)點(diǎn)3的VA=0x02,VAN=8;節(jié)點(diǎn)12的VA=0x020101FF,VAN=32.圖2是圖1的簡(jiǎn)化圖,只保留了節(jié)點(diǎn)的有效尋徑地址位. Fig. 2 Simplified structure of hierarchical forwarding tree.圖2 層次轉(zhuǎn)發(fā)樹簡(jiǎn)化結(jié)構(gòu) 對(duì)節(jié)點(diǎn)有效尋徑地址位的長(zhǎng)度進(jìn)行分析,令物聯(lián)子網(wǎng)節(jié)點(diǎn)轉(zhuǎn)發(fā)樹所支持的最大層次數(shù)為L(zhǎng)max,任一節(jié)點(diǎn)Ni所在層數(shù)為Ni.lay,令第j層的層次比特位為L(zhǎng)B[j].n,則節(jié)點(diǎn)Ni的有效尋徑地址位數(shù)為 (1) 顯然,層次轉(zhuǎn)發(fā)樹中層數(shù)越小的節(jié)點(diǎn),對(duì)應(yīng)VAN值越小,底層節(jié)點(diǎn)(層數(shù)為L(zhǎng)max)的VAN值最大. 節(jié)點(diǎn)標(biāo)識(shí)的核心功能就是網(wǎng)絡(luò)尋徑,為確保物聯(lián)子網(wǎng)內(nèi)針對(duì)節(jié)點(diǎn)的尋徑能正常進(jìn)行,給出地址壓縮的基本原則:1)針對(duì)源地址,需確保最終收到該報(bào)文的節(jié)點(diǎn)能獲得源節(jié)點(diǎn)全部有效尋徑地址位,保證反向?qū)侥苷M瓿?2)針對(duì)目的地址,報(bào)文首次出現(xiàn)在物聯(lián)子網(wǎng)時(shí),目的地址擁有目的節(jié)點(diǎn)完整的有效尋徑地址位,確保報(bào)文順利傳輸?shù)竭_(dá)目的節(jié)點(diǎn). LACH壓縮機(jī)制的相關(guān)定義如下: 定義2. 地址剝離.將16進(jìn)制原始地址信息AB,剝離高位部分信息A,定義為Addr_strip(AB,A).例如Addr_strip(0x1234,0x12)=0x34. 定義3. 地址擴(kuò)展.在16進(jìn)制原始地址信息A的前面增加16進(jìn)制信息B,定義為Addr_extend(A,B).例如Addr_extend(0x3456,0x12)=0x123456. 定義4. 去除尾部0值.將16進(jìn)制原始地址信息A末尾的k個(gè)位的0值去掉,定義為Addr_tail0_del(A,k).例如: Addr_tail0_del(0x12340000,16)=0x1234. 定義5. 補(bǔ)足尾部0值.在16進(jìn)制原始地址信息A的末尾,添加k個(gè)位的0值,定義為Addr_tail0_add(A,k).例如Addr_tail0_add(0x1234,16)=0x12340000. 定義6. 頂點(diǎn)轉(zhuǎn)發(fā).樹型結(jié)構(gòu)的物聯(lián)子網(wǎng)內(nèi)部傳輸時(shí),由上行轉(zhuǎn)為下行的轉(zhuǎn)發(fā)處理,被稱為頂點(diǎn)轉(zhuǎn)發(fā). 基于上述定義,提出了報(bào)文在物聯(lián)子網(wǎng)傳輸過程中的3種IPv6地址壓縮機(jī)制. 壓縮技術(shù)2:報(bào)文中目的IPv6地址剝離技術(shù).包括以下規(guī)則:1)IPv6報(bào)文在樹型拓?fù)湎滦袀鬏?向葉子節(jié)點(diǎn)方向)過程中,每經(jīng)過1個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),報(bào)文目的IPv6地址便可去除1段層次比特位;2)若外部報(bào)文經(jīng)過網(wǎng)關(guān)(即根節(jié)點(diǎn))向子網(wǎng)內(nèi)部轉(zhuǎn)發(fā),則剝離目的IPv6地址的64位物聯(lián)子網(wǎng)網(wǎng)絡(luò)前綴;3)頂點(diǎn)轉(zhuǎn)發(fā)(上行轉(zhuǎn)下行)時(shí),報(bào)文目的IPv6地址要?jiǎng)冸x頂點(diǎn)節(jié)點(diǎn)的有效尋徑地址位. 層次轉(zhuǎn)發(fā)樹的下行傳輸尋徑,本質(zhì)上就是逐層根據(jù)報(bào)文目的IPv6地址中的層次比特位定位子樹.對(duì)于已經(jīng)完成匹配的地址信息,后續(xù)傳輸中可以將其從IP信息中剝離出來,從而實(shí)現(xiàn)IPv6傳輸?shù)膶?shí)時(shí)地址壓縮.可以看出,層次轉(zhuǎn)發(fā)樹下行傳輸中,某節(jié)點(diǎn)Ni收到報(bào)文的目的IPv6地址信息中,只包含節(jié)點(diǎn)Ni及后續(xù)子孫節(jié)點(diǎn)的層次比特位. 以圖2舉例,節(jié)點(diǎn)8向節(jié)點(diǎn)12發(fā)送報(bào)文,初始報(bào)文的目的地址為節(jié)點(diǎn)12的完整有效尋徑地址位:0x020101FF.節(jié)點(diǎn)5做頂點(diǎn)轉(zhuǎn)發(fā),剝離目的地址中節(jié)點(diǎn)5的有效尋徑地址位0x0201,變?yōu)?x01FF.此后,節(jié)點(diǎn)7轉(zhuǎn)發(fā)時(shí)從目的IP中剝離其層次比特位0x01,節(jié)點(diǎn)12收到報(bào)文的目的IP為0xFF. 壓縮技術(shù)3:報(bào)文IPv6源地址擴(kuò)展技術(shù).包括以下規(guī)則:1)IPv6報(bào)文在樹型拓?fù)渖闲袀鬏?向根節(jié)點(diǎn)方向)過程中,每經(jīng)過1個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn),源IPv6地址擴(kuò)展1段層次比特位;2)若經(jīng)根節(jié)點(diǎn)向子網(wǎng)外部轉(zhuǎn)發(fā),則對(duì)源IPv6地址增加64位物聯(lián)子網(wǎng)前綴;3)頂點(diǎn)轉(zhuǎn)發(fā)時(shí),報(bào)文源IPv6地址需擴(kuò)展頂點(diǎn)節(jié)點(diǎn)的有效尋徑地址位. 報(bào)文的上行傳輸是逐層向父節(jié)點(diǎn)轉(zhuǎn)發(fā)報(bào)文的過程,發(fā)送節(jié)點(diǎn)的IP地址正是由這些祖輩節(jié)點(diǎn)的層次比特位組成.所以,報(bào)文源IP地址可以在上行傳輸過程中由祖輩節(jié)點(diǎn)逐級(jí)擴(kuò)展,從而實(shí)現(xiàn)IP地址信息的最小化存儲(chǔ). 圖2中,節(jié)點(diǎn)12向節(jié)點(diǎn)8發(fā)送報(bào)文,上行傳輸時(shí)初始源IPv6地址為0xFF.經(jīng)節(jié)點(diǎn)7轉(zhuǎn)發(fā)后,報(bào)文源地址擴(kuò)展為0x01FF.接著,在節(jié)點(diǎn)5實(shí)施頂點(diǎn)轉(zhuǎn)發(fā),源地址需增加節(jié)點(diǎn)5的有效尋徑地址,擴(kuò)展為0x020101FF. 3算法設(shè)計(jì) 物聯(lián)子網(wǎng)內(nèi)部通信時(shí),可直接使用尾部0值已去除的地址進(jìn)行節(jié)點(diǎn)標(biāo)識(shí)及尋徑.所以,去除尾部0值只發(fā)生在報(bào)文經(jīng)網(wǎng)關(guān)轉(zhuǎn)發(fā)到物聯(lián)子網(wǎng)時(shí)實(shí)施.去除尾部0值,關(guān)鍵是計(jì)算報(bào)文目的IP的有效尋徑地址位數(shù),算法中通過尋找第1個(gè)等于0的層次比特位來確定有效尋徑地址位的最后位置.相反,網(wǎng)關(guān)節(jié)點(diǎn)將物聯(lián)子網(wǎng)內(nèi)的報(bào)文轉(zhuǎn)發(fā)到外部時(shí),需要補(bǔ)足尾部的0比特位. 上述IPv6地址壓縮技術(shù)通過實(shí)施在不同設(shè)備的算法來完成. 算法1. 網(wǎng)關(guān)實(shí)施地址壓縮. 令物聯(lián)子網(wǎng)64位前綴為PFX64,LB[j].b為第j層節(jié)點(diǎn)的層次比特位在128位IPv6地址中的起始位置.算法1核心思想如圖3所示. Fig. 3 Address compression in gateway.圖3 網(wǎng)關(guān)實(shí)施地址壓縮 步驟1. 接收?qǐng)?bào)文,根據(jù)目的IPv6地址查轉(zhuǎn)發(fā)表確定報(bào)文處理行為. 步驟3. 實(shí)施目的IP去除尾部0值操作. 步驟3.1. 初始化j=2.因?yàn)榈?層層次比特位不為0,只有后續(xù)描述的虛擬地址的第1層層次比特位為0,但它并不是尾部0值,不能去除. 步驟3.2. 取IPdst中的第j層的層次比特位為A,它是IPdst從LB[j].b位開始的連續(xù)LB[j].n位. 步驟3.3. 若A≠0,執(zhí)行步驟3.4;若A=0,則可去除IPdst中從第LB[j].b位到末尾的所有0值,即Addr_tail0_del(IPdst,(128-LB[j].b)),執(zhí)行步驟4. 步驟3.4. 若j=Lmax(最后的層次比特位),表示IPdst尾部并沒有無效的0值,執(zhí)行步驟4;否則,j++,跳轉(zhuǎn)執(zhí)行步驟3.2. 步驟4. 將報(bào)文目的IP地址的64位前綴剝離:IPdst=Addr_strip(IPdst,PFX64),將源IP轉(zhuǎn)換為物聯(lián)子網(wǎng)內(nèi)部虛擬地址(見算法3地址映射),算法結(jié)束. 步驟5. 報(bào)文目的IP地址轉(zhuǎn)換為外部IP地址(見算法3地址映射). 步驟6. 將報(bào)文源IP地址擴(kuò)展64位前綴:IPsrc=Addr_extend(IPsrc,PFX64),獲取IPsrc的位數(shù)為k,Addr_tail0_add(IPsrc,128-k),算法結(jié)束. 算法2. 非網(wǎng)關(guān)節(jié)點(diǎn)實(shí)施地址壓縮. 令該節(jié)點(diǎn)Ni的有效尋徑地址位為VA(i),所占比特位數(shù)為VAN(i),層次比特位的值為Ni.val,子樹地址范圍為ARST[i].len.本算法不分析報(bào)文目的地址為Ni的情況,這由傳統(tǒng)處理完成,算法核心思想如圖4所示. Fig. 4 Address compression in forwarding node.圖4 轉(zhuǎn)發(fā)節(jié)點(diǎn)地址壓縮 步驟1. 節(jié)點(diǎn)Ni接收IP報(bào)文,根據(jù)源MAC地址判斷上一跳身份,如報(bào)文來自父節(jié)點(diǎn)則執(zhí)行步驟2,如報(bào)文來自子節(jié)點(diǎn)則執(zhí)行步驟3. 步驟2. 此時(shí)為下行傳輸,將Ni的層次比特位從報(bào)文的目的IP地址中剝離:IPdst=Addr_strip(IPdst,Ni.val),算法結(jié)束. 步驟3. 此時(shí)為上行傳輸,如果節(jié)點(diǎn)的所轄地址范圍ARST[i]與報(bào)文目的地址的前ARST[i].len位相等,表示該節(jié)點(diǎn)將實(shí)施頂點(diǎn)轉(zhuǎn)發(fā),上行轉(zhuǎn)下行,執(zhí)行步驟4;否則繼續(xù)上行傳輸,執(zhí)行步驟5. 步驟4. 將Ni的有效尋徑地址位擴(kuò)展到報(bào)文源IP地址中:IPsrc=Addr_extend(IPsrc,VA(i)),將Ni的有效尋徑位從報(bào)文目的IP地址中剝離:IPdst=Addr_strip(IPdst,VA(i)),算法結(jié)束. 步驟5. 將Ni的層次比特位擴(kuò)展到報(bào)文源IP地址中:IPsrc=Addr_extend(IPsrc,Ni.val),算法結(jié)束. 4報(bào)文格式設(shè)計(jì) 上述3種地址壓縮技術(shù)面臨的一個(gè)問題是:各物聯(lián)網(wǎng)節(jié)點(diǎn)IPv6地址的長(zhǎng)度是可變的,而且同一報(bào)文在傳輸過程中地址長(zhǎng)度也不斷發(fā)生改變.因此,IACH機(jī)制需要在報(bào)文中設(shè)計(jì)專門的地址長(zhǎng)度字段. 物聯(lián)子網(wǎng)內(nèi)部傳輸時(shí),節(jié)點(diǎn)地址長(zhǎng)度大于0且小于等于64 b.壓縮后地址的長(zhǎng)度以8 b(1 B)為單位進(jìn)行描述,3個(gè)比特足以存儲(chǔ)壓縮后的IPv6地址長(zhǎng)度,但為了處理方便,我們用半個(gè)字節(jié)(即4 b)來存儲(chǔ)壓縮后的IPv6地址長(zhǎng)度.所以報(bào)文中源、目的地址長(zhǎng)度總共需要1 B的描述.例如,長(zhǎng)度字段為0x35,表示報(bào)文中源IPv6地址長(zhǎng)度為3 B(24 b),目的IPv6地址長(zhǎng)度為5 B(40 b). 考慮與現(xiàn)有典型系統(tǒng)的兼容,設(shè)計(jì)了基于6LoWPAN協(xié)議的IACH報(bào)文存儲(chǔ)格式.6LoWPAN機(jī)制中,IPHC壓縮格式有8 b的固定字段:1) CID(1 b)是上下文標(biāo)識(shí)符位,當(dāng)CID位為1時(shí)在DAM字段后存儲(chǔ)8 b的上下文索引值(源、目的IP各4 b);2)SAC(1 b)與SAM(2 b)共同描述源IPv6地址壓縮狀態(tài);3)DAC(1 b)與DAM(2 b)共同描述目的IPv6地址壓縮狀態(tài);4)M(1 b)表示目的IPv6地址是否為組播地址.IACH機(jī)制中,修改協(xié)議格式實(shí)現(xiàn)本文壓縮技術(shù),如圖5所示: Fig. 5 Compression address format in 6LoWPAN packet.圖5 6LoWPAN報(bào)文中地址壓縮存儲(chǔ)格式 SAC為0且SAM為00表示報(bào)文實(shí)施了IACH機(jī)制的源地址壓縮,4 b的SAL存儲(chǔ)源地址的長(zhǎng)度,報(bào)文攜帶變長(zhǎng)的源IP地址. DAC為0且DAM為00表示報(bào)文實(shí)施了IACH機(jī)制的目的地址壓縮,4 b的DAL存儲(chǔ)目的地址的長(zhǎng)度,報(bào)文攜帶變長(zhǎng)的目的IP地址. 在原有IPHC壓縮格式中,上述SAC為0且SAM為00和DAC為0且DAM為00的描述均表示無狀態(tài)壓縮情況時(shí)攜帶完整的128 b源、目的地址.本文IACH機(jī)制中,已不需要攜帶128 b地址,所以利用該標(biāo)志表示IACH壓縮.例如,圖2中節(jié)點(diǎn)12向節(jié)點(diǎn)9發(fā)送報(bào)文,IACH機(jī)制導(dǎo)致報(bào)文在傳輸過程中地址也不斷發(fā)生改變,變化過程如圖6所示.方框描述了傳輸過程源目的地址長(zhǎng)度及內(nèi)容.第1項(xiàng)為SAL,第2項(xiàng)為DAL,第3項(xiàng)為壓縮后的源IPv6地址,第4項(xiàng)為壓縮后的目的IPv6地址.例如,轉(zhuǎn)發(fā)第1跳,節(jié)點(diǎn)12向節(jié)點(diǎn)7發(fā)出的報(bào)文中,源地址為0xFF且長(zhǎng)度為1 B,目的地址為0x02FF01且長(zhǎng)度為3 B,所以6LoWPAN報(bào)文中的源、目的地址可存儲(chǔ)為:0x1 3 FF 02FF01. 需要說明:IACH壓縮機(jī)制中,當(dāng)層次比特位小于8時(shí),報(bào)文中IP地址長(zhǎng)度可能不是整數(shù)個(gè)字節(jié),此時(shí)報(bào)文中的地址信息需要增加填充位. Fig. 6 Changes of content and length of packets during transmission.圖6 報(bào)文傳輸過程中地址內(nèi)容及長(zhǎng)度的變化 5外部地址動(dòng)態(tài)映射 地址剝離、地址擴(kuò)展等技術(shù)能高效壓縮物聯(lián)子網(wǎng)范圍的IPv6地址.然而,當(dāng)外部系統(tǒng)與物聯(lián)網(wǎng)節(jié)點(diǎn)通信時(shí),現(xiàn)有機(jī)制難以針對(duì)物聯(lián)子網(wǎng)外部IPv6地址實(shí)施壓縮傳輸,因?yàn)橥獠康刂贩秶?不但64 b主機(jī)位雜亂無規(guī)律,64 b前綴也完全無章可循. 本文提出了基于地址映射的外部地址壓縮方法,網(wǎng)關(guān)節(jié)點(diǎn)將物聯(lián)子網(wǎng)外部IPv6地址映射成規(guī)則的、易壓縮的內(nèi)部IPv6地址,確保物聯(lián)子網(wǎng)內(nèi)傳輸報(bào)文時(shí)地址壓縮的高效性.IACH機(jī)制預(yù)留部分內(nèi)部IPv6地址形成“地址池”,專用于外部地址映射.外部IPv6地址在物聯(lián)子網(wǎng)傳輸時(shí)臨時(shí)映射到“地址池”中的某一個(gè)地址,本文稱這些預(yù)留的內(nèi)部地址為虛擬IPv6地址(V_Addr). 設(shè)計(jì)虛擬地址集合為層次轉(zhuǎn)發(fā)樹中第1層層次比特位為0x00的子樹所轄節(jié)點(diǎn)對(duì)應(yīng)的地址(真實(shí)物聯(lián)網(wǎng)節(jié)點(diǎn)不使用這些地址),對(duì)應(yīng)節(jié)點(diǎn)被稱為虛擬節(jié)點(diǎn)(V_Node).層次轉(zhuǎn)發(fā)模型中虛擬地址沒有被分配給真實(shí)節(jié)點(diǎn),該類地址的數(shù)量可達(dá)256.圖7中橢圓范圍內(nèi)的著色節(jié)點(diǎn)就是虛擬節(jié)點(diǎn),對(duì)應(yīng)的地址為虛擬地址.例如,虛擬節(jié)點(diǎn)V_NodeA對(duì)應(yīng)地址PFX64:0001::64(壓縮后為0x0001),虛擬節(jié)點(diǎn)V_NodeD對(duì)應(yīng)地址PFX64:0002:0100::64(壓縮后為0x000201). Fig. 7 Virtual address in IoT subnet.圖7 物聯(lián)子樹中的虛擬地址 當(dāng)然,用于映射的虛擬地址數(shù)量并不需要太多,而且也不是越多越好,主要有2個(gè)方面考慮: 1) 虛擬地址數(shù)量只需支撐同一時(shí)刻與物聯(lián)子網(wǎng)節(jié)點(diǎn)通信的外部系統(tǒng)IPv6地址數(shù)量.假如地址為IP6ex的外部系統(tǒng)同時(shí)與多個(gè)物聯(lián)網(wǎng)節(jié)點(diǎn)通信,只需使用1個(gè)虛擬地址,也只會(huì)產(chǎn)生1條地址映射項(xiàng). 2) 地址池容量可根據(jù)實(shí)際情況配置,容量太大會(huì)給地址映射的實(shí)現(xiàn)帶來過多負(fù)載.虛擬地址的獲取、釋放以及映射項(xiàng)查找等操作的效率,都與地址池的容量成反比. 定義7. 外部地址映射.物聯(lián)網(wǎng)網(wǎng)關(guān)構(gòu)建的外部IPv6地址IP6ex與物聯(lián)子網(wǎng)內(nèi)部IPv6虛擬地址V_Addr的對(duì)應(yīng)關(guān)系,稱為外部地址映射(external address mapping,EAM),記為 EAM:V_Addr?IP6ex. 不同時(shí)間可能有多個(gè)外部地址對(duì)應(yīng)同一個(gè)虛擬地址,但某一時(shí)刻該映射必定是一對(duì)一映射關(guān)系. 地址映射相關(guān)的處理都在網(wǎng)關(guān)實(shí)施,描述如下: 算法3. 網(wǎng)關(guān)實(shí)施外部地址映射. 令全部虛擬地址集合為Sall(默認(rèn)255個(gè)地址),當(dāng)前可用的虛擬地址集合為Savl,映射項(xiàng)集合為Seam;初始時(shí)有:Savl=Sall,Seam=?.本算法不分析報(bào)文目的地址為網(wǎng)關(guān)的情況,核心思想如圖8所示: Fig. 8 External Address mapping.圖8 外部地址映射 步驟1. 物聯(lián)網(wǎng)網(wǎng)關(guān)接收IP報(bào)文,根據(jù)目的IP查表確定報(bào)文處理行為. 步驟2. 若是將物聯(lián)子網(wǎng)外部報(bào)文向內(nèi)部轉(zhuǎn)發(fā),執(zhí)行步驟3;若是將物聯(lián)子網(wǎng)內(nèi)部報(bào)文向外部轉(zhuǎn)發(fā)(此時(shí)目的IP為虛擬地址,形如0x00…),執(zhí)行步驟5. 步驟3. 取出報(bào)文源IP為IP6src,從集合Savl中獲得任一地址V_Addr,并生成映射項(xiàng)V_Addr?IP6src;同時(shí),Savl=Savl-{V_Addr},Seam=Seam+{V_Addr?IP6src}. 步驟4. 修改報(bào)文的源IP地址為V_Addr,并繼續(xù)后續(xù)轉(zhuǎn)發(fā)處理,算法結(jié)束. 步驟5. 取出報(bào)文目的IP地址,令其為IP6dst(一個(gè)虛擬IPv6地址),在Seam中查找其對(duì)應(yīng)的映射項(xiàng). 步驟6. 若查找失敗,報(bào)錯(cuò),算法結(jié)束;否則,找到映射項(xiàng)IP6dst?IP6ex,執(zhí)行步驟7. 步驟7. 將報(bào)文目的IPv6地址由IP6dst更改為IP6ex,繼續(xù)后續(xù)轉(zhuǎn)發(fā)處理,算法結(jié)束. 說明,外部地址映射和物聯(lián)子網(wǎng)地址壓縮都在網(wǎng)關(guān)融合實(shí)施,但為了便于理解,本文分別進(jìn)行了描述. 上述地址映射處理性能主要與地址映射項(xiàng)查找關(guān)聯(lián),由于虛擬地址數(shù)量不多,映射表以一維數(shù)組形式存儲(chǔ).如圖9所示,一次內(nèi)存訪問可完成映射項(xiàng)查詢.當(dāng)然,特殊場(chǎng)景中如有較大的并發(fā)外部訪問數(shù)據(jù)流,則需要優(yōu)化上述映射表結(jié)構(gòu),簡(jiǎn)單的HASH存儲(chǔ)就可完成,本文不做詳述. Fig. 9 Storage of mapping table for virtual address.圖9 虛擬地址映射表存儲(chǔ) 此外,針對(duì)地址映射項(xiàng)需要有超時(shí)刪除及?;顧C(jī)制.設(shè)定單條地址映射項(xiàng)的空閑超時(shí)時(shí)間為Ttm,若Ttm時(shí)間段無數(shù)據(jù)流匹配該映射項(xiàng)就將其刪除.另外,也需設(shè)定映射項(xiàng)保活機(jī)制,只要轉(zhuǎn)發(fā)過程中使用了某映射項(xiàng),其超時(shí)時(shí)間就恢復(fù)到Ttm. 動(dòng)態(tài)地址映射特征包括:1)虛擬地址與真實(shí)物聯(lián)子網(wǎng)節(jié)點(diǎn)的地址屬于同一個(gè)64 b前綴,使得物聯(lián)子網(wǎng)內(nèi)的協(xié)議報(bào)文全部屬于同一個(gè)網(wǎng)絡(luò)前綴,所有傳輸只需關(guān)注IP地址的后64 b主機(jī)位;2)地址映射項(xiàng)存儲(chǔ)和地址轉(zhuǎn)換都在網(wǎng)關(guān)處理,映射機(jī)制對(duì)普通物聯(lián)網(wǎng)節(jié)點(diǎn)透明;3)使用的虛擬地址壓縮效果極高,128 b的外部地址通常只占用16 b的存儲(chǔ),可獲得高達(dá)8的壓縮比;4)支持地址動(dòng)態(tài)映射,可以使用相對(duì)較少的虛擬地址實(shí)現(xiàn)其與更多外部地址的轉(zhuǎn)換,從而提升網(wǎng)關(guān)中地址映射模塊的實(shí)現(xiàn)效率. 總結(jié)IACH機(jī)制中各角色的工作如下: 1) 上行轉(zhuǎn)發(fā)節(jié)點(diǎn).源IP地址擴(kuò)展層次比特位. 2) 下行轉(zhuǎn)發(fā)節(jié)點(diǎn).目的IP地址剝離層次比特位. 3) 頂點(diǎn)轉(zhuǎn)發(fā)節(jié)點(diǎn).源IP地址擴(kuò)展有效尋徑地址位,目的IP地址剝離有效尋徑地址位. 4) 網(wǎng)關(guān).向物聯(lián)子網(wǎng)內(nèi)部轉(zhuǎn)發(fā)流量時(shí),目的IP去尾部0值及剝離前綴,源IP實(shí)施地址映射; 向物聯(lián)子網(wǎng)外部轉(zhuǎn)發(fā)流量時(shí),源IP實(shí)施補(bǔ)尾部0值及前綴擴(kuò)展,目的IP進(jìn)行地址映射. 6實(shí)驗(yàn)及性能分析 IACH機(jī)制中,除了8 b IPHC格式的固定字段[6],新增了SAL和DAL字段(共8 b).當(dāng)然,現(xiàn)有互聯(lián)網(wǎng)中傳統(tǒng)非壓縮的IPv6地址存儲(chǔ)占用固定長(zhǎng)度,源、目的地址各128 b,共256 b. IACH機(jī)制主要面向非本地鏈路地址的通信,其壓縮性能分析主要涉及以下傳輸場(chǎng)景: 1) CASE1(內(nèi)外通信).物聯(lián)子網(wǎng)節(jié)點(diǎn)與物聯(lián)子網(wǎng)外部系統(tǒng)通信時(shí),報(bào)文在物聯(lián)子網(wǎng)傳輸時(shí)的地址壓縮分析.源為外部地址,目的為物聯(lián)子網(wǎng)內(nèi)部地址;或是目的為外部地址,源為物聯(lián)子網(wǎng)內(nèi)部地址. 首先,分析CASE1的地址壓縮比.6LoWPAN機(jī)制中必須存儲(chǔ)上述8 b固定字段.另外,由于物聯(lián)子網(wǎng)可接受任意外部IPv6地址訪問,無法利用上下文標(biāo)識(shí)符進(jìn)行壓縮,須存儲(chǔ)完整的128 b外部IPv6地址.同時(shí),對(duì)于物聯(lián)子網(wǎng)內(nèi)部IPv6全局地址,有2種可能:1)存儲(chǔ)128 b地址信息;2)根據(jù)上下文標(biāo)識(shí)省略64 b網(wǎng)絡(luò)前綴信息,需要8 b的上下文索引值.所以,上述2種情況的地址壓縮比分別為 令2種情況發(fā)生概率相同,則平均壓縮比為1.1. Fig. 10 Address compression ratio for communication between IoT nodes and external system.圖10 物聯(lián)子網(wǎng)節(jié)點(diǎn)與外部通信的地址壓縮比 IACH機(jī)制中,假設(shè)與外部通信的物聯(lián)子網(wǎng)節(jié)點(diǎn)為Ni,則地址壓縮最好情況發(fā)生在Ni向其父節(jié)點(diǎn)發(fā)送或Ni父節(jié)點(diǎn)向Ni發(fā)送時(shí);最差情況發(fā)生在第1層節(jié)點(diǎn)和物聯(lián)子網(wǎng)根節(jié)點(diǎn)之間的報(bào)文傳輸時(shí),此時(shí)需要存儲(chǔ)節(jié)點(diǎn)Ni整個(gè)有效尋徑地址位.例如,圖2中節(jié)點(diǎn)12向外部系統(tǒng)發(fā)送報(bào)文,最好情況發(fā)生在節(jié)點(diǎn)12到節(jié)點(diǎn)7的傳輸,只需存儲(chǔ)節(jié)點(diǎn)12的層次比特位0xFF;最壞情況發(fā)生在節(jié)點(diǎn)3到節(jié)點(diǎn)1的傳輸,需存儲(chǔ)節(jié)點(diǎn)12的有效尋徑地址位0x020101FF. 圖10給出了IACH和6LoWPAN機(jī)制在內(nèi)外通信時(shí)地址壓縮比分析.IACH地址壓縮比最大為8,最小為3.55,且平均壓縮比隨著通信節(jié)點(diǎn)的層數(shù)增加而減小,但相對(duì)6LoWPAN卻有明顯的優(yōu)勢(shì). 接著,分析CASE2的地址壓縮比.物聯(lián)子網(wǎng)內(nèi)部通信時(shí)的地址壓縮分析更為復(fù)雜,先給出關(guān)于最近公共祖先節(jié)點(diǎn)的定義. (2) (3) 其中,0 報(bào)文上行傳輸時(shí)的目的IPv6地址及下行傳輸時(shí)的源IPv6地址都需存儲(chǔ)對(duì)應(yīng)節(jié)點(diǎn)的整個(gè)有效尋徑地址位.針對(duì)節(jié)點(diǎn)Ni的地址,其作為源地址出現(xiàn)在第k層向k-1層傳輸?shù)膱?bào)文中的比特位數(shù),與其作為目的地址出現(xiàn)在第k-1層向第k層傳輸?shù)膱?bào)文中的比特位數(shù)相等.當(dāng)然,這2種情況存儲(chǔ)Ni地址的具體內(nèi)容也相同.所以,有式(4)成立: (4) Fig. 11 Communication topology inside IoT subnet.圖11 物聯(lián)子網(wǎng)內(nèi)部通信拓?fù)鋱D 不失一般性,針對(duì)圖11計(jì)算物聯(lián)子網(wǎng)內(nèi)部通信時(shí)地址壓縮比.Ni上行傳輸時(shí)目的IP地址存儲(chǔ)長(zhǎng)度不變,一直為Nj的有效尋徑地址位,即: (5) 繼而,圖11中Ni到Nj傳輸時(shí),上行傳輸是Ni到Np,源IP地址存儲(chǔ)長(zhǎng)度共為 (6) 同理,分析Ni到Nj下行傳輸過程.最終,可推導(dǎo)得到IP地址平均存儲(chǔ)長(zhǎng)度為 (7) 所以,IACH模型物聯(lián)子網(wǎng)內(nèi)部,Ni和Nj通信中,源目的IP地址平均存儲(chǔ)長(zhǎng)度與如下因素相關(guān): 1) 最低公共祖先節(jié)點(diǎn)的層數(shù)Np.lay.其它因素不變,其值越小,IP地址平均存儲(chǔ)長(zhǎng)度越小. 2)Ni和Nj到最近公共祖先節(jié)點(diǎn)的跳數(shù)距離和D(i,j).其它因素不變,其值越小,IP地址平均存儲(chǔ)長(zhǎng)度越小. 基于表1所述真實(shí)節(jié)點(diǎn)進(jìn)行實(shí)驗(yàn),并將IACH與現(xiàn)有6LoWPAN進(jìn)行比較分析. Table 1 Parameters of IoT Nodes for Experiments Fig. 12 Experiment topology.圖12 實(shí)驗(yàn)拓?fù)鋱D 實(shí)驗(yàn)拓?fù)淙鐖D12所示,物聯(lián)子網(wǎng)層數(shù)為6. 1) 測(cè)試不同壓縮機(jī)制下IP上層數(shù)據(jù)的最大負(fù)載長(zhǎng)度.由于物聯(lián)子網(wǎng)內(nèi)部IP地址與其它IP地址在結(jié)構(gòu)上具有明顯的差異,實(shí)驗(yàn)分別針對(duì)2種場(chǎng)景進(jìn)行:CASE1,物聯(lián)網(wǎng)節(jié)點(diǎn)與外部互聯(lián)網(wǎng)設(shè)備通信;CASE2,物聯(lián)網(wǎng)內(nèi)部節(jié)點(diǎn)間通信.實(shí)驗(yàn)結(jié)果如表2所示,IEEE 802.15.4鏈路層幀所能承載的最大字節(jié)數(shù)都是125,而IACH機(jī)制在2種場(chǎng)景下都比原始6LoWPAN獲得更大的IP上層數(shù)據(jù)負(fù)載長(zhǎng)度,IACH機(jī)制的最差情況也好于6LoWPAN最好情況. Table 2Max Payload of IP-upper Data in Different Compression Mechanism 表2 不同壓縮機(jī)制下IP上層數(shù)據(jù)的最大負(fù)載 Fig. 13 Forwarding delay.圖13 轉(zhuǎn)發(fā)時(shí)延 2) 測(cè)試不同壓縮機(jī)制的報(bào)文轉(zhuǎn)發(fā)時(shí)延.無論6LoWPAN或IACH壓縮機(jī)制,報(bào)文中的鏈路層和6LoWPAN適配層長(zhǎng)度都不固定,所以實(shí)驗(yàn)針對(duì)不同的IP上層數(shù)據(jù)長(zhǎng)度測(cè)量轉(zhuǎn)發(fā)性能.實(shí)驗(yàn)結(jié)果如圖13所示,對(duì)于相同長(zhǎng)度的IP上層負(fù)載,無論內(nèi)外通信或內(nèi)部通信,IACH機(jī)制下的報(bào)文轉(zhuǎn)發(fā)時(shí)延都略小于原有6LoWPAN機(jī)制.圖13中,轉(zhuǎn)發(fā)時(shí)延的陡然升高是報(bào)文分片導(dǎo)致的,因?yàn)榇藭r(shí)傳輸內(nèi)容超過了最大IP上層負(fù)載.所以,相對(duì)現(xiàn)有6LoWPAN 機(jī)制,IACH機(jī)制能在不增加轉(zhuǎn)發(fā)時(shí)延的前提下,明顯提升網(wǎng)絡(luò)帶寬利用率,起到綠色節(jié)能的功效. 7總結(jié) IPv6作為物聯(lián)網(wǎng)節(jié)點(diǎn)的統(tǒng)一標(biāo)識(shí)已得到廣泛認(rèn)可.然而,128 b的IPv6地址格式在存儲(chǔ)、協(xié)議帶寬等方面給物聯(lián)網(wǎng)節(jié)點(diǎn)帶來了不小的負(fù)擔(dān).而且,物聯(lián)網(wǎng)典型鏈路層控制協(xié)議IEEE 802.15.4所能承載的幀長(zhǎng)度較小,這給IPv6頭部壓縮研究提出了很高的要求.本文提出了新型地址壓縮機(jī)制IACH,通過地址壓縮提升物聯(lián)網(wǎng)報(bào)文傳輸?shù)挠行挶壤?IACH主要包括3種地址壓縮技術(shù):1)去除IPv6地址末尾的無效尋徑信息,即尾部“0”值;2)下行傳輸時(shí)針對(duì)目的IPv6地址的地址剝離技術(shù);3)上行傳輸時(shí)針對(duì)源IPv6地址的地址擴(kuò)展技術(shù).IACH機(jī)制還面向物聯(lián)子網(wǎng)節(jié)點(diǎn)與子網(wǎng)外部互聯(lián)網(wǎng)節(jié)點(diǎn)的通信提出了基于網(wǎng)關(guān)實(shí)施的虛擬地址映射機(jī)制,確保外部地址在物聯(lián)子網(wǎng)傳輸時(shí)的高效壓縮存儲(chǔ).IACH機(jī)制突破了現(xiàn)有6LoWPAN壓縮范圍的局限,大幅增加了數(shù)據(jù)包中IP上層數(shù)據(jù)的最大負(fù)載長(zhǎng)度.而且,IACH機(jī)制基于6LoWPAN協(xié)議擴(kuò)展實(shí)現(xiàn),與6LoWPAN已有功能兼容.基于真實(shí)節(jié)點(diǎn)的實(shí)驗(yàn)表明IACH轉(zhuǎn)發(fā)處理時(shí)延略低于標(biāo)準(zhǔn)6LoWPAN. 參考文獻(xiàn) [1]Xie Kaibin, Chen Haiming, Cui Li. PMDA: A physical model driven software architecture for Internet of things[J]. Journal of Computer Research and Development, 2013, 50(6): 1185-1197 (in Chinese)(謝開斌, 陳海明, 崔莉. PMDA: 一種物理模型驅(qū)動(dòng)的物聯(lián)網(wǎng)軟件體系結(jié)構(gòu)[J]. 計(jì)算機(jī)研究與發(fā)展, 2013, 50(6): 1185-1197) [2]Kim E, Kaspar D, Gomez C, et al. RFC 6606: Problem statement and requirements for IPv6 over low-power wireless personal area network (6LoWPAN) routing[S]. The Internet Society, 2012 [3]Winter T, Thubert P, Hui J, et al. RFC 6550: RPL: IPv6 routing protocol for low-power and lossy networks[S]. The Internet Society, 2012 [4]Dunkels A, Gronvall B, Voigt T. Contiki-a lightweight and flexible operating system for tiny networked sensors[C] //Proc of the 29th Annual IEEE Int Conf on Local Computer Networks (LCN’04). Los Alamitos, CA: IEEE Computer Society, 2004: 455-462 [5]Levis P, Madden S, Polastre J, et al. TinyOS: An operating system for sensor networks[G] //Ambient Intelligence. Berlin: Springer, 2005: 115-148 [6]Xiao Rong, Chen Wenlong, Sun Bo. Light weight and tree-based forwarding model in IPv6 IoT subnet[J]. Journal of Software, 2014, 25(8): 1729-1742 (in Chinese)(肖融, 陳文龍, 孫波. 面向IPv6物聯(lián)子網(wǎng)的輕量級(jí)樹型轉(zhuǎn)發(fā)模型[J]. 軟件學(xué)報(bào), 2014, 25(8): 1729-1742) [7]Vasseur J P, Dunkels A. Interconnecting Smart Objects with IP-the Next Internet[M]. San Francisco, CA: Morgan Kaufmann, 2010: 29-38 [8]Meyer D, Zhang L, Fall K. RFC 4984: Report from the IAB workshop on routing and addressing[S]. The Internet Society, 2007 [9]Deering S, Hinden R. RFC 2460: Internet protocol version 6 (IPv6) specification[S]. The Internet Society, 1998 [10]Gutierrez J A, Naeve M, Callaway E, et al. IEEE 802.15.4: A developing standard for low-power low-cost wireless personal area networks[J]. IEEE Network, 2001, 15(5): 12-19 [11]Pelletier G, Sandlund K. RFC 5225: Robust header compression version 2 (ROHCv2): Profiles for RTP, UDP, IP, ESP and UDP-Lite[S]. The Internet Society, 2008 [12]Montenegro G, Kushalnagar N, Hui J. RFC 4944: Transmission of IPv6 packets over IEEE 802.15.4 networks[S]. The Internet Society, 2007 [13]Hui J, Thubert P. RFC 6282: Compression format for IPv6 datagrams over IEEE 802.15.4-based networks[S]. The Internet Society, 2011 [14]Singh S, Singh M, Singh D. A survey of energy-efficient hierarchical cluster-based routing in wireless sensor networks [J]. International Journal of Advanced Networking and Application, 2010, 2(2): 570-580 [15]Shen Bo, Zhang Shiyong, Zhong Yiping. Cluster-based routing protocols for wireless sensor networks[J]. Journal of Software, 2006, 17(7): 1588-1600 (in Chinese)(沈波, 張世永, 鐘亦平. 無線傳感器網(wǎng)絡(luò)分簇路由協(xié)議[J]. 軟件學(xué)報(bào), 2006, 17(7): 1588-1600) Xiao Rong, born in 1974. Master, lecturer. Her research interests include Internet of things and Internet architecture. Sun Bo, born in 1966. PhD, professor. His research interests include computer application technology. Chen Wenlong, born in 1976. PhD, associate professor. His research interests include network protocol and network architecture. Xiao Yongkang, born in 1974. PhD, associate professor. His research interests include computer network. Wei Yungang, born in 1981. PhD, senior engineer. His research interests include computer network. Address Compression for Hierarchical Forwarding Architecture in IPv6 IoT Xiao Rong1, Sun Bo1, Chen Wenlong2, Xiao Yongkang1, and Wei Yungang1 1(CollegeofInformationScienceandTechnology,BeijingNormalUniversity,Beijing100875)2(CollegeofInformationEngineering,CapitalNormalUniversity,Beijing100048) AbstractAs one of the most significant parts of “Internet +”, Internet of things (IoT) is being widely applied in various aspects of human society. IPv6 identification is the base of large-scale deployment and interconnection of IoT. Nevertheless, the 128-bit IPv6 address brings more storage and bandwidth consumptions for resource-constrained IoT. A novel compression mechanism-named IACH is proposed for the hierarchical IoT forwarding architecture, which mainly includes: removing invalid routing message at the end of IPv6 address, address stripping, and address extension. Moreover, the irregular outside IPv6 addresses can be translated into virtual addresses of IoT subnets by means of address mapping, which is compressed according the described mechanism. IACH is fully compatible with 6LoWPAN. Experiments and performance analysis show that IACH can significantly increase the real upper payload in packets transmission. In particular, the forwarding delay of IACH is shorter than standard 6LoWPAN for packets with the same length of IP-upper payload. Key wordsInternet of things (IoT); hierarchical forwarding; address compression; IPv6; address mapping 收稿日期:2015-12-21;修回日期:2016-02-04 基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(61373161,61272446,61300171) 中圖法分類號(hào)TP393 This work was supported by the National Natural Science Foundation of China (61373161,61272446,61300171).