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

Σχετικά έγγραφα
ΔΊΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΏΝ ΔΊΚΤΥΑ ΥΠΟΛΟΓΙΣΤΏΝ ΚΑΙ ΣΤΡΏΜΑ ΜΕΤΑΦΟΡΆΣ ΔΙΔΆΣΚΟΝΤΕΣ: ΔΡ. ΕΥΓΕΝΊΑ ΑΔΑΜΟΠΟΎΛΟΥ, ΔΡ. ΚΏΣΤΑΣ ΔΕΜΈΣΤΙΧΑΣ

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

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

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

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

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

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

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

ΑΣΚΉΣΕΙΣ ΔΙΔΆΣΚΟΝΤΕΣ: ΔΡ. ΕΥΓΕΝΊΑ ΑΔΑΜΟΠΟΎΛΟΥ, ΔΡ. ΚΏΣΤΑΣ ΔΕΜΈΣΤΙΧΑΣ. ΔΠΜΣ «Τεχνο- Οικονομικά Συστήματα» Τεχνολογία Πληροφορίας και Τηλεπικοινωνιών

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

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

Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP

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

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

Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP

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

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

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

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

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

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

Transmission Control Protocol. Transmission Control Protocol

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

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

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Εργαστηριακή Άσκηση 4

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

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

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

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

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

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

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

Δίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP

Με λίγα λόγια, το TCP/IP καθορίζει τον τρόπο που πακετάρονται και μεταφέρονται τα δεδομένα της σύνδεσής μας.

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

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

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

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

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

Εξοικείωση με τις εντολές ipconfig και ping

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

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

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

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

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

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

ίκτυα Υπολογιστών Φεβρουάριος 2002

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

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

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

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

Επαναληπτικές Ασκήσεις Μαθήματος

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ. Μελέτη Σημείου Πρόσβασης ως ασύρματου επαναλήπτη

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

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

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

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

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

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

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

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

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

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

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

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

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

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


1.8 Το μοντέλο OSI 1 / 33

Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 8: ΈλεγχοςΡοήςΑνοικτούΒρόχου Φώτης Βαρζιώτης

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

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

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

Transcript:

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

TCP - Αξιόπιστη μετάδοση 2 Ρύθμιση της τιμής του Timeout q Αρχική τιμή του RTO: q Ο πομπός θέτει την αρχική τιμή του RTO: RTO 0 = 3 sec Υπολογισμός του RTO μετά την πρώτη μέτρηση του RTT: srtt 1 = SampleRTT rttvar 1 = SampleRTT / 2 RTO 1 = srtt 1 + 4 rttvar 1

TCP - Αξιόπιστη μετάδοση 3 Ρύθμιση της τιμής του Timeout Αν ληφθεί ACK για τεµάχιο που επαναµεταδόθηκε, ο ποµπός δεν µπορεί να ξέρει αν η ACK ανήκει στο αρχικό ή στο τεµάχιο που επαναµεταδόθηκε. RTT? RTT? Timeout! segment retransmission of segment ACK q Αλγόριθμος του Karn: q Μην ενημερώνεις την RTT για τεμάχια που επαναμεταδόθηκαν. q Ξαναξεκίνα τις μετρήσεις RTT μόνο μετά τη λήψη ACK που αφορά κανονικό τεμάχιο. q Όταν εμφανιστεί ένα timeout, η τιμή του RTO διπλασιάζεται (εκθετική οπισθοχώρηση) q RTO n+1 = min ( 2 RTO n, 64) seconds.

TCP Διαχείριση συνδέσεων 4 Εγκατάσταση σύνδεσης Απόλυση σύνδεσης Ειδικά σενάρια Διαγράμματα καταστάσεων

TCP Εγκατάσταση σύνδεσης 5 Πριν ανταλλάξουν δεδομένα, ο πομπός και ο δέκτης πραγματοποιούν τριμερή χειραψία. q q Συμφωνούν για την εγκατάσταση της σύνδεσης (καθένας γνωρίζει ότι ο άλλος επιθυμεί την εγκατάσταση σύνδεσης). Συμφωνούν για τις παραμέτρους σύνδεσης. application connection state: ESTAB connection variables: seq # client-to-server server-to-client rcvbuffer size at server,client network application connection state: ESTAB connection Variables: seq # client-to-server server-to-client rcvbuffer size at server,client network

