Microsoft 게임 개발 키트의 서비스 품질 측정
이 주제를 사용하여 GDK 제목에서 서비스 품질(QoS)을 측정하는 방법을 이해하세요. 멀티 플레이어 타이틀에서는 QoS 대기 시간을 측정하는 것이 중요합니다. 피어 투 피어 연결에서는 QoS 대기 시간 측정값으로 다른 클라이언트와 게임 플레이가 가능한지 판단할 수 있습니다. 클라이언트/서버 연결에서는 QoS 대기 시간 측정값으로 게임에 가장 적합한 데이터센터 위치를 결정할 수 있습니다.
Xbox One ERA 타이틀은 보안 소켓에 대기 시간과 대역폭 측정에 대한 QoS API가 포함돼 있습니다. GDK 타이틀은 다음 섹션에 설명된 것과 동일한 기능을 달성할 수 있습니다.
피어 투 피어
피어 투 피어 통신을 사용하는 타이틀은 타이틀 코드, 게임 엔진 또는 미들웨어에서 사용자 지정 QoS 구현을 사용할 수 있습니다.
어떻게 구현하든 타이틀은 다음 지침을 충족해야 합니다.
- 보안 통신 모범 사례. 타이틀은 콘텐츠에 관계없이 모든 네트워크 통신을 보호하기 위해 모범 사례를 따라야 합니다. 이는 피어 투 피어 UDP QoS 프로브에도 적용됩니다. 이러한 프로브는 보안 프로토콜 연결을 통해 수행해야 합니다. 보안 프로토콜 모범 사례에 대한 자세한 내용은 Microsoft 게임 개발 키트 타이틀용 보안 게임 메시 통신(NDA 항목)권한 부여 필요을 참조하세요.
- UDP(User Datagram Protocol) 패킷 크기입니다. UDP 통신 타이틀은 최대 플랫폼 MTU(최대 전송 단위)를 넘지 않도록 해야 합니다. 패킷당 기본 최대 UDP 페이로드는 Xbox 콘솔 및 Windows 10에 있는 Microsoft GDK(게임 개발 키트) 타이틀의 경우 1,384바이트입니다. MTU를 초과하는 패킷은 조각날 수 있으며, 이로 인해 추가 대기 시간이나 손실 패킷이 발생할 수 있습니다.
- 프로토콜과 통신 채널 맞추기 피어 투 피어 QoS는 항상 게임 플레이 트래픽에 사용되는 것과 동일한 통신 채널과 프로토콜을 통해 수행해야 합니다. 이렇게 하면 모든 측정값에 지연 시간과 대역폭 등 게임플레이의 동작이 반영됩니다.
- 세션 검색 QoS 동작 세션 검색 목록으로 QoS를 이용하는 타이틀은 자칫 QoS가 인기 있는 호스트로 채워질 수도 있습니다. 이것은 세션 검색 목록이 모든 사용자에게 동일하고 자동 QoS 테스트가 들어 있을 경우 발생합니다. 이 시나리오에서는 세션 검색 목록을 보는 사용자는 모두 목록의 최상위 호스트를 대상으로 QoS 테스트를 수행합니다. 이로 인해 로드가 커지고 호스트나 서버에 과부하가 생길 수도 있습니다. 타이틀은 부분적으로 세션 검색 목록을 임의화하여 이 문제를 줄이는 것이 좋습니다.
- 기타 타이틀 대역폭 사용량 QoS 측정은 다른 로컬 또는 원격 네트워크 동작에 영향을 받습니다. 타이틀은 다른 플랫폼이나 서브넷 트래픽 동작에 영향을 줄 수 없습니다. 그러나 내부 타이틀 트래픽 제어는 여전히 가능합니다. 타이틀은 QoS 측정을 수행할 때 타이틀 다운로드나 다른 네트워크 사용을 최소화해야 합니다. 이것은 여러 병렬 QoS 측정에도 적용됩니다.
클라이언트/서버
클라이언트/서버 통신을 이용하는 타이틀은 타이틀 코드, 게임 엔진 또는 미들웨어에서 사용자 지정 QoS 구현을 사용할 수 있습니다. 피어 투 피어 QoS 측정과 달리 클라이언트/서버 QoS 측정의 일반적인 목표는 특정 데이터 센터에 대한 대기 시간을 확인하는 것입니다. 이 시나리오에서는 피어 투 피어 QoS 측정에 대한 지침을 따라야 합니다.
Azure PlayFab 멀티 플레이어 서버를 사용하는 타이틀은 항상 QoS 측정에 제공되는 API를 사용해야합니다. 자세한 내용은 QoS(서비스 품질) 오류 신호를 사용하여 Azure 플레이어 대기 시간 측정을 참조하세요.
QoS 메트릭 고려 사항
연결 품질을 결정하는 QoS 메트릭 중에서 가장 중요한 것 두 가지는 패킷 대기 시간과 사용 가능한 링크 대역폭입니다.
대기 시간 테스트 일반적으로 대기 시간은 두 끝점 간에 패킷 단위로 테스트 합니다. 가장 좋은 방법은 로컬 MTU 크기 미만의 패킷을 원격 끝점에 보내 패킷이 로컬 장치에 다시 에코되게 하는 것입니다. 이 작업은 패킷의 왕복 시간을 확인합니다. 측정할 때에는 여러 패킷을 평균해야 합니다. 대기 시간 측정을 빠르게 수행할 수 있습니다.
대역폭 테스트 대역폭은 일반적으로 다른 끝점에 큰 데이터를 빈도를 높여 가며 보내 로컬 링크를 포화하는 방식으로 테스트합니다. 링크 대역폭은 로컬 송신 및/또는 수신 버퍼의 상태를 기준으로 추정할 수 있습니다. 버퍼 사용의 증가는 링크가 포화 상태임을 의미합니다. 대역폭 측정은 테스트 기간이 길며 로컬 링크 품질에 영향을 미칠 수도 있습니다.
대기 시간 및 대역폭은 일반적으로 매우 강력하게 연결됩니다. 네트워크가 정체될 때 패킷이 로컬에서 억제되기 때문에 제한된 대역폭으로 인해 패킷 대기 시간이 더 늘어나게 됩니다. 짧은 대기 시간은 패킷이 로컬에 저장되지 않은 것을 나타내기 때문에 사용 가능한 대역폭이 더 많다는 것을 나타냅니다. 따라서 타이틀은 게임 플레이 트래픽 QoS의 목적 으로만 대기 시간 측정을 수행해야 합니다. 일반적으로 플레이 게임 트래픽에 대해서는 대역폭 테스트가 필요치 않습니다.
QoS 테스트
Xbox One 개발 키트를 사용하여 네트워크 시뮬레이션을 실행하면 제한된 대역폭, 패킷 손실, 대기 시간을 시뮬레이션할 수 있습니다. 이 기능은 QoS 기능 전체를 대상으로 사용자 지정 QoS 구현 테스트와 종단간 테스트에 사용하는 것이 매우 좋습니다. 자세한 내용은 Xbox One 네트워크 스트레스를 참조하세요.