Low Power Wireless Personal Area Network

PART A: GENERALITIES

Presentation

The “Low Power Wireless Networks” course provided an in-depth look into the principles and applications of low power wireless personal area networks (LP-WPAN). The course covered various protocols and technologies used in LP-WPAN, focusing on their efficiency and scalability in IoT contexts.

PART B: DESCRIPTIVE PART

Experience Details

Environment and Context

Given the short duration of the course, we focused on a few key technical concepts. The initial part of the course covered basic network and telecommunication concepts, such as scrambled networks and interference. We then delved into the specifics of a TCP/IP protocol stack for LP-WPAN, using the 802.15.4 norm for the MAC and physical layers. This norm is commonly used in protocols like Zigbee. We also explored the use of IPv6 with an intermediate layer, 6LoWPAN, to reduce packet size.

New Concepts Learned

6LoWPAN, a key technology for enabling IPv6 over low power wireless networks, stands for IPv6 over Low-Power Wireless Personal Area Networks. It is designed to allow small devices with limited processing power and memory to communicate over the Internet. 6LoWPAN achieves this by compressing the IPv6 headers, making them suitable for the constrained environments of LP-WPANs.

My Function

In this course, I was responsible for:

PART C: TECHNICAL PART

This section explores the technical aspects of the TCP/IP protocol stack for LP-WPAN, focusing on the 802.15.4 norm, IPv6, and 6LoWPAN.

Technical Concepts Learned

1. IPv6 Basics for IoT

I learned about the basics of IPv6, including auto-configuration, router advertisements, multicasting, and routing. These concepts are necessary for understanding how IPv6 can be used in IoT networks to provide efficient and scalable communication.

We practiced auto-configuring link-local IPv6 addresses on network interfaces. This involved bringing up the network interface and observing the assignment of IPv6 addresses. We also analyzed the Duplicate Address Detection (DAD) procedures using tools like tcpdump and wireshark.


We executed the command ifconfig eth0 up to bring up the network interface eth0. Following this, we used ip -6 addr show dev eth0 to display the IPv6 addresses assigned to the interface. The output showed an address in the format inet6 fe80::527c:6fff:fe56:e8b0.

This address is a link-local IPv6 address, which is automatically configured on all IPv6-enabled interfaces. Link-local addresses are used for communication within a single network segment and are not routable beyond that segment.

The fe80::/10 prefix indicates that it is a link-local address. The remaining part of the address (527c:6fff:fe56:e8b0) is derived from the interface’s MAC address using the Modified EUI-64 format.

Understanding link-local addresses is crucial for configuring and troubleshooting IPv6 networks, as they are fundamental for neighbor discovery and other local network operations.

3. Auto-configuration of Unicast Global Addresses

We explored the process of auto-configuring unicast global IPv6 addresses using router advertisements. This involved configuring the router to send advertisements and observing how end-hosts derive their network configuration from these advertisements.


We used tool tcpdump to capture and analyze the ICMPv6 messages exchanged between the router and the end-hosts. These messages indicate the neighbor solicitation and router solicitation processes, for the auto-configuration of unicast global IPv6 addresses.

The neighbor solicitation message is used to discover the link-layer address of a neighbor or to verify that a neighbor is still reachable.

The router solicitation message is sent by an end-host to request a router advertisement from a local router, which contains the necessary information for the end-host to configure its global IPv6 address.

4. End-to-end IPv6 Connectivity and MQTT

We established end-to-end IPv6 connectivity with an application server and set up MQTT for data distribution. This involved configuring the MQTT broker and using tools like mosquitto_sub and mosquitto_pub to distribute data between topic publishers and consumers.

5. 6LoWPAN Header Compression

We practiced some aspects of 6LoWPAN, focusing on its header compression mechanism. This involved analyzing the encapsulation of IPv6 packets in 6LoWPAN frames and identifying the modes used for compressing different fields of the IPv6 header.


We used Wireshark to capture and analyze ICMPv6 packets. By examining the ICMPv6 section, we could see the IP Header Compression (IPHC) header, which provides information about the compressed IPv6 header fields. This analysis helped us understand how 6LoWPAN reduces the overhead of IPv6 headers, making it suitable for low power and lossy networks.


6. RPL Routing Protocol

We explored the RPL routing protocol, which is designed for low power and lossy networks. This involved configuring a network topology with RPL enabled and analyzing the routing tables and traffic generated by the protocol.

PART D: ANALYTICAL PART

The Knowledge and Skills Mobilized

Self Evaluation

I found the LP-WPAN course to be a valuable introduction to low power wireless networks. I particularly enjoyed working with IPv6 and 6LoWPAN, there is some areas where I still have uncertainties and need to deepen my knowledge but with time and practice, I am confident that I will master these concepts.

Fortunately, the labs were well guided by the teacher, which allowed me to understand better because it was pretty complex at first, but he managed to transmit the course skill effectively.

My Opinion

It was a new concept I appreciated working on. It provided a fresh perspective on network possibilities and allowed me to explore innovative solutions in low power wireless networks. The practical experiments was interesting as they demonstrated the real-world applications of LP-WPAN technologies.

Project Report

Open the full report