Έλεγχος Συμφόρησης 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 δημιουργία επιπλέον κίνησης στον ήδη congested router Συμφόρηση!
Έλεγχος Συμφόρησης 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 2RTT+o/R+S/R+RTT-2S/R =3RTT+O/R-S/R gia W=2 kai K= 4/2-1 = 1; S/R + RTT - W S/R * (O/W ) - 1 Latency = 2 RTT + O/R + (K-1)[S/R + RTT - W S/R]
Μοντελοποίηση καθυστέρησης TCP – με δυναμικό παράθυρο συμφόρησης Gia w=1 kai O = 2S k = 2 2RTT+O/R +S/R+RTT – WS/R = 2RTT+O/R+RTT-S/R Gia w=2 kai O =4S k=2 2RTT+O/R +S/R+RTT – WS/R = 2RTT+O/R+RTT-2S/R Gia w=4 kai O = 8S k =2 2RTT+O/R +S/R+RTT – WS/R = 2RTT+O/R+RTT-4S/R
Ασκήσεις Από Δικτύωση Υπολογιστών James Kurose, Keith Ross Σελ 287 άσκηση 26 Σελ 288 άσκηση 31