Couche transport
# Couche transport

En réseaux, la couche dite de transport constitue la quatrième couche du modèle OSI. Cette couche regroupe l'ensemble des protocoles chargés de la gestion des erreurs et du contrôle des flux réseaux. Les deux principaux protocoles utilisés sont les protocoles TCP et UDP.

## Définition OSI (ISO 7498-1)

La couche transport gère les communications de bout en bout entre processus. Cette couche est souvent la plus haute couche où on se préoccupe de la correction des erreurs. C'est-à-dire que le service de niveau transport consiste généralement en un service en mode connecté offrant le transfert de messages ou d'octets bruts ordonnés sans corruption, pertes, ou duplication. En particulier, c'est le service offert par les protocoles TCP.

## Principe de fonctionnement

### Multiplexage / Démultiplexage

La couche transport implémente le multiplexage afin de permettre à plusieurs processus de communiquer sur le même réseau. Les informations sont divisées en segments (PDU) associés à une application spécifique. Concrètement cela consiste en l’utilisation d'un port associé à un socket pour chaque processus d'une machine. Ces informations sont contenues dans l'en-tête du segment de la couche transport.

Schéma du format d'un en-tête de la couche transport :

| ← 32 bits → ||
| - | - |
| Port source | Port destination |
| Autres informations d'en-tête ||
| Données de l'application ||

En fonction des protocoles, le PDU est appelé « segment » (TCP), « datagramme » (UDP), ou encore « paquet ».

### Intégrité des données

Selon les protocoles, le paradigme quant à la fiabilité des données diffère. Certains protocoles, à l'instar de TCP, s'assurent de la réception de l'ensemble des segments (on parle alors de protocoles orientés connexion), tandis que d'autres, tel que UDP, ne pratiquent aucune vérification de cet ordre (transport sans connexion). Ces derniers sont souvent plus rapide, mais ne peuvent garantir la réception de l'ensemble des données envoyées.

Les protocoles orientés connexion sont alors plutôt utilisé lorsque l'intégrité des données est importante, e.g. mails (SMTP), transfert de fichiers (FTP), etc., alors que pour un besoin de performance on peut chercher à ne pas établir de connexion, e.g. streaming, etc..

## Remarques

Le service de transport en mode connecté sur le service réseau en mode non connecté n'est pas censé être la règle. C'est en revanche le cas dans le monde IP. Cela constitue un autre écart de la pile IP par rapport au modèle OSI. L'avantage de la règle OSI sur la règle du monde IP est évident dans le cas de l'interconnexion d'un réseau filaire et d'un réseau radio. L'incapacité fondamentale de TCP à deviner la cause d'une perte de PDU (en gros : congestion du réseau ou corruption du PDU) faute de retour d'information du niveau réseau, et donc la réaction adéquate à cette perte (responsable de ralentissement des transmissions ou retransmission du PDU manquant) est une des raisons qui le rendent intrinsèquement non optimal.

## Exemples de protocoles de couche 4

* Datagram Congestion Control Protocol (DCCP) (origine IETF)
* Sequenced packet exchange (SPX) (origine Novell)
* Stream Control Transmission Protocol (SCTP) (origine IETF)
* Transaction Capabilities Application Part (TCAP) (origine ITU)
* Transmission Control Protocol (TCP) (origine IETF)
* User Datagram Protocol (UDP) (origine IETF)
* UDT: Breaking the Data Transfer Bottleneck (UDT) http://udt.sourceforge.net/
