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

Интернет на нещата (IoT, Internet of Things) ще бъде построен на базата на съществуващата мрежова инфраструктура, технологии и протоколи, използвани в момента в домовете/офисите и в интернет, и ще предложи много повече.
Целта на това ръководство е да предостави кратък преглед на мрежовите и приложни протоколи за IoT.
Забележка. Трябва да имате знания .
IoT мрежи
IoT ще функционира в съществуващите TCP/IP мрежи.
TCP/IP използва четирит层ова модел с определени протоколи на всеки слой. Вижте (разглеждане на четирит层овия модел на TCP/IP).
На диаграмата по-долу е показано сравнение на протоколите, които се използват в момента, и тези, които вероятно ще се използват за IoT.

Забележки към диаграмата:
Размерът на шрифта отразява популярността на протокола. Например, вляво IPv4 е по-голям, тъй като е много по-популярен в съвременния интернет. Въпреки това, вдясно е по-малък, тъй като се очаква, че IPv6 ще бъде по-популярен в IoT.
Не всички протоколи са показани.
Най-много изменения ще настъпят на каналния (нивото 1 и 2) и приложния слоеве (нивото 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).
Мрежово ниво
На мрежово ниво (Networking) в дългосрочен план ще доминира протоколът . Малко вероятно е, че IPv4 ще се използва, но той може да има определена роля в началните етапи. Повечето IoT-устройства за дома, например, интелигентни лампи, в момента използват IPv4.
Транспортно ниво
На транспортно ниво (Transport) в интернет и уеба доминира TCP. Той се използва както в HTTP, така и в много други популярни интернет протоколи (SMTP, POP3, IMAP4 и др.).
MQTT, който, както очаквам, ще стане един от основните протоколи на приложение за обмен на съобщения, в момента използва TCP.
Но в бъдеще, заради по-ниските им разходи, очаквам UDP да стане по-популярен за IoT. Вероятно ще се разпространи , работещ върху UDP. Вижте статията за сравнение .
Приложно ниво и протоколи за обмен на съобщения
Важно е да знаете характеристиките на протоколите IoT:
Скорост — количество предавани данни в секунда.
Задръжка — времето, необходимо за предаване на съобщение.
Консумация на енергия.
Сигурност.
Наличие на софтуерни средства.
В момента на това ниво активно се използват два основни протокола: HTTP и MQTT.
HTTP е вероятно най-известният протокол на това ниво, на който се основава уеба (WWW). Той все още ще играе важна роля за IoT, тъй като се използва за REST API — основният механизъм за взаимодействие между уеб приложения и услуги. Въпреки това, поради високите си разходи, HTTP едва ли ще стане основен протокол за IoT, макар че все пак ще бъде широко използван в интернет.
MQTT (Message Queuing Telemetry Transport) стана основен протокол за обмен на съобщения в IoT, благодарение на своята лекота и простота за използване. Вижте статията (Въведение в MQTT за начинаещи).
Сравнение на HTTP и MQTT за IoT
MQTT бързо става де факто стандарт за IoT приложения. Това се дължи на лекотата и скоростта му в сравнение с HTTP и че е протокол "един към много", а не "един към един" (HTTP).
Много съвременни уеб приложения биха с радост използвали MQTT вместо HTTP, ако той беше наличен по време на тяхното разработване.
Добър пример е изпращането на информация на множество клиенти, например за пристиганията и заминаванията на влакове / автобуси / самолети. В този сценарий протоколът „един-к-един“ като HTTP носи големи разходи и създава голямо натоварване на уеб сървърите. Мащабирането на тези уеб сървъри може да бъде затруднено. С MQTT клиентите се свързват с брокера, който лесно може да бъде добавен за балансиране на натоварването. Вижте това ръководство с видео и статията .
Други протоколи за обмен на съобщения
HTTP не е проектиран за IoT приложения, но, както вече беше споменато, той ще продължи да се използва широко за известно време поради широкото си приложение в .
Почти всички IoT платформи поддържат както HTTP, така и MQTT.
Обаче има и други протоколи, които си струва да се разгледат.
Протоколи
— (Message Queuing Telemetry Transport). Използва TCP/IP. За модел „издател-подписчик“ е необходим брокер на съобщения.
— (Advanced Message Queuing Protocol). Използва TCP/IP. Модели „издател-подписчик“ и „точка-точка“.
— (Constrained Application Protocol). Използва UDP. Специално проектиран за IoT, използва модел на искане-отговор, както в HTTP. .
— (Data Distribution Service)
В тази основните протоколи и техните приложения. Изводът от тази статия е, че IoT ще използва набор от протоколи, в зависимост от предвиденото им приложение.
Обаче, ако се огледате назад, в ранните години на съществуването на Интернет, протоколът HTTP, който по-късно стана доминиращ, беше само един от многото протоколи.
Въпреки че HTTP първоначално не е бил замислен за предаване на файлове и електронна поща, днес се използва и за двете.
Очаквам, че в IoT с протоколите за обмен на съобщения ще се случи същото: повечето услуги ще използват един доминиращ протокол.
По-долу са графиките на Google Trends, показващи как се е изменяла популярността на MQTT, COAP и AMQP през последните години.
Преглед на Google Trends

Подкрепа на протоколите по платформи
— MQTT, AMQP, HTTP и HTTPS
— MQTT, HTTPS, MQTT над websockets
IBM Bluemix – MQTT, HTTPS, MQTT
— MQTT, HTTPS, MQTT, AMQP
Резюме
Най-много изменения ще настъпят на каналния (нивото 1 и 2) и приложния слоеве (нивото 4).
Мрежовия и транспортния слоеве вероятно ще останат непроменени.
На приложенческо ниво компонентите на IoT ще използват протоколи за обмен на съобщения. Въпреки че все още сме в ранния етап на развитие на IoT, е напълно възможно да се откроят един или, може би, два протокола за обмен на съобщения.
През последните години MQTT стана най-популярният и именно на него в момента се фокусирам на този сайт.
HTTP също така ще продължи да се използва, тъй като вече е добре интегриран в съществуващите IoT платформи.
С това завършвам. Приглашаваме ви да се запишете за безплатен демонстрационен урок по темата .
Прочетете още:
Източник: habr.com
