2.1. Multiplexage
La couche transport permet aux applications de communiquer au travers d’un réseau, d’une machine à l’autre, mais les applications elles-mêmes n’ont pas accès aux interfaces physiques : le hardware est géré par le système d’exploitation. Ce dernier communique avec les interfaces via des drivers, puis analyse les trames reçues pour en extraire les paquets IP, puis les segments TCP, grâce au code de sa stack TCP/IP. Une fois le segment TCP reçu, il doit pouvoir identifier le processus applicatif auquel délivrer l’information. En effet, entre deux machines données, il peut y avoir plusieurs flux de communication concernant des applications différentes. On parle de multiplexage de sessions pour désigner la gestion commune de plusieurs flux de communication transport par l’OS.
Dans la figure ci-dessus, on observe deux applications communiquant entre deux machines. La première application a un flux de données (bleu) entre le processus A de la machine d’Alice et le processus B de la machine de Bob, et la seconde communique flux rouge) entre le processus B de la machine d’Alice et le processus A de la machine de Bob.
Un mécanisme d’adressage est nécessaire pour que l’OS puisse séparer ces flux. Les adresses IP ne suffisent pas, puisqu’elles désignent une interface réseau et que plusieurs flux peuvent y transiter. Il faut donc y ajouter une information supplémentaire, appelée le numéro de port. Ce dernier sera propre au protocole transport utilisé. Un flux de communication transport sera donc identifié par le quintuplet :
- Adresse IP source
- Adresse IP destination
- Port Source
- Port destination
- Protocole transport
Les numéros de ports TCP et UDP sont généralement divisés en trois catégories :
- Les numéros de port privilégiés (compris entre 1 et 1023) : il est généralement nécessaire qu’un processus dispose de privilèges administrateur sur les systèmes UNIX pour pouvoir y être lié. Ils sont souvent associés à des protocoles courants.
- Les numéros de port réservés (entre 1024 et 49151), recommandés à l’usage des serveurs (idéalement après enregistrement auprès de l’IANA)
- Les numéros de port éphémères (entre 49152 et 65535), utilisés pour les clients
La liste des ports et les protocoles associés peut être trouvée sur le site de l’IANA.