Xbox 개발 키트의 네트워크 스트레스 테스트
이 항목을 사용하여 Xbox One 개발 키트에서 용량이 감소된 네트워크를 시뮬레이션하는 방법을 이해합니다. 사용자 네트워크 환경은 불완전하고 혼란스럽습니다. 사용자에 대해 사용 가능한 대역폭과 전송 안정성은 개발 공간에 비해 상당히 낮을 수 있습니다.
다양한 사용자층에 가능한 한 최고의 경험을 느낄 수 있도록 하려면 실제 고객 환경에서 게임을 테스트해야 합니다. Xbox One 개발 키트를 사용하여 제한된 대역폭, 패킷 손실 및 대기 시간에 대한 네트워크 시뮬레이션을 실행합니다. 네트워크 시뮬레이션은 다양한 조건에서 게임의 동작에 대한 통찰력을 얻을 수 있는 기회입니다.
테스트 네트워크 설정
네트워크 시뮬레이션은 Microsoft GDK(게임 개발 키트)의 명령줄 스트레스 도구인 xbstress.exe로 제어됩니다. 이 도구를 사용하여 네트워크 시뮬레이션을 비롯한 다양한 본체 스트레스 요소를 구성할 수 있습니다. 자세한 내용은 xbstress(NDA 항목)권한 부여 필요를 참조하세요. 네트워킹을 위해 xbstress
에서는 Xbox One의 특수 드라이버를 제어합니다. 이 드라이버는 패킷을 드롭하고, 대기 시간을 삽입하며, 처리량을 제한합니다.
네트워크 시뮬레이션을 사용할 때 깨끗한 네트워크 환경을 제공하여 유일한 네트워크 문제가 xbstress
(으)로 인한 네트워크 문제가 되도록 해야 합니다. 깨끗한 네트워크 환경이 되려면 다음 기준을 충족해야 합니다.
- 시뮬레이션 대상보다 훨씬 더 높은 대역폭.
- 패킷 손실을 무시할 수 있는 정도의 안정적인 연결.
- 가능한 한 가장 짧은 대기 시간. 모든 노드를 동일한 링크에 놓아 대기 시간에 대한 외부 소스의 영향을 최소화합니다.
네트워크의 기본 시뮬레이션 실행
xbstress(NDA 항목)권한 부여 필요는 4개의 미리 구성된 시뮬레이션 프로필을 사용하여 중요한 네트워크 시나리오(최소, 평균, 우수, 손상)를 쉽게 구현할 수 있습니다. 이러한 프로필은 인터넷 연결의 지속적인 품질을 모니터링하는 다양한 출처의 수치를 기반으로 만든 것입니다.
다른 명령줄 도구와 마찬가지로 xbstress
에서는 /X:
명령줄 플래그를 콘솔의 IP 주소 또는 호스트 이름으로 해석합니다. 시뮬레이션 명령은 다음을 실행합니다.
- 낮은 연결 능력을 시뮬레이트하려면
xbstress simulate network=min
을(를) 실행합니다. - 평균 연결 능력을 시뮬레이트하려면
xbstress simulate network=avg
를 실행합니다. - 탁월한 연결 능력을 시뮬레이트하려면
xbstress simulate network=exc
를 실행합니다. - 연결 해제된 네트워크를 시뮬레이트하려면
xbstress simulate network=broken
을 실행합니다. - 실제 이더넷 연결 끊기를 시뮬레이션하려면
xbstress simulate network=disconnect
을(를) 실행합니다. - 네트워크 시뮬레이션을 중지하려면 실행
xbstress stop
을 실행합니다.
다음 표에서는 시뮬레이션 프로필 세부 정보를 보여줍니다.
프로필 | 설명 | 대역폭 | 패킷 손실 | 주입된 총 대기 시간 |
---|---|---|---|---|
연결 끊김 | 연결이 끊어진 상황을 시뮬레이션합니다. 이 값이 지정되어도 개발 도구(예: 디버거, 원격 명령줄 도구, PIX)는 계속 제대로 작동합니다. | 데이터는 전송되지 않습니다. | 100% | 데이터는 전송되지 않습니다. |
최소(분) | Xbox One의 최소 작동 요건을 나타냅니다. 타이틀이 응답을 멈추거나 충돌하지 않고 이 환경을 지원하여 Xbox 인증 요건을 충족해야 합니다. | 아웃바운드: 192Kbps 인바운드: 192Kbps |
1% | 75ms |
평균(avg) | 합당한 DSL 연결을 나타냅니다. 타이틀의 네트워크 성능을 테스트할 때 이 프로필에 집중합니다. | 아웃바운드: 700Kbps 인바운드: 1Mbps |
1% | 50ms |
우수(exc) | 우수한 광대역 연결을 나타냅니다. | 아웃바운드: 10Mbps 인바운드: 35Mbps |
0.5% | 30ms |
본체 네트워크 흐름의 양방향으로 대기 시간이 주입됩니다. 평균 프로필을 시뮬레이션하기 위해 인바운드와 아웃바운드 패킷에 25ms 지연 시간을 주입하여 50ms의 유효 대기 시간을 구현합니다. 같은 링크에서 두 본체의 평균 프로필을 시뮬레이션하면 유효 피어 투 피어 대기 시간은 양방향으로 50ms가 됩니다.
복잡한 네트워크 상황의 시뮬레이션 실행
네트워크 코드가 견고하고 인증 준비가 되어 있는지 확인하려면 복잡한 네트워크 조건에서 코드를 테스트합니다. 또한 콘솔이 사용하는 일부 끝점에는 도달할 수 있지만 다른 끝점에는 도달할 수 없거나 연결 대역폭이 제한된 상황에서 코드를 테스트합니다.
xbstress(NDA 항목)권한 부여 필요의 channel
특징을 사용하여 이러한 복잡한 네트워크 조건을 시뮬레이션할 수 있습니다.
예를 들어 채널은 다음과 같은 조건을 시뮬레이션하는 데 사용됩니다.
- 사용자는 Xbox 네트워크(Xbox Live라고도 함)에 액세스할 수 없지만 다른 모든 네트워크 리소스를 사용할 수 있습니다.
- 사용자가 스튜디오에서 맞춤형 서비스를 호스트하는 데 사용하는 서버 중 하나에 액세스할 수 없습니다.
- Xbox 서비스에 대한 액세스는 일반적으로 괜찮아 보이지만 특정 서비스(예: 도전 과제)에 대한 액세스는 매우 느립니다.
- 사용자가 멀티 플레이어 세션을 설정했지만 다른 사용자의 콘솔에 액세스할 수 없습니다.
특정 주소 또는 주소 범위에 대한 액세스를 시뮬레이션하는 방법을 지정하려면
- 채널을 통해 시뮬레이션할 주소 또는 범위와 연결 프로필에 대한 채널을 지정합니다.
- 다른 연결 프로파일을 지정할 각 주소 또는 주소 범위에 대해 별도의 채널을 정의합니다.
- 시뮬레이션 시나리오에 적용되는 모든 채널을 지정합니다.
-
xbstress simulate network=channels
명령을 사용하여 채널에서 지정한 네트워크 조건의 시뮬레이션을 시작합니다.
각 채널 사양에는 다음과 같은 세 가지 값이 있습니다.
채널: 0에서 100까지 임의의 숫자로 식별합니다. 채널 설명은 가장 낮은 번호에서 가장 높은 번호로 순서대로 처리됩니다. 따라서 특정 주소에 적용할 두 가지 규칙을 지정할 경우 번호가 높은 채널이 이 주소에 적용됩니다.
네트워크: 주소 또는 주소 범위에 적용할 프로필 이름입니다.
주소: 개별 주소를 세미콜론으로 구분한 목록으로 지정하거나, 서브넷 마스크를 사용하여 범위로 지정할 수 있습니다.
xbstress(NDA 항목)를권한 부여 필요 사용하여 Xbox 네트워크에 대한 모든 액세스를 차단하려면 다음과 같이 Xbox 서버의 IP 주소를 사용합니다.
xbstress set channel=0 network=broken addresses=134.170.28.0/255.255.254.0
xbstress set channel=1 network=broken addresses=191.232.80.128/255.255.255.128
xbstress set channel=2 network=broken addresses=191.232.82.128/255.255.255.128
xbstress set channel=3 network=broken addresses=191.234.78.0/255.255.254.0
xbstress set channel=4 network=broken addresses=131.253.28.0/255.255.254.0
xbstress set channel=5 network=broken addresses=134.170.176.0/255.255.252.0
xbstress set channel=6 network=broken addresses=157.56.70.0/255.255.254.0
xbstress set channel=7 network=broken addresses=65.55.42.0/255.255.254.0
xbstress set channel=8 network=broken addresses=131.253.22.0/255.255.254.0
xbstress set channel=9 network=broken addresses=191.234.240.0/255.255.248.0
xbstress simulate network=channels
Xbox 서버 주소에 대한 자세한 내용은 Microsoft 게임 개발 키트 타이틀 개발을 위한 개발 네트워크 액세스 구성을 참조하세요.
이 명령에 대해 IP 주소 대신 호스트 이름을 사용할 수도 있습니다. 이 호스트 이름은 단일 IP 주소로 확인되므로 부하 분산되지 않고 단일 IP 주소로 확인되는 서비스에 대해서만 작동합니다.
xbstress set channel=0 network=min addresses=mytitleservice.com
xbstress simulate network=channel
부하가 분산된 HTTP 서비스에 대한 통신을 제한하거나 차단하려면 xbstress(NDA 항목)권한 부여 필요 대신 Fiddler를 사용해야 합니다. 자세한 내용은 Xbox 개발 키트의 Fiddler를 참조하세요.
네트워크의 자세한 시뮬레이션 실행
xbstress
을(를) 사용하여 인바운드 대역폭, 아웃바운드 대역폭, 패킷 손실, 대기 시간을 개별적으로 제어할 수 있습니다. 시뮬레이션 매개 변수의 세밀한 조정을 원할 때 이러한 제어 방법을 사용합니다. 자세한 내용은 xbstress(NDA 항목)권한 부여 필요를 참조하세요.
네트워크 트래픽 제외
네트워크 시뮬레이션은 Xbox One에서 오는 모든 트래픽에 영향을 미치지 않습니다. 도구와 관련된 트래픽은 네트워크 시뮬레이션에서 제외됩니다. 이렇게 하면 시뮬레이션된 연결로 인해 네트워크 코드에 발생하는 문제를 디버깅하는 동안 도구가 제대로 작동하게 됩니다.
이러한 제외에도 불구하고 네트워크 시뮬레이션 때문에 콘솔을 사용할 수 없게 되면, 네트워크 시뮬레이션을 비활성화할 수 있습니다. 콘솔에서 전원 플러그를 분리하고 10초간 기다린 다음 콘솔에 전원 플러그를 연결하고 전원을 켭니다.
기본 포트 예외
다음 종류의 트래픽은 네트워크 스트레스 제한에 영향을 받지 않습니다. 이 목록은 완전하지 않습니다. 특정 상황에서는 시스템 기능에 사용되는 다른 트래픽으로 인해 네트워크 스트레스 제한을 피하게 될 수도 있습니다.
IPv4 네트워크 구성:
- ARP(주소 확인 프로토콜)
- DHCP(Dynamic Host Configuration Protocol): UDP(User Datagram Protocol) 포트 67 및 68
IPv6 네트워크 구성:
- SLAAC: ICMPv6
- DHCPv6: UDP 포트 546
XTF 및 Pix: TCP(Transmission Control Protocol) 포트 4201 및 4221-4223
텔넷: TCP, 포트 23, 24, 2302, 2303
XStudio: TCP, 포트 2375
SMB(서버 메시지 블록): TCP 445
포트에 대한 맞춤형 예외
네트워크 시뮬레이션에서 추가 포트를 제외하고 자체 맞춤형 도구에 사용하려면 xbstress
을(를) 사용하여 사용자 지정 예외를 설정할 수 있습니다. 그런 다음 해당 포트를 사용하여 네트워크를 통해 통신할 수 있습니다.
예외를 설정하려면 xbstress
에서 tcpportexemptions
또는 udpportexemptions
인수를 사용합니다. 두 인수 뒤에 제외할 포트를 세미콜론으로 구분한 목록이 이어집니다. 다음 예는 이러한 명령의 사용을 보여줍니다.
-
xbstress set tcpportexemptions 49152;49153
명령은 TCP 포트 49152와 49153에 대한 예외를 만듭니다. -
xbstress set udpportexemptions 49153;49154
명령은 UDP 포트 49153과 49154에 대한 예외를 만듭니다.
네트워크 시뮬레이션과 네트워크 캡처 간의 상호 작용
xbtrace(NDA 항목)권한 부여 필요를 사용하여 콘솔에서 네트워크 캡처를 하는 동시에 네트워크 시뮬레이션을 수행하면 잘못된 네트워크 캡처가 발생할 수 있습니다. 캡처 프로시저 다음에 패킷 드롭과 같은 시뮬레이션 효과가 구현됩니다. 예를 들어, 실제로는 네트워크를 통해 전송되기 전에 시뮬레이션 드라이버에 의해 패킷이 연속적으로 삭제되었지만 캡처에서는 패킷이 전송되었다고 표현될 수 있습니다.