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

Σχετικά έγγραφα
Πρωτόκολλα Διαδικτύου

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

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

Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών Στρώμα Μεταφοράς (2) Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

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

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

Δίκτυα Επικοινωνιών Ι

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer)

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

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

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

Δίκτυα Επικοινωνιών. Ενότητα 3: Επίπεδο Μεταφοράς

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

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

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

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

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

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

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

Δίκτυα Υπολογιστών. Ενότητα 4: Μετάδοση δεδομένων από το στρώμα μεταφοράς. Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δίκτυα Υπολογιστών. Μαρία Παπαδοπούλη. Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΔΊΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΏΝ ΔΊΚΤΥΑ ΥΠΟΛΟΓΙΣΤΏΝ ΚΑΙ ΣΤΡΏΜΑ ΜΕΤΑΦΟΡΆΣ ΔΙΔΆΣΚΟΝΤΕΣ: ΔΡ. ΕΥΓΕΝΊΑ ΑΔΑΜΟΠΟΎΛΟΥ, ΔΡ. ΚΏΣΤΑΣ ΔΕΜΈΣΤΙΧΑΣ

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

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

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

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δίκτυα Υπολογιστών. Μαρία Παπαδοπούλη. Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

T C P. (Transmission Control Protocol) Αβραάµ Κεβρεκίδης Μανώλης Μελάκης Μάριος Ιακώβου 1

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

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

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

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

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

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

Επίπεδο Μεταφοράς (Transport Layer)

Το Επίπεδο Μεταφοράς στο Internet

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

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

Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών και Στρώμα Μεταφοράς Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

How do loss and delay occur?

ΑΝΑΛΥΣΗ TCP ΚΙΝΗΣΗΣ ΜΕ ΤΟ ΠΡΟΓΡΑΜΜΑ TCPTRACE.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

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

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

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

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

Συνδεσιστρεφής. Υπηρεσίες επιπέδου µεταφοράς Πολύπλεξη και αποπολύπλεξη Ασυνδεσιστρεφής. µεταφορά: TCP

Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP

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

Transmission Control Protocol. Transmission Control Protocol

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

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

HY-335a Project: microtcp, μία lightweight TCP βιβλιοθήκη. Deadline πρώτης ϕάσης : 19/11/ :59

Εργαστήριο Δικτύων Υπολογιστών

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Επίπεδο Μεταφοράς (Transport Layer)

Επαλήθευση Πρωτοκόλλων

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

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

Επίπεδο ύνδεσης Δεδομένων (Data Link Layer DLL)

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

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

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

ΔΙΚΤΥΑ (23-26) Π. Φουληράς

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

Κεφάλαιο 4ο ΕΠΙΠΕΔΟ ΜΕΤΑΦΟΡΑΣ

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

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

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

Προσδιορισμός της TCP. συμπεριφοράς των web εξυπηρετητών

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

ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ

Στρώμα μεταφοράς στο Internet. Δίκτυα Υπολογιστών

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

Πρωτόκολλα Μεταφοράς: UDP και TCP. Άγγελος Ρούσκας

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

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

ιαδικτυακές Εφαρµογές

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

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

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

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

Χρήση βασικών εργαλείων συλλογής πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Υλοποίηση τεχνικών για την αποφυγή συμφόρησης σε τοπικά ασύρματα δίκτυα αισθητήρων

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

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

Alternating Bit Protocol (ABP)

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

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

Transcript:

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Πρωτόκολλα Διαδικτύου 8 η Διάλεξη Δημοσθένης Κυριαζής Παρασκευή 15 Μαΐου 2015

Σημερινή διάλεξη Σύνοψη 7ης διάλεξης Επίπεδο μεταφοράς Αξιόπιστη μεταφορά δεδομένων TCP Δημιουργία TCP ACK Γρήγορη επαναποστολή TCP Έλεγχος ροής Διαχείριση συνδέσεων Έλεγχος ροής Διαχείριση συνδέσεων Συμφόρηση: Αρχές ελέγχου - αιτίες/κόστη Έλεγχος συμφόρησης TCP Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 2

