IOT – 경량화 프로토콜

-기사 MQTT및 CoAP는 폭발적으로 성장하는 IoT시장을 위한 주요 경량 멧세ー징그프로토콜으로 급부상하고 있다. 각 프로토콜은 고유의 장점을 가지고 있으며 각각 다른 과제와 트레이드 오프를 제기한다. 양쪽 모두의 프로토콜은 경량 마지막 노드를 거의 모든 네트워크에서 필수로 요구되는 그물형 네트워킹 애플리케이션과 표준 간의 통신을 가능하게 하는 게이트 웨이 브리징 논리로 구현하고 있다. 조지·워싱턴 대학(George Washington University)의 필립·하워드(Philip N. Howard)는 최근 발표한 기고문에서 2014년에 이미 코넥텟도(connected)기기의 수가 세계 인구를 넘어선 것으로 추정하고 2020년에는 500억개에 달하는 기기가 서로 연결되는 사물 인터넷(IoT)시대를 맞게 될 것이라고 내다봤다.다시 말하면 사람들이 끊임없이 더 많은 기기를 인터넷에 연결함으로써 지금까지 연결된 것이 없거나 존재하지 않았다, 또는 이제 그런 연결을 핵심 기능으로 쓰는 인터넷에 연결된 “사물”의 폭발적 성장이 다가오는 시대가 열리고 있다는 것이다. 이제 문제는 ” 이렇게 연결된 수십억개의 사물이 어떻게 마지막 노드와 클라우드, 그리고 서비스 제공 업자 간에 정보를 교환할까”이다. 이 기사는 이런 주제를 배터리로 구동하면서 수동적인 개입(배터리 교환 등)없이 적어도 7년간 동작할 수 있는 특정 연결된 기기와 관련 지어 보자.특히 이런”경량화된 “IoT노드의 수요에 대처하기 때문에 최근 부상하는 두 멧세ー징그프로토콜을 집중적으로 다루기로 한다. 최초의 프로토콜은 MQTT(Message Queuing Telemetry Transport)이며 오늘의 기준에서 보면 구식이라고 생각된다. 프로토콜 자체는 1999년 시작됐다. 2번째는 비교적 최근 개발되어 주목을 끌고 있는 CoAP(Constrained Application Protocol)이다.

▲ 그림 1. 필립·하워드의 최근 연구에 따르면 현재 연결된 기기 수는 세계 인구를 넘어선 IoT통신 프로토콜 요구 사항 IoT는 이전 연결되지 않은 인터넷에 기기를 접속하는 것을 말한다. 예를 들어, 공장의 소유자는 디지털 조명을 연결할 수 있으며 3종 경기 선수는 배터리로 구동되는 심장 박동 측정기를 연결할 수 있다. 홈 또는 빌딩 자동화 공급자는 배터리 구동 무선 센서 노드를 연결할 수 있다. 여기서 중요한 점은 이런 모든 사용 용도로 “물건”은 “IoT”노드로 간주되는 인터넷을 통해서 통신해야 한다는 것이다. 접속된 기기는 인터넷을 사용해야 하기 때문에 IETF(Internet Engineering Task Force)에서 제정된 인터넷 프로토콜 슈트에 따라야 한다(표 1). 그러나 인터넷은 전통적으로 많은 전력과 메모리, 연결 옵션을 가진 자원이 풍부한 기기를 연결했다. 그러한 프로토콜은, 부상하는 IoT에서 전반적으로 애플리케이션에 적용하기는 너무 무거운.

▲ 표 1. 인터넷 프로토콜 슈트는 어플리케이션, 트랜스포트 및 인터넷 계층을 포괄하는 IoT의 또 다른 측면이 IETF의 작업에 새로운 전환을 요구하고 있다. 특히 IoT최종 노드 네트워크는 손실이 많아 이 같은 네트워크에 접속되는 기기는 매우 적은 전력을 사용하면서 제한된 자원을 가지고 있어 장시간 사용 수명을 기대한다. 네트워크와 최종 디바이스 양쪽을 포괄하는 요구 사항은 아래 표 2와 같다. 이들 새로운 모델은 대량 자원을 필요로 하지 않는 새롭고 더 가벼운 프로토콜을 필요로 합니다. MQTT및 CoAP는 작은 메시지 크기, 메시지 관리 및 경량 메시지 오버 헤드를 통해서 이런 요구를 채우다. 표 2는 핵심 요구 사항을 요약한 것이다.

▲ 표 2. 저가형 전력이 제한된 기기와 관련 네트워크는 다양한 요구 사항을 가진 MQTT및 CoAP…경량 IoT통신 프로토콜 MQTT와 CoAP는 인터넷 기반의 풍부한 자원을 가지는 디바이스에서 IoT베이스의 한정된 자원을 가지는 기기로의 통신을 지원한다.CoAP와 MQTT는 모두 경량 애플리케이션 계층을 구현하고 오류 수정의 대부분은 메시지 재시행, 간단한 신뢰성 전략에 전달하거나 최종 노드의 한 데이터에 대한 사후 처리를 자원이 더 풍부한 기기에 맡기다. 상세는 그림 2를 참조할 수 있다.

