《IoT開發實戰:CoAP卷》是2017年機械工業出版社出版的圖書。
基本介紹
- 中文名:IoT開發實戰:CoAP卷
- 作者:徐凱
- 出版時間:2017年09月
- 出版社:機械工業出版社
- ISBN:978-7-111-57780-5
- 定價:59 元
- 開本:16 開
- 叢書名:物聯網核心技術叢書
- 版次:1/1
內容簡介,目錄,
內容簡介
CoAP是受限制的套用協定(Constrained Application Protocol)的簡稱。隨著近幾年物聯網技術的快速發展,越來越多的設備需要接入網際網路。雖然對人們而言,連線網際網路方便快捷,但是對於那些低功耗受限制設備,接入網際網路卻非常困難。在當前由PC機和智慧型手機組成的網際網路世界中,信息交換一般通過TCP和HTTP協定實現。但是低功耗受限制設備要實現TCP和HTTP協定也許是一個非常苛刻的要求。為了讓低功耗受限制設可以流暢接入網際網路,CoAP應運而生。CoAP是一種物聯網套用層協定,它運行於UDP協定之上,而不是像HTTP那樣運行於TCP之上。CoAP借鑑了HTTP協定大量的成功經驗,CoAP和HTTP都使用請求回響工作模式。與HTTP採用文本首部不同,CoAP採用完全的二進制首部,這使得CoAP的首部更短,傳輸效率更高。CoAP為低功耗受限制設備而生,一個記憶體僅有20KB的單片機也可以實現CoAP伺服器或客戶端。
本書主要內容包括:
學習CoAP必要的網路基礎知識
CoAP與MQTT、HTTP之間的區別與聯繫
CoAP核心內容:二進制首部、工作模式、重傳機制、回響碼、選項和媒體類型等
CoAP擴展內容:CoAP資源描述和CoAP觀察者
使用C語言、Python或Node.js實現CoAP客戶端與伺服器
使用Copper外掛程式和Wireshark調試CoAP
目錄
前言
第1章 物聯網與網路協定1
1.1 本章主要內容1
1.2 物聯網與IP2
1.2.1 IPv42
1.2.2 IPv62
1.2.3 6LoWPAN3
1.3 物聯網與HTTP 6
1.3.1 HTTP6
1.3.2 REST風格6
1.4 物聯網與CoAP7
1.4.1 CoAP8
1.4.2 RFC文檔匯總8
1.5 物聯網與MQTT協定10
1.5.1 MQTT協定10
1.5.2 MQTT主題10
1.5.3 MQTT服務質量11
1.6 本章小結12
第2章 物聯網與開源硬體13
2.1 本章主要內容13
2.2 Arduino13
2.2.1 Arduino簡介13
2.2.2 常用Arduino型號14
2.2.3 Arduino擴展接口15
2.3 樹莓派16
2.3.1 樹莓派簡介16
2.3.2 常用樹莓派型號16
2.3.3 樹莓派擴展接口19
2.4 本章小結20
第3章 網路技術回顧22
3.1 本章主要內容22
3.2 IP23
3.2.1 動手嘗試23
3.2.2 IPv4首部26
3.2.3 IPv4地址27
3.2.4 IPv6首部28
3.2.5 IPv6地址30
3.3 UDP31
3.3.1 動手嘗試31
3.3.2 UDP首部35
3.3.3 UDP示例分析35
3.4 TCP37
3.4.1 動手嘗試37
3.4.2 TCP首部41
3.4.3 TCP示例分析42
3.4.4 UDP與TCP對比43
3.5 HTTP44
3.5.1 動手嘗試44
3.5.2 HTTP工作模式50
3.5.3 HTTP首部51
3.5.4 HTTP請求方法53
3.5.5 HTTP狀態碼53
3.5.6 HTTP首部欄位54
3.5.7 HTTP的優勢與問題54
3.6 本章小結56
第4章 CoAP快速入門57
4.1 本章主要內容57
4.2 Copper外掛程式入門58
4.2.1 Copper外掛程式安裝58
4.2.2 Copper外掛程式入門示例59
4.3 Arduino CoAP伺服器實現61
4.3.1 獲取示例61
4.3.2 示例說明62
4.3.3 動手測試67
4.3.4 著手分析70
4.4 本章小結73
第5章 CoAP核心74
5.1 本章主要內容74
5.2 CoAP首部74
5.2.1 版本編號Ver75
5.2.2 報文類型T75
5.2.3 標籤長度指示TKL75
5.2.4 準則Code76
5.2.5 報文序號Message ID77
5.2.6 標籤Token77
5.2.7 選項Options77
5.2.8 分隔設定0xFF78
5.2.9 負載Payload78
5.3 CoAP工作模式78
5.3.1 邏輯分層結構79
5.3.2 報文類型79
5.3.3 請求/回響模式81
5.4 CoAP重傳機制83
5.4.1 CoAP重傳情況分析83
5.4.2 傳輸參數說明84
5.4.3 最大傳輸耗時(MAX_TRANSMIT_SPAN)85
5.4.4 最大等待時間(MAX_TRANSMIT_WAIT)86
5.5 CoAP方法87
5.5.1 GET87
5.5.2 POST87
5.5.3 PUT87
5.5.4 DELETE87
5.6 CoAP回響碼87
5.6.1 正確回響88
5.6.2 客戶端錯誤88
5.6.3 伺服器錯誤89
5.7 CoAP選項90
5.7.1 選項格式90
5.7.2 URI相關選項91
5.7.3 Content-Format選項92
5.7.4 Accept選項92
5.7.5 Etag選項92
5.7.6 If-Match選項94
5.7.7 If-None-Match選項96
5.7.8 選項示例97
5.8 CoAP媒體類型99
5.8.1 link-format類型100
5.8.2 文本與二進制類型100
5.8.3 JSON類型101
5.9 本章小結102
第6章 CoAP擴展103
6.1 本章主要內容103
6.2 CoAP資源描述103
6.2.1 CoAP資源描述原理103
6.2.2 CoAP資源描述詳解105
6.3 CoAP觀察者模式106
6.3.1 觀察者模式原理106
6.3.2 CoAP觀察選項107
6.3.3 觀察者模式示例108
6.4 本章小結110
第7章 CoAP軟體實現111
7.1 本章主要內容111
7.2 libcoap112
7.2.1 libcoap安裝112
7.2.2 libcoap使用詳解114
7.2.3 libcoap入門示例117
7.3 aiocoap119
7.3.1 aiocoap安裝120
7.3.2 aiocoap入門示例120
7.3.3 aiocoap塊傳輸示例124
7.3.4 aiocoap樹莓派GPIO示例126
7.4 node-coap129
7.4.1 Node.js安裝130
7.4.2 node-coap入門示例132
7.4.3 node-coap媒體類型示例135
7.5 Californium137
7.5.1 準備工作137
7.5.2 Californium入門示例140
7.6 本章小結149
第8章 CoAP調試工具150
8.1 本章主要內容150
8.2 Copper調試工具150
8.2.1 Copper地址欄151
8.2.2 Copper工具列152
8.2.3 Copper回響首部153
8.2.4 Copper負載內容154
8.2.5 Copper請求選項154
8.2.6 Copper使用示例155
8.3 Wireshark163
8.3.1 Wireshark安裝164
8.3.2 Wireshark使用164
8.3.3 Wireshark示例166
8.4 本章小結169
第9章 微型物聯網系統——伺服器部分171
9.1 本章主要內容171
9.2 假想需求171
9.3 原型設計172
9.3.1 系統結構說明172
9.3.2 系統流程設計173
9.3.3 網頁原型設計174
9.4 詳細設計174
9.4.1 技術選型說明175
9.4.2 資料庫設計176
9.4.3 CoAP API設計176
9.4.4 HTTP API設計177
9.5 具體實現179
9.5.1 資料庫實現180
9.5.2 CoAP路由實現183
9.5.3 Web前端實現190
9.5.4 Web後端實現195
9.6 綜合測試199
9.6.1 啟動微型物聯網系統199
9.6.2 增加模擬數據200
9.6.3 訪問默認設備200
9.6.4 使用分頁功能200
9.6.5 訪問其他設備201
9.7 本章小結202
第10章 微型物聯網系統——設備部分203
10.1 本章主要內容203
10.2 設備與網路結構說明203
10.2.1 設備說明203
10.2.2 網路結構說明205
10.3 Contiki入門206
10.3.1 Contiki初步207
10.3.2 native入門示例211
10.3.3 安裝交叉工具鏈212
10.3.4 SensorTag入門示例213
10.4 搭建邊界路由218
10.4.1 創建Slip-Radio218
10.4.2 創建Native-Border-Router219
10.5 增加NAT64223
10.5.1 NAT64簡介223
10.5.2 安裝Jool224
10.5.3 UDP NAT64示例225
10.6 CoAP Client Sensor231
10.6.1 加入網路並啟動任務232
10.6.2 獲取感測器數據233
10.6.3 傳遞感測器數據235
10.7 綜合測試238
10.7.1 啟動CoAP伺服器238
10.7.2 啟動邊界路由和NAT64239
10.7.3 生成並下載固件239
10.7.4 查看運行結果239
10.8 本章小結242
參考文獻243