Γιατί χρησιμοποιείται η Θύρα 0;

Πίνακας περιεχομένων:

Γιατί χρησιμοποιείται η Θύρα 0;
Γιατί χρησιμοποιείται η Θύρα 0;
Anonim

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

Σε αντίθεση με τους περισσότερους αριθμούς θυρών, η θύρα 0 είναι μια δεσμευμένη θύρα στο δίκτυο TCP/IP, που σημαίνει ότι δεν πρέπει να χρησιμοποιείται σε μηνύματα TCP ή UDP. Οι θύρες δικτύου σε TCP και UDP κυμαίνονται από τον αριθμό μηδέν έως το 65535. Οι αριθμοί θυρών στην περιοχή μεταξύ μηδέν και 1023 ορίζονται ως μη εφήμερες θύρες, θύρες συστήματος ή γνωστές θύρες. Η Αρχή Εκχωρημένων Αριθμών Διαδικτύου (IANA) διατηρεί μια επίσημη λίστα με την προβλεπόμενη χρήση αυτών των αριθμών θυρών στο Διαδίκτυο και η θύρα 0 συστήματος δεν πρέπει να χρησιμοποιείται.

Πώς λειτουργεί η θύρα TCP/UDP 0 στον προγραμματισμό δικτύου

Image
Image

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

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

Για να εκχωρήσουν τον αριθμό της θύρας πηγής, οι εφαρμογές καλούν λειτουργίες δικτύου TCP/IP όπως bind() για να ζητήσουν μία. Η εφαρμογή μπορεί να παρέχει έναν σταθερό (σκληρά κωδικοποιημένο) αριθμό για bind() εάν προτιμούν να ζητήσουν έναν συγκεκριμένο αριθμό, αλλά ένα τέτοιο αίτημα μπορεί να αποτύχει επειδή μια άλλη εφαρμογή που εκτελείται στο σύστημα ενδέχεται να τον χρησιμοποιεί αυτήν τη στιγμή.

Εναλλακτικά, μπορεί να παρέχει τη θύρα 0 στη bind() ως παράμετρο σύνδεσής του. Αυτό ενεργοποιεί το λειτουργικό σύστημα για αυτόματη αναζήτηση και επιστροφή μιας κατάλληλης διαθέσιμης θύρας στο εύρος αριθμού δυναμικής θύρας TCP/IP.

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

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

Θύρα 0 και ασφάλεια δικτύου

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

Πολλοί πάροχοι υπηρεσιών Διαδικτύου (ISP) μπλοκάρουν την κυκλοφορία στη θύρα 0, τόσο εισερχόμενα όσο και εξερχόμενα μηνύματα, για να προστατεύονται από αυτά τα exploits.

Συχνές Ερωτήσεις

    Τι είναι οι αριθμοί θύρας;

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

    Πώς βρίσκω αριθμούς θύρας;

    Για να βρείτε τον αριθμό θύρας μιας συγκεκριμένης διεύθυνσης IP, μεταβείτε στη γραμμή εντολών, πληκτρολογήστε netstat -a και, στη συνέχεια, πατήστε Enter. Θα δείτε μια λίστα με ενεργές συνδέσεις TCP μαζί με διευθύνσεις IP και αριθμούς θυρών που χωρίζονται με άνω και κάτω τελεία.

    Μπορώ να συνδεθώ στη θύρα 0;

    Όχι. Επισήμως, η θύρα 0 δεν υπάρχει και δεν μπορείτε να συνδεθείτε σε αυτήν, καθώς είναι άκυρος αριθμός θύρας. Ωστόσο, μπορείτε να στείλετε ένα πακέτο Διαδικτύου προς και από τη θύρα 0 όπως θα κάνατε με έναν άλλο αριθμό θύρας.

Συνιστάται: