130 likes | 242 Views
Έλεγχος Συμφόρησης TCP. Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2008-2009. Μαρία Κουτσογιαννάκη. Λόγοι συμφόρησης. Ο Host A στέλνει στο δίκτυο δεδομένα με μέσο ρυθμό λ in = # bytes/sec O Host B στέλνει στο δίκτυο δεδομένα με μέσο ρυθμό λ in = # bytes/sec
E N D
Έλεγχος Συμφόρησης TCP Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2008-2009 Μαρία Κουτσογιαννάκη
Λόγοι συμφόρησης • Ο Host A στέλνει στο δίκτυο δεδομένα με μέσο ρυθμό λin = #bytes/sec • O Host B στέλνει στο δίκτυο δεδομένα με μέσο ρυθμό λin = #bytes/sec • O Router εξυπηρετεί με ρυθμό C
Λόγοι συμφόρησης – Απλό Σενάριο • Θεωρούμε απεριόριστο buffer οπότε τα πακέτα δεν χάνονται (δεν έχουμε retransmissions) • Ο ρυθμός αποστολής λin παρουσιάζει διακυμάνσεις. Η μέση του τιμή φαίνεται στο γράφημα. Ο μέσος ρυθμός με τον οποίο λαμβάνει η εφαρμογή στο άλλο άκρο είναι λout • Λόγω ελέγχου ροής του TCP λin = λout • Λόγω ύπαρξης του B, ο router δεν μπορεί να εξυπηρετήσει τον Α με ρυθμό μεγαλύτερο από C/2
Λόγοι συμφόρησης – Απλό Σενάριο • Ο Host Α όταν στέλνει στο δίκτυο με ρυθμό λin κοντά στα όρια C/2 δημιουργεί καθυστέρηση των πακέτων του • Στιγμιαίο λin ≠ στιγμιαίο λout τα πακέτα καθυστερούν στον buffer του router • Η από άκρο-σε-άκρο καθυστέρηση των πακέτων της εφαρμογής για τον Host A:
Λόγοι συμφόρησης • Αν ο buffer είναι πεπερασμένος, αύξηση της καθυστέρησης στην ουρά του buffer υπερχείλιση • Υπερχείλιση αναμετάδοση χαμένων πακέτων από το TCP δημιουργία επιπλέον κίνησης στον ήδη congestedrouter Συμφόρηση!
Έλεγχος Συμφόρησης TCP • Το TCP κάνει έλεγχο ροής όχι μόνο για το καλό της εφαρμογής αλλά και για το καλό του δικτύου • LastByteSent - LastByteAcked <= min{CongWin, RcvWin} • Το παράθυρο συμφόρησης μειώνεται όταν ο αποστολέας ανιχνεύσει συμφόρηση, δηλαδή όταν: • λάβει 3 γνωστοποιήσεις για το ίδιο πακέτο • λήξει ο μετρητής timeout
Αλγόριθμος ελέγχου συμφόρησης (1/2) • Αρχικοποίηση παραθύρου συμφόρησης και ενός κατωφλίου ssthresh • CongWin = Maximum Segment Size (maximum IP datagram size) • Threshold ssthresh<=advertised window • Φάση αργής εκκίνησης • Το CongWin αυξάνεται εκθετικά σε κάθε κύκλο μετάδοσης RTT (διπλασιάζεται) μέχρι ένα κατώφλι ssthresh • Φάση αποφυγής συμφόρησης • Το CongWin όταν υπερβεί το ssthresh αυξάνει κατά 1 MSS ανά RTT • Αντίδραση σε συμβάντα λήψης 3 ίδιων ACK • Reno: CongWin’ = CongWin/2, ssthresh = CongWin/2, φάση αποφυγής σύγκρουσης • Tahoe: CongWin’ = 1 MSS, ssthresh = CongWin/2, φάση αργής εκκίνησης • Αντίδραση σε συμβάντα λήξης χρόνου • Reno, Tahoe: CongWin’ = 1 MSS, ssthresh = CongWin/2, φάση αργής εκκίνησης
Αλγόριθμος έλεγχου συμφόρησης (2/2) Reno Tahoe
Μοντελοποίηση καθυστέρησης TCP – χωρίς συμφόρηση • Λανθάνουσα καθυστέρηση (latency) L: • Χρόνος εκκίνησης TCP– χρόνος λήψης αιτούμενου αντικειμένου RTT RTT 2 RTT + O/R
Μοντελοποίηση καθυστέρησης TCP – με στατικό παράθυρο συμφόρησης • Ο εξυπηρετητής δέχεται ACK ενός segment πριν ολοκληρώσει τη μετάδοση του πρώτου παραθύρου 2 RTT + O/R
Μοντελοποίηση καθυστέρησης TCP – με στατικό παράθυρο συμφόρησης • Ο εξυπηρετητής μεταδίδει το πρώτο παράθυρο και περιμένει ένα ACK για να μπορέσει να μεταδώσει το επόμενο τμήμα 2 RTT + O/R S/R + RTT - W S/R * (O/W ) - 1 Latency = 2 RTT + O/R + (K-1)[S/R + RTT - W S/R]
Μοντελοποίηση καθυστέρησης TCP – με δυναμικό παράθυρο συμφόρησης
Ασκήσεις • Από Δικτύωση Υπολογιστών James Kurose, Keith Ross • Σελ 287 άσκηση 26 • Σελ 288 άσκηση 31