Technologies are evolving, and we keep inventing smaller things. Most Internet protocols are designed for the full capable devices and do not consider energy constrained and computational or communicational constrained devices. For most devices that are commonly used in the Internet of Things applications, they are resource constrained. First, They are built on top of the constrained computing platform, e.g., with 8-bit microcontrollers and limited RAM and ROM. Secondly, the connectivity between the nodes and the outside network is constrained, e.g., some links go down to 20kbps and with limited delivery probability.
Problems and working directions include:
1. TCP header compression. Many applications use TCP as the transport to provide some robustness and reliability. Since the IEEE 802.15.4 frame size is very limited and not able to accommodate much protocol headers, it is desirable to provide header compression for TCP. 6LowPan WG has defined the IPv6 header compression, and UDP header compression. But there is not standardized TCP header compression mechanism.
2. Lightweight transport protocol. In some lightweight operation systems, for example, Contiki and TinyOS, it turns out that the TCP codes take up to 50% of the code size and the switch between different TCP states consumes much memory size. It is desirable to design a new transport layer protocol to do flow control and congestion control.
3. Lightweight key exchange protocol. IEEE 802.15.4 has defined MAC security , but there is no keying there and applications are struggling if they do not have the keys. Most security protocols are resource consuming, and it is difficult to apply them directly to smart devices. For example, there are some proposals of making Host Identity Protocol diet so as to provide keys for the MAC layer.
4. Profiles for different application scenarios. For different scenarios, different set of protocols could be applied. It is desirable to have a document specifying those profiles and benefit application deployment.
5. Documentation of implementation techniques. There are lots of tricks to make the IP stack lightweight so as to fit into the very constrained nodes. But these techniques are not well documented formally. In order to facilitate the ongoing/future developers on these constrained platforms, there is a need to document these activities and common technologies.