190 likes | 346 Views
Δρομολόγηση ( routing ) σε δίκτυα. Αυτοδύναμα Πακέτα ( Datagrams): απόφαση δρομολόγησης για κάθε πακέτο . Εικονικά Κυκλώματα ( Virtual Circuits ) : μία απόφαση δρομολόγησης για όλα τα πακέτα της ίδιας συνόδου ( session ). Ζητήματα. επιλογή των μονοπατιών
E N D
Δρομολόγηση (routing) σε δίκτυα Αυτοδύναμα Πακέτα (Datagrams): απόφαση δρομολόγησης για κάθε πακέτο. Εικονικά Κυκλώματα(Virtual Circuits): μία απόφαση δρομολόγησης για όλα τα πακέτα της ίδιας συνόδου (session). Ζητήματα • επιλογή των μονοπατιών • μετάδοση των σχετικών με τη δρομολόγηση πληροφοριών Μετρικές απόδοσης Ρυθμαπόδοση (Throughput) – ‘ποσότητα’ της εξυπηρέτησης Μέση καθυστέρηση πακέτου – ‘ποιότητα’ της εξυπηρέτησης
προσφερόμενο φορτίο ρυθμαπόδοση καθυστέρηση απορριπτόμενο φορτίο Καθώς ο αλγόριθμος δρομολόγησης (routing) επιτυγχάνει στο να κρατάει την καθυστέρησηχαμηλά, ο έλεγχος ροής (flow control) επιτρέπει περισσότερη κυκλοφορία στο δίκτυο. φτωχή δρομολόγηση καθυστέρηση καλή δρομολόγηση ρυθμαπόδοση Καλοί αλγόριθμοι δρομολόγησης: υψηλότερη ρυθμαπόδοση για την ίδια καθυστέρηση, μικρότερη καθυστέρηση για δεδομένη ρυθμαπόδοση.
Παράδειγμα (επιρροή της δρομολόγησης στην ρυθμαπόδοση και την καθυστέρηση του δικτύου): πηγή 5 μονάδες 5 μονάδες πηγή Όλοι οι σύνδεσμοι έχουν χωρητικότητα 10 μονάδες προορισμός • Αν όλες οι σύνοδοι (sessions) δρομολογηθούν μέσω του μεσαίου μονοπατιού, η καθυστέρηση είναι μεγάλη. • Ας υποτεθεί, ότι η κυκλοφορία στην είσοδο του κόμβου 2 αυξάνεται στις 15 μονάδες. Αν χρησιμοποιείται μόνο ένα μονοπάτι, τουλάχιστον 5 μονάδες απορρίπτονται. Συνεπώς, η καθυστέρηση και η μέγιστη ρυθμαπόδοση εξαρτώνται από τη δρομολόγηση.
Η δρομολόγηση μπορεί να είναι: 1. Κεντρικοποιημένη ή Κατανεμημένη • Κεντρικοποιημένη (Centralized): όλες οι αποφάσεις για τη δρομολόγηση λαμβάνονται σε έναν κεντρικό κόμβο. • Κατανεμημένη (Distributed): η ευθύνη του υπολογισμού των μονοπατιών μοιράζεται ανάμεσα στους κόμβους, οι οποίοι ανταλλάσσουν μεταξύ τους πληροφορίες, όποτε είναι απαραίτητο. 2. Στατική ή Δυναμική (Προσαρμοζόμενη) • Στατική (Static): το μονοπάτι που χρησιμοποιείται για ένα ζεύγος πηγής-προορισμού, παραμένει σταθερό. • Δυναμική (Dynamic) - Προσαρμοζόμενη (Adaptive): το μονοπάτι μπορεί να αλλάζει, ανάλογα με τη συμφόρηση (congestion). Φυσικά, ακόμα και με στατικούς αλγόριθμους, τα μονοπάτια πρέπει να αλλάζουν, όταν κάποιοι κόμβοι ή σύνδεσμοι πέφτουν.
Το πρόβλημα των συντομότερων μονοπατιών Διευθυνόμενος γράφος G=(N,A) :οι ακμές έχουν κατεύθυνση. dij = το μήκος της ακμής (i,j) Το μήκος ενός διευθυνόμενου μονοπατιού (directed path)p={i,j,k,…,l,m}ορίζεται ως dij+djk+…+dlm. Δεδομένα: G=(N,A), dij’s ώστε να μην υπάρχουν κύκλοι αρνητικού μήκους και ο κόμβος-προορισμού 1. Πρόβλημα: να βρεθεί το συντομότερο μονοπάτι από κάθε κόμβο iπρος τον κόμβο 1. Εφαρμογές: α. dij = η καθυστέρηση της ακμής (i,j). Τότε το ‘συντομότερο μονοπάτι’ αντιστοιχεί στο‘μονοπάτι ελάχιστης καθυστέρησης’. β. dij = -lnpij, όπου pijη πιθανότητα η ακμή (i,j)να είναι απενεργοποιημένη. Τότε το ‘συντομότερο μονοπάτι’ αντιστοιχεί στο‘πιο αξιόπιστο μονοπάτι’. γ. dij=1 (Minimum hop routing)
Ο αλγόριθμος Bellman-Ford Έστω δι το μήκος του συντομότερου μονοπατιού από τον κόμβο iστον 1, που χρησιμοποιεί το πολύ h ακμές. Μετά από το πολύ Ν-1 επαναλήψεις, εντοπίζεται το συντομότερο μονοπάτι (με την προϋπόθεση ότι δεν υπάρχουν κύκλοι αρνητικού μήκους): το μήκος του συντομότερου μονοπατιού είναι . Στην πραγματικότητα οι επαναλήψεις τερματίζονται, όταν μετά από hεπαναλήψεις ισχύει , για κάθε i.
Παράδειγμα: Bellman-Ford (αρχικές συνθήκες στο ) κόστος προορισμός 1ο βήμα τρέχουσα απόσταση από τον κόμβο 1 2ο βήμα 3ο βήμα 4ο βήμα
Παράδειγμα: Bellman-Ford (αρχικές συνθήκες στο 0) προορισμός
Δρομολόγηση στο ARPANET Χρησιμοποιεί συντομότερα μονοπάτια από την πηγή στον προορισμό. Αλγόριθμος του 1969: Ο κόμβος iυπολογίζει μια εκτίμηση Di της απόστασής του από κάποιο δεδομένο κόμβο 0. N(i) : οι γείτονες του κόμβου i Dj : υπολογίζονται από τους γείτονες κάθε 0.62sec D0 = 0. Αρχικά (1969), μήκος dij= πλήθος πακέτων στον buffer (i,j).
Προβλήματα αστάθειας (original ARPANET) Πρόβλημα: Συντομότερα μονοπάτια Μήκη ακμών Δρομολόγια Ροή Η ανάδραση εδώ μπορεί να είναι ασταθής (unstable). προορισμός προορισμός ΠΑΡΑΤΗΡΗΣΗ : το επόμενο συντομότερο μονοπάτι του κόμβου 2 θα έχει αριστερόστροφη διεύθυνση. Έστω η ροή στην ακμή (i,j)
προορισμός Μετά τα updates, όλοι οι κόμβοι θα αρχίσουν να στέλνουν πακέτα δεξιόστροφα, κοκ... Η ύπαρξη πόλωσης (bias) ανεξάρτητης της ροής στα μήκη των ακμών, βοηθάει στην αποφυγή του προβλήματος (πχ dij= σταθερά + πλήθος πακέτων στον buffer (i,j) ).
Αλγόριθμος του 1979 στο ARPANET dij = μέση καθυστέρηση των πακέτων που διέρχονται το σύνδεσμο (i,j)τα τελευταία 10sec. Τα dij διαδίδονται κάθε 60sec σε όλους τους άλλους κόμβους, με τη χρήση ενός μηχανισμού ‘πλημμύρας’ (flooding). Οι κόμβοι ανανεώνουν τα συντομότερα μονοπάτια τους (ασύγχρονα), χρησιμοποιώντας τον αλγόριθμο του Dijkstra. Κάθε κόμβος καταγράφει τον πρώτο σύνδεσμο στο συντομότερο μονοπάτι.
Τα μήκη των συνδέσμων διαδίδονται σε όλους τους άλλους κόμβους μέσω ενός flooding αλγόριθμου. • Η πηγή στέλνει την πληροφορία στους γείτονές της. • Οι γείτονες τη στέλνουν στους δικούς τους γείτονες (αλλά όχι στον κόμβο από όπου τη δέχτηκαν). • Κάθε πακέτο έχει έναν ακολουθιακό αριθμό SN (sequence number) και ένα ID κόμβου αφετηρίας. Χρησιμοποιώντας τις πληροφορίες αυτές, οι κόμβοι αποφεύγουν την προώθηση κάποιου πακέτου δύο φορές. Εναλλακτικά, η διάδοση πραγματοποιείται μέσω ενός γεννητικού δέντρου (spanning tree).
Αλγόριθμος του Dijkstra Δεδομένα: G=(N,A), μη αρνητικάdij’s,και ο κόμβος-προορισμός 1. Ιδέα: εύρεση των συντομότερων μονοπατιών με σειρά αύξοντος μήκους μονοπατιού. 1 1 σύνολο Pk, με τους kπλησιέστερους στον 1 κόμβους συμπλήρωμα του Pk το συντομότερο μονοπάτι από τον (k+1)-οστό κοντινότερο κόμβο, πρέπει να διέρχεται από τους κόμβους του Pk 1 1. Ανανέωσε τις ετικέτες: για κάθε θέσε 2. Βρες τον επόμενο πλησιέστερο κόμβο, δηλαδή τον : . Θέσε . Αν όλοι οι κόμβοι καλύφθηκαν, σταμάτα. Αλλιώς, πήγαινε στο βήμα 1.
2ο βήμα 3ο βήμα
4ο βήμα 5ο βήμα
Το δίκτυο TYMNET (1971 και 1981) Χρησιμοποιεί την ίδια ιδέα των συντομότερων μονοπατιών, αλλά 1) χρησιμοποιεί εικονικά κυκλώματακαι 2) η δρομολόγηση είναι κεντρικοποιημένη. Εποπτικός κόμβος αίτηση προορισμός πηγή Ο κόμβος- επόπτης (supervisory node) υπολογίζει το συντομότερο μονοπάτι και στέλνει ένα “needle” πακέτοστην πηγή, που περιέχει την πληροφορία για τη δρομολόγηση. TYMNET I: ο κόμβος- επόπτης«γράφει» τους πίνακες δρομολόγησης (routing tables) στους κόμβους. TYMNET II: οι πίνακες των δρομολόγιων συνθέτονται από set-up πακέτα, τα οποία προηγούνται της μεταφοράς των δεδομένων. Παρόμοια ιδέα χρησιμοποιείται και στο codex δίκτυο.