IoT 기능 구현을 위해 MQTT를 이용하면 쉽게 할 수 있다. 그림처럼 MQTT Broker (서버 역할)를 통해 필요한 TOPIC을 등록만 하면 Client에게 필요한 메시지가 전달된다.
IoT 용으로 만들어진 MQTT는 TCP 프로토콜을 이용하므로 통신을 위해서는 IP address를 알아야 한다.
MQTT Broker를 중심으로 각 Client 가 내부 망에서 접속할 경우 서로의 IP address를 알고 있기 때문에 서로 접속이 가능하지만 외부에서는 접근 할 수 없다.
외부에서 접근하기 위해서는 Public IP address를 알아야 한다.
Server 역할을 하는 MQTT Broker 를 통해 통신할 경우 각 Client는 Broker의 IP address (Public address)만 알고 있으면 통신 하고자 하는 Client의 Private address (local address)를 몰라도 통신이 가능하다. MQTT Broker는 접속하는 Client의 IP address를 Public address로 인식한다.MQTT 통신을 지원하는 유료 Cloud 서비스를 이용할 경우 쉬운 테스트 환경을 얻을 수 있다.
Broker의 IP address (Public address) 에 접속하는 외부 Client는 Broker가 연결된 Router의 Port Forwarding을 이용하여 접속하는데 이때 외부의 Client는 두 개의 Public address를 가질 수 있다.local area에 접속할 수 있는 Public address공중 무선망 (4G LTE)의 Public address
외부 Client (ex, 핸드폰 단말)가 접속하는 Broker address는 Port Forwarding 된 Public address 이므로 Broker 접속 후 자신의 Public address가 변경이 되어도 Broker와의 연결을 잘 유지된다.