October 21, 2011
Network Congestion & Lightweight ProtocolsCellular networks are becoming congested, not only because they are transporting more data, but also because the transportation mechanisms are not particularly efficient. A regular cellular network takes 21 signaling messages to wake up an idle B2C device (e.g. a smartphone), tell it to become active, identify it, change the status in the network's database, allocate an IP address and finally set up a dedicated connection. This means that networks are carrying a high overhead when the device may only be receiving a short instant message.
There are workaround solutions, but a bigger, intrinsic issue is coming over the horizon. The "Internet of Things" could drive M2M traffic up to unsustainable levels. The industry is talking about billions of networked sensors on land, in the sea, air and space that will support a vast range of new Web services. In Holland, for example, sensors are being used to check the health and fertility status of cows, each one of which will transmit 200MB a year! They'll also generate a considerable amount of methane gas, but that's an environment issue.The congestion issue is intrinsic because a typical M2M payload may be under 30 bytes but the communications overhead can be 500 to 600 bytes: well over an order of magnitude. This comes from the fact that today's Web services protocol stack was developed for the kind of traffic generated by computers. What's needed, and it's coming onto the radar screen, is software that's optimized for resource-constrained environments, i.e. the protocol stack on the right in the schematic. In this case the software has been created for low-power, wireless personal area networks.
6LoWPAN stands for IPv6 over Low power Wireless Personal Area Networks. It has to be IPv6 because billions of new devices are going to be connected to the Net. UDP (User Datagram Protocol) is part of the IP suite. You can think of it as "Lite" TCP. CoAP (Constrained Application Protocol) is a transport protocol analogous to HTTP, but optimized for constrained networks and nodes for M2M apps such as smart energy and building automation. EXI stands for Efficient XML Interchange.
MQTT for wide area networks
Many developers that entered the M2M and embedded computing space had an IT background. Therefore they gravitated toward the protocols they have used before: HTTP (Hypertext Transfer Protocol) and SOAP (Simple Object Access Protocol). However, these protocols employ thousands of bytes sent as a header for the message, rigid formats, and point-to-point communication. The MQTT (Message Queue Telemetry Transport) protocol, on the other hand, is optimized for low-bandwidth communications networks with brief messaging headers to conserve bandwidth. It has three Quality of Service (QoS) levels; and it enables a publish/subscribe model for efficient one-to-many communications.
MQTT, which was created by Andy Stanford-Clark of IBM, and Arlen Nipper of Eurotech, is an open protocol that sends and receives data in the form of messages to and from applications and devices over TCP/IP network. It employs TCP features that some software developers ignore, e.g. once the TCP socket is established, a few bytes can be sent without any overhead. By sending less information back and forth when communicating between devices, you generate far less traffic compared with other protocols. MQTT also utilizes the TCP level to acknowledge the receipt of information, rather than requiring an acknowledgement at a higher level.
It's worth checking out this demo.
Any questions? Please, contact us via Twitter and Facebook.
The contributors are:
Global VP Marketing Telit Communications PLC
Global VP R&D Telit Communications PLC