> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PC 포트 동작

> PC 포트 동작

이 항목에서는 PC 포트 동작을 설명합니다.

## 포트 규칙

* 사용자가 기본 제공 기본 Windows 방화벽을 사용할 때 PC 포트는 모든 아웃바운드 TCP(전송 제어 프로토콜) 및 UDP(User Datagram Protocol) 트래픽을 허용하지만 요청되지 않은 인바운드 TCP 및 UDP 패킷은 차단합니다.

* 선호 로컬 UDP 멀티플레이어 포트는 다른 포트와 동일한 방식으로 작동하지만 요청되지 않은 인바운드 UDP 패킷을 허용합니다. TCP는 사용할 수 없습니다.

* 아웃바운드 흐름은 항상 작동하며 이에 대한 어떤 속성도 선언할 필요가 없습니다. 사용자가 원격 서버/장치에 첫 번째 패킷을 보내면 그 장치에서 오는 후속 수신 패킷은 상관없이 전달됩니다.

* Microsoft Game Development Kit(GDK) 타이틀에서 P2P의 경우 선호 멀티플레이어 포트에서 UDP를 사용해야 합니다. 또한 방화벽 및 NAT 펀칭을 수행해야 합니다. 사용자가 게임을 예외 처리하지 않는 한 요청되지 않은 인바운드 TCP 패킷은 차단됩니다. 요청되지 않은 인바운드 UDP 패킷도 기본적으로 차단되며, UDP P2P 흐름을 차단 해제하려면 사용자로부터의 예외 또는 어떤 형태의 방화벽 펀칭이 필요합니다.

* 타이틀에 대한 예외는 사용자가 방화벽 설정을 통해 추가하거나 패키징 프로세스 동안 특정 속성을 선언할 때 추가할 수 있습니다. 사용자의 방화벽 설정과 게임 패키지 속성 모두가 실제 요청되지 않은 인바운드 패킷 동작을 결정합니다.

* PC 사용자는 타사 방화벽을 사용할 수 있다는 점에 유의해야 합니다. 이러한 설정은 포트의 전반적인 동작에 영향을 줍니다. 아래에서 자세히 설명합니다.