Go-Back-N: Αποστολέας Κεφαλίδα (header) πακέτου με Α/Α k-bit Παράθυρο που επιτρέπει μέχρι N, διαδοχικά πακέτα χωρίς ACK ACK(n): ACK για όλα τα πακέτα με Α/Α (συμπεριλαμβανομένου) n - cumulative ACK Μπορεί να λάβει επαναλαμβανόμενα ACK Χρονόμετρο για το παλαιότερο μήνυμα που μεταδίδεται timeout(n): επαναποστολή πακέτου n και όλων με μεγαλύτερο 3 Α/Α στο παράθυρο

Λειτουργία selective repeat Δεδομένα από επάνω Εάν ο επόμενος διαθέσιμος Α/Α είναι στο παράθυρο, αποστολή πακέτου timeout(n) Επαναποστολή πακέτου n, επανεκκίνηση χρονομέτρου ACK(n) στο διάστημα [sendbase,sendbase+n] Αποστολέας Σημείωση πακέτου n ως ληφθέν Εάν το μικρότερο πακέτο χωρίς ACK είναι το n, μετατόπιση βάσης παραθύρου στο επόμενο Α/Α μηνύματος χωρίς ACK Πακέτο n στο διάστημα [rcvbase, rcvbase+n-1] Αποστολή ACK(n) Εκτός σειράς (out-of-order): buffer Στη σωστή σειρά (in-order): παράδοση (παράδοση και άλλων σε σειρά που ήταν στο buffer), μετατόπιση παραθύρου στο επόμενο πακέτου που ακόμα δεν έχει ληφθεί Πακέτο n στο διάστημα [rcvbase-n,rcvbase-1] ACK(n) Διαφορετικά Το αγνοεί Παραλήπτης 4

Δομή TCP segment URG: επείγοντa δεδομένα (γενικά δεν χρησιμ.) ACK: Αριθμός έγκυρου ACK PSH: Άμεση προώθηση δεδομένων (γενικά δεν χρησιμ.) RST, SYN, FIN: Εγκατάσταση σύνδεσης (εντολές εγκατάστασης, τερματισμού) Internet checksum (όπως στο UDP) 32 bits source port # dest port # head len sequence number acknowledgement number not used U A P R checksum S F Receive window Urg data pnter Επιλογές(variable length) Δεδομένα εφαρμογής (μεταβλητό μήκος) Μέτρηση με βάση τα bytes των δεδομένων (όχι τα segments!) Αριθμός bytes που ο παραλήπτης διατίθεται να παραλάβει 5

TCP Round Trip Time και Timeout Ανάθεση τιμής στο timeout interval: EstimatedRTT συν περιθώριο ασφαλείας Μεγάλη μεταβλητότητα στο EstimatedRTT -> μεγαλύτερο περιθώριο ασφαλείας Υπολογισμός τυπικής απόκλισης του SampleRTT από το EstimatedRTT DevRTT = (1-)*DevRTT + * SampleRTT-EstimatedRTT (typically, = 0.25) Τίθεται η τιμή του χρονικού διαστήματος TimeoutInterval = EstimatedRTT + 4*DevRTT Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 6

Σημερινή διάλεξη Σύνοψη 7ης διάλεξης Επίπεδο μεταφοράς Αξιόπιστη μεταφορά δεδομένων TCP Δημιουργία TCP ACK Γρήγορη επαναποστολή TCP Έλεγχος ροής Διαχείριση συνδέσεων Έλεγχος ροής Διαχείριση συνδέσεων Συμφόρηση: Αρχές ελέγχου - αιτίες/κόστη Έλεγχος συμφόρησης TCP Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 7

Αξιόπιστη μεταφορά δεδομένων TCP Το TCP δημιουργεί μια υπηρεσία αξιόπιστης μεταφοράς δεδομένων πάνω από το αναξιόπιστο IP Pipelined segments Συσσωρευτικά ACK Ένας χρονομέτρης επαναποστολής Η επαναποστολή προκαλείται από Γεγονότα timeout Επαναλαμβανόμενα ACK Αρχικά εξετάζουμε έναν απλοποιημένο αποστολέα Αγνοεί επαναλαμβανόμενα ACK Αγνοεί flow control, congestion control Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 8