TCP Εγκατάσταση συνδέσεων 6 Τριμερής χειραψία Κατάσταση client LISTEN επιλογή αύξ. αριθμ. x αποστολή μηνύματος TCP SYN SYNSENT ESTAB αποστολή ACK για SYNACK; αυτό το τεμάχιο μπορεί να έχει και δεδομένα προς τον server SYNbit=1, Seq=x SYNbit=1, Seq=y ACKbit=1; ACKnum=x+1 ACKbit=1, ACKnum=y+1 επιλογή αύξ. αριθμ. y αποστολή μηνύματος TCP SYNACK Κατάσταση server LISTEN SYN RCVD λήψη ACK(y) ESTAB

TCP Απόλυση σύνδεσης 7 q Κάθε άκρο της ροής δεδομένων πρέπει να τερματίσει ανεξάρτητα ( half-close ): q αποστολή τεμαχίου TCP με το FIN bit = 1. q Απάντηση στο λαμβανόμενο FIN με ACK. q μετά τη λήψη FIN, το αποστελλόμενο ACK μπορεί να συνδυάζεται με αποστολή FIN. q Οι ταυτόχρονες ανταλλαγές FIN πρέπει να αντιμετωπίζονται

TCP Απόλυση σύνδεσης 8 Κατάσταση client ESTAB clientsocket.close() Κατάσταση server ESTAB FIN_WAIT_1 FIN_WAIT_2 δεν μπορεί να στείλει άλλα data, αλλά μπορεί να λάβει wait for server close FINbit=1, seq=x ACKbit=1; ACKnum=x+1 μπορεί ακόμη να στείλει data CLOSE_WAIT TIMED_WAIT FINbit=1, seq=y δεν μπορεί πλέον να στείλει data LAST_ACK timed wait 2*max segment lifetime ACKbit=1; ACKnum=y+1 CLOSED CLOSED

TCP Παράδειγμα εγκατάστασης 9 σύνδεσης Εγκατάστασης σύνδεσης: Βήμα 1 Seq:i SYN Win 34278 80 A SYN_SENT B LISTEN

TCP Παράδειγμα εγκατάστασης 10 σύνδεσης Εγκατάστασης σύνδεσης: Βήμα 2 34278 80 A SYN_SENT Seq:j ACK:i+1 SYN,ACK Win B SYN_RCVD

TCP Παράδειγμα εγκατάστασης 11 σύνδεσης Εγκατάστασης σύνδεσης: Βήμα 3 Seq:i+1 ACK:j+1 ACK Win 34278 80 A B ESTABLISHED SYN_RCVD

TCP Παράδειγμα εγκατάστασης 12 σύνδεσης Και οι δύο στην κατάσταση ESTABLISHED, ανταλλαγή δεδομένων... 34278 80 A B ESTABLISHED ESTABLISHED

TCP - Απόλυση σύνδεσης 13 Απόλυση σύνδεσης: Βήμα 1 Seq:t ACK:q FIN Win 34278 80 A B FIN_WAIT_1 ESTABLISHED

TCP - Απόλυση σύνδεσης 14 Απόλυση σύνδεσης: Βήμα 2 34278 80 A FIN_WAIT_1 Seq:q ACK:t+1 ACK Win B CLOSE_WAIT

TCP - Απόλυση σύνδεσης 15 Η εφαρμογή στον Β πρέπει να κλείσει 34278 80 A B FIN_WAIT_2 CLOSE_WAIT

TCP - Απόλυση σύνδεσης 16 Απόλυση σύνδεσης: Βήμα 3 34278 80 A FIN_WAIT_2 Seq:p ACK:t+1 FIN Win B LAST_ACK

TCP - Απόλυση σύνδεσης 17 Απόλυση σύνδεσης: Βήμα 4 Seq:t+1 ACK:p+1 ACK Win 34278 80 A B TIME_WAIT LAST_ACK

TCP - Απόλυση σύνδεσης 18 Ο Client περιμένει 2*MSL πριν μεταβεί στην κατάσταση CLOSED (ο B μπορεί να ξαναστείλει ένα FIN) 34278 80 A TIME_WAIT B CLOSED

