Обзор сетевых протоколов и протоколов обмена сообщениями для IoT

Здравейте, хабровци! Първият онлайн курс за IoT разработчици в Русия стартира в OTUS през октомври. В момента е отворена регистрацията за курса, поради което продължаваме да споделяме с вас полезни материали.

Обзор сетевых протоколов и протоколов обмена сообщениями для IoT

Интернет на нещата (IoT, Internet of Things) ще бъде построен на базата на съществуващата мрежова инфраструктура, технологии и протоколи, използвани в момента в домовете/офисите и в интернет, и ще предложи много повече.

Целта на това ръководство е да предостави кратък преглед на мрежовите и приложни протоколи за IoT.

Забележка. Трябва да имате знания основи на мрежовите технологии.

IoT мрежи

IoT ще функционира в съществуващите TCP/IP мрежи.

TCP/IP използва четирит层ова модел с определени протоколи на всеки слой. Вижте разбирането на четирит层овия модел на TCP/IP. (разглеждане на четирит层овия модел на TCP/IP).

На диаграмата по-долу е показано сравнение на протоколите, които се използват в момента, и тези, които вероятно ще се използват за IoT.

Обзор сетевых протоколов и протоколов обмена сообщениями для IoT

Забележки към диаграмата:

  1. Размерът на шрифта отразява популярността на протокола. Например, вляво IPv4 е по-голям, тъй като е много по-популярен в съвременния интернет. Въпреки това, вдясно е по-малък, тъй като се очаква, че IPv6 ще бъде по-популярен в IoT.

  2. Не всички протоколи са показани.

  3. Най-много изменения ще настъпят на каналния (нивото 1 и 2) и приложния слоеве (нивото 4).

  4. Мрежовия и транспортния слоеве вероятно ще останат непроменени.

Протоколи на каналния слой

На каналния слой (Data Link) трябва да свържете устройствата помежду им. Те могат да бъдат както близо, например, в локални мрежи (local networks), така и на голямо разстояние едно от друго: в градски (metropolitan area networks) и глобални мрежи (wide area networks).

В момента на този слой в домашни и офис мрежи (LAN) се използват Ethernet и Wi-Fi, а в мобилни (WAN) — 3G / 4G. Въпреки това, много IoT устройства са с ниска мощност, например, сензори, и се захранват само от батерии. В тези случаи Ethernet не е подходящ, но могат да се използват low powered Wi-Fi и low powered Bluetooth.

Въпреки че за свързване на тези устройства все още ще се използват съществуващите безжични технологии (Wi-Fi, Bluetooth, 3G / 4G), заслужава да се обърне внимание и на новите технологии, специално разработени за IoT приложения, популярността на които вероятно ще нараства.

Сред тях:

  • BLE – Bluetooth Low Energy

  • LoRaWAN – Long Range WAN

  • SigFox

  • LTE-M

По-подробно са описани в статията Обзор на безжичните технологии IoT (преглед на безжичните технологии IoT).

Мрежово ниво

На мрежово ниво (Networking) в дългосрочен план ще доминира протоколът IPv6. Малко вероятно е, че IPv4 ще се използва, но той може да има определена роля в началните етапи. Повечето IoT-устройства за дома, например, интелигентни лампи, в момента използват IPv4.

Транспортно ниво 

На транспортно ниво (Transport) в интернет и уеба доминира TCP. Той се използва както в HTTP, така и в много други популярни интернет протоколи (SMTP, POP3, IMAP4 и др.).

MQTT, който, както очаквам, ще стане един от основните протоколи на приложение за обмен на съобщения, в момента използва TCP.

Но в бъдеще, заради по-ниските им разходи, очаквам UDP да стане по-популярен за IoT. Вероятно ще се разпространи MQTT-SN, работещ върху UDP. Вижте статията за сравнение TCP vs UDP .

Приложно ниво и протоколи за обмен на съобщения

Важно е да знаете характеристиките на протоколите IoT:

  • Скорост — количество предавани данни в секунда.

  • Задръжка — времето, необходимо за предаване на съобщение.

  • Консумация на енергия.

  • Сигурност.

  • Наличие на софтуерни средства.

В момента на това ниво активно се използват два основни протокола: HTTP и MQTT.

HTTP е вероятно най-известният протокол на това ниво, на който се основава уеба (WWW). Той все още ще играе важна роля за IoT, тъй като се използва за REST API — основният механизъм за взаимодействие между уеб приложения и услуги. Въпреки това, поради високите си разходи, HTTP едва ли ще стане основен протокол за IoT, макар че все пак ще бъде широко използван в интернет.

MQTT (Message Queuing Telemetry Transport) стана основен протокол за обмен на съобщения в IoT, благодарение на своята лекота и простота за използване. Вижте статията Introduction to MQTT for beginners (Въведение в MQTT за начинаещи).

Сравнение на HTTP и MQTT за IoT

MQTT бързо става де факто стандарт за IoT приложения. Това се дължи на лекотата и скоростта му в сравнение с HTTP и че е протокол "един към много", а не "един към един" (HTTP).

Много съвременни уеб приложения биха с радост използвали MQTT вместо HTTP, ако той беше наличен по време на тяхното разработване.

Добър пример е изпращането на информация на множество клиенти, например за пристиганията и заминаванията на влакове / автобуси / самолети. В този сценарий протоколът „един-к-един“ като HTTP носи големи разходи и създава голямо натоварване на уеб сървърите. Мащабирането на тези уеб сървъри може да бъде затруднено. С MQTT клиентите се свързват с брокера, който лесно може да бъде добавен за балансиране на натоварването. Вижте това ръководство с видео Повторно публикуване на HTML данни по MQTT (пример за пристигания на полети) и статията MQTT срещу HTTP за IoT.

Други протоколи за обмен на съобщения

HTTP не е проектиран за IoT приложения, но, както вече беше споменато, той ще продължи да се използва широко за известно време поради широкото си приложение в API.

Почти всички IoT платформи поддържат както HTTP, така и MQTT.

Обаче има и други протоколи, които си струва да се разгледат.

Протоколи

  • MQTT — (Message Queuing Telemetry Transport). Използва TCP/IP. За модел „издател-подписчик“ е необходим брокер на съобщения.

  • AMQP — (Advanced Message Queuing Protocol). Използва TCP/IP. Модели „издател-подписчик“ и „точка-точка“.

  • COAP — (Constrained Application Protocol). Използва UDP. Специално проектиран за IoT, използва модел на искане-отговор, както в HTTP. RFC 7252.

  • DDS — (Data Distribution Service) 

В тази статии основните протоколи и техните приложения. Изводът от тази статия е, че IoT ще използва набор от протоколи, в зависимост от предвиденото им приложение.

Обаче, ако се огледате назад, в ранните години на съществуването на Интернет, протоколът HTTP, който по-късно стана доминиращ, беше само един от многото протоколи.

Въпреки че HTTP първоначално не е бил замислен за предаване на файлове и електронна поща, днес се използва и за двете.

Очаквам, че в IoT с протоколите за обмен на съобщения ще се случи същото: повечето услуги ще използват един доминиращ протокол.

По-долу са графиките на Google Trends, показващи как се е изменяла популярността на MQTT, COAP и AMQP през последните години.

Преглед на Google Trends 

Обзор сетевых протоколов и протоколов обмена сообщениями для IoT

Подкрепа на протоколите по платформи

  • Microsoft Azure — MQTT, AMQP, HTTP и HTTPS

  • AWS — MQTT, HTTPS, MQTT над websockets

  • IBM Bluemix – MQTT, HTTPS, MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Резюме

Най-много изменения ще настъпят на каналния (нивото 1 и 2) и приложния слоеве (нивото 4).

Мрежовия и транспортния слоеве вероятно ще останат непроменени.

На приложенческо ниво компонентите на IoT ще използват протоколи за обмен на съобщения. Въпреки че все още сме в ранния етап на развитие на IoT, е напълно възможно да се откроят един или, може би, два протокола за обмен на съобщения.

През последните години MQTT стана най-популярният и именно на него в момента се фокусирам на този сайт.

HTTP също така ще продължи да се използва, тъй като вече е добре интегриран в съществуващите IoT платформи.

С това завършвам. Приглашаваме ви да се запишете за безплатен демонстрационен урок по темата „Чат-бот за бързи команди на устройството“.

Прочетете още:

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster