다음을 통해 공유


<socket> 요소(네트워크 설정)

소켓 작업에서 완료 포트를 사용할지 여부를 지정합니다.

<구성>
   <system.net>
     <설정>
       <소켓>

문법

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

특성 및 요소

다음의 섹션은 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

Attributes

속성 설명
alwaysUseCompletionPortsForAccept 소켓이 Accept 메서드 호출에 항상 완료 포트를 사용해야 하는지 여부를 나타냅니다. 기본값은 false입니다.
alwaysUseCompletionPortsForConnect 소켓이 항상 Connect 메서드 호출에 완료 포트를 사용해야 하는지 여부를 나타냅니다. 기본값은 false입니다.
ipProtectionLevel 소켓에 사용할 기본값 System.Net.Sockets.IPProtectionLevel 을 지정합니다. 기본값은 Windows 버전에 따라 달라집니다.

자식 요소

없음.

부모 요소

요소 설명
설정 네임스페이스에 대한 System.Net 기본 네트워크 옵션을 구성합니다.

비고

alwaysUseCompletionPortsForConnect 특성은 alwaysUseCompletionPortsForAccept .namespace의 클래스에서 완료 포트를 사용하는 것과 관련된 기본 동작을 System.Net.Sockets지정하는 데 사용됩니다. 완성 포트는 고성능 서버 애플리케이션에 권장됩니다.

및 특성의 alwaysUseCompletionPortsForAccept 기본값은 false입니다.alwaysUseCompletionPortsForConnect

해당 AlwaysUseCompletionPortsForAccept 구성 파일에서 특성의 alwaysUseCompletionPortsForAccept 현재 값을 가져오는 데 사용할 수 있습니다. 해당 AlwaysUseCompletionPortsForConnect 구성 파일에서 특성의 alwaysUseCompletionPortsForConnect 현재 값을 가져오는 데 사용할 수 있습니다.

이 특성은 ipProtectionLevel 소켓에 사용할 기본값 System.Net.Sockets.IPProtectionLevel 을 지정합니다. 이 IPProtectionLevel 속성을 사용하면 링크가 동일한 로컬 또는 사이트 로컬 접두사를 가진 주소와 같이 지정된 범위에 대한 IPv6 소켓에 대한 제한을 구성할 수 있습니다. 이 옵션을 사용하면 애플리케이션이 IPv6 소켓에 액세스 제한을 적용할 수 있습니다. 이러한 제한을 통해 프라이빗 LAN에서 실행되는 애플리케이션은 외부 공격에 대해 간단하고 강력하게 강화할 수 있습니다. 이 옵션은 수신 대기 소켓의 범위를 넓히거나 좁히며, 적절한 경우 퍼블릭 및 프라이빗 사용자로부터 무제한 액세스를 사용하도록 설정하거나 필요에 따라 동일한 사이트에 대한 액세스만 제한합니다.

ipProtectionLevel 특성 설정은 초기 들어오는 트래픽에만 영향을 줍니다.

  • 소켓에서 들어오는 연결을 수신 대기하는 TCP 서버입니다.

  • 소켓에서 패킷을 수신하는 UDP 애플리케이션입니다.

이 구성 설정은 이미 설정된 TCP 연결에 영향을 주지 않으며(트래픽은 양방향으로 제한되지 않음) UDP 패킷을 보내는 애플리케이션에 영향을 주지 않습니다.

특성 설정에 사용할 수 있는 ipProtectionLevel 값은 다음과 같이 열거형에 System.Net.Sockets.IPProtectionLevel 지정된 정의된 보호 수준에 해당합니다.

속성 값 설명
EdgeRestricted IP 보호 수준이 에지로 제한됩니다. 이 값은 인터넷을 통해 작동하도록 설계된 애플리케이션에서 사용됩니다. 이 설정은 Windows Teredo 구현을 사용하는 NAT(네트워크 주소 변환) 통과를 허용하지 않습니다. 이러한 애플리케이션은 IPv4 방화벽을 바이패스할 수 있으므로 열린 포트를 대상으로 하는 인터넷 공격에 대해 애플리케이션을 강화해야 합니다. Windows Server 2003 및 Windows XP에서 소켓의 IP 보호 수준에 대한 기본값은 에지 제한입니다.
Restricted IP 보호 수준이 제한됩니다. 이 값은 인터넷 시나리오를 구현하지 않는 인트라넷 애플리케이션에서 사용됩니다. 이러한 애플리케이션은 일반적으로 인터넷 스타일의 공격에 대해 테스트되거나 강화되지 않습니다. 이 설정은 수신된 트래픽을 링크-로컬로만 제한합니다.
무제한 IP 보호 수준은 제한되지 않습니다. 이 값은 Windows(예: Teredo)에 기본 제공되는 IPv6 NAT 통과 기능을 활용하는 애플리케이션을 포함하여 인터넷을 통해 작동하도록 설계된 애플리케이션에서 사용됩니다. 이러한 애플리케이션은 IPv4 방화벽을 바이패스할 수 있으므로 열린 포트를 대상으로 하는 인터넷 공격에 대해 애플리케이션을 강화해야 합니다. Windows Server 2008 R2 및 Windows Vista에서 소켓의 IP 보호 수준에 대한 기본값은 제한되지 않습니다.
지정되지 않음 IP 보호 수준이 지정되지 않았습니다. Windows 7 및 Windows Server 2008 R2에서는 소켓의 IP 보호 수준에 대한 기본값이 지정되지 않습니다.

특성의 ipProtectionLevel 기본값은 지정되지 않습니다.

속성은 IPProtectionLevel 해당 구성 파일에서 특성의 ipProtectionLevel 현재 값을 가져오는 데 사용할 수 있습니다.

구성 파일

이 요소는 애플리케이션 구성 파일 또는 컴퓨터 구성 파일(Machine.config)에서 사용할 수 있습니다.

예시

다음 예제에서는 완료 포트를 사용해야 하고 기본값 System.Net.Sockets.IPProtectionLevel 은 무제한으로 지정하도록 지정하는 방법을 보여줍니다.

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

참고하십시오