Omówienie protokołów sieciowych i komunikacyjnych dla IoT

Witajcie Chabrowicze! Pierwszy w Rosji kurs internetowy dla programistów IoT startuje w OTUS w październiku. Zapisy na kurs są właśnie otwarte, w związku z czym nadal dzielimy się z Państwem przydatnymi materiałami.

Omówienie protokołów sieciowych i komunikacyjnych dla IoT

Internet Rzeczy (IoT, Internet of Things) będzie budowany na istniejącej infrastrukturze sieciowej, technologiach i protokołach stosowanych obecnie w domach/biurach oraz Internecie i będzie oferował znacznie więcej.

Celem tego przewodnika jest przedstawienie krótkiego omówienia protokołów sieciowych i aplikacji dla IoT.

Notatka. Musisz mieć wiedzę podstawy technologii sieciowych.

Sieci IoT

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

TCP/IP wykorzystuje czterowarstwowy model z określonymi protokołami w każdej warstwie. Cm. zrozumienie 4-warstwowego modelu TCP/IP (rozumiemy czterowarstwowy model TCP/IP).

Poniższy diagram przedstawia porównanie obecnie używanych protokołów z tymi, które najprawdopodobniej będą używane w IoT.

Omówienie protokołów sieciowych i komunikacyjnych dla IoT

Notatki do wykresu:

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

  2. Nie wszystkie protokoły są wyświetlane.

  3. Najwięcej zmian dotyczy kanałów (poziomy 1 i 2) oraz aplikacji (poziom 4).

  4. Warstwa sieciowa i transportowa prawdopodobnie pozostaną niezmienione.

Protokoły warstwy łącza

Na poziomie łącza danych (Łącze danych) należy połączyć ze sobą urządzenia. Mogą znajdować się zarówno blisko siebie, na przykład w sieciach lokalnych (sieci lokalne), jak iw dużej odległości od siebie: w sieciach miejskich (sieci metropolitalne) i globalnych (sieci rozległe).

Obecnie na tym poziomie sieci domowe i biurowe (LAN) wykorzystują Ethernet i Wi-Fi, a mobilne (WAN) wykorzystują 3G/4G. Jednak wiele urządzeń IoT ma małą moc, na przykład czujniki, i jest zasilanych tylko bateriami. W takich przypadkach Ethernet nie jest odpowiedni, ale można użyć Wi-Fi o niskim poborze mocy i Bluetooth o niskim poborze mocy.

Podczas gdy istniejące technologie bezprzewodowe (Wi-Fi, Bluetooth, 3G/4G) będą nadal wykorzystywane do łączenia tych urządzeń, warto również przyjrzeć się nowym technologiom zaprojektowanym specjalnie dla aplikacji IoT, których popularność prawdopodobnie wzrośnie.

Wśród nich:

  • BLE – Bluetooth o niskim zużyciu energii

  • LoRaWAN — sieć WAN dalekiego zasięgu

  • Sig Fox

  • LTE-M

Zostały one bardziej szczegółowo opisane w artykule. Przegląd technologii bezprzewodowych IOT (przegląd bezprzewodowych technologii IoT).

Warstwa sieci

W warstwie sieciowej (Networking) protokół będzie dominował na dłuższą metę IPv6. Jest mało prawdopodobne, aby IPv4 był używany, ale może odgrywać pewną rolę na wczesnych etapach. Większość domowych urządzeń IoT, takich jak inteligentne żarówki, korzysta obecnie z protokołu IPv4.

Warstwa transportowa 

W warstwie transportowej (Transport) Internet i sieć są zdominowane przez TCP. Jest używany zarówno w protokole HTTP, jak i wielu innych popularnych protokołach internetowych (SMTP, POP3, IMAP4 itp.).

MQTT, który, jak się spodziewam, stanie się jednym z głównych protokołów warstwy aplikacji do przesyłania wiadomości, obecnie korzysta z protokołu TCP.

Jednak w przyszłości, ze względu na niższe koszty ogólne, spodziewam się, że UDP stanie się bardziej popularny w IoT. Chyba bardziej rozpowszechniony MQTT-SN, działający przez UDP. Zobacz artykuł porównawczy TCP a UDP .

Warstwa aplikacji i protokoły przesyłania komunikatów

Ważne cechy protokołów IoT:

  • Szybkość – ilość przesyłanych danych na sekundę.

  • Opóźnienie to czas potrzebny do wysłania wiadomości.

  • Zużycie energii

  • Bezpieczeństwa.

  • Dostępność oprogramowania.

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

HTTP jest prawdopodobnie najbardziej znanym protokołem tego poziomu leżącym u podstaw sieci (WWW). Nadal będzie ważny dla IoT, ponieważ jest używany w REST API – głównym mechanizmie interakcji pomiędzy aplikacjami i usługami internetowymi. Jednak ze względu na wysoki narzut HTTP raczej nie stanie się głównym protokołem IoT, chociaż nadal będzie szeroko stosowany w Internecie.

MQTT (Message Queuing Telemetry Transport) stał się głównym protokołem przesyłania wiadomości w IoT ze względu na swoją lekkość i łatwość użycia. Zobacz artykuł Wprowadzenie do MQTT dla początkujących (Wprowadzenie do MQTT dla początkujących).

Porównanie HTTP i MQTT dla IoT

MQTT szybko staje się de facto standardem dla aplikacji IoT. Wynika to z jego lekkości i szybkości w porównaniu z HTTP oraz faktu, że jest to protokół jeden-do-wielu, a nie jeden-do-jednego (HTTP).

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

Dobrym przykładem jest wysyłanie informacji do wielu klientów, takich jak przyjazdy i odjazdy pociągów/autobusów/samolotów. W tym scenariuszu protokół jeden-do-jednego, taki jak HTTP, ma duże narzuty i powoduje duże obciążenie serwerów WWW. Skalowanie tych serwerów WWW może być trudne. Dzięki MQTT klienci łączą się z brokerem, którego można łatwo dodać w celu równoważenia obciążenia. Obejrzyj samouczek wideo na ten temat Ponownie opublikuj dane HTML przez MQTT (przykład przylotów) i artykuł MQTT vs HTTP dla IOT.

Inne protokoły przesyłania wiadomości

HTTP nie został zaprojektowany dla aplikacji IoT, ale jak wspomniano, będzie szeroko stosowany przez jakiś czas ze względu na jego szerokie zastosowanie w API.

Prawie wszystkie platformy IoT obsługują zarówno HTTP, jak i MQTT.

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

Protokoły

  • MQTT - (Message Queuing Telemetry Transport). Używa protokołu TCP/IP. Model publikowania i subskrybowania wymaga brokera komunikatów.

  • AMQP - (Zaawansowany protokół kolejkowania wiadomości). Używa protokołu TCP/IP. Modele wydawca-subskrybent i punkt-punkt.

  • COAP - (Ograniczony protokół aplikacji). Używa protokołu UDP. Zaprojektowany specjalnie dla IoT, wykorzystuje model żądanie-odpowiedź, jak w HTTP. RFC 7252.

  • DDS - (Usługa dystrybucji danych) 

W tym Artykuł rozważane są główne protokoły i ich zastosowania. Wniosek z tego artykułu jest taki, że IoT będzie wykorzystywać zestaw protokołów, w zależności od ich przeznaczenia.

Jednak patrząc wstecz, we wczesnych latach Internetu protokół HTTP, który stał się dominujący, był tylko jednym z wielu protokołów.

Chociaż protokół HTTP nie był pierwotnie przeznaczony do przesyłania plików i wiadomości e-mail, dziś jest używany do obu tych celów.

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

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

Omówienie Trendów Google 

Omówienie protokołów sieciowych i komunikacyjnych dla IoT

Obsługa protokołów przez platformę

Streszczenie

Najwięcej zmian dotyczy kanałów (poziomy 1 i 2) oraz aplikacji (poziom 4).

Warstwa sieciowa i transportowa prawdopodobnie pozostaną niezmienione.

W warstwie aplikacji komponenty IoT będą korzystać z protokołów komunikacyjnych. Chociaż wciąż jesteśmy na wczesnym etapie rozwoju IoT, prawdopodobnie jeden lub dwa protokoły przesyłania wiadomości będą się wyróżniać.

W ciągu ostatnich kilku lat MQTT stał się najbardziej popularny i to na nim skupiam się teraz na tej stronie.

HTTP będzie również nadal używany, ponieważ jest już dobrze wbudowany w istniejące platformy IoT.

To wszystko. Zapraszamy do zapisów na bezpłatną lekcję pokazową na ten temat "Chatbot do szybkich poleceń do urządzenia".

Czytaj więcej:

Źródło: www.habr.com

Dodaj komentarz