高翔
摘 要:分布式ID標(biāo)識(shí)是基于物聯(lián)網(wǎng)標(biāo)識(shí)的設(shè)計(jì)原則而進(jìn)行設(shè)計(jì)的,它在全域物聯(lián)網(wǎng)內(nèi)有效,即具有全球唯一性,并且能夠充分兼容局域物聯(lián)網(wǎng)內(nèi)多種短距離傳輸協(xié)議地址分配問(wèn)題,分布式ID標(biāo)識(shí)借鑒了互聯(lián)網(wǎng)現(xiàn)存的標(biāo)識(shí)技術(shù),并結(jié)合物聯(lián)網(wǎng)本身的特點(diǎn),構(gòu)造了一種分段分級(jí)的標(biāo)識(shí)結(jié)構(gòu),分段的標(biāo)識(shí)結(jié)構(gòu)有助于標(biāo)識(shí)的分配和管理。
關(guān)鍵詞:分布式ID;物聯(lián)網(wǎng)標(biāo)識(shí);設(shè)計(jì);實(shí)現(xiàn)
1 分布式ID標(biāo)識(shí)設(shè)計(jì)
1.1 分布式標(biāo)識(shí)結(jié)構(gòu)
目前分布式標(biāo)識(shí)定義為128位,標(biāo)識(shí)中的Flag字段固定為數(shù)字,主要用作物聯(lián)網(wǎng)地址標(biāo)識(shí),區(qū)別于互聯(lián)網(wǎng)的IP地址尋址;Type字段用于分類(lèi)局域網(wǎng)的協(xié)議類(lèi)型編碼,由于局域物聯(lián)網(wǎng)協(xié)議多類(lèi)型多樣化特征,設(shè)置Type類(lèi)型能做到協(xié)議兼容,接下來(lái)Company字段用于生產(chǎn)產(chǎn)品的廠商,這個(gè)主要由固定的國(guó)際編碼組織分配,而后Classify字段用于產(chǎn)品類(lèi)別標(biāo)識(shí),最后剩余的ID字段用于產(chǎn)品編碼,產(chǎn)品編碼可以適應(yīng)于多種類(lèi)型的協(xié)議,如Zigbee、藍(lán)牙、WiFi,產(chǎn)品編碼ID是通過(guò)分布式地址算法得到的,在局域網(wǎng)的路由過(guò)程中主要用到ID字段,前面的字段主要供上層應(yīng)用使用。
標(biāo)識(shí)體系中,ID字段占用了64bit,無(wú)論是藍(lán)牙無(wú)線網(wǎng)絡(luò)環(huán)境還是Zigbee無(wú)線網(wǎng)絡(luò)環(huán)境,分配時(shí)都在網(wǎng)絡(luò)中心設(shè)備處將局域的短地址轉(zhuǎn)化為64位,然后拼接上前面的64bit固定前綴,最后形成128位的最終地址。標(biāo)識(shí)前段的64bit是在設(shè)備生產(chǎn)時(shí)就寫(xiě)定的,一般都是存儲(chǔ)在一個(gè)網(wǎng)絡(luò)的中心設(shè)備上,網(wǎng)絡(luò)中心設(shè)備具有對(duì)局域網(wǎng)地址的構(gòu)建能力和解析定位能力。
1.2 分布式標(biāo)識(shí)的構(gòu)造
基于分布式ID的物聯(lián)網(wǎng)標(biāo)識(shí)的構(gòu)造過(guò)程如下:首先網(wǎng)關(guān)設(shè)置物聯(lián)網(wǎng)標(biāo)識(shí)值,這個(gè)值通常是固定的,比如:5。此值主要用于區(qū)分標(biāo)識(shí)地址是物聯(lián)網(wǎng)內(nèi)地址還是IP內(nèi)的地址,這樣做的好處是在地址到達(dá)網(wǎng)關(guān)后,網(wǎng)關(guān)可以根據(jù)標(biāo)識(shí)的類(lèi)型進(jìn)行進(jìn)一步處理,如果發(fā)現(xiàn)標(biāo)識(shí)值是5,那么網(wǎng)關(guān)就會(huì)把該地址當(dāng)做一個(gè)物聯(lián)網(wǎng)標(biāo)識(shí)來(lái)處理,否則只是一個(gè)普通的互聯(lián)網(wǎng)地址。當(dāng)一個(gè)實(shí)體需要加入到網(wǎng)絡(luò)中時(shí),網(wǎng)絡(luò)為其分配一個(gè)64位的ID,該ID表示了實(shí)體在局域網(wǎng)的地址,而后在網(wǎng)關(guān)設(shè)置局域網(wǎng)網(wǎng)絡(luò)協(xié)議類(lèi)型,如局域網(wǎng)值為8代表是Zigbee協(xié)議,局域網(wǎng)協(xié)議類(lèi)型值是固定的,每一種短距離傳輸協(xié)議都有一個(gè)協(xié)議類(lèi)型值,該協(xié)議值在全球唯一,由標(biāo)準(zhǔn)機(jī)構(gòu)進(jìn)行分配定義;協(xié)議類(lèi)型值代表該局域內(nèi)使用的無(wú)線傳輸協(xié)議,這樣做的好處是便于對(duì)64位ID做解析使用,然后網(wǎng)關(guān)節(jié)點(diǎn)設(shè)置出廠字段和物品分類(lèi)值,最終形成一個(gè)分布式標(biāo)識(shí)。
2 分布式ID標(biāo)識(shí)實(shí)現(xiàn)
分布式ID標(biāo)識(shí)是在節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),按照地址標(biāo)識(shí)規(guī)則,根據(jù)分布式地址分配算法而得的。分布式地址分配機(jī)制(DAAM)主要基于Lm(網(wǎng)絡(luò)最大深度)、Cm(子節(jié)點(diǎn)最大個(gè)數(shù))、Rm(父節(jié)點(diǎn)包含的路由子節(jié)點(diǎn)的最大個(gè)數(shù))三個(gè)重要參數(shù),DAAM分布的地址呈規(guī)律性,包含了“地址—位置”的對(duì)應(yīng)關(guān)系,通過(guò)對(duì)地址的計(jì)算能夠獲得路由信息。分布式地址配置步驟如下:
①網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)地址為0,確定組網(wǎng)參數(shù)Cm、Rm、Lm后,采用泛洪方式通知全網(wǎng)絡(luò);
②未入網(wǎng)節(jié)點(diǎn)在其鄰居表中查找出未被標(biāo)記且深度最小的潛在父節(jié)點(diǎn)(若有多個(gè)父節(jié)點(diǎn),則隨機(jī)選擇任一節(jié)點(diǎn)),然后向父節(jié)點(diǎn)周期地發(fā)送地址請(qǐng)求信息,直到父節(jié)點(diǎn)回復(fù)一個(gè)ACK確認(rèn)回復(fù)為止;然后父節(jié)點(diǎn)開(kāi)始為入網(wǎng)節(jié)點(diǎn)分配地址;
③地址為AParent的網(wǎng)內(nèi)路由節(jié)點(diǎn)收到未入網(wǎng)的節(jié)點(diǎn)的入網(wǎng)申請(qǐng)后,它作為父節(jié)點(diǎn),根據(jù)申請(qǐng)節(jié)點(diǎn)類(lèi)型和申請(qǐng)順序按照公式(2.1)為該申請(qǐng)節(jié)點(diǎn)分配地址;
Achildren=AParent+Cskip(d)·(n-1)+1 Tchildren=TrouterAParent+Cskip(d)·Rm+n Tchildren=Tend (2.1)
其中:d表示父節(jié)點(diǎn)的深度,等于父節(jié)點(diǎn)距離網(wǎng)絡(luò)協(xié)調(diào)器的跳數(shù)Hp,d≤Lm-1;n表示子節(jié)點(diǎn)申請(qǐng)加入的順序,1≤n≤Rm;Cskip(d)表示深度為d的路由節(jié)點(diǎn)在分配地址時(shí)的地址偏移量,其計(jì)算方法如公式(2.2)所示。
④當(dāng)潛在父節(jié)點(diǎn)收到加入申請(qǐng)后,若無(wú)剩余地址可用于分配,則回復(fù)拒絕加入消息。該申請(qǐng)節(jié)點(diǎn)對(duì)拒絕加入的潛在父節(jié)點(diǎn)進(jìn)行標(biāo)記,然后返回步驟②進(jìn)行下一輪的加入申請(qǐng)。
3 分布式地址標(biāo)識(shí)解析方法
為了和現(xiàn)有互聯(lián)網(wǎng)技術(shù)融合,分布式地址標(biāo)識(shí)結(jié)合了現(xiàn)有的DNS標(biāo)識(shí)解析過(guò)程和IP地址技術(shù),通過(guò)地址的轉(zhuǎn)化和分割過(guò)程,實(shí)現(xiàn)全域到局域地址的轉(zhuǎn)換。假設(shè)實(shí)體的物理地址為:1234567;它的128位網(wǎng)絡(luò)地址會(huì)因局域網(wǎng)絡(luò)環(huán)境的不同而不同,假設(shè)實(shí)體現(xiàn)在處于Zigbee網(wǎng)絡(luò)環(huán)境,那么在實(shí)體接入網(wǎng)絡(luò)時(shí),網(wǎng)絡(luò)中心網(wǎng)關(guān)會(huì)給它分配一個(gè)128位的標(biāo)識(shí)碼如:5.8.24.11.668,全球前綴碼5.8.24.11是中心網(wǎng)關(guān)在節(jié)點(diǎn)加入時(shí)已經(jīng)設(shè)定好的,節(jié)點(diǎn)ID由分布式地址分配算法所分配,假設(shè)該網(wǎng)關(guān)注冊(cè)于tscod.com域名下,網(wǎng)關(guān)對(duì)應(yīng)的IP地址是10.112.15.4,標(biāo)識(shí)的解析步驟如下:
①根據(jù)定義的標(biāo)識(shí)結(jié)構(gòu),標(biāo)識(shí)碼正好可以分為5段,分別是5,8,24,11,268;5
標(biāo)識(shí)當(dāng)前的地址是物聯(lián)網(wǎng)地址,8標(biāo)識(shí)當(dāng)前局域網(wǎng)內(nèi)協(xié)議的類(lèi)型為Zigbee,24是表示網(wǎng)絡(luò)中心的設(shè)備的生產(chǎn)廠編號(hào),11是產(chǎn)品分類(lèi)號(hào),最后剩余的268是64位的局域網(wǎng)短地址。
②網(wǎng)關(guān)將自身域名后綴和局域地拼接在一起從而生成新的全稱(chēng)域名:
5.8.24.11.268.268.tscod.com;
③DNS解析服務(wù)器根據(jù)全稱(chēng)域名會(huì)得到IP地址(該DNS解析器具有對(duì)物聯(lián)網(wǎng)地址的解析),如:域名服務(wù)器讀入全稱(chēng)域名:5.8.24.11.268.tscod.com,將會(huì)返回10.112.15.4這個(gè)IP地址,這樣地址解析就順利到達(dá)網(wǎng)關(guān)。
④隨后,網(wǎng)關(guān)判斷自身的局域網(wǎng)絡(luò)環(huán)境(type項(xiàng)),使用64位的局域地址尋址實(shí)體,依據(jù)網(wǎng)絡(luò)類(lèi)型,在地址解析時(shí)轉(zhuǎn)化到的短地
址也有所不同,找到實(shí)體之后,獲取該實(shí)體的物理地址,然后根據(jù)物理地址在網(wǎng)絡(luò)中查詢(xún)到物聯(lián)網(wǎng)信息服務(wù)器,從而實(shí)現(xiàn)信息的交互。