Pangkalahatang-ideya ng Networking at Messaging Protocols para sa IoT

Kumusta, mga Khabrovites! Ang unang online na kursong IoT developer ng Russia ilulunsad sa OTUS sa Oktubre. Ang pagpapatala para sa kurso ay bukas ngayon, na may kaugnayan kung saan patuloy kaming nagbabahagi ng mga kapaki-pakinabang na materyales sa iyo.

Pangkalahatang-ideya ng Networking at Messaging Protocols para sa IoT

Ang Internet of Things (IoT, Internet of Things) ay itatayo sa ibabaw ng umiiral na imprastraktura ng network, mga teknolohiya at protocol na kasalukuyang ginagamit sa mga tahanan/opisina at sa Internet, at mag-aalok ng higit pa.

Ang layunin ng gabay na ito ay magbigay ng maikling pangkalahatang-ideya ng networking at application protocol para sa IoT.

Tandaan. Dapat may kaalaman ka mga pangunahing kaalaman sa mga teknolohiya ng network.

Mga network ng IoT

Ang IoT ay tatakbo sa mga kasalukuyang TCP/IP network.

Gumagamit ang TCP/IP ng modelong may apat na layer na may mga partikular na protocol sa bawat layer. Cm. pag-unawa sa TCP/IP 4 layer model (naiintindihan namin ang apat na layer na modelo ng TCP / IP).

Ang diagram sa ibaba ay nagpapakita ng paghahambing ng mga protocol na kasalukuyang ginagamit at ang mga pinaka-malamang na gagamitin para sa IoT.

Pangkalahatang-ideya ng Networking at Messaging Protocols para sa IoT

Mga tala sa tsart:

  1. Ang laki ng font ay nagpapahiwatig ng katanyagan ng protocol. Halimbawa, sa kaliwa, mas malaki ang IPv4, dahil mas sikat ito sa modernong Internet. Gayunpaman, mas maliit ito sa kanan dahil ang IPv6 ay inaasahang magiging mas sikat sa IoT.

  2. Hindi lahat ng protocol ay ipinapakita.

  3. Karamihan sa lahat ng mga pagbabago ay nasa channel (mga antas 1 at 2) at mga antas ng aplikasyon (antas 4).

  4. Ang network at transport layer ay malamang na manatiling hindi nagbabago.

I-link ang mga protocol ng layer

Sa antas ng link ng data (Data Link), kailangan mong ikonekta ang mga device sa isa't isa. Maaari silang maging parehong malapit, halimbawa, sa mga lokal na network (mga lokal na network) at sa isang malaking distansya mula sa isa't isa: sa mga lunsod o bayan (metropolitan area network) at mga pandaigdigang network (malawak na mga network ng lugar).

Sa kasalukuyan, sa antas na ito, ang mga network sa bahay at opisina (LAN) ay gumagamit ng Ethernet at Wi-Fi, at ang mga mobile network (WAN) ay gumagamit ng 3G / 4G. Gayunpaman, maraming IoT device ang mababa ang power, gaya ng mga sensor, at pinapagana lang ng mga baterya. Sa mga kasong ito, hindi angkop ang Ethernet, ngunit maaaring gamitin ang low powered Wi-Fi at low powered Bluetooth.

Habang ang mga kasalukuyang wireless na teknolohiya (Wi-Fi, Bluetooth, 3G/4G) ay patuloy na gagamitin para ikonekta ang mga device na ito, sulit din na tingnan ang mga bagong teknolohiya na partikular na idinisenyo para sa mga IoT application na malamang na maging popular.

Kabilang dito ang:

  • BLE – Mababang Enerhiya ng Bluetooth

  • LoRaWAN - Long Range WAN

  • SigFox

  • LTE-M

Ang mga ito ay inilarawan nang mas detalyado sa artikulo. Isang pangkalahatang-ideya ng mga teknolohiyang wireless ng IOT (pangkalahatang-ideya ng mga wireless IoT na teknolohiya).

layer ng network

Sa layer ng network (Networking), mangingibabaw ang protocol sa katagalan IPv6. Hindi malamang na gagamitin ang IPv4, ngunit maaari itong gumanap ng isang papel sa mga unang yugto. Karamihan sa mga home IoT device, gaya ng mga smart light bulbs, ay kasalukuyang gumagamit ng IPv4.

layer ng transportasyon 

Sa layer ng transportasyon (Transport), ang Internet at ang web ay pinangungunahan ng TCP. Ito ay ginagamit sa parehong HTTP at maraming iba pang sikat na Internet protocol (SMTP, POP3, IMAP4, atbp.).

Ang MQTT, na inaasahan kong maging isa sa mga pangunahing protocol ng layer ng application para sa pagmemensahe, ay kasalukuyang gumagamit ng TCP.

Gayunpaman, sa hinaharap, dahil sa mas mababang overhead, inaasahan kong magiging mas sikat ang UDP para sa IoT. Marahil ay mas malawak MQTT-SN, tumatakbo sa UDP. Tingnan ang paghahambing na artikulo TCP kumpara sa UDP .

Application layer at mga protocol ng pagmemensahe

Mga mahahalagang katangian para sa mga protocol ng IoT:

  • Bilis - ang dami ng data na inilipat bawat segundo.

  • Ang latency ay ang oras na kinakailangan upang magpadala ng mensahe.

  • Paggamit ng kuryente

  • Seguridad.

  • Availability ng software.

Sa kasalukuyan, dalawang pangunahing protocol ang aktibong ginagamit sa antas na ito: HTTP at MQTT.

Ang HTTP ay marahil ang pinakakilalang protocol ng antas na ito na pinagbabatayan ng web (WWW). Patuloy itong magiging mahalaga para sa IoT, dahil ginagamit ito para sa REST API - ang pangunahing mekanismo para sa pakikipag-ugnayan sa pagitan ng mga web application at serbisyo. Gayunpaman, dahil sa mataas na overhead, malamang na hindi maging pangunahing IoT protocol ang HTTP, bagama't malawak pa rin itong gagamitin sa Internet.

Ang MQTT (Message Queuing Telemetry Transport) ay naging pangunahing protocol ng pagmemensahe sa IoT dahil sa gaan at kadalian ng paggamit nito. Tingnan ang artikulo Panimula sa MQTT para sa mga nagsisimula (Panimula sa MQTT para sa mga nagsisimula).

Paghahambing ng HTTP at MQTT para sa IoT

Ang MQTT ay mabilis na nagiging de facto na pamantayan para sa mga aplikasyon ng IoT. Ito ay dahil sa gaan at bilis nito kumpara sa HTTP at ang katotohanan na isa-sa-maraming protocol ito sa halip na one-to-one (HTTP).

Maraming modernong web application ang masayang gagamit ng MQTT sa halip na HTTP kung magagamit ito sa panahon ng kanilang pag-unlad.

Ang isang magandang halimbawa ay ang pagpapadala ng impormasyon sa maraming kliyente, gaya ng pagdating at pag-alis ng mga tren/bus/eroplano. Sa sitwasyong ito, ang isang one-to-one na protocol tulad ng HTTP ay may maraming overhead at naglalagay ng maraming load sa mga web server. Maaaring mahirap i-scale ang mga web server na ito. Sa MQTT, kumonekta ang mga kliyente sa isang broker, na madaling maidagdag para sa pagbabalanse ng load. Panoorin ang video tutorial tungkol dito Muling i-publish ang HTML Data Over MQTT (Halimbawa ng Mga Pagdating ng Flight) at artikulo MQTT vs HTTP para sa IOT.

Iba pang mga protocol ng pagmemensahe

Ang HTTP ay hindi idinisenyo para sa mga application ng IoT, ngunit tulad ng nabanggit, ito ay malawakang gagamitin sa loob ng ilang panahon dahil sa malawakang paggamit nito sa API.

Halos lahat ng IoT platform ay sumusuporta sa HTTP at MQTT.

Gayunpaman, may iba pang mga protocol na dapat isaalang-alang.

Mga protocol

  • MQTT - (Mensahe Queuing Telemetry Transport). Gumagamit ng TCP/IP. Ang modelo ng pag-publish-subscribe ay nangangailangan ng isang broker ng mensahe.

  • AMQP - (Advanced Message Qeuing Protocol). Gumagamit ng TCP/IP. Publisher-Subscriber at Point-to-Point na mga Modelo.

  • COAP - (Constrained Application Protocol). Gumagamit ng UDP. Partikular na idinisenyo para sa IoT, ginagamit ang modelo ng pagtugon sa kahilingan tulad ng sa HTTP. RFC 7252.

  • DDS - (Serbisyo ng Pamamahagi ng Data) 

Dito sa Artikulo ang mga pangunahing protocol at ang kanilang mga aplikasyon ay isinasaalang-alang. Ang konklusyon ng artikulong ito ay ang IoT ay gagamit ng isang hanay ng mga protocol, depende sa kanilang nilalayon na paggamit.

Gayunpaman, sa pagbabalik-tanaw, sa mga unang taon ng Internet, ang HTTP protocol na magiging nangingibabaw ay isa lamang sa maraming protocol.

Bagama't ang HTTP ay hindi orihinal na ipinaglihi para sa paglilipat ng file at email, ngayon ay ginagamit na ito para sa pareho.

Inaasahan ko ang parehong bagay na mangyayari sa mga protocol ng pagmemensahe sa IoT: karamihan sa mga serbisyo ay gagamit ng isang pangunahing protocol.

Nasa ibaba ang mga chart ng Google Trends na nagpapakita kung paano nagbago ang kasikatan ng MQTT, COAP at AMQP sa nakalipas na ilang taon.

Pangkalahatang-ideya ng Google Trends 

Pangkalahatang-ideya ng Networking at Messaging Protocols para sa IoT

Suporta sa protocol ayon sa platform

  • Microsoft Azure - MQTT, AMQP, HTTP at HTTPS

  • AWS - MQTT, HTTPS, MQTT sa mga websocket

  • IBM Bluemix - MQTT,HTTPS,MQTT

  • Thingworx β€” MQTT, HTTPS, MQTT, AMQP

Buod

Karamihan sa lahat ng mga pagbabago ay nasa channel (mga antas 1 at 2) at mga antas ng aplikasyon (antas 4).

Ang network at transport layer ay malamang na manatiling hindi nagbabago.

Sa layer ng application, ang mga bahagi ng IoT ay gagamit ng mga protocol sa pagmemensahe. Habang tayo ay nasa maagang yugto pa lamang sa pag-unlad ng IoT, malamang na isa o marahil dalawang protocol ng pagmemensahe ang lalabas.

Sa nakalipas na ilang taon, ang MQTT ay naging pinakasikat, at dito ako nakatutok ngayon sa site na ito.

Patuloy ding gagamitin ang HTTP dahil mahusay na itong binuo sa mga umiiral nang IoT platform.

Iyon lang. Inaanyayahan ka naming mag-sign up para sa isang libreng demo na aralin sa paksa "Chatbot para sa mabilis na mga utos sa device".

Magbasa pa:

Pinagmulan: www.habr.com

Magdagdag ng komento