TCP Διαχείριση συνδέσεων 19 Κατάσταση αναμονής 2MSL = TIME_WAIT Όταν το TCP κάνει active close, και στέλνει την τελική ACK, η σύνδεση πρέπει να παραμείνει στην κατάσταση TIME_WAIT για διπλάσιο χρόνο από τη μέγιστη ζωή τεμαχίων (maximum segment lifetime, MSL) 2MSL= 2 * Maximum Segment LifeXme Γιατί; Δίνεται στον TCP client μια ευκαιρία επαναποστολής της τελικής ACK. (Ο server θα κάνει timeout αφού στείλει το τεμάχιο FIN και θα ξαναστείλει το FIN) Το MSL τίθεται στα 2 min ή 1 min ή 30 sec

TCP Διαχείριση συνδέσεων 20 TIME_WAIT active close passive close application close( ) FIN, j CLOSE_WAIT FIN_WAIT1 FIN_WAIT2 2MSL TIME_WAIT ACK, j+1 FIN, k FIN, k ACK, k+1 EOF to application LAST_ACK timeout αναµένοντας ACK

TCP Επαναφορά συνδέσεων 21 Η επαναφορά (reset) συνδέσεων γίνεται με την ενεργοποίηση της σημαίας RST Πότε ενεργοποιείται η σημαία RST; Όταν φθάνει η αίτηση σύνδεσης και δεν αναμένει καμία διαδικασία server στο σημείο προορισμού. Όταν αποσταλεί τεμάχιο που δεν αναμένεται καθόλου σε υπάρχουσα σύνδεση, π.χ. ο αύξων αριθμός είναι εκτός περιοχής. Η επαναφορά μιας σύνδεσης αναγκάζει τον δέκτη του RST να πετάξει τα αποθηκευμένα δεδομένα. Ο δέκτης δεν επαληθεύει το τεμάχιο RST.

TCP Μεταφορά δεδομένων 22 Η µεταφορά δεδοµένων µέσω TCP µπορεί να χαρακτηριστεί ως: αλληλοδραστική µεταφορά - telnet, rlogin µαζική µεταφορά - ftp, mail, http Το TCP έχει ευριστικές µεθόδους για να χειρίζεται αυτούς τους τύπους µεταφοράς δεδοµένων. Για αλληλοδραστική µεταφορά δεδοµένων: Ø Επιχειρεί να περιορίσει τον αριθµό των πακέτων Για µαζική µεταφορά δεδοµένων: Ø Επιχειρεί να ελέγξει τη ροή δεδοµένων

TCP Μεταφορά δεδομένων 23 Αλληλοδραστικές εφαρμογές Telnet q Οι εφαρµογές αποµακρυσµένου τερµατικού (π.χ., Telnet) στέλνουν χαρακτήρες σε έναν server. Ο server επεξεργάζεται τον χαρακτήρα και στέλνει την έξοδό του στον client. Για κάθε πληκτρολογούµενο χαρακτήρα, βλέπουµε 3 πακέτα: 1. Client à Server: Αποστολή πληκτρολογούµενου χαρακτήρα 2. Server à Client: Επαλήθευση του πρώτου πακέτου και ηχώ του χαρακτήρα 3. Client à Server: Επαλήθευση του δεύτερου πακέτου 3. αποστολή ηχούς του χαρακτήρα και/ή της εξόδου 1. Αποστολή χαρακτήρα 2. επεξήγηση χαρακτήρα Telnet client Telnet server

TCP Μεταφορά δεδομένων 24 Αλληλοδραστικές εφαρμογές Telnet q Θα αναμέναμε 4 πακέτα ανά χαρακτήρα: character ACK of character echo of character ACK of echoed character q Ωστόσο, εμφανίζεται η παραπλεύρως απεικονιζόμενη μορφή: character ACK and echo of character q Το TCP έχει καθυστερήσει την αποστολή μιας ACK ACK of echoed character

TCP Μεταφορά δεδομένων 25 Σύνοδος Telnet σε απομακρυσμένο host Παρατήρηση: Η μετάδοση των τεμαχίων ακολουθεί διαφορετικό τρόπο, δηλ., υπάρχουν μόνο δύο πακέτα ανά πληκτρολογούμενο χαρακτήρα. char1 ACK of char 1 + echo of char1 ACK + char2 ACK + echo of char2 Η καθυστερημένη επαλήθευση δεν εμφανίζεται. Ο λόγος είναι ότι υπάρχουν πάντα δεδομένα έτοιμα προς αποστολή, όταν φθάνει η ACK

TCP Μεταφορά δεδομένων 26 Αλγόριθμος του Nagle Έχει ως στόχο την αποφυγή της μη αποτελεσματικής χρήσης του εύρους ζώνης Πομπός: Δέκτης: αποθηκεύει προσωρινά όλα τα δεδομένα χρήστη, αν εκκρεμούν ανεπαλήθευτα δεδομένα, στέλνει, όταν όλα έχουν επαληθευτεί ή έχει δεδομένα που συμπληρώνουν ένα τεμάχιο MSS. δίνει εντολή αποστολής, μόνο όταν μπορεί να αυξήσει επαρκώς το παράθυρο λήψης

TCP Μεταφορά δεδομένων 27 Αλγόριθμος του Nagle Μόνο ένα τεμάχιο ενός byte μπορεί να μεταδίδεται (Επειδή δεν υπάρχουν δεδομένα προς αποστολή από τον Β προς Α έχουμε καθυστερημένες ACK) Πληκτρολογούµενοι χαρακτήρες A SeqNo=0, 1 byte SeqNo=1, 4 byte SeqNo=5, 5 byte ACK 1 ACK 5 ACK 10 B καθυστερημένη ACK καθυστερημένη ACK καθυστερημένη ACK

TCP Μεταφορά δεδομένων 28 Ιδιότητες του αλγορίθμου του Nagle Εφαρμόζεται μόνο σε μικρά πακέτα. Στις μεταφορές μεγάλων αρχείων υπάρχουν πάντα πλήρη MSS για αποστολή. Ο αλγόριθμος είναι αυτοχρονιζόμενος: Βασικά εφαρμόζει Stop & Wait για μικρά τεμάχια. Σε LAN, το μικρό RTT δεν εισάγει μεγάλη αναμονή, οπότε ο αλγόριθμος δεν είναι αποτελεσματικός. Σε WAN, το μεγάλο RTT εισάγει περισσότερη αναμονή, αλλά ο αλγόριθμος είναι πιο αποτελεσματικός σε μακριές ζεύξεις. Όταν απαιτείται μικρή καθυστέρηση, ο αλγόριθμος προκαλεί ανεπιθύμητες καθυστερήσεις. Οι εφαρμογές μπορεί να απενεργοποιήσουν τον αλγόριθμο

TCP Έλεγχος ροής 29 Η πλευρά λήψης της σύνδεσης TCP έχει έναν καταχωρητή λήψης: Παράθυρο δέκτη Δεδοµένα από στρώµα ΙΡ Ελεύθερος χώρος Δεδομένα TCP Διαδικασία εφαρµογής Καταχωρητής λήψης Η διαδικασία εφαρμογής μπορεί να αργεί να διαβάσει από τον καταχωρητή λήψης Έλεγχος ροής: ο πομπός δεν πρέπει να υπερχειλίσει τον καταχωρητή του δέκτη μεταδίδοντας πολλά, πολύ γρήγορα. Προσαρμογή του ρυθμού αποστολής δεδομένων στον ρυθμό ανάγνωσης της λαμβάνουσας εφαρμογής

TCP Έλεγχος ροής 30 Το TCP χρησιμοποιεί έλεγχο ροής με ολισθαίνον παράθυρο: Ø δεν χρησιμοποιεί NACK Ø μόνο συσσωρευτικές ACK Ø Οι επαληθεύσεις δεν προκαλούν αυτόματα αλλαγές στο μέγεθος παραθύρου του πομπού. Ø Ο δέκτης επιστρέφει δύο παραμέτρους στον πομπό. AckNo window size (win) 32 bits 16 bits Ø Ο πομπός μπορεί να στείλει δεδομένα μέχρι το διαφημιζόμενο παράθυρο, δηλαδή, τα byte: AckNo, AckNo+1,, AckNo + win - 1 Ø Ο δέκτης μπορεί να επαληθεύσει χωρίς να αλλάξει το παράθυρο. Ø Ο δέκτης μπορεί να αλλάξει το παράθυρο χωρίς να επαληθεύσει.

