Ποια είναι η διαφορά μεταξύ του TCP και του UDP;
Ίσως έχετε δει αναφορές σε TCP και UDP κατά τη ρύθμιση της προώθησης θύρας σε ένα δρομολογητή ή κατά τη διαμόρφωση του λογισμικού τείχους προστασίας. Αυτά τα δύο πρωτόκολλα χρησιμοποιούνται για διαφορετικούς τύπους δεδομένων.
Το TCP / IP είναι μια σειρά πρωτοκόλλων που χρησιμοποιούνται από συσκευές για να επικοινωνούν μέσω του Διαδικτύου και των περισσότερων τοπικών δικτύων. Ονομάζεται μετά από δύο από τα αρχικά πρωτόκολλα - το πρωτόκολλο ελέγχου μετάδοσης (TCP) και το πρωτόκολλο Internet (IP). Το TCP παρέχει στις εφαρμογές έναν τρόπο να παραδίδουν (και να λαμβάνουν) μια ροή πακέτων πληροφοριών που έχουν παραγγελθεί και ελέγξει με σφάλμα μέσω του δικτύου. Το πρωτόκολλο User Datagram Protocol (UDP) χρησιμοποιείται από τις εφαρμογές για την παροχή πιο γρήγορης ροής πληροφοριών, εξαλείφοντας τον έλεγχο σφαλμάτων. Όταν διαμορφώνετε κάποιο υλικό ή λογισμικό δικτύου, ίσως χρειαστεί να γνωρίζετε τη διαφορά.
Τι έχουν κοινά
Τόσο το TCP όσο και το UDP είναι πρωτόκολλα που χρησιμοποιούνται για την αποστολή δυφίων δεδομένων γνωστών ως πακέτα - μέσω του Internet. Και τα δύο πρωτόκολλα βασίζονται στο πρωτόκολλο IP. Με άλλα λόγια, αν στέλνετε ένα πακέτο μέσω TCP ή UDP, αυτό το πακέτο αποστέλλεται σε μια διεύθυνση IP. Αυτά τα πακέτα αντιμετωπίζονται παρομοίως, καθώς προωθούνται από τον υπολογιστή σας στους ενδιάμεσους δρομολογητές και στον προορισμό.
Τα TCP και UDP δεν είναι τα μόνα πρωτόκολλα που λειτουργούν στην κορυφή του IP. Ωστόσο, είναι οι πιο ευρέως χρησιμοποιούμενες.
Πώς λειτουργεί το TCP
Το TCP είναι το πιο συχνά χρησιμοποιούμενο πρωτόκολλο στο Διαδίκτυο.
Όταν ζητάτε μια ιστοσελίδα στο πρόγραμμα περιήγησής σας, ο υπολογιστής σας στέλνει τα πακέτα TCP στη διεύθυνση του διακομιστή του ιστού, ζητώντας του να στείλει την ιστοσελίδα πίσω σε εσάς. Ο διακομιστής ιστού αποκρίνεται αποστέλλοντας μια ροή πακέτων TCP, τα οποία το πρόγραμμα περιήγησης του ιστού σας συσχετίζει για να σχηματίσει την ιστοσελίδα. Όταν κάνετε κλικ σε ένα σύνδεσμο, συνδεθείτε, δημοσιεύσετε ένα σχόλιο ή κάνετε οτιδήποτε άλλο, το πρόγραμμα περιήγησης ιστού σας στέλνει πακέτα TCP στο διακομιστή και ο διακομιστής στέλνει πακέτα TCP.
Το TCP αφορά στην αξιοπιστία-τα πακέτα που αποστέλλονται με TCP παρακολουθούνται, έτσι ώστε να μην χάνονται ή να διαβιβάζονται δεδομένα κατά τη μεταφορά. Αυτός είναι ο λόγος για τον οποίο οι λήψεις αρχείων δεν καταστρέφονται ακόμη και αν υπάρχει hiccups του δικτύου. Φυσικά, εάν ο παραλήπτης είναι εντελώς εκτός σύνδεσης, ο υπολογιστής σας θα εγκαταλείψει και θα δείτε ένα μήνυμα σφάλματος λέγοντας ότι δεν μπορεί να επικοινωνήσει με τον απομακρυσμένο κεντρικό υπολογιστή.
Το TCP επιτυγχάνει αυτό με δύο τρόπους. Πρώτα, παραγγέλνει πακέτα με αρίθμηση τους. Δεύτερον, ελέγχει το σφάλμα, έχοντας τον παραλήπτη να στείλει μια απάντηση στον αποστολέα λέγοντας ότι έλαβε το μήνυμα. Εάν ο αποστολέας δεν λάβει σωστή απάντηση, μπορεί να ξαναστείλει τα πακέτα για να διασφαλίσει ότι ο παραλήπτης θα τα λάβει σωστά.
Ο Process Explorer και άλλα βοηθητικά προγράμματα συστήματος μπορούν να δείξουν τον τύπο συνδέσεων που κάνει μια διαδικασία - εδώ μπορούμε να δούμε το πρόγραμμα περιήγησης Chrome με ανοικτές συνδέσεις TCP σε διάφορους διακομιστές ιστού.
Πώς λειτουργεί το UDP
Το πρωτόκολλο UDP λειτουργεί παρόμοια με το TCP, αλλά εκπέμπει όλα τα πράγματα ελέγχου σφαλμάτων. Όλη η αμφίδρομη επικοινωνία εισάγει λανθάνουσα κατάσταση, επιβραδύνοντας τα πράγματα.
Όταν μια εφαρμογή χρησιμοποιεί UDP, τα πακέτα αποστέλλονται στον παραλήπτη. Ο αποστολέας δεν περιμένει να βεβαιωθεί ότι ο παραλήπτης έλαβε το πακέτο - απλώς συνεχίζει να στέλνει τα επόμενα πακέτα. Εάν ο παραλήπτης χάσει μερικά πακέτα UDP εδώ και εκεί, χάνεται - ο αποστολέας δεν θα τα αποστείλει ξανά. Η απώλεια όλων αυτών των δαπανών σημαίνει ότι οι συσκευές μπορούν να επικοινωνούν πιο γρήγορα.
Το UDP χρησιμοποιείται όταν η ταχύτητα είναι επιθυμητή και η διόρθωση σφάλματος δεν είναι απαραίτητη. Για παράδειγμα, το UDP χρησιμοποιείται συχνά για ζωντανές εκπομπές και online παιχνίδια.
Για παράδειγμα, ας πούμε ότι βλέπετε μια ζωντανή ροή βίντεο, η οποία συχνά μεταδίδεται χρησιμοποιώντας UDP αντί TCP. Ο διακομιστής απλώς στέλνει μια σταθερή ροή πακέτων UDP σε υπολογιστές που παρακολουθούν. Εάν χάσετε τη σύνδεσή σας για λίγα δευτερόλεπτα, το βίντεο μπορεί να παγώσει ή να πάθει άλμα για λίγο και στη συνέχεια να μεταβεί στο τρέχον κομμάτι της εκπομπής. Αν αντιμετωπίσετε μικρή απώλεια πακέτων, το βίντεο ή ο ήχος ενδέχεται να παραμορφωθεί για λίγο καθώς το βίντεο συνεχίζει να αναπαράγεται χωρίς τα δεδομένα που λείπουν.
Αυτό λειτουργεί ομοίως και στα online παιχνίδια. Αν χάσετε κάποια πακέτα UDP, οι χαρακτήρες των παικτών μπορεί να εμφανίζονται να τηλεφορτωθούν σε ολόκληρο τον χάρτη καθώς λαμβάνετε τα νεότερα πακέτα UDP. Δεν υπάρχει λόγος να ζητήσετε τα παλιά πακέτα εάν τα χάσατε, καθώς το παιχνίδι συνεχίζεται χωρίς εσάς. Το μόνο που έχει σημασία είναι τι συμβαίνει τώρα στο διακομιστή παιχνιδιών - όχι αυτό που συνέβη πριν από μερικά δευτερόλεπτα. Διόρθωση Η διόρθωση σφαλμάτων του TCP συμβάλλει στην επιτάχυνση της σύνδεσης του παιχνιδιού και στη μείωση της καθυστέρησης.
Και λοιπόν?
Το αν η εφαρμογή χρησιμοποιεί TCP ή UDP εξαρτάται από τον προγραμματιστή της και η επιλογή εξαρτάται από το τι χρειάζεται μια εφαρμογή. Οι περισσότερες εφαρμογές χρειάζονται τη διόρθωση σφαλμάτων και την ευρωστία του TCP, αλλά ορισμένες εφαρμογές χρειάζονται την ταχύτητα και τη μειωμένη επιβάρυνση του UDP. Εάν ενεργοποιήσετε ένα εργαλείο ανάλυσης δικτύου, όπως το Wireshark, μπορείτε να δείτε τους διαφορετικούς τύπους πακέτων που ταξιδεύουν εμπρός και πίσω.
Αν δεν είστε διαχειριστής δικτύου ή προγραμματιστής λογισμικού, αυτό δεν πρέπει να σας επηρεάζει πάρα πολύ. Εάν ρυθμίζετε το δρομολογητή ή το λογισμικό τείχους προστασίας και δεν είστε βέβαιοι αν μια εφαρμογή χρησιμοποιεί TCP ή UDP, μπορείτε γενικά να επιλέξετε την επιλογή "Και τα δύο" ώστε ο δρομολογητής ή το τείχος προστασίας να εφαρμόζουν τον ίδιο κανόνα τόσο στην κίνηση TCP όσο και στο UDP.