Μετάβαση στο κύριο περιεχόμενο

Πώς ταξιδεύει ένα μήνυμα

Όλοι οι κόμβοι ακούν και εκπέμπουν στην ίδια συχνότητα. Δεν υπάρχει κεντρικός σταθμός: τα μηνύματα φτάνουν μακριά επειδή οι κόμβοι τα επαναλαμβάνουν.

Managed flooding και hops​

Όταν ένας κόμβος ακούει ένα μήνυμα για πρώτη φορά, περιμένει λίγο πριν το επαναλάβει. Οι κόμβοι που ακούν τον αποστολέα πιο αδύναμα, συνήθως επειδή είναι πιο μακριά, περιμένουν λιγότερο. Έτσι το μήνυμα προχωρά όσο γίνεται πιο μακριά με κάθε εκπομπή. Αν ένας κόμβος ακούσει άλλον να το επαναλαμβάνει όσο περιμένει, δεν εκπέμπει. Αυτή η τεχνική λέγεται managed flooding.

Κάθε επανάληψη είναι ένα hop. Το hop limit ορίζει πόσες φορές μπορεί να επαναληφθεί ένα μήνυμα: η προεπιλογή του firmware είναι 3, η γεννήτρια προφίλ ξεκινά από 4 και το μέγιστο είναι 7. Δες πότε αξίζει να το αλλάξεις.

Ο A θα στείλει μήνυμα στο κανάλι με hop limit 3.

A: ΑποστολέαςAB: Δεν το έχει λάβειBC: Δεν το έχει λάβειCD: Δεν το έχει λάβειDE: Δεν το έχει λάβειEF: Δεν το έχει λάβειFG: Δεν το έχει λάβειGH: Δεν το έχει λάβειHA: ΑποστολέαςAB: Δεν το έχει λάβειBC: Δεν το έχει λάβειCD: Δεν το έχει λάβειDE: Δεν το έχει λάβειEF: Δεν το έχει λάβειFG: Δεν το έχει λάβειGH: Δεν το έχει λάβειH
  • Δεν το έχει λάβει
  • Περιμένει
  • Εκπέμπει
  • Έλαβε
  • Σιώπησε
Κάθε κόμβος που ακούει το μήνυμα για πρώτη φορά περιμένει λίγο. Ο πιο μακρινός επαναλαμβάνει πρώτος και όσοι τον ακούσουν σωπαίνουν. Το hop limit ορίζει πόσες επαναλήψεις επιτρέπονται.

Οι ρόλοι ROUTER και ROUTER_LATE επαναλαμβάνουν το μήνυμα ακόμη κι αν το έχουν ακούσει από άλλον. Γι' αυτό είναι ρόλοι υποδομής και θέλουν συνεννόηση με την κοινότητα.

Κανάλια και direct messages​

Ένα μήνυμα σε κανάλι το λαμβάνουν όλοι όσοι έχουν το ίδιο κανάλι και κλειδί. Ένα direct message απευθύνεται σε έναν κόμβο και μπορεί να το διαβάσει μόνο αυτός. Για να στείλεις direct message, ο κόμβος σου χρειάζεται το δημόσιο κλειδί του παραλήπτη. Το μαθαίνει όταν ακούσει τις πληροφορίες κόμβου (NodeInfo) που εκπέμπει ο παραλήπτης.

Το πρώτο direct message προς κάποιον ταξιδεύει με managed flooding. Από τις απαντήσεις, οι κόμβοι μαθαίνουν ποιος γείτονας οδηγεί προς τον παραλήπτη, και στα επόμενα μηνύματα επαναλαμβάνει μόνο αυτός. Αν αυτή η διαδρομή σταματήσει να λειτουργεί, ο κόμβος γυρίζει ξανά σε managed flooding.

Επιβεβαιώσεις​

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

Σε direct message, ο παραλήπτης στέλνει πίσω επιβεβαίωση (ACK). Αν δεν έρθει, ο κόμβος σου ξαναστέλνει το μήνυμα λίγες φορές πριν το δείξει ως αποτυχημένο.

Μία συχνότητα για όλους​

Πριν εκπέμψει, ένας κόμβος ελέγχει αν η συχνότητα είναι ελεύθερη και, αν δεν είναι, περιμένει. Δύο κόμβοι που δεν ακούν ο ένας τον άλλον μπορεί όμως να εκπέμψουν ταυτόχρονα, και τότε ένας τρίτος ανάμεσά τους συχνά δεν λαμβάνει κανένα από τα δύο μηνύματα.

  • Εκπομπή
  • Αναμονή
  • Σύγκρουση
  • Λήψη

Πάτησε «Παίξε» για να δεις τι συμβαίνει στη συχνότητα.

Κάθε κόμβος μπορεί να εκπέμπει έως 6 λεπτά την ώρα (10%).

Τα 6 λεπτά είναι το όριο για κάθε κόμβο. Η συχνότητα όμως είναι κοινή: κάθε εκπομπή του κόμβου σου την καταλαμβάνει για όλους.

Όταν οι κόμβοι ακούν ο ένας τον άλλον, περιμένουν τη σειρά τους. Όταν δεν ακούν, μπορεί να εκπέμψουν μαζί, και ο κόμβος ανάμεσά τους χάνει και τα δύο μηνύματα.

Γι' αυτό περισσότεροι κόμβοι που επαναλαμβάνουν δεν σημαίνουν πάντα καλύτερη κάλυψη: κάθε εκπομπή καταλαμβάνει τη συχνότητα για όλους. Οι καλές πρακτικές για το airtime εξηγούν πώς να μην την επιβαρύνεις.

Γιατί δεν έφτασε το μήνυμά μου;​

  • Έχετε το ίδιο προφίλ ρυθμίσεων και κανάλι; Κάνε τον έλεγχο εφαρμογής.
  • Σε direct message, ο παραλήπτης εμφανίζεται στη λίστα κόμβων της εφαρμογής σου; Αν όχι, ο κόμβος σου δεν έχει ακόμη το κλειδί του.
  • Είναι πιο μακριά από όσα hops επιτρέπει το hop limit;
  • Είναι φορτωμένη η συχνότητα; Περίμενε πριν ξαναστείλεις.
  • Το είδες στο monitoring; Αυτό δεν αποδεικνύει παράδοση. Δες τι αποδεικνύει μια καταχώριση.

Αν το πρόβλημα μένει, δες τι να ελέγξεις και πώς να ζητήσεις βοήθεια.