Thread是無線網(wǎng)狀網(wǎng)絡(luò)的未來,它有望成為“萬物”與Internet連接的關(guān)鍵技術(shù)。“萬物”可以籠統(tǒng)的定義為功耗敏感、資源受限的設(shè)備,它們通常結(jié)合了MCU、傳感器、RF技術(shù)和軟件。這些設(shè)備通過無線連接橋接到網(wǎng)絡(luò),而且能夠被遠(yuǎn)程控制和自動(dòng)化運(yùn)行。當(dāng)前已經(jīng)有多種無線技術(shù)能夠支持這種相互連接,但是Thread是為滿足家居互聯(lián)的特殊需求而設(shè)計(jì)的。它基于現(xiàn)有標(biāo)準(zhǔn),通過提供低功耗、安全和可擴(kuò)展的基于IP的無線網(wǎng)狀網(wǎng)絡(luò)協(xié)議,Thread成為IoT實(shí)現(xiàn)的關(guān)鍵技術(shù)所在。
為什么選擇IP
IP是Internet的主要通信協(xié)議。IP為IP網(wǎng)絡(luò)數(shù)據(jù)中繼提供了核心機(jī)制,它的路由能力實(shí)現(xiàn)了網(wǎng)絡(luò)互連。在Internet數(shù)十年快速發(fā)展之后,IP已經(jīng)無處不在。
本身不支持IP的網(wǎng)絡(luò)技術(shù)必須首先在網(wǎng)關(guān)中適配IP。這種處理過程涉及到本地網(wǎng)絡(luò)地址的映射,將網(wǎng)絡(luò)層數(shù)據(jù)包重新打包為IP數(shù)據(jù)包。如圖1所示,已加密的本地報(bào)文必須在網(wǎng)關(guān)中解密,然后重新在IP數(shù)據(jù)包中加密。
相比之下,本身支持IP的本地網(wǎng)絡(luò),例如Thread和Wi-Fi,能夠無介入的轉(zhuǎn)發(fā)和路由應(yīng)用的有效載荷。本地網(wǎng)絡(luò)加密的報(bào)文能夠安全的端到端傳輸。如圖2所示。
IPv6對(duì)比IPv4
IPv4支持32位尋址。但是自從上世紀(jì)90年代起,大約43億的地址空間越來越不能滿足Internet連接的增長預(yù)期。IPv6把地址長度增加到128位,這使得地址空間達(dá)到約240澗(1澗=10的36次方)!具有IPv6全球唯一地址(GUA)的本地設(shè)備可直接通過廣域網(wǎng)(WAN)尋址。
6LoWPAN
6LoWPAN是IPv6 over Low Power Wireless Personal Area Networks的縮寫。它可實(shí)現(xiàn)在802.15.4連接上有效傳輸IPv6數(shù)據(jù)報(bào),因此資源受限的設(shè)備(例如“萬物”)能夠自然的加入IoT。它支持三種關(guān)鍵功能:
●報(bào)文長度自適應(yīng)
IPv6支持的最小MTU(最大傳輸單元)是1280字節(jié)。在使用UDP(User Datagram Protocol)和DTLS(Datagram Transport Layer Security)的802.15.4報(bào)文中,典型應(yīng)用的有效載荷大小是63字節(jié)。6LoWPAN提供分段和重組機(jī)制以適配IPv6數(shù)據(jù)報(bào)到這些更小的802.15.4有效載荷。不合適大小的IPv6報(bào)文將被分成片段,并通過802.15.4在空中發(fā)送。不是所有的片段都能夠以正確的順序被接收。然而,6LoWPAN僅僅需要接收到所有片段,然后按照需要再重新排序分段。
●報(bào)頭壓縮
為了最大限度的減少在802.15.4幀中發(fā)送IPv6消息的開銷,6LoWPAN利用協(xié)議間的跨層冗余(例如源和目標(biāo)地址、負(fù)載長度、傳輸類型和流量標(biāo)簽)為IPv6和傳輸報(bào)頭提供透明的壓縮機(jī)制。Thread使用IPHC(Improved Header Compression)和NHC(Next Header Compression)。IPHC被用于壓縮IPv6報(bào)頭。NHC被用于壓縮UDP報(bào)頭。
●層間轉(zhuǎn)發(fā)
Thread使用IP路由轉(zhuǎn)發(fā)報(bào)文。IP路由表用于維護(hù)每一個(gè)目的和到達(dá)它的下一跳。6LoWPAN網(wǎng)狀報(bào)頭使用IP路由表來實(shí)現(xiàn)鏈路的下一跳轉(zhuǎn)發(fā)。
實(shí)現(xiàn)互聯(lián)
網(wǎng)絡(luò)市場中存在多種無線技術(shù)。從長遠(yuǎn)來看,我們認(rèn)為在互聯(lián)家居和IoT領(lǐng)域中主要有三個(gè)領(lǐng)先的協(xié)議解決方案:Wi-Fi、Bluetooth Smart和802.15.4網(wǎng)狀網(wǎng)絡(luò)協(xié)議。
Wi-Fi是家庭網(wǎng)絡(luò)中傳輸音頻、視頻和數(shù)據(jù)的骨干無線技術(shù)。它支持高數(shù)據(jù)率和輸出功率,然而功耗較大。因此其在電池供電的應(yīng)用中受到限制。
Bluetooth Smart適合連接智能手機(jī)的點(diǎn)對(duì)點(diǎn)解決方案,也適合在電池供電的設(shè)備上批量傳輸數(shù)據(jù)。雖然目前的解決方案本身不支持IP,但是Bluetooth Core Specification 4.2通過支持IPv6和6LoWPAN為支持IP奠定了基礎(chǔ)。
網(wǎng)狀網(wǎng)絡(luò)技術(shù)(例如ZigBee PRO和Thread)構(gòu)成了家居互聯(lián)的骨干連接。這些自恢復(fù)網(wǎng)絡(luò)已經(jīng)被優(yōu)化去支持低帶寬控制和自動(dòng)化應(yīng)用,在這類應(yīng)用中,支撐幾年的長電池壽命是關(guān)鍵點(diǎn)。
在過去的10年中,ZigBee PRO一直在802.15.4網(wǎng)狀網(wǎng)絡(luò)解決方案中占主導(dǎo)地位。它支持可靠、安全和可擴(kuò)展的網(wǎng)狀網(wǎng)絡(luò),支持超過250個(gè)節(jié)點(diǎn),也廣泛支持電池供電操作的可休眠的終端節(jié)點(diǎn)。
Thread建立在ZigBee基礎(chǔ)之上,具有安全、可靠和容錯(cuò)性好的優(yōu)勢。它也解決了市場中對(duì)于網(wǎng)狀網(wǎng)絡(luò)技術(shù)期待已久的需求:支持IPv6和6LoWPAN,為IoT中的每一個(gè)終端節(jié)點(diǎn)帶來亟需的IP連接能力。表1列舉了不同網(wǎng)絡(luò)協(xié)議的特性。
表1:IoT無線技術(shù)
為什么是Thread,為什么是現(xiàn)在?
Thread Group成立于2014年7月15日,目的是協(xié)作、共享專長和開發(fā)滿足這些需求的解決方案。成立一年后,Thread Group發(fā)布了Thread規(guī)范。該組織的創(chuàng)始成員包括Silicon Labs、Nest Labs、Yale Security、Samsung Electrics、Freescale Semiconductor、Big Ass Fans和ARM。
Thread的關(guān)注低功耗和固有支持IP實(shí)現(xiàn)了“萬物”和網(wǎng)絡(luò)之間無縫互聯(lián)的承諾。它不僅在低成本、電池供電的設(shè)備之間提供有效通信,也提供到云和移動(dòng)設(shè)備的簡單接口。Thread提供具有吸引力的全新無線網(wǎng)狀網(wǎng)絡(luò)解決方案,設(shè)計(jì)旨在滿足下列家居互聯(lián)需求:
●基于標(biāo)準(zhǔn)的協(xié)議
開放基于標(biāo)準(zhǔn)的協(xié)議,實(shí)現(xiàn)跨廠商的互操作性和競爭性。Thread以目前的包括IEEE 802.15.4在內(nèi)的IEEE和IETF標(biāo)準(zhǔn)為基礎(chǔ)。官方的Thread Specification已經(jīng)在2015年7月13日由Thread Group發(fā)布。
●簡化的配置
Thread摒棄了一些之前網(wǎng)狀網(wǎng)絡(luò)標(biāo)準(zhǔn)的復(fù)雜性。只有兩種不同的節(jié)點(diǎn)類型:Router Eligible和 End Device。
Router Eligible節(jié)點(diǎn)在需要支持網(wǎng)狀網(wǎng)絡(luò)時(shí)成為路由器。構(gòu)建網(wǎng)絡(luò)的第一個(gè)Router Eligible節(jié)點(diǎn)將自動(dòng)的被指定為路由器并作為Leader。Leader執(zhí)行額外的網(wǎng)絡(luò)管理任務(wù)并代表網(wǎng)絡(luò)做決定。網(wǎng)絡(luò)中的其他Router Eligible節(jié)點(diǎn)也能夠自動(dòng)的擔(dān)任Leader的角色,但是在一個(gè)時(shí)間內(nèi)每一個(gè)網(wǎng)絡(luò)中僅僅只能有一個(gè)Leader。
作為End Device加入的節(jié)點(diǎn)不支持任何路由功能。相反,它們把信息發(fā)送給指定為“父節(jié)點(diǎn)(parent)”的路由器,“父節(jié)點(diǎn)”代表它的“子節(jié)點(diǎn)(child)”執(zhí)行路由操作。End Device通過父節(jié)點(diǎn)進(jìn)行路由通信并且能夠進(jìn)入“Sleepy”狀態(tài)來減少功耗。不能與它們的父節(jié)點(diǎn)通信的End Device在多次嘗試后將自動(dòng)掃描并連接到新的父節(jié)點(diǎn)。圖3所示為帶有REED(Router Eligible End Device)、一個(gè)Leader和Thread Router的Thread節(jié)點(diǎn)網(wǎng)絡(luò)。
圖3:Thread節(jié)點(diǎn)類型
●基于IP的信息傳送
Thread全面支持IP。Thread網(wǎng)絡(luò)中的所有設(shè)備都有一個(gè)IPv6地址,并且能夠被HAN(Home Area Network,家庭局域網(wǎng))中的本地設(shè)備或者離線網(wǎng)絡(luò)中具有Thread能力的被稱為Border Router(邊界路由器)的IP路由器直接訪問。圖4顯示典型的Thread網(wǎng)絡(luò)連接。
圖4:Thread網(wǎng)絡(luò)連接
網(wǎng)絡(luò)中的節(jié)點(diǎn)由Border Router分配的前綴構(gòu)成IPv6全球地址,或者由本地自分配的前綴去構(gòu)成ULA(Unique Local Address)。網(wǎng)絡(luò)中使用的路由ID通過Leader分配。Thread使用UDP(User Datagram Protocol)進(jìn)行消息傳輸,而不是使用TCP。與TCP不同,UDP是無連接的協(xié)議,它摒棄了一些TCP特性,例如錯(cuò)誤檢測、報(bào)文排序和重傳以換取更快速和更高效的傳輸。這種效率相當(dāng)于減少了傳輸成本,這對(duì)于電池供電、資源受限的設(shè)備是極其重要的。Thread使用CoAP(Constrained Application Protocol)結(jié)合UDP去保持高效性,同時(shí)克服了UDP的一些限制。CoAP實(shí)現(xiàn)了重構(gòu)以支持重傳和分組排序。CoAP進(jìn)一步為GET、POST、PUT和DELETE方法的輕量級(jí)(版本提供支持,能夠容易的轉(zhuǎn)換成HTTP實(shí)現(xiàn)與萬維網(wǎng)的連接)。利用離線網(wǎng)絡(luò)CoAP到HTTP代理,Thread可以從瀏覽器中直接查詢IoT設(shè)備!
●低功耗運(yùn)行
Thread為低功耗運(yùn)行的可休眠終端節(jié)點(diǎn)提供了特別支持。正如其名稱所暗示,這些可休眠的終端設(shè)備大部分時(shí)間處于低功耗休眠狀態(tài)。在Thread協(xié)議中,不檢測處于休眠狀態(tài)的設(shè)備,以此來延長電池壽命。發(fā)送給可休眠終端設(shè)備的消息由它們的父節(jié)點(diǎn)緩存。消息傳輸僅僅在休眠終端設(shè)備被喚醒并查詢父節(jié)點(diǎn)時(shí)才被觸發(fā)。
●可擴(kuò)展性和彈性
Thread的網(wǎng)絡(luò)設(shè)計(jì)目標(biāo)是支持多于250個(gè)節(jié)點(diǎn)。在此約束下,多種特性和功能被優(yōu)化用以提供最大化的吞吐量和最小化資源需求。在Thread網(wǎng)絡(luò)中,活動(dòng)路由器的最大數(shù)量是32個(gè)。這樣產(chǎn)生的一個(gè)重要的結(jié)果是路由信息能夠被有效的通過網(wǎng)絡(luò)分發(fā),并且所有路由器能夠直觀的維護(hù)網(wǎng)絡(luò)中的所有路由。當(dāng)節(jié)點(diǎn)添加到網(wǎng)絡(luò)并且拓?fù)浣Y(jié)構(gòu)改變時(shí),網(wǎng)絡(luò)通過交換MLE(Mesh Link Establishment)消息做調(diào)整。如果有作為終端設(shè)備操作的Router Eligible設(shè)備,能夠自主添加額外的路由器。這種Router Eligible終端設(shè)備或者REED,聆聽路由信息,并且在需要提升網(wǎng)絡(luò)的整體性能時(shí),向網(wǎng)絡(luò)中的Leader申請(qǐng)成為路由器。
Thread是強(qiáng)大的、能自我修復(fù)的網(wǎng)狀網(wǎng)絡(luò),提供無單點(diǎn)故障能力。如果一個(gè)路由器發(fā)生了故障,網(wǎng)絡(luò)將動(dòng)態(tài)變向發(fā)送傳輸,繞過故障節(jié)點(diǎn)。如果一個(gè)Leader失效了,網(wǎng)絡(luò)中的另一個(gè)路由器將被自動(dòng)的選擇成為新的Leader。多個(gè)邊界路由器能夠?yàn)殡x線網(wǎng)絡(luò)通信提供故障失效安全的冗余。
●互操作性
Thread Group已經(jīng)發(fā)布了標(biāo)準(zhǔn)的軟件測試工具用于所有Thread協(xié)議棧和最終Thread產(chǎn)品認(rèn)證。這種測試工具將被提供給所有Thread成員公司以便在Thread認(rèn)證測試之前獲得高質(zhì)量的軟件開發(fā)和測試。
所有Thread組件(IC、軟件協(xié)議棧或模組)在作為終端產(chǎn)品提供給用戶之前必須獲得Thread認(rèn)證。所有想要攜帶Thread標(biāo)識(shí)的終端產(chǎn)品設(shè)備必須提交他們的設(shè)備到批準(zhǔn)的實(shí)驗(yàn)室進(jìn)行認(rèn)證。
●安全和人性化
Thread網(wǎng)絡(luò)易于使用并極其安全。Thread在MAC層使用AES-128保護(hù)所有網(wǎng)絡(luò)傳輸,并且利用ECC和J-PAKE邏輯組合安全添加設(shè)備到網(wǎng)絡(luò)(即Commissioning)。應(yīng)用有能力選擇利用基于標(biāo)準(zhǔn)的IP安全協(xié)議(例如DTLS)以實(shí)現(xiàn)額外的、安全的應(yīng)用載荷。
Thread網(wǎng)絡(luò)假定用戶有一個(gè)可用的Commissioning設(shè)備用于添加新設(shè)備到Thread網(wǎng)絡(luò)。Thread可以指定離線網(wǎng)絡(luò)設(shè)備(例如智能電話和計(jì)算機(jī))和在線網(wǎng)絡(luò)Thread設(shè)備成為Commissioner。離線網(wǎng)絡(luò)設(shè)備必須首先請(qǐng)求Thread Border Router以成為注冊Commissioner,符合Thread指定的安全DTLS認(rèn)證。一旦注冊,Border Router將代表Commissioner候選人與Leader協(xié)商成為授權(quán)的Commissioner。在線網(wǎng)絡(luò)設(shè)備不需要注冊,但是可能需要與Leader協(xié)商以被授權(quán)(Leader確保網(wǎng)絡(luò)中同一時(shí)間僅僅有一個(gè)Commissioner被激活)。一旦得到授權(quán),激活的Commissioner將會(huì)以廣播方式通知到整個(gè)Thread網(wǎng)絡(luò)。
在加入Thread網(wǎng)絡(luò)時(shí),用戶通知Commissioner設(shè)備有個(gè)新設(shè)備將要加入,并且輸入一個(gè)唯一的與加入設(shè)備相關(guān)的密碼。這種密碼被用于建立安全的DTLS會(huì)話來認(rèn)證并授權(quán)給加入的設(shè)備。僅僅在那時(shí)設(shè)備有權(quán)訪問Thread網(wǎng)絡(luò)。一旦設(shè)備加入到網(wǎng)絡(luò),Commissioner設(shè)備不再處于激活狀態(tài)。
●加速產(chǎn)品上市
隨著物聯(lián)網(wǎng)設(shè)備的快速普及,對(duì)于產(chǎn)品來說,越來越重要的是盡快從概念階段進(jìn)展到產(chǎn)品上市。Thread和Silicon Labs有助于加速產(chǎn)品上市。
●應(yīng)用開發(fā)
Thread沒有規(guī)定應(yīng)用層,而是為其提供基本的消息傳送服務(wù),例如使用UDP和CoAP的單播和組播消息服務(wù)。類似Wi-Fi,Thread關(guān)注消息的安全和可靠傳輸,使用低功耗的網(wǎng)狀網(wǎng)絡(luò)代替高功耗的星狀網(wǎng)絡(luò)。使用Silicon Labs AppBuilder工具,利用易于使用的回調(diào)函數(shù)(callback)和插件(plug-in)使協(xié)議棧層細(xì)節(jié)不再抽象化,以簡化IP消息傳輸。在框架中開發(fā)的應(yīng)用代碼是高度可移植的,并且可以在支持的802.15.4設(shè)備之間重用。AppBuilder提供簡單的GUI去配置設(shè)備和網(wǎng)絡(luò)參數(shù),例如設(shè)備類型、命令、組網(wǎng)和加入行為,以及安全模式和操作。Silicon Labs提供容易定制和擴(kuò)展的Thread示例應(yīng)用幫助用戶快速啟動(dòng)項(xiàng)目開發(fā)。
●網(wǎng)絡(luò)調(diào)試
在為網(wǎng)狀網(wǎng)絡(luò)開發(fā)應(yīng)用時(shí),理解、適配和調(diào)整網(wǎng)絡(luò)層是重要的開發(fā)階段。傳統(tǒng)的解決方案使用無線sniffer去遠(yuǎn)程捕獲空中網(wǎng)絡(luò)傳輸包。Silicon Labs網(wǎng)絡(luò)IC在芯片內(nèi)部集成了這種能力,使用Packet Trace專用的雙線接口,輸出被設(shè)備發(fā)送接收的每個(gè)數(shù)據(jù)包以及鏈路質(zhì)量信息。這些信息能夠通過Desktop Network Analyzer工具收集起來,將完整的網(wǎng)絡(luò)信息傳輸可視化。Desktop Network Analyzer通過事件聯(lián)系所有通信活動(dòng)并且解碼Thread消息。網(wǎng)絡(luò)活動(dòng)可以被記錄很長時(shí)間,從而識(shí)別網(wǎng)絡(luò)中極少發(fā)生或間歇性發(fā)生的問題。
結(jié)論
我們正在進(jìn)入網(wǎng)絡(luò)連接的新時(shí)代。物聯(lián)網(wǎng)將大大超越臺(tái)式機(jī)、筆記本電腦和智能手機(jī)組合的歷史連接規(guī)模。憑借難以置信的、廣泛的應(yīng)用,小型、資源受限的設(shè)備能夠驅(qū)動(dòng)這一增長。從家庭自動(dòng)化到建筑安防傳感器,從農(nóng)業(yè)灌溉到工業(yè)加工自動(dòng)化,從醫(yī)療保健到個(gè)人衛(wèi)生。這將觸及我們生活的方方面面,并改變我們與周圍環(huán)境的互動(dòng)方式。大多數(shù)這些設(shè)備將會(huì)是無線連接的?,F(xiàn)有的多種無線技術(shù)可以提供IP連接,但是我們認(rèn)為三種解決方案將主導(dǎo)家居互聯(lián),即Wi-Fi、Bluetooth Smart和802.15.4網(wǎng)狀網(wǎng)絡(luò)協(xié)議。Thread是網(wǎng)狀網(wǎng)絡(luò)的未來。它提供安全、可靠和可擴(kuò)展的基于IP的網(wǎng)狀網(wǎng)絡(luò)解決方案,以及優(yōu)化的低功耗操作。
評(píng)論
查看更多