Concepts de la couche de transport
Dans la discussion sur TCP et UDP, il vaut la peine de s'arrêter un instant pour se concentrer sur quelques-uns des concepts importants :
- Protocoles orientés connexion et sans connexion
- Ports et Sockets
- Multiplexage/démultiplexage
Ces concepts importants sont essentiels pour comprendre la conception de la couche Transport.
Protocoles orientés connexion et sans connexion
Pour fournir le niveau approprié d'assurance qualité pour une situation donnée, les développeurs ont proposé deux types de protocole alternatifs
- Un protocole orienté connexion établit et maintient une connexion entre des ordinateurs communicants et surveille l'état de cette connexion au cours de la transmission. En d'autres termes, chaque paquet de données envoyé sur le réseau reçoit un accusé de réception, et la machine émettrice enregistre des informations d'état pour s'assurer que chaque paquet est reçu sans erreur, en retransmettant les données si nécessaire. À la fin de la transmission, les ordinateurs d'envoi et de réception ferment gracieusement la connexion.
- Un protocole sans connexion envoie un datagramme unidirectionnel à la destination et ne se soucie pas d'informer officiellement la machine de destination que des données sont en route. La machine de destination reçoit les données et ne se soucie pas de renvoyer les informations d'état à l'ordinateur source.
Ports et Sockets
La couche Transport sert d'interface entre les applications réseau et le réseau et fournit une méthode pour adresser les données du réseau à des applications particulières. Dans le système TCP/IP, les applications peuvent adresser des données via le module de protocole TCP ou UDP à l'aide de numéros de port. Un port est une adresse interne prédéfinie qui sert de chemin de l'application à la couche Transport ou de la couche Transport à l'application.
Un examen plus approfondi du schéma d'adressage spécifique à l'application de la couche Transport révèle que les données TCP et UDP sont en fait adressées à un socket. Un socket est une adresse formée en concaténant l'adresse IP et le numéro de port. Par exemple, le numéro de socket 192.168.2.16:21 fait référence au port 21 sur l'ordinateur avec l'adresse IP 192.168.2.16.
Voici un exemple de la façon dont un ordinateur accède à une application sur une machine de destination via un socket :
- L'ordinateur A initie une connexion à une application sur l'ordinateur B via un port connu. Un port bien connu est un numéro de port attribué à une application spécifique par l'Internet Assigned Numbers Authority (IANA), actuellement géré par l'ICANN. Combiné à l'adresse IP, le port bien connu devient l'adresse de socket de destination pour l'ordinateur A. La demande comprend un champ de données indiquant à l'ordinateur B le numéro de socket à utiliser lors du renvoi d'informations à l'ordinateur A. Il s'agit de l'adresse de socket source de l'ordinateur A.
- L'ordinateur B reçoit la demande de l'ordinateur A via le port bien connu et dirige la réponse vers le socket répertorié comme adresse source de l'ordinateur A. Ce socket devient l'adresse de destination des messages envoyés de l'application sur l'ordinateur B à l'application sur l'ordinateur A.
Multiplexage/démultiplexage
Le système d'adressage des sockets permet à TCP et UDP d'effectuer une autre tâche importante de la couche Transport : le multiplexage et le démultiplexage. Le multiplexage est l'acte de passer l'entrée de plusieurs sources en une seule sortie, et le démultiplexage est l'acte de recevoir l'entrée d'une seule source et de la transmettre à plusieurs sorties.
Le multiplexage/démultiplexage permet aux niveaux inférieurs de la pile TCP/IP de traiter les données sans tenir compte de l'application qui a initié ces données. Toutes les associations avec l'application d'origine sont établies au niveau de la couche Transport, et les données transitent vers et depuis la couche Internet dans un seul pipeline indépendant de l'application.
La clé du multiplexage et du démultiplexage est l'adresse de socket. Étant donné que l'adresse de socket combine le numéro IP avec le numéro de port, elle fournit un identifiant unique pour une application spécifique sur une machine spécifique. Toutes les machines clientes utilisent l'adresse de port bien connue TCP 21 pour contacter un serveur FTP, mais le socket de destination que le serveur FTP utilisera pour répondre à chacun des PC connectés est unique. De même, toutes les applications réseau exécutées sur le serveur FTP utilisent l'adresse IP du serveur, mais seul le service FTP utilise l'adresse de socket constituée de l'adresse IP du serveur et du port TCP 21.