Qu'est-ce qu'un port réseau ?

De toute évidence, l'utilisation la plus courante du mot port fait référence à l'expédition. L'informatique, cependant, utilise également le terme port. En fait, il a deux usages. Le premier fait référence à la prise dans laquelle un câble peut être branché. Des exemples typiques incluraient un port USB ou Ethernet. Techniquement, une prise Ethernet peut être considérée comme un port réseau. Ce n'est pas le sens accepté du mot port dans les réseaux. Un port réseau est un numéro logique qui identifie à quel processus ou service réseau le trafic réseau est destiné ou par lequel il est envoyé.

Pourquoi les numéros de port sont-ils nécessaires ?

Lorsque votre ordinateur communique avec un serveur Web sur Internet, il place son adresse IP dans le champ de l'expéditeur. Cela permet au serveur de savoir à quelle adresse IP il doit envoyer la réponse. Lorsque cette réponse revient sur votre ordinateur, votre navigateur interprète la réponse et affiche la page Web.

Cela fonctionne très bien dans un système idéalisé avec un seul logiciel créant et recevant le trafic réseau. Le monde réel n'est pas comme ça, cependant. Dans tout ordinateur, il existe une gamme de logiciels qui génèrent du trafic réseau. Pour s'assurer que le trafic réseau est correctement transmis au bon programme, dans certains cas, au bon processus dans un programme. Une dernière couche d'adressage utilise le numéro de port.

Imaginez avoir un navigateur Web avec deux onglets ouverts et un jeu vidéo en ligne simultanément. Chaque onglet du navigateur doit pouvoir envoyer et recevoir du trafic réseau, potentiellement simultanément. Le jeu en ligne doit également envoyer et recevoir du trafic réseau. Vous ne voulez pas que votre jeu ait à filtrer les réponses Web aléatoires, et vous ne voulez pas non plus que votre navigateur ait besoin de filtrer le trafic de votre jeu. Les deux onglets et le jeu se verront attribuer au moins un port réseau chacun afin que le processus de destinataire prévu puisse être facilement déterminé.

La même chose fonctionne également pour les serveurs. Supposons que vous ayez un serveur qui exécute à la fois un serveur Web et un serveur de messagerie. Dans ce cas, le numéro de port permet au système d'exploitation de différencier facilement quels paquets réseau sont destinés à quel service.

Que sont les numéros de port ?

Les numéros de port prennent la forme d'un entier non signé de 16 bits. Cela signifie qu'il y a seize bits binaires pour composer les nombres, pas de nombres négatifs et que tous les nombres sont entiers. Cela autorise 65536 numéros de port possibles allant de 0 à 65535. Il n'y a pas de système de port physique.

L'ensemble du schéma d'adressage, comme les adresses IP et les adresses MAC, est entièrement logique. Vous pouvez considérer les adresses IP et MAC comme l'adresse sur une lettre pour l'envoyer à votre domicile/ordinateur. Dans cette analogie, le numéro de port serait comme le nom sur l'enveloppe, en s'assurant qu'il arrive à la bonne personne/processus dans votre maison/ordinateur.

Dans l'espace des numéros de port, il existe une autre structure. Le numéro de port 0 est réservé. Dans le trafic TCP, 0 est entièrement inutilisé. Dans le trafic UDP, le numéro de port est facultatif, le port 0 signifiant « pas de port ». Cela fonctionne pour UDP car c'est un protocole sans état qui n'attend pas nécessairement de réponse. Les ports TCP et UDP sont séparés. Un service peut se lier à un ou plusieurs ports sur un ou les deux protocoles. Les services qui utilisent les deux s'attachent généralement aux mêmes numéros de port dans TCP et UDP.

Les ports 1-1023 sont connus comme des ports « bien connus » et nécessitent généralement des autorisations administratives pour se connecter. Certains ports bien connus sont 80 pour HTTP, 443 pour HTTPS et 53 pour DNS. Ensuite, vous avez la plage 1024 - 49151. Ceux-ci sont connus sous le nom de ports "enregistrés". Ce sont des ports régulièrement utilisés par certains services, mais ce n'est pas assez courant ou n'était pas assez tôt pour obtenir un nombre inférieur à 1023. Les ports entre 49152 et 65535 sont appelés ports éphémères.

L'utilisation des numéros de port

L'IANA, l'Internet Assigned Numbers Authority, gère les listes de ports bien connues et enregistrées. Les ports bien connus n'ont qu'un seul service qui leur est associé. Les ports enregistrés, cependant, peuvent avoir un tableau de services connus qui utilisent le port par défaut.

Généralement, rien n'empêche réellement un programme de se lier à n'importe quel numéro de port. Comme mentionné ci-dessus, les numéros de port inférieurs à 1024 ont tendance à nécessiter des autorisations administratives ou root pour se lier. Néanmoins, vous pouvez forcer n'importe quel service à se lier au port 80, par exemple, même s'il ne s'agit pas d'un serveur Web. Les numéros de port dans les plages bien connues et enregistrées ont tendance à être utilisés uniquement par les auditeurs du réseau, les ports éphémères étant généralement utilisés pour initier des connexions.

Un écouteur est un port qui est ouvert et laissé ouvert. Il écoute les messages afin de pouvoir les traiter et envoyer une réponse. C'est presque exclusivement le comportement des services de type serveur tels qu'un serveur Web. Le serveur Web serait hébergé sur les ports 80 et 443, tandis qu'un navigateur se connectant à ces ports utiliserait localement un port éphémère.

Les numéros de port standard pour les écouteurs d'application signifient qu'il est facile de savoir comment se connecter réellement à un service. Par exemple, lorsque vous placez HTTPS devant une URL, votre navigateur suppose par défaut qu'il doit se connecter au port 443. Dans certains cas, les écouteurs seront configurés sur des ports alternatifs. Cela peut être dû au fait qu'un autre service ou une autre version du service utilise déjà le port standard. Il peut aussi s'agir d'une tentative de sécurité par l'obscurité.

Conclusion

Un port réseau est une adresse logique. Le logiciel peut se lier à un port, de sorte que le système d'exploitation sait que tout trafic envoyé à ce port est destiné à ce processus. Les numéros de port vont de 0 à 65535. De nombreux services sont associés à un numéro de port standard. Les serveurs utilisent ces ports, tandis que les périphériques qui s'y connectent utilisent des ports aléatoires à nombre élevé. Cela permet une connexion par défaut facile aux services et garantit que la connexion à un tel service ne vous empêche pas d'héberger vous-même un autre service.