7 모든 개발자가 알아야 할 필수 IoT 통신 프로토콜

광산 12월. 26. 2024
목차

    What are IoT Communication Protocols?

    IoT 프로토콜은 표준이거나 “언어” 기계가 서로 통신하는 데 사용됩니다., 또는 플랫폼과 함께. 특징과 기능을 바탕으로, 이 프로토콜은 주로 다음과 같이 나뉩니다. 3 종류: 전송 프로토콜, 통신 프로토콜, 및 산업별 프로토콜.

    전송 프로토콜: used by devices for IoT network and connecting within the subnet, Wi-Fi를 포함하여, 블루투스, 지그비, 이더넷, NFC, 3G/ 4G/ 5G etc.

    Communication protocols: used for data transmission between devices, operate above the network layer and provide application layer services to users. Some of the communication protocols: MQTT, CoAP, HTTP/HTTPS, WebSocket, AMQP.

    Industry-specific protocols: standard protocols within a specific industry to ensure compatibility between the devices, 시스템, platforms by different manufacturers and brands, such as JT/T 808 vehicle terminal communication protocol in China.

    7 Essential IoT Communication Protocols

    Understanding of 7 IoT Communication Protocols:

    Here you’ll find some of the communication protocols used in IoT industry, 포함:

    1. REST/HTTP

    What is REST

    REST (Representational State Transfer)is an architectural style rather than standards for designing networked applications, typically uses HTTP as its transport protocol to implement its architectural principles.

    특징:

    • Statelessness: Each request contains all necessary information, and the server does not maintain the client’s state.
    • Resource Identification: On the server side, the application state and functionality can be divided into various resources, which are exposed to the client. Examples of resources include application objects, database records, algorithms, 등. Each resource is assigned a unique address using a URI (Universal Resource Identifier).
    • Uniform Interface: Use standard HTTP methods to manipulate resources, such as GET, POST, PUT, DELETE

    애플리케이션:

    REST/HTTP primarily aims to simplify the system architecture of the Internet, quickly achieving loose coupling between client and server interactions, thereby reducing interaction latency. 그러므로, it is suitable for IoT application, enabling the exposure of IoT resources through REST, allowing services to be invoked by other applications.

    2. CoAP

    What is CoAP

    CoAP (Constrained Application Protocol) offers easy and efficient communication for constrained devices, making it ideal for operation in low-power, low-bandwidth, and high-latency environments.

    특징:

    • Header Compression: CoAP features a compact binary header with a base of 4 바이트, followed by extended options, typically resulting in a request header of 10-20 바이트.
    • Methods and URIs: Supports GET, PUT, POST, DELETE methods, and URIs for accessing server resources.
    • Transport Layer: Built on UDP to minimize overhead and support multicast, with a simple stop-and-wait reliability mechanism.
    • Asynchronous Communication: Unlike HTTP, CoAP supports asynchronous communication, ideal for M2M applications.
    • Resource Discovery: Includes a built-in format for resource discovery, compliant with RFC 5785, using /.well-known/core for resource descriptions.
    • Caching: Supports caching of resource descriptions to enhance performance.

    애플리케이션:

    CoAP is a simplified HTTP-based RESTful API. CoAP is an application layer protocol in the 6 LoWPAN protocol stack, suitable for resource-constrained communication IP networks, such as low-power sensors and embedded systems.

    3. MQTT

    What is MQTT

    The MQTT protocol uses a publish/subscribe pattern, where IoT terminals typically connect to an MQTT broker via TCP. The broker manages the communication content through topics and is responsible for forwarding messages between devices.

    특징:

    • Pubish/Subscribe Model: Clients can publish messages to a topic and subscribe to receive messages from specific topics. This model enables flexible message distribution.
    • Low Bandwidth: The message header is minimal, typically only 2 바이트, supporting efficient bandwidth usage and making it suitable for low-bandwidth, high-latency, and unstable networks.
    • 신뢰할 수 있음: MQTT offers three QoS levels for message delivery: “at most once,” “at least once,” 그리고 “exactly once.

    애플리케이션:

    MQTT is generally suitable for device data collection to endpoints (예를 들어, Device -> Server) and centralized communication in a star network architecture, with the broker acting as the hub. It is widely used in IoT scenarios and has also been adopted in some mobile applications, such as Facebook Messenger (historically).

    4. DDS

    What is DDS

    DDS (Data Distribution Service) is a middleware standard created for real-time systems. It meets the strict demands of distributed applications by providing low latency, high throughput, and deterministic performance.

    특징:

    • Data-centric
    • Brokerless Publish/Subscribe Messaging Model: Support point-to-point, point-to-multipoint, and multipoint-to-multipoint communication.
    • Offer up to 21 Quality of Service (QoS) Policies

    애플리케이션:

    Distributed, highly reliable, real-time data communication for devices. 현재, DDS is widely used in fields like civil aviation and industrial control.

    5. AMQP

    What is AMQP

    AMQP is an open-standard application layer protocol designed to ensure reliable message transmission and queuing mechanisms.

    특징:

    • Wire-level Protocol: Transmits data across the network as a stream of bytes.
    • High compatibility due to the open standard
    • Flexible & 안전한: Supports various messaging patterns, including publish/subscribe and point-to-point. It also incorporates multiple security mechanisms, such as encryption and authentication.

    애플리케이션:

    Initially used for transaction messaging in financial systems, AMQP is now primarily utilized in IoT applications for communication and data analysis between mobile devices and backend data centers.

    6. XMPP

    What is XMPP

    As an open-standard communication protocol, XMPP (Extensible Messaging and Presence Protocol) is designed for real-time communication, such as instant messaging and presence information.

    특징:

    • Client/Server Communication Model: Clients send requests to the server, which processes the requests and sends back the appropriate response or resource to the client.
    • Distributed Network: Multiple independent nodes form the network, eliminating single points of failure.
    • Simple Clients: Clients handle fewer tasks, with most computation done on the server side.
    • XML is used to describe data, ensuring cross-platform compatibility, though JSON has become more popular in modern applications.

    애플리케이션:

    XMPP is used in instant messaging, network management, content delivery, collaboration tools, file sharing, gaming, remote system monitoring, 그리고 더.

    7. JMS

    What is JMS

    JMS (Java Message Service) is a standard API of the Java platform for messaging in distributed applications. It allows applications to communicate through message queues, thus achieving asynchronous, 유연한, and reliable message exchange.

    특징:

    • Asynchronous Communication: Allows sending and receiving messages at different times, increasing system flexibility and responsiveness.
    • Message Durability: Provides message persistence, ensuring that messages are not lost in case of system failures, and enhancing reliability
    • Transaction Support: JMS provides transaction support, ensuring the atomicity of a group of message operations, meaning all operations either succeed completely or fail entirely, thereby guaranteeing data consistency.

    애플리케이션:

    JMS is ideal for distributed applications requiring asynchronous messaging, system decoupling, and high reliability, such as enterprise application integration, event-driven architecture, and real-time data processing.

    Comparisons of IoT Communication Protocols

    특징 DDS MQTT AMQP XMPP JMS REST/HTTP CoAP
    Abstraction Pub/Sub Pub/Sub Pub/Sub 저것 Pub/Sub Request/Reply Request/Reply
    Architecture Global data space 대리 P2P or Proxy 저것 대리 Through TCP guarantee P2P
    QoS 22 종류 3 종류 3 종류 저것 3 종류 Confirm through TCP or confirmed messages
    Interoperability Partially 저것 아니요
    성능 100,000 msg/s/sub 1,000 msg/s/sub 1,000 msg/s/sub 저것 1,000 msg/s/sub 100 req/s 100 req/s
    실시간 아니요 아니요 아니요 아니요 아니요
    Transport Layer Supports UDP and TCP TCP TCP Not specified, usually TCP TCP UDP UDP
    Subscription Filtering Message content-based and topic-based filtering Layered subscription based on topics and message content Queue and message filtering 저것 Message content and topic filtering 지원되지 않음 Supports topic and multicast
    Encoding Binary Binary Binary XML format Binary Plain text Plain text
    Dynamic Discovery 아니요 아니요 저것 아니요 아니요 아니요
    보안 Provides FSS, TLS, and other security options Simple username/password, SSL data encryption SASL and TLS data encryption 저것 Provides FSS, TLS, JAAS API support General support for SSL and TLS General support for SSL and TLS

     

    결론

    MQTT, DDS, AMQP, XMPP, JMS, REST, and CoAP are widely used protocols, each with multiple implementations, that claim support for real-time publish/subscribe IoT communication. 하지만, when designing specific IoT system architectures, it is essential to consider the actual communication needs of the scenario—such as bandwidth limitations, latency requirements, and security—before selecting the most appropriate protocol.

    다음: LoRaWAN 대 Zigbee: 차이점은 무엇입니까?
    이전: 맨 위 5 직장 안전 팁 2025: IoT 기술로 작업자 안전 보장