Γεγονότα αποστολέα TCP Δεδομένα από την εφαρμογή Δημιουργία segment με Α/Α Ο Α/Α είναι ο αριθμός του πρώτου byte στο segment Εκκίνηση χρονομέτρου αν δεν εκτελείται ήδη Το χρονόμετρο αναφέρεται στο παλαιότερο segment χωρίς ACK Χρόνος λήξης: TimeOutInterval Timeout επαναποστολή segment που προκάλεσε το timeout Επανεκκίνηση timer ACK λήψης Ένα γίνεται ACK σε προηγούμενα μηνύματα που δεν είχαν γίνει ACK Ανανέωση όσων είναι γνωστό ότι έχουν γίνει ACK Εκκίνηση χρονομέτρου εάν υπάρχουν ακόμα segments χωρίς ACK 9

Aποστολέας TCP (απλοποιημένο σενάριο) L NextSeqNum = InitialSeqNum SendBase = InitialSeqNum wait for event ACK received, with ACK field value y data received from application above create segment, seq. #: NextSeqNum pass segment to IP (i.e., send ) NextSeqNum = NextSeqNum + length(data) if (timer currently not running) start timer timeout if (y > SendBase) { SendBase = y /* SendBase 1: last cumulatively ACKed byte */ if (there are currently not-yet-acked segments) start timer else stop timer } Πρωτόκολλα Διαδικτύου, 8η Διάλεξη retransmit not-yet-acked segment with smallest seq. # start timer 10

timeout timeout TCP: Σενάρια επαναποστολής (1/2) Κόμβος A Κόμβος B Κόμβος A Κόμβος B Seq=92, 8 bytes δεδομένων SendBase=92 Seq=92, 8 bytes δεδομένων X ACK=100 Seq=100, 20 bytes δεδομένων ACK=100 ACK=120 Seq=92, 8 bytes δεδομένων ACK=100 SendBase=100 SendBase=120 SendBase=120 Seq=92, 8 bytes δεδομένων ACK=120 Σενάριο απώλειας ACK Πρόωρο timeout 11

timeout TCP: Σενάρια επαναποστολής (2/2) Κόμβος A Κόμβος B Seq=92, 8 bytes δεδομένων Seq=100, 20 bytes δεδομένων X ACK=100 ACK=120 Seq=120, 15 bytes δεδομένων Συσσωρευτικό (cumulative) ACK Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 12

Σημερινή διάλεξη Σύνοψη 7ης διάλεξης Επίπεδο μεταφοράς Αξιόπιστη μεταφορά δεδομένων TCP Δημιουργία TCP ACK Γρήγορη επαναποστολή TCP Έλεγχος ροής Διαχείριση συνδέσεων Έλεγχος ροής Διαχείριση συνδέσεων Συμφόρηση: Αρχές ελέγχου - αιτίες/κόστη Έλεγχος συμφόρησης TCP Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 13

Δημιουργία TCP ACK Γεγονότα στον παραλήπτη Άφιξη segment σε σειρά με αναμενόμενο Α/Α. Όλα τα δεδομένα μέχρι το αναμενόμενο Α/Α έχουν ήδη γίνει ACK Άφιξη segment σε σειρά με αναμενόμενο Α/Α. Για ένα άλλο segment εκκρεμεί το ACK Ενέργειες στον παραλήπτη Καθυστέρηση ACK. Αναμονή μέχρι 500ms για το επόμενο segment. Εάν δεν φθάσει, αποστολή του ACK Άμεση αποστολή ενός συσσωρευτικού ACK, ώστε να γίνουν ACK και τα 2 segments που είναι στη σωστή σειρά Άφιξη segment εκτός σειράς με Α/Α μεγαλύτερο του αναμενομένου. Ανίχνευση κενού Άφιξη segment που γεμίζει το κενό μερικώς ή πλήρως Άμεση αποστολή επαναλαμβανόμενου (duplicate) ACK, υποδεικνύοντας τον Α/Α του επόμενου αναμενόμενου byte Άμεση αποστολή ACK εάν το segment Ξεκινάει στην αρχή του gap Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 14

Γρήγορη επαναποστολή (fast retransmit) TCP (1/2) Συχνά ο χρόνος για το timeout είναι μεγάλος Προκαλείται μεγάλη καθυστέρηση πριν ξαναγίνει αποστολή του πακέτου που έχει χαθεί Ανίχνευση segments που έχουν χαθεί μέσω επαναλαμβανόμενων ACK Ο αποστολέας συχνά στέλνει πολλά segments διαρκώς Αν χαθεί κάποιο segment θα υπάρχουν πολλά επαναλαμβανόμενα ACKs TCP fast retransmit Εάν ο αποστολέας λάβει 3 ACK για τα ίδια δεδομένα (τριπλά επαναλαμβανόμενα ACK) ( triple duplicate ACKs ), ξαναστέλνει το segment χωρίς ACK με το μικρότερο Α/Α Πιθανότατα αυτό το segment είχε χαθεί οπότε δε χρειάζεται να περιμένει το timeout 15

timeout Γρήγορη επαναποστολή (fast retransmit) TCP (2/2) Κόμβος A Κόμβος B Seq=92, 8 bytes δεδομένων Seq=100, 20 bytes δεδομένων X ACK=100 ACK=100 ACK=100 ACK=100 Seq=100, 20 bytes of data Γρήγορη επαναποστολή αφού ο αποστολέας λάβει τριπλό επαναλαμβανόμενο ACK 16

Σημερινή διάλεξη Σύνοψη 7ης διάλεξης Επίπεδο μεταφοράς Αξιόπιστη μεταφορά δεδομένων TCP Δημιουργία TCP ACK Γρήγορη επαναποστολή TCP Έλεγχος ροής Διαχείριση συνδέσεων Έλεγχος ροής Διαχείριση συνδέσεων Συμφόρηση: Αρχές ελέγχου - αιτίες/κόστη Έλεγχος συμφόρησης TCP Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 17

Έλεγχος ροής (flow control) TCP (1/2) Η εφαρμογή μπορεί να αφαιρεί δεδομένα από τους buffers του TCP socket. πιο αργά από ότι ο TCP αποστολέας παραδίδει (στέλνει ο αποστολέας) flow control Ο δέκτης ελέγχει τον αποστολέα ώστε ο αποστολέας να μην υπερχειλίσει το buffer του παραλήπτη στέλνοντας και πολλά δεδομένα και πολύ γρήγορα από τον αποστολέα διεργασία εφαρμογής Buffer TCP socket παραλήπτη TCP code IP code Εφαρμογή ΛΣ Στοίβα πρωτοκόλλου παραλήπτη 18

Έλεγχος ροής (flow control) TCP (2/2) Ο παραλήπτης δημοσιεύει ελεύθερο χώρο στο buffer συμπεριλαμβάνοντας την τιμή rwnd στο header TCP του segment παραλήπτη-προς-αποστολέα Το μέγεθος του RcvBuffer ορίζεται μέσω επιλογών του socket (default=4096 bytes) Πολλά ΛΣ αυτό-προσαρμόζουν το RcvBuffer Ο αποστολέας περιορίζει το μέγεθος των δεδομένων χωρίς ACK ( inflight ) μέσω της τιμής rwnd του παραλήπτη Εγγυάται ότι ο buffer του παραλήπτη δεν θα υπερχειλίσει RcvBuffer rwnd προς τις διεργασίες εφαρμογής buffered δεδομένα ελεύθερος χώρος buffer TCP segment payloads buffering στην πλευρά του παραλήπτη 19

Σημερινή διάλεξη Σύνοψη 7ης διάλεξης Επίπεδο μεταφοράς Αξιόπιστη μεταφορά δεδομένων TCP Δημιουργία TCP ACK Γρήγορη επαναποστολή TCP Έλεγχος ροής Διαχείριση συνδέσεων Έλεγχος ροής Διαχείριση συνδέσεων Συμφόρηση: Αρχές ελέγχου - αιτίες/κόστη Έλεγχος συμφόρησης TCP Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 20

Διαχείριση συνδέσεων Πριν την ανταλλαγή δεδομένων, ο αποστολέα και ο παραλήπτης handshake. Συμφωνούν Στην εγκαθίδρυση μια σύνδεσης (ο καθένας γνωρίζει την επιθυμία του άλλου για σύνδεση) Στις παραμέτρους της σύνδεσης Εφαρμογή Εφαρμογή connection state: ESTAB connection variables: seq # client-to-server server-to-client rcvbuffer size at server,client Δίκτυο connection state: ESTAB connection Variables: seq # client-to-server server-to-client rcvbuffer size at server,client Δίκτυο Socket clientsocket = newsocket("hostname","port number"); Socket connectionsocket = welcomesocket.accept(); 21

Συμφωνία εγκαθίδρυσης σύνδεσης (1/2) 2-way handshake Let s talk ESTAB OK επιλογή x req_conn(x) ESTAB acc_conn(x) ESTAB ESTAB Το 2-way handshake δεν λειτουργεί πάντα! Επαναποστολές μηνυμάτων λόγων απωλειών Αλλαγή σειράς μηνυμάτων Καθυστερήσεις μεταβλητών Έλλειψη οπτικής της άλλης πλευράς Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 22

Συμφωνία εγκαθίδρυσης σύνδεσης (2/2) Σενάρια αποτυχίας 2-way handshake επιλογή x επαναποστολή req_conn(x) req_conn(x) acc_conn(x) ESTAB επιλογή x επαναποστολή req_conn(x) req_conn(x) acc_conn(x) ESTAB ESTAB τερματισμός client req_conn(x) ολοκλήρωση σύνδεσης x Ο server ξεχνάει τη x ESTAB επαναποστολή δεδομένων (x+1) τερματισμός client δεδ. (x+1) ολοκλήρωση σύνδεσης x req_conn(x) αποδοχή δεδ. (x+1) Ο server ξεχνάει τη x Μισο-ανοιχτή σύνδεση! (χωρίς client!) ESTAB δεδομένα(x+1) ESTAB αποδοχή 23 δεδ. (x+1)

TCP 3-way handshake Ακούει επιλογή αρχ. Α/Α, x αποστολή TCP SYN μην. Αποστολή SYN ESTAB Κατάσταση client λήψη SYNACK(x) δείχνει ότι ο server είναι live; αποστολή ACK για το SYNACK; το segment μπορεί να περιέχει δεδομένα client-προς-server SYNbit=1, Seq=x SYNbit=1, Seq=y ACKbit=1; ACKnum=x+1 ACKbit=1, ACKnum=y+1 επιλογή αρχ. Α/Α, y αποστολή TCP SYNACK μην., ACK για το SYN Κατάσταση server λήψη ACK(y) δείχνει ότι ο client είναι live Ακούει Λήψη SYN ESTAB Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 24

TCP 3-way handshake: FSM closed Socket connectionsocket = welcomesocket.accept(); SYN(x) SYNACK(seq=y,ACKnum=x+1) δημιουργία νέου socket για επικοινωνία πίσω προς το client L listen Socket clientsocket = newsocket("hostname","port number"); SYN(seq=x) SYN rcvd SYN sent ACK(ACKnum=y+1) ESTAB SYNACK(seq=y,ACKnum=x+1) ACK(ACKnum=y+1) L 25

Κλείσιμο σύνδεσης TCP (1/2) Ο client και server κλείνουν ο καθένας τη σύνδεση Αποστολή TCP segment με FIN bit = 1 Απόκριση στο ληφθέν FIN με ACK Στο ληφθέν FIN, το ACK μπορεί να συνδυαστεί με το «δικό του» FIN Πολλαπλές ταυτόχρονες ανταλλαγές FIN μπορούν να διαχειριστούν Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 26

Κλείσιμο σύνδεσης TCP (2/2) Κατάσταση client ESTAB FIN_WAIT_1 FIN_WAIT_2 TIMED_WAIT clientsocket.close() Δεν μπορεί να στέλνει αλλά μπορεί να λαμβάνει Περιμένει το server να «κλείσει» Αναμονή χρόνου για 2*μέγιστο χρόνου ζωής segment FINbit=1, seq=x ACKbit=1; ACKnum=x+1 FINbit=1, seq=y ACKbit=1; ACKnum=y+1 Μπορεί ακόμα να στέλνει δεδομένα Δεν μπορεί να στέλνει δεδομένα Κατάσταση server ESTAB CLOSE_WAIT LAST_ACK CLOSED CLOSED Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 27

Σημερινή διάλεξη Σύνοψη 7ης διάλεξης Επίπεδο μεταφοράς Αξιόπιστη μεταφορά δεδομένων TCP Δημιουργία TCP ACK Γρήγορη επαναποστολή TCP Έλεγχος ροής Διαχείριση συνδέσεων Έλεγχος ροής Διαχείριση συνδέσεων Συμφόρηση: Αρχές ελέγχου - αιτίες/κόστη Έλεγχος συμφόρησης TCP Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 28

Αρχές ελέγχου συμφόρησης Συμφόρηση: Ορισμός: πολλές πηγές στέλνουν πολλά δεδομένα πολύ γρήγορα για το δίκτυο ώστε να μπορεί να τα διαχειριστεί Διαφορετικό από έλεγχο ροής! Εκδηλώσεις: Απώλεια πακέτων (υπερχείλιση buffer στους routers) Μεγάλες καθυστερήσεις (ουρές στους buffers των routers) Βασικό πρόβλημα δικτύου! Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 29

Αιτίες/κόστη συμφόρησης: Σενάριο 1 2 αποστολείς, 2 παραλήπτες 1 router, απεριόριστοι buffers Χωρητικότητα σύνδεσης: R Χωρίς επαναποστολή αρχικά δεδομένα: l in Κόμβος A Απεριόριστο κοινό εξερχ. link στους buffers throughput: l out Κόμβος B R/2 l out delay Μέγιστο throughput ανά σύνδεση: R/2 l in R/2 l in R/2 Μεγάλες καθυστερήσεις καθώς ο ρυθμός άφιξης l in, προσεγγίζει τη χωρητικότητα 30

Αιτίες/κόστη συμφόρησης: Σενάριο 2 (1/6) 1, πεπερασμένος αριθμός buffers Ο αποστολέας επαναποστέλλει πακέτα που είναι timed-out Είσοδος επιπέδου εφαρμογής= Έξοδος επιπέδου εφαρμογής : l in = l out Είσοδος επιπέδου μεταφοράς περιλαμβάνει επαναποστολές: l in l in Κόμβος A l in : αρχικά δεδομένα l' in : αρχικά δεδομένα και δεδομένα που έχουν ξανασταλεί l out Κόμβος Β buffers συνδέσεων πεπερασμένου μεγέθους 31

Αιτίες/κόστη συμφόρησης: Σενάριο 2 (2/6) Ιδανική λύση: γνώση Ο αποστολέας αποστέλλει μόνο όταν οι buffers των router είναι διαθέσιμοι R/2 l out l in R/2 αντιγραφή l in : αρχικά δεδομένα l' in : αρχικά δεδομένα και δεδομένα που έχουν ξανασταλεί l out A Ελεύθερος χώρος buffer! Κόμβος B buffers συνδέσεων πεπερασμένου μεγέθους 32

Αιτίες/κόστη συμφόρησης: Σενάριο 2 (3/6) Ιδανική λύση: Τα πακέτα που είναι γνωστό ότι χάθηκαν μπορούν να χαθούν ή να απορριφτούν στο router λόγω γεμάτων buffers Ο αποστολέας στέλνει ξανά μόνο όταν το πακέτο είναι γνωστό ότι έχει χαθεί αντιγραφή A l in : αρχικά δεδομένα l' in : αρχικά δεδομένα και δεδομένα που έχουν ξανασταλεί Βuffer χωρίς χώρο! l out Κόμβος B 33

