PRB: "WSAEADDRESSINUSE" erreur message lors de la connexion via un port anonyme après que vous augmentez la limite de connexion IMAP

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

Symptômes

Lorsque vous augmentez la limite de connexion IMAP et que vous puis essayez de vous connecter au serveur IMAP à partir d'un service de messagerie Microsoft TV est configuré avec un paramètre MailboxCacheTTL très faible, vous recevez le message d'erreur "WSAEADDRESSINUSE" (code d'erreur : 10048).

Cause

Ce comportement est dû à une combinaison des opérations suivantes :
  • Par défaut, Windows 2000 dispose d'un espace limité pour les ports anonymes. Cet espace est plus limité par la faible MailboxCacheTTL est configuré pour le service de messagerie Microsoft TV. (Ports anonymes sont temporaires ports qui sont affectés par la pile IP de l'ordinateur ; ports anonymes sont affectées à partir d'une plage de ports déterminée. Seuls ports 1024-5000 sont utilisés dans Windows 2000.)
  • L'option SO_REUSEADDR sur les sockets n'est pas activée, les sockets ne peut pas être réutilisés immédiatement après la fermeture. Les sockets doivent rester réservés dans un état TIME_WAIT pendant quatre minutes. Si vous définissez l'option SO_REUSEADDR, Windows permet à plusieurs liaisons au socket d'écoute.
La plage de ports anonyme (port éphémère) limite le nombre maximal de connexions d'un ordinateur à un service spécifique sur un ordinateur distant. Le protocole TCP/IP utilise 4-tuple de la connexion (adresse IP du serveur, port du serveur, client IP et port du client) pour faire la distinction entre les connexions ; si la plage de port anonyme est uniquement 4000 ports large (environ), il peut y avoir uniquement 4000 uniques connexions à partir d'un ordinateur client à un service distant en même temps.

À la fin de la connexion, le port éphémère est disponible pour la réutilisation, bien que la plupart des piles IP ne réutilisez pas ce numéro de port jusqu'à ce que le pool entier de ports éphémères a été utilisé. Par conséquent, si le programme client se reconnecte, le client est attribué un numéro de port éphémère différent pour le côté client de la nouvelle connexion. Dans le cas du service de messagerie Microsoft TV, un paramètre MailboxCacheTTL très faible contrarie la situation car IMAP connexions fermer et rouvrir fréquemment (sur presque toutes les requêtes).

Une plage de ports de 4000 peut sembler importante, mais il est faible pour les demandes informatiques actuelles lorsque vous considérez qu'une connexion TCP doit faire expirer par le biais de l'état TIME_WAIT avant qu'elle est réellement terminée. Par exemple, même si les deux côtés d'une connexion ferment correctement leurs extrémités de la connexion de contrôle d'erreur de TCP, chaque côté doit attendre l'état TIME_WAIT a expiré avant que les ressources de la connexion peuvent réellement être supprimées.

L'état TIME_WAIT est deux fois la durée de segment maximale vie (MSL). (Pour cette raison, l'état TIME_WAIT est également appelé l'état 2MSL.) En règle générale, en fonction de la pile IP, l'état TIME_WAIT est configuré pour être total de 240 secondes. Par conséquent, vous pouvez avoir uniquement 4 000 connexions par seconde 240 fenêtre et, dans la pratique, ces 4000 connexions peuvent être utilisées.

Résolution

Pour éviter ce problème, effectuez l'une des opérations suivantes :
  • Augmentez la plage de ports utilisée pour les ports anonymes environ 20 000 ports (par exemple) en modifiant la clé de Registre MaxUserPort. Windows utilise la plage BSD conventionnelle entre 1024 et 5000 pour sa gamme de port (éphémère) anonyme. Vous pouvez définir uniquement la limite supérieure de la plage de ports éphémères. Pour modifier la clé de Registre MaxUserPort, procédez comme suit :

    1. Démarrez l'Éditeur du Registre (Regedt32.exe).
    2. Recherchez la clé de MaxUserPort dans le Registre :

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3. Dans le menu Edition, cliquez sur Ajouter une valeur et ajoutez la valeur de Registre suivante :

      Nom de la valeur : MaxUserPort
      Type de données : REG_DWORD
      Valeur : 65 534 (par exemple)
      Plage valide : 5000-65534 (décimal)
      Par défaut : 0x1388 (décimal 5000)
    4. Quittez l'Éditeur du Registre.
    Description : ce paramètre contrôle le nombre de port maximal utilisé lors d'une application demande un port utilisateur disponible à partir du système. En règle générale, éphémère (c'est-à-dire, courtes) ports sont alloués entre les valeurs 1024 et 5000 inclus.

    - ou -
  • Modifier le délai d'attente sur les connexions de 240 secondes (valeur par défaut) à n'importe quelle longueur de 30 secondes à 300 secondes. Utilisez le paramètre de Registre TcpTimedWaitDelay pour modifier cette valeur. Pour ce faire, démarrez l'Éditeur du Registre (Regedt32.exe), recherchez la clé suivante dans le Registre et puis modifiez la valeur :

    HKEY_LOCAL_MACHINE\System\CurrectControlSet\services\Tcpip\Parameters

    TcpTimedWaitDelay

    Clé : Tcpip\Parameters
    Type de valeur : REG_DWORD-temps en secondes
    Plage valide : 30-300 (décimal)
    Par défaut : 0xF0 (240 décimal)

    Description
    : ce paramètre détermine le temps une connexion reste dans l'état TIME_WAIT lors de fermeture de la connexion. Lorsqu'une connexion se trouve dans l'état TIME_WAIT, la paire de sockets ne peut pas être réutilisée. Pour plus d'informations, consultez RFC 793.
Remarque : ce problème doit être établie pire si le paramètre MailboxCacheTTL est très faible. Si le problème persiste après avoir apporté les modifications de Registre décrites précédemment, augmentez la durée de vie de boîte aux lettres en modifiant le paramètre MailboxCacheTTL dans le fichier SiteConfig.cfg (fichier de configuration pour l'installation de Microsoft Server).

Plus d'informations

Pour plus d'informations sur l'augmentation de la plage de port anonyme par défaut, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la base de connaissances Microsoft :
196271Impossible de connecter à partir des ports TCP au-delà de 5000
149532Exécuter des Clients Windows NT de ports

Propriétés

Numéro d'article: 319502 - Dernière mise à jour: mercredi 18 juin 2003 - Version: 1.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft TV Server 2.0 Service Pack 1
Mots-clés : 
kbmt kbprb KB319502 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: 319502
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