第二章 國內外相關研究
2.1 物聯網與機器對機器
物聯網(Internet of Things)的定義是指人與 Things 能在任何時間及任何地方並與任 何東西或任何人,透過任何網路來取得任何服務[10]。其中,Things 指的是小型感測器 或嵌入式設備等,這些設備會利用無線通訊技術溝通,因此,會形成無線感測網路 (Wireless Sensor Network:WSN)。WSN 主要幾項技術,可包含無線城市網路(WMAN,
例如:WiMAX)、無線個人區域網路(WPAN,例如:Bluetooth)、無線區域網路(WLAN,
例如:Wi-Fi)、無線廣域網路(WWAN,例如:2.5G、3G、4G)與衛星網路(satellite network)。
而感測網路又依照溝通協定相異可分為:Non-IP based(例如:Zigbee、藍牙)、IP based(例 如:IPv6、IPv4)協定。[3][4]中表示物聯網中的 Gateway 將事非常重要的角色,且列舉 出物聯網上待解決的挑戰,包括異質通訊協定、標準化、異質資料整合、移動性支援 等。在本研究中設計適用於物聯網中的智慧型 Gateway,而 Gateway 會遇到的高度異質 (highly heterogeneous),包含通訊技術(例如:藍牙、Zigbee、WiFi、RFID 與 Ethernet 等)、設備型態(例如:感測器、智慧型手機、電腦等)、連網技術(例如:有線網路、無 線網路等)。設計本系統之架構時須考量到異質特性並改善本研究所設計之 Gateway,
如上所述,感測器為其中某一種技術,必須在相異的技術中確保彼此間的互連性 (Connectivity)。M2M(Machine to Machine)機器與機器間的通訊,是物聯網中的核心精 神 [11][12] , [11] 列出 Gateway 需 處 理 的難題, 包含通 訊 協定 異 質 (Communication Heterogeneous)、Gateway 異質性(Gateway Heterogeneous) 、IP 配置管理(IP Configuration Management)等。因此,本研究所設計之 Gateway 皆須考量到上述 Gateway 會遭遇到的
5 資料量等。目前存在物聯網中的通訊技術,包含 Zigbee、藍牙、BLE、WiFi 等。Bluetooth Low Energy 簡稱為 BLE[13]或稱為 Bluetooth Smart,為無線個人區域網路技術(WPAN:
Wireless Personal Area Network),特性包含低吞吐量、低延遲與低功耗等,適合運用於 物聯網中。其供電核心為鈕扣電池,供電可長達兩年。[14] 4.1 版中列出更新功能,包
6LoWPAN(IPv6 over Low-Power Wireless Personal Area Networks)[15]此標準之目的 為讓 IPv6 協議能夠運用在小型設備上,令設備賦予 IPv6 位址並連結網際網路。在低功
6
耗無線網路中採用 IP 協定[16],成為 6LoWPAN 環境,將擁有、良好測試(well tested) 可 擴 展 性 (Scalability) 、 可 延 伸 (Extended) 、 靈 活 性 (Flexibility) 以 及 端 對 端 的 連 接 性 (End-to-End Connectivity)等優點。因此,本研究中所配置的感測節點將會利用 IPv6 Stateless Address Auto-Configure(SLAAC)機制取得 IP 位址(於 3.2.3.2 詳述)。感測節點將 採用 Bluetooth SIG 組織所訂定之低功耗藍牙協定(Bluetooth Low Energy : BLE)。專為傳 輸小量資料、頻率不常,資料傳輸率非常低之藍牙設備所設計[17]。
由於 6LoWPAN 是為 Zigbee(IEEE 802.15.4)所設計,並不適合直接將 6LoWPAN 標 準放入 BLE 中,因此,6LoWPAN 工作組目前為適合在 BLE 上運用 6LoWPAN 協定規 劃標準[17],但尚未成為 RFC 規範,而本研究所實測到的 6LoWPAN 封包並不為標準 的 6LoWPAN 格式,但 Gateway 能夠依據此封包還原成完整的 IPv6 封包。Figure 1 為 BLE 與 BLE 6LoWPAN Stack。BLE Stack 的底層,包含 Physical Layer(PHY)、Link Layer (LL)、Direct Test Mode(DTM)。其中,PHY 負責傳輸與接收封包,LL 負責建立連接、
錯誤控制與流量偵測,DTM 為測試所用。上下層由 Host Controller Interface(HCI)區別,
BLE Stack 的上層,包含 Logical Link Control and Adaptation Protocol(L2CAP)、Attribute Protocol (ATT)、Security Manager (SM)、Generic Attribute Profile (GATT)與 Generic Access Profile (GAP)。L2CAP 提供分割與重組能力,以及與上層建立 Data Channel。ATT 負責 分類藍牙的屬性,SM 定義為 Key 分配與其他安全相關管理。GATT 與 GAP 能夠不使 用 IP 建立 Applications。
在 BLE 中 Internet Protocol Support Profile(IPSP)包含 Internet Protocol Support
7
Service(IPSS),其中 IPSP 能夠發現 IP-enabled 的設備,以及與設備建立傳輸 IPv6 封包 之間的 Link-layer 連接。BLE 6LoWPAN Stack 的底層由 LL 與 PHY 組成,上層左邊包 含 IPSP、GATT 與 ATT,上層右邊包含 IoT Apps、CoAP、UDP、IPv6、6LWPAN for BLE 與 L2CAP。其中,L2CAP 層提供負責 Segmentation and Reassembly (SAR)與
Fragmentation and Recombination (FAR)機制,由於 BLE 的 Maximum Transmission Unit (MTU)在 L2CAP 固定的 Channel 上為 27byte,包含 L2CAP Header 4byte,可供上層傳 輸的 Protocol Data Unit (PDU)大小為 23byte。但 IPv6 封包為 1280byte 或者更大,因此,
L2CAP 層來提供與 Link-layer 之間的分割與重組機制,IPSP 則為與 Link-layer 連接與 協商,並依照此 Profile 規則,提供能夠傳輸 IPv6 封包的最小 MTU。
Figure 1: BLE 與 BLE 6LoWPAN Stack(改編自[17][18])
2.4 Tunnel 6to4 機制
Tunnel 6to4 為 IPv4 與 IPv6 之間的過渡轉換機制,因目前 IPv4 仍為大眾所使用,
但位址數量已嚴重不足以供應未來物聯網的需求,而 IPv6 將是一個很好的解決方案。
但是在物聯網中運用 IPv6 可能遇到的挑戰[16],包含連接性(Connectivity)、可靠性
8
(Reliability)、異質性(Heterogeneity)、安全性(Security)與移動性(Mobility)。在物聯網中 任何設備必須確保全球唯一性,而 IPv6 協定則能夠達成。若感測器有 IPv6 可將資訊即 時智慧型設備使用[19],能符合使用者目前情況的需求。
IPv6 位址主要可分為三種類型[20],包含 Link-local address、ULA(Unique Local address)與 GUA(Global Unique address),分別介紹如下:
Link-local address:若設備具有 IID(Interface ID)即可透過 IPv6 Stateless Address
Auto-Configure(SLAAC)[21]或 Neighbor Discovery Protocol 的方式產生 Link-Local Address,而 Link-Local Address 並無法保證全球唯一性(global unique),因此只能在 single link 上使用,Link-local address 的 Prefix 則固定為 fe80::/64。此外,Link-local address 能運用在群組性設備的成員上,例如 WBAN(Wireless Body Area Network) 等。
ULA(Unique Local address):ULA 與 Link-Local address 的差異為 ULA 具有全球唯 一性,發生碰撞的可能性非常小,且可用在多跳(multi-hop)網路上,ULA 是專為區 域網路所設計,但並不會將資料傳遞至 Internet,其 Prefix 固定為 fc00::/7,可應用 如智能環境內等。
GUA(Global Unique address):GUA 具有全球唯一性並可在 Internet 上使用,GUA 為可繞送(Routable)之位址。GUA 適用於需獨立將資料傳遞至網際網路上的設備,
如:手機、Gateway 與物聯網中的設備等。設備可利用 SLAAC 的方式自主的取得 Prefix 並組成 Global IPv6,而 IP 協定讓設備具有可發現性(discoverable)與可定址性 (addressable)的唯一設備,進而達成 M2M 之間遠端或本地的可靠溝通[22]。此外,
9
可從 Prefix 看出是否為 IPv4 轉成 IPv6 的非原生 IPv6 類型,2001::/23 通常為 Native 的 IPv6,2002::/16 為 Tunnel 6to4 轉換為 IPv6 位址,IANA 列出許多 IPv6 位址類型 [23]。
由於目前 IPv6 尚未大量被採用於現存網路,因此需要轉換機制令 IPv6 與 IPv4 能 夠互通,目前較普遍轉換機制包含 Tunnel 6to4[24]、6in4[25]、ISATAP[26]與 Teredo[27]
等,其中,Tunnel 6to4 會保留原始 Header,不會破壞封包,因此,本系統使用 Tunnel 6to4 機制來轉換封包(3.2.4.1 節說明)。
2.5 服務發現機制
在物聯網中如何提供服務發現機制(Service Discovery Mechanisms)為一大重點,且 Discovery Protocols 並無需通過人為介入,提供自動發線設備提供的服務[19]。在設備 上利用 IP 協定,擁有的好處包含可發現性(Discoverable)與可定址性(Addressable),達成 Machine to Machine(M2M)之間遠端或本地的可靠溝通方式[28]。目前 IP-Based 的 Discovery Protocols 傳統協定[19],包括 UPnP(Universal Plug and Play)、SLP(Service Location Protocol)、JINI 與 Salutation 等,但是這些協定不適合運用物聯網中,其需求 要較高的電力與頻寬等能力,但物聯網中大多數為受限設備,無法負荷傳統協定要求。
[19]服務發現機制的設計必須符合下列條件,每個控制訊息要有較低的 Overhead,減少 訊息的交換次數以便節省電力消耗與節省頻寬,以及要求較低 Processing 與 Memory,
能透過 Internet 來進行控制。Service Discovery Protocol 區分為 Non-IP based 與 IP-based。
Non-IP based 無支援 IP 協定,會被限制在低功耗網路之內部並且無法與遠端溝通,形
10
成孤島(islands)[19]。IP-based 逐漸受重視,目前幾種專為受限環境中運用之 Service Discovery Protocol,包含 SSLP、nanoSLP、DNS-SD 與 CoAP 等。
CoAP[31]為 IETF 的 CoRE(Constrained RESTful Environments)[31]為 RESTful 的網 頁傳輸協定之架構,專為資源受限的網路與節點所設計,並為輕量級協定,並適合運 用於佈署大量微型節點的 IoT 環境中。CoAP 以 IP 為基礎設計之服務發現機制,與傳 統方法相比,較能減少配置與網路設備間的管理[28]。CoAP 提供資源感知(Resource Aware)服務,使用者透過 Web 即可取得所需資訊。CoAP 與傳統 HTTP 不同之處,包含 將小量封包的 Overhead 優化、Content 標籤化與整合 Low-power and Lossy Networks(LLN) 中的應用程式[16]。因此,本研究採用 CoAP 協定作為 Service Discovery 機制的主軸。
2.6 雲端資料庫
雲端分為三種服務模型,包含平台即為服務(PaaS:Platform-as-a-Service)架構即為 服務(IaaS:Infrastructure-as-a-Service)與軟體即為服務(SaaS:Software-as-a-Service),提 供某種使用者需要的資源為服務[29]。目前市面上提供的雲端服務,包含 amazon web service(AWS)、Google App Engine、cloudControl 與 Microsoft Azure[30]等。本系統採用 Microsoft Azure,而 Microsoft Azure 提供許多功能,包含發佈與佈署 Web 應用程式、創 建虛擬機器、SQL Database、機器學習等。而 SQL Database 提供彈性的使用需求,能 夠擴充至數千個資料庫,可設定自動還原、資料備份與系統自我管理且無須維護等優 勢。因此,本系統為提供可靠、穩定之服務,減少維護管理系統的成本,以 Microsoft Azure[30]作為本系統之 Cloud Database。Microsoft Azure 提供期間試用服務,租用伺服
11
器存放 SQL 資料庫。
12 際架設所設計的智慧型 Gateway,能夠連接 Node 所在的 6LoWPAN 環境,將收到異質 封包做正確且相對應的處理。以及 Gateway 會依照目的地所在的位置(例如:Server 位於 IPv4 或 IPv6 環境),判斷是否透過 Tunnel 6to4 技術來封裝成可繞送的正確格式,其中,
本系統以 IP 技術將 Bluetooth Low Energy(BLE)、WiFi 與 Ethernet 進行整合達到 IoT 中 異質通訊之解決。此外,本系統利用 RESTful 架構設計使用者 Web Portal,提供使用者 訂閱所需服務(如:溫度、空氣品質變化時通知使用者等),透過專為受限設備設計之 CoAP 協定,使用者能夠端對端(end-to-end)的對 Node 進行請求感測服務,並可依照 Node 提供的服務類型、使用者的訂閱需求,給予 On Demand 或 Periodical 的感測資料,且可 使用者自訂或由系統自動判斷當前情況,啟動感測 Node 或設備進行相對應的處理(如: