Oversigt over netværks- og meddelelsesprotokoller til IoT
Hej Khabrovites! Ruslands første online kursus IoT-udvikler lanceres i OTUS i oktober. Tilmelding til kurset er åben lige nu, i forbindelse med dette deler vi fortsat brugbare materialer med dig.
Internet of Things (IoT, Internet of Things) vil blive bygget oven på den eksisterende netværksinfrastruktur, teknologier og protokoller, der i øjeblikket bruges i hjem/kontorer og internettet, og vil tilbyde meget mere.
Formålet med denne vejledning er at give et kort overblik over netværk og applikationsprotokoller til IoT.
TCP/IP bruger en fire-lags model med specifikke protokoller på hvert lag. Cm. at forstå TCP/IP 4-lagsmodellen (vi forstår firelagsmodellen af TCP / IP).
Diagrammet nedenfor viser en sammenligning af de protokoller, der i øjeblikket er i brug, og dem, der mest sandsynligt vil blive brugt til IoT.
Diagramnoter:
Skriftstørrelsen angiver protokollens popularitet. For eksempel til venstre er IPv4 større, da det er meget mere populært på det moderne internet. Den er dog mindre til højre, da IPv6 forventes at være mere populær i IoT.
Ikke alle protokoller vises.
De fleste af ændringerne er på kanalniveau (niveau 1 og 2) og applikationsniveau (niveau 4).
Netværket og transportlagene vil sandsynligvis forblive uændrede.
Linklagsprotokoller
På datalinkniveau (Data Link) skal du forbinde enheder med hinanden. De kan være både tætte, f.eks. i lokale netværk (lokale netværk) og i stor afstand fra hinanden: i byer (storbynetværk) og globale netværk (videområdenetværk).
I øjeblikket, på dette niveau, bruger hjemme- og kontornetværk (LAN'er) Ethernet og Wi-Fi, og mobile (WAN'er) bruger 3G / 4G. Mange IoT-enheder har dog lavt strømforbrug, såsom sensorer, og er kun drevet af batterier. I disse tilfælde er Ethernet ikke egnet, men lavstrøms Wi-Fi og lavstrøms Bluetooth kan bruges.
Mens eksisterende trådløse teknologier (Wi-Fi, Bluetooth, 3G/4G) fortsat vil blive brugt til at forbinde disse enheder, er det også værd at se på nye teknologier, der er specielt designet til IoT-applikationer, der sandsynligvis vil vokse i popularitet.
På netværkslaget (Networking) vil protokollen dominere på længere sigt IPv6. Det er usandsynligt, at IPv4 vil blive brugt, men det kan spille en rolle i de tidlige stadier. De fleste IoT-enheder til hjemmet, såsom smarte pærer, bruger i øjeblikket IPv4.
transportlag
På transportlaget (Transport) er internettet og nettet domineret af TCP. Det bruges i både HTTP og mange andre populære internetprotokoller (SMTP, POP3, IMAP4 osv.).
MQTT, som jeg forventer vil blive en af de vigtigste applikationslagsprotokoller til meddelelser, bruger i øjeblikket TCP.
Men i fremtiden, på grund af lavere overhead, forventer jeg, at UDP bliver mere populær for IoT. Formentlig mere udbredt MQTT-SN, kører over UDP. Se sammenligningsartikel TCP vs UDP .
Applikationslag og meddelelsesprotokoller
Vigtige egenskaber for IoT-protokoller:
Hastighed - mængden af data, der overføres pr. sekund.
Latency er den tid, det tager at sende en besked.
Strømforbrug.
Sikkerhed.
Tilgængelighed af software.
I øjeblikket bruges to hovedprotokoller aktivt på dette niveau: HTTP og MQTT.
HTTP er sandsynligvis den mest kendte protokol på dette niveau, der ligger til grund for internettet (WWW). Det vil fortsat være vigtigt for IoT, da det bruges til REST API - hovedmekanismen for interaktion mellem webapplikationer og tjenester. På grund af høje omkostninger er det dog usandsynligt, at HTTP bliver den vigtigste IoT-protokol, selvom den stadig vil blive meget brugt på internettet.
MQTT (Message Queuing Telemetry Transport) er blevet den vigtigste meddelelsesprotokol i IoT på grund af dens lethed og brugervenlighed. Se artiklen Introduktion til MQTT for begyndere (Introduktion til MQTT for begyndere).
Sammenligning af HTTP og MQTT til IoT
MQTT er hurtigt ved at blive de facto-standarden for IoT-applikationer. Dette skyldes dens lethed og hastighed sammenlignet med HTTP og det faktum, at det er en en-til-mange-protokol frem for en-til-en (HTTP).
Mange moderne webapplikationer ville med glæde bruge MQTT i stedet for HTTP, hvis det var tilgængeligt på tidspunktet for deres udvikling.
Et godt eksempel er at sende information til mange kunder, såsom ankomster og afgange af tog/busser/fly. I dette scenarie har en en-til-en protokol som HTTP en masse overhead og belaster webservere meget. Det kan være svært at skalere disse webservere. Med MQTT forbinder klienter sig med en mægler, som nemt kan tilføjes til belastningsbalancering. Se video tutorial om det Genudgiv HTML-data over MQTT (eksempel på flyankomster) og artikel MQTT vs HTTP til IOT.
Andre meddelelsesprotokoller
HTTP var ikke designet til IoT-applikationer, men som nævnt vil det blive meget brugt i nogen tid på grund af dets udbredte brug i API.
Næsten alle IoT-platforme understøtter både HTTP og MQTT.
Der er dog andre protokoller, der er værd at overveje.
protokoller
MQTT - (Message Queuing Telemetri Transport). Bruger TCP/IP. Udgiv-abonner-modellen kræver en meddelelsesmægler.
AMQP - (Advanced Message Queuing Protocol). Bruger TCP/IP. Publisher-Subscriber og Point-to-Point-modeller.
COAP - (Constrained Application Protocol). Bruger UDP. Designet specifikt til IoT, bruger anmodning-svar-modellen som i HTTP. RFC 7252.
Heri artiklen hovedprotokollerne og deres anvendelser tages i betragtning. Konklusionen af denne artikel er, at IoT vil bruge et sæt protokoller, afhængigt af deres tilsigtede brug.
Men set i bakspejlet, i de tidlige år af internettet, var HTTP-protokollen, der ville blive dominerende, blot en af mange protokoller.
Selvom HTTP ikke oprindeligt blev udtænkt til fil- og e-mail-overførsel, bruges det i dag til begge dele.
Jeg forventer, at det samme sker med meddelelsesprotokoller i IoT: de fleste tjenester vil bruge én overvejende protokol.
Nedenfor er Google Trends-diagrammer, der viser, hvordan populariteten af MQTT, COAP og AMQP har ændret sig i løbet af de sidste par år.
De fleste af ændringerne er på kanalniveau (niveau 1 og 2) og applikationsniveau (niveau 4).
Netværket og transportlagene vil sandsynligvis forblive uændrede.
På applikationslaget vil IoT-komponenter bruge meddelelsesprotokoller. Selvom vi stadig er på et tidligt stadium i IoT-udviklingen, er det sandsynligt, at en eller måske to meddelelsesprotokoller vil skille sig ud.
I løbet af de sidste par år er MQTT blevet det mest populære, og det er på det, jeg nu fokuserer på denne side.
HTTP vil også fortsat blive brugt, da det allerede er godt indbygget i eksisterende IoT-platforme.