참조 - 통신 프로토콜 선택

IoT Hub를 사용하면 디바이스가 디바이스 쪽 통신에 다음 프로토콜을 사용할 수 있습니다.

  • MQTT
  • WebSocket을 통한 MQTT
  • AMQP
  • Websocket 통한 AMQP
  • HTTPS

이러한 프로토콜이 특정 IoT Hub 기능을 지원하는 방식에 대한 내용은 디바이스-클라우드 통신 지침클라우드-디바이스 통신 지침을 참조하세요.

다음 표에는 선택한 프로토콜에 대한 고급 권장 지침이 나와 있습니다.

프로토콜 이 프로토콜을 선택해야 하는 경우
MQTT
WebSocket을 통한 MQTT
동일한 TLS 연결을 통해 여러 디바이스(각각 디바이스별 자격 증명 보유)에 연결할 필요가 없는 모든 디바이스에서 사용합니다.
AMQP
WebSocket을 통한 AMQP
디바이스 간에 연결 멀티플렉싱을 활용하기 위해 필드 및 클라우드 게이트웨이에서 사용합니다.
HTTPS 다른 프로토콜을 지원할 수 없는 디바이스에 사용됩니다.

디바이스 측 통신용 프로토콜을 선택할 때는 다음 사항을 고려해야 합니다.

  • 클라우드-디바이스 패턴. HTTPS에는 서버 푸시를 구현하는 효율적인 방법이 없습니다. 이와 같이 HTTPS를 사용하는 경우 디바이스는 클라우드-디바이스 메시지에 IoT Hub를 폴링합니다. 이 방법은 디바이스와 IoT Hub 모두에 비효율적입니다. 현재 HTTPS 지침에 따르면 각 디바이스는 25분 이상 간격으로 메시지를 폴링해야 합니다. HTTPS 수신을 더 많이 실행하면 IoT Hub가 요청을 제한할 수 있습니다. MQTT 및 AMQP는 클라우드-디바이스 메시지를 받을 때 서버 푸시를 지원합니다. 따라서 IoT Hub의 메시지가 디바이스에 즉시 푸시될 수 있습니다. 전달 대기 시간이 중요한 경우 MQTT 또는 AMQP는 가장 사용하기 적합한 프로토콜입니다. 드물게 연결되는 디바이스의 경우 HTTPS도 작동합니다.

  • 필드 게이트웨이. MQTT 및 HTTPS는 TLS 연결당 단일 장치 id (장치 ID 및 자격 증명)만 지원 합니다. 이러한 이유로 이러한 프로토콜은 단일 또는 업스트림 연결의 풀에서 여러 장치 id를 사용 하 여 IoT Hub에 대 한 멀티플렉싱 메시지가 필요한 필드 게이트웨이 시나리오 에 대해 지원 되지 않습니다. 이러한 게이트웨이는 업스트림 트래픽에 대해 AMQP와 같은 연결 당 여러 장치 id를 지 원하는 프로토콜을 사용할 수 있습니다.

  • 낮은 리소스 디바이스. MQTT 및 HTTPS 라이브러리는 AMQP 라이브러리보다 적은 공간을 차지합니다. 이와 같이 디바이스에 리소스가 제한되어 있으면(예: 1MB RAM보다 작음) 이러한 프로토콜은 사용할 수 있는 유일한 프로토콜 구현일 수도 있습니다.

  • 네트워크 통과. 표준 AMQP 프로토콜은 포트 5671을 사용하고 MQTT는 8883 포트에서 수신 대기합니다. 이러한 포트를 사용 하면 HTTPS가 아닌 프로토콜로 닫히는 네트워크에서 문제가 발생할 수 있습니다. 이 시나리오에서 WebSockets를 통한 MQTT, WebSockets를 통한 AMQP 및 HTTPS를 사용합니다.

  • 페이로드 크기. MQTT 및 AMQP는 바이너리 프로토콜로, HTTPS보다 더 많이 압축된 페이로드를 발생합니다.

경고

HTTPS를 사용 하는 경우 각 장치는 25 분 마다 한 번만 클라우드-장치 메시지를 폴링합니다. 개발 시, 원하는 경우 각 장치에서 더 자주 폴링할 수 있습니다.

중요

X.509 CA(인증 기관) 인증을 사용하는 디바이스에 대한 다음 기능은 아직 일반적으로 사용할 수 없으며 미리 보기 모드를 사용하도록 설정해야 합니다.

  • HTTPS, WebSocket을 통한 MQTT 및 WebSocket 프로토콜을 통한 AMQP.
  • 파일 업로드(모든 프로토콜).

일반적으로 X.509 지문 인증을 사용하는 디바이스에서 사용할 수 있습니다. IoT Hub를 사용하는 X.509 인증에 대해 자세히 알아보려면 지원되는 X.509 인증서를 참조하세요.

포트 번호

디바이스는 다양한 프로토콜을 사용하여 Azure에서 IoT Hub와 통신할 수 있습니다. 일반적으로 프로토콜은 솔루션의 특정 요구 사항에 따라 선택됩니다. 다음 표에는 특정 프로토콜을 사용할 수 있는 디바이스에 대해 열려 있어야 하는 아웃바운드 포트가 나와 있습니다.

프로토콜 포트
MQTT 8883
WebSocket을 통한 MQTT 443
AMQP 5671
Websocket 통한 AMQP 443
HTTPS 443

Azure 지역에 IoT Hub를 만들면 IoT Hub는 해당 IoT Hub의 수명 동안 동일한 IP 주소를 유지합니다. 그러나 서비스 품질을 유지하기 위해 Microsoft가 IoT Hub를 다른 배율 단위로 이동하는 경우에는 새 IP 주소로 할당됩니다.

다음 단계

IoT Hub가 MQTT 프로토콜을 구현하는 방법에 대한 자세한 내용은 MQTT 프로토콜을 사용하여 IoT 허브와 통신을 참조하세요.