Σήμερα, θα ξεκινήσουμε εστιάζοντας στο TCP. Νωρίτερα στο κεφάλαιο για τη στρώση, αναφέραμε ένα σημαντικό σημείο. Στο στρώμα δικτύου και κάτω, πρόκειται περισσότερο για τον κεντρικό υπολογιστή για να φιλοξενήσει συνδέσεις, πράγμα που σημαίνει ότι ο υπολογιστής σας πρέπει να γνωρίζει πού είναι ένας άλλος υπολογιστής για να συνδεθεί με αυτό. Ωστόσο, η επικοινωνία σε ένα δίκτυο είναι συχνά η επικοινωνία μεταξύ των ενδυμάτων και όχι η επικοινωνία μεταξύ των ενδιάμεσων μηχανών. Επομένως, το πρωτόκολλο TCP εισάγει την έννοια του λιμανιού. Μια θύρα μπορεί να καταληφθεί από μία μόνο διαδικασία, η οποία παρέχει άμεση επικοινωνία μεταξύ των διαδικασιών εφαρμογής που εκτελούνται σε διαφορετικούς κεντρικούς υπολογιστές.
Το καθήκον του στρώματος μεταφοράς είναι πώς να παρέχει υπηρεσίες άμεσης επικοινωνίας μεταξύ των διαδικασιών εφαρμογής που εκτελούνται σε διαφορετικούς κεντρικούς υπολογιστές, επομένως είναι επίσης γνωστή ως πρωτόκολλο από άκρο σε άκρο. Το στρώμα μεταφοράς κρύβει τις βασικές λεπτομέρειες του δικτύου, επιτρέποντας στη διαδικασία εφαρμογής να δει σαν να υπάρχει ένα λογικό κανάλι επικοινωνίας από άκρο σε άκρο μεταξύ των δύο οντοτήτων μεταφοράς.
Το TCP σημαίνει πρωτόκολλο ελέγχου μετάδοσης και είναι γνωστό ως πρωτόκολλο προσανατολισμένο στη σύνδεση. Αυτό σημαίνει ότι πριν από μια εφαρμογή μπορεί να αρχίσει να στέλνει δεδομένα στο άλλο, οι δύο διαδικασίες πρέπει να κάνουν μια χειραψία. Η χειραψία είναι μια λογικά συνδεδεμένη διαδικασία που εξασφαλίζει αξιόπιστη μετάδοση και κανονική λήψη δεδομένων. Κατά τη διάρκεια της χειραψίας, δημιουργείται μια σύνδεση μεταξύ των κεντρικών υπολογιστών προέλευσης και προορισμού, ανταλλάσσοντας μια σειρά πακέτων ελέγχου και συμφωνώντας σε ορισμένες παραμέτρους και κανόνες για την εξασφάλιση επιτυχούς μετάδοσης δεδομένων.
Τι είναι το TCP; (MyLinking'sΒρύση δικτύουκαιΜεσίτης πακέτων δικτύουθα μπορούσε να επεξεργαστεί τόσο τα πακέτα TCP ή UDP)
Το TCP (πρωτόκολλο ελέγχου μετάδοσης) είναι ένα πρωτόκολλο επικοινωνίας μεταφοράς με βάση το Byte-Stream.
Προσανατολισμένος στη σύνδεση: Η προσανατολισμένη στη σύνδεση σημαίνει ότι η επικοινωνία TCP είναι ένα προς ένα, δηλαδή η επικοινωνία από το σημείο από άκρο σε άκρο, σε αντίθεση με το UDP, η οποία μπορεί να στείλει μηνύματα σε πολλαπλούς κεντρικούς υπολογιστές ταυτόχρονα, έτσι ώστε να μην μπορεί να επιτευχθεί επικοινωνία.
Αξιόπιστος: Η αξιοπιστία του TCP εξασφαλίζει ότι τα πακέτα παραδίδονται αξιόπιστα στον δέκτη ανεξάρτητα από τις αλλαγές στον σύνδεσμο δικτύου, γεγονός που καθιστά τη μορφή του πακέτου πρωτοκόλλου πιο πολύπλοκη από αυτή του UDP.
Βασισμένο σε ρεύμα byte: Η φύση του TCP που βασίζεται στο byte-ρεύμα επιτρέπει τη μετάδοση μηνυμάτων οποιουδήποτε μεγέθους και εγγυήσεων εντολή μηνυμάτων: ακόμη και αν το προηγούμενο μήνυμα δεν έχει ληφθεί πλήρως και ακόμη και αν έχουν ληφθεί τα επόμενα bytes, το TCP δεν θα τα παραδώσει στο στρώμα εφαρμογής για επεξεργασία και θα μειώσει αυτόματα τα διπλότυπα πακέτα.
Μόλις ο Host A και ο Host B έχουν δημιουργήσει μια σύνδεση, η εφαρμογή πρέπει μόνο να χρησιμοποιήσει τη γραμμή εικονικής επικοινωνίας για να στείλει και να λαμβάνει δεδομένα, εξασφαλίζοντας έτσι τη μετάδοση δεδομένων. Το πρωτόκολλο TCP είναι υπεύθυνο για τον έλεγχο των εργασιών, όπως η ίδρυση σύνδεσης, η αποσύνδεση και η κατοχή. Θα πρέπει να σημειωθεί ότι εδώ λέμε ότι η εικονική γραμμή σημαίνει μόνο για τη δημιουργία μιας σύνδεσης, η σύνδεση πρωτοκόλλου TCP υποδεικνύει μόνο ότι οι δύο πλευρές μπορούν να ξεκινήσουν τη μετάδοση δεδομένων και να εξασφαλίσουν την αξιοπιστία των δεδομένων. Οι κόμβοι δρομολόγησης και μεταφοράς αντιμετωπίζονται από τις συσκευές δικτύου. Το ίδιο το πρωτόκολλο TCP δεν ασχολείται με αυτές τις λεπτομέρειες.
Μια σύνδεση TCP είναι μια υπηρεσία πλήρους αμφίδρομης, πράγμα που σημαίνει ότι ο κεντρικός υπολογιστής Α και ο κεντρικός υπολογιστής Β μπορεί να μεταδώσει δεδομένα και στις δύο κατευθύνσεις σε μια σύνδεση TCP. Δηλαδή, τα δεδομένα μπορούν να μεταφερθούν μεταξύ του κεντρικού υπολογιστή Α και του κεντρικού υπολογιστή Β σε μια αμφίδρομη ροή.
Το TCP αποθηκεύει προσωρινά δεδομένα στο buffer αποστολής της σύνδεσης. Αυτό το buffer αποστολής είναι μία από τις μνήμες που έχουν δημιουργηθεί κατά τη διάρκεια της χειραψίας των τριών δρόμων. Στη συνέχεια, το TCP θα στείλει τα δεδομένα στην προσωρινή μνήμη αποστολής στην προσωρινή μνήμη λήψης του κεντρικού υπολογιστή προορισμού την κατάλληλη στιγμή. Στην πράξη, κάθε ομότιμος θα έχει μια προσωρινή μνήμη αποστολής και μια προσωρινή μνήμη λήψης, όπως φαίνεται εδώ:
Το buffer αποστολής είναι μια περιοχή μνήμης που διατηρείται από την εφαρμογή TCP στην πλευρά του αποστολέα που χρησιμοποιείται για την προσωρινή αποθήκευση δεδομένων που θα σταλούν. Όταν εκτελείται η χειραψία τριών δρόμων για τη δημιουργία μιας σύνδεσης, η προσωρινή μνήμη αποστολής έχει ρυθμιστεί και χρησιμοποιείται για την αποθήκευση δεδομένων. Το buffer αποστολής ρυθμίζεται δυναμικά σύμφωνα με τη συμφόρηση του δικτύου και την ανατροφοδότηση από τον δέκτη.
Ένα buffer λήψης είναι μια περιοχή μνήμης που διατηρείται από την εφαρμογή TCP στην πλευρά λήψης που χρησιμοποιείται για την προσωρινή αποθήκευση δεδομένων που λαμβάνονται. Το TCP αποθηκεύει τα λαμβανόμενα δεδομένα στην προσωρινή μνήμη λήψης και περιμένει την ανώτερη εφαρμογή να το διαβάσει.
Σημειώστε ότι το μέγεθος της προσωρινής μνήμης αποστολής και λήψη της προσωρινής μνήμης είναι περιορισμένο, όταν η προσωρινή μνήμη είναι γεμάτη, η TCP μπορεί να υιοθετήσει ορισμένες στρατηγικές, όπως ο έλεγχος συμφόρησης, ο έλεγχος ροής κλπ., Για να εξασφαλιστεί αξιόπιστη μετάδοση δεδομένων και σταθερότητα δικτύου.
Στα δίκτυα υπολογιστών, η μετάδοση δεδομένων μεταξύ των κεντρικών υπολογιστών πραγματοποιείται μέσω τμημάτων. Τι είναι λοιπόν ένα τμήμα πακέτων;
Το TCP δημιουργεί ένα τμήμα TCP ή ένα τμήμα πακέτων, χωρίζοντας το εισερχόμενο ρεύμα σε κομμάτια και προσθέτοντας κεφαλίδες TCP σε κάθε κομμάτι. Κάθε τμήμα μπορεί να μεταδοθεί μόνο για περιορισμένο χρονικό διάστημα και δεν μπορεί να υπερβεί το μέγιστο μέγεθος του τμήματος (MSS). Κατά τη διαδρομή του, ένα τμήμα πακέτων περνάει από το στρώμα συνδέσμου. Το στρώμα συνδέσμου διαθέτει μέγιστη μονάδα μετάδοσης (MTU), η οποία είναι το μέγιστο μέγεθος πακέτου που μπορεί να περάσει από το επίπεδο σύνδεσης δεδομένων. Η μέγιστη μονάδα μετάδοσης σχετίζεται συνήθως με τη διεπαφή επικοινωνίας.
Ποια είναι λοιπόν η διαφορά μεταξύ MSS και MTU;
Στα δίκτυα υπολογιστών, η ιεραρχική αρχιτεκτονική είναι πολύ σημαντική επειδή λαμβάνει υπόψη τις διαφορές μεταξύ των διαφορετικών επιπέδων. Κάθε στρώμα έχει διαφορετικό όνομα. Στο στρώμα μεταφοράς, τα δεδομένα ονομάζονται τμήμα και στο στρώμα δικτύου, τα δεδομένα ονομάζονται πακέτο IP. Επομένως, η μέγιστη μονάδα μετάδοσης (MTU) μπορεί να θεωρηθεί ως το μέγιστο μέγεθος πακέτων IP που μπορεί να μεταδοθεί από το στρώμα δικτύου, ενώ το μέγιστο μέγεθος τμήματος (MSS) είναι μια έννοια του στρώματος μεταφοράς που αναφέρεται στη μέγιστη ποσότητα δεδομένων που μπορεί να μεταδοθεί με ένα πακέτο TCP κάθε φορά.
Σημειώστε ότι όταν το μέγιστο μέγεθος τμήματος (MSS) είναι μεγαλύτερο από τη μέγιστη μονάδα μετάδοσης (MTU), ο κατακερματισμός IP θα πραγματοποιηθεί στο στρώμα δικτύου και το TCP δεν θα χωρίσει τα μεγαλύτερα δεδομένα σε τμήματα κατάλληλα για μέγεθος MTU. Θα υπάρχει ένα τμήμα στο επίπεδο δικτύου αφιερωμένο στο στρώμα IP.
Δομή τμήματος πακέτων TCP
Ας εξερευνήσουμε τη μορφή και το περιεχόμενο των κεφαλίδων TCP.
Αριθμός ακολουθίας: Ένας τυχαίος αριθμός που παράγεται από τον υπολογιστή όταν η σύνδεση καθορίζεται ως αρχική τιμή του όταν δημιουργείται η σύνδεση TCP και ο αριθμός ακολουθίας αποστέλλεται στον δέκτη μέσω του πακέτου SYN. Κατά τη διάρκεια της μετάδοσης δεδομένων, ο αποστολέας αυξάνει τον αριθμό ακολουθίας ανάλογα με το ποσό των δεδομένων που αποστέλλονται. Ο δέκτης κρίνει τη διάταξη των δεδομένων σύμφωνα με τον λαμβανόμενο αριθμό ακολουθίας. Εάν τα δεδομένα βρίσκονται εκτός παραγγελίας, ο δέκτης θα αναδιατάξει τα δεδομένα για να διασφαλίσει τη σειρά των δεδομένων.
Αριθμός αναγνώρισης: Αυτός είναι ένας αριθμός ακολουθίας που χρησιμοποιείται στο TCP για να αναγνωρίσει την παραλαβή των δεδομένων. Υποδεικνύει τον αριθμό ακολουθίας των επόμενων δεδομένων που αναμένει να λάβει ο αποστολέας. Σε μια σύνδεση TCP, ο δέκτης καθορίζει ποια δεδομένα έχουν ληφθεί με επιτυχία με βάση τον αριθμό ακολουθίας του ληφθέντος τμήματος πακέτων δεδομένων. Όταν ο δέκτης λάβει με επιτυχία τα δεδομένα, στέλνει ένα πακέτο ACK στον αποστολέα, το οποίο περιέχει τον αριθμό αναγνώρισης επιβεβαίωσης. Αφού έλαβε το πακέτο ACK, ο αποστολέας μπορεί να επιβεβαιώσει ότι τα δεδομένα πριν αναγνωρίσουν τον αριθμό απάντησης έχει ληφθεί με επιτυχία.
Τα κομμάτια ελέγχου ενός τμήματος TCP περιλαμβάνουν τα εξής:
Ακανόνομο κομμάτι: Όταν αυτό το bit είναι 1, αυτό σημαίνει ότι το πεδίο απάντησης αναγνώρισης είναι έγκυρο. Το TCP καθορίζει ότι αυτό το bit πρέπει να ρυθμιστεί σε 1 εκτός από τα πακέτα SYN όταν η σύνδεση έχει αρχικά καθοριστεί.
Αρχικό κομμάτι: Όταν αυτό το bit είναι 1, δείχνει ότι υπάρχει εξαίρεση στη σύνδεση TCP και η σύνδεση πρέπει να αναγκαστεί να αποσυνδεθεί.
Syn bit: Όταν αυτό το bit έχει οριστεί σε 1, σημαίνει ότι πρόκειται να καθοριστεί η σύνδεση και η αρχική τιμή του αριθμού ακολουθίας ορίζεται στο πεδίο αριθμού ακολουθίας.
Πτερύγιο: Όταν αυτό το bit είναι 1, σημαίνει ότι δεν θα αποσταλούν περισσότερα δεδομένα στο μέλλον και η σύνδεση είναι επιθυμητή.
Οι διάφορες λειτουργίες και τα χαρακτηριστικά του TCP ενσωματώνονται από τη δομή των τμημάτων πακέτων TCP.
Τι είναι το UDP; (MyLinking'sΒρύση δικτύουκαιΜεσίτης πακέτων δικτύουθα μπορούσε να επεξεργαστεί τόσο τα πακέτα TCP ή UDP)
Το πρωτόκολλο Datagram του χρήστη (UDP) είναι ένα πρωτόκολλο επικοινωνίας χωρίς σύνδεση. Σε σύγκριση με το TCP, το UDP δεν παρέχει πολύπλοκες μηχανισμούς ελέγχου. Το πρωτόκολλο UDP επιτρέπει στις εφαρμογές να στέλνουν απευθείας ενθυλακωμένα πακέτα IP χωρίς να δημιουργούν μια σύνδεση. Όταν ο προγραμματιστής επιλέξει να χρησιμοποιήσει το UDP αντί του TCP, η εφαρμογή επικοινωνεί απευθείας με το IP.
Το πλήρες όνομα του πρωτοκόλλου UDP είναι το πρωτόκολλο Datagram χρήστη και η κεφαλίδα του είναι μόνο οκτώ bytes (64 bits), τα οποία είναι πολύ συνοπτικά. Η μορφή της κεφαλίδας UDP έχει ως εξής:
Θύρες προορισμού και προέλευσης: Ο κύριος σκοπός τους είναι να υποδείξουν σε ποια διαδικασία UDP πρέπει να στέλνει πακέτα.
Μέγεθος πακέτου: Το πεδίο μεγέθους πακέτου διατηρεί το μέγεθος της κεφαλίδας UDP συν το μέγεθος των δεδομένων
Ακεραιότητα: Σχεδιασμένο για να εξασφαλιστεί αξιόπιστη παράδοση των κεφαλίδων και των δεδομένων του UDP Ο ρόλος του ελέγχου ελέγχου είναι να ανιχνευθεί εάν έχει σημειωθεί σφάλμα ή διαφθορά κατά τη διάρκεια της μετάδοσης ενός πακέτου UDP για να εξασφαλιστεί η ακεραιότητα των δεδομένων.
Διαφορές μεταξύ TCP και UDP στο MyLinking'sΒρύση δικτύουκαιΜεσίτης πακέτων δικτύουθα μπορούσε να επεξεργαστεί τόσο τα πακέτα TCP ή UDP
Τα TCP και UDP είναι διαφορετικά στις ακόλουθες πτυχές:
Σύνδεση: Το TCP είναι ένα πρωτόκολλο μεταφοράς με προσανατολισμό στη σύνδεση που απαιτεί τη δημιουργία σύνδεσης πριν από τη μεταφορά δεδομένων. Το UDP, από την άλλη πλευρά, δεν απαιτεί σύνδεση και μπορεί να μεταφέρει τα δεδομένα αμέσως.
Αντικείμενο εξυπηρέτησης: Το TCP είναι μια υπηρεσία δύο σημείων, δηλαδή, μια σύνδεση έχει μόνο δύο τελικά σημεία για να επικοινωνεί μεταξύ τους. Ωστόσο, το UDP υποστηρίζει ταυτόχρονα το one-to-one, το one-to-many και πολλά προς πολλά, η οποία μπορεί να επικοινωνεί με πολλαπλούς κεντρικούς υπολογιστές ταυτόχρονα.
Αξιοπιστία: Το TCP παρέχει την υπηρεσία αξιοπιστίας της παροχής δεδομένων, διασφαλίζοντας ότι τα δεδομένα είναι χωρίς λάθη, χωρίς ζημίες, μη-dupplicate και φθάνουν κατόπιν αιτήματος. Η UDP, από την άλλη πλευρά, κάνει την καλύτερη προσπάθειά του και δεν εγγυάται αξιόπιστη παράδοση. Το UDP μπορεί να υποφέρει από απώλεια δεδομένων και άλλες καταστάσεις κατά τη διάρκεια της μετάδοσης.
Έλεγχος συμφόρησης, έλεγχος ροής: Το TCP έχει μηχανισμούς ελέγχου συμφόρησης και ελέγχου ροής, οι οποίοι μπορούν να προσαρμόσουν τον ρυθμό μετάδοσης δεδομένων σύμφωνα με τις συνθήκες του δικτύου για να εξασφαλίσουν την ασφάλεια και τη σταθερότητα της μετάδοσης δεδομένων. Το UDP δεν διαθέτει μηχανισμούς ελέγχου συμφόρησης και ελέγχου ροής, ακόμη και αν το δίκτυο έχει πολύ συμφόρηση, δεν θα κάνει προσαρμογές στο ποσοστό αποστολής UDP.
Επικεφαλίδα: Το TCP έχει ένα μακρύ μήκος κεφαλίδας, τυπικά 20 bytes, τα οποία αυξάνονται όταν χρησιμοποιούνται πεδία επιλογών. Το UDP, από την άλλη πλευρά, έχει σταθερή κεφαλίδα μόνο 8 bytes, οπότε το UDP έχει χαμηλότερη κεφαλίδα πάνω από το κεφάλι.
Σενάρια εφαρμογών TCP και UDP:
Το TCP και το UDP είναι δύο διαφορετικά πρωτόκολλα στρώματος μεταφοράς και έχουν κάποιες διαφορές στα σενάρια εφαρμογής.
Δεδομένου ότι το TCP είναι ένα πρωτόκολλο προσανατολισμένο στη σύνδεση, χρησιμοποιείται κυρίως σε σενάρια όπου απαιτείται αξιόπιστη παράδοση δεδομένων. Ορισμένες περιπτώσεις κοινής χρήσης περιλαμβάνουν:
Μεταφορά αρχείου FTP: Το TCP μπορεί να διασφαλίσει ότι τα αρχεία δεν χάνονται και καταστραφούν κατά τη μεταφορά.
Http/https: Το TCP εξασφαλίζει την ακεραιότητα και την ορθότητα του περιεχομένου ιστού.
Επειδή το UDP είναι ένα πρωτόκολλο χωρίς σύνδεση, δεν παρέχει εγγύηση αξιοπιστίας, αλλά έχει τα χαρακτηριστικά της αποτελεσματικότητας και του πραγματικού χρόνου. Το UDP είναι κατάλληλο για τα ακόλουθα σενάρια:
Η κυκλοφορία χαμηλής συσκευασίας, όπως το DNS (σύστημα ονόματος τομέα): Τα ερωτήματα DNS είναι συνήθως σύντομα πακέτα και το UDP μπορεί να τα ολοκληρώσει ταχύτερα.
Επικοινωνία πολυμέσων όπως βίντεο και ήχος: Για τη μετάδοση πολυμέσων με υψηλές απαιτήσεις σε πραγματικό χρόνο, το UDP μπορεί να παρέχει χαμηλότερη καθυστέρηση για να διασφαλίσει ότι τα δεδομένα μπορούν να μεταδοθούν εγκαίρως.
Εκπομπή: Το UDP υποστηρίζει την επικοινωνία ενός προς πολλά και πολλά προς πολλά και μπορεί να χρησιμοποιηθεί για τη μετάδοση μηνυμάτων εκπομπής.
Περίληψη
Σήμερα μάθαμε για το TCP. Το TCP είναι ένα πρωτόκολλο επικοινωνίας μεταφοράς που βασίζεται σε σύνδεση με βάση το byte-ρεύμα. Εξασφαλίζει την αξιόπιστη μετάδοση και την ομαλή λήψη δεδομένων με τη δημιουργία σύνδεσης, χειραψίας και αναγνώρισης. Το πρωτόκολλο TCP χρησιμοποιεί θύρες για να πραγματοποιήσει την επικοινωνία μεταξύ των διαδικασιών και παρέχει υπηρεσίες άμεσης επικοινωνίας για διαδικασίες εφαρμογής που εκτελούνται σε διαφορετικούς κεντρικούς υπολογιστές. Οι συνδέσεις TCP είναι πλήρεις, επιτρέποντας ταυτόχρονες μεταφορές αμφίδρομων δεδομένων. Αντίθετα, το UDP είναι ένα πρωτόκολλο επικοινωνίας χωρίς σύνδεση, το οποίο δεν παρέχει εγγυήσεις αξιοπιστίας και είναι κατάλληλο για ορισμένα σενάρια με υψηλές απαιτήσεις σε πραγματικό χρόνο. Το TCP και το UDP είναι διαφορετικοί στη λειτουργία σύνδεσης, το αντικείμενο εξυπηρέτησης, την αξιοπιστία, τον έλεγχο συμφόρησης, τον έλεγχο ροής και άλλες πτυχές και τα σενάρια εφαρμογής τους είναι επίσης διαφορετικά.
Χρόνος δημοσίευσης: Δεκέμβριος-03-2024