Compartilhar via


Elemento <soquete> (configurações de rede)

Especifica se as operações de soquete usam portas de conclusão.

<configuration>
  <system.net>
    <configurações>
      <socket>

Syntax

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

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
alwaysUseCompletionPortsForAccept Indica se o soquete deve sempre usar portas de conclusão para chamadas de método accept. O valor padrão é false.
alwaysUseCompletionPortsForConnect Indica se o soquete deve sempre usar portas de conclusão para chamadas de método connect. O valor padrão é false.
ipProtectionLevel Especifica o padrão System.Net.Sockets.IPProtectionLevel a ser usado para um soquete. O valor padrão depende da versão do Windows.

Elementos filho

Nenhum.

Elementos pai

Element Descrição
configurações Configura as opções de rede básicaspara o namespace System.Net.

Comentários

Os atributos alwaysUseCompletionPortsForAccept e alwaysUseCompletionPortsForConnect são usados para especificar o comportamento padrão em relação ao uso de portas de conclusão pelas classes no System.Net.Sockets.namespace. As portas de conclusão são recomendadas para aplicativos de servidor de alto desempenho.

O valor padrão para os atributos alwaysUseCompletionPortsForAccept e alwaysUseCompletionPortsForConnect é false.

O AlwaysUseCompletionPortsForAccept pode ser usado para obter o valor atual do atributo alwaysUseCompletionPortsForAccept dos arquivos de configuração aplicáveis. O AlwaysUseCompletionPortsForConnect pode ser usado para obter o valor atual do atributo alwaysUseCompletionPortsForConnect dos arquivos de configuração aplicáveis.

O atributo ipProtectionLevel especifica o padrão System.Net.Sockets.IPProtectionLevel a ser usado para um soquete. A propriedade IPProtectionLevel permite a configuração de uma restrição para um soquete IPv6 a um escopo especificado, tal como endereços com o mesmo prefixo link-local ou site-local. Essa opção permite que os aplicativos estabeleçam restrições de acesso em soquetes IPv6. Essas restrições permitem que um aplicativo em execução em uma LAN privada proteja-se de modo simples e robusto contra ataques externos. Essa opção amplia ou reduz o escopo de um soquete de escuta, permitindo acesso irrestrito de usuários públicos e privados, quando apropriado, ou restringindo o acesso somente ao mesmo site, conforme necessário.

Essa configuração de atributo ipProtectionLevel afeta apenas o tráfego inicial de entrada:

  • Um servidor TCP escutando conexões de entrada em um soquete.

  • Um aplicativo UDP que recebe um pacote em um soquete.

Essa configuração não afeta conexões TCP já estabelecidas (o tráfego é irrestrito em ambas as direções) e não afeta um aplicativo que envia pacotes UDP.

Os valores possíveis para a configuração de atributo ipProtectionLevel correspondem aos níveis de proteção definidos especificados na enumeração System.Net.Sockets.IPProtectionLevel da seguinte maneira:

Valor do atributo Descrição
EdgeRestricted O nível de proteção de IP tem restrição de borda. Esse valor seria usado por aplicativos projetados para operar pela Internet. Essa configuração não permite a passagem de NAT (conversão de endereços de rede) usando a implementação do Windows Teredo. Esses aplicativos podem ignorar firewalls IPv4, de modo que os aplicativos devem ser protegidos contra ataques de Internet direcionados à porta aberta. No Windows Server 2003 e Windows XP, o valor padrão para o nível de proteção de IP em um soquete tem restrição de borda.
Restritos O nível de proteção de IP é restrito. Esse valor será usado por aplicativos de intranet que não implementam cenários de Internet. Esses aplicativos geralmente não são testados nem protegidos contra ataques do estilo usado na Internet. Essa configuração limitará o tráfego recebido para apenas link-local.
Irrestrito O nível de proteção de IP é irrestrito. Esse valor seria usado por aplicativos projetados para operar com a Internet, incluindo os aplicativos que aproveitam os recursos de passagem NAT IPv6 internos no Windows (Teredo, por exemplo). Esses aplicativos podem ignorar firewalls IPv4, de modo que os aplicativos devem ser protegidos contra ataques de Internet direcionados à porta aberta. No Windows Server 2008 R2 e Windows Vista, o valor padrão para o nível de proteção de IP em um soquete é irrestrito.
Não Especificado O nível de proteção de IP não é especificado. No Windows 7 e Windows Server 2008 R2, o valor padrão para o nível de proteção de IP em um soquete é não especificado.

O valor padrão do atributo ipProtectionLevel é Não especificado.

A propriedade IPProtectionLevel pode ser usada para obter o valor atual do atributo ipProtectionLevel dos arquivos de configuração aplicáveis.

Arquivos de configuração

Esse elemento pode ser usado no arquivo de configuração do aplicativo ou no arquivo de configuração do computador (Machine.config).

Exemplo

O exemplo a seguir mostra como especificar que as portas de conclusão devem ser usadas e que o padrão System.Net.Sockets.IPProtectionLevel deve ser irrestrito.

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

Confira também