Accelerate M2M networking with UDP
While such machine-to-machine (M2M) communication is performed over the Internet and generally uses the popular transmission control protocol (TCP), what you may not realise is that many other M2M communications utilise 'user datagram protocol' (UDP) and communicate at rates that would be unachievable using TCP.
In fact, UDP can be advantageous for many embedded M2M system requirements, and might be worth consideration for your next "Internet of Things" design. Following are highlights and some of my thoughts on the use of UDP in M2M communications.
TCP/IP is a layered protocol, which means more complex protocols are built on top of simpler underlying protocols (table 1). In TCP/IP, the lowest layer protocol is at the link level and is handled by the network driver. This level is typically targeted for Ethernet, but it could also be fibre, serial, or virtually any physical media.
On top of the link layer is the network layer. In TCP/ IP, this is the IP, which is responsible for sending and receiving simple packets, in a best effort manner, across the network. Management type protocols like ICMP and IGMP also are typically categorised as network layers, even though they rely on IP for sending and receiving.
Table 1: Internet protocol layers.
The transport layer rests on top of the network layer. This layer is responsible for managing the flow of data between hosts on the network. UDP operates within the transport layer, along with TCP, DCCP, SCTP, RSVP, and others, since, as the name implies, these protocols are used to move data from sender to receiver. In particular, two general transport services are commonly used by M2M applications: UDP and TCP. UDP services provide best-effort sending and receiving of data between two hosts in a connectionless manner; TCP provides connection management between two host entities with a reliable data path between them.
The UDP protocol is the "poor sister" of the Internet, not getting much media love, while TCP soaks up all the attention. But UDP operates with far less overhead, and can run rings around TCP.
While TCP is more widely known and used, many Internet applications use UDP, including the Domain Name System (DNS), simple network management protocol (SNMP), routing information protocol (RIP), and dynamic host configuration protocol (DHCP).
Most voice and video traffic is transmitted using UDP. To understand why, and to determine whether it is a good fit for your M2M system, we will introduce some fundamental characteristics of each protocol and show how those characteristics make one protocol better than the other for a given application.
Transmission control protocol
TCP is a widely used protocol for Internet traffic. It enables applications to send data from one system to another, across arbitrary distances, through an arbitrary number of intervening machines. Indeed, the sender does not need to know where the receiver is, or how to get to it. Those critical functions are taken care of by other aspects of the Internet protocol.