2.7 Πρωτόκολλα δρομολόγησης multicast
(Distance Vector Multicast Routing Protocol)To DVMRP είναι ένα πρωτόκολλο, το οποίο βασίζεται στον αριθμό των hop που κάνει ένα πακέτο, το οποίο σχεδιάστηκε για να υποστηρίζει την προώθηση multicast πακέτων μέσω από ένα διαδίκτυο. Κάνει χρήση των διαφόρων αλγορίθμων που βασίζονται στο RPB για να δημιουργήσει ένα δέντρο που έχει σαν κέντρο του την πηγή των πακέτων. Είχε βασιστεί στο RIP (Routing Information Protocol), το οποίο υπολογίζει την μικρότερη διαδρομή από την πηγή στον προορισμό ενώ το DVMRP υπολογίζει την μικρότερη διαδρομή προς την πηγή από τον προορισμό. Το DVMRP δεν σχεδιάστηκε για να δρομολογεί unicast πακέτα. Έτσι οι δρομολογητές DVMRP τρέχουν ξεχωριστές διεργασίες για τα multicast και ξεχωριστές για τα unicast πακέτα.
Όλα τα interface ενός DVMRP δρομολογητή είναι διαμορφωμένα με ένα μέτρο το οποίο παρέχει το κόστος του interface και ένα όριο TTL για να περιορίσουν την έκταση της εκπομπής. Κάθε interface το οποίο είναι tunnel θα πρέπει να οριστεί με βάση την ΙΡ διεύθυνση του τοπικού δρομολογητή και την ΙΡ διεύθυνση του απομακρυσμένου δρομολογητή. Οι μετρικές τιμές και η τιμή του TTL είναι σημαντικές για να περικοπεί το δέντρο διανομής. Αν η τιμή TTL ενός multicast πακέτου είναι μέσα στα όρια που ορίζονται από τον δρομολογητή τότε το πακέτο θα πρέπει να προωθηθεί.
Όπως περιγράφηκε προηγουμένως το DVMRP προωθεί τα πακέτα σε αντιστοιχία με τον αλγόριθμο RPM. Το αρχικό πακέτο για ένα ζεύγος πηγής - γκρουπ προωθείται προς όλους τους δρομολογητές αν το επιτρέπει η τιμή TTL του πακέτου. Από εκείνο το σημείο και μετά αρχίζουν οι περικοπές. Μετά από κάποιο συγκεκριμένο χρονικό διάστημα το δέντρο ανανεώνεται καθώς στέλνεται ένα νέο πακέτο προς όλους τους δρομολογητές του διαδικτύου.
Το DVMRP μπορεί να εκτελέσει και διορθωτικό ρόλο. Αν ένας δρομολογητής στείλει ένα μήνυμα περικοπής και μετά ανακαλύψει έναν κόμβο που ανήκει στο γκρουπ, μπορεί να στείλει ένα διορθωτικό μήνυμα στον πατρικό του σύνδεσμο. Ο δρομολογητής που βρίσκεται από πάνω του ακυρώνει το προηγούμενο μήνυμα και αρχίζει να προωθεί τα πακέτα και προς εκείνο τον κόμβο. Με αυτό τον μηχανισμό ένας κόμβος δεν χρειάζεται να περιμένει μέχρις ότου το δέντρο ανανεωθεί για να αρχίσει να λαμβάνει multicast δεδομένα.
Σε κάθε υποδίκτυο πρέπει να υπάρχει ένας κυρίαρχος δρομολογητής. Αν υπάρχουν περισσότεροι από ένας δρομολογητές τότε αυτός με την χαμηλότερη ΙΡ διεύθυνση γίνεται ο κυρίαρχος δρομολογητής. Ο κύριος δρομολογητής τότε προωθεί τα πακέτα από το πηγαίο υποδίκτυο και ο δευτερεύον δρομολογητής απλά απορρίπτει τα πακέτα από το υποδίκτυο αυτό.
Οι πίνακες δρομολόγησης αντιπροσωπεύουν τα δέντρα της μικρότερης διαδρομής από την πηγή προς κάθε υποδίκτυο το οποίο έχει ένα μέλος του γκρουπ. Τα εισαγόμενα στοιχεία για αυτόν τον πίνακα είναι : Source Subnet (υποδίκτυο της πηγής) το οποίο είναι το υποδίκτυο που περιέχει την πηγή των πακέτων, Subnet Mask που είναι η “μάσκα” που ανατίθεται στο υποδίκτυο της πηγής, From Gateway που είναι η διεύθυνση του προηγούμενου δρομολογητή από τον οποίο πέρασε το πακέτο, Metric, Status και TTL. Βασισμένος σε αυτές τις πληροφορίες ο αλγόριθμος DVMRP πρέπει να χτίσει έναν πίνακα προώθησης αφού η κατάσταση των μελών ενός γκρουπ δεν είναι γνωστή από τον πίνακα δρομολόγησης. Ο πίνακας προώθησης είναι η γνώση του δρομολογητή για την μικρότερη διαδρομή στο εκτεταμένο δέντρο για το κάθε ζεύγος πηγής - γκρουπ. Ο πίνακας προώθησης περιέχει τα παρακάτω στοιχεία: Source Subnet, Multicast group που είναι η διεύθυνση τάξης D των multicast πακέτων, InPort που είναι η πόρτα του πατρικού συνδέσμου και OutPort που είναι η πόρτα στην οποία στέλνονται τα multicast πακέτα. Αν στο μήνυμα του InPort δούμε το σύμβολο ‘pr’ σημαίνει ότι έχει σταλεί μήνυμα prune (περικοπής) στο συγκεκριμένο σύνδεσμο. Αν δούμε ένα ‘p’ στο πεδίο του OutPort σημαίνει ότι το μήνυμα prune έχει ληφθεί για το συγκεκριμένο ζεύγος πηγής - γκρουπ.