280 likes | 397 Views
Wireless Embedded InterNet working Foundations of Ubiquitous Sensor Networks IPv6 Extensions for Low power embedded networks. David E. Culler University of California, Berkeley. Deluge. Drip. Dip. GAF. SPIN. GDI. Redwoods. North Sea. Volcano. Golden Gate Bridge. Drain. Flush.
E N D
Wireless Embedded InterNetworkingFoundations of Ubiquitous Sensor NetworksIPv6 Extensions for Low power embedded networks David E. Culler University of California, Berkeley WEI short course - L10 IPv6
Deluge Drip Dip GAF SPIN GDI Redwoods North Sea Volcano Golden Gate Bridge Drain Flush Broadcast Storm TinyOS 0.6 PSFQ RMST CODA FPS Fusion MultihopLQI BVR CTP S4 MintRoute SP WooMAC S-MAC Aloha PS T-MAC B-MAC WiseMAC SCP-MAC PEDAMACS X-MAC 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 Decade of Research w/o an ArchitectureWireless Sensor Networks Application Transport Network Link WEI short course - L10 IPv6
Sensornet Concepts • Cross-layer compression • Cross-layer visibility • Piggybacking • Optimization for bidirectional links • Trickle • ... All within an IP framework WEI short course - L10 IPv6
128 bits Prefix IID ICMPv6 IPv6 Base HbH Opt Routing Fragment Dst Opt And a decade of progress • Large uninterpreted addresses • Autoconfiguration and management • Layer 2 bootstrapping and discovery • Protocol options framework WEI short course - L10 IPv6
IP Link ⇒ Broadcast Domain Structured Decomposition Retain strict modularity Some key cross-layer visibility IPv6 can support a semi-broadcast link with few changes Retain illusion even when always off Retain best-effort reliability over unreliable links Embedded IPv6 in Concept IP Link ⇒ Always On IP Link ⇒ “Reliable” WEI short course - L10 IPv6
Solution by Layers Transport • Delivering messages between app endpoints Network • Configuring large numbers of interfaces • Efficient transmission of IPv6 datagrams • Delivering datagrams over multiple hops • Selecting bi-directional links and forming routes Link • Sending frames between neighboring nodes WEI short course - L10 IPv6
LinkEnabling Communication Between Neighboring Nodes Minimize idle listening • Sampled Listening • DARPA, Aloha-PS, B-MAC, X-MAC • Always-on illusion, transmission overhead • Scheduled • S-MAC, T-MAC, PEDAMACS, TSMP, FPS • Low power when in sync, node join problem • Hybrid • WiseMAC, SCP-MAC • Always-on and low power • Abstractions • SP • Implement mechanisms, not policies Network Abstraction Link WEI short course - L10 IPv6
Abstraction Provide the mechanisms Upper layers define the policy Link Media MgmtEnabling Communication Between Neighboring Nodes Net Link Data Ack Media Management Control Remote Media Link Stats Local Media Phy WEI short course - L10 IPv6
Optimizations Power – Channel Utilization – Average Latency – Throughput Repairing 15.4 Acks False Positives – Security – Payload 15.4 HDR Sampled Listening Stateless – Low Latency – Always On Abstraction – Robust PAN DST SRC SEC Timing Payload 15.4 FTR Streaming Scheduling Link - reviewEnabling Communication Between Neighboring Nodes WEI short course - L10 IPv6
Adaptation Layers • ATM, FireWire, BNEP • Datagram Segmentation, Subnetwork Forwarding • Header Compression • Flow-based (IPHC, ROHC) • Stateless, shared context (STHD, HHC) AdaptationEfficient Transmission of IPv6 Datagrams Problem: Small Link MTU, Large IPv6 Datagrams IPv6 Datagram (up to 1280 bytes) 802.15.4 Link 127 Byte MTU 250 kbps WEI short course - L10 IPv6
ICMPv6 Hdr Router Adv Prefix Info RFC 4861 – Neighbor Discovery RFC 4862 – Stateless Addr Autoconf RFC 3315 – DHCPv6 AutoconfigurationConfiguring Large Numbers of Interfaces New Options Existing Options MHop Info WEI short course - L10 IPv6
0x0023 0x0092 2001:abcd::23 2001:abcd::92 AutoconfigurationConfiguring Large Numbers of Interfaces Stateless RFC 4861 + 4862 DHCPv6 RFC 3315 Response Response Request 2001:abcd::23 Request 2001:abcd::92 WEI short course - L10 IPv6
ICMPv6 Hdr Router Adv Prefix Info RFC 4861 – Neighbor Discovery RFC 4862 – Stateless Addr Autoconf RFC 3315 – DHCPv6 Trickle AutoconfigurationConfiguring Large Numbers of Interfaces New Options Existing Options MHop Info WEI short course - L10 IPv6
DHCPv6 ICMPv6 Autoconf Stateless Autoconf AutoconfigurationConfiguring Large Numbers of Interfaces App Tran Net 6LoWPAN Adaptation Link Data Ack Media Management Control Remote Media Link Stats Local Media WEI short course - L10 IPv6
Link Data Ack Media Management Control Remote Media Link Stats Local Media Routing & Forwarding Delivering datagrams over multiple hops Net Forwarder Router ICMPv6 Routing Protocol Multicast Unicast Buffer Queue Send Manager Forwarding Table Routing Table Send Manager WEI short course - L10 IPv6
Reliability & Rate Control • PSFQ, RMST, Fusion, IFRC, Flush • Hop-by-hop for reliability and control • None with goal of minimizing energy • All assume snooping or broadcast ForwardingDelivering Datagrams Over Multiple Hops Minimize energy of reliable delivery to next hop WEI short course - L10 IPv6
Piggyback L3 Information on L2 Acks 15.4 HDR PAN DST SRC SEC Timing Network Info 15.4 FTR L3 custody transfer ⇒ fewer msg drops Lower power, lower latency, spatial diversity ForwardingDelivering Datagrams Over Multiple Hops Hop-by-Hop Recovery 1) lookup next hop 2) transmit message 3) if ack, dequeue, goto 5 4) backoff 5) goto 1 WEI short course - L10 IPv6
Less contention ⇒ lower power No snooping or added control overhead ForwardingDelivering Datagrams Over Multiple Hops Hop-by-Hop Congestion Control 1) lookup next hop 2) transmit message 3) if ack 3.1) if not queue full, dequeue, goto 6 3.2) AIMD backoff, goto 6 5) backoff 6) goto 1 WEI short course - L10 IPv6
Quality of Service Latency Tolerant vs. Urgent • Disable streaming delays • Reduce backoffs IPv6 Payload IPv6 Urgent Payload Queue Reservations • Guaranteed service for different classes ForwardingDelivering Datagrams Over Multiple Hops Streaming • Reduce power • Increase throughput WEI short course - L10 IPv6
RoutingSelecting Bi-Directional Links and Forming Routes Problem: Inferring a connectivity graph • MANET • DSDV, AODV, DYMO, OLSR, TBRPF • Any-to-any, shortest path • Distance vector and link state • Sensornets • Any-to-any (GPSR, NoGeo, GEM, BVR, S4) • Collection (MintRoute, CTP, MultihopLQI) • Link Discovery vs. Link Estimation • MANET: assume high mobility • Sensornet: assume a more static network WEI short course - L10 IPv6
Forwarder Multicast Unicast Router Buffer Queue Send Manager Forwarding Table Routing Protocol Send Manager Routing Table RoutingSelecting Bi-Directional Links and Forming Routes WEI short course - L10 IPv6
Routing Table Routing Table Default Routes Discovering Links ICMPv6 Hdr Inferring a Connectivity Graph Forwarding Table Selecting a Default Route Router Adv MHop Info • Top candidate • Dynamic re-routing • Increasing confidence Low Routing Cost High Confidence High Routing Cost Low Confidence RoutingSelecting Bi-Directional Links and Forming Routes WEI short course - L10 IPv6
IPv6 IPv6 IPv6 Payload Payload Payload RoutingSelecting Bi-Directional Links and Forming Routes Supported Communication • Sensornet → External IP • External IP → Sensornet • Sensornet → Sensornet • Direct single hop Most common patterns in sensornets WEI short course - L10 IPv6
Forwarder Multicast Unicast Buffer Queue Send Manager Forwarding Table Send Manager Routing & ForwardingSelecting Links and Forming Routes App DHCPv6 Tran Net Router ICMPv6 Autoconf Routing Protocol Routing Table Stateless Autoconf 6LoWPAN Adaptation Link Data Ack Media Management Control Remote Media Link Stats Local Media WEI short course - L10 IPv6
UDP Forwarder TCP Multicast Unicast Buffer Queue Send Manager Forwarding Table Send Manager TransportCommunication Between Application Endpoints App DHCPv6 Tran Net Router ICMPv6 Autoconf Routing Protocol Routing Table Stateless Autoconf 6LoWPAN Adaptation Link Data Ack Media Management Control Remote Media Link Stats Local Media WEI short course - L10 IPv6
Programming Interface BSD Sockets ⇒ Event based UDP event void Boot.booted() {call Udp.bind( 7 ); } event void Udp.recvfrom( void *buf, uint16_t len, sockaddr_in6_t *from, link_metadata_t *linkmsg ) { call Udp.sendto( buf, len, from ); } WEI short course - L10 IPv6
Programming Interface BSD Sockets ⇒ Event based TCP uint8_t m_buf[ BUF_SIZE ]; event void Boot.booted() { call Tcp.bind( 7 ); call Tcp.listen(); } event bool Tcp.accept( sockaddr_in6_t *to, void **sendbuf, uint16_t *sendbuf_size ) { *sendbuf = m_buf; *sendbuf_size = sizeof(m_buf); return TRUE; } event void Tcp.connected() {} event uint16_t Tcp.recv( void *buf, uint16_t len ) { return call Tcp.send( buf, len ) == SUCCESS ? len : 0; } event void Tcp.acked() {} event void Tcp.closed() { signal Boot.booted(); } WEI short course - L10 IPv6
Forwarder UDP TCP Multicast Unicast Buffer Queue Send Manager Forwarding Table Send Manager Stack Architecture App HTTP Telnet SNMP DNS ??? DHCPv6 Tran ??? Net Router ICMPv6 Autoconf Routing Protocol Routing Table Stateless Autoconf 6LoWPAN Adaptation Link Data Ack Media Management Control Remote Media Link Stats Local Media WEI short course - L10 IPv6