Προφανώς, η πιο κοινή χρήση της λέξης λιμάνι αναφέρεται στη ναυτιλία. Το Computing, ωστόσο, χρησιμοποιεί και τον όρο port. Στην πραγματικότητα, έχει δύο χρήσεις. Το πρώτο αναφέρεται στην πρίζα στην οποία μπορεί να συνδεθεί ένα καλώδιο. Τυπικά παραδείγματα θα περιλαμβάνουν μια θύρα USB ή ethernet. Τεχνικά, μια υποδοχή ethernet θα μπορούσε να θεωρηθεί ως θύρα δικτύου. Αυτή δεν είναι η αποδεκτή σημασία της λέξης port στη δικτύωση. Μια θύρα δικτύου είναι ένας λογικός αριθμός που προσδιορίζει για ποια διεργασία ή υπηρεσία δικτύου προορίζεται ή αποστέλλεται η κυκλοφορία δικτύου.
Γιατί είναι απαραίτητοι οι αριθμοί λιμένων;
Όταν ο υπολογιστής σας επικοινωνεί με έναν διακομιστή web στο Διαδίκτυο, τοποθετεί τη διεύθυνση IP του στο πεδίο αποστολέα. Αυτό επιτρέπει στον διακομιστή να γνωρίζει σε ποια διεύθυνση IP χρειάζεται για να στείλει την απάντηση. Όταν αυτή η απάντηση επιστρέφει στον υπολογιστή σας, το πρόγραμμα περιήγησής σας ερμηνεύει την απάντηση και αποδίδει την ιστοσελίδα.
Αυτό λειτουργεί καλά σε ένα εξιδανικευμένο σύστημα με ένα κομμάτι λογισμικού που δημιουργεί και λαμβάνει κίνηση δικτύου. Ο πραγματικός κόσμος όμως δεν είναι έτσι. Σε οποιονδήποτε υπολογιστή, υπάρχει μια σειρά λογισμικού που δημιουργεί κίνηση δικτύου. Για να διασφαλιστεί ότι η κυκλοφορία δικτύου παραδίδεται σωστά στο σωστό πρόγραμμα, σε ορισμένες περιπτώσεις, η σωστή διαδικασία σε ένα πρόγραμμα. Ένα τελικό επίπεδο διεύθυνσης χρησιμοποιείται ο αριθμός θύρας.
Φανταστείτε να έχετε ένα πρόγραμμα περιήγησης ιστού με δύο ανοιχτές καρτέλες και ένα διαδικτυακό βιντεοπαιχνίδι ταυτόχρονα. Κάθε καρτέλα προγράμματος περιήγησης πρέπει να μπορεί να στέλνει και να λαμβάνει κίνηση δικτύου, ενδεχομένως ταυτόχρονα. Το διαδικτυακό παιχνίδι πρέπει επίσης να στέλνει και να λαμβάνει κίνηση δικτύου. Δεν θέλετε το παιχνίδι σας να πρέπει να φιλτράρει τυχαίες αποκρίσεις ιστού και δεν θέλετε το πρόγραμμα περιήγησής σας να χρειάζεται να φιλτράρει την κυκλοφορία του παιχνιδιού σας. Και στις δύο καρτέλες και στο παιχνίδι θα εκχωρηθεί τουλάχιστον μία θύρα δικτύου η καθεμία, έτσι ώστε να μπορεί να προσδιοριστεί εύκολα η προβλεπόμενη διαδικασία παραλήπτη.
Το ίδιο ισχύει και για διακομιστές. Ας υποθέσουμε ότι έχετε έναν διακομιστή που τρέχει και διακομιστή web και διακομιστή email. Σε αυτήν την περίπτωση, ο αριθμός θύρας επιτρέπει στο λειτουργικό σύστημα να διαφοροποιεί εύκολα ποια πακέτα δικτύου προορίζονται για ποια υπηρεσία.
Τι είναι οι αριθμοί λιμένων;
Οι αριθμοί θύρας έχουν τη μορφή ενός ακέραιου χωρίς υπογραφή 16 bit. Αυτό σημαίνει ότι υπάρχουν δεκαέξι δυαδικά bit για τη σύνθεση των αριθμών, κανένας αρνητικός αριθμός και όλοι οι αριθμοί είναι ακέραιοι. Αυτό επιτρέπει 65536 πιθανούς αριθμούς θύρας που κυμαίνονται από 0 έως 65535. Δεν υπάρχει φυσικό σύστημα λιμένων.
Ολόκληρο το σχήμα διευθύνσεων, όπως με τις διευθύνσεις IP και τις διευθύνσεις MAC, είναι απολύτως λογικό. Θα μπορούσατε να σκεφτείτε τις διευθύνσεις IP και MAC ως τη διεύθυνση σε ένα γράμμα για να το μεταφέρετε στο σπίτι/τον υπολογιστή σας. Σε αυτήν την αναλογία, ο αριθμός θύρας θα είναι όπως το όνομα στον φάκελο, φροντίζοντας να φτάσει στο σωστό άτομο/διαδικασία στο σπίτι/τον υπολογιστή σας.
Εντός του χώρου αριθμού θύρας, υπάρχει κάποια άλλη δομή. Η θύρα 0 είναι δεσμευμένη. Στην κυκλοφορία TCP, το 0 είναι εντελώς αχρησιμοποίητο. Στην κίνηση UDP, ο αριθμός θύρας είναι προαιρετικός, με μια θύρα 0 που σημαίνει "χωρίς θύρα". Αυτό λειτουργεί για το UDP επειδή είναι ένα πρωτόκολλο χωρίς πολιτεία που δεν αναμένει απαραίτητα απόκριση. Οι θύρες TCP και UDP είναι ξεχωριστές. Μία υπηρεσία μπορεί να συνδεθεί σε μία ή περισσότερες θύρες σε ένα ή και στα δύο πρωτόκολλα. Οι υπηρεσίες που χρησιμοποιούν και τα δύο συνήθως συνδέονται με τους ίδιους αριθμούς θύρας σε TCP και UDP.
Οι θύρες 1-1023 είναι γνωστές ως «γνωστές» θύρες και γενικά απαιτούν διαχειριστικές άδειες για σύνδεση. Ορισμένες γνωστές θύρες είναι 80 για HTTP, 443 για HTTPS και 53 για DNS. Στη συνέχεια, έχετε το εύρος 1024 – 49151. Αυτές είναι γνωστές ως «καταχωρημένες» θύρες. Αυτές είναι θύρες που χρησιμοποιούνται τακτικά από ορισμένες υπηρεσίες, αλλά αυτό δεν είναι αρκετά συνηθισμένο ή δεν ήταν αρκετά νωρίς για να πάρει έναν αριθμό κάτω από το 1023. Οι θύρες μεταξύ 49152 και 65535 είναι γνωστές ως εφήμερες θύρες.
Η χρήση των αριθμών λιμένων
Το IANA, το Internet Assigned Numbers Authority, διατηρεί τις γνωστές και καταχωρημένες λίστες λιμένων. Τα γνωστά λιμάνια έχουν μόνο μία υπηρεσία που σχετίζεται με αυτά. Οι καταχωρημένες θύρες, ωστόσο, μπορεί να έχουν μια σειρά από γνωστές υπηρεσίες που χρησιμοποιούν τη θύρα από προεπιλογή.
Γενικά, τίποτα στην πραγματικότητα δεν εμποδίζει οποιοδήποτε πρόγραμμα να συνδεθεί σε οποιονδήποτε αριθμό θύρας. Όπως αναφέρθηκε παραπάνω, οι αριθμοί θύρας κάτω από το 1024 τείνουν να απαιτούν δικαιώματα διαχείρισης ή root για σύνδεση. Ωστόσο, μπορείτε να αναγκάσετε οποιαδήποτε υπηρεσία να συνδεθεί στη θύρα 80, για παράδειγμα, ακόμα κι αν δεν είναι διακομιστής ιστού. Οι αριθμοί θυρών στις γνωστές και καταχωρημένες περιοχές τείνουν να χρησιμοποιούνται μόνο από ακροατές δικτύου, ενώ οι εφήμερες θύρες χρησιμοποιούνται γενικά για την εκκίνηση συνδέσεων.
Ένας ακροατής είναι μια θύρα που ανοίγει και αφήνεται ανοιχτή. Ακούει μηνύματα ώστε να μπορεί να τα επεξεργαστεί και να στείλει μια απάντηση. Αυτή είναι σχεδόν αποκλειστικά η συμπεριφορά υπηρεσιών τύπου διακομιστή, όπως ένας διακομιστής ιστού. Ο διακομιστής Ιστού θα φιλοξενείται στις θύρες 80 και 443, ενώ ένα πρόγραμμα περιήγησης που συνδέεται με αυτές τις θύρες θα χρησιμοποιεί τοπικά μια εφήμερη θύρα.
Οι τυπικοί αριθμοί θύρας για ακροατές εφαρμογών σημαίνουν ότι είναι εύκολο να γνωρίζετε πώς να συνδεθείτε πραγματικά σε μια υπηρεσία. Για παράδειγμα, όταν τοποθετείτε το HTTPS στο μπροστινό μέρος μιας διεύθυνσης URL, το πρόγραμμα περιήγησής σας υποθέτει από προεπιλογή ότι πρέπει να συνδεθεί στη θύρα 443. Σε ορισμένες περιπτώσεις, οι ακροατές θα ρυθμιστούν σε εναλλακτικές θύρες. Αυτό μπορεί να οφείλεται στο ότι άλλη υπηρεσία ή έκδοση της υπηρεσίας χρησιμοποιεί ήδη την τυπική θύρα. Μπορεί επίσης να είναι μια προσπάθεια ασφάλειας μέσω της αφάνειας.
συμπέρασμα
Μια θύρα δικτύου είναι μια λογική διεύθυνση. Το λογισμικό μπορεί να συνδεθεί σε μια θύρα, επομένως το λειτουργικό σύστημα γνωρίζει ότι οποιαδήποτε κίνηση αποστέλλεται σε αυτήν τη θύρα προορίζεται για αυτήν τη διαδικασία. Οι αριθμοί θυρών κυμαίνονται από 0 έως 65535. Πολλές υπηρεσίες σχετίζονται με έναν τυπικό αριθμό θύρας. Οι διακομιστές χρησιμοποιούν αυτές τις θύρες, ενώ οι συσκευές που συνδέονται με αυτές χρησιμοποιούν τυχαίες θύρες μεγάλου αριθμού. Αυτό επιτρέπει την εύκολη προεπιλεγμένη σύνδεση με υπηρεσίες και διασφαλίζει ότι η σύνδεση σε μια τέτοια υπηρεσία δεν σας εμποδίζει να φιλοξενήσετε οι ίδιοι άλλη υπηρεσία.