Επισκόπηση των πρωτοκόλλων δικτύωσης και ανταλλαγής μηνυμάτων για το IoT

Γεια σου, Χαμπροβίτες! Το πρώτο διαδικτυακό μάθημα προγραμματιστή IoT στη Ρωσία κυκλοφορεί στο OTUS τον Οκτώβριο. Οι εγγραφές για το μάθημα είναι ανοιχτές αυτή τη στιγμή, σε σχέση με το οποίο συνεχίζουμε να μοιραζόμαστε χρήσιμο υλικό μαζί σας.

Επισκόπηση των πρωτοκόλλων δικτύωσης και ανταλλαγής μηνυμάτων για το IoT

Το Διαδίκτυο των Πραγμάτων (IoT, Internet of Things) θα χτιστεί πάνω από την υπάρχουσα δικτυακή υποδομή, τεχνολογίες και πρωτόκολλα που χρησιμοποιούνται επί του παρόντος σε σπίτια/γραφεία και στο Διαδίκτυο και θα προσφέρει πολλά περισσότερα.

Ο σκοπός αυτού του οδηγού είναι να παρέχει μια σύντομη επισκόπηση των πρωτοκόλλων δικτύωσης και εφαρμογών για το IoT.

Σημείωση. Πρέπει να έχεις γνώσεις βασικές τεχνολογίες δικτύου.

Δίκτυα IoT

Το IoT θα εκτελείται σε υπάρχοντα δίκτυα TCP/IP.

Το TCP/IP χρησιμοποιεί ένα μοντέλο τεσσάρων επιπέδων με συγκεκριμένα πρωτόκολλα σε κάθε επίπεδο. Εκ. κατανόηση του μοντέλου 4 επιπέδων TCP/IP (καταλαβαίνουμε το μοντέλο τεσσάρων επιπέδων του TCP / IP).

Το παρακάτω διάγραμμα δείχνει μια σύγκριση των πρωτοκόλλων που χρησιμοποιούνται αυτήν τη στιγμή και εκείνων που είναι πιο πιθανό να χρησιμοποιηθούν για το IoT.

Επισκόπηση των πρωτοκόλλων δικτύωσης και ανταλλαγής μηνυμάτων για το IoT

Σημειώσεις γραφήματος:

  1. Το μέγεθος της γραμματοσειράς υποδεικνύει τη δημοτικότητα του πρωτοκόλλου. Για παράδειγμα, στα αριστερά, το IPv4 είναι μεγαλύτερο, καθώς είναι πολύ πιο δημοφιλές στο σύγχρονο Διαδίκτυο. Ωστόσο, είναι μικρότερο στα δεξιά καθώς το IPv6 αναμένεται να είναι πιο δημοφιλές στο IoT.

  2. Δεν εμφανίζονται όλα τα πρωτόκολλα.

  3. Οι περισσότερες αλλαγές γίνονται σε επίπεδο καναλιού (επίπεδα 1 και 2) και σε επίπεδο εφαρμογής (επίπεδο 4).

  4. Τα επίπεδα δικτύου και μεταφοράς είναι πιθανό να παραμείνουν αμετάβλητα.

Πρωτόκολλα επιπέδου σύνδεσης

Σε επίπεδο σύνδεσης δεδομένων (Σύνδεσμος δεδομένων), πρέπει να συνδέσετε συσκευές μεταξύ τους. Μπορούν να είναι τόσο κοντά, για παράδειγμα, σε τοπικά δίκτυα (τοπικά δίκτυα) και σε μεγάλη απόσταση μεταξύ τους: σε αστικά (δίκτυα μητροπολιτικών περιοχών) και σε παγκόσμια δίκτυα (δίκτυα ευρείας περιοχής).

Επί του παρόντος, σε αυτό το επίπεδο, τα δίκτυα οικίας και γραφείου (LAN) χρησιμοποιούν Ethernet και Wi-Fi και τα κινητά (WAN) χρησιμοποιούν 3G / 4G. Ωστόσο, πολλές συσκευές IoT είναι χαμηλής ισχύος, όπως αισθητήρες, και τροφοδοτούνται μόνο από μπαταρίες. Σε αυτές τις περιπτώσεις, το Ethernet δεν είναι κατάλληλο, αλλά μπορούν να χρησιμοποιηθούν Wi-Fi χαμηλής κατανάλωσης και Bluetooth χαμηλής κατανάλωσης.

Ενώ οι υπάρχουσες ασύρματες τεχνολογίες (Wi-Fi, Bluetooth, 3G/4G) θα συνεχίσουν να χρησιμοποιούνται για τη σύνδεση αυτών των συσκευών, αξίζει επίσης να εξετάσουμε νέες τεχνολογίες ειδικά σχεδιασμένες για εφαρμογές IoT που είναι πιθανό να αυξηθούν σε δημοτικότητα.

