1. INTRODUCTION
1.1. Motivation
1.2. Portée
1.3. A propos de ce document
1.4. Interfaces
1.5. Fonctionnement
Transfert de données de base:
Contrôle d’erreur
Contrôle de flux
Multiplexage
Connexions
Priorité et Sécurité
2. PHILOSOPHIE
2.1. Eléments constitutifs du réseau
2.2. Modèle de fonctionnement
2.3. Les Hosts
2.4. Interfaces
2.5. Relations avec d’autres protocoles
2.6. Fiabilité de communication
2.7. Etablissement et rupture des connexions
2.8. Communication de données
2.9. Priorité et Sécurité
2.10. Principe de robustesse
3. SPECIFICATION FONCTIONNELLE
3.1. Format de l’en-tête
Port source: 16 bits
Port Destinataire: 16 bits
Numéro de séquence: 32 bits
Accusé de réception: 32 bits
Data Offset: 4 bits
Reservé: 6 bits
Bits de contrôle: 6 bits (de gauche à droite)
Fenêtre: 16 bits
Checksum: 16 bits
Pointeur de données urgentes: 16 bits
Options: variable
Donnée d’option : Taille maximale de segment: 16 bits
Bourrage (padding): variable
3.2. Terminologie
3.3. Numéros de séquence
Sélection du premier numéro de séquence
Savoir ne rien émettre
Le concept de « silence » TCP
3.4. Etablissement d’une connexion
Connexions semi-ouvertes et autres anomalies
Génération d’un signal de réinitialisation
Traitement sur réinitialisation
3.5. Fermeture d’une connexion
Cas 1: L’application locale déclenche la déconnexion
Cas 2: TCP reçoit un segment FIN du distant
Cas 3: les deux applications ferment simultanément
3.6. Priorité et Sécurité
3.7. Transfert de données
Temporisation de retransmission
The Communication of Urgent Information
Gestion de la fenêtre de transmission
Suggestion pour gestion de la largeur de fenêtre
3.8. Interfaces
Interface application/TCP
Commandes applicatives vers TCP
OPEN
SEND
RECEIVE
CLOSE
STATUS
ABORT
Messages TCP vers utilisateur
Interface TCP vers couche inférieure
3.9. Traitement des événements
Commande OPEN
Commande SEND
RECEIVE Call
Commande CLOSE
Commande : ABORT
Commande STATUS
Arrivée réseau : SEGMENT ARRIVES
GLOSSAIRE
REFERENCES
1. INTRODUCTION
Le protocole TCP est défini dans le but de fournir un service de transfert de données de haute fiabilité entre deux ordinateurs « maîtres » raccordés sur un réseau de type « paquets commutés », et sur tout système résultant de l’interconnexion de ce type de réseaux.
Ce document décrit les fonctions exécutées par TCP, les programmes qui les implémentent, et les interfaces entre ce dernier et les applications sensées utiliser ce service.
1.1. Motivation
La communication entre systèmes d’information joue un rôle croissant dans les domaines militaires, institutionnels, scientifiques et commerciaux. Ce document prend en compte en tout premier lieu les exigences du secteur militaire, en particulier les exigences de fonctionnement avec des communications peu fiables et dans une situation de congestion du réseau. La plupart de ces problèmes sont rencontrés aussi dans les domaines non militaires.
Au fur et à mesure que les réseaux de communication informatiques à caractère stratégiques ou tactiques sont déployés, il devient essentiel de trouver un moyen d’interconnexion de ces réseaux, et des standards de transmission de données permettant de supporter une vaste gamme d’applications. Anticipant le besoin de tels standards, le député et sous-secrétaire d’état à la recherche de la Défense Américaine a officialisé le protocole décrit ici en tant que base pour la standardisation des processus d’intercommunication de données du Département de la Défense Américaine (DoD).
1.2. Portée
TCP prétend fournir un service de communication de processus à processus, dans un environnement réseau complexe. TCP est défini comme un protocole de communication « host to host », c’est à dire de maître à maître (par opposition à « central à terminal »).
1.3. A propos de ce document
Ce document spécifie en détail le comportement de toute implémentationTCP, tant dans ses transactions avec les couches applicatives supérieures, qu’avec d’autres TCPs. Le reste de cette section offre une vue d’ensemble des fonctions réalisées et des interfaces proposées. La Section 2 résume le concept « philosophique » ayant aboutit au design TCP. La Section 3 décrit en détail les réactions deTCP face à divers événements(arrivée d’un nouveau segment, appel d’utilisateur, erreurs, etc.) ainsi que le format détaillé des segments TCP.
1.4. Interfaces
TCP s’interface avec un processus utilisateur ou applicatif et un protocole de niveau inférieur du typeInternet Protocol.
L’interface avec les applicatifs consiste en un ensemble de commandes comme le ferait une application à un système d’exploitation pour la manipulation de fichiers. Par exemple, on trouvera des commandes pour établir et rompre une communication, pour envoyer ou recevoir des données sur une connexion ouverte. Il est aussi prévu que TCP puisse communiquer avec les applications sur un mode asynchrone. Bien qu’une grande liberté soit laissé aux développeurs pour la constructions d’interfaces TCP pour un environnement donné, des fonctionnalités minimales sont requises pour reconnaître la validité TCP de l’implémentation.
1.5. Fonctionnement
Comme notifié ci-avant, TCP est conçu pour fournir un service de transmission de données sécurisé entre deux machines raccordés sur un réseau de paquets. Pour pouvoir assurer ce service même au dessus d’une couche de protocole moins fiable,les fonctionnalités suivantes sont nécessaires:
- Transfert de données de base
- Correction d’erreur
- Contrôle de flux
- Multiplexage
- Gestion de connexions
- Priorité et Sécurité
Ces fonctionnalités sont décrites en grandes lignes dans les paragraphes qui suivent..
Transfert de données de base:
TCP est capable de transférer un flux continu de données entre deux ordinateurs, en découpant ce flux en paquets ou datagrammes. En général, TCP décide de lui-même là où le flux de données doit être coupé.
Parfois les utilisateurs ont besoin de savoir que toutes les données soumises à TCP ont bien été émises. La fonction « push » a été prévue a cet effet. Pour s’assurer de la transmission complète de données jusqu’à un point spécifié, l’utilisateur activera la fonction « push » de TCP. Cette fonction oblige TCP à transmettre rapidement les données situées avant le point spécifié vers le destinataire. Il n’est nul besoin de fournir un marqueur spécifique pour ce point, dans la mesure ou le destinataire accepte ces données comme un transmission normale.
Contrôle d’erreur:
TCP doit considérer et traiter les cas de données perdues, erronées, dupliquées, ou arrivées dans le désordre à l’autre bout de la liaison Internet. Ceci est réalisé par l’insertion d’un numéro de séquence, et par l’obligation d’émission d’un « accusé de réception »(ACK) par leTCPdestinataire. Si l’accusé de réception n’est pas reçu au bout d’un temps prédéfini, le paquet sera réémis. Côté récepteur, les numéros de séquence sont utilisés pour reconstituer dans le bon ordre le flux original, et éliminer les paquets dupliqués. L’élimination des erreurs physiques de transmission se fait par encodage d’un Checksum à l’émission, recalcul de ce Checksum par le destinataire, et élimination des paquets pour les quels les deux valeurs ne correspondent pas.
Cours réseaux Transmission Control Protocol (TCP) (378 KO) (Cours PDF)