Δίκτυα Υπολογιστών Κεφάλαιο 17 – Έναρξη και τερματισμός TCP σύνδεσης
Δημοσιεύτηκε από τον/την codebrakes στις

Δίκτυα Υπολογιστών
Κεφάλαο 17
- Έναρξη και τερματισμός TCP σύνδεσης
Έναρξη – Τριμερής χειραψία / 3-way handshake
Πριν ξεκινήσουμε με αυτό ας πάρουμε ένα καθημερινό παράδειγμα. Όταν δύο άνθρωποι συναντιούνται για να χαιρετήσουν ο ένας τον άλλο κάνουν μια χειραψία. Η χειραψία αυτή είναι κατανοητή και από τις δυο μεριές ως σήμα για έναν φιλικό χαιρετισμό. Στις δικτυακές συνδέσεις ακολουθείται μια παρόμοια διαδικασία. Στο TCP ο πελάτης εγκαθιδρύει μια σύνδεση με έναν εξυπηρετητή ακολουθώντας τα παρακάτω βήματα:
Ο πελάτης στέλνει μια αίτηση σύνδεσης “client-to-server” για να επικοινωνήσει με έναν εξυπηρετητή.
Ο εξυπηρετητής αποδέχεται το αίτημα του πελάτη και στέλνει μια αίτηση σύνδεσης “server-to-client”.
Ο πελάτης αποδέχεται το αίτημα του εξυπηρετητή και έτσι ξεκινά η TCP επικοινωνία.
Εγκαθίδρυση σύνδεσης στο TCP
Βήμα 1: O πελάτης (client) στέλνει ένα πακέτο (SYN αίτημα) προς έναν εξυπηρετητή (server) με το οποίο ζητάει την εγκαθίδρυση σύνδεσης.

Βήμα 2: Αν ο διακομιστής (server) λάβει το SYN αίτημα του πελάτη (client) τότε στέλνει με την σειρά του δύο πακέτα. Το πρώτο πακέτο (ACK απάντηση) είναι ένα πακέτο επιβεβαίωσης που απευθύνεται στον χρήστη (client) για να τον ενημερώσει ότι έλαβε το SYN αίτημα που έστειλε προηγουμένως. Το δεύτερο πακέτο (SYN αίτημα) αποτελεί μια αίτηση από τον διακομιστή προς τον πελάτη (client) για να εγκαθιδρύσει κι αυτός μία σύνδεση με τον πρώτο.

Βήμα 3: Αφού ο πελάτης (client) λάβει τα δύο πακέτα (ACK και SYN) που έστειλε ο εξυπηρετητής (server) προηγουμένως, θα στείλει πίσω στον εξυπηρετητή (server) ένα τελευταίο πακέτο (ACK απάντηση) με το οποίο τον ενημερώνει ότι έλαβε τα δύο πακέτα που είχε στείλει. Με αυτόν τον τρόπο ολοκληρώνεται η διαδικασία επικοινωνίας στο TCP.

ότι όλα είναι εντάξει κι ότι είναι έτοιμος για έναρξη σύνδεσης
Τερματισμός σύνδεσης στο TCP
Για να τερματιστεί μια TCP σύνδεση η ένδειξη FIN πρέπει να οριστεί στην TCP επικεφαλίδα. Σε κάθε μονόδρομη TCP συνεδρία έχουμε μια αμφίδρομη χειραψία που αποτελείται από ένα τμήμα FIN και ένα τμήμα επιβεβαίωσης (ACK). Οπότε για να τερματιστεί μια TCP σύνοδος χρειάζεται να πραγματοποιηθούν 4 συναλλαγές.
Όταν ο πελάτης δεν έχει άλλα δεδομένα που θέλει να στείλει, στέλνει ένα τμήμα (segment) με την ένδειξη FIN.
Ο εξυπηρετητής στέλνει ACK για να επιβεβαιώσει στον πελάτη ότι έλαβε το FIN τμήμα.
Ο εξυπηρετητής στέλνει κι αυτός FIN στονπελάτη για να τερματιστεί η TCP σύνοδος.
Ο πελάτης απαντά με ένα ACK για να επιβεβαιώσει στον εξυπηρετητή ότι έλαβε το FIN τμήμα που έστειλε.
Όταν όλα τα τμήματα επιβεβαιωθούν η TCP σύνοδος τερματίζεται.
Βήμα 1: O πελάτης (client) στέλνει ένα πακέτο (FIN αίτημα) προς τον εξυπηρετητή (server) με το οποίο ζητάει την τερματισμό σύνδεσης.

Βήμα 2: Ο εξυπηρετητής (server) στέλνει μια ACK απάντηση στον πελάτη για να τον ενημερώσει ότι έλαβε το FIN πακέτο που έστειλε προηγουμένως.

Βήμα 3: Στην συνέχεια ο εξυπηρετητή (server) στέλνει άλλο ένα πακέτο στον πελάτη (client) με το οποίο ζητάει κι ο ίδιος τερματισμό σύνδεσης.

Βήμα 4: Αν πάνε όλα καλά κι ο πελάτης (client) λάβει τα δύο πακέτα του διακομιστή (server) τότε ο πρώτος στέλνει ένα πακέτο επιβεβαίωσης (ACK απάντηση) προς τον εξυπηρετητή (server) για να τον ενημερώσει ότι έλαβε τα δύο πακέτα ACK και FIN που έστειλε προηγουμένως και κατά συνέπεια τον τερματισμό της σύνδεσης.

ότι έλαβε τα δύο πακέτα που έστειλε κι ότι η σύνδεση πρέπει να τερματιστεί
Τελευταία Ενημέρωση: 1/12/2016