Έλεγχος συµφόρησης µε το Πρωτόκολλο TCP

Σχετικά έγγραφα
Άσκηση 2. Αν συμβούν 2 duplicate ACKs αντί για timeout τι γίνεται σε αυτή την περίπτωσή;

ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο Φροντιστήριο Ασκήσεις στο TCP

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

Κεφάλαιο 1 Το Πρωτόκολλο TCP (Transmission Control Protocol)

Δίκτυα Επικοινωνίας Υπολογιστών Ενότητα 13: Στρώμα μεταφοράς

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

Πρωτόκολλο TCP Διάλεξη ΙΙI

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Δίκτυα Επικοινωνίας Υπολογιστών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Πρωτόκολλα Διαδικτύου

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή σε Έννοιες των Δικτύων Υπολογιστών Κεφάλαιο 2 Αξιοπιστία Κεφάλαιο 3 Αλγόριθμοι Πολλαπλής Πρόσβασης...

Υπολογιστές και ίκτυα Η/Υ.

Λουκάς Ελευθέριος

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Δίκτυα Υπολογιστών II Εργασία 1 η

Κεφάλαιο 7.3. Πρωτόκολλο TCP

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Πρωτόκολλα Διαδικτύου

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Πρωτόκολλα Διαδικτύου

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

ΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων Εισαγωγή

7.5 Πρωτόκολλο IP. & Ερωτήσεις

Πρωτόκολλα Διαδικτύου

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

Alternating Bit Protocol (ABP)

ΗΜΥ 654: ίκτυα Υπολογιστών Τελική Εξέταση 8 εκεµβρίου 2004 Η εξέταση αποτελείται από δύο µέρη. Απαντήστε όλες τις ερωτήσεις του Μέρους Ι και 3 από

Δίκτυα Υπολογιστών Λύσεις σειράς ασκήσεων επανάληψης

Εγγυημένη ποιότητα υπηρεσίας

Δίκτυα Υπολογιστών Επίπεδο Μεταφοράς Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

Τεχνολογία Πολυμέσων. Ενότητα # 17: Πρωτόκολλα μετάδοσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Λύση: Λύση: Λύση: Λύση:

HY-335a Project: microtcp 1, μία lightweight TCP βιβλιοθήκη

Άσκηση 1. (σημειώστε πως 1KB = 2 10 bytes, 1Mbps = 10 6 bits/sec).

α. Συνόδου β. Μεταφοράς γ. Δικτύου δ. Διασύνδεσης δεδομένων ε. Φυσικού Επιπέδου (Μονάδες 5)

Άσκηση Διάλεξης 5. Router. Δεδομένα: Οι ζεύξεις ειναι τεχνολογίας ενσύρματου Ethernet των 10 Mbps και 100 Mbps αντίστοιχα.

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

Συνεχής ροή πολυµέσων

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής ΔΙΑΔΙΚΤΥΑ ΜΕ TCP / IP. Βίτσας Βασίλειος

1 Ερωτήσεις σωστό-λάθος

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Τι είναι το πρωτόκολλο Διαδικτύου (Internet Protocol, IP);

Δίκτυα Θεωρία

Δίκτυα Υπολογιστών Εργασία 1 η

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Τρίτη Σειρά Ασκήσεων ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1 ΛΥΣΗ ΑΣΚΗΣΗ 2

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

7.2 Τεχνολογία TCP/IP

Διάρθρωση. Δίκτυα Υπολογιστών Επικοινωνία από άκρο σε άκρο. Επικοινωνία από άκρο σε άκρο. Διάρθρωση

Δίκτυα Υπολογιστών. Ασκήσεις επανάληψης

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet

Τεχνολογία Πολυμέσων. Ενότητα # 21: Εγγυημένη ποιότητα υπηρεσίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Β1. Σε ένα τοπικό δίκτυο τοπολογίας Ethernet-TCP/IP το επίπεδο πρόσβασης δικτύου περιλαμβάνει:

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Δίκτυα και Internet στο επιχειρηµατικό περιβάλον

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ.

Κεφάλαιο 5: Τοπικά ίκτυα

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

6.1 Επεκτείνοντας το δίκτυο 6.2 Επιλεγόμενες τηλεφωνικές γραμμές modems Πλεονεκτήματα Μειονεκτήματα Βασική χρήση

Απαντήσεις σε απορίες

Δίκτυα Υπολογιστών Εμβάθυνση και Ασκήσεις στο Επίπεδο Μεταφοράς και στο Επίπεδο Εφαρμογής Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Η απάντηση αυτή λαμβάνει 5 μονάδες. Και αφού βέβαια ο εξεταζόμενος γράψει το γράμμα της σωστής απάντησης μόνο.

Κεφάλαιο 3: Επίπεδο Μεταφοράς

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

Κεφάλαιο 3: Επίπεδο Μεταφοράς. Κεφάλαιο 3. Υπηρεσίες και πρωτόκολλα µεταφοράς. Στόχοι: επίπεδο µεταφοράς: 3.5 Συνδεσιστρεφής. 3.1 Υπηρεσίες επιπέδου

Πρωτόκολλα επανεκποµπής

Έλεγχος Συµφόρησης και Ενεργή ιαχείριση Ουρών στο ιαδίκτυο ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Μάθημα 6: Αρχιτεκτονική TCP/IP

