다음을 통해 공유


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

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

<configuration>
  <system.net>
    <설정>
      <socket>

구문

<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 네임스페이스에 대한 기본 네트워크 옵션을 구성합니다.

설명

alwaysUseCompletionPortsForAcceptalwaysUseCompletionPortsForConnect 특성이 System.Net.Sockets 네임스페이스에 있는 클래스에 의해 완료 포트의 사용과 관련된 기본 동작을 지정하는 데 사용됩니다. 완료 포트는 고성능 서버 애플리케이션에 권장됩니다.

alwaysUseCompletionPortsForAcceptalwaysUseCompletionPortsForConnect 특성의 기본값은 false입니다.

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(Network Address Translation) 통과를 허용하지 않습니다. 이러한 애플리케이션에서는 IPv4 방화벽이 무시될 수 있으므로 열린 포트로 향하는 인터넷 공격을 막기 위해 애플리케이션의 보안 기능을 강화해야 합니다. Windows Server 2003 및 Windows XP에서는 소켓에 대한 IP 보호 수준이 기본적으로 경계 제한됨으로 설정됩니다.
제한 IP 보호 수준이 제한됨입니다. 이 값은 인터넷 시나리오를 구현하지 않는 인트라넷 애플리케이션에서 사용됩니다. 일반적으로 이러한 애플리케이션은 인터넷형 공격에 대해 테스트되거나 보안이 강화되어 있지 않습니다. 이 설정은 링크 로컬에서만 트래픽을 받도록 제한합니다.
제한 없음 IP 보호 수준이 제한하지 않음입니다. 이 값은 Windows에 구축된 IPv6 NAT 통과 기능(예: Teredo)을 이용하는 애플리케이션을 비롯하여 인터넷을 통해 작동하도록 디자인된 애플리케이션에서 사용됩니다. 이러한 애플리케이션에서는 IPv4 방화벽이 무시될 수 있으므로 열린 포트로 향하는 인터넷 공격을 막기 위해 애플리케이션의 보안 기능을 강화해야 합니다. Windows Server 2008 R2 및 Windows Vista에서는 소켓에 대한 IP 보호 수준이 기본적으로 제한되지 않음으로 설정됩니다.
Unspecified IP 보호 수준이 지정되지 않음입니다. Windows 7 및 Windows Server 2008 R2에서는 소켓에 대한 IP 보호 수준이 기본적으로 지정되지 않음으로 설정됩니다.

ipProtectionLevel 특성의 기본값은 Unspecified입니다.

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

구성 파일

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

예제

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

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

참고 항목