Dans les Réseaux informatiques , un port est un point de terminaison de communication. Au niveau logiciel, au sein d’un système d’exploitation , un port est une construction logique qui identifie un processus spécifique ou un type de service réseau . Un port est identifié pour chaque combinaison de Protocole de transport et d’adresse par un nombre non signé de 16 bits , appelé numéro de port . Les protocoles de transport les plus courants qui utilisent des numéros de port sont le protocole de contrôle de transmission (TCP) et le protocole de datagramme utilisateur (UDP).
Un numéro de port est toujours associé à une adresse IP d’un hôte et au type de Protocole de transport utilisé pour la communication. Il complète l’ adresse réseau de destination ou d’origine d’un message. Des numéros de port spécifiques sont réservés pour identifier des services spécifiques afin qu’un paquet entrant puisse être facilement transmis à une application en cours d’exécution. À cette fin, les numéros de port inférieurs à 1024 identifient les services historiquement les plus couramment utilisés et sont appelés les numéros de port connus . Les ports de numéro supérieur sont disponibles pour une utilisation générale par les applications et sont appelés ports éphémères .
Les ports fournissent un service de multiplexage pour plusieurs services ou plusieurs sessions de communication à une adresse réseau. Dans le modèle client-serveur d’architecture d’application, plusieurs sessions de communication simultanées peuvent être lancées pour le même service.
Numéro de port
Un numéro de port est un entier non signé de 16 bits, compris entre 0 et 65535. Pour TCP, le numéro de port 0 est réservé et ne peut pas être utilisé, tandis que pour UDP , le port source est facultatif et une valeur de zéro signifie aucun port. Un processus associe ses canaux d’entrée ou de sortie via une Prise Internet , qui est un type de descripteur de fichier , associé à un Protocole de transport , une adresse IP et un numéro de port. C’est ce qu’on appelle la liaison . Une socket est utilisée par un processus pour envoyer et recevoir des données via le réseau. Le logiciel de mise en réseau du système d’exploitation a pour tâche de transmettre les données sortantes de tous les ports d’application sur le réseau et de transférer les données entrantespaquets réseau aux processus en faisant correspondre l’adresse IP et le numéro de port du paquet à un socket. Pour TCP, un seul processus peut se lier à une combinaison spécifique d’adresse IP et de port. Des échecs d’application courants, parfois appelés conflits de port , se produisent lorsque plusieurs programmes tentent d’utiliser le même numéro de port sur la même adresse IP avec le même protocole.
Les applications mettant en œuvre des services communs utilisent souvent des Numéros de port bien connus spécifiquement réservés pour recevoir les demandes de service des clients. Ce processus est connu sous le nom d’ écoute et implique la réception d’une requête sur le port bien connu établissant potentiellement un dialogue serveur-client un à un, en utilisant ce port d’écoute. D’autres clients peuvent se connecter simultanément au même port d’écoute ; cela fonctionne car une connexion TCP est identifiée par un tuple composé de l’adresse locale, du port local, de l’adresse distante et du port distant. [1] Les ports bien connus sont définis par une convention supervisée par l’ Internet Assigned Numbers Authority(IANA). Dans de nombreux systèmes d’exploitation, des privilèges spéciaux sont nécessaires pour que les applications se connectent à ces ports, car ceux-ci sont souvent considérés comme essentiels au fonctionnement des réseaux IP. Inversement, l’extrémité client d’une connexion utilise généralement un numéro de port élevé alloué pour une utilisation à court terme, donc appelé port éphémère .
Numéros de port communs
L’IANA est responsable de la coordination mondiale de la racine DNS, de l’adressage IP et d’autres ressources de protocole. Cela inclut l’enregistrement des numéros de port couramment utilisés pour les services Internet bien connus.
Les numéros de port sont divisés en trois plages : les ports connus , les ports enregistrés et les ports dynamiques ou privés .
Les ports bien connus (également appelés ports système ) sont ceux numérotés de 0 à 1023. Les exigences pour les nouvelles attributions dans cette plage sont plus strictes que pour les autres enregistrements. [2]
Numéro | Mission |
---|---|
20 | Transfert de données via le protocole de transfert de fichiers (FTP) |
21 | Contrôle de commande du protocole de transfert de fichiers (FTP) |
22 | Secure Shell (SSH) Connexion sécurisée |
23 | Service de connexion à distance Telnet , messages texte non cryptés |
25 | Envoi d’e-mails SMTP ( Simple Mail Transfer Protocol ) |
53 | Service de système de noms de domaine (DNS) |
67, 68 | Protocole de configuration d’hôte dynamique (DHCP) |
80 | Protocole de transfert hypertexte (HTTP) utilisé dans le World Wide Web |
110 | Protocole postal (POP3) |
119 | Protocole de transfert de nouvelles réseau (NNTP) |
123 | Protocole de temps réseau (NTP) |
143 | Internet Message Access Protocol (IMAP) Gestion du courrier numérique |
161 | Protocole de gestion de réseau simple (SNMP) |
194 | Chat de relais Internet (IRC) |
443 | HTTP sécurisé (HTTPS) HTTP sur TLS/SSL |
546, 547 | DHCPv6 Version IPv6 de DHCP |
Les ports enregistrés sont ceux de 1024 à 49151. L’IANA maintient la liste officielle des plages bien connues et enregistrées. [3]
Les ports dynamiques ou privés sont ceux compris entre 49152 et 65535. Une utilisation courante de cette plage concerne les ports éphémères .
Comportement du réseau
Les protocoles de la couche transport , tels que le protocole de contrôle de transmission (TCP) et le protocole de datagramme utilisateur (UDP), transfèrent les données à l’aide d’unités de données de protocole (PDU). Pour TCP, le PDU est un segment , et pour UDP c’est un datagramme . Les deux protocoles utilisent un champ d’ en-tête pour indiquer les numéros de port source et de destination. Les numéros de port sont codés dans l’en- tête de paquet du Protocole de transport et peuvent être facilement interprétés non seulement par les hôtes émetteurs et récepteurs, mais également par d’autres composants de l’infrastructure réseau. En particulier, les pare -feuxsont généralement configurés pour différencier les paquets en fonction de leurs numéros de port source ou de destination. La redirection de port en est un exemple d’application.
Balayage des ports
La pratique consistant à tenter de se connecter à une plage de ports en séquence sur un seul hôte est communément appelée analyse de ports . Ceci est généralement associé à des tentatives de piratage malveillantes ou à des administrateurs réseau à la recherche de vulnérabilités possibles pour aider à prévenir de telles attaques. Les tentatives de connexion au port sont fréquemment surveillées et consignées par les hôtes. La technique du port knocking utilise une série de connexions de port (tocs) à partir d’un ordinateur client pour permettre une connexion au serveur.
Exemples
Un exemple d’utilisation des ports est la livraison d’ e- mails . Un serveur utilisé pour envoyer et recevoir des e-mails a généralement besoin de deux services. Le premier service est utilisé pour transporter le courrier électronique vers et depuis d’autres serveurs. Ceci est accompli avec le protocole SMTP ( Simple Mail Transfer Protocol ). Une application de service SMTP standard écoute sur le port TCP 25 les demandes entrantes. Le deuxième service est généralement soit le Post Office Protocol (POP) ou le Internet Message Access Protocol (IMAP) qui est utilisé par le client de messagerieapplications sur les ordinateurs personnels des utilisateurs pour récupérer les messages électroniques du serveur. Le service POP écoute sur le port TCP numéro 110. Les deux services peuvent être exécutés sur le même ordinateur hôte, auquel cas le numéro de port distingue le service qui a été demandé par un ordinateur distant, qu’il s’agisse de l’ordinateur d’un utilisateur ou d’un autre serveur de messagerie.
Alors que le numéro de port d’écoute d’un serveur est bien défini (l’IANA les appelle les ports bien connus), le numéro de port du client est souvent choisi dans la plage de ports dynamiques (voir ci-dessous). Dans certaines applications, les clients et le serveur utilisent chacun des numéros de port spécifiques attribués par l’IANA. Un bon exemple de ceci est DHCP dans lequel le client utilise toujours le port UDP 68 et le serveur utilise toujours le port UDP 67.
Utiliser dans les URL
Les numéros de port sont parfois visibles sur le Web ou dans d’autres localisateurs de ressources uniformes (URL). Par défaut, HTTP utilise le port 80 et HTTPS utilise le port 443, mais une URL comme http://www.example.com:8080/path/spécifie que le navigateur Web se connecte à la place au port 8080 du serveur HTTP.
Histoire
Le concept de numéros de port a été établi par les premiers développeurs de l’ ARPANET dans le cadre d’une coopération informelle entre les auteurs de logiciels et les administrateurs système. Le terme numéro de port n’était pas encore utilisé. Il a été précédé par l’utilisation du terme numéro de socket dans les premiers stades de développement du réseau. Un numéro de socket pour un hôte distant était une quantité de 40 bits. [4] Les 32 premiers bits étaient similaires à l’adresse IPv4 d’aujourd’hui, mais à l’époque, les 8 bits les plus significatifs étaient le numéro d’hôte. La partie la moins significative du numéro de socket (bits 33 à 40) était une entité appelée Another Eightbit Number , abrégé AEN. [5] Aujourd’hui, prise réseaufait référence à un concept connexe mais distinct, à savoir l’adresse interne d’un point de terminaison utilisé uniquement au sein du nœud.
Le 26 mars 1972, Vint Cerf et Jon Postel ont appelé à documenter les usages alors actuels et à établir un catalogue de numéros de socket dans la RFC 322. Les administrateurs réseau ont été invités à soumettre une note ou à passer un appel téléphonique, ” décrivant la fonction et les numéros de socket des programmes de service réseau sur chaque HOST “. [6] Ce catalogue a ensuite été publié en tant que RFC 433 en décembre 1972 et comprenait une liste d’hôtes et leurs numéros de port et la fonction correspondante utilisée sur chaque hôte du réseau. Cette première fonction de registre servait principalement de documentation d’utilisation et indiquait que l’utilisation du numéro de port était conflictuelle entre certains hôtes pour des ” services publics utiles “. [5]Le document promettait une résolution des conflits basée sur une norme que Postel avait publiée en mai 1972 dans la RFC 349, dans laquelle il proposait pour la première fois des attributions officielles de numéros de port aux services réseau et suggérait une fonction administrative dédiée, qu’il appelait un tsar , pour tenir un registre. [7] Les 256 valeurs de l’AEN ont été réparties dans les plages suivantes :
Plage de numéros de port | Mission |
---|---|
0 à 63 | Fonctions standard à l’échelle du réseau |
64 à 127 | Fonctions spécifiques à l’hôte |
128 à 239 | Réservé pour une utilisation future |
240 à 255 | Toute fonction expérimentale |
Le service Telnet a reçu la première attribution officielle de la valeur 1. En détail, le premier ensemble d’attributions était : [7]
Numéro de port | Mission |
---|---|
1 | Telnet |
3 | Transfert de fichier |
5 | Saisie des tâches à distance |
7 | Écho |
9 | Jeter |
Au début de l’ARPANET, l’AEN était également appelé un nom de socket [8] et était utilisé avec le protocole de connexion initiale (ICP), un composant du programme de contrôle du réseau (NCP). [9] [10] NCP était le précurseur des protocoles Internet modernes. Aujourd’hui, le nom du service de terminologie est toujours étroitement lié aux numéros de port, les premiers étant des chaînes de texte utilisées dans certaines fonctions réseau pour représenter un numéro de port numérique.
Références
- ^ Postel, Jean. “RFC793” . Récupéré le 29 juin 2012 .
- ^ Michelle Cotton; Lars Eggert; et coll. (août 2011). Procédures de l’Autorité d’attribution des numéros de l’Internet (IANA) pour la gestion du registre des noms de service et des numéros de port du Protocole de transport . IETF . doi : 10.17487/RFC6335 . BCP 165. RFC 6335 .
- ^ “Numéros de port” . Autorité des numéros attribués sur Internet (IANA).
- ^ RFC 36, Notes de protocole , S. Crocker (16 mars 1970)
- ^ a b RFC 433, Liste des numéros de socket , J. Postel, N. Neigus (22 décembre 1972)
- ^ RFC 322, Numéros de socket bien connus , V. Cerf, J. Postel (26 mars 1972)
- ^ un b RFC 349, Numéros de prise standard proposés J. Postel (30 mai 1972)
- ^ RFC 197, Protocole de connexion initial – Révisé, A. Shoshani, E. Harslem (14 juillet 1971)
- ^ NIC 7104, Manuel du protocole ARPANET
- ^ Postel, Jon; En ligneFeinler, E. (1978). Manuel du protocole ARPANET . Menlo Park, Californie : Centre d’information sur le réseau.