Δίκτυα Υπολογιστών Κεφάλαιο 27 – Πρωτόκολλα πραγματικού χρόνου: Ποιότητα Υπηρεσιών (QoS)
Δημοσιεύτηκε από τον/την codebrakes στις
Δίκτυα Υπολογιστών
Κεφάλαιο 27 - Πρωτόκολλα πραγματικού χρόνου: Ποιότητα Υπηρεσιών (QoS)
Τι είναι η ποιότητα Υπηρεσιών (Quality of Service – QoS)
Η ποιότητα υπηρεσιών – QoS είναι ένα σύνολο από δυνατότητες που εξασφαλίζουν την αξιόπιστη και έγκαιρη παράδοση δεδομένων πραγματικού χρόνου (π.χ. φωνή, video κλπ). Σε αντίθεση με τα αρχεία δεδομένων οπού κατακερματίζονται, στέλνονται με τυχαία σειρά και ανασυντίθενται στην άλλη μεριά, τα πακέτα πραγματικού χρόνου (real-time packets) πρέπει να παραδίδονται με την σωστή σειρά και με ελάχιστη καθυστέρηση. Αυτήν την δουλειά λοιπόν αναλαμβάνει η ποιότητα υπηρεσιών. Η ποιότητα υπηρεσιών επιτρέπει σε πολλούς τύπους εφαρμογών να ανταγωνίζονται μεταξύ τους για τους δικτυακούς πόρους ενός δικτύου. Με αυτόν τον τρόπο, δίνεται προτεραιότητα σε εφαρμογές πραγματικού χρόνου ή ακόμη και η δυνατότητα χρήσης προνομιακών υπηρεσιών από τις συσκευές του δικτύου έτσι ώστε η απόδοση τους να διατηρείται σε ένα υψηλό επίπεδο. Όταν δεν υπάρχει ανταγωνισμός για τους δικτυακούς πόρους (οπότε υπάρχουν και ελεύθεροι πόροι) χρησιμοποιείται ο αλγόριθμος FIFO. Όταν όμως υπάρχει αρκετός ανταγωνισμός (οπότε και ελάχιστοι διαθέσιμοι πόροι) τότε χρησιμοποιείται ο αλγόριθμος δίκαιης απονομής (Weighted Fair Queuing) ώστε να προστατέψει τις εφαρμογές που έχουν υψηλότερη προτεραιότητα.
Σε αυτό το σημείο τίθεται ένα ερώτημα. Για ποιο λόγο γίνεται η χρήση ποιότητας υπηρεσιών σε ενοποιημένες υπηρεσίες ;;;
Υπάρχουν τρείς σημαντικοί αρνητικοί παράγοντες που ορίζουν την χρήση ποιότητας υπηρεσιών σε κάποια εφαρμογή:
- Απώλεια (loss): Είναι η διαφορά του αριθμού των λαμβανόμενων και των απεσταλμένων πακέτων. Η απώλεια δεδομένων εξαρτάται από την διαθεσιμότητα των πόρων. Συνεπώς αν ένα δίκτυο είναι σχεδιασμένο για υψηλή διαθεσιμότητα, σε περίπτωση συμφόρησης, η απώλεια πακέτων θα είναι σχεδόν ανύπαρκτη. Όμως σε καταστάσεις όπου ένα δίκτυο παρουσιάζει φαινόμενα διαρκής συμφορήσεως η ποιότητα υπηρεσιών δεν είναι σε θέση να καθορίσει ποια πακέτα θα απορριφθούν προκειμένου αυτό να αποσυμφορηθεί.
- Καθυστέρηση (latency): Είναι το χρονικό διάστημα το οποίο χρειάζεται ένα πακέτο που στέλνεται από ένα πομπό έως ότου φτάσει στο σημείο λήψης. Σε περιπτώσεις πακέτων φωνής η καθυστέρηση είναι ο χρόνος που χρειάζεται ο ήχος για να ταξιδέψει από τον πομπό ως προς τον δέκτη. Αντίστοιχα για video η καθυστέρηση αφορά τον χρόνο που μεσολαβεί η εικόνα από μια βιντεοκάμερα έως ότου και την εμφάνιση αυτής σε μια οθόνη του τερματικού του παραλήπτη.
- Jitter (ή μεταβλητότητα καθυστέρησης): Είναι η διαφορά καθυστέρησης σε διαδοχικά πακέτα. Για να εξομαλυνθεί ο χρόνος άφιξης των πακέτων χρησιμοποιείται ένας χώρος προσωρινής αποθήκευσης που ονομάζεται ως Jitter buffer. Σε ενοποιημένες υπηρεσίες το επιθυμητό Jitter είναι από 20 ms και κάτω.
Παράγοντες για την ύπαρξη ποιότητας υπηρεσιών
Για την αντιμετώπιση των τριών αυτών αρνητικών παραγόντων που αναφέραμε παραπάνω ένας διαχειριστής ενός δικτύου οφείλει να εφαρμόσει τις κατάλληλες ρυθμίσεις προκειμένου το ίδιο το δίκτυο να μπορεί να είναι σε θέση να διαχειρίζεται σωστά τα πακέτα καθώς κι ότι δεν θα υπάρξουν απώλειες πακέτων που έχουν σημαντικά δεδομένα (και συνεπώς υψηλή προτεραιότητα). Για να εφαρμοστεί σωστά η ποιότητα υπηρεσιών πρέπει να δεσμεύσουμε χώρο εύρους ζώνης για συγκεκριμένα πακέτα κι εν συνεχεία να προσδιορίσουμε ποια πακέτα απαιτούν ιδιαίτερο χειρισμό. Αρκετά σημαντικό είναι επίσης η θέσπιση κανόνων όσον αφορά τον τρόπο χειρισμού αυτών των πακέτων. Υπάρχουν τρείς σημαντικοί παράγοντες για την ύπαρξη ποιότητας υπηρεσιών:
- Μέριμνα: Είναι η διαδικασία η οποία μας διασφαλίζει την ύπαρξη του διαθέσιμου εύρους ζώνης για όλες τις εφαρμογές καθώς και για την κίνηση που επιβαρύνει το δίκτυο (όπου αυτή δημιουργείται από τα πρωτόκολλα δρομολόγησης). Επίσης κατά την διαδικασία της μέριμνας είναι πάρα πολύ σημαντικό να ικανοποιούνται όχι μόνο οι υπάρχουσες απαιτήσεις αλλά και οι απαιτήσεις για μελλοντική χρήση.
- Ταξινόμηση: Αναφέρεται στην σήμανση των πακέτων σε μια συγκεκριμένη τιμή προτεραιότητας η οποία υποδηλώνει την απαίτηση για ειδικό χειρισμό του από το δίκτυο. Αυτό λαμβάνει χώρα σε πολλές συσκευές του δικτύου (από δρομολογητές, μεταγωγείς έως και τερματικά). Με τις τυπικές μεθόδους ταξινόμησης η προτεραιότητα ορίζεται ως εξής:
- Σημαντική (Critical): Για πακέτα φωνής και δεδομένα ζωτικής σημασίας.
- Υψηλή (High): Για πακέτα που μεταφέρουν πληροφορία video.
- Χαμηλή (Low): Για Fax και υπηρεσίες μεταφοράς αρχείων (FTP)
- Προγραμματισμός: Είναι η διαδικασία αντιστοίχισης προτεραιότητας ροών πακέτων με βάση την πληροφορία που αυτές φέρουν. Αν η πληροφορία μιας ροής πακέτων είναι σημαντική τα πακέτα αυτής της συγκεκριμένης ροής αποκτούν υψηλή προτεραιότητα. Για να το καταλάβουμε αυτό ας πάρουμε ένα κλασσικό καθημερινό παράδειγμα, έστω ότι έχουμε κάποιους επιβάτες μιας αεροπορικής πτήσεως. Στο αεροπλάνο επιβιβάζονται πρώτα οι πελάτες οι οποίοι έχουν πληρώσει εισιτήριο πρώτης θέσης (First Class), έπειτα οι πελάτες που έχουν πληρώσει εισιτήριο επιχειρηματικής θέσης (Business Class) και τέλος οι πελάτες που έχουν πληρώσει εισιτήριο οικονομικής θέσεως (Economy Class). Η λογική κι εδώ μπορούμε να πούμε ότι είναι σχεδόν παρόμοια, πρώτα περνάει η πρώτη ομάδα οποία έχει την υψηλότερη προτεραιότητα, έπειτα η δεύτερη ομάδα και ούτω καθεξής.
Τύποι ποιότητας υπηρεσιών
Συνεπώς η ποιότητα υπηρεσιών αναφέρεται στην δυνατότητα ενός στοιχείου του δικτύου να έχει κάποιου τύπου επιβεβαίωσης ότι η κυκλοφορία και οι απαιτήσεις της υπηρεσίας που προσφέρει θα ικανοποιηθούν. Η ποιότητα υπηρεσιών διαχειρίζεται το υπάρχον εύρος ζώνης ανάλογα με βάση τις απαιτήσεις της εφαρμογής όπως και τις ρυθμίσεις που έχουν παρθεί σε ένα του δίκτυο. Σε καμία περίπτωση δεν δημιουργεί επιπλέον εύρος ζώνης. Υπάρχουν δύο τύποι ποιότητας υπηρεσιών:
- Δέσμευση πόρων (Resource Reservation): Μια ροή δεδομένων χρειάζεται πόρους όπως buffer, εύρος ζώνης κλπ. Η ποιότητα υπηρεσιών (Quality of Service – QoS) βελτιώνεται αν αυτοί οι πόροι είναι δεσμευμένοι εκ των προτέρων. Η δέσμευση πόρων ανήκει στην κατηγορία των ενσωματωμένων υπηρεσιών (integrated services) οπού οι πόροι του δικτύου (εύρος ζώνης κλπ) διαμοιράζονται σύμφωνα με τις απαιτήσεις που έχει η εκάστοτε εφαρμογή.
- Έλεγχος αποδοχής (Admission Control): Ο έλεγχος αποδοχής αναφέρεται στον μηχανισμό που χρησιμοποιείται από έναν δρομολογητή (router), μεταγωγέα (switch) για να δεχτεί ή να απορρίψει μια ροή βασιζόμενη σε προκαθορισμένες παραμέτρους που καλούνται ως προδιαγραφές ροής (flow specifications). Πρώτού ο δρομολογητής αποδεχτεί μια ροή δεδομένων για επεξεργασία, ελέγχει τις προδιαγραφές της ροής αυτής για να επιβεβαιώσει αν η χωρητικότητα (σε όρους πόρων π.χ. εύρος ζώνης, μέγεθος Buffer κλπ) είναι διαχειρίσιμη.
Ενσωματωμένες υπηρεσίες (integrated services)
Στην ποιότητα των υπηρεσιών έχουν σχεδιαστεί δύο μοντέλα το πρώτο είναι οι Ενσωματωμένες υπηρεσίες (integrated services) και το δεύτερο είναι οι Διαφοροποιημένες Υπηρεσίες (Differentiated Services). Τα δύο αυτά μοντέλα επικεντρώνονται για ποιότητα υπηρεσιών στο επίπεδο δικτύου, παρόλα αυτά μπορούν να χρησιμοποιηθούν και σε άλλα επίπεδα όπως το επίπεδο σύνδεσης δεδομένων ή πρόσβασης δικτύου. Το μοντέλο ενσωματωμένων υπηρεσιών σχεδιάστηκε για παράδοση δεδομένων με την βέλτιστη προσπάθεια (best-effort). Αυτό σημαίνει ότι κάθε χρήστης λαμβάνει το ίδιο επίπεδο υπηρεσιών. Αυτός ο τύπος παράδοσης δεδομένων δεν εγγυάται την ελάχιστη δέσμευση πόρων (π.χ. εύρος ζώνης) ειδικά σε υπηρεσίες πραγματικού χρόνου. Αν κάποια εφαρμογή καταλάθος λάβει επιπλέον εύρος ζώνης από αυτό που δικαιούται, μπορεί να αποτελέσει σοβαρό πρόβλημα σε άλλες εφαρμογές οδηγώντας σε συμφόρηση πακέτων. Οι ενσωματωμένες υπηρεσίες, ονομάζονται επίσης κι ως IntServ. Το IntServ είναι ένα flow-based QoS μοντέλο. Αυτό σημαίνει ότι η εφαρμογή του χρήστη πρέπει να δημιουργήσει μια ροή, (κάτι σαν εικονικό κύκλωμα) από την πηγή στον προορισμό και να ενημερώσει όλους τους δρομολογητές για τις απαιτήσεις πόρων που ζητάει.
- Περιγραφή ροής: Όταν μια πηγή επιθυμεί να στείλει μια ροή δεδομένων θα πρέπει να ορίσει μια περιγραφή ροής. Η περιγραφή ροής έχει δύο μέρη: το πρώτο είναι η προδιαγραφή πόρων Rspec (resource specification) και η δεύτερη είναι η προδιαγραφή κίνησης Tspec (traffic specification). Το Rspec ορίζει τους πόρους που θα χρειαστεί μια ροή προκειμένου να τους δεσμεύσει. Το Tspec ορίζει το χαρακτηριστικό κίνησης της ροής (πχ πόσα πακέτα ανά second κλπ).
- Αποδοχή Κλήσης (Admission): Όταν ένας δρομολογητής λαμβάνει μια προσδιορισμένη ροή δεδομένων από μια εφαρμογή, καλείται να αποφασίσει αν θα δεχτεί αυτήν την ροή ή αν θα την απορρίψει. Η απόφαση αυτή ορίζεται με βάση τις προηγούμενες δεσμεύσεις του δρομολογητή ως προς τις προηγούμενες ροές δεδομένων και την υπάρχουσα διαθεσιμότητα πόρων.
- Κλάσεις υπηρεσιών: Δύο κλάσεις υπηρεσιών έχουν οριστεί για ενσωματωμένες υπηρεσίες. Η πρώτη είναι η εγγυημένη υπηρεσία (guaranteed service) και η δεύτερη είναι η υπηρεσία ελεγχόμενου φόρτου.
- Κλάση εγγυημένης υπηρεσίας (Guaranteed Service Class): Αυτός ο τύπος υπηρεσίας είναι σχεδιασμένος για κινήσεις δεδομένων πραγματικού χρόνου που χρειάζονται ελάχιστη end-to-end καθυστέρησή. Η καθυστέρησή end-to-end είναι το άθροισμα καθυστέρησης των δρομολογητών, της καθυστέρησης διάδοσης στο μέσο και της εγκαθίδρυσης του μηχανισμού. Αυτός ο τύπος υπηρεσίας εγγυάται ότι τα πακέτα θα φτάσουν σε συγκεκριμένο χρονικό διάστημα και ότι δεν θα απορριφθούν αν η κίνηση ροής δεδομένων παραμείνει στα όρια του Tspec. Μπορούμε να πούμε ότι οι εγγυημένες υπηρεσίες είναι επί της ουσίας ποσοτικές υπηρεσίες, στις οποίες το ποσοστό της end-to-end καθυστέρησης και του ρυθμού δεδομένων πρέπει να οριστεί από την εφαρμογή.
- Κλάση υπηρεσίας ελεγχόμενου φόρτου (Controlled-Load Service Class): Αυτός ο τύπος υπηρεσίας είναι σχεδιασμένος για εφαρμογές που είναι σε θέση να δεχτούν καθυστερήσεις, αλλά είναι εξαιρετικά ευαίσθητος σε ένα υπερφορτωμένο δίκτυο και στον κίνδυνο για απώλεια πακέτων. Παράδειγμα εφαρμογών που κάνουν χρήση αυτής της υπηρεσίας είναι η μεταφορά αρχείων (FTP, TFTP), e-mail, και πρόσβασης διαδικτύου (HTTP).
Εργαλεία διαχείρισης εύρους ζώνης
Εκτός από τις τρία βασικά βήματα εξασφάλισης του QoS που αναφέραμε παραπάνω, χρειάζονται και ορισμένα εργαλεία που σχετίζονται με τις ίδιες τις ζεύξεις, όπως μηχανισμοί διαμόρφωσης κίνησης (traffic shaping), κατακερματισμού και παρεμβολής ζεύξης (Link Fragmentation and Interleaving – LFI), ιδιαίτερα όταν η κίνηση δεδομένων δρομολογείται μέσω ζεύξεων με χαμηλό εύρος ζώνης (786 kbps ή λιγότερο). Η διαμόρφωση κίνησης των δεδομένων είναι μια μέθοδος περιορισμού του ρυθμού μετάδοσης των πακέτων. Αν οι ταχύτητες των ζεύξεων μεταξύ απομακρυσμένων γραφείων διαφέρουν, τότε υπάρχει πιθανότητα ο ISP που συνδέει τα γραφεία να απορρίψει αυθαίρετα πακέτα τα οποία δρομολογούνται από τις αργές ζεύξεις.
Ποιότητα υπηρεσιών πάνω σε IP δίκτυα
Η ποιότητα υπηρεσιών (Quality of Service – QoS) έχει ως στόχο την ανάθεση προτεραιότητας σε ροές δεδομένων χωρίζοντας τις σε σημαντικές και λιγότερο σημαντικές. Για παράδειγμα έστω ότι έχουμε δύο ροές δεδομένων οπού η πρώτη μεταφέρει πληροφορία φωνής χρησιμοποιώντας το RTP και η δεύτερη πληροφορίες e-mail. Η ποιότητα υπηρεσιών θα δώσει προτεραιότητα στην ροή πακέτων που χρησιμοποιεί το RTP και μετέπειτα στην άλλη ροή που χρησιμοποιεί το πρωτόκολλο HTTP). Η ποιότητα υπηρεσιών δεν είναι ευρέως διαδεδομένη στις μέρες μας (χρησιμοποιείται μόνο σε περιορισμένες εφαρμογές όπως για παράδειγμα σε ένα τοπικό δίκτυο – LAN ή σε νοικιαζόμενες γραμμές). Οι εφαρμογές πραγματικού χρόνου (VoIP Voice over IP) λειτουργούν αποτελεσματικά αν υπάρχει αρκετό διαθέσιμο εύρος ζώνης. Όμως σε ώρες αιχμής (για παράδειγμα σε ώρες γραφείου) οι διάφορες εφαρμογές που παρέχουν ποιότητα υπηρεσιών μπορεί να καταρρεύσουν από αυξανόμενες καθυστερήσεις και απώλειες πακέτων.
Σημαντικές τεχνολογίες / πρωτόκολλα ποιότητας υπηρεσιών:
- 802.1p/Q
- DiffServ: χρήση του πεδίου τύπου υπηρεσιών της IP επικεφαλίδας.
- IntServ: χρήση πρωτοκόλλου RSVP για εύρεση εύρους ζώνης.
- MPLS
- Διαχείριση ενεργούς ουράς (Active Queue Management)
Ποιότητα υπηρεσιών: Εικονικό LAN (VLAN) ΙΕΕΕ 802.1p/Q tagging
Το VLAN είναι μια επέκταση στην επικεφαλίδα Ethernet προσθέτοντας τις παρακάτω δυνατότητες:
- Διαχωρισμός ενός τοπικού δικτύου LAN σε ξεχωριστά domains (με την χρήση του 802.1Q VLAN ID).
- Πεδίο προτεραιότητας (802.1p p-tag) για ποιότητά υπηρεσιών.
802.1p: Το p-tag επιτρέπει σε ένα VLAN να αλλάζει την προτεραιότητα σε συγκεκριμένα Ethernet πλαίσια (frames)
802.1Q VLAN ID: Το VLAN ID μας παρέχει την δυνατότητα δημιουργίας εικονικών (λογικών) τοπικών δικτύων – LANs πάνω στο ίδιο τοπικό δίκτυο. Αυτή η τεχνική μας παρέχει αυξημένη ασφάλεια όπως και δημιουργίας ξεχωριστών domains (1 VLAN = 1 broadcast domain). Χρειάζεται ένας router προκειμένου να δρομολογήσει τα πακέτα μεταξύ των διαφορετικών VLANs.
Επικεφαλίδα VLAN: Στην Ethernet επικεφαλίδα προστίθεται η VLAN επικεφαλίδα (VLAN ID και p-tag).
Σενάριο εφαρμογής VLAN
Οι Hosts σε διαφορετικούς ορόφους έχουν ανατεθεί στο ίδιο VLAN (π.χ. VLAN Πωλήσεως). Η κίνηση μεταξύ ενός συγκεκριμένου VLAN περιορίζεται στα μέλη αυτού του VLAN. ’λλα VLANs δεν «βλέπουν» αυτήν την κίνηση (το πρωτόκολλο STP – Spanning Tree Protocol τρέχει σε κάθε VLAN). Για να συνδεθούν τα διάφορα VLAN μεταξύ τους χρειάζεται ένας δρομολογητής (router) ή ένας μεταγωγέας ικανός να πραγματοποιήσει δυνατότητες δρομολόγησης (switch επιπέδου δικτύου
Υπάρχουν δύο μέθοδοι συμμετοχής σε ένα VLAN η πρώτη είναι η στατική μέθοδος και η δεύτερη είναι η δυναμική μέθοδος.
- Στατικά VLANs: Σε ένα στατικό VLAN, ο διαχειριστής ενός δικτύου δημιουργεί ένα VLAN και έπειτα το αναθέτει σε κάποια θύρα ενός μεταγωγέα (switch). Τα στατικά VLANs καλούνται επίσης port-based VLANs. Η σχέση με ένα VLAN δεν αλλάζει έως ότου ο διαχειριστής του δικτύου αλλάξει την θύρα που του έχει αναθέσει. Οι τερματικές συσκευές γίνονται μέλη ενός VLAN αν χρησιμοποιούν την αντίστοιχη VLAN θύρα που έχει ανατεθεί στον μεταγώγα (switch).Μπορούν να εκχωρηθούν πολλαπλά VLANs στις θύρες (ports) ενός απλού μεταγωγέα (switch). Σε έναν μεταγωγέα (switch) παρόλο που δύο συσκευές είναι συνδεδεμένες σε διαφορετικές θύρες (ports), η κίνηση των πακέτων δεν θα περάσει μεταξύ τους εάν οι συνδεδεμένες θύρες βρίσκονται σε διαφορετικά VLANs. Χρειαζόμαστε λοιπόν μια συσκευή επιπέδου δικτύου (router ή switch επιπέδου δικτύου) για να ενεργοποιηθεί η επικοινωνία μεταξύ δύο VLANs.
- Δυναμικά VLANs: Σε ένα δυναμικό VLAN, ο μεταγωγέας (switch) κάνει αυτόματη ανάθεση θύρας (port) σε ένα VLAN χρησιμοποιώντας πληροφορία από την συσκευή του χρήστη όπως διεύθυνση MAC, IP κλπ. Όταν μια συσκευή συνδεθεί σε μια θύρα ενός μεταγωγέα (switch) τότε ο ίδιος ο μεταγωγέας επιβλέπει την βάση δεδομένων για να εγκαθιδρύσει μια VLAN συμμετοχή. Ο διαχειριστής του δικτύου πρέπει να ρυθμίσει μια VLAN βάση δεδομένων ενός VLAN Membership Policy Server (VMPS).
Για να δημιουργήσουμε ένα στατικό VLAN σε ένα cisco μεταγωγέα (switch) γράφουμε τις παρακάτω εντολές στην κονσόλα.
Στις παρακάτω εντολές δημιουργούμε ένα VLAN με id 10 και με όνομα sales.
Switch_1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch_1(config)# vlan 10
Switch_1(config-vlan)# name sales
Switch_1(config-vlan)# exit
Switch_1(config)# exit
Switch_1#
Στις παρακάτω εντολές δημιουργούμε ένα VLAN με id 20 και με όνομα marketing.
Switch_1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch_1(config)# vlan 20
Switch_1(config-vlan)# name marketing
Switch_1(config-vlan)# exit
Switch_1(config)# exit
Switch_1#
Ποιότητα υπηρεσιών: MPLS MultiProtocol Label Switching
Το πρωτόκολλο MPLS χρησιμοποιείται για να βελτιώσει την ταχύτητα ενός δικτύου και για την διαμόρφωση της δικτυακής κινήσεως ροών των πακέτων. Στην κλασσική δρομολόγηση IP, τα πακέτα πρέπει να υποστούν διαδικασίες ανάλυσης σε κάθε hop κλπ. Σε ένα MPLS δίκτυο, στα πακέτα που μεταφέρουν δεδομένα προστίθεται σε αυτά μια ετικέτα σε κάθε κόμβο και η διαδικασίες απόφασης προωθήσεως του πακέτου βασίζεται σε αυτές τις ετικέτες. Αυτή η μέθοδος είναι διαφορετική από τον κλασσικό μηχανισμό δρομολόγησης. Η επικεφαλίδα ενός πακέτου εξετάζεται μόνο μια φορά όταν δηλαδή το πακέτο εισέλθει σε ένα MPLS cloud. Μετέπειτα οι αποφάσεις προωθήσεως αυτού του πακέτου βασίζονται στις ετικέτες που του παίρνει από κάθε κόμβο
Ποιότητα υπηρεσιών: DiffServ
Διαφοροποιημένες υπηρεσίες (Differentiated Services – DiffServ) που περιέχει δύο κύρια στοιχεία:
- Κατηγοριοποίηση και ανάθεση προτεραιότητας σε πακέτα βασιζόμενα στην DSCP επικεφαλίδα στο IP πακέτο.
- Εύρεση και καθορισμός των κατηγοριών των πακέτων με βάση το μονοπάτι μετάδοσης
Κάθε δρομολογητής που υποστηρίζει DSCP πρέπει να είναι κατάλληλα ρυθμισμένος. Οι δρομολογητές αναθέτουν προτεραιότητες σε κάθε πακέτο ξεχωριστά. Στην παρακάτω εικόνα αποτυπώνεται η γενική λογική αρχιτεκτονική ενός δρομολογητή:
- Ταξινομητής (Classifier): Ταξινομεί ένα πακέτο σε μια αντίστοιχη εσωτερική κλάση.
- Μετρητής (Meter): Καταμετράει τις προσωρινές ιδιότητες μιας ροής πακέτων που έχει επιλεχθεί από μια κλάση και υποδεικνύει στην ένδειξη καθώς και στον χρονοπρογραμματιστή τον τρόπο με τον οποίο θα αντιμετωπίζει τα πακέτα (για παράδειγμα όταν μια ροή πακέτων έχει ήδη φτάσει το 100% του διαθέσιμου εύρους ζώνης).
- Ένδειξη: Μαρκάρει τα πακέτα καταλλήλως ανάλογα με μια κλάση που τους έχει ανατεθεί.
- Χρονοπρογραμματιστής: Συλλέγει πακέτα από τις διάφορες ουρές πακέτων. Ο χρονοπρογραμματιστής ρυθμίζεται εξ αρχής για να είναι σε θέση να αποφασίσει ποια πακέτα θα απορρίψει και ποια θα στείλει στην άλλη μεριά.
Στην IP επικεφαλίδα υπάρχει ένα πεδίο το οποίο ονομάζεται Τύπος υπηρεσίας (Type of Service – TOS). Πρώτού δημιουργηθεί το DSCP, για τον καθορισμό της προτεραιότητας των IP πακέτων (IP Precedence) χρησιμοποιούταν τα 3 πρώτα bits του πεδίου TOS.
Το DiffServ παρουσιάζει την δομή του DiffServ Code Point (DSCP) το οποίο χρησιμοποιεί τα 6 πρώτα bits του TOS πεδίου δίνοντας έτσι 26 = 64 διαφορετικές τιμές.
- Χρησιμοποιούνται 6 bits για να δημιουργηθούν 21 διαφορετικές κλάσεις
- Αν η τιμή πιθανότητας απόρριψης πακέτου είναι 01, τότε υπάρχει χαμηλή πιθανότητα αυτό το πακέτο να απορριφθεί
- Αν η τιμή πιθανότητας απόρριψης πακέτου είναι 10, τότε υπάρχουν ίσες πιθανότητες το πακέτο αυτό να απορριφθεί ή να σταλθεί στον παραλήπτη.
- Αν η τιμή πιθανότητας απόρριψης του πακέτου είναι 11, τότε υπάρχει μεγάλη πιθανότητα το πακέτο αυτό να απορριφθεί.
Πιθανότητα απόρριψης πακέτων | Κλάση 1 |
Κλάση 2 |
Κλάση 3 |
Κλάση 4 |
Χαμηλή |
001010 AF 11 DSCP 10 |
010010 AF21 DSCP 18 |
011010 AF31 DSCP 26 |
100010 AF41 DSCP 34 |
Μεσαία | 001100 AF12 DSCP 12 |
010100 AF22 DSCP 20 |
011100 AF32 DSCP 28 |
100100 AF42 DSCP 36 |
Υψηλή |
001110 AF13 DSCP 14 |
010110 AF23 DSCP 22 |
011110 AF33 DSCP 30 |
100110 AF43 DSCP 38 |
Τα πακέτα ταξινομούνται σε κλάσεις (και προφανώς επισημαίνεται το DSCP πεδίο στο IP πακέτο) όταν αυτά περάσουν από τον εσωτερικό δρομολογητή. Οι ενδιάμεσοι δρομολογητές (routers) στο domain B θέτουν προτεραιότητες στα πακέτα με βάση το DSCP πεδίο της IP επικεφαλίδας. Στον εξωτερικό δρομολογητή του domain B τα πακέτα αναμένουν σε ουρές ανάλογα με την προτεραιότητα τους και διαμορφώνεται η κίνηση των πακέτων.
Ποιότητα υπηρεσιών: RSVP (IntServ)
Το RSVP είναι ένα απ’ άκρο σε άκρο πρωτόκολλο για την εξασφάλιση απαιτήσεων όπως παροχής εύρους ζώνης, διόρθωσης καθυστερήσεων, εύρεσης και δέσμευσης πόρων. Το δίκτυο πρέπει να είναι σε θέση να υποστηρίξει το RSVP σε όλα τα hops. Παρόλα αυτά είναι πιθανόν να εξυπηρετηθούν δίκτυα τα οποία δεν υποστηρίζουν RSVP όμως αυτό επηρεάζει σημαντικά την ποιότητα υπηρεσιών. Ένα δίκτυο πρέπει να είναι σε θέση να διορθώσει τυχόν παρατυπίες (για παράδειγμα παροχή προτεραιότητας στα κατάλληλα πακέτα) Το RSVP δεν είναι αρκετά ευέλικτο καθότι κάθε hop πρέπει να παρέχει έναν πίνακα καταστάσεων για κάθε μια ροή πακέτων. Το RSVP δεν επιτρέπει αλλαγή δρομολόγησης των πακέτων προς άλλες ζεύξεις για να επιτευχθεί η βέλτιστη ποιότητα υπηρεσιών. Επιλέγεται από την αρχή το δρομολόγιο των πακέτων (με βάση την βέλτιστη – χρονικά πιο σύντομη διαδρομή) χωρίς όμως να το ενδιαφέρει για το τι θα γίνει στο ενδιάμεσο ή για την ποιότητα των υπηρεσιών. Καθότι το RSVP δεσμεύει πόρους με βάση τις ανάγκες του παραλήπτη (κι όχι με τις ανάγκες του αποστολέα) τεχνικές πολυδιανομής (multicast) είναι εύκολο να εφαρμοστούν.
Τεχνικές αναμονής πακέτων σε ουρές
FIFO – First In First Out: Δεν υπάρχουν κλάσεις ή προτεραιότητες. Τα πακέτα στέλνονται με την ίδια σειρά που παραλήφθηκαν. Αυτό δημιουργεί πρόβλημα σε εφαρμογές που στέλνουν πολλά δεδομένα (π.χ. FTP) όπου τα πακέτα μαζεύονται (και προφανώς αναμένουν) σε μια ούρα προκαλώντας πρόβλημα σε υπηρεσίες πραγματικού χρόνου
Priority Queueing – PQ: Τα πακέτα μιας υψηλής κλάσης στέλνονται πρώτα από τα πακέτα που ανήκουν σε χαμηλότερες κλάσεις
Round Robin – RR: Το εύρος ζώνης (bandwidth) μοιράζεται και απονέμεται ισάξια σε κάθε κλάση υπηρεσίας.
Class Based Queueing – CB: Ίδια λογική με τον round robin απλά εδώ οι κλάσεις έχουν άνισες βαρύτητες.
Weighted Fair Queuing: Στον αλγόριθμο δίκαιης απονομής τα πακέτα κι εδώ ανατίθενται σε διαφορετικές κλάσεις και τοποθετούνται σε διαφορετικές ουρές. Παρόλα αυτά οι ουρές αποκτούν βαρύτητα με βάση την προτεραιότητα που έχουν οι ουρές, υψηλή προτεραιότητα σημαίνει και υψηλή βαρύτητα. Το σύστημα επεξεργάζεται κάθε πακέτο στην ουρά με την δομή round-robin με τον αριθμό του πακέτων να επιλέγεται από κάθε ουρά με βάση την κατάλληλη βαρύτητα.
Για παράδειγμα, έστω ότι έχουμε βαρύτητες 3, 2 και 1. Θα επεξεργαστούν αρχικά τρία πακέτα από την πρώτη ουρά, δύο από την δεύτερη ουρά και ένα από την τρίτη ουρά. Αν το σύστημα δεν υποδείξει της προτεραιότητες στις κλάσεις, όλες οι βαρύτητες θα είναι ίσες. Με αυτόν τον τρόπο, έχουμε δίκαιη ανάθεση προτεραιότητας σε όλες τις ουρές. Η εικόνα παρακάτω δείχνει τον μηχανισμό του αλγορίθμου δίκαιης απονομής.
Διαχείριση Ενεργούς Ουράς (Active Queue Management – AQM)
Η διαχείριση ενεργούς ουράς είναι ο τρόπος με τον οποίο οι δρομολογητές (routers) θα απορρίπτουν τα πακέτα όταν το δίκτυο έχει υπερβολικό φόρτο εργασίας. Όταν μια ουρά πακέτων γεμίσει κάποια πακέτα πρέπει να απορριφθούν. Οι αλγόριθμοι διαχείρισης ενεργούς ουράς επιχειρούν προσπάθειες απόρριψης ορισμένων πακέτων προκειμένου να εξομαλύνουν όσο πιο σύντομα γίνεται φαινόμενα συμφόρησης στον buffer ενός δρομολογητή.
- Πρόωρη τυχαία ανίχνευση (Weighted Random Early Detection – WRED): Όπως αναφέραμε παραπάνω οι αλγόριθμοι διαχείρισης ενεργούς ουράς απορρίπτουν ορισμένα πακέτα όταν ο buffer ενός δρομολογητή είναι γεμάτος. Στον αλγόριθμο πρόωρης τυχαίας ανίχνευσης αν ο buffer ενός δρομολογητή είναι σχεδόν στο όριο του τότε αφαιρούνται τυχαία εισερχόμενα πακέτα προκειμένου αυτός να μην γεμίσει. Αυτή η τεχνική μπορεί να βελτιώσει σημαντικά την επίδοση ενός δικτύου. Για παράδειγμα αν τα πακέτα χρησιμοποιούν το πρωτόκολλο μεταφοράς TCP, τότε ο αποστολέας θα σταματήσει την αποστολή πακέτων για ένα χρονικό διάστημα βελτιώνοντας έτσι σημαντικά την χωρητικότητα του buffer ενός δρομολογητή.
- Explicit Congestion Notification – ECN: Το ECN (RFC 3168) προσπαθεί να ενημερώσει τον αποστολέα ότι ο buffer ενός δρομολογητή (router) είναι γεμάτος έτσι ώστε ο αποστολέας να γνωρίζει ότι αν συνεχιστεί η μετάδοση της ροής των πακέτων τότε αυτά θα απορριφθούν. Όταν ένας αποστολέας λάβει μια ECN ειδοποίηση, σταματάει την μετάδοση των πακέτων έως ότου ο Buffer του δρομολογητή αποσυμφορηθεί. Το ECN συνδυάζει δυνατότητες του επιπέδου δικτύου και μεταφοράς του TCP/IP χρησιμοποιώντας bits από την IP επικεφαλίδα και την TCP επικεφαλίδα. Το ECN χρησιμοποιεί 2 bits από το πεδίο DSCP της IP επικεφαλίδας για ενημερώσει τον παραλήπτη σχετικά με πληροφορίες συμφόρησης.
Στην TCP επικεφαλίδα στο ΕCN έχουν οριστεί δύο αντίστοιχα TCP flags που χρησιμοποιούνται για ενημέρωση συμφόρησης μεταξύ των διάφορων TCP κόμβων.
Τελευταία ενημέρωση: 29/04/2018