Élément <socket> (paramètres réseau)

Précise si les opérations de socket utilisent des ports de terminaison.

<configuration>
  <system.net>
    <settings>
      <socket>

Syntaxe

<socket  
  alwaysUseCompletionPortsForConnect="true|false"  
  alwaysUseCompletionPortsForAccept="true|false"  
  ipProtectionLevel="EdgeRestricted|Restricted|Unrestricted|Unspecified"  
/>  

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
alwaysUseCompletionPortsForAccept Indique si le socket doit toujours utiliser des ports de terminaison pour les appels de méthode Accept. La valeur par défaut est false.
alwaysUseCompletionPortsForConnect Indique si le socket doit toujours utiliser des ports de terminaison pour les appels de méthode Connect. La valeur par défaut est false.
ipProtectionLevel Spécifie le System.Net.Sockets.IPProtectionLevel par défaut à utiliser pour un socket. La valeur par défaut dépend de la version de Windows.

Éléments enfants

Aucune.

Éléments parents

Element Description
settings Configure les options réseau de base pour l’espace de noms System.Net.

Notes

Les attributs alwaysUseCompletionPortsForAccept et alwaysUseCompletionPortsForConnect permettent de spécifier le comportement par défaut pour ce qui est de l’utilisation de ports de terminaison par les classes de l’espace de noms System.Net.Sockets. Les ports de terminaison sont recommandés pour les applications serveur haute performance.

La valeur par défaut des attributs alwaysUseCompletionPortsForAccept et alwaysUseCompletionPortsForConnect est false.

La propriété AlwaysUseCompletionPortsForAccept peut être utilisée pour obtenir la valeur actuelle de l’attribut alwaysUseCompletionPortsForAccept à partir des fichiers de configuration applicables. La propriété AlwaysUseCompletionPortsForConnect peut être utilisée pour obtenir la valeur actuelle de l’attribut alwaysUseCompletionPortsForConnect à partir des fichiers de configuration applicables.

L’attribut ipProtectionLevel spécifie le System.Net.Sockets.IPProtectionLevel par défaut à utiliser pour un socket. La propriété IPProtectionLevel permet la configuration d’une restriction pour un socket IPv6 selon une étendue spécifiée, comme des adresses utilisant le même préfixe local de lien ou de site. Cette option permet aux applications de placer des restrictions d’accès sur les sockets IPv6. Ces restrictions permettent à une application qui s'exécute sur un réseau local privé de se renforcer facilement et efficacement contre les attaques externes. Cette option élargit ou limite l’étendue d’un socket en écoute, permettant un accès illimité des utilisateurs publics et privés le cas échéant ou limitant éventuellement l’accès à un même site.

Ce paramètre d’attribut ipProtectionLevel affecte uniquement le trafic entrant initial :

  • Un serveur TCP écoutant les connexions entrantes sur un socket.

  • Une application UDP recevant un paquet sur un socket.

Ce paramètre de configuration n’affecte pas les connexions TCP déjà établies (le trafic est illimité dans les deux sens) et n’affecte pas l’envoi de paquets UDP par une application.

Les valeurs possibles du paramètre d’attribut ipProtectionLevel correspondent aux niveaux de protection définis dans l’énumération System.Net.Sockets.IPProtectionLevel comme suit :

Valeur d'attribut Description
EdgeRestricted Le niveau de protection IP est limité à un périmètre donné. Cette valeur peut être utilisée par les applications conçues pour fonctionner sur Internet. Ce paramètre n'autorise pas la traversée du traducteur d'adresses réseau (NAT) à l'aide de l'implémentation de Windows Teredo. Ces applications peuvent contourner les pare-feux IPv4 ; elles doivent donc être renforcées contre les attaques Internet dirigées sur le port ouvert. Sous Windows Server 2003 et Windows XP, la valeur par défaut pour le niveau de protection IP sur un socket est Périmètre limité.
Limitées Le niveau de protection IP est limité. Cette valeur peut être utilisée par les applications intranet qui n'implémentent pas de scénarios Internet. Ces applications ne sont généralement pas testées ou renforcées contre les attaques Internet. Ce paramètre limitera uniquement le trafic reçu aux liens locaux.
Non restreint Le niveau de protection IP est illimité. Cette valeur peut être utilisée par les applications conçues pour fonctionner sur Internet, notamment les applications qui tirent parti des fonctions de traversée NAT IPv6 intégrées à Windows (Teredo, par exemple). Ces applications peuvent contourner les pare-feux IPv4 ; elles doivent donc être renforcées contre les attaques Internet dirigées sur le port ouvert. Sous Windows Server 2008 R2 et Windows Vista, la valeur par défaut pour le niveau de protection IP sur un socket est illimitée.
Non spécifié Le niveau de protection IP n'est pas spécifié. Sous Windows 7 et Windows Server 2008 R2, la valeur par défaut pour le niveau de protection IP sur un socket n'est pas spécifiée.

Par défaut, la valeur de l’attribut ipProtectionLevel est Unspecified.

La propriété IPProtectionLevel peut être utilisée pour obtenir la valeur actuelle de l’attribut ipProtectionLevel à partir des fichiers de configuration applicables.

Fichiers de configuration

Cet élément peut être défini dans le fichier de configuration de l'application ou dans le fichier de configuration de l'ordinateur (Machine.config).

Exemple

L’exemple suivant montre comment préciser que les ports de terminaison doivent être utilisés et que le System.Net.Sockets.IPProtectionLevel par défaut doit être unrestricted.

<configuration>  
  <system.net>  
    <settings>  
      <socket  
        alwaysUseCompletionPortsForAccept="true"  
        alwaysUseCompletionPortsForConnect="true"  
        ipProtectionLevel="Unrestricted"  
       />  
    </settings>  
  </system.net>  
</configuration>  

Voir aussi