scaling the web to billions of nodes: towards the ipv6 “internet of things” by carsten bormann...
DESCRIPTION
gogo6 IPv6 Video Series. Event, presentation and speaker details below: EVENT gogoNET LIVE! 4: IPv6 & The Internet of Things. http://gogonetlive.com November 12 – 14, 201, Silicon Valley, California Agenda: http://gogonetlive.com/gogonetlive4-agenda.asp PRESENTATION Scaling the Web to Billions of Nodes: Towards the IPv6 “Internet of Things” Abstract: http://www.gogo6.com/profiles/blogs/scaling-the-web-to-billions-of-nodes-towards-the-ipv6-internet-of Presentation video: http://www.gogo6.com/video/scaling-the-web-to-billions-of-nodes-by-carsten-bormann-at-gogone Interview video: http://www.gogo6.com/video/interview-with-carsten-bormann-at-gogonet-live-4-ipv6-iot-confere SPEAKER Carsten Bormann - Universität Bremen TZI & IETF WG Chair Bio/Profile: http://www.gogo6.com/profile/CarstenBormann MORE Learn more about IPv6 on the gogoNET social network and our online training courses http://www.gogo6.com/main Get free IPv6 connectivity with Freenet6 http://www.gogo6.com/Freenet6 Subscribe to the gogo6 IPv6 Channel on YouTube http://www.youtube.com/subscription_center?add_user=gogo6videos Follow gogo6 on Twitter http://twitter.com/gogo6inc Like gogo6 on Facebook http://www.facebook.com/pages/IPv6-products-community-and-services-gogo6/161626696777TRANSCRIPT
Prof. Carsten Bormann, [email protected]
2013-‐11-‐14
Prof. Dr.-‐Ing. Carsten BormannTZI – Universität Bremen
Scaling the Webto billions of nodes:Towards the “Internet of Things”
1
Source: Ericsson
Connecting:Places ➔ People ➔ Things
Scale up:Number of nodes(50 billion by 2020)
3
Scale down:node
4
Scale down:costcomplexity
6
centkilobyte
megahertz7
http://6lowapp.net core@IETF80, 2011-03-28
10/100 vs. 50/250� There is not just a single class of “constrained node”
� Class 0: too small to securely run on the Internet§ “too constrained”
� Class 1: ~10 KiB data, ~100 KiB code § “quite constrained”, “10/100”
� Class 2: ~50 KiB data, ~250 KiB code§ “not so constrained”, “50/250”
� These classes are not clear-cut, but may structure the discussion and help avoid talking at cross-purposes
8
Constrained nodes: orders of magnitude
9http://www.flickr.com/photos/blahflowers/3878202215/sizes/l/
10http://www.flickr.com/photos/blahflowers/3878202215/sizes/l/
Constrained networks
} Node: ... must sleep a lot (µW!)� vs. “always on”
} Network: ~100 kbit/s, high loss, high link variability
} May be used in an unstable radio environment} Physical layer packet size may be limited
(~100 bytes)
} “LLN low power, lossy network”
11
802.15.4 „ZigBee“Bluetooth SmartZ-Wave DECT ULE
Constrained Node Networks
Internet of Things IoTWireless Embedded Internet WEILow-Power/Lossy Networks LLNIP Smart Objects IPSO
12
“IP is important”IP = Integration Protocol
13
We make the net work14
Constrained Node/Networks in the IETF} WGs:
} Documenting techniques: LWIG (INT area,Light-Weight Implementation Guidance)
} IETF has many supporting WGs (and RFCs), e.g. security, management
15
6Lo(WPAN) ROLL CoRE DICEINT area(Internet) L2/L3 interface
RTG area(Routing)L3 routing
APP area(Applications)L7 application
SEC area (Security)L7 security
(1) The Network
6LoWPAN & RPL
16
Exhaustion of IANA IPv4 Unicast Address Free Pool
3 February 2011 17
APN
IC: a
lrea
dy g
one
2011
-04-
19
RIP
E (E
urop
e): 2
012-
09-1
4
America
s: ~20
14
Source: http://www.potaroo.net/tools/ipv4/
18
IPv4 = gone
IPv6 = 340282366920938463463374607431768211456 addresses
} There are only ~ 1025 grains of sand on the earth
} Let’s settle for a billion (109) objects on the net
} Danfoss (EU): 0.4×109 thermostats so far} Walmart (US): 0.1×109 CFL light bulbs per year
3.4×1038
19
Constrained network example:IEEE 802.15.4} popular low-power (~ 1 mW) radio
} 0.9 and 2.4 GHz bands� 868 MHz: Europe (1 % duty cycle, 20 kbit/s)� 900 MHz: US (40 kbit/s)� 2.4 GHz: World (256 kbit/s)
} up to 127-byte packets} multicast works radio-range only
20
“ZigBee”
RFC 4944: make 802.15.4 look like an IPv6 link} Basic Encapsulation
� Efficient representation of packets < ~100 bytes� First approach to stateless Header Compression
} Fragmentation (map 1280 byte MTU to < 128 bytes)� Datagram tag/Datagram offset
} Mesh forwarding� Identify Originator/Final Destination
} Minimal use of complex MAC layer concepts� cf. RFC 3819 “Advice for Internet Subnetwork Designers”
21
2007
RFC 6282: 6LoWPAN Header Compression (6LoWPAN-HC)} RFC 4944 header compression is stateless} Traditional header compression (ROHC, RFC 3095 etc.) is
flow-based stateful
} Is there a middle ground?
} Context-based HC*): maintain a single area context state for an entire 6LoWPAN
Infrastructure Cloud | | +-----+ +-----+ | | Gateway | | Host | | | | +-----+ +-----+ | | | Backbone link | +--------------------+------------------+ | | | +-----+ +-----+ +-----+ | | Edge | | Edge | | Edge | | router | | router | | router +-----+ +-----+ +-----+ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
22
2011
*) draft-bormann-6lowpan-cbhc (2008-07)
RFC 6775 (6LoWPAN-ND):elements beyond RFC 4861} ARO (address registration option):
� hosts register their addresses to routers (6LRs): NS/NA� 6LRs can check the address with edge router (6LBR):
new ICMP messages DAR/DAC� replaces NS/NA use for address resolution (off-link model),
but keeps NS/NA intact for NUD (neighbor unreachability detection)} ABRO (authoritative border router option)
� distribute information about available 6LBRs (edge routers)
} 6CO (6LoWPAN Context Option)� distribute header compression context in entire LoWPAN
23
2012
6LoWPAN =
RFC4944 – HC1/HC2 + RFC6282 (6LoWPAN-HC) + RFC6775 (6LoWPAN-ND)
24
✔
6LoWPAN: 2013 ETSI plugtest
} Before IETF87 (Berlin):} Free of charge 6LoWPAN plugtest event
25
http://www.etsi.org/news-events/events/663-2013-6lowpan-plugtests
6LoWPAN beyond IEEE 802.15.4:
} Bluetooth Low Energy (“Bluetooth Smart” in 4.0)� global 2.4 GHz, very low power, already in many phones� popular in e-health applications� 6LoWPAN for BTLE: draft-ietf-6lowpan-btle
} Z-Wave (G.9959)� Regional 900 MHz variants� draft-brandt-6man-lowpanz
} DECT ULE (“Ultra Low Energy”)� can use European cordless phone spectrum� draft-mariager-6lowpan-v6over-dect-ule
26
✔Pretty much cooked
Back-Burner
waiting for BT-SIGchannel assignment
6Lo: Bundle Internet Area standardization in Constrained Node Networks
} [email protected]} has just had its first WG meeting} replacing 6LoWPAN WG
} work closely with 6man (IPv6 maintenance), homenet (IPv6 home networking), dnssd
27
RPL: Routing for CN/N} RFC 6550: Specialized routing protocol RPL
– Rooted DAGs (directed acyclic graphs)
28
Root
33 2
5 35 4
7
4
6
7
1 Root
33 2
5 35 4
7
4
6
7
1
} redundancies in the tree help cope with churn
} “rank”: loop avoidance
} Storing Mode: Every router has map of subtree
} Non-Storing Mode: Only root has map of tree
Metrics: e.g., ETX
2012
RPL Route-over: Routing at Layer 3
} As we are used to in the Internet� Alternative: L2 routing, mesh
networks, “mesh-under”} Advantage: can bring together
multiple subnets� one or more constrained radio
technologies� use Ethernet, WiFi as backbones
29
LBR
Router
Local Server
LBR
H
H H H H
RR
R
R
R R
Backbone link
Internet
Low-Power and Lossy Network (LLN)
LLN Border Router (LBR)
Router
Host
Downstream Upstream
(2) The Application
CoAP
30
For which applications did the Internet first scale massively?
} Remote Login} E-Mail} NetNews
} The Web
31
The elements of success of the Web} HTML
� uniform representation of documents� (now moving forward to HTML5 with CSS, JavaScript)
} URIs� uniform referents to data and services on the Web
} HTTP� universal transfer protocol� enables a distribution system of proxies and reverse proxies
32
✔
Translating this to M2M
} HTML� uniform representation of documents� (now moving forward to HTML5 with CSS, JavaScript)
} URIs� uniform referents to data and services on the Web
} HTTP� universal transfer protocol� enables a distribution system of proxies and reverse proxies
New data formats:
M2M semantics instead of
presentation semantics
33
UDP [RFC0768], TCP [RFC0793],DCCP [RFC4340], SCTP [RFC4960],
and NORM [RFC5740]
tunneling technologies such as the Tunnel mode of IPsec, IP-in-IP, and Generic Route Encapsulation (GRE) [RFC2784]; circuit networks such as MPLS [RFC4364], GMPLS, and ATM; local wireless (IEEE 802.11, 802.15.4,
or 802.16) networks and switched Ethernet (IEEE 802.3) networks.
IPv4, IPv6
IEEE, ITU
Many.If in doubt, use HTTP :-)
34
UDP [RFC0768], TCP [RFC0793],DCCP [RFC4340], SCTP [RFC4960],
and NORM [RFC5740]
tunneling technologies such as the Tunnel mode of IPsec, IP-in-IP, and Generic Route Encapsulation (GRE) [RFC2784]; circuit networks such as MPLS [RFC4364], GMPLS, and ATM; local wireless (IEEE 802.11, 802.15.4,
or 802.16) networks and switched Ethernet (IEEE 802.3) networks.
IPv4, IPv6
IEEE, ITU
If in doubt, use HTTP
35
HTTPUDP [RFC0768], TCP [RFC0793],DCCP [RFC4340], SCTP [RFC4960],
and NORM [RFC5740]
tunneling technologies such as the Tunnel mode of IPsec, IP-in-IP, and Generic Route Encapsulation (GRE) [RFC2784]; circuit networks such as MPLS [RFC4364], GMPLS, and ATM; local wireless (IEEE 802.11, 802.15.4,
or 802.16) networks and switched Ethernet (IEEE 802.3) networks.
IPv4, IPv6
IEEE, ITU
If in doubt, use REST
36
Constrained Node/Networks➔ Compressed HTTP?} Saves some bytes} Retains all the complexity
� lots of historical baggage� still needs TCP below
} Adds the CPU requirements for compression} Limited gain
� compression only takes you so far✗37
„Make things as simple as possible, but not simpler.
38
Attributed to Albert Einstein
The Constrained Application Protocol
} implements HTTP’s REST model� GET, PUT, DELETE, POST; media type model
} while avoiding most of the complexities of HTTP
} Simple protocol, datagram only (UDP, DTLS)} 4-byte header, compact yet simple options encoding
} adds “observe”, a lean notification architecture
CoAP
39
CoAP Examples
} GET coap://temp1.25b006.floor1.example.com/temperature� ASCII string: 22.5� could use JSON, e.g. as in draft-jennings-senml
} PUT coap://blue-lights.bu036.floor1.example.com/intensity� ASCII string: 70 %
} GET coap://25b006.floor1.example.com/.well-known/core� </temp>;n="TemperatureC",</light>;ct=41;n="LightLux"� see RFC 6690 (CoRE link format)
40
More in draft-vanderstok-core-bc-05see also draft-ietf-core-interfaces
Payload Marker
Example Interchange
C: CON + GET coap://server/resource
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-,-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 1 | 0 | 0 | GET = 0.01 | MID=1234 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| +3 =3 | 6 | "server" (6 Bytes) ...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| +8=11 | 8 | "resource" (8 Bytes) ...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
S: ACK, ct=application/cbor, payload: {“hlo”:“World”}
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-,-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 1 | 2 | 0 |Content = 2.05 | MID=1234 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|+12=12 | 1 | 60 | Content-Format = 60 (application/cbor)+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|1|1|1|1|1|1|1|1| A1 63 h l o 65 W o r l d (11 Bytes) ...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option
Payload
41
Combining CoAP and HTTP
} CoAP is usedin constrainedenvironment
} CoAP and HTTPshare proxy modelbased on REST
} Enables standard,application-independent proxy
42
Proxying and caching
43Source: 6lowpan.net
Constrained!RESTful!Environments (CoRE) Working Group
Drafts:
• Constrained Application Protocol draft-ietf-core-coap
• Observing Resources in CoAP draft-ietf-core-observe
• Blockwise Transfers in CoAP draft-ietf-core-block
• CoRE Link Format draft-ietf-core-link-format44
RFC 6690 ✔
✔
Prof. Carsten Bormann, [email protected]
Character-‐based
Concise Binary
Document-‐Oriented
Data-‐Oriented
XML EXI
JSON ???
Data Formats
45
46
Data Formats: CBOR(Concise Binary Object Representation)} JSON: Highly successful data model
� true/false/null; numbers, strings; arrays, maps (“objects”)� Add binary data (byte strings)� Provide tags for specific types (e.g., date/time)
} Add concise binary format� Inspired by CoAP Option Coding, MessagePack� Internet standards document: RFC 7049
47
Concise (Counted) Streaming (Indefinite)
Prof. Carsten Bormann, [email protected]
Character-‐based
Concise Binary
Document-‐Oriented
Data-‐Oriented
XML EXI
JSON CBOR
Data Formats
48
Security is not optional!
} HTTP can use TLS (“SSL”)} CoAP: Use DTLS 1.2
� Add 6LoWPAN-GHC for efficiency} Crypto: Move to ECC
� P-256 curve� SHA-256� AES-128
} To do:� Commissioning models (Mother/Duckling, Mothership, …)� Authorization format and workflow� Performance fixes (DICE)
49
128-bit security
(~ RSA 3072-bit)
Prof. Carsten Bormann, [email protected]
The next billions of nodes • Carsten Bormann • 2013-11-14
50Disclaimer: Nobody speaks for the IETF