# 25 Years of Bluetooth Technology
## 3 Connecting Bluetooth Devices to IP-Based Networks  
Bluetooth technology has evolved from being a wireless system used to connect PC peripherals into a very useful industrial and domestic IoT connectivity solution. In order to be used in an IoT scenario, Bluetooth needs to seamlessly integrate with IP-based networks. For example, in order to transfer Internet Protocol v6 (IPv6) packets over Bluetooth Low Energy (BLE), the BLE protocol stack needs to provide support for IPv6 in the form of an adaptation layer [15]. Next, we describe how a Bluetooth stack can offer support for IPv6 by using a typical Bluetooth networking scenario and commonly available devices. BlueZ [15], the widely used Bluetooth stack which provides support for core Bluetooth layers and protocols, can be used to implement a lightweight IPv6 stack. A BLE network consists of sensor nodes and routers. For instance, a Nokia N9, a Linux based smart phone integrated with TI WL1273 BLE chip is the router. Wireless key fobs with embedded TI CC2540 BLE chips are used as the sensor nodes. The lightweight IPv6 stack, ulPv6 [10] was originally integrated \begin{table}
\begin{tabular}{c c c} \hline \hline
**Core Version** & **Issue Year** & **Major Improvements** \\ \hline
1.0 & 1999 & - \\
1.2 & 2003 & Adaptive frequency hopping, inquiry-based RSSI \\
2.0 & 2004 & 2.1 Mbps peak data rates \\
2.1 & 2007 & 3.0 Mbps peak data rates \\
3.0 & 2009 & 24 Mbps peak data rates \\
4.0 & 2010 & Lower energy consumption, broadcasting, lower connection latency \\
4.1 & 2013 & Improved device power management by pairing that allows automatic powering up and down \\
4.2 & 2014 & Improved security, low energy data packet length extension, link layer privacy \\  & & Higher data rates (48 Mbps), better energy efficiency, higher broadcasting message capacity, larger range and strong point-to-point connection and reliability \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Improvements in Bluetooth versions [14]. with Contiki, an open source OS for microcontrollers, but can also be ported to TI CC2540 keyfob to support IPv6. The B1 uetooth core system contains two major subsystems, the Controller and the Host. In order to keep the interoperability between different Bluetooth subsystems, the common layer called \"Host Controller Interface (HCI)\" is defined. In Linux, most of the host part can be implemented as kernel modules and the controller part is implemented in the chip provided by its vendor. To implement the lightweight IPv6 protocol stack which avoids the modification of the existing IPv6 module of the Linux kernel, an adaptation layer is implemented below the IPv6 layer. Figure 9 shows the components of BlueZ. In the Logical Link Control and Adaptation Protocol (L2 CAP) layer, the link type is set to BLE link and a new logical channel with channel ID Ox0007 is defined for transmitting IPv6 packets over BLE. Furthermore, to meet the requirements of application layer and IPv6's Maximum Transmission Unit (MTU), the Segmentation and Reassembly (SAR) functionality is implemented in this layer by using L2 CAP Information Frame (I-frame) defined in Bluetooth Core Specification [2]. The 6 LoWPAN adaptation layer is used to handle the data flow between the transport layer and the L2 CAP layer, and at the same time provides a network interface for upper layer applications. Both, the IPv6 Header Compression and context management functionality are implemented in this adaptation layer. In Wireless Sensor Networks (WSNs), a node equipped with multiple sensors may bind with one or more IPv6 addresses that provide services. Working with a web service provider, the vendor can program the IPv6 address for the predefined remote server into the sensors. Alternatively, one known server can provide DNS-like services to distribute global IPv6 addresses for various web services.