Δίκτυα ΙΙ Τομέας Πληροφορικής,

Κεφάλαιο 3 Επίπεδο Μεταφοράς

ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ Βελώνης Γεώργιος ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ. Μάθημα 2ο. Βελώνης Γεώργιος - 1ο Τ.Ε.Ε. Κατερίνης. Καθηγητής Πληροφορικής ΠΕ20 2-1

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Δίκτυα Επικοινωνίας και Υπολογιστών

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Υλοποίηση Εφαρμογής Μεταφοράς Αρχείων Βασισμένη στο Πρωτόκολλο SCTP Πειράματα Αξιολόγησης Πρωτοκόλλου. Φλωρίδης Μ.

Κεφάλαιο 3: Επίπεδο Μεταφοράς. Κεφάλαιο 3. Υπηρεσίες και πρωτόκολλα µεταφοράς

Transmission Control Protocol. Transmission Control Protocol

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Θέματα Πανελλαδικών Εξετάσεων

Ατοµική ιπλωµατική Εργασία ΑΞΙΟΛΟΓΗΣΗ ΕΠΙ ΟΣΗΣ ΠΡΩΤΟΚΟΛΛΩΝ ΜΕΤΑΦΟΡΑΣ ΕΦΑΡΜΟΓΩΝ ΠΟΛΥΜΕΣΩΝ. Αντρέας Φλωρίδης ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

1.1. Κινηµατική Οµάδα Γ.

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Εργαστήριο Wireshark: TCP

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

1η Οµάδα Ασκήσεων. Τµήµα επεξεργασίας σήµατος του αναγεννητή

Υπόστρωμα Ελέγχου Πρόσβασης Μέσου. Medium Access Control Sub-layer.

Μηχανική ΙI Ροή στο χώρο των φάσεων, θεώρηµα Liouville

Transcript:

Έλεγχος συµφόρησης µε το Πρωτόκολλο TCP 1. Έλεγχος συµφόρησης Το κύριο χαρακτηριστικό που παρουσιάζει το Πρωτόκολλο TCP είναι ότι υποστηρίζει µε αξιοπιστία µια υπηρεσία µεταφοράς µεταξύ δύο διαδικασιών οι οποίες τρέχουν σε διαφορετικούς υπολογιστές. Ένα άλλο πολύ σηµαντικό χαρακτηριστικό του TCP είναι ότι διαθέτει µηχανισµό ελέγχου συµφόρησης. Αυτό είναι ιδιαίτερα ενδιαφέρον δεδοµένου ότι το επίπεδο IP δεν παρέχει ανατροφοδότηση στους τελικούς σταθµούς σχετικά µε τη συµφόρηση του δικτύου. Επίσης, οι αλγόριθµοι ελέγχου της συµφόρησης που διαθέτει το TCP είναι µια σηµαντική διαφορά που έχει αυτό το πρωτόκολλο από το συζυγές του UDP. Οι αλγόριθµοι TCP προλαµβάνουν τον αποστολέα από του να υπερβεί τα όρια του δικτύου. Το πρωτόκολλο TCP µπορεί να προσαρµόζει τον αποστολέα ώστε να αποφεύγει την πιθανή συµφόρηση. Μέχρι σήµερα πολλές βελτιώσεις έχουν προταθεί για το TCP. Πολλές από αυτές έχουν ήδη προστεθεί στο TCP, αλλά η περιοχή βρίσκεται ακόµη σε έρευνα. Οι σύγχρονες εφαρµογές του TCP περιέχουν µερικούς βασικούς αλγορίθµους ως standard αλγορίθµους. Οι βασικοί αυτοί αλγόριθµοι είναι οι ακόλουθοι 4: Αλγόριθµος αργής εκκίνησης (Slow start) Αλγόριθµος αποφυγή συµφόρησης (Congestion avoidance) Αλγόριθµος ταχείας επανεκποµπής (Fast retransmit) Αλγόριθµος ταχείας ανάκτησης (Fast recovery) Ας δούµε κατ αρχήν µια γενική θεώρηση του µηχανισµού του ελέγχου συµφόρησης που παρέχει το TCP. - Ας συµβολίσουµε τον αριθµό των επιτρεπόµενων µη αναγνωρισµένων (unacknowledged) segments ως w. Ο αριθµός αυτός συχνά αναφέρεται και ως µέγεθος του παραθύρου TCP (window size). - Ένα σηµαντικό µέτρο της απόδοσης µιας σύνδεσης TCP είναι η ρυθµοαπόδοση (throughput) δηλ. ο ρυθµός µε τον οποίο µεταδίδονται τα δεδοµένα από τον αποστολέα στον παραλήπτη. Στην ιδανική περίπτωση, µια σύνδεση TCP θα πρέπει να µεταδίδει δεδοµένα ταχύτατα (συνεπώς, µπορεί να έχει σε εκκρεµότητα όσο µεγάλο αριθµό ανεπιβεβαίωτων (unacknowledged) πακέτων είναι δυνατόν), εφ 'όσον η σύνδεση δεν έχει διακοπεί (σε δροµολογητές) λόγω συµφόρησης. Σε γενικές γραµµές, µια σύνδεση TCP ξεκινά µε µια µικρή τιµή του w και στη συνέχεια "ανιχνεύει" την ύπαρξη πρόσθετου ελεύθερου εύρους ζώνης στην διαδροµή αυξάνοντας την τιµή του w. Στη συνέχεια η σύνδεση TCP συνεχίζει να αυξάνει το w έως ότου εµφανιστεί απώλεια σε κάποιο σηµείο της γραµµής µεταφοράς δεδοµένων. Η απώλεια της γραµµής µεταφοράς δεδοµένων ανιχνεύεται είτε µε την εκπνοή του χρόνου (timeout) είτε από αριθµό διπλών επιβεβαιώσεων (acknowledgements)). Όταν συµβεί µια τέτοια απώλεια, τότε η σύνδεση TCP µειώνει τον ρυθµό περιορίζοντας την αύξηση του w κατά 1 για µικρότερο επίπεδο εκποµπής δεδοµένων και στη συνέχεια αρχίζει και πάλι την ανίχνευση του µη διαθέσιµο εύρος ζώνης αυξάνοντας σιγά-σιγά την τιµή του w. -1-

