PlayFab Party 포트 사용, 방화벽 및 패킷 크기 요구 사항
이 항목에서는 채팅 및 데이터 통신을 활성화하는 데 필요한 PlayFab Party 포트 사용, 방화벽 및 패킷 크기 요구 사항에 대해 자세히 설명합니다.통신 패턴
PlayFab Party는 두 가지 통신 패턴을 사용합니다.- playfabapi.com을 포함한 여러 클라우드 웹 서비스에 대해 API 호출자로부터 시작되는 HTTPS 통신.
- 투명 클라우드 릴레이 서버 및 (지원되는 경우) 기타 피어 디바이스와의 UDP 소켓 기반 보안 통신.
PartyRegionsChangedStateChange와 같은 자동 알림이 PartyStateChangeResult::InternetConnectivityError를 보고합니다.
웹 서비스 요청 문제의 경우 사용자 로그인 함수와 같은 Party 외부의 다른 필수 PlayFab 및 플랫폼 작업도 실패할 가능성이 높습니다. 이러한 실패는 종종 HTTPS 연결에 대한 로컬 방화벽 제한이나 프록시 요구 사항에 의해 발생합니다. 대부분의 문제는 로컬 디바이스 또는 네트워크에서 클라우드 웹 서비스로의 직접적인 아웃바운드 HTTPS 통신을 활성화하여 해결할 수 있습니다.
HTTPS 도메인 이름
Microsoft PlayFab Party는 여러 클라우드 서비스에 대해 UDP 및 HTTPS 연결을 수행합니다. 올바른 기능을 보장하려면 도메인 이름을 기반으로 HTTPS 트래픽을 필터링하는 환경에서 다음 이름 또는 이름 패턴에 액세스할 수 있어야 합니다. HTTPS 연결:- *.playfabapi.com
- *.speech.microsoft.com
- api.cognitive.microsofttranslator.com
MTU 및 패킷 크기
PlayFab Party는 환경적 패킷 크기 제한 내에 큰 애플리케이션 메시지를 맞추기 위해 자동으로 조각화 및 재조립을 수행합니다. 일부 네트워크 환경에서는 이 기능에도 불구하고 통신 실패가 발생할 수 있습니다. PlayFab Party는 현재 성능 저하나 잠재적인 연결 실패를 피하기 위해 환경이 최소 1,419바이트의 최대 전송 단위(MTU) 크기를 지원할 것으로 예상합니다. 이 MTU 크기는 일반적인 환경에서 지원됩니다. 가상 사설망(VPN), IPv4/IPv6 터널링 또는 명시적 관리 구성이 Party 클라이언트, 서비스 또는 다른 클라이언트 간 네트워크 경로의 한 방향 또는 양방향의 MTU 크기를 줄일 수 있습니다. 특정 환경에서 지원되는 종단 간 MTU가 불충분한 경우PartyManager::ConnectToNetwork 작업이 PartyStateChangeResult::InternetConnectivityError로 실패할 수 있습니다. 또는 연결은 성공하지만 디바이스가 불필요한 지연 시간, 패킷 손실 또는 예기치 않은 연결 해제를 경험할 수 있습니다.
일부 플랫폼은 최종 사용자, 개발자 또는 인터넷 서비스 공급자가 환경에서 MTU 구성 문제를 해결하는 데 도움이 되는 도구를 제공하며, 가능한 경우 사용해야 합니다.
로컬 디바이스 UDP 포트 사용
기본적으로 PlayFab Party 라이브러리는 대부분의 플랫폼에서 OS가 동적으로 할당한 사용 가능한 로컬 포트에 UDP 소켓을 바인딩합니다. 예외는 Microsoft Game Core로, PlayFab Party는 해당 플랫폼의 “선호하는 로컬 UDP 멀티플레이어 포트”에 기본적으로 바인딩됩니다. 타이틀은PartyManager::Initialize() 호출 전에 PartyOption::LocalUdpSocketBindAddress 옵션을 설정하여 이 동작을 변경하여 특정 로컬 포트 번호나 Microsoft Game Core “선호 로컬 UDP 멀티플레이어 포트” 이외의 OS 선택 사용 가능 포트에 바인딩할 수 있습니다. 요청된 포트가 이미 타이틀 또는 디바이스의 다른 애플리케이션에서 사용 중이면 PartyManager::Initialize()가 즉시 오류를 보고하거나 초기 PartyRegionsChangedStateChange가 PartyStateChangeResult::FailedToBindToLocalUdpSocket 오류를 보고하며 비동기 네트워크 생성 또는 연결 작업이 실패합니다.
타이틀은 최종 사용자가 환경별 이유로 요청하지 않는 한 최대한의 구성 없는 호환성을 위해 기본 로컬 포트 선택 동작을 사용하는 것이 권장됩니다. 타이틀이 기본값이 아닌 값을 사용하는 경우 더 많은 플랫폼별 요구 사항이 있을 수 있습니다. 포트 사용에 대한 지침은 각 플랫폼의 문서를 참조해야 합니다.
PlayFab Party 통신은 항상 이 선택된 로컬 UDP 포트에서 다음 섹션에 설명된 원격 대상으로 아웃바운드로 시작된 패킷과 이후 응답이 허용되어야 합니다. 네트워크 관리자는 최대한의 호환성을 위해 RFC 4787 - “Network Address Translation (NAT) Behavioral Requirements for Unicast UDP”와 같은 방화벽 및 네트워크 주소 변환(NAT)에 대한 인터넷 표준 모범 사례를 따라야 합니다. 이러한 모범 사례는 특히 Party 네트워크에 직접 피어-투-피어 연결을 사용하는 타이틀에 중요합니다. 지원이 최소한인 환경에서는 네트워크에 연결하는 것은 허용될 수 있지만 한 디바이스에서 다른 디바이스로의 직접 통신 설정을 방지할 수 있기 때문입니다.
원격 IP 주소 및 UDP 포트
Microsoft PlayFab Party는 사용자에게 최적의 지연 시간을 제공하기 위해 여러 지역에 동적으로 확장되는 서비스를 제공합니다. 이는 엄격한 통신 제약에 관심이 있는 네트워크 관리자가 참조할 수 있는 영구적인 원격 대상 호스트 이름, IP 주소 또는 포트가 없다는 것을 의미합니다. Microsoft는 다운로드 가능한 Azure용 IP 주소 범위 목록의 주간 업데이트를 제공합니다. 이 목록은 로컬 네트워크 트래픽을 제한하기 위해 지속적으로 동기화된 정책이 실행 가능한 경우 유용할 수 있습니다. 대부분의 경우 이 목록의 지속적인 유지 관리는 어려움이며 미묘한 연결 실패에 취약합니다. 또한 Party 네트워크 내의 직접 피어-투-피어 연결의 경우 원격 클라이언트 IP 주소도 알려지고 연결에 대해 활성화되어야 합니다. 이러한 이유로 방화벽이 원격 IP 주소 연결을 제한하지 않는 것을 권장합니다. PlayFab Party에서 사용할 수 있는 지원되는 원격 포트 범위는 IANA(Internet Assigned Numbers Authority) 예약 범위 0-1023 이외의 모든 포트가 될 수 있습니다. 현재 투명 클라우드 릴레이는 30000-65535의 포트 번호만 할당받지만, Microsoft는 이 동작을 향후 변경할 권리를 보유합니다. 모범 사례로 1024-65535의 포트 범위를 사용해야 합니다. 이는 특히 Party 네트워크에 직접 피어-투-피어 연결을 사용하는 타이틀에 중요합니다. NAT 구현이 일반적으로 이 범위에서 포트를 할당하기 때문입니다. 권장 전체 범위 이외의 원격 포트를 차단하면 직접 통신도 방지될 수 있습니다. UDP 연결을 활성화하려면 도메인 이름을 기반으로 UDP 트래픽을 필터링하는 환경에서 다음 이름 또는 이름 패턴에 액세스할 수 있어야 합니다.- *.cloudapp.azure.com