Μεταξύ αυτών:

  • BLE – Bluetooth χαμηλής ενέργειας

  • LoRaWAN - Long Range WAN

  • SigFox

  • LTE-Μ

Περιγράφονται λεπτομερέστερα στο άρθρο. Μια επισκόπηση των ασύρματων τεχνολογιών IOT (επισκόπηση ασύρματων τεχνολογιών IoT).

επίπεδο δικτύου

Στο επίπεδο δικτύου (Networking), το πρωτόκολλο θα κυριαρχεί μακροπρόθεσμα IPv6. Είναι απίθανο να χρησιμοποιηθεί το IPv4, αλλά μπορεί να παίξει κάποιο ρόλο στα αρχικά στάδια. Οι περισσότερες οικιακές συσκευές IoT, όπως οι έξυπνοι λαμπτήρες, χρησιμοποιούν αυτήν τη στιγμή IPv4.

στρώμα μεταφοράς 

Στο επίπεδο μεταφοράς (Μεταφορές), το Διαδίκτυο και ο Ιστός κυριαρχούνται από το TCP. Χρησιμοποιείται τόσο σε HTTP όσο και σε πολλά άλλα δημοφιλή πρωτόκολλα Διαδικτύου (SMTP, POP3, IMAP4 κ.λπ.).

Το MQTT, το οποίο αναμένω να γίνει ένα από τα κύρια πρωτόκολλα επιπέδου εφαρμογής για ανταλλαγή μηνυμάτων, χρησιμοποιεί επί του παρόντος το TCP.

Ωστόσο, στο μέλλον, λόγω των χαμηλότερων γενικών εξόδων, αναμένω ότι το UDP θα γίνει πιο δημοφιλές για το IoT. Μάλλον πιο διαδεδομένο MQTT-SN, που τρέχει πάνω από το UDP. Δείτε το άρθρο σύγκρισης TCP έναντι UDP .

Επίπεδο εφαρμογής και πρωτόκολλα μηνυμάτων

Σημαντικά χαρακτηριστικά για τα πρωτόκολλα IoT:

  • Ταχύτητα - η ποσότητα των δεδομένων που μεταφέρονται ανά δευτερόλεπτο.

  • Η καθυστέρηση είναι ο χρόνος που χρειάζεται για να σταλεί ένα μήνυμα.

  • Κατανάλωση ισχύος

  • Ασφάλεια.

  • Διαθεσιμότητα λογισμικού.

Επί του παρόντος, δύο κύρια πρωτόκολλα χρησιμοποιούνται ενεργά σε αυτό το επίπεδο: HTTP και MQTT.

Το HTTP είναι ίσως το πιο γνωστό πρωτόκολλο αυτού του επιπέδου που βρίσκεται κάτω από το web (WWW). Θα συνεχίσει να είναι σημαντικό για το IoT, καθώς χρησιμοποιείται για το REST API - τον κύριο μηχανισμό αλληλεπίδρασης μεταξύ εφαρμογών και υπηρεσιών web. Ωστόσο, λόγω των υψηλών επιβαρύνσεων, το HTTP είναι απίθανο να γίνει το κύριο πρωτόκολλο IoT, αν και θα εξακολουθεί να χρησιμοποιείται ευρέως στο Διαδίκτυο.

Το MQTT (Message Queuing Telemetry Transport) έχει γίνει το κύριο πρωτόκολλο ανταλλαγής μηνυμάτων στο IoT λόγω της ελαφρότητας και της ευκολίας χρήσης του. Δείτε άρθρο Εισαγωγή στο MQTT για αρχάριους (Εισαγωγή στο MQTT για αρχάριους).

Σύγκριση HTTP και MQTT για IoT

Το MQTT γίνεται γρήγορα το de facto πρότυπο για εφαρμογές IoT. Αυτό οφείλεται στην ελαφρότητα και την ταχύτητά του σε σύγκριση με το HTTP και στο γεγονός ότι είναι πρωτόκολλο ένα προς πολλά και όχι ένα προς ένα (HTTP).

Πολλές σύγχρονες διαδικτυακές εφαρμογές θα χρησιμοποιούσαν ευχαρίστως το MQTT αντί για το HTTP, εάν ήταν διαθέσιμο τη στιγμή της ανάπτυξής τους.

Ένα καλό παράδειγμα είναι η αποστολή πληροφοριών σε πολλούς πελάτες, όπως αφίξεις και αναχωρήσεις τρένων/λεωφορείων/αεροπλάνων. Σε αυτό το σενάριο, ένα πρωτόκολλο one-to-one, όπως το HTTP, έχει πολλά γενικά έξοδα και επιβαρύνει πολύ τους διακομιστές Ιστού. Η κλιμάκωση αυτών των διακομιστών Ιστού μπορεί να είναι δύσκολη. Με το MQTT, οι πελάτες συνδέονται με έναν μεσίτη, ο οποίος μπορεί εύκολα να προστεθεί για εξισορρόπηση φορτίου. Παρακολουθήστε το εκπαιδευτικό βίντεο σχετικά με αυτό Αναδημοσίευση δεδομένων HTML μέσω MQTT (Παράδειγμα αφίξεων πτήσεων) και άρθρο MQTT vs HTTP για IOT.

