Communication protocols for the Internet of Things
Communication is very common and critical for the Internet of Things. Whether it is short-range wireless transmission technology or mobile communication technology, it affects the development of the Internet of Things. In communication, the communication protocol is particularly important. It is the rules and conventions that both entities must follow to complete the communication or service.
In the Internet of Things protocols, we generally fall into two categories, one is a transmission protocol, and the other is a communication protocol. The transmission protocol is generally responsible for networking and communication between devices in the subnet; the communication protocol is mainly a device communication protocol running on the traditional Internet TCP / IP protocol, and is responsible for data exchange and communication between devices through the Internet. So what communication protocols does the Internet of Things have?
I. REST / HTTP (loosely coupled service invocation)
REST stands for Representational State Transfer and is a communication style developed based on the HTTP protocol.
Scope of application: REST / HTTP is mainly used to simplify the system architecture in the Internet, quickly achieve loose coupling between the client and the server, and reduce the interaction delay between the client and the server. Therefore, it is suitable to open the resources of the Internet of Things through REST at the application level of the Internet of Things, so that services can be called by other applications.
1. REST refers to a set of architectural constraints and principles. An application or design that meets these constraints and principles is RESTful.
2. The interaction between client and server is stateless between requests.
3. On the server side, application status and functions can be divided into various resources, which are exposed to the client, and each resource uses a URI to get a unique address. All resources share a unified interface to transfer status between the client and server.
4. Use standard HTTP methods, such as: GET, PUT, POST, and DELETE.
II. CoAP protocol
CoAP (Constrained Application Protocol) is a restricted application protocol used in wireless sensor networks.
Scope of application: CoAP is a RESTful API that simplifies the HTTP protocol. CoAP is an application layer protocol in the 6LowPAN protocol stack. It is applicable to IP networks in resource-constrained communications.
III. MQTT protocol (low bandwidth)
MQTT (Message Queuing Telemetry Transport), a message queue telemetry transmission, an instant messaging protocol developed by IBM, which is more suitable for the Internet of Things scenario. The MQTT protocol uses a publish / subscribe model. All IoT terminals are connected to the cloud through TCP. The cloud manages the communication content that each device pays attention to by means of topics and is responsible for forwarding the messages between the devices.
Scope of application: Provides data transmission and monitoring of cloud-based remote devices under low-bandwidth, unreliable networks.
IV. DDS protocol (high reliability, real time)
DDS (Data Distribution Service for Real-Time Systems), a data distribution service for real-time systems.
Scope of application: distributed high reliability, real-time transmission equipment data communication. At present, DDS has been widely used in defense, civil aviation, industrial control and other fields.
V. AMQP protocol (interoperability)
AMQP (Advanced Message Queuing Protocol), an advanced message queuing protocol, is used for business systems such as PLM, ERP, MES, etc. for data exchange.
Scope of application: The earliest application is for transaction messaging between financial systems. In the application of the Internet of Things, it is mainly applicable to the communication and analysis of mobile handheld devices and background data centers.
VI. XMPP protocol (instant messaging)
XMPP (Extensible Messaging and Presence Protocol) is an extensible communication and presentation protocol, a network instant messaging protocol generated by an open source organization.
Scope of application: instant messaging applications can also be used in network management, gaming, remote system monitoring, etc.
JMS (Java Message Service), which is the message service, is a well-known message queue protocol in the JAVA platform.
Java message service application program interface is a Java platform about message-oriented middleware (MOM) API, used to send messages between two applications or distributed systems for asynchronous communication. The Java Message Service is a platform-independent API. Most MOM providers provide support for JMS.
Direction of application focus on
Take the smart home as an example. In the smart home, the smart light control can use the XMPP protocol to control the switching of the lights. The smart home's power supply and the monitoring of the engine block of the power plant can use the DDS protocol. For inspection and maintenance, you can use the MQTT protocol; the power consumption of all appliances in the home can be transmitted to the cloud or home gateway for analysis using the AMQP protocol; finally, the user wants to publish his energy consumption query service to the Internet, then Use REST / HTTP to open API services.