Explication de la négociation de trois via TCP/IP

Traductions disponibles Traductions disponibles
Numéro d'article: 172983 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article est destiné à un public qui sont familiarisés avec TCP/IP (Transmission Control Protocol/Internet Protocol) et aborde le processus de la négociation à trois voies TCP qui se produit entre un client et le serveur lors de l'émission ou la fin d'une connexion TCP.

Pour plus d'informations sur TCP/IP, consultez le livre blanc suivant sur le serveur ftp anonyme de Microsoft :
Nom du fichier : Tcpipimp2.doc
Emplacement : ftp://ftp.microsoft.com/bussys/winnt/winnt-docs/papers/ "3.5/3.51/4.0 de Microsoft Windows NT : implémentation de TCP/IP détails pile de protocoles TCP/IP et services, version 2.0»

Plus d'informations

Le niveau de TCP (Transmission Control Protocol) de protocole de transport TCP/IP est orienté connexion. Orienté connexion signifie que, avant que toutes les données peuvent être transmises, une connexion fiable doit être obtenue et l'objet d'un accusé de réception. Transmissions de données au niveau TCP, établissement de la connexion et arrêt de la connexion conservent les paramètres de contrôle spécifiques qui régissent l'intégralité du processus. Les bits de contrôle sont répertoriés comme suit :
URG : Champ de pointeur d'urgence significatif
ACK : Acknowledgement champ significatif
PSH : Fonction de push
RST : Réinitialiser la connexion
SYN : Synchroniser les numéros de séquence
FIN : Plus aucune donnée de l'expéditeur
Il existe deux scénarios où une négociation à trois voies aura lieu :
  • Établir une connexion (un actif ouvert)
  • Interrompre une connexion (une fermeture active)
Les informations d'exemple suivantes ont été obtenues à partir d'une capture du Moniteur réseau. Le Moniteur réseau est un analyseur de protocole peut être obtenu à partir de Microsoft Systems Management Server.

Établissement d'une connexion

La séquence suivante illustre le processus d'une connexion TCP est établie :

Image 1 :

Comme vous le voir dans la première image, le client, NTW3, envoie un segment SYN (TCP.... s.). Il s'agit d'une demande au serveur pour synchroniser les numéros de séquence. Il spécifie son numéro de séquence initiale (ISN), qui est incrémenté de 1, 8221821 + 1 = 8221822 et qui sont envoyées au serveur. Pour initialiser une connexion, le client et le serveur doivent synchroniser des autres souches de numéros. Il existe également une option pour le maximale d'un Segment Size (MSS, maximum segment Size) pour définir, qui est définie par la longueur (len: 4). cette option communique la taille de segment maximale l'expéditeur souhaite recevoir. Le champ accusé de réception (ack: 0) est définie sur zéro, car il s'agit de la première partie de la négociation tridirectionnelle.
1    2.0785 NTW3 --> BDC3 TCP ....S., len: 4, seq: 8221822-8221825, ack: 0,
win: 8192, src: 1037  dst:  139 (NBT Session)  NTW3 -->  BDC3 IP

TCP: ....S., len: 4, seq: 8221822-8221825, ack: 0, win: 8192, src: 1037
dst:  139 (NBT Session)

   TCP: Source Port = 0x040D
   TCP: Destination Port = NETBIOS Session Service
   TCP: Sequence Number = 8221822 (0x7D747E)
   TCP: Acknowledgement Number = 0 (0x0)
   TCP: Data Offset = 24 (0x18)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x02 : ....S.

      TCP: ..0..... = No urgent data
      TCP: ...0.... = Acknowledgement field not significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......1. = Synchronize sequence numbers
      TCP: .......0 = No Fin

   TCP: Window = 8192 (0x2000)
   TCP: Checksum = 0xF213
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Options

         TCP: Option Kind (Maximum Segment Size) = 2 (0x2)
         TCP: Option Length = 4 (0x4)
         TCP: Option Value = 1460 (0x5B4)

   TCP: Frame Padding