Αιτίες/κόστη συμφόρησης: Σενάριο 2 (4/6) Ιδανική λύση: Τα πακέτα που είναι γνωστό ότι χάθηκαν μπορούν να χαθούν ή να απορριφτούν στο router λόγω γεμάτων buffers Ο αποστολέας στέλνει ξανά μόνο όταν είναι το πακέτο είναι γνωστό ότι έχει χαθεί R/2 l out l in R/2 Με αποστολή με ρυθμό R/2, κάποια πακέτα είναι επαναποστολές A l in : αρχικά δεδομένα l' in : αρχικά δεδομένα και δεδομένα που έχουν ξανασταλεί Ελεύθερος χώρος buffer! l out Κόμβος B 34

Αιτίες/κόστη συμφόρησης: Σενάριο 2 (5/6) Ρεαλιστικό: αντίγραφα Πακέτα μπορούν να χαθούν ή να απορριφτούν στο router λόγω γεμάτων buffers Ο αποστολέας βρίσκεται σε πρόωρο timeout, και αποστέλλει δυο αντίγραφα, τα οποία παραδίδονται R/2 l out l in R/2 Με αποστολή με ρυθμό R/2, κάποια πακέτα είναι επαναποστολές που συμπεριλαμβάνουν αντίγραφα που επίσης παραδίδονται! αντίγραφο timeout l in l' in l out A Ελεύθερος χώρος buffer! Κόμβος B 35

Αιτίες/κόστη συμφόρησης: Σενάριο 2 (6/6) Ρεαλιστικό: αντίγραφα R/2 Πακέτα μπορούν να χαθούν ή να απορριφτούν στο router λόγω γεμάτων buffers Ο αποστολέας βρίσκεται σε πρόωρο timeout, και αποστέλλει δυο αντίγραφα, τα οποία παραδίδονται l out l in R/2 Με αποστολή με ρυθμό R/2, κάποια πακέτα είναι είναι επαναποστολές που συμπεριλαμβάνουν αντίγραφα που επίσης παραδίδονται! Κόστη συμφόρησης: Περισσότερη εργασία (επαναποστολή) για συγκεκριμένο throughput Επαναποστολές που δε χρειάζονται: Η σύνδεση μεταδίδει πολλαπλά αντίγραφα πακέτων Μείωση throughput Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 36

Αιτίες/κόστη συμφόρησης: Σενάριο 3 (1/2) 4 αποστολείς Μονοπάτια πολλαπλών σταθμών Timeout/επαναποστολή Καθώς αυξάνεται το κόκκινο l in, όλα τα μπλε πακέτα που φθάνουν στην επάνω ουρά απορρίπτονται, το μπλε throughput τείνει στο μηδέν Κόμβος A l in : αρχικά δεδομένα l' in : αρχικά δεδομένα και δεδομένα που έχουν ξανασταλεί buffers συνδέσεων πεπερασμένου μεγέθους l out Κόμβος B Κόμβος Δ Κόμβος Γ 37

Αιτίες/κόστη συμφόρησης: Σενάριο 3 (2/2) C/2 l out l in C/2 Επιπλέον κόστος συμφόρησης: Όταν το πακέτο απορρίπτεται, κάθε χωρητικότητα που χρησιμοποιήθηκε για αυτό το πακέτο έχει χαθεί! Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 38

Προσεγγίσεις για έλεγχο συμφόρησης Έλεγχος συμφόρησης άκρο-σε-άκρο: Μη ανατροφοδότηση από το δίκτυο Η συμφόρηση συμπεραίνεται από την παρατηρούμενη απώλεια και καθυστέρηση στο end system Χρησιμοποιείται από το TCP Έλεγχος συμφόρησης με πληροφορία από το δίκτυο: Οι routers παρέχουν ανατροφοδότηση στα endsystems 1 bit δείχνει συμφόρηση (SNA, DECbit, ECN, ATM) Συγκεκριμένος ρυθμός που μπορεί να στέλνει ο αποστολέας Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 39

Σημερινή διάλεξη Σύνοψη 7ης διάλεξης Επίπεδο μεταφοράς Αξιόπιστη μεταφορά δεδομένων TCP Δημιουργία TCP ACK Γρήγορη επαναποστολή TCP Έλεγχος ροής Διαχείριση συνδέσεων Έλεγχος ροής Διαχείριση συνδέσεων Συμφόρηση: Αρχές ελέγχου - αιτίες/κόστη Έλεγχος συμφόρησης TCP Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 40

