PC 포트 동작
이 항목에서는 PC 포트 동작에 대해 설명합니다.
포트 규칙
PC 포트는 모든 아웃바운드 TCP(전송 제어 프로토콜) 및 UDP(사용자 데이터그램 프로토콜) 트래픽을 허용하는 동시에 사용자가 기본 제공 Windows 방화벽을 사용할 때 원치 않는 인바운드 TCP 및 UDP 패킷을 차단합니다.
선호하는 로컬 UDP 멀티플레이어 포트는 다른 포트와 같은 방식으로 작동하지만 원치 않는 인바운드 UDP 패킷을 허용합니다. TCP를 사용할 수 없습니다.
아웃바운드 흐름은 항상 작동하며 이에 대한 속성을 선언할 필요가 없습니다. 사용자가 첫 번째 패킷을 원격 서버/장치로 보낼 때 해당 장치에서 오는 후속 패킷은 관계없이 배달됩니다.
Microsoft GDK(게임 개발 키트) 타이틀의 피어 투 피어의 경우 기본 멀티플레이어 포트에서 UDP를 사용해야 합니다. 또한 방화벽 및 NAT 펀칭을 수행해야 합니다. 사용자가 게임을 제외하지 않는 한 원치 않는 인바운드 TCP 패킷은 차단됩니다. 원치 않는 인바운드 UDP 패킷도 기본적으로 차단되며 UDP 피어 투 피어 흐름의 차단을 해제하려면 사용자의 제외 또는 일부 형태의 방화벽 펀칭이 필요합니다.
타이틀에 대한 예외는 방화벽 설정을 통해 사용자가 추가하거나 패키징 프로세스 중에 특정 속성을 선언할 때 추가할 수 있습니다. 사용자의 방화벽 설정과 게임 패키지 속성은 모두 실제 원치 않는 인바운드 패킷 동작을 결정합니다.
PC 사용자는 타사 방화벽을 사용할 수 있습니다. 이러한 설정은 포트의 전반적인 동작에 영향을 미칩니다. 자세한 내용은 아래에 있습니다.
팁: PlayFab 파티는 이 기능을 자동으로 처리하는 P2P 네트워크 토폴로지를 제공합니다. 또는 직접 구현하기 위한 시작점으로 STUN 및 ICE용 RFC를 참조하세요.
원치 않는 인바운드 트래픽 관리
GDK를 사용하여 만든 PC 타이틀은 MSIXVC 패키지로 게시됩니다.
타이틀이 MSIXVC 패키지로 배송되면 MicrosoftGame.config 파일에서 privateNetworkClientServer 또는 internetClientServer와 같은 속성을 선언하여 원치 않는 인바운드 트래픽을 처리하는 방법을 선언할 수 있습니다.
중요: 사용자의 방화벽 및 설정으로 인해 이러한 속성은 실제 영향을 미치지 않을 수 있습니다. 자세한 내용은 방화벽 및 트래픽에 미치는 영향을 참조하세요.
아래 표에는 속성이 원치 않는 인바운드 트래픽 액세스 및 예상 고객 환경에 미치는 영향이 나와 있습니다.
MicrosoftGame.config | 액세스 | 예상 고객 환경 |
---|---|---|
privateNetworkClientServer 지정됨 | 원치 않는 인바운드 LAN 트래픽 허용 | 게임에 대한 예외는 게임 패키지에 지정된 대로 실행 가능한 이미지 설치 중에 추가됩니다. |
privateNetworkClientServer 지정되지 않음 | 모든 원치 않는 인바운드 LAN 트래픽이 차단되는 기본 동작을 유지합니다. | 알림이 표시되지 않습니다. 원치 않는 인바운드 UDP/TCP 패킷은 자동으로 삭제됩니다. |
internetClientServer 지정됨 | 원치 않는 인바운드 P2P 인터넷 트래픽 허용 | 게임에 대한 예외는 게임 패키지에 지정된 대로 실행 가능한 이미지 설치 중에 추가됩니다. |
internetClientServer 지정되지 않음 | 모든 원치 않는 인바운드 P2P 인터넷 트래픽이 차단되는 기본 동작을 유지합니다. | 알림이 표시되지 않습니다. 원치 않는 인바운드 UDP/TCP 패킷은 자동으로 삭제됩니다. |
GDK 타이틀용 MicrosoftGame.config를 편집하는 방법
- 타이틀의 소스 코드로 이동합니다.
- MicrosoftGame.config를 엽니다.
- 아래 코드 조각을 추가하고 파일을 저장합니다.
MXIXVC 패키지를 빌드하면 SubmissionValidator 로그 파일에 경고가 생성됩니다.
<ExtendedAttributeList>
<ExtendedAttribute Name="Capability" Value="privateNetworkClientServer"/>
<ExtendedAttribute Name="Capability" Value="internetClientServer"/>
</ExtendedAttributeList>
속성이 게임의 MicrosoftGame.config 파일에 추가되면 생성된 AppXManifest.xml에 적용됩니다. 생성 프로세스에 대한 자세한 내용은 MicrosoftGame.config 개요를 참조하세요.
방화벽 및 트래픽에 미치는 영향
사용자의 방화벽 및 설정은 게임의 네트워킹 기능에 영향을 줍니다. 이 섹션에서는 방화벽이 GDK 타이틀의 트래픽에 어떻게 영향을 미치는지 설명하고 네트워킹 설계를 강화하는 데 도움이 됩니다.
이 항목을 더 잘 이해할 수 있도록 Win32 게임용 방화벽의 영향을 받는 포트 액세스도 참조로 포함됩니다.
일반적으로 privateNetworkClientServer 및 internetClientServer 속성은 타사 방화벽이 있는 사용자에게 영향을 미치지 않도록 준비해야 합니다. 이는 전체 사용자의 30~40%가 될 것으로 예상됩니다.
GDK 실행 가능한 게임
기본 Windows 10 방화벽이 있는 사용자
- privateNetworkClientServer 및 internetClientServer 속성은 앞에서 설명한 대로 작동합니다.
- 아웃바운드 기반 흐름은 항상 privateNetworkClientServer 및 internetClientServer 속성이 정의되거나 정의되지 않은 상태에서 작동합니다. 사용자가 첫 번째 패킷을 원격 서버/장치로 보내는 한 해당 장치에서 들어오는 후속 패킷이 전달됩니다.
타사 방화벽이 있는 사용자
- privateNetworkClientServer 및 internetClientServer 속성은 효과가 없습니다. 이러한 사용자는 원치 않는 인바운드 패킷을 자동으로 삭제합니다. 참고: 이는 패키징하는 동안 MicrosoftGame.config에서 액세스 기능을 선언했는지 여부에 관계없이 무관입니다.
- 기본 로컬 UDP 멀티 플레이어 포트를 포함한 모든 포트에는 해당 방화벽에 지정된 정책이 적용됩니다.
- 아웃바운드 기반 흐름은 일반적으로 작동합니다. 타사 방화벽 설정을 통해 타이틀의 네트워크 액세스를 적절하게 제외하는 것은 사용자의 몫입니다.
Win32 실행 가능한 게임
참고: 이 섹션은 비교용으로 추가되었습니다. GDK 타이틀은 Win32 타이틀이 아닙니다. 개발을 위해 GDK를 사용하는 PC 타이틀을 권장합니다.
기본 Windows 방화벽이 있는 사용자
- 처음 실행하면 사용자가 게임 서버에 대한 응용 프로그램의 네트워크 액세스를 거부하거나 허용할 수 있도록 알림이 표시됩니다.
- 아웃바운드 기반 흐름은 항상 UI 알림 없이 작동합니다.