00000:  02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00   .`.....`.;....E.
00010:  00 2C 0D 01 40 00 80 06 E1 4B 83 6B 02 D6 83 6B   .,..@....K.k...k
00020:  02 D3 04 0D 00 8B 00 7D 74 7E 00 00 00 00 60 02   .......}t~....`.
00030:  20 00 F2 13 00 00 02 04 05 B4 20 20                .........
				
Frame 2:

Dans la deuxième image, le serveur, BDC3, envoie un accusé de réception et un SYN sur ce segment (TCP. a..S.). en ce segment le serveur est accuser réception de la demande du client pour la synchronisation. En même temps, le serveur envoie également sa demande au client pour la synchronisation de ses numéros de séquence. Il existe une différence majeure dans ce segment. Le serveur transmet un numéro d'accusé de réception (8221823) pour le client. L'accusé de réception est simplement preuve au client l'accusé de réception est spécifique à SYN du client initié. Le processus de confirmation de la demande du client permet au serveur d'incrément de son numéro de séquence et utilise comme son numéro d'accusé de réception.
2   2.0786 BDC3 --> NTW3  TCP .A..S., len: 4, seq: 1109645-1109648, ack:
8221823, win: 8760, src: 139 (NBT Session)  dst: 1037 BDC3 --> NTW3  IP

TCP: .A..S., len:    4, seq:   1109645-1109648, ack:   8221823, win: 8760,
src:  139 (NBT Session)  dst: 1037

   TCP: Source Port = NETBIOS Session Service
   TCP: Destination Port = 0x040D
   TCP: Sequence Number = 1109645 (0x10EE8D)
   TCP: Acknowledgement Number = 8221823 (0x7D747F)
   TCP: Data Offset = 24 (0x18)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x12 : .A..S.

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......1. = Synchronize sequence numbers
      TCP: .......0 = No Fin

   TCP: Window = 8760 (0x2238)
   TCP: Checksum = 0x012D
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Options

         TCP: Option Kind (Maximum Segment Size) = 2 (0x2)
         TCP: Option Length = 4 (0x4)
         TCP: Option Value = 1460 (0x5B4)

   TCP: Frame Padding

00000:  02 60 8C 3B 85 C1 02 60 8C 9E 18 8B 08 00 45 00   .`.;...`......E.
00010:  00 2C 5B 00 40 00 80 06 93 4C 83 6B 02 D3 83 6B   .,[.@....L.k...k
00020:  02 D6 00 8B 04 0D 00 10 EE 8D 00 7D 74 7F 60 12   ...........}t`.
00030:  22 38 01 2D 00 00 02 04 05 B4 20 20               "8.-......
				
Frame 3:

Dans la troisième image, le client envoie un accusé de réception sur ce segment (TCP. a....). Dans ce segment, le client est accuser réception de la demande à partir du serveur pour la synchronisation. Le client utilise le même algorithme, le serveur mis en ?uvre dans fournissant un numéro d'accusé de réception. Accusé de réception du client de la demande du serveur de synchronisation termine le processus d'établissement d'une connexion fiable, par conséquent la négociation à trois voies.
3   2.787 NTW3 --> BDC3  TCP .A...., len: 0, seq: 8221823-8221823, ack:
1109646, win: 8760, src: 1037  dst:  139 (NBT Session)  NTW3 --> BDC3  IP

TCP: .A...., len:    0, seq:   8221823-8221823, ack:   1109646, win: 8760,
src: 1037  dst:  139 (NBT Session)

   TCP: Source Port = 0x040D
   TCP: Destination Port = NETBIOS Session Service
   TCP: Sequence Number = 8221823 (0x7D747F)
   TCP: Acknowledgement Number = 1109646 (0x10EE8E)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x10 : .A....

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......0 = No Fin

   TCP: Window = 8760 (0x2238)
   TCP: Checksum = 0x18EA
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Frame Padding

00000:  02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00   .`.....`.;....E.
00010:  00 28 0E 01 40 00 80 06 E0 4F 83 6B 02 D6 83 6B   .(..@....O.k...k
00020:  02 D3 04 0D 00 8B 00 7D 74 7F 00 10 EE 8E 50 10   .......}t....P.
00030:  22 38 18 EA 00 00 20 20 20 20 20 20               "8....
				

Termine une connexion

