物聯網,英文名稱叫“Internet of things”(簡稱IOT),也稱為傳感網、泛在網等。通俗地講,物聯網就是“物物相連的互聯網”。即將各種信息傳感設備通過互聯網結合起來而形成的一個巨大網絡。其中包含了兩層意思:第一,物聯網是互聯網的延伸和擴展,其核心和基礎仍然是互聯網;第二,其用戶端不僅僅是個人,還包括任何物品,終端可能很復雜,支持大量功能。也可能很簡單。功能單一且無法加載很多復雜的處理算法。整個物聯網的概念涵蓋了從終端到網絡、從數據采集處理到智能控制、從應用到服務、從人到物的方方面面,涉及眾多的技術。從長遠來看,物聯網很有希望成為一個超越目前互聯網產業(yè)規(guī)模的新興產業(yè),國際相關機構預測未來其規(guī)模將超過現有互聯網規(guī)模的30倍以上。
物聯網的網絡困境
物聯網豐富的應用和龐大的節(jié)點規(guī)模既帶來了商業(yè)上的巨大潛力,同時也帶來了技術上的挑戰(zhàn)。首先,物聯網由眾多的節(jié)點連接構成,無論是采用自組織方式,還是采用現有的公眾網進行連接,這些節(jié)點之間的通信必然牽涉到尋址問題。目前物聯網的尋址系統可以采用兩種方式。一種方式是采用基于E.164電話號碼編址的尋址方式,但由于目前大多數物聯網應用的網絡通信協議都采用TCP/IP協議,電話號碼編址的方式必然需要對電話號碼與IP地址進行轉換。這提高了技術實現的難度,并增加了成本。同時由于E.164編址體系本身的地址空間較小。也無法滿足大量節(jié)點的地址需求。另一種方式是直接采用IPv4地址的尋址體系來進行物聯網節(jié)點的尋址。
隨著互聯網本身的快速發(fā)展。IPv4的地址已經日漸匱乏。從目前的地址消耗速度來看。IPv4地址空間已經很難再滿足物聯網對網絡地址的龐大需求。從另一方面來看,物聯網對海量地址的需求。也對地址分配方式提出了要求。海量地址的分配無法使用手工分配,使用傳統DHCP的分配方式對網絡中的DHCP服務器也提出了極高的性能和可靠性要求,可能造成DHCP服務器性能不足,成為網絡應用的一個瓶頸。其次,目前互聯網的移動性不足也造成了物聯網移動能力的瓶頸。IPv4協議在設計之初并沒有充分考慮到節(jié)點移動性帶來的路由問題。即當一個節(jié)點離開了它原有的網絡,如何再保證這個節(jié)點訪問可達性的問題。由于IP網絡路由的聚合特性,在網絡路由器中路由條目都是按子網來進行匯聚的。
當節(jié)點離開原有網絡,其原來的IP地址離開了該子網,而節(jié)點移動到目的子網后,網絡路由器設備的路由表中并沒有該節(jié)點的路由信息(為了不破壞全網路由的匯聚,也不允許目的子網中存在移動節(jié)點的路由),會導致外部節(jié)點無法找到移動后的節(jié)點。因此如何支持節(jié)點的移動能力是需要通過特殊機制實現的。在IPv4中IETF提出了MIPv4(移動IP)的機制來支持節(jié)點的移動。但這樣的機制引入了著名的三角路由問題。對于少量節(jié)點的移動,該問題引起的網絡資源損耗較小。而對于大量節(jié)點的移動,特別是物聯網中特有的節(jié)點群移動和層移動。會導致網絡資源被迅速耗盡,使網絡處于癱瘓的狀態(tài)。
再次,網絡質量保證也是物聯網發(fā)展過程中必須解決的問題。目前IPv4網絡中實現QoS有兩種技術,其一采用資源預留(interserv)的方式,利用RsVP等協議為數據流保留一定的網絡資源。在數據包傳送過程中保證其傳輸的質量;其二采用Diffserv技術,由IP包自身攜帶優(yōu)先級標記。網絡設備根據這些優(yōu)先級標記來決定包的轉發(fā)優(yōu)先策略。目前IPv4網絡中服務質量的劃分基本是從流的類型出發(fā)。使用Diffserv來實現端到端服務質量保證,例如視頻業(yè)務有低丟包、時延、抖動的要求,就給它分配較高的服務質量等級:數據業(yè)務對丟包、時延、抖動不敏感,就分配較低的服務質量等級,這樣的分配方式僅考慮了業(yè)務的網絡側質量需求。沒有考慮業(yè)務的應用側的質量需求,例如,一個普通視頻業(yè)務對服務質量的需求可能比一個基于物聯網傳感的手術應用對服務質量的需求要低。因此物聯網中的服務質量保障必須與具體的應用相結合。
最后,物聯網節(jié)點的安全性和可靠性也需要重新考慮。由于物聯網節(jié)點限于成本約束很多都是基于簡單硬件的,不可能處理復雜的應用層加密算法,同時單節(jié)點的可靠性也不可能做得很高,其可靠性主要還是依靠多節(jié)點冗余來保證。因此,靠傳統的應用層加密技術和網絡冗余技術很難滿足物聯網的需求。
IPv6的物聯網技術解決方案
1.IPv6地址技術
IPv6擁有巨大的地址空間,同時128 bit的IPv6的地址被劃分成兩部分,即地址前綴和接口地址。與IPv4地址劃分不同的是,IPv6地址的劃分嚴格按照地址的位數來進行,而不采用IPv4中的子網掩碼來區(qū)分網絡號和主機號。IPv6地址的前64位被定義為地址前綴。地址前綴用來表示該地址所屬的子網絡,即地址前綴用來在整個IPv6網中進行路由。而地址的后64位被定義為接口地址,接口地址用來在子網絡中標識節(jié)點。在物聯網應用中可以使用IPv6地址中的接口地址來標識節(jié)點。在同一子網絡下??梢詷俗R264個節(jié)點。這個標識空間約有185億億個地址空間。這樣的地址空間完全可以滿足節(jié)點標識的需要。
另一方面,IPv6采用了無狀態(tài)地址分配的方案來解決高效率海量地址分配的問題。其基本思想是網絡側不管理IPv6地址的狀態(tài),包括節(jié)點應該使用什么樣的地址、地址的有效期有多長。且基本不參與地址的分配過程。節(jié)點設備連接到網絡中后。將自動選擇接口地址(通過算法生成IPv6地址的后64位),并加上FE80的前綴地址,作為節(jié)點的本地鏈路地址,本地鏈路地址只在節(jié)點與鄰居之間的通信中有效,路由器設備將不路由以該地址為源地址的數據包。在生成本地鏈路地址后,節(jié)點將進行DAD(地址沖突檢測),檢測該接El地址是否有鄰居節(jié)點已經使用,如果節(jié)點發(fā)現地址沖突,則無狀態(tài)地址分配過程將終止,節(jié)點將等待手工配置IPv6地址。如果在檢測定時器超時后仍沒有發(fā)現地址沖突,則節(jié)點認為該接13地址可以使用,此時終端將發(fā)送路由器前綴通告請求。尋找網絡中的路由設備。當網絡中配置的路由設備接收到該請求。則將發(fā)送地址前綴通告響應。將節(jié)點應該配置的IPv6地址前64位的地址前綴通告給網絡節(jié)點。網絡節(jié)點將地址前綴與接口地址組合,構成節(jié)點自身的全球IPv6地址。
采用無狀態(tài)地址分配之后,網絡側不再需要保存節(jié)點的地址狀態(tài),維護地址的更新周期,這大大簡化了地址分配的過程。網絡可以以很低的資源消耗來達到海量地址分配的目的。
2.IPv6的移動性技術
IPv6協議設計之初就充分考慮了對移動性的支持。針對移動IPv4網絡中的三角路由問題。移動IPv6提出了相應的解決方案。
首先。從終端角度IPv6提出了IP地址綁定緩沖的概念,即IPv6協議棧在轉發(fā)數據包之前需要查詢IPv6數據包目的地址的綁定地址。如果查詢到綁定緩沖中目的IPv6地址存在綁定的轉交地址,則直接使用這個轉交地址為數據包的目的地址。這樣發(fā)送的數據流量就不會再經過移動節(jié)點的家鄉(xiāng)代理,而直接轉發(fā)到移動節(jié)點本身。
其次。MIPv6引入了探測節(jié)點移動的特殊方法,即某一區(qū)域的接入路由器以一定時間進行路由器接口的前綴地址通告。當移動節(jié)點發(fā)現路由器前綴通告發(fā)生變化,則表明節(jié)點已經移動到新的接人區(qū)域。與此同時根據移動節(jié)點獲得的通告,節(jié)點又可以生成新的轉交地址,并將其注冊到家鄉(xiāng)代理上。
MIPv6的數據流量可以直接發(fā)送到移動節(jié)點,而MIPv4流量必須經過家鄉(xiāng)代理的轉發(fā)。在物聯網應用中。傳感器有可能密集地部署在一個移動物體上。例如為了監(jiān)控地鐵的運行參數等,需要在地鐵車廂內部署許多傳感器。從整體上來看,地鐵的移動就等同于一群傳感器的移動,在移動過程中必然發(fā)生傳感器的群體切換,在MIPv4的情況下,每個傳感器都需要建立到家鄉(xiāng)代理的隧道連接,這樣對網絡資源的消耗非常大,很容易導致網絡資源耗盡而癱瘓。在MIPv6的網絡中,傳感器進行群切換時只需要向家鄉(xiāng)代理注冊。之后的通信完全由傳感器和數據采集的設備之間直接進行,這樣就可以使網絡資源消耗的壓力大大下降。因此。在大規(guī)模部署物聯網應用,特別是移動物聯網應用時,MIPv6是一項關鍵性的技術。
3.IPv6的服務質量技術
在網絡服務質量保障方面,IPv6在其數據包結構中定義了流量類別字段和流標簽字段。流量類別字段有8位,和IPv4的服務類型(ToS)字段功能相同,用于對報文的業(yè)務類別進行標識;流標簽字段有20位,用于標識屬于同一業(yè)務流的包。流標簽和源、目的地址一起。惟一標識了一個業(yè)務流。同一個流中的所有包具有相同的流標簽,以便對有同樣QoS要求的流進行快速、相同的處理。
目前,IPv6的流標簽定義還未完善。但從其定義的規(guī)范框架來看,IPv6流標簽提出的支持服務質量保證的最低要求是標記流,即給流打標簽。流標簽應該由流的發(fā)起者信源節(jié)點賦予一個流,同時要求在通信的路徑上的節(jié)點都能夠識別該流的標簽。并根據流標簽來調度流的轉發(fā)優(yōu)先級算法。這樣的定義可以使物聯網節(jié)點上的特定應用有更大的調整自身數據流的自由度,節(jié)點可以只在必要的時候選擇符合應用需要的服務質量等級。并為該數據流打上一致的標記。在重要數據轉發(fā)完成后。即使通信沒有結束節(jié)點也可以釋放該流標記,這樣的機制再結合動態(tài)服務質量申請和認證、計費的機制,就可以做到使網絡按應用的需要來分配服務質量。同時。為了防止節(jié)點在釋放流標簽后又誤用該流標簽。造成計費上的問題。信源節(jié)點必須保證在120 s內不再使用釋放了的流標簽。
在物聯網應用中普遍存在節(jié)點數量多。通信流量突發(fā)性強的特點。與IPv4相比,由于IPv6的流標簽有20 bit,足夠標記大量節(jié)點的數據流。同時與IPv4中通過五元組(源、目的IP地址,源、目的端口、協議號)不同,IPv6可以在一個通信過程中(五元組沒有變化),只在必要的時候數據包才攜帶流標簽,即在節(jié)點發(fā)送重要數據時,動態(tài)提高應用的服務質量等級,做到對服務質量的精細化控制。
當然IPv6的QoS特性并不完善,由于使用的流標簽位于IPv6包頭,容易被偽造,產生服務盜用的安全問題。因此。在IPv6中流標簽的應用需要開發(fā)相應的認證加密機制。同時為了避免流標簽使用過程中發(fā)生沖突,還要增加源節(jié)點的流標簽使用控制的機制,保證在流標簽使用過程中不會被誤用。
4.IPv6的安全性與可靠性技術
首先。在物聯網的安全保障方面。由于物聯網應用中節(jié)點部署的方式比較復雜。節(jié)點可能通過有線方式或無線方式連接到網絡。因此節(jié)點的安全保障的情況也比較復雜。在使用IPv4的場景中一個黑客可能通過在網絡中掃描主機IPv4地址的方式來發(fā)現節(jié)點,并尋找相應的漏洞。而在IPv6場景中。由于同一個子網支持的節(jié)點數量極大(達到百億億數量級),黑客通過掃描的方式找到主機難度大大增加。在口基礎協議棧的設計方面,礬6將IPsec協議嵌入到基礎的協議棧中。通信的兩端可以啟用IPSec加密通信的信息和通信的過程。網絡中的黑客將不能采用中間人攻擊的方法對通信過程進行破壞或劫持。同時,黑客即使截取了節(jié)點的通信數據包,也會因為無法解碼而不能竊取通信節(jié)點的信息。
同時,由于IP地址的分段設計,將用戶信息與網絡信息分離。使用戶在網絡中的實時定位很容易,這也保證了在網絡中可以對黑客行為進行實時的監(jiān)控,提升了網絡的監(jiān)控能力。
在另一個方面,物聯網應用中由于成本限制,節(jié)點通常比較簡單,節(jié)點的可靠性也不可能做得太高,因此,物聯網的可靠性要靠節(jié)點之間的互相冗余來實現。又因為節(jié)點不可能實現較復雜的冗余算法,因此一種較理想的冗余實現方式是采用網絡側的任播技術來實現節(jié)點之間的冗余。采用IPv6的任播技術后。多個節(jié)點采用相同的IPv6任播地址(任播地址在IPv6中有特殊定義)。在通信過程中發(fā)往任播地址的數據包將被發(fā)往由該地址標識的“最近”的一個網絡接口,其中“最近”的含義指的是在路由器中該節(jié)點的路由矢量計算值最小的節(jié)點。當一個“最近”節(jié)點發(fā)生故障時。網絡側的路由設備將會發(fā)現該節(jié)點的路由矢量不再是“最近”的。從而會將后續(xù)的通信流量轉發(fā)到其他的節(jié)點。這樣物聯網的節(jié)點之間就自動實現了冗余保護的功能。而節(jié)點上基本不需要增加算法,只需要應答路由設備的路由查詢,并返回簡單信息給路由設備即可。
總結
IPv6具有很多適合物聯網大規(guī)模應用的特性,但目前也存在一些技術問題需要解決,例如,無狀態(tài)地址分配中的安全性問題。移動IPv6中的綁定緩沖安全更新問題,流標簽的安全防護,全球任播技術的研究等。雖然IPv6還有眾多的技術細節(jié)需要完善,但從整體來看,使用IPv6不僅能夠滿足物聯網的地址需求,同時還能滿足物聯網對節(jié)點移動性、節(jié)點冗余、基于流的服務質量保障的需求,很有希望成為物聯網應用的基礎網絡技術。