Tcp
Upcoming SlideShare
Loading in...5
×
 

Tcp

on

  • 386 views

 

Statistics

Views

Total Views
386
Views on SlideShare
383
Embed Views
3

Actions

Likes
0
Downloads
9
Comments
0

1 Embed 3

http://bulard.piratesdunouveaumonde.fr 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Tcp Tcp Presentation Transcript

  • TCPTransport Control Protocol
  • Introduction Protocole plus évolué qu’UDP Mode connecté Fiabilité (Contrôle de bout en bout) Établissement d’un circuit virtuel Fonctionne en client-serveur Un circuit virtuel est caractérisé par un quintuplet  Le protocole (TCP)  Une @ IP d’émetteur (adresse source)  Une @ IP de récepteur (adresse destination)  Un numéro d’émetteur (port source)  Un numéro de récepteur (port destination)
  • ENCAPSULATION & EN-TÊTE TCP101000100111101010111100101010010010110101111010110001110101010110101010101101…. En-tête IP En-tête TCP Données Protocole = TCP1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Port Source TCP Port Destination TCP Sequence Number Acknowledgement Number Offset Reserved Code Window Checksum Urgent Pointer Options Padding Données
  • En-tête TCP détails Port Source : Le numéro de port de l’application locale. Port Destination : Le numéro de port de l’application distante. Sequence Number : nombre qui identifie la position des données à transmettre par rapport au segment original. Au démarrage de chaque connexion, ce champ contient une valeur non nulle et non facilement prévisible, c’est la séquence initiale. Acknowledgement number : C’est un numéro qui identifie la position du dernier octet reçu dans le flux entrant.
  • En-tête TCP détails Offset : déplacement qui permet d’atteindre les données quand il y a des options. Codé sur 4 bits, il s’agit du nombre de mots de 4 octets qui composent l’en-tête. Reserved : 6 bits réservés pour un usage futur. Code : Six bits pour influer sur le comportement de TCP en caractérisant l’usage du segment.  URG : Le champ urgent pointer doit être exploité  ACK : Le champ ACNOWLEDGMENT NUMBER doit être exploité.  PSH : Notification de l’émetteur au récepteur, pour lui indiquer que toutes les données collectées doivent être transmises à l’application sans attendre les éventuelles données qui suivent.  RST : Ré-initialisation de la connexion.  SYN : SEQUENCE NUMBER contient la valeur de début de connexion.  FIN : L’émetteur du segment a fini d’émettre.
  • En-tête TCP détails WINDOW : Le flux TCP est contrôlé de part et d’autre pour les octets compris dans une zone bien délimitée et nommée “ fenêtre ”. La taille de celle-ci est définie par un entier non signé de 16 bits, qui en limite donc théoriquement la taille à 65 535 octets (ce n’est pas complètement exact, voir plus loin l’option wscale). Chaque partie annonce ainsi la taille de son buffer de réception. Par construction, l’émetteur n’envoie pas plus de données que le récepteur ne peut en accepter. Cette valeur varie en fonction de la nature du réseau et surtout de la bande passante.
  • En-tête TCP détails CHECKSUM : Un calcul qui porte sur la totalité du segment, en-tête et données. URGENT POINTER : Ce pointeur contient un offset à ajouter à la valeur de SEQUENCE NUMBER du segment en cours pour délimiter la zone des données urgentes à transmettre à l’application.
  • En-tête TCP détails Les Options  mss : La taille maximale du segment des données applicatives que l’émetteur accepte de recevoir. Au moment de l’établissement d’une connexion (paquet comportant le flag SYN), chaque partie annonce sa taille de MSS.  Timestamp : Pour calculer le temps d’un aller et retour.  Wscale : Facteur d’échelle pour augmenter la taille de la fenêtre au delà des 16 bits du champ WINDOW. Padding : Remplissage pour se caler sur un mot de 32 bits.
  • Début de connexion  L’établissement d’une connexion TCP s’effectue en trois temps.Émetteur Récepteur Temps
  • Début de connexion L’émetteur du premier paquet est à l’origine de l’établissement du circuit virtuel, c’est une attitude généralement qualifiée de “cliente”. On dit aussi que le client effectue une “ouverture active”. Le récepteur du premier paquet accepte l’établissement de la connexion, ce qui suppose qu’il était prêt à le faire avant que la partie cliente en prenne l’initiative. C’est une attitude de “serveur”. On dit aussi que le serveur effectue une “ouverture passive” (passive open).
  • Fin de connexion Récepteur • Il faut 4 segments pourÉmetteur terminer une connexion à cause de la nature full duplex du dialogue. •Une machine qui termine sa connexion n’oblige pas l’autre à finir. •S’il lui reste des données à envoyer celle-ci le fait avant de clore la connexion
  • Contrôle du transport • Au départ du Paquet i une horlogeÉmetteur Récepteur se déclenche. Si cette horloge dépasse une valeur limite avant réception de l’ACK le Paquet i est retransmis. Cette valeur limite est basée sur la constante MSL qui est un choix d’implémentation, généralement de 30 secondes à 2 < 2 x RTT minutes. Le temps maximum d’attente est donc de 2 × MSL. • Le temps qui s’écoule entre l’émission d’un paquet et la réception de son acquittement est le Round Trip Time, il doit donc être Temps inférieur à 2 × MSL. Il est courant sur l’Internet actuel d’avoir un RTT de l’ordre de la seconde. • L’émetteur conserve la trace du Paquet i pour éventuellement le renvoyer. Ce mécanisme sous emploie la bande passante, surtout sur des réseaux qui ne garantissent pas courts délais de transmission.
  • Fenêtre glissanteÉmetteur Récepteur 1 2 3 Paquet Seq Ack Type 4 1 X - Data 2 X+1 - Data 5 3 X+2 - Data 6 4 X+3 - Data 7 8 5 Y X+4 Data, Ack 6 Y+1 X+4 Data, Ack 9 7 Y+2 X+4 Data, Ack 8 Y+3 X+4 Data, Ack 9 - Y+4 Ack
  • Fenêtre glissante Ce mécanisme permet de ne pas gacher de bande passante. Un crédit de confiance accordé à la machine distante. L’horloge et le RTT sont toujours là. En cas d’erreur on retransmet tous les paquets après le dernier ACK.