▲ 図2.MQTT及びCoAPはクラウド及びスマートフォンに対する通信を支援する。1.MQTT概要IBMは油田装備との衛星通信のためにMQTTを開発した。 MQTTは基本的に信頼性と低電力を特徴とするため、IoTネットワークに適用するのに適している。 その後、MQTT標準はオープン標準のための団体であるOASISによって採用され、バージョン3.1.1として発表された。 また、オープンソーススタックとコンサルティングを提供する多くの商業会社とEclipseコミュニティ内の支援を受けている。 MQTT は「publish/subscribe」モデルを使用し、MQTT ネットワークノード間でメッセージを管理しルーティングするために中央MQTT ブローカーを必要とする。 EclipseはMQTTを中央ブローカーを通じて多重クライアント間でメッセージを伝達する「多重(many-to-many)」通信プロトコルで説明している。 MQTTはTCPを使用して「高信頼性、整列、エラー検査」を特徴とするトランスポート階層を具現する。 2.MQTTの強み(1)Publish/SubscribeモデルMQTTの「pub/sub」モデルは拡張性に優れ、電力効率的である。 ブローカーとノードは情報を発行し、他のノードはメッセージの内容、種類、またはテーマに従って購読する。 これらの用語は、MQTT標準用語である。 一般的にブローカーは、すべてのメッセージを購読し、各ノードの情報の流れを管理する。 publish/subscribeモデルにはいくつかの明確な長所がある。 (2) 空間分離ノードとブローカーは互いのIPアドレスを持つ必要があるが、ノードは情報を発行することができ、すべてが中央ブローカーを経て行われるため、互いを全く知らずにいても他のノードで発行する情報を購読することができる。 これはTCPセッションとポートに伴うオーバーヘッドを減少させ、最終ノードが互いに対して独立的に動作できるようにする。 (3) 時間分離ノードは、他のノードの状態に関係なく情報を発行することができる。 その後、活性化されると、他のノードはブローカーから発行された情報を受信することができる。 これにより、他のノードが該当ノードに直接関連したメッセージを発行する時でさえ、ノードが休眠状態を維持できるようにする。 (4) 同期分離動作中のノードは、購読中のメッセージが発行されてもこれを受信するように割り込まれず、メッセージは受信ノードが既存の動作を完了するまでブローカーによって待機列に保存される。 これは進行中の動作または休眠状態に対する割り込みを避けることで動作電流を節約し繰り返される動作を減らす。 (5) セキュリティMQTT は新たに開発されたセキュリティ形式ではなく、暗号化されていないTCP を使用する。 TCP を使用する理由は、TLS/SSL インターネットセキュリティを使用できるからである。 しかし、TLSは必要なハンドシェイクと増加するパケットオーバーヘッドによって軽量化されたクライアントにリソース集約的である。 エネルギーが非常に高い優先順位を持っており、セキュリティがはるかに重要でないネットワークの場合、パケットペイロード暗号化だけで十分である。(6)MQTTサービス品質段階「サービス品質(QoS, Quality of Service)」という用語は、MQTT以外では異なることを意味する。 MQTTにおいて「QoS」は0、1、2段階があり、メッセージ伝達保障が増加する水準を指す。 (7) MQTT QoS 0 ありふれた「Fire and forget」といい、たった一度の伝送で終わるためメッセージ到着を保障しない。 非常に反復的なメッセージタイプや業務に重要でないメッセージに使用できる。 (8) MQTT QoS 1 この段階は、メッセージが意図された受信者によって少なくとも一度受信されることを保障する。 発行されたメッセージが受信され、意図された受信者によって理解されれば、発行ノードに送る確認メッセージ(PUBACK)を通じてメッセージの受信を確認する。 発行者がPUBACKを受信するまでメッセージが保存され、定期的に再送される。 この種のメッセージは重要でないノードシャットダウンに有用である。(9)MQTT QoS 2 この段階は、意図された受信者によってメッセージが受信され解読されることを保障する。 この段階は、最も高いセキュリティの信頼できるMQTT QoS段階である。 発行者はメッセージを送信しながらQoS2メッセージを持っていることを知らせる。 意図された受信者は通知を収集し、それを解読した後、メッセージを受信する準備ができていることを示す。 発行者はメッセージを中継する。 宛先がメッセージを理解すると、受信確認を利用してトランザクションを完了する。 この種のメッセージは、家庭で照明または警報をオンまたはオフにする用途に活用できる。 (10) LWTMQTTはノードが予期せずネットワークから接続が切れる場合、MQTTブローカーに保存できる「LWT(last will and testament)」メッセージを提供する。 このLWTは発行し、購読された命令の種類を含め、ノードの状態と目的を保有する。ノードが消えると、ブローカーはすべての購読者にノードのLWTを通知する。 ノードが戻ると、ブローカーはノードに以前の状態を通知する。 この機能は損失の多いネットワークと拡張性を受け入れるのに適している。(11)トピック購読MQTTノードは、与えられた機能内ですべてのメッセージを購読できる。 例えば、「キッチンオーブンノード(kitchenoven node)」はワイルドカードで、「+」と共に「kitchen/oven/+」に対するすべてのメッセージを購読することができる。 これにより、最小限のコード(メモリおよびコスト)が使用できるようになります。また別の例として、もしキッチン内のノードが最終ノードの機能に関係なく、すべての温度情報に関心を持っているなら、「kitchen//temp」は「temp」を報告するすべてのノードからキッチン内のすべてのメッセージを収集する。 MQTTワイルドカードはコードフットプリントを減らし、それによってメモリサイズと費用を減らすことができるので非常に有用だ。3.MQTTの問題点(1)中央ブローカー中央ブローカーを利用することは分散化された環境のIoTシステムには短所になりうる。 例えば、システムはリモートコントロールとウィンドウシェードだけを備えて小さく始めることができ、この時中央ブローカーは必要ない。 その後、セキュリティセンサーや電灯、またはその他のウィンドウシェードを追加しながらシステムが拡大すれば、ネットワークは自然に拡張し、中央ブローカーが必要になる可能性がある。しかし、どの個別ノードも最終ノード機能には核心的でないリソースとソフトウェア、複雑さを要求するコストと責任を負いたくない。 すでに中央ブローカーがいるシステムの場合、中央ブローカーは完全なネットワークに障害が発生する可能性のある単一のポイントになる可能性があります。 例えば、もしブローカーがバッテリーバックアップなしで駆動されるノードであれば、電気供給が切れた場合、バッテリー駆動されるノードは動作し続けることができる反面、ブローカーはオフラインになるため、ネットワークは正常に動作できなくなる。(2)TCPはもともと多くのメモリとプロセッシングリソースを持つ機器のために設計された。 したがって、軽量IoT方式のネットワークで使用するには適していない。TCPプロトコルは、メッセージを交換する前に、マルチステップのハンドシェイクプロセスを通じて接続しなければならない。 このような方式はウェイクアップ時間と通信時間を増やし、長期的にバッテリー寿命を短縮させる。 また、TCPでは、両通信ノードが持続的なセッションで連続的にお互いに対してTCPソケットを開放することが理想的である。 このような特性は、エネルギーとリソースが制限されたデバイスには適用しにくい場合がある。 (3) ウェイクアップ時間セッションの継続なしにTCPを使用するには、接続を結ぶのに増加する伝送時間を必要とする場合がある。 定期的かつ反復的なトラフィックを持つノードの場合、これは動作寿命を短縮することができる。4。 CoAP概要IoTの重要性が高まり、IETFは軽量メッセージングのためのCoAPを定義した。 IETF の定義によれば、CoAP は「制限されたノードと制限された(すなわち、低電力の損失が多い)ネットワーク」のためのものである。 エクリプス(Eclipse)コミュニティでも、MQTTと同様にCoAPを公開標準でサポートしている。 CoAPは商用的に支援され、IoTプロバイダと共に急速に成長している。 CoAP はクライアント/サーバプロトコルであり、1対1(1:1)「要請/報告」インタラクティブモデルを提供する。 また、まだIETF標準化の初期段階にあるが、マルチキャストをサポートする。 十数年前に開発されたプロトコルからIoTの要求に合わせて改造されたMQTTとは異なり、CoAPはIETFが最初から制限された環境で動作する制限された機器の軽量メッセージングのIoTを支援するために作られた。 CoAPは簡単なプロキシを通じてHTTPとRESTfulウェブと相互運用されるように設計されており、本質的にインターネットに適している。 5。 CoAP の強み(1)ネイティブUDP CoAP は基本的に、そして意図的にTCP よりも信頼性の低いUDP で実行され、一貫した接続の代わりに反復的メッセージングに依存して信頼性を提供する。 例えば、温度センサーは温度変化がなくても一つの伝送から次の伝送に数秒ごとにアップデート情報を送ることができる。 受信ノードが1つのアップデートを見逃しても、次のアップデートが数秒以内に到着し、このアップデートは最初のアップデートとそれほど変わらないだろう。 UDPの非連結データグラムは、より少ないオーバーヘッドとより小さいパケット、そしてより速いウェイクアップと伝送サイクルを実行できるようにする。 したがって、デバイスがより長い間休眠状態を維持できるので、バッテリー電力を節約できる。 (2) マルチキャスト支援CoAPネットワークは基本的に一対一方式であるが、一対多または多対多マルチキャスト要求事項を支援する。 CoAP ネットワークはIPv6 の上に構築されるため、マルチキャストはCoAP の中に本質的に内在すると考えられる。 したがって、一般IPv6アドレスだけでなく、デバイスのためのマルチキャストアドレス指定が可能である。 しかし、休眠状態のデバイスに伝達されるマルチキャストメッセージは信頼できないか、またはこのようなメッセージを受信するために定期的にウェイクアップが発生した場合、デバイスのバッテリー寿命に影響を及ぼしかねない。(3)セキュリティCoAPはUDP伝送プロトコル上でDTLSを使用する。 TCP と同様に UDP はアーム

제임스 스탠스베리_실리콘랩 Copyright ⓒ 첨단 & Hellot.net

error: Content is protected !!