智能家居協(xié)議實現(xiàn)V1.0全解_第1頁
智能家居協(xié)議實現(xiàn)V1.0全解_第2頁
智能家居協(xié)議實現(xiàn)V1.0全解_第3頁
智能家居協(xié)議實現(xiàn)V1.0全解_第4頁
智能家居協(xié)議實現(xiàn)V1.0全解_第5頁
免費預覽已結(jié)束,剩余11頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

智能家居協(xié)議實現(xiàn)方案智能家居協(xié)議實現(xiàn)方案 V1 0 1 協(xié)議概述 協(xié)議概述 智能家居協(xié)議運行在網(wǎng)關(guān) 手機 服務器三個地方 交互方式為兩兩交互 即網(wǎng)關(guān) 手機端 網(wǎng)關(guān) 云端 手機端 云端之間的相互通信 協(xié)議整體分為三層 網(wǎng)絡(luò)層 安全 層 設(shè)備管理層 說明 協(xié)議分層是邏輯上的分層 并不是各層次之間相互封裝的關(guān)系 邏輯上包含關(guān)系從外到內(nèi)為 安全層 網(wǎng)絡(luò)層 管理層 分層是為了功能之間的獨立 1 網(wǎng)絡(luò)層網(wǎng)絡(luò)層 網(wǎng)絡(luò)層的主要功能為建立連接 注冊和登錄 建立連接分為 手機 網(wǎng)關(guān)建立連接 網(wǎng)關(guān) 服務器建立連接 手機 服務器建立連接 手機和網(wǎng)關(guān)在無線局域網(wǎng)環(huán)境和互聯(lián)網(wǎng)環(huán)境均可連接網(wǎng)關(guān) 互聯(lián)網(wǎng)環(huán)境下首先從服務 器獲取網(wǎng)關(guān) IP 然后通過 IP 和網(wǎng)關(guān)連接 網(wǎng)關(guān)和服務器也需要建立連接 首先通過 TCP IP 三次握手保證鏈路暢通 其次網(wǎng)關(guān)要 在服務器端注冊自己的 IP 地址和 ID 號 最后 網(wǎng)關(guān)要定時向服務器發(fā)送心跳包 維護自 己的 IP 地址 保證手機能隨時發(fā)現(xiàn)網(wǎng)關(guān) 2 安全層安全層 安全層完成加密和認證的功能 3 設(shè)備管理層設(shè)備管理層 設(shè)備管理層完成設(shè)備的控制 查詢 設(shè)備增刪改 協(xié)議層次如圖所示 圖 0 協(xié)議架構(gòu)圖 協(xié)議封裝格式如圖所示 圖 1 協(xié)議層次圖 2 協(xié)議分層實現(xiàn)協(xié)議分層實現(xiàn) 2 1 網(wǎng)絡(luò)層網(wǎng)絡(luò)層 網(wǎng)絡(luò)層的主要功能為建立連接和注冊登錄 建立連接分為 手機 網(wǎng)關(guān)建立連接 網(wǎng) 關(guān) 服務器建立連接 手機 服務器建立連接 網(wǎng)絡(luò)層字段表 2 2 安全層安全層 2 2 1 方案一方案一 加入可選的安全機制 在 HTTP 請求頭部添加加密選項參數(shù) 安全級別分為以下幾種 鍵值含義說明 LayerNetwork表明是網(wǎng)絡(luò)層數(shù)據(jù)包協(xié)議三層分別為 Network Security Manage SourceApp Server Gateway 發(fā)送數(shù)據(jù)包的源設(shè)備App 端 服務器 網(wǎng)關(guān) DestinationApp Server Gateway 接收數(shù)據(jù)包的目的設(shè) 備 App 端 服務器 網(wǎng)關(guān) UserIDXXXXXXXXXX用戶 ID唯一標示 GetawayIDXXXXXXXXXX網(wǎng)關(guān) ID唯一標示 TypeHeartBeat Declare Login LoginACK Register RegisterACK Query QueryResult CheckStatus Error 數(shù)據(jù)包類型心跳 宣告 登錄 登錄確認 注冊 注冊確認 查詢網(wǎng)關(guān) IP 返回結(jié)果 查看狀態(tài) 錯誤返回 Time年 月 日 時 分 秒時間如 2014 11 30T18 30 00 MacroStatusXXX XXX宏觀狀態(tài)用兩個值表示 Status1XX 2XX 3XX 4XX 5XX 結(jié)果狀態(tài)1XX 信息收到 繼續(xù) 處理 2XX 成功類狀態(tài)信息 3XX 客戶端錯誤 4XX 網(wǎng)關(guān)錯誤 5XX 服務器端錯誤 Value值可以為數(shù)值 也可以 為字符串 1 不設(shè)防級 系統(tǒng)開發(fā)初期 先把系統(tǒng)調(diào)通 不加密 全部內(nèi)容用明文 2 初級 假設(shè)攻擊者能夠拿到自己的賬號和密碼 模擬各種操作 獲取其中的通信報文 并分析出每個字段的含義 但是攻擊者不能拿到其它用戶的賬號和密碼 也不能監(jiān)聽到其 它用戶的通信過程 這種情況下 用會話 ID 進行用戶認證 保證每個用戶只能按系統(tǒng)給予 的權(quán)限訪問自己的家居設(shè)備 3 中級 假設(shè)攻擊者在初級的能力上 還能夠監(jiān)聽到其它用戶的臨時會話 ID 但是不能 反編譯客戶端 不能拿到集成在客戶端中的加密方法和秘鑰 這種情況下 用 APP 中保存 的唯一的秘鑰 動態(tài)加密會話內(nèi)容 4 高級 假設(shè)攻擊者無法接收客戶端手機短信 則用手機短信通道動態(tài)下發(fā)臨時密碼 對 會話 ID 就行動態(tài)加密 HTTP 頭部不填寫安全參數(shù)即表示不設(shè)防 填寫某種我們約定的名稱 就表示對應到某種加 密方式 系統(tǒng)穩(wěn)定以后 云端和網(wǎng)關(guān)端拒絕不設(shè)防通道即可 2 2 2 方案二方案二 采用認證方式 發(fā)送認證數(shù)據(jù)包 安全層字段表 2 3 設(shè)備管理層設(shè)備管理層 設(shè)備管理層主要負責手機 網(wǎng)關(guān)之間設(shè)備信息的交互 主要有設(shè)備請求 設(shè)備響應 設(shè)備控制 設(shè)備管理層數(shù)據(jù)格式基本相同 控制包最終都是向網(wǎng)關(guān)發(fā)送 鍵值含義備注 LayerSecurity表明是安全層數(shù)據(jù)包 SourceApp Server Gateway 發(fā)送數(shù)據(jù)包的源設(shè)備App 端 服務器 網(wǎng)關(guān) DestinationApp Server Gateway 接收數(shù)據(jù)包的目的設(shè)備App 端 服務器 網(wǎng)關(guān) TypeAuthentication Aut henticationACK Error 數(shù)據(jù)包類型認證 認證確認 錯誤返回 Time年月日時分秒時間 Content不同數(shù)據(jù)包內(nèi)容不 同 數(shù)據(jù)包內(nèi)容 Status1XX 2XX 3XX 結(jié)果狀態(tài)1XX 信息收到 繼續(xù)處 理 2XX 成功 3XX 驗證失敗 注 設(shè)備管理層最大限度的保留原有格式和操作 只是將登錄和心跳包移到了網(wǎng)絡(luò)層 設(shè)備管理層字段表 鍵值含義備注 LayerManage表明是管理層數(shù)據(jù)包 SourceApp Server Gateway 發(fā)送數(shù)據(jù)包的源設(shè)備可以為手機 服務器 網(wǎng)關(guān) DestinationApp Server Gateway 接收數(shù)據(jù)包的目的設(shè) 備 可以為手機 服務器 網(wǎng)關(guān) TypeQuery QueryResult Control ControlResult Update Add Delete Error 數(shù)據(jù)包類型查詢請求 查詢結(jié)果 控制請求 控制結(jié)果 設(shè)備狀態(tài)更新 設(shè)備添加 設(shè)備刪除 錯誤返回 ObjectGateway Ad hoc Sensor 請求對象網(wǎng)關(guān) 無線傳感器網(wǎng)絡(luò) 傳感器 萬能遙控器 NodeIDXXXX無線傳感器節(jié)點 ID在一個無線傳感器網(wǎng)絡(luò) 中 每個節(jié)點的 ID 是唯 一的 NodeCoordinator Router terminal 無線傳感器節(jié)點類型協(xié)調(diào)器 路由節(jié)點 終端節(jié)點 Category Security Monitor Controller 設(shè)備類型家居安防 家居環(huán)境監(jiān)測 家居環(huán)境控制 SensorTypeSoundLightAlarm SmokeSensor HumiditySensor 傳感器類型聲光報警器 煙霧傳感器 濕度傳感器 Status1XX 2XX 3XX 4XX 5XX 6XX 請求執(zhí)行結(jié)果1XX 信息收到 繼續(xù)處 理 2XX 成功 3XX 客戶端錯誤 4XX 網(wǎng)關(guān)錯誤 5XX 服務器錯誤 6XX 智能家居設(shè)備錯誤 Time年 月 日 時 分 秒時間數(shù)據(jù)包發(fā)送的時間 Value一個數(shù)組值需要傳遞的參數(shù)值 FuncID功能 ID要開啟的設(shè)備功能 3 協(xié)議實現(xiàn)的功能協(xié)議實現(xiàn)的功能 3 1 建立連接與登錄建立連接與登錄 3 1 1 手機與網(wǎng)關(guān)建立連接手機與網(wǎng)關(guān)建立連接 手機與網(wǎng)關(guān)通信前首先要判斷自己是什么狀態(tài) 如果只打開了移動網(wǎng)絡(luò) 則直接與服 務器通信 如果打開了 WIFI 則先判斷自己是否在智能網(wǎng)關(guān)無限覆蓋區(qū)域內(nèi)如果不是 則 通過 WIFI 連接服務器 手機與網(wǎng)關(guān)建立連接的狀態(tài)分為三種 網(wǎng)關(guān)局域網(wǎng)狀態(tài) 互聯(lián)網(wǎng)狀態(tài) 連接失敗狀態(tài) 手機首先會優(yōu)先判斷是否在網(wǎng)關(guān)局域網(wǎng)環(huán)境 其次是判斷互聯(lián)網(wǎng)環(huán)境 如果都不滿足 則 連接失敗 手機判斷是否在網(wǎng)關(guān)局域網(wǎng)的環(huán)境方式是 其原理是通過一個共同約定的廣播地址作 為互相通信的接口 當設(shè)備剛加入網(wǎng)絡(luò)時向該廣播地址發(fā)送設(shè)備宣告消息 宣告本設(shè)備的 基本信息 主要是 IP 地址信息 滿足要求后會給出單播響應 當手機端收到該單播響后 通過網(wǎng)關(guān)響應中指定的 IP 地址和端口與網(wǎng)關(guān)進行通信 手機建立連接過程如圖 手機建立連接過程如圖 圖 2 手機建立連接過程 手機與網(wǎng)關(guān)通信時 局域網(wǎng) 首先要建立連接 然后對雙方的身份進行確認 確認 成功后 雙方才能進行通信 手機通過指定 IP 和端口與網(wǎng)關(guān)建立連接 向廣播地址發(fā)送宣告 等待響應 向網(wǎng)關(guān)發(fā)送登錄請求 收到 是 Wifi 打開 是 向服務器發(fā)送登錄請求 移動網(wǎng)絡(luò)打開 向服務器發(fā)送登錄請求連接失敗 是 建立連接過程如圖所示 建立連接過程如圖所示 圖 3 手機與網(wǎng)關(guān)交互過程 網(wǎng)關(guān)建立連接流程 網(wǎng)關(guān)建立連接流程 圖 4 智能網(wǎng)關(guān)服務流程 手機網(wǎng)關(guān) 向廣播地址發(fā)送宣告 單播響應 請求 請求響應 等待手機端接入 處理請求 接收客戶端請求 發(fā)送處理結(jié)果 接受 是 登錄信息 登錄確認 手機端建立連接流程手機端建立連接流程 圖 5 手機端建立連接流程 2 1 2 網(wǎng)關(guān)與服務器建立連接網(wǎng)關(guān)與服務器建立連接 網(wǎng)關(guān)通過指定 IP 和端口同服務器建立連接 網(wǎng)關(guān)接入互聯(lián)網(wǎng)時 會向服務器發(fā)送自己 的 ID 號和 IP 地址 以及身份認證信息 完成在云端的注冊 發(fā)送身份信息 等待確認 發(fā)送請求 等待響應 收到 是 收到 是 處理響應 云端網(wǎng)關(guān) 身份信息 身份確認 注冊信息 注冊確認 圖 6 網(wǎng)關(guān)云端建立連接過程 服務器等待網(wǎng)關(guān)注冊流程 服務器等待網(wǎng)關(guān)注冊流程 圖 7 服務器端注冊流程 網(wǎng)關(guān)在服務器注冊流程 網(wǎng)關(guān)在服務器注冊流程 圖 8 網(wǎng)關(guān)注冊流程 2 1 3 服務器與手機建立連接服務器與手機建立連接 手機與服務器建立連接 手機端登錄云端屬于 APP 端內(nèi)容 協(xié)議部分暫時不考慮 用 戶驗證合法后就可以登錄并進入網(wǎng)關(guān)控制設(shè)備 接收注冊信息 處理注冊信息 接受 是 等待網(wǎng)關(guān)接入 等待響應 等待確認信息 發(fā)送注冊信息 收到 是 發(fā)送身份信息 手機接入云端 是否注冊 是 否 填寫注冊信息 處理信息 認證身份 身份合法 進入云端 是 否 不合法提示 圖 10 手機端注冊登錄過程 3 2 用戶注冊用戶注冊 用戶在網(wǎng)關(guān)注冊時 發(fā)送注冊信息包 包括用戶名 密碼 3 3 設(shè)備添加 刪除與更換設(shè)備添加 刪除與更換 1 設(shè)備添加 需要添加設(shè)備先使用網(wǎng)關(guān)發(fā)現(xiàn)設(shè)備 發(fā)現(xiàn)設(shè)備后通過手機端將設(shè)備信息添加到網(wǎng)關(guān)數(shù) 據(jù)庫 2 設(shè)備刪除 發(fā)送設(shè)備刪除數(shù)據(jù)包 將設(shè)備從網(wǎng)關(guān)數(shù)據(jù)庫刪除 3 設(shè)備更換 如果有設(shè)備需要更換 先使用設(shè)備刪除數(shù)據(jù)包 將設(shè)備從網(wǎng)關(guān)數(shù)據(jù)庫刪除 然后更換 新設(shè)備 更換后發(fā)送設(shè)備添加數(shù)據(jù)包 實現(xiàn)設(shè)備更換 3 4 設(shè)備查詢設(shè)備查詢 控制控制 設(shè)備查詢 控制遵循網(wǎng)關(guān)控制設(shè)備的控制方式 手機端構(gòu)造數(shù)據(jù)包 網(wǎng)關(guān)進行解析 3 5 心跳包心跳包 網(wǎng)關(guān)不僅要要與服務器建立連接 同時還要定時向服務器發(fā)送心跳包 維護服務器端 的 IP 地址表和網(wǎng)關(guān)狀態(tài) 確保服務器可以隨時找到網(wǎng)關(guān) 心跳包時間間隔為 5 秒 心跳包交互過程如圖 心跳包交互過程如圖 圖 9 心跳包通信過程 3 7 查看狀態(tài)查看狀態(tài) 查看狀態(tài)主要目的為查看網(wǎng)關(guān)狀態(tài) 網(wǎng)關(guān)狀態(tài)可以為在線和離線兩種狀態(tài) 在線狀態(tài) 可以遠程控制家中設(shè)備 離線狀態(tài)則不能 查看狀態(tài)在網(wǎng)絡(luò)層實現(xiàn) 云端網(wǎng)關(guān) 心跳包 超時未收到心跳包 則 斷開連接 更改網(wǎng)關(guān)狀 態(tài) 3 8 錯誤返回錯誤返回 錯誤返回狀態(tài)主要有六種 1XX 信息響應類 表示接收到請求并且繼續(xù)處理 2XX 處理成功響應類 表示動作被成功接收 理解和接受 3XX 客戶端錯誤 客戶請求包含語法錯誤或者是不能正確執(zhí) 4XX 網(wǎng)關(guān)錯誤 網(wǎng)關(guān)不能正確執(zhí)行一個正確的請求 5XX 服務端錯誤 服務器不能正確執(zhí)行一個正確的請求 6XX 智能家居設(shè)備錯誤 智能家居設(shè)備不能正確執(zhí)行一個正確的請求 3 9 設(shè)備狀態(tài)更新設(shè)備狀態(tài)更新 當智能設(shè)備狀態(tài)有更新時 如溫度變化 網(wǎng)關(guān)收到傳感器信息 保存在數(shù)據(jù)庫 同 時向手機端發(fā)送更新信息包 3 10 宏觀控制宏觀控制 4 數(shù)據(jù)包示例數(shù)據(jù)包示例 1 手機在網(wǎng)關(guān)登錄手機在網(wǎng)關(guān)登錄 1 1 手機發(fā)送宣告信息 Request Layer Network Source App Destination Gateway Type Declare Time 2014 11 30T18 30 00 Value 192 168 0 1 1 2 網(wǎng)關(guān)給出響應 Response Layer Network Source Gateway Destination App Type Declare Time 2014 11 30T18 30 10 Value 192 168 0 2 1 3 手機發(fā)送登錄信息 Request Layer Network Source App Destination Gateway Type Login Time 2014 11 30T18 30 20 Value user1 123456 1 4 網(wǎng)關(guān)給出響應 Response Layer Network Source Gateway Destination App Type LoginACK 登錄失敗為 Error Time 2014 11 30T18 30 30 Status 200 2 設(shè)備狀態(tài)更新設(shè)備狀態(tài)更新 Response Layer Manage Source Gateway Destination Server Object Ad hoc Type Update Category Monitor SensorType Temperature sensor NodeID 1234 Time 2014 11 30T18 30 00 Value 31 1 3 設(shè)備控制設(shè)備控制 對普通

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論