Przegląd protokołów sieciowych i protokołów komunikacyjnych dla IoT

Cześć, użytkownicy Habr! Pierwszy w Rosji kurs online dla programistów IoT rozpoczyna się w OTUS już w październiku. Obecnie trwa rekrutacja na kurs, więc nadal dzielimy się z Wami przydatnymi materiałami.

Przegląd protokołów sieciowych i protokołów komunikacyjnych dla IoT

Internet rzeczy (IoT, Internet of Things) będzie oparty na istniejącej infrastruktury sieciowej, technologiach i protokołach, wykorzystywanych obecnie w domach i biurach oraz w Internecie, oferując wiele innych możliwości.

Celem tego przewodnika jest krótki przegląd protokołów sieciowych i aplikacyjnych dla IoT.

Uwaga. Powinniście mieć podstawową wiedzę o technologiach sieciowych.

Sieci IoT

IoT będzie działać w istniejących sieciach TCP/IP.

TCP/IP używa modelu czterowarstwowego z określonymi protokołami na każdym poziomie. Patrz: understanding the TCP/IP 4 layer model (rozumienie czterowarstwowego modelu TCP/IP).

Na poniższym diagramie przedstawiono porównanie protokołów, które są obecnie używane, oraz tych, które prawdopodobnie będą wykorzystywane w IoT.

Przegląd protokołów sieciowych i protokołów komunikacyjnych dla IoT

Uwagi do diagramu:

  1. Rozmiar czcionki odzwierciedla popularność protokołu. Na przykład z lewej strony IPv4 jest większy, ponieważ jest znacznie bardziej popularny w współczesnym Internecie. Jednak z prawej strony jest mniejszy, ponieważ oczekuje się, że IPv6 będzie bardziej popularny w IoT.

  2. Nie pokazano wszystkich protokołów.

  3. Najwięcej zmian nastąpi na poziomie łącza (poziomy 1 i 2) oraz poziomie aplikacji (poziom 4).

  4. Poziomy sieciowy i transportowy prawdopodobnie pozostaną niezmienione.

Protokoły na poziomie łącza

Na poziomie łącza (Data Link) musisz połączyć urządzenia ze sobą. Mogą one być blisko siebie, na przykład w sieciach lokalnych (local networks), lub dalej od siebie: w sieciach miejskich (metropolitan area networks) i sieciach rozległych (wide area networks).

Obecnie na tym poziomie w sieciach domowych i biurowych (LAN) używane są Ethernet i Wi-Fi, a w sieciach mobilnych (WAN) – 3G/4G. Jednak wiele urządzeń IoT jest niskomocowych, na przykład czujniki, i jest zasilanych tylko z baterii. W takich przypadkach Ethernet nie jest odpowiedni, ale można używać niskomocowego Wi-Fi i niskomocowego Bluetooth.

Chociaż do podłączenia tych urządzeń wciąż będą wykorzystywane istniejące technologie bezprzewodowe (Wi-Fi, Bluetooth, 3G/4G), warto również zwrócić uwagę na nowe technologie, specjalnie zaprojektowane dla aplikacji IoT, których popularność prawdopodobnie będzie rosła.

Wśród nich:

  • BLE – Bluetooth Low Energy

  • LoRaWAN – Long Range WAN

  • SigFox

  • LTE-M

Szczegóły opisano w artykule Przegląd bezprzewodowych technologii IoT (przegląd technologii bezprzewodowych IoT).

Poziom sieciowy

Na poziomie sieciowym (Networking) w dłuższej perspektywie dominować będzie protokół IPv6. Mało prawdopodobne, aby IPV4 był powszechnie używany, ale może odegrać pewną rolę na wczesnych etapach. Większość urządzeń IoT do domu, takich jak inteligentne żarówki, obecnie korzysta z IPV4.

Poziom transportowy 

Na poziomie transportowym (Transport) w Internecie i w sieci dominuje TCP. Jest on używany zarówno w HTTP, jak i wielu innych popularnych protokołach internetowych (SMTP, POP3, IMAP4 itp.).

MQTT, który, jak przewiduję, stanie się jednym z głównych protokołów poziomu aplikacji dla wymiany wiadomości, aktualnie stosuje TCP.

Jednak w przyszłości, z powodu niższych kosztów eksploatacji, przewiduję, że UDP stanie się bardziej popularny w IoT. Prawdopodobnie zyska na znaczeniu MQTT-SN, działający na UDP. Zobacz artykuł o porównaniu TCP vs UDP .

Poziom aplikacji i protokoły wymiany wiadomości

Ważne cechy protokołów IoT:

  • Prędkość — ilość przesyłanych danych na sekundę.

  • Opóźnienie — czas potrzebny na przesłanie wiadomości.

  • Zużycie energii.

  • Bezpieczeństwo.

  • Dostępność narzędzi programowych.

Obecnie na tym poziomie aktywnie używane są dwa główne protokoły: HTTP i MQTT.

HTTP jest prawdopodobnie najbardziej znanym protokołem tego poziomu, podstawą sieci (WWW). Nadal będzie miał istotne znaczenie dla IoT, ponieważ jest wykorzystywany w REST API — głównym mechanizmie komunikacji aplikacji i usług webowych. Jednak ze względu na wysokie koszty, HTTP raczej nie stanie się głównym protokołem IoT, choć nadal będzie szeroko stosowane w Internecie.

MQTT (Message Queuing Telemetry Transport) stał się głównym protokołem wymiany wiadomości w IoT, dzięki swojej prostocie i lekkości. Zobacz artykuł Introduction to MQTT for beginners (Wprowadzenie do MQTT dla początkujących).

Porównanie HTTP i MQTT dla IoT

MQTT szybko staje się de facto standardem dla aplikacji IoT. Dzieje się tak ze względu na jego lekkość i szybkość w porównaniu do HTTP oraz to, że jest protokołem „jeden do wielu”, a nie „jeden do jednego” (HTTP).

Wiele nowoczesnych aplikacji internetowych chętnie skorzystałoby z MQTT zamiast HTTP, gdyby był dostępny w momencie ich tworzenia.

Dobrym przykładem jest przekazywanie informacji do wielu klientów, na przykład o przyjazdach i odjazdach pociągów / autobusów / samolotów. W tym scenariuszu protokół „jeden-do-jednego”, taki jak HTTP, ma duże narzuty i tworzy dużą obciążenie dla serwerów WWW. Skalowanie tych serwerów może być trudne. W przypadku MQTT klienci łączą się z brokerem, którego łatwo można dodać do równoważenia obciążenia. Zobacz ten samouczek z filmem Publikowanie danych HTML przez MQTT (Przykład przyjazdów lotów) i artykuł MQTT vs HTTP dla IoT.

Inne protokoły wymiany wiadomości

HTTP nie został zaprojektowany dla aplikacji IoT, ale, jak już wspomniano, będzie szeroko używany przez jakiś czas dzięki swojemu powszechnemu zastosowaniu w API.

Prawie wszystkie platformy IoT wspierają zarówno HTTP, jak i MQTT.

Istnieją jednak także inne protokoły, które warto rozważyć.

Protokół

  • MQTT — (Message Queuing Telemetry Transport). Używa TCP/IP. W modelu „publish-subscribe” wymagany jest broker wiadomości.

  • AMQP — (Advanced Message Queuing Protocol). Używa TCP/IP. Modele „publish-subscribe” oraz „point-to-point”.

  • COAP — (Constrained Application Protocol). Używa UDP. Opracowany specjalnie dla IoT, wykorzystuje model zapytania-odpowiedzi jak w HTTP. RFC 7252.

  • DDS — (Data Distribution Service) 

W tej artykuł omawiane są podstawowe protokoły i ich zastosowania. Podsumowanie tego artykułu jest takie, że IoT będzie korzystać z zestawu protokołów, w zależności od ich zamierzonego zastosowania.

Jednak patrząc wstecz, w pierwszych latach istnienia Internetu protokół HTTP, który później stał się dominującym, był tylko jednym z wielu protokołów.

Mimo że HTTP nie został pierwotnie zaprojektowany do przesyłania plików i e-maili, dziś jest używany zarówno do tego, jak i do tego.

Oczekuję, że w IoT z protokołami wymiany wiadomości wydarzy się to samo: większość usług będzie korzystać z jednego dominującego protokołu.

Poniżej przedstawiono wykresy Google Trends, które pokazują, jak zmieniała się popularność MQTT, COAP i AMQP w ciągu ostatnich kilku lat.

Przegląd Google Trends 

Przegląd protokołów sieciowych i protokołów komunikacyjnych dla IoT

Wsparcie protokołów na platformach

  • Microsoft Azure — MQTT, AMQP, HTTP i HTTPS

  • AWS — MQTT, HTTPS, MQTT przez websockets

  • IBM Bluemix – MQTT, HTTPS, MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Podsumowanie

Najwięcej zmian nastąpi na poziomie łącza (poziomy 1 i 2) oraz poziomie aplikacji (poziom 4).

Poziomy sieciowy i transportowy prawdopodobnie pozostaną niezmienione.

Na poziomie aplikacyjnym komponenty IoT będą wykorzystywać protokoły wymiany wiadomości. Chociaż nadal jesteśmy na wczesnym etapie rozwoju IoT, istnieje duże prawdopodobieństwo, że wyróżni się jeden lub dwa protokoły wymiany wiadomości.

W ciągu ostatnich kilku lat MQTT stał się najpopularniejszy, na czym aktualnie skupiam się na tej stronie.

HTTP również nadal będzie wykorzystywane, ponieważ jest już dobrze zintegrowane z istniejącymi platformami IoT.

Na tym kończymy. Zachęcamy do zapisania się na bezpłatną lekcję demo na temat „Chatbot dla szybkich poleceń dla urządzeń”.

Czytaj dalej:

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster