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

Σχετικά έγγραφα
4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

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

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

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

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

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

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

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

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

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

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

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

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

Transmission Control Protocol. Transmission Control Protocol

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

ΣΕΜΙΝΑΡΙΟ ΔΙΚΤΥΩΝ ΜΑΡΤΙΟΣ ΜΑΙΟΣ 2010 ΔΙΟΡΓΑΝΩΣΗ ΑΜΠΑΡΙΩΤΗΣ ΑΠΟΣΤΟΛΟΣ ΓΙΑΜΜΑΚΗΣ ΓΙΑΝΝΗΣ ΛΕΒΑΝΤΗΣ ΟΔΥΣΣΕΑΣ ΠΑΠΑΔΟΠΟΥΛΟΣ ΜΑΡΙΟΣ ΨΙΑΧΟΣ ΧΡΗΣΤΟΣ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ(Α & Β ΟΜΑΔΑ) ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 11/12/2011 ΑΠΑΝΤΗΣΕΙΣ

3.2 Το αυτοδύναμο πακέτο IP (datagram) Δομή πακέτου

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

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

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

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

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

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΗΧΑΝΙΣΜΟΙ ΔΙΑΧΕΙΡΙΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕΣΩ ΤΟΥ ΠΡΩΤΟΚΟΛΛΟΥ SNMP

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ.

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

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

LAYER 3 ( NETWORΚ LEVEL ) - ΣΤΡΩΜΑ 3 ( ΕΠΙΠΕ Ο ΙΚΤΥΟΥ)

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

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

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

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ 1 στα Δίκτυα Υπολογιστών

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

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

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

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ- Ακαδημαϊκό Φροντιστήριο ΕΠΑΛ-Κάνιγγος 13 Αθήνα Α2. Να επιλέξετε μια από τις παρακάτω επιλογές στην ερώτηση που δίνετσι:

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

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

Κεφάλαιο > Ε Π Α Ν Α Λ Η Ψ Η Επικοινωνιακό Υποδίκτυο / TCP / UDP. Σελ

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

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

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

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

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

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

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

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

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

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

Μελέτη του πρωτοκόλλου SCTP και ανάπτυξη σχετικών opensource προγραµµάτων

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

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming Εισαγωγή, TCP, UDP, Ports

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Παρασκευή 10 NOE 2006 ιευθύνσεις

Ειδικά Θέματα Προγραμματισμού

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΣΑΒΒΑΤΟ 16 ΙΟΥΝΙΟΥ 2018

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον

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

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

ΤΟ ΠΡΩΤΟΚΟΛΛΟ TCP (ΤRANSMISSION CONTROL PROTOCOL)

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

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

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

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙΔΕΣ

ΤΟ ΠΡΩΤΟΚΟΛΛΟ TCP (ΤRANSMISSION CONTROL PROTOCOL)

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

Δίκτυα Απευθείας Ζεύξης

α. Το μέγιστο μήκος δεδομένων του ωφέλιμου φορτίου του πλαισίου Ethernet είναι 1500 οκτάδες. ΣΩΣΤΟ

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

Υπηρεσίες δικτύου και πρωτόκολλα για πολυμεσικές επικοινωνίες

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

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

7.2.2 Σχέση OSI και TCP/IP

Transcript:

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

Εισαγωγή Οι υπηρεσίες μεταβίβασης δεδομένων ανάμεσα σε δύο επικοινωνούντες πόρους κατατάσσονται σε δύο κατηγορίες: Connectionless ή datagram Connection-oriented Οι υπηρεσίες της πρώτης κατηγορίας θεωρούνται γενικότερα αναξιόπιστες Δεν υπάρχει μηχανισμός παρακολούθησης της επιτυχούς (ή μη) μεταβίβασης των δεδομένων

Εισαγωγή Επομένως, πακέτα μπορεί να παραδοθούν στον προορισμό τους με λάθος σειρά Πακέτα μπορεί να χαθούν κατά τη μεταβίβαση Το πρωτόκολλο IP παρέχει connectionless υπηρεσίες Οι υπηρεσίες της δεύτερης κατηγορίας παρέχουν τους μηχανισμούς που απαιτούνται για αξιόπιστη (reliable) επικοινωνία

Εισαγωγή Οι μηχανισμοί αυτοί υλοποιούν λογικές συνδέσεις για τη μεταβίβαση δεδομένων ανάμεσα στους επικοινωνούντες πόρους Η επιτυχής αποστολή δεδομένων μέσω των συνδέσεων αυτών ελέγχεται από ειδικούς μηχανισμούς επιβεβαίωσης παραλαβής δεδομένων Οι λογικές αυτές συνδέσεις λειτουργούν και, άρα υλοποιούνται, ανεξάρτητα από τον επιμέρους τύπο της επικοινωνίας που εξυπηρετούν

Εισαγωγή Το πρωτόκολλο TCP είναι ένα πρωτόκολλο επιπέδου Μεταφοράς (Transport layer) σχεδιασμένο να παρέχει connectionoriented υπηρεσίες Εδώ θα μας απασχολήσει η λειτουργία του TCP σε συνδυασμό με το πρωτόκολλο IP Ο συνηθέστερος σήμερα χρησιμοποιούμενος συνδυασμός πρωτοκόλλων για την επίτευξη επικοινωνίας στο Διαδίκτυο

TCP Κύριες λειτουργίες Διευθυνσιοδότηση Πολυπλεξία Υλοποίηση (establishment) και διαχείριση σύνδεσης Χειρισμός πολιτικών μετάδοσης/επαναμετάδοσης Έλεγχος ροής και ενταμίευση (buffering) Απόλυση σύνδεσης (connection release)

TCP Διευθυνσιοδότηση Μία σύνδεση TCP δημιουργείται ανάμεσα σε δύο εφαρμογές των επικοινωνούντων πόρων Ο ένας πόρος παίζει το ρόλο του πελάτη εκκινεί την επικοινωνία Ο άλλος πόρος παίζει το ρόλο του εξυπηρετητή Μίατέτοιασύνδεσηορίζεταιμοναδικάαπό τιςδύοαπολήξειςτης

TCP Διευθυνσιοδότηση Η κάθε απόληξη ορίζεται από το ζεύγος: (IP διεύθυνση πόρου, αναγνωριστικό θύρας) Ένα τέτοιο ζεύγος ονομάζεται socket («πρίζα») Αναγνωριστικό θύρας (port number) - 16 bit αριθμός ο οποίος αναγνωρίζει μοναδικά:

TCP Διευθυνσιοδότηση Tη συγκεκριμένη εφαρμογή στην πλευρά του εξυπηρετητή με την οποία και δημιουργείται η σύνδεση Tη συγκεκριμένη εφαρμογή στην πλευρά του πελάτη η οποία και αιτάται τη σύνδεση Οι αριθμοί θύρας χωρίζονται στις εξής κατηγορίες: Well known ports Registered ports

TCP Διευθυνσιοδότηση Ephemeral ports Στην πρώτη κατηγορία ανήκουν αριθμοί 0 1023 Αναγνωρίζουν τις συχνότερα χρησιμοποιούμενες και γενικά σημαντικότερες TCP/IP εφαρμογές (καθορίζονται από RFCs) στην πλευρά του εξυπηρετητή Π.χ. 21 ftp, 80 http, 23 Telnet, 53 DNS, κτλ.

TCP Διευθυνσιοδότηση Στη δεύτερη κατηγορία ανήκουν οι αριθμοί 1024 49151 Αναγνωρίζουν λιγότερο χρησιμοποιούμενες TCP/IP εφαρμογές (δεν καθορίζονται από RFCs) στην πλευρά του εξυπηρετητή Π.χ. 27010 Half Life, 6890 BitTorrent, κτλ. Υπεύθυνος για την απόδοση και διαχείριση των αριθμών της πρώτης και δεύτερης κατηγορίας είναι ο οργανισμός ΙΑΝΑ

TCP Διευθυνσιοδότηση Στην τρίτη κατηγορία ανήκουν οι αριθμοί 49152 65535 Δεν αντιστοιχούν σταθερά σε κάποια εφαρμογή Χρησιμοποιούνται για να αναγνωρίσουν την εφαρμογή που λαμβάνει μέρος στην επικοινωνία από την πλευρά του πελάτη Αποδίδονται τυχαία από τον πόρο-πελάτη και είναι προσωρινοί διαρκούν μόνο για όσο διαρκεί η σύνδεση

TCP Διευθυνσιοδότηση Σε μια μελλοντική σύνδεση, η ίδια εφαρμογή μπορεί να αντιστοιχιστεί σε διαφορετικό αριθμό θύρας Ο ίδιος αριθμός θύρας δεν μπορεί να αναγνωρίζει ταυτόχρονα παραπάνω από μία εφαρμογή στην πλευρά του πελάτη

TCP Πολυπλεξία Ένας πόρος μπορεί να διατηρεί δύο ή περισσότερες λογικές συνδέσεις ταυτόχρονα Στην περίπτωση αυτή δύο ή περισσότερες εφαρμογές χρησιμοποιούν το πρωτόκολλο TCP ταυτόχρονα Στη ροή δεδομένων που δέχεται το πρωτόκολλο TCP είναι πολυπλεγμένα πακέτα διαφορετικών συνδέσεων

TCP Πολυπλεξία Η κάθε σύνδεση αναγνωρίζεται μοναδικά από το αναγνωριστικό θύρας

Επικεφαλίδα TCP

Επικεφαλίδα TCP Πεδίο source port (16 bits): Αναγνωριστικό θύρας εφαρμογής (αφετηρία σύνδεσης) Πεδίο destination port (16 bits): Αναγνωριστικό θύρας εφαρμογής (προορισμός σύνδεσης) Πεδίο sequence number (32 bits): Aριθμός που χρησιμοποιείται για αξιόπιστη μεταβίβαση δεδομένων

Επικεφαλίδα TCP Προσδιορίζει τη σειρά του πρώτου byte του τρέχοντος πακέτου μέσα στη ροή των bytes που αποστέλλονται Υπακούει στη σχέση: Seq(P n ) = Seq(P n-1 ) + Length (P n-1 ) όπου P n είναι το νιοστό πακέτο δεδομένων και Seq(P n ) είναι ο αριθμός που ενθυλακώνεται στοπακέτοαυτό

Επικεφαλίδα TCP Πεδίο acknowledgment number (32 bits): Περιέχει τον αριθμό επιβεβαίωσης, δηλαδή το sequence number του επόμενου byte δεδομένων που ο αποστολέας του πακέτου περιμένει να λάβει Δίδεται από τη σχέση: Αck(P n ) = Seq(RP n-1 ) + Length (RP n-1 )

Παράδειγμα Ας υποθέσουμε ότι ο Α στέλνει το παραπάνω αρχείο (σε τμήματα) στον Β Το κάθε τμήμα που αποστέλλεται έχει ως sequence number το σύνολο των bytes που έχουν ήδη αποσταλεί

Παράδειγμα Ας υποθέσουμε επίσης ότι παράλληλα ο Α λαμβάνει πακέτα δεδομένων από τον Β Έχει ήδη λάβει ένα πακέτο των 1200 bytes Κάθε φορά που ο Α αποστέλλει ένα τμήμα του αρχείου στον Β ενθυλακώνει και τον επόμενο αριθμό byte που περιμένει να λάβει από τον Β

Παράδειγμα Ο αριθμός αυτός είναι ο αριθμός επιβεβαίωσης και στην περίπτωση αυτή ισούται με 1201 Γενικότερα ο αριθμός επιβεβαίωσης επιβεβαιώνει το σύνολο των συνεχόμενων bytes που έχουν ληφθεί μέχρι τώρα

Επικεφαλίδα TCP (συνέχεια) Πεδίο header field (4 bits): To μήκος της επικεφαλίδας σε 32 bit λέξεις Πεδίο flag field (6 bits): Σημαίες SYN, FIN, RST: Χρησιμοποιούνται για την υλοποίηση και τον τερματισμό μίας σύνδεσης θα εξεταστούν παρακάτω Σημαία ACK = 1: Το περιεχόμενο του πεδίου acknowledgment number είναιέγκυροκαιπρέπειναληφθείυπόψη απότοδέκτη

Επικεφαλίδα TCP Η σημαία αυτή είναι συνεχώς ενεργοποιημένη από τη στιγμή που υλοποιείται μια σύνδεση Σημαία PSH=1: O αποστολέας ενεργοποίησε την άμεση προώθηση δεδομένων και ο παραλήπτης πρέπει να παραδώσει άμεσα το πακέτο στην εφαρμογή Προϋποθέτει το άδειασμα τυχόν ταμιευτών (buffers) που χρησιμοποιούνται για τον έλεγχο ροής δεδομένων (βλ. αργότερα)

Επικεφαλίδα TCP Σημαία URG=1: Υπάρχουν δεδομένα μέσα στο πακέτο που έχουν σηματοδοτηθεί ως επείγοντα Πεδίο window size (16 bits): Ορίζει το μέγεθος του παραθύρου σε bytes που ο παραλήπτης είναι διατεθειμένος να δεχθεί Ο αριθμός αυτός προστίθεται στο acknowledgement number Ο αριθμός αυτός χρησιμοποιείται για τον έλεγχο ροής (βλ. αργότερα)

Επικεφαλίδα TCP Πεδίο checksum (16 bits): Αριθμός που χρησιμοποιείται για έλεγχο σφαλμάτων Καλύπτει ολόκληρο το πακέτο (επικεφαλίδα + δεδομένα) Υπολογίζεται και ενθυλακώνεται από τον αποστολέα Υπολογίζεται εκ νέου στον παραλήπτη ο οποίος και συγκρίνει τις δύο τιμές

Επικεφαλίδα TCP Πεδίο urgent pointer (16 bits): Χρησιμοποιείται όταν η σημαία URG έχει την τιμή 1 Καταδεικνύει το σημείο μέσα στο πακέτο από το οποίο αρχίζουν τα μη επείγοντα δεδομένα Ορίζει ουσιαστικά το μέγεθος σε bytes των επειγόντων δεδομένων Τα επείγοντα δεδομένα, αν υπάρχουν, προηγούνται των μη επειγόντων μέσα στο πακέτο Χρησιμοποιείται συχνά σε συνδυασμό με τη σημαία PSH

TCP Υλοποίηση Σύνδεσης Αρχικά μία εφαρμογή βρίσκεται στην κατάσταση CLOSED Δεν έχει καμία ανοιχτή σύνδεση Από την κατάσταση CLOSED μπορεί να εκδώσει στο τοπικό TCP μία εκ των εντολών: Passive open εντολή παθητικού ανοίγματος Active open εντολή ενεργού ανοίγματος

TCP Υλοποίηση Σύνδεσης Με την passive open περιέρχεται στην κατάσταση LISTEN Παθητικά αναμένει κάποιο αίτημα από μια εφαρμογή απομακρυσμένου πόρου στο οποίο και είναι έτοιμη να απαντήσει Στην κατάσταση αυτή βρίσκονται συνήθως εφαρμογές στην πλευρά του πόρουεξυπηρετητή

TCP Υλοποίηση Σύνδεσης Με την active open περιέρχεται στην κατάσταση SYN SENT Ενεργά προχωράει στη δημιουργία μιας σύνδεσης Η εγκαθίδρυση μιας νέας σύνδεσης (active open) γίνεται μέσω ενός μηχανισμού «τριπλής χειραψίας» (3-way handshake protocol)

TCP Υλοποίηση Σύνδεσης Έστω Α και Π εφαρμογές σε δύο (απομακρυσμένους) πόρους Α: αφετηρία η εφαρμογή η οποία προκαλεί τη σύνδεση Βρίσκεται συνήθως στην πλευρά του πόρου-πελάτη Π: προορισμός της σύνδεσης Βρίσκεται συνήθως στην πλευρά του πόρουεξυπηρετητή Έστω η Α εκδίδει μία εντολή active open

TCP Υλοποίηση Σύνδεσης Το TCP A δημιουργεί ένα πακέτο συγχρονισμού (SYN) Επιλέγει έναν αρχικό 32-bit sequence number i (Initial Sequence Number ISN) και το αποθηκεύει στο πεδίο sequence number Θέτει τη σημαία SYN στην τιμή 1 Στέλνει το πακέτο SYN στο TCP Π Έστω η Π βρίσκεται στην κατάσταση LISTEN

TCP Υλοποίηση Σύνδεσης Το TCP Π δημιουργεί ένα απαντητικό πακέτο ACK SYN Αποθηκεύει στο πεδίο sequence number το δικό του ανεξάρτητο αριθμό ISN j Θέτει τη σημαία SYN στην τιμή 1 Θέτει τη σημαία ACK στην τιμή 1 Αποθηκεύει την τιμή i+1 στο πεδίο acknowledgment number Στέλνει το ACK SYN στο TCP A

TCP Υλοποίηση Σύνδεσης H Π περιέρχεται στην κατάσταση SYN RECVD Το TCP A λαμβάνει το ACK SYN του TCP Π και δημιουργεί ένα νέο «ανταπαντητικό» πακέτο Αποθηκεύει στο πεδίο sequence number τον αριθμό i+1 Αποθηκεύει την τιμή j+1 στο πεδίο acknowledgment number Αποθηκεύει τα πρώτα δεδομένα στο πεδίο data

TCP Υλοποίηση Σύνδεσης Η εφαρμογή Α περιέρχεται στην κατάσταση ESTAB Με τη λήψη αυτού του νέου απαντητικού πακέτου, η εφαρμογή Π περιέρχεται στην κατάσταση ESTAB Έστω η Π βρίσκεται στην κατάσταση CLOSED: Είτε η σύνδεση απορρίπτεται Σε περίπτωση απόρριψης το TCP Π αποστέλλει πακέτο στο TCP Α με την τιμή 1 στη σημαία RST

TCP Υλοποίηση Σύνδεσης Είτε η αίτηση ενταμιεύεται (buffered) μέχρι που η Π εκδώσει εντολή ανοίγματος Σε ορισμένες περιπτώσεις το ΤCP πληροφορεί την Π ότι υπάρχει αίτημα σύνδεσης υπό αναμονή

TCP Υλοποίηση Σύνδεσης

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης Έστω Ε 1 και Ε 2 εφαρμογές σε δύο (απομακρυσμένους) πόρους Έστω ότι οι Ε 1 και Ε 2 επιχειρούν ενεργό άνοιγμα (active open) της μεταξύ τους σύνδεσης στον ίδιο περίπου χρόνο Το TCP 1 δημιουργεί ένα πακέτο συγχρονισμού (SYN): Αποθηκεύει στο πεδίο sequence number τον αριθμό i

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης Θέτει τη σημαία SYN στην τιμή 1 Στέλνει το πακέτο SYN στο TCP 2 Το TCP 2 δημιουργεί ένα πακέτο συγχρονισμού (SYN): Αποθηκεύει στο πεδίο sequence number τον αριθμό j Θέτει τη σημαία SYN στην τιμή 1 Στέλνει το πακέτο SYN στο TCP 1

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης SYN (sn=i) SYN (sn=j)

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης Το TCP 2 λαμβάνει το SYN του TCP 1 και δημιουργεί ένα απαντητικό πακέτο ACK SYN: Αποθηκεύει στο πεδίο sequence number τον αριθμό j+1 Θέτει τη σημαία SYN στην τιμή 1 Θέτει τη σημαία ACK στην τιμή 1 Αποθηκεύει την τιμή i+1 στο πεδίο acknowledgment number Στέλνει το ACK SYN στο TCP 1

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης SYN (sn=i) SYN (sn=j) ACK/SYN (sn=j+1, an=i+1)

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης Το TCP 1 λαμβάνει το SYN του TCP 2 και δημιουργεί ένα απαντητικό πακέτο ACK SYN: Αποθηκεύει στο πεδίο sequence number τον αριθμό i+1 Θέτει τη σημαία SYN στην τιμή 1 Θέτει τη σημαία ACK στην τιμή 1 Αποθηκεύει την τιμή j+1 στο πεδίο acknowledgment number Στέλνει το ACK SYN στο TCP 2

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης ΤCP 1 ΤCP 2 SYN (sn=i) SYN (sn=j) ACK/SYN (sn=i+1, an=j+1) ACK/SYN (sn=j+1, an=i+1) ESTAB ESTAB

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης Οι δύο εφαρμογές περιέρχονται στη κατάσταση ESTAB Παρατηρούμε ότι το TCP 2, απότηστιγμήπου αποστέλλει το πακέτο ACK/SYN περιέρχεται στην κατάσταση SYN RECVD, και περιμένει ένα πακέτο με sequence number i+1 προκειμένου να περιέλθει στην κατάσταση ESTAB Αντίστοιχα για το TCP 1

TCP Υλοποίηση Σύνδεσης Ο κύριος λόγος χρησιμοποίησης της «τριπλής χειραψίας» εξηγείται με το παρακάτω παράδειγμα Έστω ότι το TCP Π δέχεται διαδοχικά από το TCP A δύο πακέτα συγχρονισμού SYN με σειριακούς αριθμούς i και j αντίστοιχα Υποθέτουμε ότι το δεύτερο SYN προέρχεται λανθασμένα από παλαιότερη απόπειρα σύνδεσης

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης ΤCP A SYN (sn=i) SYN (sn=j) ΤCP Π

TCP Υλοποίηση Σύνδεσης Έστω ότι το TCP Π απαντάει (ACK/SYN) στο δεύτερο SYN Στο πεδίο acknowledgment number αποθηκεύεται η τιμή j+1 Έστω ότι ο αριθμός ISN του πακέτου αυτού είναι q Το TCP A λαμβάνει ένα απαντητικό μήνυμα που να επιβεβαιώνει τον αριθμό j

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης ΤCP A SYN (sn=i) SYN (sn=j) ΤCP Π ACK/SYN (sn=q, an=j+1)

TCP Υλοποίηση Σύνδεσης Το TCP A αποστέλλει στο TCP Π πακέτο που ακυρώνει τη σύνδεση που το TCP Π αποπειράθηκε να επιβεβαιώσει Ένα τέτοιο πακέτο έχει Την τιμή 1 στη σημαία RST Την τιμή q+1 στο πεδίο acknowledgement number Το TCP A αποστέλλει ξανά στο TCP Π το αρχικό πακέτο SYN με τον αριθμό i

TCP Ταυτόχρονες Αιτήσεις Σύνδεσης ΤCP A SYN (sn=i) SYN (sn=j) ΤCP Π RST (an=q) SYN (sn=i) ACK/SYN (sn=q, an=j+1) Το ΤCP Π δεν έχει περιέλθει ακόμα στην κατάσταση ESTAB

TCP Υλοποίηση Σύνδεσης Εάν το TCP χρησιμοποιούσε πρωτόκολλο διπλής (και όχι τριπλής) χειραψίας τότε το TCP Π στο παραπάνω παράδειγμα θα περιέρχονταν λανθασμένα στην κατάσταση ESTAB αμέσως μετά την αποστολή του πακέτου ΑCK/SYN

TCP Απόλυση Σύνδεσης Έστω ότι η εφαρμογή Α στην πλευρά του πόρου-πελάτη επιθυμεί να διακόψει τη σύνδεση Το TCP A δημιουργεί ένα πακέτο τερματισμού (FIN) Θέτει τη σημαία FIN στην τιμή 1 Στο πεδίο sequence number αποθηκεύεται ο συνολικός αριθμός των bytes που στάλθηκαν από το TCP Α στο TCP Π μέσω της σύνδεσης

TCP Απόλυση Σύνδεσης Στο πεδίο acknowledgement number αποθηκεύεται o αύξων αριθμός τoυ πρώτου byte δεδομένων που υπό κανονικές συνθήκες θα λάμβανε επόμενα το TCP A από το TCP Π Το TCP Π δημιουργεί ένα πακέτο απάντησης (FIN ΑCK) Θέτει τη σημαία FIN στην τιμή 1

TCP Απόλυση Σύνδεσης Στο πεδίο sequence number αποθηκεύεται ο συνολικός αριθμός των bytes που στάλθηκαν από το TCP Π στο TCP Α μέσω της σύνδεσης Στο πεδίο acknowledgement number αποθηκεύεται o αύξων αριθμός τoυ πρώτου byte δεδομένων που υπό κανονικές συνθήκες θα λάμβανε επόμενα το TCP Π από το TCP Α

TCP Απόλυση Σύνδεσης Η σύνδεση τερματίζεται από την πλευρά του εξυπηρετητή με αντίστοιχο τρόπο