<Элемент socket> (параметры сети)

Указывает, используют ли операции сокета порты завершения.

<Конфигурации>
  <system.net>
    <Параметры>
      <Сокета>

Синтаксис

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

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Attribute Описание
alwaysUseCompletionPortsForAccept Указывает, должен ли сокет всегда использовать порты завершения для вызовов метода Accept. Значение по умолчанию — false.
alwaysUseCompletionPortsForConnect Указывает, должен ли сокет всегда использовать порты завершения для вызовов метода Connect. Значение по умолчанию — false.
ipProtectionLevel Указывает значение по умолчанию System.Net.Sockets.IPProtectionLevel , используемое для сокета. Значение по умолчанию зависит от версии Windows.

Дочерние элементы

Отсутствует.

Родительские элементы

Элемент Описание
параметры Настраивает основные параметры сети для пространства имен System.Net.

Комментарии

Атрибуты alwaysUseCompletionPortsForAccept и alwaysUseCompletionPortsForConnect используются для задания поведения по умолчанию в отношении использования портов завершения классами в пространстве имен System.Net.Sockets. Порты завершения рекомендуется использовать для высокопроизводительных серверных приложений.

Значение по умолчанию для атрибутов alwaysUseCompletionPortsForAccept и alwaysUseCompletionPortsForConnectfalse.

Можно AlwaysUseCompletionPortsForAccept использовать для получения текущего значения атрибута alwaysUseCompletionPortsForAccept из применимых файлов конфигурации. Можно AlwaysUseCompletionPortsForConnect использовать для получения текущего значения атрибута alwaysUseCompletionPortsForConnect из применимых файлов конфигурации.

Атрибут ipProtectionLevel указывает значение по умолчанию System.Net.Sockets.IPProtectionLevel , используемое для сокета. Свойство IPProtectionLevel позволяет настроить ограничение для сокета IPv6 для указанного область, например адресов с тем же локальным префиксом ссылки или локального сайта. Этот параметр позволяет приложениям накладывать ограничения доступа к сокетам IPv6. Такие ограничения позволяют приложению, работающему в частной локальной сети, просто и надежно защититься от внешних атак. Этот параметр расширяет или сужает область прослушивающего сокета, обеспечивая неограниченный доступ для общедоступных и частных пользователей при необходимости или ограничивая доступ только к одному и тому же сайту, если это необходимо.

Этот ipProtectionLevel параметр атрибута влияет только на начальный входящий трафик:

  • TCP-сервер, прослушивающий входящие подключения в сокете.

  • Приложение UDP, получающее пакет в сокете.

Этот параметр конфигурации не влияет на уже установленные TCP-подключения (трафик не ограничено в обоих направлениях) и не влияет на приложение, отправляющее UDP-пакеты.

Возможные значения для параметра атрибута ipProtectionLevel соответствуют заданным уровням защиты, указанным в перечислении System.Net.Sockets.IPProtectionLevel следующим образом:

Значение атрибута Описание
EdgeRestricted Уровень защиты IP — предельно ограничено. Это значение используется приложениями, разработанными для работы в Интернете. Этот параметр не позволяет обойти механизм преобразования сетевых адресов (NAT) с помощью реализации Windows Teredo. Эти приложения могут обходить брандмауэры протокола IPv4, поэтому они должны быть защищены от атак из Интернета, направленных на открытый порт. В Windows Server 2003 и Windows XP значение по умолчанию для уровня защиты IP сокета — предельно ограничено.
С ограниченным доступом Уровень защиты IP — ограничено. Это значение используется приложениями интрасети, не работающих в Интернете. Эти приложения обычно не тестируются и не защищаются против атак из Интернета. Этот параметр ограничивает получаемый трафик локальным.
С неограниченным доступом Уровень защиты IP — неограниченно. Это значение используется приложениями, разработанными для работы в Интернете, включая приложения, использующие возможности обхода IPv6 NAT, включенные в Windows (например, Teredo). Эти приложения могут обходить брандмауэры протокола IPv4, поэтому они должны быть защищены от атак из Интернета, направленных на открытый порт. В Windows Server 2008 R2 и Windows Vista значение по умолчанию для уровня защиты IP сокета — неограниченно.
Не указан Уровень защиты IP — не указано. В Windows 7 и Windows Server 2008 R2 и значение по умолчанию для уровня защиты IP сокета — не указано.

Значение по умолчанию для атрибута ipProtectionLevelUnspecified.

Свойство IPProtectionLevel можно использовать для получения текущего значения атрибута ipProtectionLevel из применимых файлов конфигурации.

Файлы конфигурации

Этот элемент может использоваться в файле конфигурации приложения или в файле конфигурации компьютера (Machine.config).

Пример

В следующем примере показано, как указать, что следует использовать порты завершения и что значение по умолчанию System.Net.Sockets.IPProtectionLevel должно быть неограниченным.

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

См. также раздел