Skip to main content
이 항목을 사용하여 선호 로컬 UDP(User Datagram Protocol) 멀티플레이어 포트 API를 사용해 멀티플레이어 안정성을 개선하는 방법을 이해합니다. 모든 세대의 XBOX 콘솔은 _UDP 3074_를 사용할 수 있게 해왔습니다. 이는 멀티플레이어 네트워크 트래픽용으로 공개적으로 등록된 잘 알려진 포트입니다. Microsoft Game Development Kit (GDK) 타이틀도 예외가 아니며, 선호 로컬 UDP 멀티플레이어 포트 네트워킹 API를 사용하여 이 특별한 포트에 액세스할 수 있습니다. 선호 로컬 UDP 멀티플레이어 포트는 원격 디바이스가 로컬 디바이스에 연결할 때 사용할 수 있는 공개 포트가 아니라, 이후의 소켓 바인딩 작업에 사용되는 로컬 포트입니다. 전자는 TCP(Transmission Control Protocol) 및 HTTP 트래픽이 아닌 UDP 트래픽에만 의미가 있으며, 특히 멀티플레이어 실시간 타이틀 네트워킹 흐름을 대상으로 하기 때문입니다. 역사적으로 이 포트는 UDP 3074로 제한되어 있었습니다. 그러나 최근 몇 년 동안 이 포트의 안정성을 높이기 위해 폴백 로직이 도입되었습니다. 또한 사용자는 자신만의 고유한 네트워크 구성에 맞도록 포트를 수동으로 구성할 수 있게 되었습니다. 이 때문에 Microsoft Game Development Kit (GDK) 타이틀에서 UDP 3074를 하드 코딩하는 것은 더 이상 안전하지 않습니다. 대신 Microsoft Game Development Kit (GDK) 타이틀은 현재 구성된 포트를 동적으로 쿼리해야 합니다. 선호 로컬 UDP 멀티플레이어 포트를 검색하는 세 가지 방법이 있습니다. 세 가지 변형 모두 동일한 기본 기능을 제공합니다. Microsoft Game Development Kit (GDK) 타이틀은 특정 요구 사항과 사용 사례에 따라 그중 하나 또는 조합을 호출할 수 있습니다. 모든 Microsoft Game Development Kit (GDK) 타이틀은 주요 게임 트래픽에 선호 포트를 사용하는 것이 강력히 권장됩니다. 이 포트는 피어 투 피어 네트워크 토폴로지와 클라이언트/서버 네트워크 토폴로지 모두에 최적화되어 있습니다. Microsoft Game Development Kit (GDK) 플랫폼은 이 특정 포트가 각 사용자의 특정 네트워킹 환경에서 작동할 가능성이 가장 높은 포트임을 보장합니다. 이 특정 포트를 사용하면 플랫폼의 고객 지원 및 진단 흐름의 사용을 극대화하고, 표준화된 NAT(network address translation) 호환성을 높이며, 표준화된 UPnP™ 인증 장치 기능을 제공하고, QoS(Quality of Service) 라우터 및 ISP 알고리즘에 대해 실시간 민감성 패킷으로 식별합니다. 이 선호 포트는 피어 투 피어 네트워크 토폴로지에 의존하는 타이틀에 특히 관련이 있습니다. 방화벽 뚫기를 수행하지 않고도 방화벽을 통해 인바운드 UDP 패킷을 허용하는 유일한 포트입니다. Microsoft Game Development Kit (GDK)에서 피어 투 피어 네트워크 토폴로지에 의존하는 타이틀은 여전히 자체 공개 IP 주소 및 포트 검색과 함께 보통 또는 엄격한 NAT 유형을 가진 클라이언트를 위한 NAT 뚫기 솔루션을 제공해야 합니다. 선호 포트는 이러한 기술의 성공률을 개선하지만 이를 대체하지는 않습니다. 클라이언트/서버 네트워크 토폴로지를 사용하는 타이틀도 이 포트를 사용함으로써 이점을 얻습니다. 문제 해결, UPnP™ 및 패킷 식별은 병원, 호텔 및 대학 기숙사에서 흔한 캡티브 포털 및 기타 소스 기반 필터링 접근 방식에 여전히 관련이 있습니다. 선호 포트는 다른 모든 포트와 동일하게 취급되어야 합니다. Windows Sockets 2 (Winsock) API와 함께 사용해야 합니다. 타이틀은 이 포트에 IPv4와 IPv6 모두에 바인딩하거나 듀얼 스택 소켓을 사용해야 하며, INADDR_ANY/in6addr_any 주소에 바인딩해야 합니다.

소켓 실패 처리

반환된 포트를 사용하여 특정 서버 또는 피어와 성공적인 소켓 연결을 설정할 수 있다는 보장은 없습니다. 일반적인 타이틀 재시도 및 폴백 로직이 수행되어야 합니다. 소켓이 닫히고 다시 열릴 때마다 포트는 시간이 지남에 따라 변경될 수 있으므로, 타이틀은 가장 최신의 선호 로컬 UDP 멀티플레이어 포트를 다시 쿼리해야 합니다.

네트워크 초기화

XNetworkingQueryPreferredLocalUdpMultiplayerPort API의 세 가지(블로킹, 비동기, 알림 기반) 변형 모두 타이틀 시작 및 재개 시 네트워크가 초기화될 때까지 완료/알림을 블로킹하거나 지연시킵니다. 네트워크 초기화 상태 감지 개요에 따라 별도로 네트워크 초기화를 기다리거나, 이러한 API를 호출하고 반환될 때까지 기다릴 수 있습니다.

일시 중지 및 재개

다른 소켓과 마찬가지로, 선호 로컬 UDP 멀티플레이어 포트에 바인딩된 소켓은 일시 중지 시 닫고, 네트워크 초기화를 기다린 후 재개 시 다시 만들어야 합니다. RegisterAppStateChangeNotification을 통해 일시 중지 및 재개 이벤트에 등록해야 합니다. 재개 시 선호 로컬 UDP 멀티플레이어 포트가 변경되었다고 가정하고, 선호 로컬 UDP 멀티플레이어 포트의 변경을 수신하거나 새 소켓을 만들 때 다시 쿼리해야 합니다. WinSock 일시 중지 및 재개 처리에 대한 자세한 내용은 Winsock의 일시 중지 및 재개를 참조하세요.

선호 로컬 UDP 멀티플레이어 포트의 변경

타이틀은 XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged API를 사용하여 선호 로컬 UDP 멀티플레이어 포트의 변경을 수신할 수 있습니다. 타이틀이 실행 중일 때 선호 로컬 UDP 멀티플레이어 포트가 변경되지 않도록 모든 노력이 이루어집니다. 그러나 사용자의 외부 네트워크 조건이 변경되어 기존 소켓 흐름을 무효화함에 따라 포트가 변경되는 것을 피할 수 없는 경우가 있습니다. 네트워크 연결 수준이 변경되거나 타이틀의 일시 중지/재개 주기의 일부로 포트가 변경될 가능성이 특히 높습니다. 선호 로컬 UDP 멀티플레이어 포트가 변경되면 이전 선호 포트에서 향후 피어로부터의 추가 인바운드 연결이 차단될 수 있습니다. 이로 인해 소켓 계층에서 실패가 발생하지 않을 수도 있습니다. 그러나 타이틀은 결국 이전 선호 포트에 바인딩된 소켓에서 패킷 수신을 중지할 수 있습니다. 기존 피어와의 패킷 송수신은 계속 작동할 수 있습니다. 선호 로컬 UDP 멀티플레이어 포트 변경에 대한 알림이 진행 중인 게임 세션에 치명적이지 않을 수 있습니다. 변경 알림이 발생하면 타이틀은 새 선호 포트에 바인딩된 새 소켓으로 마이그레이션해야 합니다. 이 마이그레이션은 기존 게임플레이를 중단시키지 않고 가장 빠른 기회에 수행되어야 합니다. 연결 손실을 감지하고 소켓 연결을 재시도하려면 타이틀은 항상 가장 최근의 선호 포트를 사용해야 합니다.

선호 로컬 UDP 멀티플레이어 포트의 변경 테스트

다음 단계를 사용하여 선호 로컬 UDP 멀티플레이어 포트를 변경합니다.
  1. 게임이 실행되는 동안 XBOX Guide를 엽니다. Settings 앱으로 이동합니다.
  2. General 탭에서 Network settings를 선택합니다.
  3. Advanced settings를 선택한 다음 Alternate port selection을 선택합니다.
  4. 포트 선택을 Manual로 설정합니다. 포트를 선택하려면 드롭다운 메뉴를 사용합니다.
  5. 포트 선택은 즉시 적용되며 타이틀에 해당 알림이 전달됩니다.
  6. 테스트가 완료되면 포트 동작을 기본값으로 되돌리려면 포트 선택을 Automatic으로 다시 설정합니다.
Settings 앱에 있는 동안 타이틀은 제약되지만 여전히 실행되며 타이틀이 보이지 않더라도 포트 변경 알림을 즉시 받습니다. Settings 앱을 10분 이상 열어두고 타이틀로 다시 전환하지 않으면 타이틀이 일시 중지됩니다.

보안

선호 로컬 UDP 멀티플레이어 포트에 바인딩된 소켓은 다른 소켓과 동일하게 동작합니다. 특히 이 소켓은 추가 보안을 제공하지 않습니다. 타이틀은 통신 보안 모범 사례에 지정된 대로 선호 로컬 UDP 멀티플레이어 포트에 바인딩된 소켓 위에서 자체 보안 통신 프로토콜을 사용해야 합니다. 자세한 내용은 통신 보안 개요(NDA topic)를 참조하세요.

피어 투 피어

선호 로컬 UDP 멀티플레이어 포트는 피어 투 피어 메시가 구축될 수 있는 가장 잘 알려진 포트를 제공합니다. 사용자의 NAT 계층을 통해 인바운드 연결을 허용하도록 가능한 최상의 방식으로 구성되어 있습니다. 그러나 다음을 포함한 NAT 순회를 수행하는 것은 타이틀의 책임입니다.
  • NAT 유형 감지
  • 디바이스의 공개 IP 주소 및 포트 감지 및 교환
  • NAT 뚫기 및 순회

Azure PlayFab Party

내부적으로 PlayFab Party는 기본적으로 선호 로컬 UDP 멀티플레이어 포트를 사용합니다. 이는 PlayFab Party API를 통해 구성할 수 있습니다. PlayFab Party 포트가 변경되지 않는 한, 타이틀이 선호 로컬 UDP 멀티플레이어 포트에 직접 바인딩해서는 안 됩니다.

사용 예제

다음 예제는 듀얼 스택 소켓을 선호 로컬 UDP 멀티플레이어 포트에 바인딩하는 방법을 보여줍니다. 이 예제는 간결성을 위해 블로킹 XNetworkingQueryPreferredLocalUdpMultiplayerPort 호출을 사용하며, 타이틀이 이전에 네트워크가 준비될 때까지 기다렸고 이미 WSAStartup을 호출했다고 가정합니다.

참조 API 문서

참고 항목

선호 로컬 UDP 멀티플레이어 포트 API 참조 (XNetworking) Windows Sockets 2 (Winsock) 통신 보안 개요(NDA topic)
마지막 수정일 2026년 8월 24일