TCP- Έλεγχος ροής 31 Ολισθαίνον παράθυρο Το πρωτόκολλο ολισθαίνοντος παραθύρου λειτουργεί σε επίπεδο byte: Αναγγελλόµενο παράθυρο 1 2 3 4 5 6 7 8 9 10 11 Σταλθέντα και επαληθευθέντα Σταλθέντα, µη επαληθευθέντα επιτρέπεται να σταλθούν χρήσιµο παράθυρο απαγορεύεται να σταλθούν Ο πομπός μπορεί να στείλει μόνο τους αύξοντες αριθμούς 6,7,8

TCP- Έλεγχος ροής 32 Ολισθαίνον παράθυρο: κλείσιμο Αποστολή ενός byte (με SeqNo = 6) και λήψη της επαλήθευσης (AckNo = 5, Win=4): 1 2 3 4 5 6 7 8 9 10 11 Μετάδοση του Byte 6 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 4 1 2 3 4 5 6 7 8 9 10 11

TCP- Έλεγχος ροής 33 Ολισθαίνον παράθυρο: άνοιγμα Λήψη επαλήθευσης που μεγαλώνει το παράθυρο προς τα δεξιά (AckNo = 5, Win=6): 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 6 1 2 3 4 5 6 7 8 9 10 11 Ο δέκτης ανοίγει το παράθυρο όταν ο καταχωρητής TCP αδειάζει (εννοώντας ότι τα δεδομένα παραδίδονται στην εφαρμογή)

TCP- Έλεγχος ροής 34 Ολισθαίνον παράθυρο: συρρίκνωση Λήψη επαλήθευσης που περιορίζει το παράθυρο από δεξιά (AckNo = 5, Win=3) 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 3 1 2 3 4 5 6 7 8 9 10 11 Η συρρίκνωση παραθύρου δεν πρέπει να χρησιμοποιείται

TCP- Έλεγχος ροής 35 Ολισθαίνον παράθυρο: παράδειγμα Ποµπός 2K 2K SEQ=0 Δέκτης Buffer 0 4K ACK=2048, WIN=2048 2K 2K SEQ=2048 µπλοκάρει ACK=4096, WIN=0 ACK=4096, WIN=2048 2K 1K 1K SEQ=4096

Άσκηση 36 Οι host A και B επικοινωνούν μέσω σύνδεσης TCP και ο B έχει ήδη λάβει από τον A όλα τα byte μέχρι το 144. Υποθέστε ότι ο A στέλνει στη συνέχεια δύο τεμάχια το ένα πίσω από το άλλο που περιέχουν 20 και 40 byte δεδομένων, αντίστοιχα. Στο πρώτο τεμάχιο η θύρα πηγής είναι 303 και η θύρα προορισμού είναι 80. Ο B στέλνει επαλήθευση όποτε λαμβάνει τεμάχιο από τον Α. 1. Στο δεύτερο τεμάχιο που εστάλη από τον Α στον Β, ποιος είναι ο αύξων αριθμός, η θύρα πηγής και η θύρα προορισμού; 2. Αν το πρώτο τεμάχιο αφιχθεί πριν από το δεύτερο, ποιος θα είναι ο αριθμός επαλήθευσης, η θύρα πηγής και η θύρα προορισμού στην επαλήθευση του πρώτου τεμαχίου; 3. Αν το δεύτερο τεμάχιο αφιχθεί πριν από το πρώτο, ποιος θα είναι ο αριθμός επαλήθευσης στην επαλήθευση του πρώτου αφικνούμενου τεμαχίου; 4. Υποθέστε ότι τα δύο τεμάχια του Α φθάνουν με τη σειρά στον Β. Η επαλήθευση για το πρώτο τεμάχιο χάνεται και η επαλήθευση για το δεύτερο τεμάχιο καταφθάνει μετά την εκπνοή χρονομέτρου του πρώτου τεμαχίου. Σχεδιάστε ένα διάγραμμα με όλα τα τεμάχια και τις επαληθεύσεις που στάλθηκαν. Για κάθε τεμάχιο δώστε τον αύξοντα αριθμό και τον αριθμό byte δεδομένων, ενώ για κάθε επαλήθευση δώστε τον αριθμό επαλήθευσης.