Εάν µια σύνδεση µεταδίδει w segments µεγέθους MSS bytes σε κάθε RTT (sec), τότε το throughput, ή αλλιώς ο ρυθµός µετάδοσης της σύνδεσης, είναι: Throughput = w MSS RTT (bytes / sec) Γραµµή TCP µε πολλαπλές συνδέσεις. Ας υποθέσουµε τώρα ότι έχουµε K συνδέσεις TCP οι οποίες διέρχονται από µια γραµµή µέγιστης ικανότητας µεταφοράς δεδοµένων R. Ας υποθέσουµε ακόµη, ότι δεν υπάρχουν πακέτα UDP τα οποία να ρέουν πάνω από αυτήν την γραµµή, και ότι κάθε σύνδεση TCP µεταφέρει µια µεγάλη ποσότητα δεδοµένων, και ότι καµία από αυτές τις συνδέσεις TCP δεν βρίσκεται σε κατάσταση συµφόρησης. Στην ιδανική αυτή περίπτωση, τα µεγέθη των παραθύρων των συνδέσεων TCP οι οποίες διέρχονται από αυτό το σύνδεσµο θα πρέπει να είναι τέτοια ώστε κάθε σύνδεση να έχει απόδοση µε τιµή R/K Ωστόσο, ο µέσος όρος του ρυθµού των από άκρο σε άκρο συνδέσεων δεν µπορεί να υπερβαίνει τον ελάχιστο ρυθµό ο οποίος επιτυγχάνεται για όλες τις γραµµές κατά µήκος της διαδροµής από το ένα άκρο στο άλλο άκρο. Αυτός είναι ο ρυθµός εκποµπής, της µιας σύνδεσης µπορεί να εκφραστεί ως: r =min { R 1 /K 1,..., R N / K N }. Ο στόχος του TCP είναι να παρέχει τουλάχιστον τον ρυθµό r σε κάθε τέτοια σύνδεση. (Στην πραγµατικότητα, ο τύπος για το r είναι πιο περίπλοκος, καθώς θα πρέπει να λάβουµε υπόψη το γεγονός ότι µια ή περισσότερες από τις εµπλεκόµενες συνδέσεις ενδέχεται να υποστεί συµφόρηση από κάποιο άλλο παράγοντα και ως εκ τούτου δεν µπορεί χρησιµοποιήστε το αντίστοιχο µέρος του εύρους ζώνης του, Rn/Kn. Στην περίπτωση αυτή, η τιµή του r θα είναι διαφορετικό από την min{ R1/K1,..., RN/KN }. ) 2. Έλεγχος συµφόρησης TCP µε αλγόριθµο σταδιακής αύξησης και πολλαπλής µείωσης (AIMD) Μια σύνδεση TCP έχει σε κάθε πλευρά της ένα buffer λήψης και ένα buffer για αποστολή, και χειρίζεται πολλές µεταβλητές όπως LastByteRead, RcvWin, κλπ.. Ο µηχανισµός ελέγχου συµφόρησης TCP παρακολουθεί σε κάθε πλευρά της σύνδεσης δύο πρόσθετες µεταβλητές: τα παράθυρα συµφόρησης (CongWin, RcvWin) και το threshold. - Το παράθυρο συµφόρησης, συµβολίζεται ως CongWin (και σε µερικά κείµενα συµβολίζεται και ως cwnd). To CongWin επιβάλλει έναν περιορισµό στην κίνηση που µπορεί να στείλει ένας σταθµός σε µια σύνδεση. Συγκεκριµένα, καθορίζει το πλήθος των ανεπιβεβαίωτων πακέτων που µπορεί να έχει ένας σταθµός µέσα σε µια σύνδεση TCP. - Το παράθυρο RcvWin είναι το παράθυρο που δηµοσιοποιεί ο δέκτης. -2-

