La couche 4 du modèle OSI est la couche transport avec deux protocoles :
La couche de transport TCP du réseau doit fournir à l ’utilisateur un service de transport d ’information efficace, fiable et économique, c'est à dire une qualité de service.
TCP est conçu pour traiter de bout-en-bout des données :
TCP fonctionne en mode connecté :
Les numéros de ports source (application source) et port destination (application destinatrice) sont :
Les ports vont de 0 à 65535
http://www.iana.org/assignments/service-names-port-numbers/servicenames-port-numbers.xml
TCP transmet sur le réseau des segments constitué :
Troisième champ : Numéro de séquence sur 32 bits
Quatrième champ : Numéro d ’acquittement 32 bits
Septième champ : 6 drapeaux 6 fois 1 bit
Huitième champ : Taille de fenêtre 16 bits :
Le MSS (taille de segment maximale) limite la taille des segments TCP, hors entête, appelé charge utile qu’un périphérique connecté au réseau peut recevoir.
Par défaut, sur un réseau Ethernet chaque trame peut faire jusqu’à 1 500 octets (MTU de 1500 octets), dont :
Cela laisse 1 460 octets pour les données utiles (MSS).
On utilise la formule suivante pour définir le MSS qui consiste à retirer les en-tête au MTU :
MTU - (TCP header + IP header) = MSS
Un tunnel VPN établi avec IPsec (Internet Protocol security) permet de chiffrer les paquets IP mais ajoute un entête spécifique.
La formule devient :
MTU - (TCP header + IP header + IPsec) = MSS
Dans un réseau Ethernet dont le MTU est de 1500, il n'y aura que des trames d’une longueur maximale de 1 500 octets. Au delà, les paquets plus longs seront fragmentés.
Le MSS du routeur doit être défini sur 1 460 octets et les paquets avec une taille de charge utile supérieure à 1 460 octets seront supprimés.
Pour définir un volume individuel de MSS, il suffit de le préciser dans le champ Options avant la transmission des premières données : l’expéditeur et le destinataire conviennent généralement du volume maximum des segments TCP à expédier : Maximum Segment Size – MSS. Cela est fait lors de l'établissment de la connexion TCP (3 way handshake).
Annoncer des valeurs MMS très petites (attaque par MMS faible) pour limiter artificiellement les charges TCP échangées dans les deux sens de la connexion. Le principe est d'obtenir que la taille des paquets IP résultants soit inférieure à une valeur choisie.
On force alors une taille de segments TCP très petite ce qui va multiplier de manière conséquente (jusqu'à supérieur à 14), le nombre de segments TCP à envoyer pour transporter la même quantité de données.
Une extrémité attend de manière passive l’arrivée d’une connexion :
L’autre extrémité indique la demande de connexion dans un premier segment TCP :
Arrivé à destination, recherche d'une application à l ’écoute (LISTEN) sur le Port destination indiqué :
Etablissement en trois étapes : le 3-Way Handshake.
Pour mettre fin à une connexion, l'indicateur de contrôle FIN (Finish) doit être défini dans l'en-tête de segment.
Pour mettre fin à chaque session TCP unidirectionnelle, on utilise un échange en deux étapes constitué d'un segment FIN et d'un segment ACK. Pour mettre fin à une seule conversation TCP, quatre échanges sont nécessaires pour mettre fin aux deux sessions. La terminaison peut être initiée par le client ou le serveur. Dans l'exemple, les termes client et serveur sont utilisés comme référence pour plus de simplicité, mais deux hôtes quelconques qui ont une session ouverte peuvent lancer le processus de terminaison.
Quand la réception de tous les segments a été confirmée, la session est fermée.
Les hôtes maintiennent l'état, suivent chaque segment de données au cours d'une session et échangent des informations sur les données reçues en utilisant les informations de l'en-tête TCP.
TCP est un protocole full-duplex et chaque connexion représente deux sessions de communication à sens unique.
Les six bits de contrôle du champ des bits de contrôle dans l'en-tête TCP indiquent la progression et l'état de la connexion. Ce sont également des indicateurs (bit qui est actif ou inactif). Les six indicateurs de bits de contrôle sont les suivants: