INFO : Performance des connexions TCP Winsock pour les Ports inutilisés

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

Résumé

Cet article explique comment la mise en oeuvre de Winsock de TCP sur les différents Les connexions aux ports qui n'ont pas de socket de poignées de plates-formes Microsoft un serveur qui écoute les. Il décrit également les performances liées Considérations et comment les ajuster en fonction de vos besoins.

Plus d'informations

Lorsqu'un processus crée un socket TCP dans la couche Winsock de Microsoft et émet un appel de fonction connect() pour certaines ordinateur hôte et numéro de port, le protocole TCP effectue ses standard « négociation tridirectionnelle » d'un paquet SYN, accusé de réception par l'ordinateur hôte de la cible avec accusé de réception/SYN et un accusé de réception final à partir de la mise en ?uvre client. Toutefois, conformément aux spécifications de TCP indiquées dans la RFC 793 de Transmission ( Protocole de contrôle), une réinitialisation (RST) peut être générée si la tentative SYN adressé à un ordinateur hôte qui existe, mais le port n'est pas utilisé. C'est mieux décrit par la citation suivante de la RFC à partir de la page 35 :
Génération de réinitialisation

En règle générale, la réinitialisation (RST) doit être envoyée chaque fois qu'arrive un segment qui est apparemment pas prévues pour la connexion courante. Une réinitialisation doivent pas être envoyés si elle n'est pas clair que c'est le cas...

Si la connexion n'existe pas (fermé) est alors envoyées une réinitialisation en réponse à n'importe quel segment entrante à l'exception d'une autre réinitialisation. En particulier SYNs adressées à une connexion inexistants sont rejetés par ce moyen.

Réinitialiser le traitement [page 36]

... Dans l'état SYN-SENT (un RST reçu en réponse un SYN initial), le RST est acceptable si le champ accusé de réception reconnaît les SYN.
Lors de la réception du client ACK/RST à partir de l'ordinateur hôte de la cible, le client détermine qu'il n'y a en effet aucun service n'écoute il. Dans la Implémentation de Microsoft Winsock de TCP, conservera une connexion en attente tentative d'émettre des paquets SYN jusqu'à ce qu'une valeur nombre maximum de tentatives est atteint (jeu dans le Registre, cette valeur par défaut est 3 fois supplémentaires). Depuis un ACK/RST. a été reçue à partir de l'ordinateur hôte de la cible, la couche TCP sait que l'ordinateur hôte cible en effet accessible et ne pas doubler la valeur de délai d'attente dans le paquet En-tête IP, selon la norme pendant les tentatives de connexion avec accusé de réception SYNs. Au lieu de cela, la connexion en attente attend la connexion de base délai d'attente de valeur et d'émettre un autre paquet SYN à établir une connexion. En tant que durée pendant laquelle un paquet ACK/RST à partir d'un port inutilisé est reçu, le délai d'attente valeur n'augmentera pas et le processus est répété jusqu'à ce que le nombre maximum de tentatives valeur est atteinte.

Ce comportement peut entraîner une dégradation des performances si pour une raison quelconque un processus à plusieurs reprises émet des appels de fonction connect() ports avec Aucune écoute ce qui entraîne l'erreur WSAECONNREFUSED. Notez que les autres implémentations de TCP, tels que ceux généralement disponibles dans de nombreux systèmes UNIX, la fonction connect() échoue immédiatement à la réception de la première ACK/RST paquet, ce qui entraîne la prise de conscience d'une erreur très rapidement. Toutefois, cela comportement n'est pas spécifié dans les RFC et est laissé à chaque implémentation de décider. L'approche des plates-formes de Microsoft qui est le système administrateur a la liberté de régler les paramètres de performance des TCP à leurs goûts, à savoir la valeur maximale réessayer proposé par 3. Le avantage de ceci est peut-être le service que vous essayez d'atteindre temporairement arrêté et peut être resurface entre les tentatives SYN. Dans ce cas, il convient que la fonction connect() attendu assez longtemps pour obtenir un connexion depuis que le service était vraiment là.

Il contient la liste complète des valeurs de Registre NT TCP. Du particulier les intérêts sont la clé :
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Clé : TcpMaxConnectRetransmissions
Type de valeur : REG_DWORD - Nombre
La plage valide: 0 - 0xFFFFFFFF
Par défaut: 3 (dans Windows NT)
Par défaut: 2 (dans Windows 2000)
Description : Ce paramètre détermine le nombre de fois où que TCP sera retransmettre une requête de connexion (SYN) avant l'abandon de la tentative. Le délai de retransmission est doublé avec chaque retransmission successive d'une tentative de connexion donnée (sauf dans la situation décrite ci-dessus). L'initiale valeur de délai est de trois secondes (depuis un ACK/RST. reçu dans le cas ci-dessus, c'est sans importance).
Pour plus d'informations sur les entrées de Registre de Windows 95 TCP, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
158474 Entrées de Registre TCP/IP de Windows 95
La clé suivante est présente un intérêt particulier :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP

Clé : MaxConnectRetries
Type de valeur : DWORD - nombre 32 bits
Par défaut: 3
Description : Spécifie le nombre de fois où une tentative de connexion (SYN) sont retransmis avant d'abandonner. L'initiale délai de retransmission est de 3 secondes (inutiles dans le cas ci-dessus), et elle est doublée chaque fois (le cas ci-dessus est une exception) avec un maximum de 2 minutes.
Redémarrez votre ordinateur après avoir ajusté les valeurs de Registre.

AVERTISSEMENT: Modification de ces valeurs affecte les demandes de connexion sortantes TCP toutes à partir de l'ordinateur affecté. Si toutes les activités TCP sur l'ordinateur a peu de temps de latence et peu de distance pour le voyage aller-retour, cela en réduisant à faible comme zéro (bien que Microsoft ne recommande pas cette) ne fera aucune différence. Toutefois, si les applications ou les tentatives de connexion échouent régulièrement avec les erreurs Winsock standard et les serveurs distants cible sont connus pour être disponible, il est probable que ces entrées de Registre sont la cause. Dans ce cas, il se peut que vous deviez augmenter la valeur maximale tentatives de sorte que TCP sera double le valeur de durée de vie du paquet SYN dans son en-tête IP à des tentatives successives jusqu'à ce qu'il a une assez longue durée de vie pour atteindre l'ordinateur hôte cible et de recevoir un accusé de réception/SYN.

Références

RFC-793, Transmission Control Protocol, septembre 1981

Livre blanc, Microsoft Windows NT: TCP/IP Implementation Details 1996 Base de connaissances 158474

Propriétés

Numéro d'article: 175523 - Dernière mise à jour: jeudi 26 mai 2011 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Win32 Application Programming Interface
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 Service Pack 2 sur le système suivant
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
  • Windows Vista Service Pack 2 sur le système suivant
    • Windows Vista Professionnel
    • Windows Vista Entreprise
    • Windows Vista Édition Familiale Basique
    • Windows Vista Édition Familiale Premium
    • Windows Vista Starter
    • Windows Vista Édition Intégrale
    • Windows Vista Entreprise 64 bits
    • Windows Vista Édition Familiale Basique 64 bits
    • Windows Vista Édition Familiale Premium 64 bits
    • Windows Vista Édition Intégrale 64 bits
    • Windows Vista Professionnel 64 bits
  • Windows Vista Service Pack 1 sur le système suivant
    • Windows Vista Professionnel
    • Windows Vista Entreprise
    • Windows Vista Édition Familiale Basique
    • Windows Vista Édition Familiale Premium
    • Windows Vista Starter
    • Windows Vista Édition Intégrale
    • Windows Vista Entreprise 64 bits
    • Windows Vista Édition Familiale Basique 64 bits
    • Windows Vista Édition Familiale Premium 64 bits
    • Windows Vista Édition Intégrale 64 bits
    • Windows Vista Professionnel 64 bits
  • Microsoft Windows Server 2003 Service Pack 2 sur le système suivant
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows XP Service Pack 3 sur le système suivant
    • Microsoft Windows XP Édition familiale
    • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Service Pack 4
  • Microsoft Windows 98 Standard Edition
Mots-clés : 
kbapi kbinfo kbnetwork kbwinsock kbmt KB175523 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: 175523
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