Σε κάθε περίπτωση το πλήθος των ανεπιβεβαίωτων πακέτων δεν µπορεί να υπερβαίνει το ελάχιστο όριο των παραµέτρων CongWin και RcvWin, δηλαδή: LastByteSent - LastByteAcked <= min{congwin, RcvWin}. Ας δούµε τώρα πώς το παράθυρο συµφόρησης (CongWin) εξελίσσεται καθ 'όλη τη διάρκεια ζωής µιας TCP σύνδεσης. Για να επικεντρωθούµε στον έλεγχο συµφόρησης (σε αντίθεση µε τον έλεγχο της ροής), ας υποθέσουµε ότι ο TCP buffer λήψης είναι τόσο µεγάλος, ώστε ο περιορισµός που θέτει το µέρος που λαµβάνει δηλ. η µεταβλητή RcvWin µπορεί να αγνοηθεί. Σε αυτή την περίπτωση, το ποσό των µη αναγνωρισµένων δεδοµένων (unacknowledged) ενός σταθµού τα οποία µπορεί να έχει µια σύνδεση TCP, περιορίζεται αποκλειστικά και µόνο από την µεταβλητή CongWin. Στη συνέχεια, ας υποθέσουµε ότι ο αποστολέας έχει µια µεγάλη ποσότητα δεδοµένων να στείλει σε έναν δέκτη. Μόλις δηµιουργηθεί µια TCP σύνδεση µεταξύ δύο τελικών συστηµάτων, τότε η διαδικασία αποστολής του αποστολέα, αρχίζει να µεταφέρει bytes στον TCP buffer που διαθέτει. Το TCP αρπάζει τµήµατα µεγέθους MSS, προσθέτει TCP header σε κάθε τµήµα και έτσι δηµιουργούνται πακέτα TCP. Στην συνέχεια περνάει τα segmets αυτά στο επίπεδο δικτύου για να ακολουθήσουν στην συνέχεια την πορεία µετάδοσης τους µέσω του δικτύου. Φάση 1: Αλγόριθµος αργής εκκίνησης (Slow start) Το παράθυρο συµφόρησης (CongWin) TCP ρυθµίζει τα χρονικά διαστήµατα κατά τα οποία θα αποστέλλονται τα segments στο δίκτυο (δηλ., µετά από πόσο χρόνο θα τα παραδίνει στο επίπεδο δικτύου). Αρχικά, το παράθυρο συµφόρησης είναι ίσο µε 1 MSS. Το TCP στέλνει το πρώτο segment στο δίκτυο και περιµένει για µια αναγνώριση. Αν αυτό το τµήµα αναγνωριστεί πριν εκπνεύσει ο χρόνος του χρονοµέτρου, τότε ο αποστολέας αυξάνει το παράθυρο συµφόρησης από 1 MSS σε 2, και στέλνει 2 segments. Εάν αυτά τα segments αναγνωρισθούν πριν εκπνεύσουν οι timers για το καθένα από τα πακέτα, τότε ο αποστολέας για κάθε ένα από τα αναγνωρισµένα segments αυξάνει το παράθυρο συµφόρησης κατά 1 MSS δηµιουργώντας ένα παράθυρο συµφόρησης µε 4 MSS, και στέλνει 4 segments. Αυτή η διαδικασία συνεχίζεται για όσο διάστηµα το παράθυρο συµφόρησης είναι κάτω από το threshold και οι επιβεβαιώσεις φθάνουν πριν από την εκπνοή των χρονικών ορίων που έχουν οι timers. Κατά τη διάρκεια αυτής της φάσης της διαδικασίας ελέγχου συµφόρησης, το παράθυρο συµφόρησης (CongWin) αυξάνεται εκθετικά. ηλαδή, το παράθυρο συµφόρησης ξεκινά αποστολή µε 1 MSS, µετά από ένα χρονικό κύκλο ( round-trip time -RTT) το παράθυρο αυξάνεται σε 2 segments, µετά από δύο RTTs το παράθυρο αυξάνεται σε 4 segments, µετά από τρεις RTTs το παράθυρο αυξάνεται σε 8 segments, κλπ. (βλ. Σχήµα 1) -3-

Σχήµα 1 Αλγόριθµος TCP 'Αργής εκκίνησης' (phase slow start) Αυτή η φάση του αλγορίθµου ονοµάζεται αργή εκκίνηση ( slow start ) επειδή αρχίζει µε ένα µικρό παράθυρο συµφόρησης ίσο µε 1 MSS. (Ο ρυθµός µετάδοσης της σύνδεσης ξεκινά αργά αλλά επιταχύνει γρήγορα.) (Βλ. Σχήµα 1 και 2) Φάση 2: Αλγόριθµος αποφυγής συµφόρησης Congestion avoidance Η φάση αργής εκκίνησης τελειώνει όταν το µέγεθος του παραθύρου υπερβεί την τιµή του threshold. Μόλις το παράθυρο συµφόρησης αποκτήσει µεγαλύτερη τιµή από την τρέχουσα τιµή του threshold, τότε το παράθυρο συµφόρησης (CongWin) αυξάνεται γραµµικά και όχι εκθετικά. Συγκεκριµένα, αν w είναι η τρέχουσα τιµή του παραθύρου συµφόρησης, και το w γίνει µεγαλύτερο από την τιµή του threshold, και εφ όσον έχουν φτάσει όλες οι w επιβεβαιώσεις (Acks), τότε το TCP αντικαθιστά w σε w + 1. Αυτό έχει ως αποτέλεσµα την αύξηση του παραθύρου συµφόρησης κατά 1 σε κάθε RTT για το οποίο φτάνουν οι αντίστοιχες επιβεβαιώσεις του παραθύρου. Αυτός ο αλγόριθµος ονοµάζεται αποφυγή συµφόρησης (congestion avoidance), διότι ελαττώνει τον ρυθµό αύξησης των δεδοµένων, αποφεύγοντας έτσι την άµεση συµφόρηση. (Βλ. Σχήµα 2). Η φάση αποφυγής συµφόρησης συνεχίζεται για όσο διάστηµα οι επιβεβαιώσεις (Acks) φθάνουν πριν από αντίστοιχα χρονικά όρια τους. Φάση 3: Congestion Έστω ότι το TCP βρίσκεται σε φάση λειτουργίας αποφυγής συµφόρησης, δηλ οι εκποµπές segments αυξάνονται γραµµικά. Όµως το µέγεθος του παραθύρου, στο TCP και συνεπώς η ταχύτητα µε την οποία ο αποστολέας µπορεί να στείλει δεδοµένα, δεν µπορεί να αυξάνεται για πάντα. -4-

