Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης. Εισαγωγή Η παρούσα εργαστηριακή άσκηση έχει ως σκοπό την εξοικείωση με τα πρωτόκολλα δρομολόγησης τα οποία χρησιμοποιούνται στα Ad-Hoc δίκτυα, καθώς και την συγκριτική μελέτη ορισμένων τέτοιων πρωτοκόλλων. Τα πρωτόκολλα δρομολόγησης τα οποία συναντάμε συνήθως στα ασύρματα δίκτυα μπορούμε να τα κατηγοριοποιήσουμε στις ακόλουθες δύο κατηγορίες: (α) Proactive πρωτόκολλα: Κάθε ένας από τους κόμβους του δικτύου διατηρεί ένα πίνακα δρομολόγησης ο οποίος, για κάθε πιθανό κόμβο-προορισμό από τους κόμβους που συμμετέχουν στο δίκτυο, καταγράφει τον επόμενο ενδιάμεσο κόμβο στον οποίο θα πρέπει να μεταδοθούν τα δεδομένα. Έτσι, οι πίνακες αυτοί περιγράφουν όλες τις διαδρομές για κάθε ζευγάρι κόμβων πηγής-προορισμού, και κάθε φορά που απαιτείται να γίνει μια μετάδοση, η διαδρομή που θα χρησιμοποιηθεί είναι γνωστή εκ των προτέρων. Ένα παράδειγμα πρωτοκόλλου της κατηγορίας αυτής αποτελεί το πρωτόκολλο DSDV (Destination - Sequenced Distance Vector), όπου οι πίνακες δρομολόγησης ανανεώνονται σε τακτά χρονικά διαστήματα, ενώ χρησιμοποιείται ο αλγόριθμος Bellman Ford. (β) Reactive (ή on-demand) πρωτόκολλα: Σε αντίθεση με τα proactive πρωτόκολλα, μια διαδρομή αποθηκεύεται στους πίνακες δρομολόγησης μόνο όταν κάποιος κόμβος του δικτύου επιθυμεί να την χρησιμοποιήσει, δηλαδή όταν ένας κόμβος πηγή θέλει να στείλει δεδομένα σε κάποιο κόμβο προορισμό, και δεν γνωρίζει μια κατάλληλη διαδρομή. Η φάση κατά την οποία αναζητείται κάποια διαδρομή, ονομάζεται route discovery. Έτσι, κάποιοι από τους κόμβους του δικτύου ενδέχεται να μην έχουν κάποια εγγραφή στους πίνακες δρομολόγησής τους, ακριβώς επειδή μέχρι εκείνη τη χρονική στιγμή, δεν χρειάζεται να προωθούν δεδομένα ως ενδιάμεσοι κόμβοι ή να λειτουργούν ως πηγές και προορισμοί. Στην περίπτωση αυτή, αναφέρουμε πως οι κόμβοι αυτοί δεν ανήκουν σε κάποιο ενεργό μονοπάτι. Οι κόμβοι αυτοί δε χρειάζεται να δαπανούν ενέργεια. Ένα παράδειγμα reactive πρωτοκόλλου αποτελεί το πρωτόκολλο AODV (Ad-Hoc On-Demand Distance Vector). 2. Τα πρωτόκολλα τα οποία θα εξετάσουμε Στην παράγραφο αυτή, δίνουμε ορισμένες λεπτομέρειες για τη λειτουργία τριών πρωτοκόλλων τα οποία θα εξομοιώσουμε στη συνέχεια της εργαστηριακής άσκησης. Τα πρωτόκολλα αυτά είναι το DSDV, το οποίο ήδη αναφέραμε και το οποίο ανήκει στην κατηγορία των proactive πρωτοκόλλων, και τα DSR (Dynamic Source Routing) και AODV τα οποία ανήκουν στην κατηγορία των reactive πρωτοκόλλων.
DSDV Το πρωτόκολλο DSDV ανήκει στην κατηγορία των proactive πρωτοκόλλων και βασίζει τη λειτουργία του στον αλγόριθμο υπολογισμού συντομότερων διαδρομών Bellman-Ford. Το πρωτόκολλο επίσης εισάγει τους λεγόμενους «αριθμούς ακολουθίας» στις διαδρομές, έτσι ώστε να αποφεύγονται κυκλικές διαδρομές. Σε τακτά χρονικά διαστήματα (ακόμα και αν δεν υπάρχει ανάγκη για μεταφορά δεδομένων) οι γειτονικοί κόμβοι του δικτύου ανταλλάσσουν πληροφορίες δρομολόγησης οι οποίες μπορεί να είναι είτε μικρές ανανεώσεις στις προηγούμενες διαδρομές είτε ακόμα και μια πλήρης ανανέωση του πίνακα δρομολόγησης. Μια τέτοια ανανέωση μπορεί να συμβεί είτε περιοδικά, είτε μετά από κάποιο γεγονός το οποίο προκάλεσε σημαντική αλλαγή στην τοπολογία του δικτύου. DSR Το πρωτόκολλο DSR ανήκει στην κατηγορία των reactive πρωτοκόλλων, τα οποία υπολογίζουν μια διαδρομή μόνο στην περίπτωση όπου κάποιος κόμβος πηγή έχει δεδομένα να στείλει σε κάποιον κόμβο προορισμό, και δε γνωρίζει μια κατάλληλη διαδρομή. Η βασική του διαφορά από το πρωτόκολλο AODV είναι πως το DSR χρησιμοποιεί μια τεχνική η οποία είναι γνωστή ως «δρομολόγηση πηγής» (source routing) και στην οποία κάθε μήνυμα το οποίο στέλνει ένας κόμβος πηγή, περιέχει στην επικεφαλίδα του όλη την ακολουθία των κόμβων τα οποία το πακέτο θα πρέπει να επισκεφτεί ως τη λήψη του από τον κόμβο προορισμό. AODV Το πρωτόκολλο AODV ανήκει στην κατηγορία των reactive πρωτοκόλλων και έτσι δεν απαιτεί από τους κόμβους του δικτύου να διατηρούν διαδρομές με προορισμούς που δεν χρησιμοποιούνται. Σε αντίθεση με το DSR, τα πακέτα δεδομένων δεν περιλαμβάνουν στην επικεφαλίδα τους όλη την ακολουθία ενδιάμεσων κόμβων. Αν κάποια σύνδεση ανάμεσα σε δύο κόμβους διακοπεί (π.χ. λόγω κίνησης ορισμένων κόμβων, βλάβης κλπ.) το πρωτόκολλο ενεργοποιεί ένα μηχανισμό ο οποίος ενημερώνει τους κόμβους που επηρεάζονται ώστε να ακυρώσουν τις διαδρομές που χρησιμοποιούσαν αυτή τη σύνδεση. Το πρωτόκολλο χρησιμοποιεί μια διαδικασία εύρεσης διαδρομής, η οποία αποτελείται από τα ακόλουθα βήματα:. Ο κόμβος πηγή εκπέμπει ένα μήνυμα αναζήτησης διαδρομής (RREQ, Route Request) στο οποίο αναφέρει τον κόμβο προορισμό που αναζητά. Το μήνυμα αυτό στέλνεται αρχικά σε όλους τους γειτονικούς κόμβους του κόμβου πηγή. 2. Το μήνυμα αναζήτησης διαδρομής διαδίδεται στο δίκτυο, όπου κάθε κόμβος που δέχεται το πακέτο για πρώτη φορά, το προωθεί στους γείτονές του μέχρι (α) να φτάσει στον κόμβο προορισμό ή (β) να φτάσει σε έναν κόμβο ο οποίος γνωρίζει μια πρόσφατη διαδρομή μέχρι τον κόμβο προορισμό. 3. Ο κόμβος προορισμός (ή ο κόμβος ο οποίος γνωρίζει μια πρόσφατη διαδρομή μέχρι τον προορισμό) απαντά με ένα μήνυμα RREP (Route Reply), το οποίο ενημερώνει τον κόμβο πηγή για τα βήματα της διαδρομής.
Επίσης, το πρωτόκολλο AODV χρησιμοποιεί μια μέθοδο για την ανίχνευση διακοπών σε μια διαδρομή η οποία έχει υπολογιστεί, και η οποία αποτελείται από τα ακόλουθα βήματα:. Οι γειτονικοί κόμβοι οι οποίοι συμμετέχουν σε κάποια διαδρομή, στέλνουν περιοδικά μηνύματα για να δηλώσουν την παρουσία τους. Τα μηνύματα αυτά ονομάζονται μηνύματα HELLO. 2. Κάθε κόμβος που δέχεται ένα τέτοιο μήνυμα, συνεχίζει να θεωρεί την αντίστοιχη σύνδεση ενεργή για ένα χρονικό διάστημα. 3. Αν κάποιος κόμβος αντιληφθεί μια μεγάλη καθυστέρηση στη λήψη ενός πακέτου HELLO ή αν αντιληφθεί την αποτυχία μετάδοσης ενός πακέτου δεδομένων, τότε προωθεί ένα πακέτο RERR (Route Error) προς τον κόμβο πηγή. 4. Όλοι οι κόμβοι οι οποίοι χρησιμοποιούνται για τη μετάδοση του πακέτου RERR πίσω στον κόμβο πηγή, διαγράφουν την αντίστοιχη εγγραφή από τους πίνακες δρομολόγησής τους. 5. Ο κόμβος πηγή, εκκινεί μια νέα διαδικασία route discovery. 3. Εργαστηριακή διαδικασία Ερώτημα Χρησιμοποιώντας το tcl αρχείο που κατεβάσατε συμπληρώστε τον παρακάτω πίνακα υποθέτοντας μία σύνδεση δεδομένων CBR από το κόμβο "0" προς τον κόμβο που φαίνεται στην πρώτη στήλη του παρακάτω πίνακα με πακέτα μεγέθους 000 Bytes και χρονικό διάστημα μεταξύ δύο διαδοχικών πακέτων Sec. Μέση Καθυστέρηση Μέγιστη Καθυστέρηση
Μέση Εναπομείνασα ενέργεια α) Ποιό πρωτόκολλο δρομολόγησης θα προτείνατε για την σύνδεση 0 με βάση την καθυστέρηση και ποιό με βάση την κατανάλωση ενέργειας ; β) Πως επηρεάζεται η απόδοση όταν σαν προορισμό ορίζουμε τον και πως όταν ορίζουμε τον και γιατί ; Ερώτημα 2 Χρησιμοποιώντας το tcl αρχείο που κατεβάσατε συμπληρώστε το παρακάτω πίνακα υποθέτοντας δύο συνδέσεις δεδομένων CBR όπως αυτές ορίζονται στην πρώτη στήλη με πακέτα μεγέθους 000Bytes και χρονικό διάστημα μεταξύ δύο διαδοχικών πακέτων sec. Μέση Καθυστέρηση ii) 87 79 i) 0 i) 0 Μέγιστη Καθυστέρηση ii)87 79 i) 0 i) 0
Μέση Εναπομείνασα ενέργεια ii)87 79 i) 0 i) 0 α) Πως επηρεάζεται η επικοινωνία λόγο της παρουσίας της δεύτερης ροής δεδομένων και γιατί;