4.2 - Adressage de ports
Pour que les protocoles TCP et UDP gèrent ces conversations simultanées avec des besoins variables, les services TCP et UDP doivent surveiller les différentes applications en train de communiquer. Pour différencier les segments et les datagrammes de chaque application, les protocoles TCP et UDP utilisent chacun des champs d’en-tête identifiant ces applications de façon unique. Ces identificateurs uniques sont les numéros de port.
Adressage de ports TCP/UDP
L’en-tête de chaque segment ou datagramme contient un port source et un port de destination. Le numéro de port source est le numéro associé à l’application d’origine sur l’hôte local pour cette communication. Comme l’illustre la figure, le numéro de port de destination est le numéro de cette communication associé à l’application de destination sur l’hôte distant.
Lorsqu’un message est transmis à l’aide du protocole TCP ou UDP, les protocoles et services demandés sont identifiés par un numéro de port. Un port est un identifiant numérique, présent dans chaque segment, qui est utilisé pour conserver la trace de certaines conversations et de certains services de destination demandés. Chaque message envoyé par un hôte contient un port source et un port de destination.
Port de destination
Le client place un numéro de port de destination dans le segment pour informer le serveur de destination du service demandé. Par exemple, le port 80 renvoie au service HTTP ou Web. Lorsque le client spécifie le port 80 comme port de destination, le serveur qui reçoit le message sait que des services Web sont demandés. Un serveur peut proposer plusieurs services simultanément. Par exemple, il peut proposer des services Web sur le port 80 et, en même temps, l’établissement d’une connexion FTP sur le port 21.
Port source
Le numéro du port source est généré de manière aléatoire par le périphérique émetteur pour identifier une conversation entre deux périphériques. Ainsi, plusieurs conversations peuvent s’effectuer simultanément. En d’autres termes, un périphérique peut envoyer plusieurs requêtes de service HTTP à un serveur Web en même temps. Un suivi des différentes conversations est effectué sur la base des ports sources.
Socket
Les ports sources et de destination sont placés à l’intérieur du segment. Les segments sont ensuite encapsulés dans un paquet IP. (Le paquet IP contient l’adresse IP de la source et de la destination). La combinaison des adresses IP source et de destination ainsi que des numéros de port source et de destination est appelée un socket. L’interface de connexion sert à identifier le serveur et le service demandés par le client. Chaque jour, des milliers d’hôtes communiquent avec des millions de serveurs différents. Ces communications sont identifiées par les sockets.
La combinaison du numéro de port de la couche transport et de l’adresse IP de la couche réseau de l’hôte suffit à identifier de manière unique un processus d’application particulier exécuté sur un périphérique hôte individuel. Cette combinaison est appelée un socket. Une paire de sockets, composée des adresses IP et numéros de port source et de destination, est également unique et identifie la conversation spécifique entre les deux hôtes.
Exemple :
- Socket client : 192.168.1.5:1099.
- Socket du serveur Web : 192.168.1.7:80
- Ensemble, ils constituent une paire de sockets : 192.168.1.5:1099, 192.168.1.7:80.
Avec la création de sockets, les points de communication sont connus de sorte que les données peuvent passer d’une application sur un hôte à une application sur un autre. Les sockets permettent à plusieurs processus exécutés sur un client de se différencier les uns des autres, et aux multiples connexions à un processus serveur de se distinguer les unes des autres.
Le port source d’une requête de client est généré aléatoirement. Le numéro de port fait office d’adresse de retour pour l’application envoyant la requête. La couche transport effectue le suivi du port et de l’application à l’origine de la requête afin que la réponse, quand elle sera envoyée, soit transmise à l’application appropriée. Le numéro de port de l’application envoyant la requête sert de numéro de port de destination dans la réponse renvoyée depuis le serveur.
Attribution des numéros de ports
L’Internet Assigned Numbers Authority (IANA) attribue les numéros de port. L’IANA est une agence de normalisation responsable de l’affectation de diverses normes d’adressage.
Il existe différents types de numéros de port :
Plage de numéros de ports | Groupe de ports |
---|---|
0 à 1023 | Ports réservés |
1024 à 49151 | Ports inscrits |
49152 à 65535 | Ports dynamiques |
-
Ports réservés (numéros 0 à 1023) – Ces numéros sont réservés à des services et applications. Ils sont généralement utilisés pour les applications telles que HTTP (serveur Web), Internet Message Access Protocol (IMAP)/Simple Mail Transfer Protocol (SMTP) (serveur de messagerie) et Telnet. En définissant ces ports réservés pour une utilisation par des applications serveur, il est possible de programmer les applications clientes de façon à ce qu’elles demandent à être connectées à un port précis et au service qui lui est associé.
-
Ports inscrits (numéros 1024 à 49151) – Ces numéros de port sont affectés à des processus ou applications d’utilisateurs. Ces processus sont essentiellement des applications particulières qu’un utilisateur a choisi d’installer plutôt que des applications courantes qui recevraient un numéro de port réservé. Un client peut également sélectionner dynamiquement ces ports en tant que ports source lorsqu’ils ne sont pas utilisés par une ressource serveur.
-
Ports privés ou dynamiques (numéros 49152 à 65535) – Également appelés ports éphémères, ces ports sont généralement affectés de façon dynamique à des applications clientes lorsqu’une connexion à un service est initiée par un client. Le port dynamique est très souvent utilisé pour identifier l’application cliente durant la communication, alors que le client utilise le port réservé pour identifier et se connecter au service demandé au serveur. Il est relativement rare pour un client de se connecter à un service par le biais d’un port dynamique ou privé (bien que certains programmes de partage de fichiers peer-to-peer utilisent ces ports).
Exemples de ports TCP
- Réservés
- 21 - FTP (File Transfert Protocol)
- 23 - Telnet
- 25 - SMTP (Simple Mail Transfer Protocol)
- 80 - IMAP (Internet Message Access Protocol)
- 194 - Internet Relay Chat (IRC)
- 443 - Secure HTTP (HTTPS)
- Inscrits
- 1863 - MSN Messenger
- 2000 - Cisco SCCP (VoIP)
- 8008 - Alternate HTTP
- 8080 - Alternate HTTP
Exemples de ports UDP
- Réservés
- 69 - TFTP (Trivial File Tranfer Protocol)
- 520 - RIP (Routing Information Protocol)
- Inscrits
- 1812 - RADIUS Authentication Protocol
- 5004 - RTP (Real-Time Transfer Protocol, Voice Aand Video Transport Protocol)
Exemples de ports TCP ET UDP
- Réservés
- 53 - DNS
- 161 - SNMP
- Inscrits
- 1433 - MS SQL
- 2948 - WAP (Wireless Application Protocol, MMS)
Vérification et surveillance de ports : netstat
Il est parfois nécessaire de savoir quelles connexions TCP actives sont ouvertes et s’exécutent sur un hôte en réseau. L’utilitaire netstat
est un utilitaire de réseau important qui peut être utilisé pour vérifier ces connexions. Il répertorie le protocole utilisé, l’adresse et le numéro de port locaux, l’adresse et le numéro de port distants, et l’état de la connexion.
Les connexions TCP inexpliquées peuvent constituer un risque majeur, car elles peuvent indiquer que quelque chose ou que quelqu’un est connecté à l’hôte local. En outre, les connexions TCP inutiles consomment des ressources système importantes et ralentissent donc les performances de l’hôte. L’utilitaire netstat
doit être utilisé pour examiner les connexions ouvertes sur un hôte lorsque les performances semblent se dégrader.