Περιγραφή του πρωτοκόλλου
Το OLSR είναι ένα πρωτόκολλο δρομολόγησης για κινητά (mobile) ad-hoc δίκτυα. Οι ιδιότητες που το χαρακτηρίζουν είναι οι ακόλουθες
- Σαν πρωτόκολλο δρομολόγησης είναι “pro-active“, και βασίζεται στον Αλγόριθμο του Dijkstra.
- Ως pro-active πρωτόκολλο, είναι κατάλληλο για συνθήκες στις οποίες τα δύο άκρα αλλάζουν με το χρόνο: δεν χρειάζεται επιπλέον κίνηση με δεδομένα ελέγχου, καθώς διατηρούνται διαρκώς οι διαδρομές προς όλα τα σημεία.
- Η επικοινωνία των δρομολογητών γίνεται μέσω UDP broadcasts.
- Σε κάθε UDP πακέτο εμπεριέχονται πολλαπλά μηνύματα OLSR.
- Το κάθε μήνυμα OLSR περιέχει πληροφορία χρόνου εγκυρότητας. Όταν παρέλθει ο δηλωμένος χρόνος (timeout) η πληροφορία απορρίπτεται.
- Το OLSR εισήγαγε νέες ιδέες με στόχο την μείωση της επιβάρυνσης του πρωτοκόλλου και την αύξηση της σταθερότητας, αυτές είναι οι
- Link Hysteresis (Υστέρηση)
- MultiPointRelays (Αναμεταδότες Πολλών Σημείων (?))
- Περιγράφεται εκτενώς στην RFC 3626
- Σημαίνει Optimized Link State Routing, και όπως υπονοεί και το όνομα, χρησιμοποιεί την τεχνική link-state (κατάστασης σύνδεσης) με βελτιωμένο τρόπο για τη διάχυση της πληροφορίας για την τοπολογία.
- Όμως στους τυπικούς link-state αλγορίθμους η πληροφορία διαχέεται στο δίκτυο χωρίς περιορισμούς, ενώ το OLSR έχει σχεδιαστεί για ασύρματα δίκτυα, και είναι βελτιωμένο ώστε να χρησιμοποιεί το εύρος ζώνης πιο συντηρητικά.
- Η βελτίωση αυτή είναι το MultiPointRelaying (MPR)
- Το OLSR βασίζεται σε πίνακες, και η βασική του λειτουργία αφορά την ενημέρωση και διατήρηση πληροφορίας σε έναν αριθμό πινάκων.
- Στο OLSR υπάρχουν 3 βασικοί τύποι μηνυμάτων ελέγχου
- HELLO - τα μηνύματα αυτά μεταδίδονται σε όλους του γείτονες. Χρησιμεύουν στην ανίχνευση των γειτόνων και τον υπολογισμό των MPR.
- TC (Topology Control) - Αυτά τα μηνύματα χρησιμεύουν για την ‘σηματοδότηση’ link-state. Η επικοινωνία με αυτά τα μηνύματα βελτιώνεται με πολλούς τρόπους με την χρήση των MPR.
- MID (Multiple Interface Declaration) - μηνύματα που αποστέλλονται από κόμβους που τρέχουν OLSR σε περισσότερες από μία διεπαφές τους. Περιέχουν λίστα με όλες τις ΙΡ διευθύνσεις που χρησιμοποιεί ο κόμβος.
- Το OLSR είναι κατάλληλο για μεγάλα και πυκνά κινητά δίκτυα, καθώς η βελτιστοποίηση που επιτυγχάνεται με τη χρήση των MPR δουλεύει καλά σε τέτοιες συνθήκες.
- Το OLSR χρησιμοποιεί βήμα-προς-βήμα (hop by hop) δρομολόγηση, με άλλα λόγια κάθε κόμβος χρησιμοποιεί την δική του τοπική πληροφόρηση για τη δρομολόγηση των πακέτων.
- Το OLSR είναι ιδιαίτερα καλό για δίκτυα όπου η κίνηση είναι τυχαία και σποραδική ανάμεσα σε έναν μεγάλο αριθμό κόμβων, παρά σε καταστάσεις όπου η κίνηση αφορά σχεδόν αποκλειστικά ένα μικρό και συγκεκριμένο σετ από κόμβους.
- Το OLSR διαρκώς διατηρεί πληροφορία για τις διαδρομές προς ΟΛΟΥΣ τους προορισμούς στο δίκτυο, και ως εκ τούτου έιναι ιδανικό για την κίνηση που δημιουργείται μεταξύ ενός μεγάλου αριθμού κόμβων όπου η δυάδα [αφετηρία προορισμός] αλλάζει διαρκώς.
- Το OLSR έχει σχεδιαστεί να λειτουργεί απολύτως κατανεμημένα, και δεν εξαρτάται από καμία κεντρική οντότητα.
- Δεν απαιτείται αξιόπιστη μετάδοση των μηνυμάτων ελέγχου: ο κάθε κόμβος αποστέλλει μηνύματα ελέγχου περιοδικά, και μπορεί να αντέξει απώλεια μηνυμάτων σε λογικά πλαίσια, χωρίς προβλήματα. Αυτές οι απώλειες είναι σύνηθες φαινόμενο στις ασύρματες επικοινωνίες.
- Επίσης δεν απαιτείται η μετάδοση των μηνυμάτων με συγκεκριμένη σειρά. Κάθε μήνυμα ελέγχου είναι αριθμημένο αυξητικά. Με αυτόν τον τρόπο, ο παραλήπτης μπορεί να γνωρίζει ανά πάσα στιγμή ποια πληροφορία από ό,τι έλαβε είναι η πιο πρόσφατη, ακόμα και εάν έχουν μεταδοθεί με λάθος σειρά.
- To OLSR τέλος παρέχει υποστήριξη για επεκτάσεις του πρωτοκόλλου, όπως η λειτουργία σε κατάσταση ύπνου (sleep mode) και το multicast routing, καθώς και άλλα. Αυτές οι επεκτάσεις έχουν το καλό ότι μπορούν να περιληφθούν ως πρόσθετες λειτουργίες δίχως αυτό να επηρεάσει τη συμβατότητα με παλαιότερες εκδόσεις.
H βασική λειτουργικότητα του OLSR μπορεί να αναλυθεί σε τρία βήματα
- Ανίχνευση συνδέσεων/γειτόνων
- MultiPoint Relaying
- Υπολογισμός διαδρομών και ανταλλαγή μηνυμάτων κατάστασης συνδέσεων (link state messaging).
Λίγα ακόμα για το MPR
Το OLSR ελαχιστοποιεί την επιβάρυνση του δικτύου από την κίνηση πολυάριθμων μηνυμάτων ελέγχου, χρησιμοποιώντας μονάχα επιλεγμένους κόμβους -τους επονομαζόμενους MPRs- για την αναμετάδοση των μηνυμάτων ελέγχου.
Οι κόμβοι αυτοί που έχουν επιλεγεί ως MPR από κάποιους γειτονικούς τους κόμβους, ανακοινώνουν αυτή την πληροφορία περιοδικά στα μηνύματα ελέγχου που αποστέλλουν. Με αυτόν τον τρόπο ένας κόμβος ανακοινώνει στο δίκτυο, ότι έχει επαφή αυτή τη στιγμή με τους κόμβους που τον έχουν επιλέξει ως MPR.
Στον υπολογισμό των διαδρομών, οι κόμβοι MPR χρησιμεύουν για να χαραχθεί το μονοπάτι από έναν δεδομένο κόμβο σε οποιονδήποτε προορισμό στο δίκτυο.
Τo OLSR δεν χρειάζεται παρά μερική πληροφορία για την κατάσταση των συνδέσεων (link state) να κυκλοφορήσει στο δίκτυο, για να παρέχει τα συντομότερα μονοπάτια. Το ελάχιστο αυτό τμήμα πληροφορίας που χρειάζεται είναι πως πρέπει όλοι οι κόμβοι που έχουν επιλεχθεί ως MPRs να δηλώσουν τις συνδέσεις τους με τους κόμβους που τους επέλεξαν ως MPR. Βέβαια επιπλέον πληροφορία τοπολογικής φύσης μπορεί να χρησιμοποιηθεί.
Ο κάθε κόμβος επιλέγει και διατηρεί την δική του λίστα με MPRs.
Ο κανόνας που ισχύει είναι: “Για κάθε n γείτονες των 2 hops, πρέπει να υπάρχουν m MPR ώστε n να μπορούν να προσπελαστούν μέσω των m.”
Link Hysteresis
Η ιδιότητα αυτή καθορίζει για έναν κόμβο τα κριτήρια σύμφωνα με τα οποία ένας γείτονας γίνεται αποδεκτός ή όχι. Οι κόμβοι σε ένα δίκτυο μπορούν να έχουν διαφορετικά κριτήρια, σύμφωνα με τη φύση του μέσου μέσω του οποίου επικοινωνούν. Άπαξ και ένα link γίνεται αποδεκτό, διαφημίζεται.