**팁**: [PlayFab Party](/build/console-features/networking/game-mesh/playfab-party-intro-networking)는 이 기능을 자동으로 처리하는 P2P 네트워크 토폴로지를 제공합니다. 또는 자체 구현을 위한 시작점으로 [STUN](https://tools.ietf.org/html/rfc5389) 및 [ICE](https://tools.ietf.org/html/rfc8445)에 대한 RFC를 참조하세요.

## 요청되지 않은 인바운드 트래픽 관리

GDK를 사용하여 만든 PC 타이틀은 MSIXVC 패키지로 게시됩니다.

타이틀이 MSIXVC 패키지로 제공될 때, **MicrosoftGame.config** 파일에서 [privateNetworkClientServer](https://learn.microsoft.com/uwp/schemas/appxpackage/uapmanifestschema/element-capability) 또는 [internetClientServer](https://learn.microsoft.com/uwp/schemas/appxpackage/uapmanifestschema/element-capability)와 같은 속성을 선언하여 요청되지 않은 인바운드 트래픽의 처리 방법을 선언할 수 있습니다.

**중요:** 사용자의 방화벽과 설정으로 인해 이러한 속성은 실제로 효과가 없을 수 있습니다. 자세히 알아보려면 [방화벽 및 트래픽에 미치는 영향](#firewall-and-how-it-affects-traffic)을 참조하세요.

아래 표는 속성이 요청되지 않은 인바운드 트래픽 액세스 및 예상 고객 경험에 어떤 영향을 미치는지 나열합니다.

| MicrosoftGame.config               | 액세스                                        | 예상 고객 경험                                            |
| ---------------------------------- | ------------------------------------------ | --------------------------------------------------- |
| **privateNetworkClientServer** 지정  | 요청되지 않은 인바운드 LAN 트래픽 허용                    | 게임 패키지에 지정된 대로 실행 파일 이미지 설치 중에 게임에 대한 예외가 추가됩니다.    |
| **privateNetworkClientServer** 미지정 | 모든 요청되지 않은 인바운드 LAN 트래픽이 차단되는 기본 동작 유지     | 알림이 표시되지 않습니다. 요청되지 않은 인바운드 UDP/TCP 패킷은 자동으로 삭제됩니다. |
| **internetClientServer** 지정        | 요청되지 않은 인바운드 P2P 인터넷 트래픽 허용                | 게임 패키지에 지정된 대로 실행 파일 이미지 설치 중에 게임에 대한 예외가 추가됩니다.    |
| **internetClientServer** 미지정       | 모든 요청되지 않은 인바운드 P2P 인터넷 트래픽이 차단되는 기본 동작 유지 | 알림이 표시되지 않습니다. 요청되지 않은 인바운드 UDP/TCP 패킷은 자동으로 삭제됩니다. |

### GDK 타이틀에서 MicrosoftGame.config를 편집하는 방법

* 타이틀의 소스 코드로 이동합니다.
* \_\_MicrosoftGame.config\_\_를 엽니다.
* 아래 코드 조각을 추가하고 파일을 저장합니다.

MSIXVC 패키지를 빌드할 때 **SubmissionValidator** 로그 파일에 경고가 생성됩니다.

```xml theme={null}
<ExtendedAttributeList>
  <ExtendedAttribute Name="Capability" Value="privateNetworkClientServer"/>
  <ExtendedAttribute Name="Capability" Value="internetClientServer"/>
</ExtendedAttributeList>
```

게임의 **MicrosoftGame.config** 파일에 속성이 추가되면 생성된 \_\_AppXManifest.xml\_\_에 적용됩니다. 생성 프로세스에 대해 자세히 알아보려면 [MicrosoftGame.config 개요](/build/core-features/common/game-config/MicrosoftGameConfig-Overview)를 참조하세요.

<a id="firewall-and-how-it-affects-traffic" />

## 방화벽 및 트래픽에 미치는 영향

사용자의 방화벽과 설정은 게임의 네트워킹 기능에 영향을 미칩니다. 이 섹션에서는 방화벽이 GDK 타이틀의 트래픽에 어떤 영향을 미치는지 설명하며, 이는 네트워킹 설계를 강화하는 데 도움이 될 것입니다.

이 항목의 이해를 돕기 위해 Win32 게임의 방화벽으로 인해 영향을 받는 포트 액세스도 참조용으로 포함되어 있습니다.

일반적으로 **privateNetworkClientServer** 및 **internetClientServer** 속성은 타사 방화벽을 사용하는 사용자에게는 효과가 없다는 점을 대비해야 합니다. 이는 전체 사용자의 30\~40%로 예상됩니다.

### GDK 실행 파일 게임

**기본 Windows 10 방화벽을 사용하는 사용자**

* **privateNetworkClientServer** 및 **internetClientServer** 속성은 앞서 설명한 대로 작동합니다.
* **privateNetworkClientServer** 및 **internetClientServer** 속성이 정의되었는지 여부에 관계없이 아웃바운드 기반 흐름은 항상 작동합니다. 사용자가 원격 서버/장치에 첫 번째 패킷을 보내는 한 그 장치에서 오는 후속 수신 패킷은 전달됩니다.

**타사 방화벽을 사용하는 사용자**

* **privateNetworkClientServer** 및 **internetClientServer** 속성은 효과가 없습니다. 이러한 사용자는 요청되지 않은 인바운드 패킷을 자동으로 삭제합니다. 참고: 이는 패키징 중에 \_\_MicrosoftGame.config\_\_에서 액세스 기능을 선언했는지 여부와 **관계없습니다**.
* 선호 로컬 UDP 멀티플레이어 포트를 포함한 모든 포트는 해당 방화벽에서 지정한 정책의 적용을 받습니다.
* 아웃바운드 기반 흐름은 일반적으로 작동합니다. 타사 방화벽 설정을 통해 타이틀의 네트워크 액세스를 적절히 예외 처리하는 것은 사용자의 몫입니다.

### Win32 실행 파일 게임

**참고:** 이 섹션은 비교용으로 추가되었습니다. GDK 타이틀은 Win32 타이틀이 아닙니다. PC 타이틀은 개발에 GDK를 사용할 것을 권장합니다.

**기본 Windows 방화벽을 사용하는 사용자**

* 처음 실행 시 알림이 표시되어 사용자가 애플리케이션의 게임 서버에 대한 네트워크 액세스를 거부하거나 허용할 수 있게 합니다.
* 아웃바운드 기반 흐름은 UI 알림 없이 항상 작동합니다.

## 함께 보기

* [Windows Sockets 2(Winsock)](https://learn.microsoft.com/windows/desktop/WinSock/windows-sockets-start-page-2)

* [XBOX 콘솔 포트 동작(NDA 항목)](/build/console-features/networking/game-mesh/xbox-console-port-behavior)

* [선호 UDP 멀티플레이어 포트](/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking)

* [PlayFab Party](/build/console-features/networking/game-mesh/playfab-party-intro-networking)


## Related topics

- [XBOX 콘솔 포트 동작](/ko/build/console-features/networking/game-mesh/xbox-console-port-behavior.md)
- [GDK의 Windows Sockets 소개](/ko/build/console-features/networking/game-mesh/winsock-intro-networking.md)
- [XBOX 타이틀을 위한 Game Mesh 네트워킹](/ko/build/console-features/networking/game-mesh/index.md)
- [게임 메시 통신: GDK와 XDK의 차이점](/ko/build/console-features/networking/xdk-migration/xdk-migration-game-mesh-networking.md)
- [선호 로컬 UDP 멀티플레이어 포트 네트워킹 API](/ko/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking.md)
