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