Έτσι, κάποια στιγµή ο ρυθµός TCP θα γίνει τέτοιος ώστε σε κάποιο σηµείο κατά µήκος της διαδροµής θα γίνει κορεσµός, και στη γραµµή τελικώς θα παρουσιαστούν απώλειες πακέτων. Π.χ. σ έναν router θα παρουσιαστεί υπερχείλιση πακέτων. Αυτός ο κορεσµός ή η απώλεια των πακέτων θα γίνει αντιληπτή µε το ότι θα εκπνεύσει ο χρόνος (RTT)από την πλευρά του αποστολέα). Όταν λήξει το χρονικό όριο (timeout), τότε γίνονται δύο κινήσεις: - η τιµή του threshold ορίζεται αυτοµάτως εις το ήµισυ της τιµής του CongWin τρέχοντος παραθύρου συµφόρησης (CongWin) ( threshold = ), και 2 - το παράθυρο συµφόρησης επανέρχεται στην τιµή του 1 MSS (CongWin=1). Λέµε τότε ότι έχουµε πολλαπλή µείωση στην ροή των δεδοµένων (Βλ. Σχήµα 2) Στη συνέχεια ο αποστολέας µεγαλώνει και πάλι το παράθυρο συµφόρησης µε εκθετικό ρυθµό χρησιµοποιώντας την διαδικασία αργής εκκίνησης (slow start) µέχρις ότου το παράθυρο συµφόρησης φθάσει στην νέα τιµή του threshold. Εν κατακλείδι: Όταν το παράθυρο συµφόρησης (CongWin), να είναι κάτω από την τιµή του threshold (CongWin threshold), τότε το παράθυρο συµφόρησης αυξάνεται εκθετικά. Όταν το παράθυρο συµφόρησης, είναι πάνω από την τιµή του threshold (CongWin> threshold), το παράθυρο συµφόρησης αυξάνεται γραµµικά. Κάθε φορά που παρουσιάζεται εκπνοή χρόνου (timeout), η τιµή του threshold ελαττώνεται εις το ήµισυ της τιµής του παραθύρου συµφόρησης και το παράθυρο συµφόρησης CongWin γίνεται ίσο µε 1. Εάν αγνοήσουµε τη slow start φάση, βλέπουµε ότι το TCP αυξάνει ουσιαστικά το µέγεθος του παραθύρου του κατά 1 σε κάθε χρονικό κύκλο RTT (και, συνεπώς, αυξάνει το ρυθµό µετάδοσης του) εφ όσον η γραµµή του δικτύου του δεν είναι κορεσµένη. Άν η σύνδεση είναι κορεσµένη τότε ελαττώνεται απότοµα το µέγεθος του παραθύρου στο 1. Για το λόγο αυτό, ο αλγόριθµος συµφόρησης του TCP συχνά χαρακτηρίζεται και ως αλγόριθµος µε σταδιακή αύξηση και πολλαπλή µείωση (additive-increase, multiplicative-decrease, συντοµογραφικά AIMD). Παράδειγµα. Στο Σχήµα 2 απεικονίζονται οι µεταβολές του παραθύρου συµφόρησης (CongWin) του TCP. Σε αυτό το σχήµα, η τιµή του threshold τίθεται αρχικά ίσο µε 8 (MSS). -5-

Σχήµα 2: Η µεταβολή του TCP παραθύρου συµφόρησης - Το παράθυρο συµφόρησης ανεβαίνει µε εκθετικό τρόπο µε την διαδικασία της slow start και φτάσει στο όριο στην τρίτη µετάδοση. - Το παράθυρο συµφόρησης ανεβαίνει συνέχεια γραµµικά µέχρι να εµφανισθεί απώλεια segment, η οποία γίνεται αµέσως µετά την 7 η εκποµπή. - Παρατηρείστε ότι όταν παρουσιάζεται απώλεια πακέτου, στην 7 η εκποµπή τότε το παράθυρο συµφόρησης (CongWin) είναι 12 (MSS). - Αµέσως µετά (στην 8 η εκποµπή) το threshold παίρνει την τιµή threshold=congwin/2 = 6 (MSS) και το παράθυρο συµφόρησης, ορίζεται ίσο µε CongWin=1. Και η διαδικασία συνεχίζεται. 3. Αλγόριθµοι ελέγχου συµφόρησης TCP: Tahoe, Reno and Vegas Μηχανισµός Tahoe Ο αλγόριθµος ελέγχου συµφόρησης του TCP o οποίος µόλις περιγράφηκε πιο πάνω αναφέρεται συχνά και ως αλγόριθµος Tahoe. Ένα πρόβληµα µε το αλγόριθµο Tahoe είναι ότι άν ένα segment έχει χαθεί από την πλευρά του αποστολέα τότε µπορεί να χρειαστεί να περιµένει ένα σχετικά µεγάλο χρονικό διάστηµα προκειµένου να εκπνεύσει το χρονικό όριο (timeout). Για το λόγο αυτό έχει προταθεί, µια παραλλαγή του Tahoe, που ονοµάζεται αλγόριθµος ή µηχανισµός Reno. Μηχανισµός Reno -6-

Ο µηχανισµός Reno υλοποιείται σήµερα από τα περισσότερα λειτουργικά συστήµατα. Όπως ο αλγόριθµος Tahoe, και ο Reno θέτει τιµή στο παράθυρο συµφόρησης(congwin) ίση µε 1 µετά την εκπνοή του χρόνου RTT(timeout). Ωστόσο, ο µηχανισµός Reno περιλαµβάνει επίσης ένα γρήγορο µηχανισµό αναµετάδοσης. Σύµφωνα µε τον αλγόριθµο Reno η γρήγορη αναµετάδοση προκαλείται και όταν για τη µετάδοση ενός απολεσθέντος segment, έχουν ληφθεί τα 3 διπλά ACKs. Η ενέργεια αυτή κατά κανόνα προηγείται της εκπνοής του χρόνου RTT (timeout). Ενώ ο αλγόριθµος Tahoe που επεξηγήθηκε ποιο πάνω αντιλαµβάνεται το χαµένο segment µόνο µετά την πάροδο του χρόνου (RTT timeout). Αυτή είναι και η βασική διαφορά τους, και η διαφορά αυτή κάνει το TCP µε µηχανισµό Reno να συµπεριφέρεται ακόµα καλύτερα απ ότι µε µηχανισµό Tahoe. O αλγόριθµος Reno χρησιµοποιεί επίσης ένα µηχανισµό ταχείας ανάκαµψης (fast recovery), ο οποίος ακυρώνει ουσιαστικά τη φάση αργής εκκίνησης µετά από µια γρήγορη επανα-µετάδοση. Οι περισσότερες υλοποιήσεις του Πρωτοκόλλου TCP χρησιµοποιούν σήµερα τον αλγόριθµο Reno. Υπάρχει στη βιβλιογραφία ωστόσο, ένας άλλος αλγόριθµος ο λεγόµενος αλγόριθµος Vegas, ο οποίος µπορεί να βελτιώσει την απόδοση του Reno. Μηχανισµός Vegas Οι µηχανισµοί Tahoe και Reno ενεργούν εφ όσον παρατηρηθεί συµφόρηση στο δίκτυο (δηλαδή, όταν ξεχειλίσουν οι buffers των δροµολογητών). Ο αλγόριθµος Vegas προσπαθεί να αποφύγει την συµφόρηση, προσπαθώντας να διατηρήσει παράλληλα µια καλή απόδοση. Η βασική ιδέα του Vegas είναι να ανιχνεύσει την συµφόρηση στους δροµολογητές µεταξύ πηγής και προορισµού πριν αυτή συµβεί δηλ. πριν παρουσιαστεί απώλεια πακέτων. Όταν ανιχνεύεται ότι επίκειται απώλεια πακέτου, τότε µειώνει τον ρυθµό εκποµπής δεδοµένων µε γραµµικό τρόπο. Η επικείµενη απώλεια των πακέτων στο δίκτυο, γίνεται προβλέψιµη παρατηρώντας τους RTT χρόνους των πακέτων, καθώς αυτά προσπαθούν να δροµολογηθούν από τους δροµολογητές. Σηµειώνεται ότι µε την πάροδο των ετών ο έλεγχος συµφόρησης του TCP έχει εξελιχθεί, και εξακολουθεί να εξελίσσεται. Αυτό παρουσιάζει ζωηρό ενδιαφέρον, καθ ότι το µεγαλύτερο µέρος των συνδέσεων TCP όπως είναι πχ οι SMTP, FTP και Telnet δεν θεωρούνται ικανοποιητικές για τις σηµερινές απαιτήσεις του διαδικτύου. 4. ιασφαλίζει δικαιοσύνη το πρωτόκολλο TCP; Ένας βασικός στόχος του µηχανισµού ελέγχου συµφόρησης του TCP είναι να µοιράζει το εύρος ζώνης µιας υπό συµφόρηση σύνδεσης εξίσου οµοιόµορφα µεταξύ των διαφόρων TCP συνδέσεων οι οποίες διέρχονται από την συγκεκριµένη γραµµή. Αλλά γιατί θα πρέπει ο αλγόριθµος TCP να έχει σταδιακή αύξηση και πολλαπλασιαστική µείωση, προκειµένου να πετύχει αυτόν τον σκοπό, µε δεδοµένο µάλιστα ότι διαφορετικές συνδέσεις TCP µπορεί να ξεκινήσουν σε διαφορετικές -7-