Bien que la négociation à trois voies nécessite uniquement trois paquets d'être transmises sur notre serveur de contenus, la cessation de cette connexion fiable nécessitera la transmission des paquets de quatre. Dans la mesure où une connexion TCP est duplex intégral (c'est-à-dire, données peuvent être circulant dans chaque direction indépendant de l'autre), chaque direction doit se terminer indépendamment.

Image 4 :

Dans cette session d'images, vous voir le client envoie un FIN est accompagné d'un ACK (TCP. A...F). Ce segment a deux fonctions de base. Tout d'abord, lorsque le paramètre FIN est défini, elle en informe le serveur que ne contient aucuns plus de données à envoyer. Deuxièmement, l'accusé de réception est essentiel dans l'identification de connexion spécifique qu'ils ont établies.
4   16.0279 NTW3 --> BDC3 TCP .A...F, len: 0, seq: 8221823-8221823,
ack:3462835714, win: 8760, src: 2337  dst: 139 (NBT Session)  NTW3 --> BDC3
IP

TCP: .A...F, len:   0, seq: 8221823-8221823, ack:  1109646, win: 8760, src:
1037  dst:  139 (NBT Session)

   TCP: Source Port = 0x040D
   TCP: Destination Port = NETBIOS Session Service
   TCP: Sequence Number = 8221823 (0x7D747F)
   TCP: Acknowledgement Number = 1109646 (0x10EE8E)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x11 : .A...F

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......1 = No more data from sender

   TCP: Window = 8760 (0x2238)
   TCP: Checksum = 0x236C
   TCP: Urgent Pointer = 0 (0x0)

