「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[IoT]] --[[通信技術]] * 目次 [#g0a49cb3] #contents *概要 [#oba07a39] IoT関連の通信プロトコル。 -IoT関連の通信プロトコルと言うことで、全体的に、~ 非力なデバイスやネットワークが不安定な場所でも~ 動作しやすい様にメッセージ通信電文が軽量に設計されている。 -[[Apache NiFi>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Apache%20NiFi]]でサーバがさっと建てられそうなので、~ クライアントライブラリについても調査する。 *詳細 [#ya47160c] **MQTT [#feb265c9] ***概要 [#u865d25c] -シンプル・省電力なメッセージキュープロトコル -TopicベースでのPub/Sub型データ配信モデル、~ 1対1、1対N、N対Nのメッセージ配布が可能。 -3つのQoS(Quality of Service)レベルの指定ができる。 --QoS0:最高1回(メッセージ配布に失敗しても再送をしない) --QoS1:最低1回(必ずメッセージ配布するが、重複する可能性がある) --QoS2:正確に1回(必ずメッセージを配布して、重複も発生しない) -FacebookのメッセンジャーにMQTTを使用している。 ***参考 [#a849aa97] -MQ Telemetry Transport - Wikipedia~ https://ja.wikipedia.org/wiki/MQ_Telemetry_Transport -MQTT とはなんだったのか~ https://gist.github.com/voluntas/e0a90f3e22316144ed3a -動かしながら学ぶMQTT~ https://www.slideshare.net/YokotaEiji/mqtt-61926090 -IoT時代を支えるプロトコルMQTT技術詳解~ https://www.slideshare.net/naotomatsumoto/itrc36-20141126nmatsumotov1 -.NETライブラリ --M2Mqttを使用したMQTTのクライアントサンプル | OPC Diary~ https://opcdiary.net/?p=28785 **CoAP [#y624562c] ***概要 [#pa9a2710] -制約付きM2Mデバイス(例えば、低電力、損失の多いネットワーク)用 -特殊なInternetアプリケーション・プロトコル。 --UDPまたはUDPアナログをサポートするほとんどのデバイスで実行できる。 --マルチキャストサポート、単純で、非常に低いオーバーヘッド。 --Webとの統合を簡素化するためにHTTPに簡単に変換できるように設計されている。 -関連技術に「[[CBOR]]」「[[CWT]]」がある。 ***参考 [#qe03b662] -Constrained Application Protocol - Wikipedia~ https://en.wikipedia.org/wiki/Constrained_Application_Protocol -“モノ”のインターネットへのつながり方L4以上~ https://www.nic.ad.jp/ja/materials/iw/2016/proceedings/t08/t8-maeda.pdf -RFC 7252 - The Constrained Application Protocol (CoAP)~ https://tools.ietf.org/html/rfc7252 **XMPP [#h20a0b88] ***概要 [#e8096e80] -メッセンジャーなどでよく使われてきたプロトコル -長い歴史があり枯れているため安心して利用できる。 -認証を伴った双方向性を持った仕組みが実現できる。 ***参考 [#iffb7ba6] -Extensible Messaging and Presence Protocol - Wikipedia~ https://ja.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol **AMQP [#ne273685] ***概要 [#y0dd68d6] 高機能・高信頼性なワイヤレベルプロトコル。 -メッセージ指向 -キューイング -ルーティング --ポイント・ツー・ポイント --Pub/Sub型データ配信モデル -信頼性、セキュリティ ***参考 [#icd28179] -Advanced Message Queuing Protocol - Wikipedia~ https://ja.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol -Azure Service Bus の AMQP 1.0 の概要 | Microsoft Docs~ https://docs.microsoft.com/ja-jp/azure/service-bus-messaging/service-bus-amqp-overview -.NETライブラリ --・・・ **SNMP [#yb52045b] ***概要 [#jcd38017] -DARPAモデルに準じた、~ IPネットワーク上のNW機器の監視・制御用プロトコル。 -[[トラフィック管理>監視・パケット解析編#x1059f2e]]などで利用される。 -NW機器ではなく、IoT機器の監視・制御にも応用されている。 ***参考 [#ybb51250] -Simple Network Management Protocol - Wikipedia~ https://ja.wikipedia.org/wiki/Simple_Network_Management_Protocol -CodeZine > net-snmpについて --基礎知識~ https://codezine.jp/article/detail/2830 --環境構築~ https://codezine.jp/article/detail/2839 --機器監視~ https://codezine.jp/article/detail/2865 --Trap設定~ https://codezine.jp/article/detail/2893 --独自監視項目の追加 - 前編~ https://codezine.jp/article/detail/2938 --独自監視項目の追加 - 後編~ https://codezine.jp/article/detail/2991 --v3の設定、パッチについて~ https://codezine.jp/article/detail/3028 -.NETライブラリ --vallog: SNMPメモ(C#、net-snmp)~ http://valvallow.blogspot.com/2009/09/snmpcnet-snmp.html --WMI ---C# Programming > SNMPを使う~ http://uchukamen.com/Programming1/SNMP/ --#SNMP Library ---https://docs.sharpsnmp.com~ ---https://www.nuget.org/packages/Lextm.SharpSnmpLib/ **REST API(HTTP) [#l2bee8d7] ... *参考 [#q2032c6c] -MQTTとAMQPと.NET~ https://www.slideshare.net/terurou/mqttamqpnet -IoTでの利用を期待されているプロトコルについて~ http://iot.nifcloud.com/blog/2015/10/09/iot-protocol/ **CodeZine(コードジン) [#h4b501b1] -IoTの市場性と、IoTを取り巻く最新技術動向~ https://codezine.jp/article/detail/7750 -IoT時代に知っておくべきテクノロジーと課題~ https://codezine.jp/article/detail/7751 -IoT時代を支えるプロトコル「MQTT」(前編)~ https://codezine.jp/article/detail/8000 -IoT時代を支えるプロトコル「MQTT」(中編)~ https://codezine.jp/article/detail/8019 -IoT時代を支えるプロトコル「MQTT」(後編)~ https://codezine.jp/article/detail/8020 -モノのインターネット(IoT)の不都合な真実~ https://codezine.jp/article/detail/8770 ---- Tags: [[:通信技術]], [[:.NET開発]], [[:IoT]]