Table of Contents
Preface xiii
Foreword xvii
Acknowledgments xix
About the Authors xxi
Notations and Abbreviations xxv
I Overview
1 Introduction 3
1.1 Some Foundational Information 3
1.2 Next-Generation Sensor Networked Tiny Devices 5
1.3 Sensor Network Software 6
1.4 Performance-Driven Network Software Programming 8
1.5 Unique Characteristics of Programming Environments for Sensor Networks 10
1.6 Goals of the Book 10
1.7 Why TinyOS and NesC 10
1.8 Organization of the Book 10
1.9 Future Demands on Sensor-Based Software 12
Problems 12
References 14
2 Wireless Sensor Networks 15
2.1 Sensor Network Applications 17
2.2 Characteristics of Sensor Networks 20
2.3 Nature of Data in Sensor Networks 24
Problems 24
References 25
3 Sensor Technology 27
3.1 Sensor Level 27
3.2 Server Level 33
3.3 Client Level 36
3.4 Programming Tools 36
Problems 37
References 38
II Background
4 Data Structures for Sensor Computing 41
4.1 Introduction to Sensor Computing 43
4.2 Communication Capabilities 46
4.3 General Structure of Programming 48
4.4 Details on Embedded Data Structures 51
4.5 Linked List 53
4.6 Importance of Graph Concepts in Sensor Programming 57
4.7 Graph and Trees 61
4.8 Trees 66
4.9 Graph Traversal 75
4.10 Connectivity 76
4.11 Planar Graphs 81
4.12 Coloring and Independence 83
4.13 Clique Covering 84
4.14 Intersection Graph 85
4.15 Defining Data Structure of Spanning Tree Protocols 86
Problems 90
References 91
5 Tiny Operating System (TinyOS) 92
5.1 Components of TinyOS 93
5.2 An Introduction to NesC 93
5.3 Event-Driven Programming 96
Problems 97
References 97
6 Programming in NesC 99
6.1 NesC Programming 99
6.2 A Simple Program 99
Problems 108
References 109
III Sensor Network Implementation
7 Sensor Programming 113
7.1 Programming Challenges in Wireless Sensor Networks 113
7.2 Sensing the World 119
7.3 Applications Using the Interface SplitControl 122
Problems 129
References 130
8 Algorithms for Wireless Sensor Networks 131
8.1 Structural Characteristics of Sensor Nodes 132
8.2 Distinctive Properties of Wireless Sensor Networks 134
8.3 Sensor Network Stack 135
8.4 Synchronization in Wireless Sensor Networks 138
8.5 Collision Avoidance: Token-Based Approach 144
8.6 Carrier Sensing Versus Decoding 148
Problems 153
References 154
9 Techniques for Protocol Programming 155
9.1 The Mediation Device Protocol 156
9.2 Contention-Based Protocols 158
9.3 Programming with Link-Layer Protocols 161
9.4 Automatic Repeat Request (ARQ) Protocols 161
9.5 Transmitter Role 161
9.6 Alternating-Bit-Based ARQ Protocols 163
9.7 Selective Repeat/Selective Reject 168
9.8 Naming and Addressing 170
9.9 Distributed Assignment of Networkwide Addresses 170
9.10 Improved Algorithms 177
9.11 Content-Based Addressing 179
9.12 Flooding 181
9.13 Rumor Routing 184
9.14 Tracking 188
9.15 Querying in Rumor Routing 189
Problems 194
References 194
IV Real-World Scenarios
10 Sensor Deployment Abstraction 197
10.1 Sensor Network Abstraction 197
10.2 Data Aggregation 198
10.3 Collaboration Group Abstractions 202
10.4 Programming Beyond Individual Nodes 205
Problems 205
References 206
11 Standards for Building Wireless Sensor Network Applications 207
11.1 802.XX Industry Frequency and Data Rates 207
11.2 ZigBee Devices and Components 208
11.3 ZigBee Application Development 210
11.4 Dissemination and Evaluation 212
Problems 212
References 214
12 INSPIRE: Innovation in Sensor Programming Implementation for Real-Time Environment 215
12.1 Motivation and Background 215
12.2 Software Microframework Requirements 236
References 237
13 Performance Analysis of Power-Aware Algorithms 239
13.1 Introduction 239
13.2 Service Architecture 242
13.3 Approaches to WSN Programmability 248
13.4 Simulation Capabilities 249
13.5 Benchmarking 251
13.6 Conclusion 251
Problems 252
References 252
14 Modeling Sensor Networks Through Design and Simulation 253
14.1 Introduction 254
14.2 Why a New Simulator 254
14.3 Currently Available Simulators 255
14.4 Simulation Design 257
14.5 Implementation Details 261
14.6 Experimental Results 265
14.7 Final Comments 271
Appendix 272
Acknowledgments 275
Problems 275
References 275
15 MATLAB Simulation of Airport Baggage-Handling System 277
15.1 Introduction 277
15.2 Background 277
15.3 Proposed Architecture 283
15.4 Simulation Results and Discussion 283
15.5 Source Code 286
Problems 295
References 296
16 Security in Sensor Networks 297
16.1 Introduction 297
16.2 Security Constraints 297
16.3 Denial-of-Service Attacks in Multiple Layers 298
16.4 Some Well-Known Algorithms for Security Problems 302
16.5 Secure Information Routing 302
16.6 Security Protocols for Sensor Networks 303
16.7 Final Comments 303
Problems 303
References 304
17 Closing Comments 305
Bibliography 307
Index 313