Άλλα πρωτόκολλα ανταλλαγής μηνυμάτων

Το HTTP δεν σχεδιάστηκε για εφαρμογές IoT, αλλά όπως αναφέρθηκε, θα χρησιμοποιηθεί ευρέως για κάποιο χρονικό διάστημα λόγω της ευρείας χρήσης του σε API.

Σχεδόν όλες οι πλατφόρμες IoT υποστηρίζουν τόσο HTTP όσο και MQTT.

Ωστόσο, υπάρχουν και άλλα πρωτόκολλα που αξίζει να εξεταστούν.

Πρωτόκολλα

  • MQTT - (Μεταφορά τηλεμετρίας σε ουρά μηνυμάτων). Χρησιμοποιεί TCP/IP. Το μοντέλο δημοσίευσης-εγγραφής απαιτεί μεσίτη μηνυμάτων.

  • AMQP - (Πρωτόκολλο για προχωρημένους στην ουρά μηνυμάτων). Χρησιμοποιεί TCP/IP. Εκδότης-Συνδρομητής και Μοντέλα από σημείο σε σημείο.

  • ΚΑΠΑΚΙ - (Πρωτόκολλο Περιορισμένης Εφαρμογής). Χρησιμοποιεί UDP. Σχεδιασμένο ειδικά για IoT, χρησιμοποιεί το μοντέλο αίτησης-απόκρισης όπως στο HTTP. RFC 7252.

  • DDS - (Υπηρεσία διανομής δεδομένων) 

Σε αυτό άρθρο εξετάζονται τα κύρια πρωτόκολλα και οι εφαρμογές τους. Το συμπέρασμα αυτού του άρθρου είναι ότι το IoT θα χρησιμοποιήσει ένα σύνολο πρωτοκόλλων, ανάλογα με την προβλεπόμενη χρήση τους.

Ωστόσο, εκ των υστέρων, στα πρώτα χρόνια του Διαδικτύου, το πρωτόκολλο HTTP που θα γινόταν κυρίαρχο ήταν μόνο ένα από τα πολλά πρωτόκολλα.

Αν και το HTTP δεν σχεδιάστηκε αρχικά για μεταφορά αρχείων και email, σήμερα χρησιμοποιείται και για τα δύο.

Αναμένω ότι το ίδιο θα συμβεί με τα πρωτόκολλα ανταλλαγής μηνυμάτων στο IoT: οι περισσότερες υπηρεσίες θα χρησιμοποιούν ένα κυρίαρχο πρωτόκολλο.

Ακολουθούν γραφήματα του Google Trends που δείχνουν πώς έχει αλλάξει η δημοτικότητα των MQTT, COAP και AMQP τα τελευταία χρόνια.

Επισκόπηση του Google Trends 

Επισκόπηση των πρωτοκόλλων δικτύωσης και ανταλλαγής μηνυμάτων για το IoT

Υποστήριξη πρωτοκόλλου από πλατφόρμα

  • Η Microsoft Azure - MQTT, AMQP, HTTP και HTTPS

  • AWS - MQTT, HTTPS, MQTT μέσω διαδικτυακών υποδοχών

  • IBM Bluemix - MQTT,HTTPS,MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Περίληψη

Οι περισσότερες αλλαγές γίνονται σε επίπεδο καναλιού (επίπεδα 1 και 2) και σε επίπεδο εφαρμογής (επίπεδο 4).

Τα επίπεδα δικτύου και μεταφοράς είναι πιθανό να παραμείνουν αμετάβλητα.

Στο επίπεδο εφαρμογής, τα στοιχεία IoT θα χρησιμοποιούν πρωτόκολλα ανταλλαγής μηνυμάτων. Ενώ βρισκόμαστε ακόμη σε πρώιμο στάδιο ανάπτυξης του IoT, είναι πιθανό ότι ένα ή ίσως δύο πρωτόκολλα ανταλλαγής μηνυμάτων θα ξεχωρίσουν.

Τα τελευταία χρόνια, το MQTT έχει γίνει το πιο δημοφιλές και σε αυτό εστιάζω τώρα σε αυτόν τον ιστότοπο.

Το HTTP θα συνεχίσει επίσης να χρησιμοποιείται καθώς είναι ήδη καλά ενσωματωμένο στις υπάρχουσες πλατφόρμες IoT.

Αυτό είναι όλο. Σας προσκαλούμε να εγγραφείτε για ένα δωρεάν μάθημα επίδειξης σχετικά με το θέμα "Chatbot για γρήγορες εντολές στη συσκευή".

Διαβάστε περισσότερα:

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο