Presentation is loading. Please wait.

Presentation is loading. Please wait.

LR-WPAN LoRaWAN 6LoWPAN IPv6 (for IoT) *surprise*

Similar presentations


Presentation on theme: "LR-WPAN LoRaWAN 6LoWPAN IPv6 (for IoT) *surprise*"— Presentation transcript:

1 LR-WPAN LoRaWAN 6LoWPAN IPv6 (for IoT) *surprise*
IoT models LR-WPAN LoRaWAN 6LoWPAN IPv6 (for IoT) *surprise* Tommaso Pecorella - Davide Magrin ns-3 training – Jun. 18, 2019

2 Relevant IoT technologies
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 Relevant IoT technologies The most relevant technologies used in IoT are: NB-IOT 5G (MMTC, URLL) LoRA Sigfox [add here your favourite] … along with the “companion” standards used in IoT.

3 What we’ll see today Transmission (NetDevices)
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 What we’ll see today Transmission (NetDevices) – the “LR-WPAN” module LoRA - the LoRaWAN module Adaptation 6LoWPAN IPv6 quirks related to IoT A surprise The summary of what’s not [yet] available (but we’re working on it)

4 IoT communication models
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 IoT communication models Option 1: Direct communication (i.e., star topology) Long or short range Examples: NB-IOT, 5G, LoRaWAN Option 2: Multi-hop communication (i.e., mesh and tree topologies) Short range Examples: (LR-WPAN)

5 ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 According to Wikipedia ( IEEE  is a technical standard which defines the operation of low-rate wireless personal area networks (LR-WPANs). It specifies the physical layer and media access control for LR-WPANs, and is maintained by the IEEE  working group, which defined the standard in 2003. It is the basis for the Zigbee, ISA100.11a, WirelessHART, MiWi, 6LoWPAN, Thread and SNAP specification, each of which further extends the standard by developing the upper layers which are not defined in IEEE It maps into a NetDevice.

6 802.15.4 – problems… The Standard is all but obvious. It defines:
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 – problems… The Standard is all but obvious. It defines: Multiple operation modes: Beacon-enabled (star topology) Non-Beacon-enabled (peer-to-peer topology) Cluster-tree (peer-to-peer with multihop) Multiple device roles: PAN coordinator Coordinator Leaf node Multiple device capabilities Full Functional Device (FFD) Reduced Functional Device (RFD)

7 802.15.4 – … and least but not least…
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 – … and least but not least… It does NOT define exactly the MAC ! Beacon-enabled: the MAC is defined perfectly. ... but nobody uses it. Non-beacon-enabled: the MAC is defined “more or less” There are a lot of variants, all “technically” compatible, but different. The differences are mostly about How sleep periods are handled How to wake up and synchronize with neighbors

8 802.15.4 – MAC variants Beacon-enabled (star topology)
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 – MAC variants Beacon-enabled (star topology) Potentially interesting, but… NullMac – the simples possible The radio is always on No syncronization problems Extremely energy hungry ContikiMac – a complex one Sleep periods Syncronization (caveat… nodes don’t drift) Energy efficient

9 802.15.4 – Examples Switch to ns-3 cd src/lr-wpan/examples/ …
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 – Examples Switch to ns-3 cd src/lr-wpan/examples/ lr-wpan-data.cc lr-wpan-error-distance-plot.cc lr-wpan-error-model-plot.cc lr-wpan-packet-print.cc lr-wpan-phy-test.cc

10 802.15.4 – It’s complicated… (on purpose)
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 – It’s complicated… (on purpose) Why didn’t we use the Helper class ? is not like a “normal” network Each device should be associated to a PAN ’s packets MTU is small... It’s so small that IPv6 can’t use it… …and most IPv4 packets would be too large Using an Helper class in the NetDevice example would have created too many “silly” mistakes. It’s wiser to look at the larger picture.

11 802.15.4 – you don’t use it “bare bones”
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 – you don’t use it “bare bones” The typical node stack is slightly different from the one of “standard” nodes. Normal IPv6 node LR-WPAN IPv6 node Adaptation layer

12 6LoWPAN – what’s the purpose
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 6LoWPAN – what’s the purpose Provide an adptation layer between protocol X (in this case ) and IPv6, in order to adapt: Packet Error Rate (IPv6 assumes that it’s low) Packet MTU (IPv6 wants 1280 bytes) Moreover: Try to not waste bandwidth – compress headers about 100 bytes datagram and 40 bytes of IPv6 header ? Bad idea Finally Adapt some IPv6 mechanisms to the “quirks” of a multihop network

13 6LoWPAN – How do it works ? Packet Error Rate
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 6LoWPAN – How do it works ? Packet Error Rate Adds link-level ACKs and retransmissions (optional) Packet MTU (IPv6 wants 1280 bytes) Allows link-level fragmentation and reassembly Header compression 40 bytes are compressed into 6 bytes (best case) … but the application layer must be “kind”, Use the right port numbers, Use a standard Hop Count, Use UDP and not TCP, etc.

14 6LoWPAN – Examples Switch to ns-3 cd src/sixlowpan/examples/ …
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 6LoWPAN – Examples Switch to ns-3 cd src/sixlowpan/examples/  example-ping-lr-wpan.cc  example-sixlowpan.cc

15 6LoWPAN – interesting facts
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 6LoWPAN – interesting facts 6LoWPAN pretends to be a NetDevice (it is not) This is because IPv6 wants to talk to a NetDevice 6LoWPAN implementation supports both HC0 and IPHC compressions 6LoWPAN is not enough (ouch…)

16 LR-WPAN / 6LoWPAN – missing features
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 LR-WPAN / 6LoWPAN – missing features This line says it all: lrWpanHelper.AssociateToPan (lrwpanDevices, 0); It is the sign of a missing feature: The node bootstrap During the bootstrap the node should Find a PAN coordinator Register itself, and receive a short address Generate its IPv6 link-local and global addresses (!?!?!?!) The last point is done by 6LoWPAN-ND

17 6LoWPAN-ND – why I miss it so much
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 6LoWPAN-ND – why I miss it so much The purpose of 6LoWPAN-ND is not “just” to distribute addresses: Ensures the uniqueness of addresses Provides a substitution for DAD and NDP Allows more advanced and efficient 6LoWPAN compression types Without 6LoWPAN-ND, we have to use an “all-knowing” NDP … which is as bad as using a normal NDP – it’s not realistic … but it’s more realistic than using a plain NDP.

18 ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 So, what now ? Now you should be able to build an IPv6-based, network, with the following limitations: No realistic NDP missing 6LoWPAN-ND No realistic node association to a PAN no mobility, not a big issue No more than 1-hop… because you miss the routing !

19 ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 [add your title here] Now you should be able to build an IPv6-based, network, with the following limitations: No realistic NDP missing 6LoWPAN-ND No realistic node association to a PAN no mobility, not a big issue No more than 1-hop… because you miss the routing !

20 What’s wrong with multihop ?
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 What’s wrong with multihop ? All the nodes in a PAN belong to the same IPv6 prefix Are they on the same link ? => NO Is there a single router ? => NO What is the “optimal” router => difficult to say In general, multihop routing protocols are complex Esisting multihop protocols (AODV, DSDV, DSR, etc.) are made for ad-hoc networks, not for IoT Plus… they’re built for IPv4. IPv6 extensions are possible, but… … they’re not efficient for IPv6.

21 Routing – mesh-under (transparent)
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 Routing – mesh-under (transparent)

22 Routing – mesh-under (6LoWPAN)
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 Routing – mesh-under (6LoWPAN)

23 ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 Routing – route-over

24 Vaporware… Vaporware [noun] Examples of Vaporware:
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 Vaporware… Vaporware [noun] In the computer industry, vaporware (or vapourware) is a product, typically computer hardware or software, that is announced to the general public but is never actually manufactured nor officially cancelled. Examples of Vaporware: Half-Life 2: Episode Three AirPower (Apple’s wireless charging pad) ns-3’s RPL module

25 RPL for ns-3 is Vaporware (sorry about that)
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 RPL for ns-3 is Vaporware (sorry about that) Built in ns-3.15 Four complete refactorings … and I’m still unhappy. The bad news: it doesn’t work (anymore) Half-finished refactoring, and Changes in ns-3 The good news: We have people willing to complete it, and

26 RPL Development status
ns-3 training – Jun. 18, 2019 – IoT Jun. 18, 2019 RPL Development status What you’ll find: Mode of Operation: Storing mode Objective Functions: OF0 and MRHOF Metrics: HC, ETX, and LQL What you’ll not find: Documentation Clear examples Working out of the box Summarizing: feel free to ask to join the project on github


Download ppt "LR-WPAN LoRaWAN 6LoWPAN IPv6 (for IoT) *surprise*"

Similar presentations


Ads by Google