χρονικές στιγµές και οι οποίες συνδέσεις σε µια δεδοµένη χρονική στιγµή µπορεί να έχουν και διαφορετικά µεγέθη παραθύρων; Σχετικές µελέτες υποστηρίζουν µια ελαφρώς διαισθητική εξήγηση στο πρόβληµα γιατί ο έλεγχος συµφόρησης του TCP συγκλίνει τελικά στο να διαµοιράζει το εύρος ζώνης µιας υπό συµφόρηση σύνδεσης σε ίσα µέρη µεταξύ ανταγωνιζόµενων συνδέσεων TCP. Ίση κατανοµή εύρους ζώνης. Ας θεωρήσουµε την απλή περίπτωση δύο συνδέσεων TCP οι οποίες µοιράζονται µία κοινή γραµµή, όπως φαίνεται στο Σχήµα 3. - Υποθέτουµε ότι το ο συνολικά διαθέσιµος ρυθµός µετάδοσης της γραµµής είναι R. - Υποθέτουµε ότι οι δύο συνδέσεις έχουν το ίδιο µέγεθος CongWin (MSS) και κοινό χρόνο RTT ώστε να έχουν περίπου την ίδια απόδοση(throughput)). - Υποθέτουµε ακόµη ότι η ποσότητα δεδοµένων για αποστολή είναι µεγάλη, και ότι καµία άλλη TCP σύνδεση ή UDP datagrams δεν χρησιµοποιούν την κοινή αυτή γραµµή. Επίσης, - Παραλήπουµε την slow start φάση του TCP, και υποθέτουµε ότι οι TCP συνδέσεις λειτουργούν σε φάση αποφυγής συµφόρησης για κάθε χρονική στιγµή. Σχήµα 3: ύο TCP συνδέσεις οι οποίες µοιράζονται την ίδια γραµµή (link) υπό συνθήκες συµφόρησης Το Σχήµα 4 εµφανίζει την συνολική απόδοση(throughput) R, η οποία πραγµατοποιείται από τις δύο TCP συνδέσεις 1 και 2. Εάν το πρωτόκολλο TCP διαµοιράζει την ολική απόδοση µεταξύ των δύο συνδέσεων, τότε η απόδοση λογικά θα πρέπει να κινείται πάνω σε µια γραµµή µε κλίση 45 µοιρών, όπως στο φαίνεται στο Σχήµα 4. Στην ιδανική περίπτωση, το άθροισµα των δύο αποδόσεων (throughputs) πρέπει να είναι ίση µε R. Σε µια τέτοια περίπτωση η διακίνηση δεδοµένων σε κάθε σύνδεση θα πρέπει να πλησιάζει στο ήµιση της ολικής απόδοσης της γραµµής (R/2) ώστε να έχουµε «ίσο µερίδιο εύρος ζώνης" σε κάθε σύνδεση και ταυτόχρονα την «πλήρη αξιοποίηση εύρος ζώνης" της γραµµής δηλ. R. -8-

Ας υποθέσουµε ότι τα µεγέθη παραθύρου TCP είναι τέτοια ώστε σε µια δεδοµένη χρονική στιγµή, οι συνδέσεις 1 και 2 να πραγµατοποιούν αποδόσεις (throughputs) που απεικονίζονται από το σηµείο Α στο Σχήµα 4. Επειδή το συνολικό εύρος ζώνης της σύνδεσης που δεσµεύουν οι δύο συνδέσεις είναι µικρότερη από R, καµία απώλεια δεν συµβαίνει. Ακόµη θεωρούµε ότι οι δύο συνδέσεις βρίσκονται στην φάση του αλγορίθµου αποφυγή συµφόρησης του TCP και εποµένως και οι δύο συνδέσεις η κάθε µια ξεχωριστά- θα αυξήσουν το παράθυρο τους κατά 1. Έτσι, η κοινή απόδοση (throughput) των δύο συνδέσεων θα κινηθεί κατά µήκος µιας γραµµής µε κλίση 45 µοιρών (ισόποση αύξηση και για τις δύο συνδέσεις) ξεκινώντας από το σηµείο Α πηγαίνοντας προς το Β. Σε κάποια στιγµή, το εύρος ζώνης της σύνδεσης η οποία καταναλώνεται από κοινού στις δύο συνδέσεις θα ξεπεράσει το R (όριο απόδοσης γραµµής) και τελικά θα αρχίσει να παρουσιάζεται απώλεια πακέτων. Ας υποθέσουµε τώρα ότι οι δύο συνδέσεις 1 και 2 αντιλαµβάνονται απώλεια πακέτων όταν έχουν απόδοση η οποία δείχνεται µε το σηµείο Β του σχήµατος. Παρατηρήστε ότι στο σηµείο Β οι δύο ροές είναι γενικώς σχετικά άνισες µεταξύ τους. Άµεσος συνέπεια της αντίληψης της απώλειας πακέτων από τις δύο γραµµές, είναι οι συνδέσεις 1 και 2, µειώνουν το παράθυρο τους (CongWin) κατά 1 (συνολική µείωση 2). Ο ρυθµός της κάθε ροής υποδιπλασιάζεται και η απόδοση που προκύπτει τότε, σηµειώνεται µε το σηµείο C. Η µείωση της απόδοσης απεικονίζεται από την γραµµή BC. Το σηµείο C έχει συνολική απόδοση µικρότερη του R. Επειδή στο σηµείο C, το κοινό εύρος ζώνης έχει πλέον µικρότερη τιµή από R, οι δύο συνδέσεις αυξάνουν και πάλι την ροή των δεδοµένων τους κατά µήκος µιας γραµµής 45 µοιρών ξεκινώντας από το σηµείο C. Τελικά, θα συµβεί και πάλι απώλεια, και έστω ότι βρίσκονται στο σηµείο D, και οι δύο συνδέσεις θα αρχίσουν να µειώνουν και πάλι το µέγεθος των παραθύρων τους συνολικά κατά 2. Και ούτω καθεξής. Σχήµα 4: Απόδοση (throughput) του TCP συνδέσεων 1 και 2 Έχοντας υπ όψιν αυτήν την κίνηση ισχυριζόµαστε ότι θα πρέπει οι δύο συνδέσεις κυµαίνονται τελικά γύρω από το σηµείο ισοκατανοµής του εύρους ζώνης. Υπάρχουν διάφορες µελέτες οι οποίες ισχυρίζονται ότι οι δύο συνδέσεις θα συγκλίνουν σε αυτή τη συµπεριφορά - της ισοκατανοµής του εύρους ζώνης - -9-

