Πρωτόκολλο TCP

Post on 11-Feb-2017

1.178 views 1 download

Transcript of Πρωτόκολλο TCP

7.3 Πρωτόκολλο TCPTCP Συνδέσεις

ΚΕΦΑΛΑΙΟ 7ο

ΔΙΑΔΙΚΤΥΩΣΗ

ΙΝΤΕRNET

ΔΡΙΜΥΛΗ ΚΑΤΕΡΙΝΑ ΠΕ19

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

ΤCP=Transmission Control ProtocolΤο βασικό πρωτόκολλο του επιπέδου μεταφοράς.

Παρέχει υπηρεσίες προσανατολισμένες σε

σύνδεση, εξασφαλίζοντας την αξιόπιστη μετάδοση

και την από άκρο σε άκρο επικοινωνία.

Αν δεν πάει ταχυδρόμος σε ένα χωριό τότε δεν μπορώ να στείλω

συστημένο γράμμα. Από την στιγμή όμως που πηγαίνει , ξέρω πως το γράμμα θα πάει ολόκληρο και πώς θα το πάρει από μένα και θα το παραδώσει στα χέρια του

παραλήπτη….

1

23

ΠΑΡΑΛΛΗΛΙΣΜΟΣ

Η διαδικασία εγκατάστασης της σύνδεσης, «απαιτεί» έναν

τριπλό χαιρετισμό ώστε κάθε άκρο να γνωρίζει ότι μπορεί να

επικοινωνήσει με το άλλο.

Γειά σου. Είσαι καλά;

Και εγώ καλά είμαι

Καλά είμαι. Εσύ;

1 Υ Π Η Ρ Ε Σ Ι Ε Σ Π Ρ Ο Σ Α Ν Α Τ Ο Λ Ι Σ Μ Ε Ν Ε Σ Σ Ε Σ Υ Ν Δ Ε Σ Η

Η μεταφορά των δεδομένων, θα ξεκινήσει

μόνο μετά την εγκατάσταση της

σύνδεσης.

2 Ε Ξ Α Σ Φ Α Λ Ι Ζ Ε Ι Α Ξ Ι Ο Π Ι Σ Τ Ι Α

Το TCP πρωτόκολλο θεωρείται αξιόπιστο, γιατί εξασφαλίζει την σωστή μετάδοση διενεργώντας ελέγχους, ώστε σε περίπτωση

απώλειας ή λάθους να κάνει επαναποστολή δεδομένων.

Συγκεκριμένα

Εγγυημένη παράδοση μηνυμάτων ανεξάρτητα με το μέγεθος του.

Παράδοση με την σωστή σειρά. Παράδοση ενός μόνο αντιγράφου του μηνύματος. Απόρριψη μηνυμάτων με μεγάλη καθυστέρηση. Ελεγχος ροής επικοινωνίας.

3 Ε Π Ι Κ Ο Ι Ν Ω Ν Ι Α Α Π Ο Α Κ Ρ Ο Σ Ε Α Κ Ρ Ο

Όπως ήδη γνωρίζουμε το βασικό μοντέλο επικοινωνίας που

χρησιμοποιείται στις περισσότερες TCP/IP εφαρμογές είναι το μοντέλο

πελάτη– εξυπηρετητή.

Ο «πελάτης» και ο «εξυπηρετητής» είναι διεργασίες.

Το πρωτόκολλο tcp είναι υπεύθυνο για την επικοινωνία των διεργασιών.

Το πρωτόκολλο TCP μετατρέπει την «υπηρεσία» παράδοσης

δεδομένων μεταξύ υπολογιστών, την οποία παρέχει ένα δίκτυο, σε ένα κανάλι επικοινωνίας μεταξύ διεργασιών (των δύο άκρων).

Το TCP μεταδίδει μόνο όταν το πλήθος των δεδομένων που έχει λάβει είναι επαρκές για να συμπληρωθεί το μέγεθος του πακέτου

που έχει συμφωνηθεί κατά την εγκατάσταση της σύνδεσης.

