Agenda for Networking Session Chairs: S. Shyne & M. Srivastava D. Estrin (USC) : Scalable Directed Diffusion Methods L. Zhang (UCLA): Gradient Broadcast for Sensor Nets D. J. Van Hook (MIT/LL): Publish/Subscribe Methods W. Kaiser (Sensor.com): WINS NG Networking Break M. Srivastava (UCLA): Sensor Networking Issues C. Chien (RSC): Latency, and Security Trade-offs in Wireless Communications D. Carman (NAI Labs): Security Architecture & Techniques Discussion Some Issues for Discussion Relationship between diffusion, gradient, and publishsubscribe routing models Above vs. “traditional” multihop routing with spatial and power awareness is one sufficient, or are both needed? how do they compare Interaction of routing with distributed signal processing algorithms Interaction of routing with sensor task distribution and scheduling Interaction of networking with mobile code / scripting Management of sensor network – centralized, distributed Trade-offs: latency, power, survivability, accuracy Sensor Networking Issues DSN (ISI) & SensorWare (RSC) Projects at UCLA Mani Srivastava UCLA - EE Department mbs@ee.ucla.edu Power Issues in Sensor Networking Problems: routing is power unaware: focus on topology changes • metrics such as shortest hop, shortest delay, link quality etc. • power loss in quiescent state signaling in proactive protocols lack of routing and MAC coordination, e.g. • large number of collisions with CSMA MAC during broadcasts used by routing protocols for probing • TDMA slot scheduling, and clustering overheads lead to sub optimal route selection in algorithms such as DSR What can be done? obvious one: power-based routing metrics leverage location information during routing intelligently combine and filter replies at intermediate nodes exploit path diversity tightly coupled routing + TDMA MAC • soft-state slot schedule, locally proactive + globally reactive Exploiting Path Diversity for Power Idea is distribute traffic over alternative paths to increase network lifetime and coverage packet disperser and combiner entities Works with DSR as well as gradient based routing Evaluation metrics time to breakdown # of depleted nodes RMS energy distribution A problem: do not know which nodes are important as it depends on future target traffic pattern and user movement pattern Path Diversity Scenario B C A user A and B generate 1 packet every 100 ms until 5s C generates 1 packet every 100 ms from 5s till 15s # of Nodes with > 10% Battery Packets received by t=150: Normal: Stochastic: Energy Disperse: Stochastic ED: Divert streams: 127 133 160 161 175 RMS Battery Energy Consumption Lower Bound 2 Lower Bound 1 MAC and Routing Interaction With DSR Route A->H Route request path: {A,B,C,E,G,H} Paths depend on slot assignment With DSDV Route A->G 3 routes with equal length ABCEG,AJOHG, AJIHG These will fluctuate depending on the route updates Tightly coupled MAC and routing layers can help resolve these issues and increase flexibility •TDMA MAC & Routing simulations in ns-2 are now in progress The “Networking” Viewpoint Alone is Inadequate Lifetime Rapidity of info (latency -1) Detail and/or Certainty Notion of quality of service is quite different and taskspecific Hunt for the “best” protocol for sensor nets is inadequate e.g. different tasks on sensor network work best with different routing boundary between networking & other layers fuzzy in sensor net. “Distributed Computing” Viewpoint A “Distributed Computing” viewpoint is better suited distributed algorithms with application-specific protocols – application-specific routing helps with power, latency etc. dynamic, resource-constrained environment nodes coordinate to do tasks such as target detection, target tracking, distributed signal processing, network monitoring Approach: a minimal “substrate” or middleware with support for mobile scripts easily write and incrementally in situ deploy distributed apps with application-specific networking administer and manage the network accommodate transient users with specialized tasks etc. Our Architecture Transient External User download Sensor Scripts SCRIPT AP Applications P Sensor Middleware Sensor Scripts AP Applications P Sensor Middleware Node Kernel & APIs Hardware Abstraction Layer Hardware Abstraction Layer Sensor Node Hardware Sensor Node Hardware Small set of common (local as well as distributed) services Scriptable, lightweight runtime at each node on top of a RTOS SCRIPT Node Kernel & APIs Download migrate compact, platform independent sensor node control scripts used primarily for control flow (protocols) and not data crunching Node Object Model (SP, communication, sensor resources and services) Scripts can replicate Implementation Approach Scripts based on subset of Tcl Tcl interpreter ported to Rockwell nodes on uC/OS Also, in ns via external Unix processes attached to ns nodes Model: (events, state) actions actions = events | data processing | state change signal processing, communication, and sensing services available as persistent native code objects Mechanisms: API: spawn, migrate, replicate, kill, script state maintenance resource-based script admission control future: script compression, authentication Implementation on RSC Nodes Interpreter App1 App1 Apps script script Event Queue Script Manager Sensor N/W Object Object Tcl Process #1 Sensor Stack Interpreter { . . wait e1 e2 if (e1=v1)… . . . } Event Queue Sensor N/W Object Object Tcl Process #n Network Other Stack Drivers/Services Base RTOS Hardware Abstraction Layer Script Implementation on ns nodes Free Thread Pool State Information Spawned Threads Sensor Model UNIX process ns-2 environment () INJECT( ) main() () Sensor Agent DSR () RX Custom Routing 802.11 Sensor Model NetIf wireless channel TX Example Application #1 Custom Network Status Queries E.g. which node has the minimum battery level? No scripts and with knowledge of global topology. Ask every node, wait for a reply. Contention around central node. Not scalable. With scripts. Populate the script so an optimal multicast/gathercast tree is created. Less contention around central node. Scalable! #of messages transmitted Node running a script #of messages received Example Application #1 (contd.) No scripts, no knowledge of topology. Ask every node for neighbors, wait for a reply, then ask for battery level. The same problems are sharpened With scripts. The processes of discovering the topology and the min value are combined. Still scalable. #of messages transmitted #of messages received Script Example set node [localNode_memory_read 0]; set minenergy [localNode_memory_read 1]; set neighbors [localNode_memory_read 2]; set send_node [Agent_memory_read 0]; set send_node_neighbors [Agent_memory_read 1]; Agent_memory_write 0 $node; Agent_memory_write 1 $neighbors; set remaining_nodes $neighbors; set n [lsearch neighbors $send_node]; lreplace $remaining_nodes n n; foreach i $send_node_neighbors{ set n [lsearch neighbors $i]; lreplace $remaining_nodes n n;} Agent_replicate $remaining_nodes; foreach i $remaining_nodes{ set result [wait -msg * -for 1000]; set minenergy [($minenergy < $result) ? $minenergy : $result];} send send_node:1 $minenergy; set minenergy; … Script size: Uncompressed verbose: Potential compression (byte code): 840 bytes 224 bytes Example Application #2 Mission-specific Target Tracking Resident application (or initial script flooded to all nodes) sends message to user informing a potential target User downloads a tracking script to the appropriate node script encodes a custom tracking mechanism, e.g. calculate new position every 10s and send it to user Script spreads to form an initial sensing cluster Script does data fusion or simple beamforming (using signal processing modules resident at the node) Script arranges for the active sensor cluster to “migrate” as the target moves motion prediction using history (e.g. movement direction) sentry scripts spawned around the cluster avoids polling and cluster management by the distant user, which is needed if nodes only support simple forms of query Tracking Scenario Tank @ x,y,z,t Region A Tracking Scenario Tank @ x,y,z,t Region A Tracking Scenario Tank @ x,y,z,t Region A Initial Script Runs on all nodes within the area of interest Straightforward approach where each node sends a message to the user is energy inefficient with multihop polling-based, interrupt-based Clustering approach first node that detects the target becomes a clusterhead other nodes join the cluster when they detect the target after MAX_LATENCY the clusterhead sends a message to the user, then waits for the ACK and distributes the ACK to other members of the cluster ideally, only one message is sent to the user from one cluster, – however due to unreliable protocols, a node maintains softstate waiting for an ACK if an ACK is not received within an interval, cluster dissolves into smaller clusters whose clusterheads send messages to the user Tracking Script To determine an approximate location of a target, a node has to receive messages from several other nodes that detected the target Due to power constraints in sensor nodes, they should refrain from sending repeated messages about the target when a node acquires certain number of messages, either simple intersection or potentially beamforming is used if one node detects the target and sends a message to the neighbors, the nodes in certain area around that node do not add significant information concerning the location of the target Solution: when a node senses a target it sends a report to other nodes only if none of the other nodes within some area generated a report during certain time interval similar to IGMP mechanism on LANs Tracking Script (contd.) When a node acquires certain number of messages, it determines target position and sends to the user That message is broadcast to other nodes within an area so that all nodes that want to determine the location and send a message to the user will refrain for a certain time area where that message is broadcast may be asymmetric, if a motion prediction algorithm is used Messages containing target location is generated in periodic intervals except when a target moves fast enough and leaves an area before the time interval expires if target moves fast, location messages generated more often Simulation Results The ratio of consumed energy by the initial script as a function of MAX_LATENCY compared to the approach where each node sends a message directly to the user 200x200m area, 50 nodes, 50m transmission range, 35m sensing range, 10 m/s target speed 1.2 1.1 1 0.9 0.8 0.7 RMS TOTAL 0.6 0.5 0.4 0.3 0.2 0.1 0 0.1s 0.5s 1s 2s 3s 5s Simulation Results The ratio of consumed energy by the initial script compared to the approach where each node sends a message directly to the user as a function of the number of nodes area is 200x200, MAX_LATENCY for initial script is 3s 1.2 1.1 1 0.9 0.8 0.7 RMS TOTAL 0.6 0.5 0.4 0.3 0.2 0.1 0 50 80 100