Google Cloud IoT Core는 2023년 8월 16일에 지원 중단됩니다. 자세한 내용은 Google Cloud 계정팀에 문의하세요.

프로토콜

Cloud IoT Core는 기기 연결 및 통신을 위해 MQTT 및 HTTP라는 두 가지 프로토콜을 지원합니다. 기기는 '브리지'(MQTT 브리지 또는 HTTP 브리지)를 통해 Cloud IoT Core와 통신합니다. MQTT/HTTP 브리지는 구성요소 개요에 나와 있듯이 Cloud IoT Core의 중심 구성요소입니다.

기기 레지스트리를 만들 때 사용 설정할 프로토콜(MQTT나 HTTP 또는 둘 다)을 선택합니다.

  • MQTT는 내장형 기기에서 자주 사용되고 지원되는 표준 게시/구독 프로토콜이며, 머신 간 상호 작용에도 일반적으로 사용됩니다.

  • HTTP는 '연결이 없는' 프로토콜입니다. HTTP 브리지를 사용할 때 기기는 Cloud IoT Core 연결을 유지하지 않습니다. 대신 요청을 보내고 응답을 받습니다. Cloud IoT Core는 2.0이 아닌 HTTP 1.1만 지원합니다.

다음 표에서는 두 프로토콜이 Cloud IoT Core에서 작동하는 방식을 비교합니다.

MQTT 브리지 HTTP 브리지
기기 연결 유지 비연결(요청/응답)
전이중 TCP 연결 반이중 TCP 연결
CONNECT 메시지의 비밀번호 필드로 JWT 전송 HTTP 요청의 Authorization 헤더로 JWT 전송
원격 분석 이벤트가 Cloud Pub/Sub로 푸시됨 원격 분석 이벤트가 Cloud Pub/Sub로 푸시됨
기기 연결 상태가 보고됨 보고되는 기기 연결 상태 없음
기기 구성이 구독을 통해 전파됨 기기 구성을 (폴링을 통해) 명시적으로 요청해야 함
(최신 버전인지 여부에 관계없이) 최신 구성이 항상 구독 중인 기기에서 수신됨 기기에서 최신 구성만 수신하도록 지정할 수 있음
QoS 1을 사용할 때 기기 구성이 확인(ACK)됨 기기 구성에 대한 명시적인 ACK 없음
최근 기기 하트비트 시간이 유지됨 기기 하트비트 데이터 없음

다음과 같은 각 프로토콜의 일반적인 특징을 고려할 수도 있습니다.

MQTT HTTP
  • 적은 대역폭 사용량
  • 짧은 지연 시간
  • 많은 처리량
  • 원시 바이너리 데이터 지원
  • 경량(쉬운 시작, 간단한 curl 명령어)
  • 적은 방화벽 문제
  • 바이너리 데이터가 base64로 인코딩되어야 하므로 더 많은 네트워크 및 CPU 리소스 필요

두 브리지 모두 공개 키 (비대칭) 기기 인증과 JSON 웹 토큰(JWT)을 사용합니다. 자세한 내용은 기기 보안에서 관련 섹션을 참조하세요.