Όταν λάβει δεδομένα τα οποία υπερβαίνουν αυτό το μέγεθος πακέτου, τα σπάει σε μικρότερα.

Τα πακέτα ονομάζονται τμήματα ή segments και αποτελούν την μονάδα μεταφοράς στο πρωτόκολλο TCP. Κάθε τμήμα αποτελείται από την Επικεφαλίδα (Header) και τα προς μετάδοση δεδομένα (Data).

Δ Ε Δ Ο Μ Ε Ν Α T C P S E G M E N T S

Η επικεφαλίδα αποτελείται από έναν αριθμό πεδίων με δεδομένα που προσθέτει το TCP και είναι απαραίτητα για τη μετάδοση. Αυτά είναι αναπόσπαστο κομμάτι του προς μετάδοση πακέτου.

Τμήμα επικεφαλίδας με το οποίο θα ασχοληθούμε.

Μ Ο Ρ Φ Η T C P Ε Π Ι Κ Ε Φ Α Λ Ι Δ Α Σ

Κάποια από τα δεδομένα της επικεφαλίδας θα χρησιμοποιηθούν για την επανένωση των δεδομένων των segments, προκειμένου να δημιουργηθεί το αρχικό πακέτο, ενώ κάποια άλλα χρησιμοποιούνται για να εξασφαλίσουμε ότι τα δεδομένα ήρθαν όλα και χωρίς λάθη.

Αριθμός σειράς

Κάθε τμήμα έχει το δικό του αριθμό σειράς, ο οποίος δηλώνει τη θέση του συγκεκριμένου τμήματος στο αρχικό πακέτο.

Αριθμός επιβεβαίωσης

Ο αριθμός επιβεβαίωσης δηλώνει ότι έχουν ληφθεί από τον παραλήπτη όλες οι οκτάδες (bytes) μέχρι το νούμερο που δείχνει. Αν ο αποστολέας δεν λάβει επιβεβαίωση μέσα σε ένα λογικό χρονικό διάστημα, θα επαναλάβει τη μετάδοση των δεδομένων.

Παράθυρο

Ο αριθμός στο πεδίο παράθυρο δηλώνει πόσα δεδομένα (σε οκτάδες) μπορεί να δεχθεί. Μέσω αυτού του πεδίου το TCP κάνει έλεγχο ροής δεδομένων.

Αν συνδυαστούν τότε γνωρίζουμε ποια δεδομένα περιμένει να λάβει ένας υπολογιστής.

Α ρ ι θ μ ό ς σ ε ι ρ ά ς

Ο αριθμός σειράς μας δείχνει την θέση των δεδομένων του συγκεκριμένου segment μέσα στο αρχικό πακέτο.

Στην πλευρά του αποστολέα τα πακέτα παίρνουν αριθμό σειράς, στην

φάση του τεμαχισμού (δημιουργία των tcp segments).

Στην πλευρά του παραλήπτη ο αριθμός σειράς χρησιμοποιείται ώστε τα δεδομένα να τοποθετηθούν στη ή

σωστή θέση, προκειμένου να δημιουργηθεί το αρχικό πακέτο.

Α ρ ι θ μ ό ς ε π ι β ε β α ί ω σ η ς

Ο αριθμός επιβεβαίωσης δηλώνει ότι έχουν ληφθεί όλες οι οκτάδες (bytes) μέχρι και αυτό τον αριθμό.

Ουσιαστικά ενημερώνει τον αποστολέα ότι ο παραλήπτης έλαβε τα δεδομένα που του στάλθηκαν. Αν ο αποστολέας δεν λάβει σε εύλογο χρονικό διάστημα αριθμό επιβεβαίωσης τότε υποθέτει ότι έχει γίνει κάποιο λάθος (το πακέτο χάθηκε ή καταστράφηκε, ή η σύνδεση διακόπηκε) και ξαναστέλνει τα δεδομένα.

Ο αριθμός επιβεβαίωσης είναι ένα από τα πεδία που δίνει αξιοπιστία στο TCP πρωτόκολλο.