1 Έλεγχος ροής και συμφόρησης (flow and congestion control) flow control Ο όρος έλεγχος ροής (flow control) χρησιμοποιείται συχνά για να περιγράψει τους μηχανισμούς που χρησιμοποιούνται από μια πηγή και έναν προορισμό για την ρύθμιση της κίνησης των δεδομένων ανάμεσά τους, έτσι ώστε να προστατεύεται ο προορισμός. congestion control Ο όρος έλεγχος συμφόρησης (congestion control) χρησιμοποιείται συχνά για να περιγράψει τους μηχανισμούς που χρησιμοποιεί ένα δίκτυο για να προστατεύει τον εαυτό του από τις πηγές. Τα δύο προβλήματα δεν είναι διακριτά: Με τον όρο ‘έλεγχος ροής’ θα αναφερόμαστε εφεξής και στα δύο. Το Πρόβλημα Το Πρόβλημα: Να περιοριστούν οι πηγές, ώστε ο ρυθμός τους να μην είναι υπέρμετρος, τόσο για το δίκτυο όσο και για τους προορισμούς.
2 Αν το δίκτυο δεν ελέγχει τις πηγές, η ρυθμαπόδοση μπορεί να οδηγηθεί σε πολύ χαμηλές τιμές.Αν το δίκτυο δεν ελέγχει τις πηγές, η ρυθμαπόδοση μπορεί να οδηγηθεί σε πολύ χαμηλές τιμές. Τρόποι ελέγχου ροήςΤρόποι ελέγχου ροής: - μπλοκάρισμα συνόδων (admission control) - μπλοκάρισμα πακέτων (packet blocking): μη αποδοχή τους στην είσοδο - απόρριψη πακέτων (packet dropping) scheduling - χρονοδρομολόγηση (scheduling): μόνο κάποιοι σύνοδοι κάθε στιγμή να αποστέλλουν δεδομένα
3 routing flow control Καθώς ο αλγόριθμος δρομολόγησης (routing) επιτυγχάνει στο να κρατάει την καθυστέρηση χαμηλή, ο έλεγχος ροής (flow control) επιτρέπει περισσότερη κυκλοφορία στο δίκτυο. Καλοί αλγόριθμοι δρομολόγησης: υψηλότερη ρυθμαπόδοση για την ίδια καθυστέρηση, μικρότερη καθυστέρηση για δεδομένη ρυθμαπόδοση. προσφερόμενο φορτίο απορριπτόμενο φορτίο καθυστέρηση ρυθμαπόδοση καθυστέρηση ρυθμαπόδοση φτωχή δρομολόγηση καλή δρομολόγηση routingflow control Αλληλεπίδραση μεταξύ δρομολόγησης (routing) και ελέγχου ροής (flow control) Οι μετρικές απόδοσης είναι η ρυθμαπόδοση (‘ποσότητα’) και η μέση καθυστέρηση (‘ποιότητα’).
4 Στόχοι του ελέγχου ροής Να επιτευχθεί ισορροπία ανάμεσα στις απαιτήσεις ρυθμαπόδοσης και τις απαιτήσεις καθυστέρησης. Να υπάρξει δίκαιη μεταχείριση των συνόδων (δοθέντων των επιμέρους απαιτήσεών τους). Ο έλεγχος ροής, με το να απορρίπτει εισερχόμενη ροή, στην πραγματικότητα απλά μειώνει την καθυστέρηση του υποδικτύου, ενώ αυξάνει την καθυστέρηση έξω από το υποδίκτυο. Παρόλα αυτά, με το να κρατάει μικρή την καθυστέρηση του υποδικτύου: αποφεύγει την απόρριψη πακέτων και την επαναμετάδοση αποφεύγει την επαναμετάδοση λόγω αργών ACKs (τα παραπάνω θα οδηγούσαν σε σπατάλη πόρων) αποφεύγει το να υπάρχει μια σύνοδος, που να δημιουργεί μεγάλη καθυστέρηση στις άλλες.
5 Δικαιοσύνη (fairness) 1 μονάδα χωρητικότητα συνδέσμων = 1 μονάδα Η μέγιστη ρυθμαπόδοση επιτυγχάνεται, αν σε κάθε χρήστη ενός μόνο συνδέσμου δοθεί 1 μονάδα ροής. Πιο δίκαιη λύση: σε κάθε τέτοιο χρήστη να δοθούν ¾ της μονάδας.
6 Παράδειγμα αλληλεπίδρασης συνόδων Για, ο κοινός buffer είναι γεμάτος τoν περισσότερo χρόνο. Τα πακέτα από τον Α στο C απορρίπτονται τις περισσότερες φορές και επαναμεταδίδονται. Κατά τη διάρκεια των επαναμεταδόσεων, 10 οριζόντια πακέτα φτάνουν για κάθε 1 κάθετο. Επομένως όταν ο χώρος του buffer αδειάζει, είναι 10 φορές πιο πιθανό να καταληφθεί από οριζόντιο πακέτο η ρυθμαπόδοση (σχεδόν ίση με 1) είναι σχεδόν 10 φορές μεγαλύτερη από τη ρυθμαπόδοση (περίπου 0,1). Χρειάζεται διαχείριση του buffer. ρυθμός εισόδου 0,8 ρυθμός εισόδου f κοινός buffer (περιορισμένου χώρου) ρυθμαπόδοση με άπειρο χώρο buffer οι επαναμεταδόσεις αρχίζουν εδώ
7 Αδιέξοδα λόγω υπερχείλισης των buffers Ο buffer στον Α έχει γεμίσει με κυκλοφορία προς τον Β και το αντίστροφο. Τότε ο Α δεν μπορεί να δεχτεί καθόλου κυκλοφορία και το αντίστροφο. γεμάτος με κίνηση προς τον Β γεμάτος με κίνηση προς τον C γεμάτος με κίνηση προς τον A ΑΔΙΕΞΟΔΟ
8 Αποφυγή αδιεξόδων Τουλάχιστον μια θέση στον buffer του κάθε κόμβου κρατείται για δεδομένα που έχουν ήδη διασχίσει k ή περισσότερους συνδέσμους, k=1,2,…,d (όπου d το άνω φράγμα του πλήθους των βημάτων). Τουλάχιστον ένα πακέτο μπορεί να κινηθεί στον επόμενο κόμβο (συγκεκριμένα, αυτό που έχει ταξιδέψει το μεγαλύτερο πλήθος βημάτων).
9 Έλεγχος ροής με ‘παράθυρα’ ‘window’ data units – DU’s Θέτει ένα άνω φράγμα, το ‘παράθυρο’ (‘window’), στο μέγιστο αριθμό των μονάδων δεδομένων (data units – DU’s) μιας συνόδου, που μπορούν να σταλούν, χωρίς να ληφθεί επιβεβαίωση. πομπός δέκτης Ο Β ειδοποιεί τον Α ότι είναι διατεθειμένος να λάβει μια DU στέλνοντάς του μια ‘άδεια’ (permit). Μόλις λάβει την permit, ο Α μπορεί να στείλει νέα DU. (όπου τα DU’s μπορεί να είναι πακέτα, bytes, μηνύματα κλπ)
10 ‘ End-to-end παράθυρα’ Το ‘παράθυρο’ υπάρχει ανάμεσα στην πηγή και τον τελικό προορισμό. Παραλλαγές Παραλλαγές: request number - RN Στέλνεται ένας αριθμός αίτησης (request number - RN), αποδεχόμενος όλα τα πακέτα πριν τον RN και μεταφέροντας το ‘παράθυρο’ στο [RN,RN-W+1]. Όταν το πρώτο πακέτο του ‘παραθύρου’ λαμβάνεται, στέλνεται μια permit και παραχωρεί ολόκληρο νέο ‘παράθυρο’. χρησιμοποιείται στο SNA δίκτυο Μόνο μια permit ανά ‘παράθυρο’ στέλνεται (οικονομία στο πλήθος των permits).
11 Χ = αναμενόμενος χρόνος μετάδοσης πακέτου W = μέγεθος ‘παραθύρου’ roundtrip d = end-to-end καθυστέρηση (roundtrip) Θέλουμε να εμποδίζουμε την κυκλοφορία, μόνο όταν υπάρχει συμφόρηση, άρα. Καθώς η συμφόρηση αυξάνεται, η καθυστέρηση d αυξάνεται και το παράθυρο εμποδίζει τη ροή. Σε δίκτυα χαμηλών ταχυτήτων, το W πρέπει να επιλέγεται μεγαλύτερο του 2h (συνήθως κοντά στο 3h), όπου h είναι ο αριθμός των συνδέσμων ανάμεσα στην πηγή και τον προορισμό.
12 μετάδοση πλήρους ταχύτητας ενεργός ο έλεγχος ροής ρυθμαπόδοση μεταφοράς roundtrip καθυστέρηση r: ρυθμός συνόδου (πακέτα/sec) r: ρυθμός συνόδου (πακέτα/sec) (θεωρώντας ότι διατίθενται πάντα πακέτα στον πομπό) Όσο πιο μικρό είναι το W, τόσο περισσότερο μικραίνει το r όταν εμφανίζεται συμφόρηση και τόσο πιο γρήγορη είναι η αντίδραση στη συμφόρηση αυτή.
13 Επίδραση του αριθμού των συνόδων πομπός δέκτης Έστω Απ’το θεώρημα του Little: Το συνολικό πλήθος πακέτων στο δίκτυο: Έστω λ η συνολική ρυθμαπόδοση όλων των συνόδων (ο συνολικός ρυθμός αποδοχής πακέτων). Little: Πρέπει να προσαρμοστούν τα Έστω ότι υπάρχουν n ενεργά ελεγχόμενες σύνοδοι με ‘παράθυρα’ W i, i=1,…,n. η σύνοδος i: μεγέθη των ‘παραθύρων’ με το πλήθος των συνόδων.