This book addresses researchers and graduate students at the forefront of study/research on the Internet of Things (IoT) by presenting state-of-the-art research together with the current and future challenges in building new smart applications (e.g., Smart Cities, Smart Buildings, and Industrial IoT) in an efficient, scalable, and sustainable way. It covers the main pillars of the IoT world (Connectivity, Interoperability, Discoverability, and Security/Privacy), providing a comprehensive look at the current technologies, procedures, and architectures.
Table of Contents
Preface xv
1 Preliminaries, Motivation, and Related Work 1
1.1 What is the Internet of Things? 1
1.2 Wireless Ad-hoc and Sensor Networks:The Ancestors without IP 2
1.3 IoT-enabled Applications 3
1.3.1 Home and Building Automation 3
1.3.2 Smart Cities 4
1.3.3 Smart Grids 4
1.3.4 Industrial IoT 5
1.3.5 Smart Farming 7
2 Standards 9
2.1 “Traditional” Internet Review 9
2.1.1 Physical/Link Layer 10
2.1.1.1 IEEE 802.3 (Ethernet) 11
2.1.1.2 IEEE 802.11 12
2.1.2 Network Layer 14
2.1.2.1 IPv6 and IPv4 14
2.1.3 Transport Layer 17
2.1.3.1 TCP and UDP 19
2.1.4 Application Layer 21
2.1.4.1 HTTP 21
2.1.4.2 AMQP 22
2.1.4.3 SIP 23
2.2 The Internet ofThings 25
2.2.1 Designing the Architecture of an IP-based Internet of Things 26
2.2.2 Physical/Link Layer 28
2.2.2.1 IEEE 802.15.4 and ZigBee 28
2.2.2.2 Low-powerWi-Fi 30
2.2.2.3 Bluetooth and BLE 31
2.2.2.4 Powerline Communications 32
2.2.3 Network Layer 33
2.2.3.1 The 6LoWPAN Adaptation Layer 34
2.2.4 Transport Layer 34
2.2.5 Application Layer 34
2.2.5.1 CoAP 35
2.2.5.2 CoSIP Protocol Specification 60
2.3 The Industrial IoT 76
3 Interoperability 79
3.1 Applications in the IoT 79
3.2 The Verticals: Cloud-based Solutions 80
3.3 REST Architectures:TheWeb of Things 81
3.3.1 REST: TheWeb as a Platform 82
3.3.1.1 Resource-oriented Architectures 83
3.3.1.2 REST Architectures 84
3.3.1.3 Representation of Resources 84
3.3.1.4 Resource Identifiers 85
3.3.1.5 Statelessness 86
3.3.1.6 Applications as Finite-state Machines 86
3.3.1.7 Hypermedia as the Engine of Application State 86
3.3.2 Richardson MaturityModel 88
3.3.2.1 Level 0: the Swamp of POX 88
3.3.2.2 Level 1: Resources 90
3.3.2.3 Level 2: HTTP Verbs 90
3.3.2.4 Level 3: Hypermedia 95
3.3.2.5 The Meaning of the Levels 97
3.4 TheWeb of Things 97
3.5 Messaging Queues and Publish/Subscribe Communications 98
3.5.1 Advantages of the Pub/Sub Model 99
3.5.2 Disadvantages of the Pub/Sub Model 100
3.5.3 Message Queue Telemetry Transport 100
3.5.3.1 MQTT versus AMQP 101
3.6 Session Initiation for the IoT 102
3.6.1 Motivations 102
3.6.2 Lightweight Sessions in the IoT 104
3.6.2.1 A Protocol for Constrained Session Initiation 106
3.6.2.2 Session Initiation 106
3.6.2.3 Session Tear-down 108
3.6.2.4 Session Modification 108
3.7 Performance Evaluation 109
3.7.1 Implementation 109
3.7.2 Experimental Results 111
3.7.3 Conclusions 114
3.8 Optimized Communications: the Dual-network Management Protocol 115
3.8.1 DNMP Motivations 115
3.8.2 RelatedWork 117
3.8.3 The DNMP Protocol 118
3.8.4 Implementation with IEEE 802.15.4 and IEEE 802.11s 123
3.8.4.1 LPLT Networking 123
3.8.4.2 HPHT Networking 123
3.8.4.3 Node Integration 124
3.8.5 Performance Evaluation 125
3.8.5.1 Experimental Setup 125
3.8.5.2 Operational Limitations of IEEE 802.15.4 126
3.8.6 IEEE 802.15.4-controlled Selective Activation of the IEEE 802.11s Network 129
3.8.7 Conclusions 130
3.9 Discoverability in Constrained Environments 131
3.9.1 CoRE Link Format 131
3.9.1.1 CoRE Link Format: Discovery 132
3.9.1.2 Link Format 133
3.9.1.3 The Interface Description Attribute 135
3.9.2 CoRE Interfaces 135
3.9.2.1 Sensor 136
3.9.2.2 Parameter 137
3.9.2.3 Read-only Parameter 137
3.9.2.4 Actuator 137
3.10 Data Formats: Media Types for Sensor Markup Language 138
3.10.1 JSON Representations 141
3.10.1.1 Single Datapoint 141
3.10.1.2 Multiple Datapoints 142
3.10.1.3 Multiple Measurements 142
4 Discoverability 145
4.1 Service and Resource Discovery 145
4.2 Local and Large-scale Service Discovery 146
4.2.1 ZeroConf 151
4.2.2 UPnP 152
4.2.3 URI Beacons and the PhysicalWeb 152
4.3 Scalable and Self-configuring Architecture for Service Discovery in the IoT 154
4.3.1 IoT Gateway 156
4.3.1.1 Proxy Functionality 156
4.3.1.2 Service and Resource Discovery 158
4.3.2 A P2P-based Large-scale Service Discovery Architecture 159
4.3.2.1 Distributed Location Service 160
4.3.2.2 Distributed Geographic Table 161
4.3.2.3 An Architecture for Large-scale Service Discovery based on Peer-to-peer Technologies 162
4.3.3 Zeroconf-based Local Service Discovery for Constrained Environments 167
4.3.3.1 Architecture 167
4.3.3.2 Service Discovery Protocol 168
4.3.4 Implementation Results 170
4.3.4.1 Local Service Discovery 171
4.3.4.2 Large-scale Service Discovery 175
4.4 Lightweight Service Discovery in Low-power IoT Networks 178
4.4.1 Efficient Forwarding Protocol for Service Discovery 180
4.4.1.1 Multicast through Local Filtered Flooding 181
4.4.2 Efficient Multiple Unicast Forwarding 183
4.5 Implementation Results 185
5 Security and Privacy in the IoT 191
5.1 Security Issues in the IoT 192
5.2 Security Mechanisms Overview 196
5.2.1 Traditional vs Lightweight security 196
5.2.1.1 Network Layer 197
5.2.1.2 Transport Layer 199
5.2.1.3 Application Layer 201
5.2.2 Lightweight Cryptography 202
5.2.2.1 Symmetric-key LWC Algorithms 203
5.2.2.2 Public-key (Asymmetric) LWC Algorithms 206
5.2.2.3 Lightweight Cryptographic Hash Functions 210
5.2.2.4 Homomorphic Encryption Schemes 213
5.2.3 Key Agreement, Distribution, and Security Bootstrapping 214
5.2.3.1 Key Agreement Protocols 215
5.2.3.2 Shared Group-key Distribution 215
5.2.3.3 Security Bootstrapping 216
5.2.4 Processing Data in the Encrypted Domain: Secure Data Aggregation 217
5.2.5 Authorization Mechanisms for Secure IoT Services 219
5.3 Privacy Issues in the IoT 222
5.3.1 The Role of Authorization 222
5.3.2 IoT-OAS: Delegation-based Authorization for the Internet of Things 227
5.3.2.1 Architecture 227
5.3.2.2 Granting Access Tokens 229
5.3.2.3 Authorizing Requests 231
5.3.2.4 SP-to-IoT-OAS Communication: Protocol Details 231
5.3.2.5 Configuration 232
5.3.3 IoT-OAS Application Scenarios 232
5.3.3.1 Network Broker Communication 233
5.3.3.2 Gateway-based Communication 235
5.3.3.3 End-to-End CoAP Communication 235
5.3.3.4 Hybrid Gateway-based Communication 235
6 Cloud and Fog Computing for the IoT 237
6.1 Cloud Computing 237
6.2 Big Data Processing Pattern 238
6.3 Big Stream 239
6.3.1 Big-stream-oriented Architecture 243
6.3.2 Graph-based Processing 247
6.3.3 Implementation 251
6.3.3.1 Acquisition Module 251
6.3.3.2 Normalization Module 253
6.3.3.3 Graph Framework 254
6.3.3.4 Application Register Module 255
6.3.4 Performance Evaluation 257
6.3.5 Solutions and Security Considerations 262
6.4 Big Stream and Security 263
6.4.1 Graph-based Cloud System Security 266
6.4.2 Normalization after a Secure Stream Acquisition with OFS Module 268
6.4.3 Enhancing the Application Register with the IGS Module 269
6.4.4 Securing Streams inside Graph Nodes 273
6.4.5 Evaluation of a Secure Big Stream Architecture 277
6.5 Fog Computing and the IoT 281
6.6 The Role of the IoTHub 283
6.6.1 Virtualization and Replication 285
6.6.1.1 The IoT Hub 285
6.6.1.2 Operational Scenarios 287
6.6.1.3 Synchronization Protocol 290
7 The IoT in Practice 303
7.1 Hardware for the IoT 303
7.1.1 Classes of Constrained Devices 305
7.1.2 Hardware Platforms 307
7.1.2.1 TelosB 307
7.1.2.2 Zolertia Z1 307
7.1.2.3 OpenMote 310
7.1.2.4 Arduino 313
7.1.2.5 Intel Galileo 315
7.1.2.6 Raspberry Pi 318
7.2 Software for the IoT 321
7.2.1 OpenWSN 321
7.2.2 TinyOS 322
7.2.3 FreeRTOS 323
7.2.4 TI-RTOS 323
7.2.5 RIOT 324
7.2.6 Contiki OS 325
7.2.6.1 Networking 325
7.2.6.2 Low-power Operation 326
7.2.6.3 Simulation 326
7.2.6.4 Programming Model 327
7.2.6.5 Features 328
7.3 Vision and Architecture of a Testbed for theWeb of Things 328
7.3.1 An All-IP-based Infrastructure for Smart Objects 330
7.3.2 Enabling Interactions with Smart Objects through the IoT Hub 332
7.3.2.1 Integration Challenges 334
7.3.3 Testbed Access and Security 335
7.3.3.1 The Role of Authorization 335
7.3.4 Exploiting the Testbed:WoT Applications for Mobile and Wearable Devices 336
7.3.5 Open Challenges and Future Vision 338
7.4 Wearable Computing for the IoT: Interaction Patterns with Smart Objects in RESTful Environments 340
7.4.1 Shaping the Internet ofThings in a Mobile-Centric World 340
7.4.2 Interaction Patterns with Smart Objects throughWearable Devices 342
7.4.2.1 Smart Object Communication Principles 342
7.4.2.2 Interaction Patterns 343
7.4.3 Implementation in a Real-world IoT Testbed 345
7.4.3.1 Future Vision: towards the Tactile Internet 348
7.5 Effective Authorization for theWeb ofThings 349
7.5.1 Authorization Framework Architecture 353
7.5.1.1 System Operations 353
7.5.2 Implementation and Validation 357
Reference 359
Index 381