1 software reliability in wireless sensor networks (wsn) -xiong junjie -2010.4.26

18
1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

Upload: lily-watts

Post on 18-Jan-2018

217 views

Category:

Documents


0 download

DESCRIPTION

3 Motivation Software Reliability is very important in WSNs. E.g., a bug in the flash driver of Deluge caused a three-day network- outage during a deployment on an active volcano. Try to find as many bugs as possible before deployment.  By simulation.  By testbad.

TRANSCRIPT

Page 1: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

1

Software Reliability in Wireless Sensor Networks (WSN)

-Xiong Junjie-2010.4.26

Page 2: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

2

Outline

Motivation Recent Research Feasible Techniques and Challenges

Page 3: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

3

Motivation

Software Reliability is very important in WSNs. E.g., a bug in the flash driver of Deluge caused a three-day network-outage during a deployment on an active volcano.

Try to find as many bugs as possible before deployment. By simulation. By testbad.

Page 4: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

4

Motivation The software architecture is implied in the hardware

abstraction architecture (EWSN2005).

Software

Hardware

Page 5: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

5

Outline

Motivation Recent Research Feasible Techniques and Challenges

Page 6: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

6

Recent Research (1) TOSSIM: Accurate and scalable simulation of entire

TinyOS applications (SenSys2003)

It is a well-known simulation environment for TinyOS. It works by replacing components with simulation

implementations. It supports simulation configuration file written with two

programming interfaces: Python and C++. To compile TOSSIM, execute command: make micaz sim

Page 7: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

7

Recent Research (2) Safe TinyOS: Efficient memory safety for TinyOS

(SenSys2007) It catches all pointer and array bounds errors with the Deputy compiler. Deputy compiler enforces type and memory safety with several

annotations:

To compile a program in safe TinyOS, execute command: make micaz safe. E.g., after executing such command, line “message_t* msg = ...; ” in the compiled program will be changed to “message_t* ONE msg = ...; ”.

ONE A pointer that always refers to a single object .

ONE_NOK Same as ONE but may be NULL.

COUNT(n)  A pointer that always refers to a block of at least n objects.

COUNT_NOK(n)  Same as COUNT but may be NULL.

BND(n,m)  A pointer p such that n≤p<m, and that is aligned with respect to n and m.

… …

Page 8: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

8

Recent Research (3) T-Check: Bug Finding for Sensor Networks (IPSN2010)

T-Check is developed to find bugs by simulation before deployment. It uses TOSSIM and Safe TinyOS, and adds non-deterministic events to

trigger corner case bugs. It is built on the model checker from paper “Detecting liveness bugs in

systems code” (NSDI2008): Depth-bounded explicit state model checking. Random walk exploration. Partial order reduction. Critical Transition Isolation.

It finds 10 safety bugs and 2 lives bugs in TinyOS 2.1.

Page 9: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

9

Recent Research (4) KleeNet: Discovering Insidious Interaction Bugs in Wireless

Sensor Networks Before Deployment (IPSN2010)

KleeNet is a debugging environment that effectively discovers interaction bugs before deployment by injecting non-deterministic events. It is suitable for WSNs by extending Klee (a symbolic virtual machine built on top of the LLVM, OSDI2008): It uses symbolic execution to generate execution paths of

participating nodes at high-coverage. It injects symbolic, nondeterministic events (such as loss, duplication

and corruption of packets and node failures), and thus drive the sensor network execution into corner-case situations.

It detects four insidious bugs in the TCP/IP protocol stack of the Contiki OS.

Page 10: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

10

Recent Research (5) Neutron: Surviving sensor network software faults

(SOSP2009)

Neutron is a version of the TinyOS operating system that efficiently recovers from memory safety bugs.

It divides programs into recovery units and reboot only the faulting unit. It is built on Safe TinyOS and TOSThreads (multi-threaded TinyOS in

SenSys2009).

Page 11: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

11

Recent Research (6) FSMGen: Deriving State Machines from TinyOS Programs

using Symbolic Execution (IPSN2008)

TinyOS programs are low-level and thus difficult to understand, maintain, and debug. Deriving Finite State Machine (FSM) aids program understanding, error detection, and program validation.

FSMGen adopts symbolic execution. FSMGen employs a form of predicate abstraction on the resulting

information from symbolic execution, and generate a FSM.

Page 12: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

12

Recent Research (7) PTFW: A Protocol Testing Framework for Wireless Sensor

Networks (IWCMC2009: AR47.5%)

It is a protocol testing framework for WSNs. It based on the layered architecture of WSNs. It uses FSM.

Page 13: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

13

Outline

Motivation Recent Research Feasible Techniques and Challenges

Page 14: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

14

Feasible Techniques

Simulation and testbed cannot find some bugs that appear in real deployment.

Testing with large amount of real sensor nodes is not efficient and practical.

It is efficient and feasible to develop a virtual testing environment with a few real sensor nodes and a few PCs, and make the testing closer to real deployment than simulation.

Page 15: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

15

Feasible Techniques

RF is radio frequency

Page 16: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

16

Feasible Techniques An example to test a shortest path routing.

Test case 1: PC wait for IUT’s routing request.

Test case 2: PC notices T to transmit several routing replies to IUT.

Routing request

Forward Routingrequest to PC

Routing Reply from node 8 with hop 4

Routing Reply from node 7 with hop 3

Routing Reply fromnode 6 with hop 2

Ask T to send to IUT

Page 17: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

17

Challenges

Manipulate the Radio Frequency address. The transmitting module at the PC should be able to

communicate with the counterpart at the controlled transmitting node via serial port.

The receiving module at the PC should be able to communicate with the counterpart at the controlled receiving node via serial port.

API design for test case at any software level of sensor nodes.

Test case generation by FSM or other formalized models.

Page 18: 1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie -2010.4.26

18

Thank you!