- Το TCP προσφέρει αξιόπιστη και ομαλή μεταφορά με έλεγχο ροής και συμφόρησης, ιδανικό για μεταφορές ιστού, email και αρχείων.
- Το UDP ελαχιστοποιεί την επιβάρυνση και την καθυστέρηση, καθιστώντας το κλειδί για online gaming, VoIP, ροής και πρωτόκολλα όπως DNS ή DHCP.
- Πολλές υπηρεσίες χρησιμοποιούν τον ίδιο αριθμό θύρας με διαφορετική μεταφορά (π.χ., DNS σε 53/TCP και 53/UDP ή RDP σε 3389/TCP και 3389/UDP).
- Η επιλογή μεταξύ θυρών TCP ή UDP επηρεάζει την απόδοση, την κατανάλωση δεδομένων και την επιφάνεια επίθεσης, καθιστώντας τη διαχείρισή της σε τείχη προστασίας κρίσιμη.
Όταν εμβαθύνουμε στον κόσμο των δικτύων, αργά ή γρήγορα προκύπτει το τυπικό ερώτημα: Ποιες είναι οι πραγματικές διαφορές μεταξύ των θυρών TCP και UDP; και πότε είναι καλύτερο να χρησιμοποιήσετε το ένα ή το άλλο. Αν και με την πρώτη ματιά βλέπουμε μόνο αριθμούς θύρας (80, 443, 3389, 53…), από κάτω υπάρχουν δύο πολύ διαφορετικοί τρόποι μεταφοράς δεδομένων μέσω του Διαδικτύου που επηρεάζουν την ταχύτητα. αξιοπιστία και μάλιστα στην ασφάλεια.
Σε αυτό το άρθρο θα το αναλύσουμε με ηρεμία Πώς λειτουργούν τα TCP και UDP, ποιος είναι ο ρόλος των θυρών και ποια πρωτόκολλα χρησιμοποιεί η καθεμία.πώς επηρεάζουν καθημερινά πράγματα όπως η περιήγηση, το παιχνίδι online παιχνιδιών, η πραγματοποίηση βιντεοκλήσεων ή η σύνδεση μέσω απομακρυσμένης επιφάνειας εργασίας και ποιες επιπτώσεις έχουν όσον αφορά την απόδοση, cybersecurity και διαμόρφωση τείχους προστασίας.
TCP και UDP: δύο διαφορετικοί τρόποι μεταφοράς δεδομένων
Πριν συζητήσουμε για τις θύρες, είναι σημαντικό να καταλάβουμε ότι Τα TCP (Πρωτόκολλο Ελέγχου Μετάδοσης) και UDP (Πρωτόκολλο Δεδομένων Χρήστη) είναι πρωτόκολλα επιπέδου μεταφοράς του μοντέλου TCP/IP και καθορίζουν το στυλ επικοινωνίας μεταξύ πηγής και προορισμού.
Το TCP είναι ένα πρωτόκολλο προσανατολισμένο στις συνδέσειςΠριν από την αποστολή δεδομένων, δημιουργεί ένα λογικό κανάλι μεταξύ αποστολέα και παραλήπτη χρησιμοποιώντας την γνωστή «τριμερή χειραψία» (SYN, SYN-ACK, ACK). Από εκεί, αριθμεί τα τμήματα, διασφαλίζει ότι φτάνουν με τη σειρά, ανιχνεύει σφάλματα, ζητά αναμεταδόσεις και προσαρμόζει την ταχύτητα μετάδοσης ανάλογα με τη χωρητικότητα του δικτύου και του παραλήπτη.
Το UDP, από την άλλη πλευρά, είναι ένα πρωτόκολλο χωρίς σύνδεσηΔεν υπάρχει φάση εγκατάστασης. Ο αποστολέας απλώς στέλνει datagrams στον προορισμό χωρίς να περιμένει επιβεβαίωση ή παρακολούθηση. Δεν παραγγέλνει τα πακέτα, δεν εγγυάται την παράδοση ούτε εφαρμόζει μηχανισμούς ελέγχου ροής ή συμφόρησης. Σε αντάλλαγμα, μειώνει σημαντικά την επιβάρυνση και την καθυστέρηση.
Με βάση αυτό, η μεγάλη πρακτική διαφορά είναι ότι Το TCP δίνει προτεραιότητα στην αξιοπιστία και τη συνέπεια των δεδομένωνΕνώ Το UDP εστιάζει στην ταχύτητα και την απλότητααποδεχόμενοι ότι ορισμένες από τις πληροφορίες ενδέχεται να χαθούν στην πορεία.
Τι ακριβώς είναι μια θύρα TCP ή UDP;
Μια θύρα, τόσο στο TCP όσο και στο UDP, είναι απλώς ένας αριθμός από το 0 έως το 65535 που προσδιορίζει σε ποια υπηρεσία ή εφαρμογή πρέπει να φτάσει μια ροή δεδομένων μέσα σε μια συσκευή. Μαζί με τη διεύθυνση IP, σχηματίζει την περίφημη "υποδοχή" (IP:port) που χρησιμοποιούν οι εφαρμογές για να ακούν και να στέλνουν κίνηση.
Όταν μιλάμε για «θύρα TCP» ή «θύρα UDP», δεν μιλάμε για διαφορετικούς αριθμούς, αλλά μάλλον διαφορετικοί τύποι μεταφοράς που σχετίζονται με τον ίδιο αριθμό λιμέναΓια παράδειγμα, τα 53/TCP και 53/UDP συνυπάρχουν για το DNS ή τα 3389/TCP και 3389/UDP για το RDP από ορισμένες εκδόσεις και μετά.
Η αρίθμηση οργανώνεται σε τρεις τάξεις με σαφώς διαφοροποιημένες χρήσεις που μοιράζονται το TCP και το UDP:
- Γνωστές θύρες (0-1023): δεσμευμένο από την IANA για τυπικές υπηρεσίες όπως HTTP (80/TCP), HTTPS (443/TCP), FTP (21/TCP), SSH (22/TCP), DNS (53/TCP και 53/UDP), κ.λπ.
- Εγγεγραμμένες θύρες (1024-49151): έχει αντιστοιχιστεί σε συγκεκριμένες εφαρμογές, όπως 3306/TCP για MySQL ή 1194/UDP σε πολλές αναπτύξεις OpenVPN.
- Δυναμικές ή ιδιωτικές θύρες (49152-65535): χρησιμοποιούνται προσωρινά από πελάτες για εφήμερες συνεδρίες· εκχωρούνται άμεσα από το λειτουργικό σύστημα.
Χάρη σε αυτήν την οργάνωση, ένας μόνο διακομιστής μπορεί Ακούστε σε πολλές υπηρεσίες ταυτόχρονα (ιστός, email, βάση δεδομένων, VPN…) χωρίς να μπερδεύονται οι ροές δεδομένων, καθώς η καθεμία καταλαμβάνει τη δική της θύρα.
Βασικά χαρακτηριστικά του TCP: η αξιοπιστία πάνω απ' όλα
Το TCP έχει σχεδιαστεί έτσι ώστε τα δεδομένα φτάνουν πλήρη, χωρίς σφάλματα και με την ίδια σειρά με την οποία στάλθηκανακόμη και μέσω ενός δικτύου IP που, εκ σχεδιασμού, είναι η «καλύτερη δυνατή προσπάθεια» και δεν εγγυάται τίποτα.
Για να το πετύχει αυτό, το TCP χρησιμοποιεί αρκετούς αρκετά εξελιγμένους μηχανισμούς:
- Αρίθμηση τμημάτων και ACKΚάθε τμήμα φέρει έναν αριθμό ακολουθίας και ο παραλήπτης στέλνει επιβεβαιώσεις (ACK). Μπορείτε να χρησιμοποιήσετε επιλεκτικά ACK για να επικυρώσετε πολλά τμήματα ταυτόχρονα.
- Αθροιστικό Checksum: όλα τα τμήματα φέρουν ένα άθροισμα ελέγχου για την ανίχνευση αλλοίωσης δεδομένων. Εάν αποτύχει, το τμήμα απορρίπτεται και ζητείται ξανά.
- ΧρονοδιακόπτεςΕάν περάσει ένα ορισμένο χρονικό διάστημα χωρίς να ληφθεί ACK από ένα τμήμα, ο αποστολέας υποθέτει την απώλεια και το αναμεταδίδει αυτόματα.
- Διπλότυπο φίλτροΕάν το ίδιο τμήμα φτάσει δύο φορές, το TCP ανιχνεύει το διπλότυπο με την αρίθμησή του και το απορρίπτει.
Επιπλέον, το TCP υλοποιεί έλεγχος ροής με βάση το συρόμενο παράθυρο: ο παραλήπτης ανακοινώνει πόσα bytes μπορεί να αποθηκεύσει στο buffer του και ο αποστολέας δεν μπορεί να υπερβεί αυτό το όριο μέχρι να λάβει νέα ACK που "σύρουν" το παράθυρο.
Παράλληλα, το TCP περιλαμβάνει ένα έλεγχος συμφόρησης με το δικό του παράθυρο (παράθυρο συμφόρησης), το οποίο προσπαθεί να αποτρέψει τον κορεσμό του δικτύου. Εάν ανιχνεύσει απώλεια πακέτων (ενδεικτική συμφόρησης σε ένα router), μειώνει την ταχύτητά του· όταν ο δρόμος είναι ελεύθερος, την αυξάνει ξανά με ελεγχόμενο τρόπο (αργή εκκίνηση, αποφυγή συμφόρησης και φάσεις σταθερής φάσης).
με El tiempo έχουν εμφανιστεί ολοένα και πιο προηγμένοι αλγόριθμοι συμφόρησης, όπως το Tahoe και το Reno στις πρώτες τους μέρες, το Vegas, το CUBIC (πολύ χρησιμοποιούμενο στο Linux) ή BBR, σχεδιασμένο από Google για καλύτερη αξιοποίηση του διαθέσιμου εύρους ζώνης χωρίς υπερφόρτωση του δικτύου.
Ένα άλλο σημαντικό πλεονέκτημα είναι ότι Το TCP είναι full-duplex και επιτρέπει την πολυπλεξίαΤα δεδομένα μπορούν να αποστέλλονται και να λαμβάνονται ταυτόχρονα μέσω του ίδιου καναλιού και ένας κεντρικός υπολογιστής μπορεί να διατηρεί πολλαπλές ανοιχτές υποδοχές σε διαφορετικούς προορισμούς ή υπηρεσίες ταυτόχρονα.
Κεφαλίδα TCP, MSS και υπερφόρτωση
Κάθε τμήμα TCP φέρει μια κεφαλίδα που, κατ' ελάχιστον, καταλαμβάνει 20 bytes (περισσότερες επιλογές εάν είναι διαθέσιμες)Σε αυτό βρίσκουμε:
- Λιμάνι προέλευσης και προορισμού (Θύρα προέλευσης, Θύρα προορισμού).
- Αριθμός ακολουθίας y αριθμός επιβεβαίωσης (ΑΚΚ).
- Σημαίες όπως SYN, ACK, FIN, RST, URG, κ.λπ.
- Μέγεθος παραθύρου υποδοχήςζωτικής σημασίας για τον έλεγχο της ροής.
- Αθροιστικό Checksum και πιθανές επιλογές (για παράδειγμα, κλιμάκωση παραθύρου).
Το μέγιστο μέγεθος τμήματος καθορίζεται από το MSS (Μέγιστο μέγεθος τμήματος), που ορίζεται σε επίπεδο μεταφοράς. Συνήθως υπολογίζεται ως: MSS = MTU − Κεφαλίδα IP − Κεφαλίδα TCPΣε ένα τυπικό δίκτυο Ethernet (MTU 1500) και με ελάχιστες κεφαλίδες, μιλάμε για 1460 bytes χρήσιμων δεδομένων.
Αν και αυτή η σχετικά μεγάλη κεφαλίδα αυξάνει την επιβάρυνση, επιτρέπει το TCP ενσωματώνουν όλους αυτούς τους μηχανισμούς ελέγχου γεγονός που του προσδίδει υψηλό επίπεδο αξιοπιστίας.
Δημιουργία και κλείσιμο συνδέσεων TCP: τριμερής χειραψία και ΤΕΛΟΣ
Για να ξεκινήσετε την ανταλλαγή δεδομένων με TCP, πρέπει πρώτα να Δημιουργήστε μια λογική σύνδεση μεταξύ πελάτη και διακομιστήΗ κλασική διαδικασία είναι η τριμερής χειραψία:
- Ο πελάτης στέλνει ένα τμήμα με το σημαία ΣΥΝ και έναν αρχικό αύξοντα αριθμό.
- Ο διακομιστής απαντά με SYN-ACK, υποδεικνύοντας τον δικό τους αύξοντα αριθμό και επιβεβαιώνοντας αυτόν του πελάτη.
- Ο πελάτης στέλνει ένα τελικό τμήμα με ACK Από εκεί, και οι δύο πλευρές μπορούν να ξεκινήσουν την αμφίδρομη αποστολή δεδομένων.
Αυτή η διαπραγμάτευση αριθμών ακολουθίας δυσκολεύει έναν εξωτερικό εισβολέα να εύκολα πλαστογράφηση μιας ήδη εγκατεστημένης σύνδεσης TCPΩστόσο, αν βρίσκεται στη μέση (MitM) μπορεί ακόμα να χειραγωγήσει την κυκλοφορία.
Για να κλείσει η συνεδρία, ένα από τα μέρη στέλνει ένα τμήμα με FINΗ άλλη πλευρά απαντά με ACK και συνήθως στέλνει και τη δική της FIN, η οποία πρέπει να επιβεβαιωθεί. Σε ορισμένες περιπτώσεις, μπορεί να παραμείνει μια "μισοανοιχτή" σύνδεση, όπου η μία πλευρά έχει κλείσει τη σύνδεση αλλά η άλλη συνεχίζει να στέλνει δεδομένα.
Επιθέσεις και ευπάθειες που σχετίζονται με το TCP
Ακριβώς λόγω αυτής της σύνδεσης, Το TCP είναι ευάλωτο σε επιθέσεις άρνησης υπηρεσίας SYN floodΟ εισβολέας στέλνει έναν μεγάλο αριθμό ψεύτικων τμημάτων SYN, αφήνοντας τον διακομιστή με πολλές μισάνοιχτες συνδέσεις που καταναλώνουν πόρους.
Για τον μετριασμό αυτών των επιθέσεων, συνήθως εφαρμόζονται μέτρα όπως τα ακόλουθα: περιορίστε τον αριθμό των ταυτόχρονων συνδέσεων (παγκόσμια ή μέσω IP), φιλτράρισμα κατά εύρη αξιόπιστων διευθύνσεων ή να χρησιμοποιούν τεχνικές όπως Cookies SYN, οι οποίες καθυστερούν την πραγματική κράτηση πόρων μέχρι να ληφθεί αξιόπιστη επιβεβαίωση.
Μια άλλη κλασική επίθεση είναι η Πρόβλεψη αριθμού ακολουθίας TCPΕάν ένας εισβολέας μπορεί να μαντέψει τις τιμές που θα χρησιμοποιήσει ένας νόμιμος κεντρικός υπολογιστής, μπορεί να εισάγει ψεύτικα πακέτα που φαίνεται να αποτελούν μέρος της σύνδεσης. Για να το πετύχει αυτό, συνήθως πρώτα παρακολουθεί την κίνηση μεταξύ δύο αξιόπιστων υπολογιστών, εκτιμά το μοτίβο αρίθμησης και μερικές φορές εξαπολύει επιθέσεις άρνησης υπηρεσίας εναντίον του πραγματικού κεντρικού υπολογιστή για να τον «σιωπήσει» ενώ πλαστογραφεί την συνεδρία του.
Μόλις δημιουργηθεί η σύνδεση, ο εισβολέας μπορεί να εισαγωγή αυθαίρετων δεδομένωνΑυτό μπορεί να οδηγήσει σε τερματισμό της συνεδρίας ή σε απροσδόκητη συμπεριφορά στην εφαρμογή-στόχο. Τα παλαιότερα, μη ενημερωμένα συστήματα και συσκευές είναι συχνά οι ευκολότεροι στόχοι για αυτές τις τεχνικές.
Τι είναι το UDP και γιατί είναι τόσο γρήγορο;
Το UDP σχεδιάστηκε με διαφορετική φιλοσοφία: αποστολή datagrams με την ελάχιστη δυνατή επιβάρυνσηαφήνοντας σχεδόν όλο τον έλεγχο στα ανώτερα επίπεδα. Δεν δημιουργεί προ-σύνδεση, δεν αναδιατάσσει, δεν αναμεταδίδει ούτε ρυθμίζει τον ρυθμό μετάδοσης.
Ο αποστολέας απλώς στέλνει UDP datagrams στη θύρα προορισμού, υποθέτοντας ότι ο δέκτης έχει ανοιχτή υποδοχή ακρόασης. Εάν υπάρχει συμφόρηση, εάν ο δέκτης είναι πιο αργός ή εάν ένας δρομολογητής αποφασίσει να απορρίψει πακέτα, το UDP δεν κάνει απολύτως τίποτα για να το διορθώσει.
Το κεφαλάρι του είναι πολύ μικρό, μόνο 8 bytes, με τέσσερα βασικά πεδία:
- Λιμάνι προέλευσης.
- Λιμάνι προορισμού.
- Μήκος datagram.
- Αθροιστικό Checksum (για κεφαλίδα και δεδομένα).
Χάρη σε αυτή την απλότητα, Το μεγαλύτερο μέρος του πακέτου είναι αφιερωμένο στο ωφέλιμο φορτίο.Αυτό βελτιώνει σημαντικά την αποτελεσματικότητα, ειδικά στις επικοινωνίες σε πραγματικό χρόνο και σε περιβάλλοντα όπου η ελαχιστοποίηση της καθυστέρησης αποτελεί προτεραιότητα.
Ωστόσο, επειδή δεν υπάρχει έλεγχος ροής ή συμφόρησης, αν ένας πομπός είναι πολύ πιο γρήγορος από τον δέκτη ή το δίκτυοΤα datagrams θα αρχίσουν να χάνονται και η ευθύνη για τη διαχείριση αυτής της απώλειας βαρύνει εξ ολοκλήρου την εφαρμογή.
Πρακτικά πλεονεκτήματα και μειονεκτήματα των TCP και UDP
Με λίγα λόγια, θα μπορούσαμε να πούμε ότι Το TCP είναι πιο αργό αλλά πολύ αξιόπιστο., Και Το UDP είναι ταχύτερο αλλά λιγότερο αξιόπιστοΑς το αναλύσουμε σε πραγματικές περιπτώσεις χρήσης.
Το TCP είναι η ιδανική επιλογή όταν η ακεραιότητα των δεδομένων είναι κρίσιμη: email, περιήγηση στο διαδίκτυο, μεταφορά αρχείων, απομακρυσμένη διαχείριση, βάσεις δεδομένων... Σε όλες αυτές τις περιπτώσεις, δεν έχει νόημα να λαμβάνουμε αλλοιωμένες ή ελλιπείς πληροφορίες, ακόμα κι αν μας πάρει μερικά χιλιοστά του δευτερολέπτου περισσότερο.
Το UDP διαπρέπει σε περιβάλλοντα όπου η αμεσότητα αποτελεί προτεραιότητα, όπως π.χ. Juegos σε απευθείας σύνδεσηVoIP, βιντεοκλήσεις, ζωντανή ροή, DNS, DHCP... Εδώ είναι προτιμότερο να χάσετε ένα πακέτο και να κάνετε το βίντεο να εμφανίζεται σε pixel για μια στιγμή, παρά να σταματήσετε την αναπαραγωγή και να περιμένετε την αναμετάδοση.
Όσον αφορά την κατανάλωση δεδομένων, Το TCP έχει επίσης μεγαλύτερη επιβάρυνση από το UDP.Οι κεφαλίδες του είναι μεγαλύτερες και δημιουργούν πρόσθετη κίνηση από επιβεβαιώσεις και αναμεταδόσεις. Σε πραγματικές δοκιμές με VPN Παρατηρείται ότι το OpenVPN μέσω TCP μπορεί να καταναλώσει αρκετές ποσοστιαίες μονάδες περισσότερα δεδομένα από ό,τι μέσω UDP για τις ίδιες χρήσιμες πληροφορίες.
Όσον αφορά την καθαρή ασφάλεια, κανένα από τα δύο πρωτόκολλα δεν έχει σχεδιαστεί για κρυπτογράφηση ή έλεγχο ταυτότητας από μόνο του, αν και Η δομή TCP κάνει την κακόβουλη έγχυση κίνησης λίγο πιο δύσκολη. Χάρη στην παρακολούθηση αλληλουχίας και τα ACK. Στην πράξη, όταν χρησιμοποιούμε TLS, VPN ή κρυπτογραφημένες σήραγγες, τόσο το TCP όσο και το UDP βασίζονται σε υψηλότερα επίπεδα για την προστασία του περιεχομένου.
Τέλος, Το UDP επιτρέπει την πολλαπλή μετάδοση και την μετάδοση φυσικά, γεγονός που διευκολύνει την αποστολή της ίδιας ροής σε πολλούς δέκτες ταυτόχρονα (βιντεοδιασκέψεις, ροή σε πολλαπλούς πελάτες, πρωτόκολλα εντοπισμού), κάτι που το TCP, όντας αυστηρά από σημείο σε σημείο, δεν μπορεί να κάνει.
Πώς εντάσσονται τα TCP και UDP στα VPN
Οι υπηρεσίες VPN βασίζονται σε TCP ή UDP για να δημιουργήσουν την κρυπτογραφημένη σήραγγα μεταξύ πελάτη και διακομιστή. Στην πράξη, Τα περισσότερα σύγχρονα πρωτόκολλα VPN προτιμούν το UDP. επειδή μειώνει την καθυστέρηση και υποστηρίζει καλύτερα σενάρια μέτριας απώλειας πακέτων.
Στο OpenVPN, για παράδειγμα, μπορείτε να επιλέξετε μεταξύ Σήραγγα TCP ή UDPΌταν χρησιμοποιείται UDP, μεγάλο μέρος της αξιοπιστίας ανατίθεται στις εφαρμογές εντός της σήραγγας (συνήθως πάλι TCP, όπως HTTP/HTTPS), αποφεύγοντας ένα διπλό επίπεδο ελέγχου σφαλμάτων που θα προσέθετε μόνο καθυστέρηση.
Αυτό σημαίνει ότι μια σήραγγα OpenVPN μέσω UDP Μπορεί να χάσει κάποια πακέτα, αλλά αν η κίνηση HTTP (η οποία χρησιμοποιεί TCP) ταξιδεύει στο εσωτερικό, αυτό το εσωτερικό TCP θα είναι που θα ζητά αναμετάδοση όταν είναι απαραίτητο. Το πρακτικό αποτέλεσμα είναι μια ασφαλής σύνδεση, αξιόπιστη σε επίπεδο εφαρμογής, αλλά πολύ ταχύτερη σε επίπεδο μεταφοράς.
Το WireGuard προχωρά ένα βήμα παραπέρα και Χρησιμοποιεί αποκλειστικά το UDP ως μηχανισμό μεταφοράς.Όλη η πολυπλοκότητα μεταφέρεται στη δική του κρυπτογραφική και ελεγκτική λογική, επιτυγχάνοντας ελάχιστους χρόνους εγκατάστασης και πολύ γρήγορη περιαγωγή όταν αλλάζουμε δίκτυα (για παράδειγμα, από Wi-Fi σε 4G) χωρίς να γίνεται αντιληπτό το VPN.
Ωστόσο, σε περιβάλλοντα όπου τα τείχη προστασίας είναι πολύ περιοριστικά με το UDP (σε ορισμένα εταιρικά δίκτυα), πολλά VPN αναγκάζονται να Μετάβαση σε TCP για παράκαμψη φίλτρων και proxies, με κόστος την ελαφρώς αυξανόμενη καθυστέρηση.
TCP vs UDP στο διαδίκτυο και η εξέλιξη προς το QUIC
Σήμερα, Τα HTTP και HTTPS σχεδόν πάντα βασίζονται στο TCPΤο κλασικό HTTP χρησιμοποιεί κανονικά τη θύρα 80/TCP και το HTTPS χρησιμοποιεί 443/TCP, προσθέτοντας TLS για την κρυπτογράφηση των επικοινωνιών.
Μέχρι το HTTP/2 η εικόνα ήταν ξεκάθαρη: Ολόκληρος ο ιστότοπος λειτουργούσε μέσω TCP, με τα πλεονεκτήματα αξιοπιστίας του, αλλά συμπαρασύροντας ορισμένα προβλήματα καθυστέρησης και μπλοκαρίσματος κεφαλίδας σε συνδέσεις υψηλής απώλειας.
Το HTTP/3 μπαίνει στο προσκήνιο QUIC, ένα πρωτόκολλο μεταφοράς που βασίζεται στο UDP Ενσωματώνει χαρακτηριστικά του TCP (έλεγχος συμφόρησης, διόρθωση σφαλμάτων, ταξινόμηση ροής) και του TLS (απαιτείται κρυπτογράφηση). Το QUIC επιτρέπει την πολυπλεξία πολλών ανεξάρτητων ροών μέσω της ίδιας σύνδεσης, μειώνοντας τον αντίκτυπο της απώλειας πακέτων σε οποιοδήποτε μέρος της επικοινωνίας.
Χάρη σε αυτό, Το HTTP/3 μέσω QUIC συνήθως προσφέρει ταχύτερους χρόνους φόρτωσης, ιδίως στο δίκτυα κινητής τηλεφωνίας ή συνδέσεις με υψηλό jitter. Επιπλέον, χρησιμοποιώντας το UDP, ξεπερνά καλύτερα ορισμένα σημεία συμφόρησης σε παλαιότερες υποδομές που έχουν σχεδιαστεί αποκλειστικά για TCP.
Θύρες TCP και UDP σε υπηρεσίες πραγματικού κόσμου: παραδείγματα και πίνακας

Ο συνδυασμός του τύπου μεταφοράς και του αριθμού θύρας ορίζει ποιο πρωτόκολλο επιπέδου εφαρμογής χρησιμοποιείταιΜερικά πολύ συνηθισμένα παραδείγματα:
- 80/TCPHTTP (μη κρυπτογραφημένος ιστός).
- 443/TCP: HTTPS (κρυπτογράφηση ιστού με TLS).
- 21/TCP και 20/TCPFTP (έλεγχος και δεδομένα).
- 22/TCP: SSH και SFTP.
- 25/TCP, 587/TCPSMTP για την αποστολή email.
- 110/TCP, 995/TCP: POP3 και POP3S.
- 143/TCP, 993/TCP: IMAP και IMAPS.
- 53/UDP και 53/TCPDNS (γρήγορα ερωτήματα μέσω UDP, μεταφορές ζώνης μέσω TCP).
- 67/UDP και 68/UDPΠελάτης/διακομιστής DHCP.
- 123/UDPNTP, συγχρονισμός ώρας.
- 161/UDP: SNMP.
- 445/TCPMicrosoft SMB/CIFS για κοινή χρήση αρχείων.
- 554/TCP/UDP: RTSP για έλεγχο ροής.
- 631/TCP/UDP: IPP (εκτύπωση δικτύου).
Ο πλήρης κατάλογος των γνωστών και καταχωρημένων λιμένων είναι πολύ εκτενής, αλλά χρησιμεύει για να δείξει ότι Το TCP συνήθως κυριαρχεί σε κρίσιμες και προσανατολισμένες στις συναλλαγές εφαρμογέςΕνώ Κανόνες UDP σε πρωτόκολλα ανακάλυψης, ροής ή ελαφρού ελέγχου..
RDP: TCP, UDP ή και τα δύο;
El Πρωτόκολλο απομακρυσμένης επιφάνειας εργασίας (RDP) Η υπηρεσία της Microsoft σάς επιτρέπει να συνδεθείτε σε έναν άλλο υπολογιστή σαν να καθόσασταν μπροστά στην οθόνη του. Εσωτερικά, στέλνει μια συμπιεσμένη εικόνα επιφάνειας εργασίας από τον απομακρυσμένο κεντρικό υπολογιστή στον υπολογιστή-πελάτη και λαμβάνει δεδομένα εισόδου από το πληκτρολόγιο και το ποντίκι προς την αντίθετη κατεύθυνση.
Παραδοσιακά, το RDP έχει χρησιμοποιήσει το θύρα 3389/TCP ως κύρια μεταφορά, αξιοποιώντας την αξιοπιστία του TCP για να διασφαλιστεί ότι κάθε πακέτο ενημέρωσης οθόνης, κλικ και ελέγχου φτάνει σωστά και με τη σειρά.
Από το RDP 8.0, το πρωτόκολλο μπορεί επίσης να χρησιμοποιήσει 3389/UDP για βελτιστοποίηση της απόδοσηςΚανονικά, ο πελάτης θα προσπαθήσει πρώτα να δημιουργήσει ένα κανάλι UDP (λόγω της χαμηλότερης καθυστέρησης και του υψηλότερου εύρους ζώνης) και, εάν αυτό δεν είναι δυνατό λόγω περιορισμών δικτύου, θα καταφύγει στο κλασικό κανάλι TCP.
Αυτή η υβριδική προσέγγιση επιτρέπει το RDP στείλτε το μεγαλύτερο μέρος των γραφικών δεδομένων μέσω UDPόπου η απώλεια μερικών καρέ είναι ελάχιστα αισθητή και το TCP μπορεί να δεσμευτεί για αυστηρά κρίσιμες πληροφορίες, εάν είναι απαραίτητο. Σε δίκτυα με υψηλή καθυστέρηση ή απώλεια σήματος, η βελτίωση στην απόδοση μπορεί να είναι πολύ σημαντική.
Πώς να ανοίξετε θύρες TCP και UDP για RDP στα Windows
Για να λειτουργήσει μια εξωτερική συνεδρία RDP, το τείχος προστασίας του κεντρικού υπολογιστή πρέπει επιτρέψτε την εισερχόμενη κίνηση στη θύρα 3389Τόσο το TCP όσο και το UDP είναι απαραίτητα αν θέλουμε να αξιοποιήσουμε τις σύγχρονες βελτιστοποιήσεις. Εάν υπάρχουν προβλήματα, συνιστάται να ελέγξετε το πολιτικές δικτύου που μπλοκάρουν το RDP.
En Windows, την βασική ρύθμιση από το Τείχος Προστασίας του windows Defender αποτελείται από:
- Μπείτε Πίνακας Ελέγχου > Σύστημα και Ασφάλεια > Τείχος προστασίας του Windows Defender και ανοίξτε τις ρυθμίσεις για προχωρημένους.
- Δημιουργία νέος κανόνας εισερχόμενων εισροών τύπου "Θύρα", επιλέξτε TCP και καθορίστε την 3389 ως τη συγκεκριμένη τοπική θύρα.
- Επιλέξτε "Να επιτρέπεται η σύνδεση", εφαρμόστε τα απαραίτητα προφίλ (τομέας, ιδιωτικό, δημόσιο) και δώστε ένα περιγραφικό όνομα, για παράδειγμα "RDP TCP 3389".
- Επαναλάβετε τη διαδικασία για να UDP στην ίδια θύρα 3389, με ένα άλλο όνομα όπως "RDP UDP 3389".
- Επαληθεύστε ότι και οι δύο κανόνες είναι ενεργοποιημένοι και δοκιμάστε τη σύνδεση από έναν απομακρυσμένο υπολογιστή-πελάτη.
Όσον αφορά την ασφάλεια, εκτός από το άνοιγμα των λιμένων, είναι ζωτικής σημασίας Χρησιμοποιήστε ισχυρούς κωδικούς πρόσβασης, Ενεργοποίηση Έλεγχος ταυτότητας σε επίπεδο δικτύου (NLA) για να διασφαλιστεί ότι μόνο επικυρωμένοι χρήστες μπορούν να συνδεθούν στην γραφική συνεδρία, να περιοριστεί ποιοι λογαριασμοί έχουν δικαίωμα απομακρυσμένης πρόσβασης και να διατηρείται το σύστημα πάντα ενημερωμένο για την αποφυγή ευπαθειών στην υπηρεσία RDP.
Θύρες TCP: ασφάλεια, κίνδυνοι και βέλτιστες πρακτικές
Οποιαδήποτε θύρα TCP που εκτίθεται στο Διαδίκτυο γίνεται ένα πιθανό διάνυσμα επίθεσηςΟι εισβολείς αυτοματοποιούν τις σαρώσεις ολόκληρων περιοχών IP αναζητώντας ανοιχτές θύρες (χρησιμοποιώντας εργαλεία όπως το Nmap) και, μόλις εντοπιστούν, ελέγχουν για γνωστά τρωτά σημεία ή επιθέσεις brute-force.
Υπηρεσίες υψηλής ευαισθησίας, όπως π.χ. SSH (22/TCP), RDP (3389/TCP), SMB (445/TCP) ή βάσεις δεδομένων Αυτοί είναι στόχοι προτεραιότητας, καθώς μια βλάβη εκεί θα μπορούσε να δώσει άμεση πρόσβαση στο εσωτερικό δίκτυο ή σε κρίσιμα δεδομένα.
Για να μειωθεί η επιφάνεια προσβολής, συνιστάται η εφαρμογή της αρχής του ελάχιστο δικαίωμα στα λιμάνια: ανοίξτε μόνο τα απολύτως απαραίτητα, περιορίστε την πρόσβαση μέσω IP ή VPN όταν είναι δυνατόν και κλείστε ή φιλτράρετε οτιδήποτε δεν χρησιμοποιείται.
Είναι επίσης μια καλή ιδέα χωρίστε το δίκτυο σε ζώνες (LAN χρήστη, DMZ διακομιστή, δίκτυο διαχείρισης, κ.λπ.) και χρησιμοποιούν εσωτερικούς κανόνες τείχους προστασίας για την απομόνωση κρίσιμων υπηρεσιών. Με αυτόν τον τρόπο, ακόμη και αν ένας εισβολέας θέσει σε κίνδυνο ένα μηχάνημα, θα είναι πιο δύσκολο για αυτόν να μετακινηθεί πλευρικά σε άλλα ευαίσθητα συστήματα.
Χρήση του Ελ εργαλεία παρακολούθησης και καταγραφής Επιτρέπει την ανίχνευση ανώμαλων μοτίβων σε θύρες (σαρώσεις, μαζικές αποτυχημένες προσπάθειες, συνδέσεις από ασυνήθιστες χώρες), ενεργοποιώντας ειδοποιήσεις πριν κλιμακωθεί το συμβάν.
Τέλος, συνιστάται η διεξαγωγή περιοδικοί έλεγχοι λιμένων Χρησιμοποιήστε εξωτερικούς και εσωτερικούς σαρωτές και καταγράψτε ποια υπηρεσία ακούει σε κάθε μία από αυτές. Αυτό βοηθά στον εντοπισμό παρωχημένων εφαρμογών, ξεχασμένων υπηρεσιών ή επικίνδυνων προεπιλεγμένων ρυθμίσεων που θα έπρεπε να απενεργοποιηθούν.
Διαφορές απόδοσης μεταξύ θυρών TCP και UDP
Όταν συγκρίνουμε την κίνηση που ταξιδεύει μέσω θυρών TCP με την κίνηση UDP, αυτό που πραγματικά μετράμε είναι η συμπεριφορά και των δύο πρωτοκόλλων μεταφοράς υπό διαφορετικές συνθήκες συνθήκες δικτύου.
Το TCP, με τον έλεγχο σφαλμάτων και συμφόρησης που προσφέρει, τείνει να επιβραδύνει όταν ανιχνεύει απώλεια ή κορεσμόδίνοντας προτεραιότητα στην σωστή άφιξη όλων των δεδομένων και όχι στην ταχεία παράδοση. Σε δίκτυα με συμφόρηση ή με υψηλή καθυστέρηση, αυτό μπορεί να μεταφραστεί σε μεγαλύτερους χρόνους φόρτωσης ή descargas λιγότερο ευκίνητος.
Το UDP δεν αφήνει τη συμφόρηση να το σταματήσει: Εάν η διαδρομή είναι συμφορημένη, οι δρομολογητές απλώς απορρίπτουν πακέταΔεδομένου ότι δεν υπάρχει αυτόματο αναμεταδότη, η επικοινωνία παραμένει ρευστή, αλλά με κενά πληροφοριών που η εφαρμογή θα πρέπει να διαχειριστεί (για παράδειγμα, με προσωρινή αποθήκευση ή τη δική της διόρθωση σφαλμάτων).
Σε δοκιμές με VPN και μεγάλες γεωγραφικές αποστάσεις, παρατηρείται ότι Το OpenVPN μέσω UDP είναι συνήθως σημαντικά ταχύτερο από ό,τι μέσω TCP.Η διαφορά γίνεται πιο έντονη καθώς οι συνθήκες του δικτύου επιδεινώνονται. Αυτό οφείλεται τόσο στη μικρότερη κεφαλίδα όσο και στην απουσία συνεχών ACK και αναμεταδόσεων.
Υπάρχει επίσης αντίκτυπος στην κατανάλωση δεδομένωνΜεταξύ των βαρύτερων κεφαλίδων και των πρόσθετων μηνυμάτων ελέγχου, το TCP χρησιμοποιεί περισσότερο εύρος ζώνης για κάθε χρήσιμο MB που μεταφέρεται. Σε συνδέσεις κινητής τηλεφωνίας με όρια gigabyte, αυτό μπορεί να κάνει τη διαφορά στο τέλος του μήνα.
Άλλα πρωτόκολλα μεταφοράς πέραν του TCP και του UDP
Αν και στην πράξη σχεδόν όλο το Διαδίκτυο λειτουργεί με TCP και UDP ως βάσηΥπάρχουν και άλλα πρωτόκολλα μεταφοράς σχεδιασμένα για συγκεκριμένες περιπτώσεις χρήσης.
Ένας από αυτούς είναι SCTP (Πρωτόκολλο Μετάδοσης Ελέγχου Ροής)Συνδυάζει χαρακτηριστικά του TCP και του UDP: προσφέρει αξιόπιστη και διατεταγμένη μετάδοση, αλλά επιτρέπει πολλαπλές ανεξάρτητες ροές εντός της ίδιας σύνδεσης. Χρησιμοποιείται ευρέως σε προηγμένες τηλεπικοινωνίες και σηματοδότηση VoIP, όπου μειώνει την καθυστέρηση σε σύγκριση με το παραδοσιακό TCP.
Ένα άλλο είναι DCCP (Πρωτόκολλο Ελέγχου Συμφόρησης Δεδομένων), το οποίο διατηρεί το offline στυλ του UDP αλλά ενσωματώνει ενσωματωμένος έλεγχος συμφόρησηςΣχεδιασμένο για πολυμέσα σε πραγματικό χρόνο όπου η απώλεια πακέτων είναι προτιμότερη από την εισαγωγή υπερβολικής καθυστέρησης.
Είναι επίσης RDP (Πρωτόκολλο Αξιόπιστων Δεδομένων), με έμφαση σε στρατιωτικά και επιστημονικά περιβάλλοντα, και, όπως ήδη αναφέρθηκε, QUIC, το οποίο βασίζεται στο UDP αλλά εφαρμόζει αξιοπιστία, πολυπλεξία και κρυπτογράφηση σε ένα μόνο επίπεδο, αποτελώντας τη βάση του HTTP/3.
Παρά τα τεχνικά του πλεονεκτήματα, η πραγματικότητα είναι ότι Η μαζική υιοθέτηση νέων πρωτοκόλλων είναι περίπλοκηολόκληρο το οικοσύστημα των δρομολογητών, των τείχων προστασίας, OS Οι εφαρμογές είναι βελτιστοποιημένες για TCP και UDP και η αλλαγή αυτής της βάσης συνεπάγεται προσπάθεια, κόστος και κίνδυνο. Επιπλέον, πολλά τείχη προστασίας αποκλείουν σπάνια πρωτόκολλα από προεπιλογή, ενώ η κίνηση TCP 80/443 και ένα σημαντικό ποσό UDP επιτρέπονται σχεδόν πάντα.
Καταλάβετε καλά Πώς λειτουργούν οι θύρες TCP και UDP, ποιες υπηρεσίες βασίζονται σε καθεμία και ποιες επιπτώσεις έχουν στην απόδοση και την ασφάλεια. Αυτό μας επιτρέπει να λαμβάνουμε λογικές αποφάσεις: πότε αξίζει να θυσιάζουμε κάποια ταχύτητα για να αποκτήσουμε αξιοπιστία, πότε είναι πλεονεκτικό να χρησιμοποιούμε UDP για να μειώσουμε την καθυστέρηση, ποιες θύρες να ανοίγουμε ή να κλείνουμε σε ένα τείχος προστασίας ή ποιες παραμέτρους να προσαρμόζουμε σε ένα VPN ή διακομιστή για να διασφαλίσουμε ότι το δίκτυό μας λειτουργεί ομαλά και είναι όσο το δυνατόν πιο ανεμπόδιστο σε επιθέσεις.
Παθιασμένος συγγραφέας για τον κόσμο των byte και της τεχνολογίας γενικότερα. Μου αρέσει να μοιράζομαι τις γνώσεις μου μέσω της γραφής, και αυτό θα κάνω σε αυτό το blog, θα σας δείξω όλα τα πιο ενδιαφέροντα πράγματα σχετικά με τα gadget, το λογισμικό, το υλικό, τις τεχνολογικές τάσεις και πολλά άλλα. Στόχος μου είναι να σας βοηθήσω να περιηγηθείτε στον ψηφιακό κόσμο με απλό και διασκεδαστικό τρόπο.