cwnd: Μέγεθος παραθύρου TCP αποστολέα χρόνος Έλεγχος συμφόρησης TCP: Πρόσθετη αύξηση / πολλαπλασιαστική μείωση πρόσθετη αύξηση παραθύρου. μέχρι την απώλεια (μείωση παραθύρου στο μισό) Οδοντωτή συμπεριφορά AIMD: εξέταση bandwidth Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 41

Λεπτομέρειες ελέγχου συμφόρησης TCP Τελευταίο byte που έγινε ACK Χώρος Α/Α αποστολέα cwnd Απεστάλη, όχι ακόμα ACK Τελευταίο byte που εστάλη Ο αποστολέας περιορίζει τη μέταδοση LastByteSent- LastByteAcked < cwnd Ρυθμός αποστολής TCP Αποστολή cwnd bytes, αναμονή RTT για τα ACK, αποστολή περισσότερων bytes rate ~ cwnd RTT bytes/sec Το cwnd είναι δυναμικό, βάσει των αντιληφθέντων συμφορήσεων Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 42

RTT Αργή έναρξη TCP Όταν αρχίζει η σύνδεση, ο ρυθμός αυξάνεται γεωμετρικά μέχρι την πρώτη απώλεια Αρχικά cwnd = 1 MSS Διπλασιασμός cwnd κάθε RTT Γίνεται αυξάνοντας το cwnd σε κάθε ληφθέν ACK Κόμβος A Κόμβος B χρόνος Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 43

Γρήγορη αντίδραση: Ανίχνευση και αντίδραση σε απώλειες Απώλεια που υποδεικνύεται από timeout Το cwnd ορίζεται σε 1 MSS Το παράθυρο μεγαλώνει γεωμετρικά (όπως στην αργή έναρξη) μέχρι κάποιο όριο, μετά αυξάνει γραμμικά Απώλεια που υποδεικνύεται από 3 διπλά ACK: TCP RENO Τα διπλά ACK δείχνουν ότι το δίκτυο μπορεί να παραδίδει κάποια segments Το cwnd μειώνεται στο μισό και μετά αυξάνει γραμμικά Το TCP Tahoe πάντα θέτει το cwnd σε 1 (timeout ή 3 διπλά ACK) Πρωτόκολλα Διαδικτύου, 8η Διάλεξη 44

TCP: Αλλαγή από αρχή έναρξη σε αποφυγή συμφόρησης Η γεωμετρική αύξηση αλλάζει σε γραμμική όταν το cwnd λαμβάνει το 1/2 της τιμής του πριν το timeout Υλοποίηση Μεταβλητή ssthresh Σε γεγονός απώλειας, το ssthresh ορίζεται σε 1/2 της τιμής του cwnd πριν την απώλεια 45

Σύνοψη: Έλεγχος συμφόρησης TCP L cwnd = 1 MSS ssthresh = 64 KB dupackcount = 0 timeout ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 επαναποστολή απωλ. segment dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 επαναποστολή απωλ. segment duplicate ACK dupackcount++ Αργή έναρξη Νέο ACK! new ACK cwnd = cwnd+mss dupackcount = 0 αποστολή νέων segment(s), όπως επιτρ. cwnd > ssthresh L timeout ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 επαναποστολή απωλ. segment timeout ssthresh = cwnd/2 cwnd = 1 dupackcount = 0 επαναποστολή απωλ. segment Γρήγορη αντίδραση new ACK cwnd = cwnd + MSS (MSS/cwnd) dupackcount = 0 αποστολή νέων segment(s), όπως επιτρ.. Αποφυγή συμφόρησης Νέο ACK! New ACK cwnd = ssthresh dupackcount = 0 Νέο ACK! duplicate ACK dupackcount++ dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 επαναποστολή απωλ. segment duplicate ACK cwnd = cwnd + MSS αποστολή νέων segment(s), όπως επιτρ. 46