소켓 작업에서 완료 포트를 사용할지 여부를 지정합니다.
<구성>
<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>
참고하십시오
.NET