ανεξάρτητα από το σηµείο πού αρχικά βρίσκονται στο δισδιάστατο χώρο! Παρά το γεγονός ότι µια σειρά από εξιδανικευµένες υποθέσεις βρίσκονται πίσω από αυτό το σενάριο, εξακολουθεί να είναι µια προσέγγιση για την συµπεριφορά του TCP, και τελικά δεχόµαστε ότι το εύρος ζώνης ισοκατανέµεται µεταξύ των συνδέσεων. Στο παραπάνω ιδανικό σενάριο, υποθέσαµε ότι µόνο οι δύο συνδέσεις TCP διασχίζουν τη γραµµή, και ότι υπάρχει µια µόνο σύνδεση για κάθε ζεύγος αποστολέαπροορισµού. Στην πράξη, οι δύο αυτές συνθήκες συνήθως δεν πληρούνται, και οι εφαρµογές τύπου client-server µπορούν γενικά να έχουν άνιση κατανοµή του διαθέσιµου εύρους ζώνης της γραµµής. Και µάλιστα λόγω της φύσης και της πολυπλοκότητας του θέµατος είναι δύσκολο να προβλέψουµε. Πολλές από τις εφαρµογές του δικτύου χρησιµοποιούν το TCP (αντί για UDP), επειδή θέλουν να κάνουν χρήση της αξιοπιστίας του πρωτοκόλλου. Ένας άλλος λόγος που επιλέγεται το TCP είναι για τον έλεγχο συµφόρησης που αυτό παρέχει. Έχουµε µόλις δει πώς ο έλεγχος συµφόρησης TCP ρυθµίζει την ταχύτητα µετάδοσης µιας εφαρµογής µέσω της µεταβλητής παράθυρο συµφόρησης(congwin). Στην πραγµατικότητα το πρόβληµα της δίκαιης κατανοµής του εύρους ζώνης από το TCP, παραµένει σε εκκρεµότητα. Αυτό οφείλεται στο γεγονός ότι µια εφαρµογή η οποία τρέχει πάνω από το TCP, µπορεί να χρησιµοποιεί πολλαπλές παράλληλες συνδέσεις. Για παράδειγµα, ένα προγράµµατα περιήγησης Web, µπορεί να ενεργοποιεί πολλαπλές παράλληλες συνδέσεις TCP ταυτόχρονα. Όταν µια εφαρµογή χρησιµοποιεί πολλαπλές παράλληλες συνδέσεις, παίρνει ένα µεγαλύτερο ποσοστό του εύρους ζώνης σε µια κορεσµένη γραµµή. Για παράδειγµα, σκεφτείτε µια γραµµή µε ρυθµό R η οποία εξυπηρετεί σε εξέλιξη 9 εφαρµογές τύπου client-server, µε κάθε µία από τις εφαρµογές να χρησιµοποιεί και µία TCP σύνδεση. Έστω τώρα ότι έρχεται µια νέα εφαρµογή η οποία ενεργοποιεί επίσης µια νέα TCP σύνδεση. Τότε θα έχουµε συνολικά 10 συνδέσεις και τότε κάθε εφαρµογή παίρνει περίπου τον ίδιο ρυθµό µετάδοσης των R/10. Αλλά αν αυτή η νέα εφαρµογή ζητήσει να ενεργοποιήσει 11 παράλληλες συνδέσεις TCP (οπότε συνολικά θα υπάρχουν 9+11=20 συνδέσεις), τότε αυτή η νέα εφαρµογή θα αποσπάσει ένα µερίδιο της τάξεως R/2, πράγµα που θα είναι µια άδικη κατανοµή του συνολικού εύρους ζώνης R. Επειδή ο Παγκόσµιος Ιστός χρησιµοποιεί συχνά και πολλαπλές παράλληλες συνδέσεις, τελικώς η κυκλοφορία είναι αρκετά διάχυτη και περίπλοκος ώστε να µπορέσουµε να την µοντελοποιήσουµε. -10-