00000:  00 20 AF 47 93 58 00 A0 C9 22 F5 39 08 00 45 00   . .G.X...".9..E.
00010:  00 28 9B F5 40 00 80 06 21 4A C0 5E DE 7B C0 5E   .(..@...!J.^.{.^
00020:  DE 57 09 21 05 48 0B 20 96 AC CE 66 AE 02 50 11   .W.!.H. ...f..P.
00030:  22 38 23 6C 00 00                                 "8#l..
				
Frame 5:

Dans ce cadre, vous ne voyez pas rien de spécial à l'exception pour le serveur accuser réception de FIN qui a été transmis à partir du client.
5    16.0281 BDC3 --> NTW3 TCP .A...., len:    0, seq: 1109646-1109646,
ack: 8221824, win:28672, src: 139  dst: 2337 (NBT Session) BDC3 -->  NTW3
IP

TCP: .A...., len:    0, seq: 1109646-1109646, ack: 8221824, win:28672, src:
139  dst: 2337 (NBT Session)

   TCP: Source Port = 0x040D
   TCP: Destination Port = NETBIOS Session Service
   TCP: Sequence Number = 1109646 (0x10EE8E)
   TCP: Acknowledgement Number = 8221824 (0x7D7480)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x10 : .A....

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......0 = No Fin

   TCP: Window = 28672 (0x7000)
   TCP: Checksum = 0xD5A3
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Frame Padding

00000:  00 A0 C9 22 F5 39 08 00 02 03 BA 84 08 00 45 00   ...".9........E.
00010:  00 28 D2 82 00 00 3F 06 6B BD C0 5E DE 57 C0 5E   .(....?.k..^.W.^
00020:  DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 10   .{.H.!.f... ..P.
00030:  70 00 D5 A3 00 00 90 00 01 00 86 00               p...........
				
Frame 6:

Après avoir reçu la FIN de l'ordinateur client, le serveur va accusé de réception. Bien que TCP a établi des connexions entre les deux ordinateurs, les connexions sont toujours indépendantes les unes des autres. Par conséquent, le serveur doit également transmettre un FIN (TCP. A...F) au client.
6   17.0085 BDC3 --> NTW3 TCP .A...F, len: 0, seq: 1109646-1109646, ack:
8221824, win:28672, src: 139 dst: 2337 (NBT Session) BDC3 -->  NTW3   IP

TCP: .A...F, len:  0, seq: 1109646-1109646, ack: 8221824, win:28672, src:
139  dst: 2337 (NBT Session)

   TCP: Source Port = 0x0548
   TCP: Destination Port = 0x0921
   TCP: Sequence Number = 1109646 (0x10EE8E)
   TCP: Acknowledgement Number = 8221824 (0x7D7480)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x11 : .A...F

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......1 = No more data from sender

   TCP: Window = 28672 (0x7000)
   TCP: Checksum = 0xD5A2
   TCP: Urgent Pointer = 0 (0x0)
   TCP: Frame Padding

00000:  00 A0 C9 22 F5 39 08 00 02 03 BA 84 08 00 45 00   ...".9........E.
00010:  00 28 D2 94 00 00 3F 06 6B AB C0 5E DE 57 C0 5E   .(....?.k..^.W.^
00020:  DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 11   .{.H.!.f... ..P.
00030:  70 00 D5 A2 00 00 02 04 05 B4 86 00               p...........
				
Frame 7:

Le client répond dans le même format que le serveur, par ACKing FIN du serveur et en l'incrémentant le numéro de séquence par 1.
7   17.0085 NTW3 --> BDC3 TCP .A...., len: 0, seq: 8221824-8221824, ack:
1109647, win: 8760, src: 2337  dst: 139 (NBT Session) NTW3 --> BDC3 IP

TCP: .A...., len:    0, seq: 8221824-8221824, ack: 1109647, win: 8760, src:
2337  dst: 139   (NBT Session)

   TCP: Source Port = 0x0921
   TCP: Destination Port = 0x0548
   TCP: Sequence Number = 8221824 (0x7D7480)
   TCP: Acknowledgement Number = 1109647 (0x10EE8F)
   TCP: Data Offset = 20 (0x14)
   TCP: Reserved = 0 (0x0000)
   TCP: Flags = 0x10 : .A....

      TCP: ..0..... = No urgent data
      TCP: ...1.... = Acknowledgement field significant
      TCP: ....0... = No Push function
      TCP: .....0.. = No Reset
      TCP: ......0. = No Synchronize
      TCP: .......0 = No Fin

   TCP: Window = 8760 (0x2238)
   TCP: Checksum = 0x236B
   TCP: Urgent Pointer = 0 (0x0)

00000:  00 20 AF 47 93 58 00 A0 C9 22 F5 39 08 00 45 00   . .G.X...".9..E.
00010:  00 28 BA F5 40 00 80 06 02 4A C0 5E DE 7B C0 5E   .(..@....J.^.{.^
00020:  DE 57 09 21 05 48 0B 20 96 AD CE 66 AE 03 50 10   .W.!.H. ...f..P.
00030:  22 38 23 6B 00 00                                 "8#k..
				
Client ACKing la notification de FIN à partir du serveur identifie un gros progressif d'une connexion TCP.

Références

Pour plus d'informations sur ICMP :
Consultez l'article suivant dans la base de connaissances Microsoft :
170292Concepts de base Internet Control Message Protocol (ICMP)
- ou -
Obtenir les RFC 793.
RFC peuvent être obtenues par le biais d'Internet comme suit :

Papier de l'ensemble des RFC est disponibles à partir de la carte réseau, individuellement ou sur une base d'abonnement (pour plus d'informations contact NIC@NIC.DDN.MIL). Copies en ligne sont disponibles via FTP ou Kermit de NIC.ddn.mil comme rfc/rfc #### .txt ou rfc/rfc #### .PS (#### est le numéro RFC sans zéros non significatifs).

Propriétés

Numéro d'article: 172983 - Dernière mise à jour: vendredi 12 février 2010 - Version: 4.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
  • Windows Server 2008 for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Édition familiale
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows XP Media Center Edition 2005 Update Rollup 2
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professionnel
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Server
  • Windows Vista Professionnel
  • Windows Vista Professionnel 64 bits
  • Windows Vista Entreprise
  • Windows Vista Entreprise 64 bits
  • Windows Vista Édition Familiale Basique
  • Windows Vista Édition Familiale Basique 64 bits
  • Windows Vista Édition Familiale Premium
  • Windows Vista Édition Familiale Premium 64 bits
  • Windows Vista Édition Intégrale
  • Windows Server 2008 Foundation
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Standard
  • Windows Web Server 2008 R2
  • Windows 7 Entreprise
  • Windows 7 Édition Familiale Basique
  • Windows 7 Édition Familiale Premium
  • Windows 7 Professionnel
  • Windows 7 Édition Integrale
Mots-clés : 
kbmt kbinfo kbnetwork KB172983 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 172983
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com