Τι είναι + Διαφορά μεταξύ TCP και UDP

Το TCP και το UDP είναι πρωτόκολλα σύνδεσης που χρησιμοποιούνται για να καθορίσουν τον τρόπο με τον οποίο ανταλλάσσονται δεδομένα μέσω μιας σύνδεσης στο Διαδίκτυο. Εάν γνωρίζετε ήδη τι σημαίνει IP (π.χ. Πρωτόκολλο Διαδικτύου), τότε γνωρίζετε ήδη, καθώς και το TCP και το UDP έχουν αναπτυχθεί πάνω από αυτό.

Ωστόσο, θα κάνετε λάθος αν πιστεύετε ότι είναι σχεδόν τα ίδια. Παρόλο που τόσο το TCP όσο και το UDP «έχουν λόγο» στον τρόπο αποστολής/λήψης των δεδομένων σας στο Διαδίκτυο, είναι στην πραγματικότητα πολύ διαφορετικά και για αυτόν τον λόγο, χρησιμοποιούνται για διαφορετικούς σκοπούς.

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

Δεδομένου ότι τόσο το TCP όσο και το UDP βασίζονται στο Πρωτόκολλο Διαδικτύου, ίσως θελήσετε να καταλάβετε περισσότερα σχετικά με το IP προτού μεταβείτε κατευθείαν στα εισαγωγικά μαθήματα TCP/UDP. Ξέρεις, πρέπει να μάθεις πώς να περπατάς για να μπορέσεις να τρέξεις.

Τι είναι μια διεύθυνση IP;

Το IP, το οποίο είναι συντομογραφία του Πρωτοκόλλου Διαδικτύου, είναι η ίδια η ραχοκοκαλιά πάνω στην οποία δημιουργήθηκε το Διαδίκτυο όπως το ξέρουμε. Η σημασία του μπορεί εύκολα να αντιληφθεί από το γεγονός ότι σε κάθε συσκευή έχει εκχωρηθεί μια μοναδική διεύθυνση IP προκειμένου να έχει πρόσβαση στο Διαδίκτυο.

Η διεύθυνση αποτελούταν μόνο από αριθμούς και δεκαδικούς. Για να είμαστε πιο συγκεκριμένοι, μια διεύθυνση IPv4 μπορεί να σχηματιστεί από τέσσερις μεμονωμένους αριθμούς, καθένας από τους οποίους μπορεί να έχει τιμή μεταξύ 0 και 254. Το IPv4 μας έδωσε ένα συνολικό εύρος 4,3 δισεκατομμυρίων μοναδικών διευθύνσεων IP.

Αναπόφευκτα, το Διαδίκτυο άρχισε να φτάνει στο σημείο όπου δεν θα μπορούσαν να δημιουργηθούν νέες μοναδικές διευθύνσεις IP, όταν ήρθε το σύστημα IPv6 για να σώσει τη μέρα. Οι δημόσιες διευθύνσεις IPv6 χρησιμοποιούν δεκαεξαδικά ψηφία και το καθένα περιέχει 128 bit, πράγμα που σημαίνει ότι αντί για τη βάση 10 (0 έως 10) χρησιμοποιούν τη βάση 16 (0 έως 10 συν «a» έως «f»).

Με τη βοήθεια του συστήματος IPv6, το συνολικό εύρος των δημόσιων διευθύνσεων IPv6 που θα μπορούσαμε να έχουμε είναι 340 undecillion (3,4 * 10^28). Εάν είναι αδύνατο να το τυλίξετε γύρω σας, δείτε πώς φαίνονται οι διευθύνσεις IPv4 και IPv6 παρακάτω:

Παράδειγμα διεύθυνσης IPv4: 10.238.126.215
Παράδειγμα διεύθυνσης IPv6: fe80:0db8:0412:2001:3c5e:0000:10a9

Αν και ο απώτερος στόχος είναι το IPv6 να αντικαταστήσει το IPv4, στις μέρες μας τα δύο πρωτόκολλα λειτουργούν σε συνδυασμό.

  Πώς να πάρετε τον έλεγχο της γραμμής μενού του Mac σας με τον Bartender

Οι διευθύνσεις IP επιτρέπουν στις συσκευές με δυνατότητα Internet να εντοπίζουν, να επικοινωνούν μεταξύ τους και να ανταλλάσσουν πληροφορίες. Η κοινή χρήση δεδομένων, η ροή βίντεο ή η αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου δεν θα ήταν δυνατή χωρίς μια διεύθυνση IP. Ό,τι κάνετε στο διαδίκτυο μπορεί να μεταγραφεί σε δεδομένα.

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

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

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

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

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

Τι είναι το TCP;

Το TCP, που σημαίνει Transmission Control Protocol, είναι ένα από τα κύρια πρωτόκολλα που χρησιμοποιούνται από τη σουίτα πρωτοκόλλων Διαδικτύου. Ήρθε πριν από το UDP και χρησιμοποιήθηκε για να επιτρέπει σε προγράμματα και συσκευές να ανταλλάσσουν πληροφορίες μέσω δικτύου.

Μπορεί να παρατηρήσετε ότι μερικές φορές συνδέεται με IP και αναφέρεται ως TCP/IP, αλλά σημαίνει το ίδιο πράγμα (δηλαδή το TCP και το TCP/IP είναι ακριβώς το ίδιο πράγμα).

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

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

  Πώς να διορθώσετε προβλήματα ήχου στα Windows 10

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

Είναι αυτονόητο ότι αυτή η συνεχής επικοινωνία μεταξύ συσκευών επιβαρύνει τρομερά το TCP, καθώς οποιοδήποτε χαμένο ή κατεστραμμένο πακέτο μπορεί να σταματήσει τη διαδικασία μέχρι το bit που λείπει να φτάσει με ασφάλεια στον προορισμό του. Ωστόσο, το TCP δεν χρειάζεται να κάνει τα πάντα μόνο του, έτσι το UDP επινοήθηκε λίγο μετά.

Για να το θέσω σύντομα, TCP:

Βεβαιωθείτε ότι δεν πέφτουν πακέτα
Ζητά να σταλούν εκ νέου πακέτα εάν εντοπίσει κάποια που λείπουν
Στέλνει τα πακέτα με τη σειρά ώστε να μπορούν να συναρμολογηθούν εύκολα
Το πιο δημοφιλές πρωτόκολλο Διαδικτύου
Πιο αργό από το UDP γιατί πρέπει να βεβαιωθεί ότι κάθε πακέτο φτάνει
Κατάλληλο για ιστότοπους, email, FTP (File Transfer Protocol), κοινή χρήση αρχείων P2P

Τι είναι το UDP;

Το UDP, συντομογραφία του User Datagram Protocol, είναι μια εναλλακτική του TCP, επομένως είναι ασφαλές να υποθέσουμε ότι ουσιαστικά εκτελούν την ίδια εργασία. Ωστόσο, είναι επίσης πολύ διαφορετικά ταυτόχρονα, καθώς το TCP είναι αρκετά σχολαστικό στον έλεγχο των δεδομένων πακέτων, ενώ το UDP είναι λίγο πιο απρόσεκτο.

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

Επομένως, είναι ασφαλές να πούμε ότι το UDP είναι πιο γρήγορο, αλλά γιατί θα θέλατε να θυσιάσετε την ταχύτητα σε βάρος της απώλειας δεδομένων στην πορεία; Λοιπόν, βασικά υπάρχουν ορισμένες εφαρμογές όπου η απώλεια πακέτων δεν είναι ακριβώς τραγωδία.

Για παράδειγμα, εάν χρησιμοποιείτε έναν υπολογιστή-πελάτη VoIP και μιλάτε με κάποιον, μπορεί να παρατηρήσετε την περιστασιακή απώλεια καρέ ή λίγο τραυλισμό στον ήχο, που τις περισσότερες φορές είναι εύκολο να αγνοηθεί και επομένως δεν είναι κρίσιμο. Το ίδιο ισχύει και για τα παιχνίδια, όπου μπορεί να παρατηρήσετε το τραύλισμα του παιχνιδιού ή το λάστιχο κάθε τόσο. Απλώς συνεχίζετε να παίζετε και αυτό είναι το τέλος αφού το UDP απλώς ρίχνει πακέτα που χάθηκαν κατά τη μεταφορά.

  Πώς να φτιάξετε ένα Windows USB από το τερματικό Linux

Με άλλα λόγια, UDP:

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

TCP και UDP στη χρήση VPN

Σήμερα, όλο και περισσότερα VPN αρχίζουν να υιοθετούν το WireGuard ή να δημιουργούν το ιδιόκτητο πρωτόκολλό τους για χρήση, αλλά πολλά από αυτά βασίζονται στο OpenVPN γιατί μετά από τόσα χρόνια είναι ακόμα αξιόπιστο, γρήγορο και ασφαλές.

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

Κατά τη χρήση ενός VPN, ενδέχεται να μην μπορείτε να παρατηρήσετε τεράστια διαφορά μεταξύ TCP και UDP όσον αφορά την ταχύτητα. Ωστόσο, εάν η σύνδεσή σας πρέπει να παρακάμψει ένα τείχος προστασίας, τότε τα πράγματα αλλάζουν, κυρίως επειδή αυτά τα πρωτόκολλα λειτουργούν σε διαφορετικές θύρες και ορισμένα τείχη προστασίας ενδέχεται να αποκλείουν τις προεπιλεγμένες θύρες για ορισμένους τύπους κίνησης.

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

Διαφορά μεταξύ TCP και UDP

TCP

UDP

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

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

TCP vs UDP: Συμπέρασμα

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

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

Το UDP απλώς ελέγχει εάν ο προορισμός είναι σωστός και ελέγχει την ακεραιότητα των πακέτων, αλλά δεν ζητά από τον αποστολέα να στείλει ξανά τυχόν χαμένα πακέτα και απλώς τα απορρίπτει, πράγμα που σημαίνει ότι θα έχετε ταχύτερη σύνδεση, αλλά μπορείτε να ρίξετε πακέτα μαζί ο ΤΡΟΠΟΣ. Το UDP χρησιμοποιείται κυρίως για παιχνίδια, VoIP, ροή βίντεο και μετάδοση ζωντανού περιεχομένου, όπου η απώλεια μερικών πακέτων δεν πρέπει να επηρεάζει υπερβολικά το τελικό αποτέλεσμα.