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