테스트 네트워크 설정
네트워크 시뮬레이션은 Microsoft Game Development Kit (GDK)의 명령줄 스트레스 도구인 xbstress.exe로 제어됩니다. 이 도구를 사용하여 네트워크 시뮬레이션을 포함한 다양한 콘솔 스트레서를 구성합니다. 자세한 내용은 xbstress (NDA topic)를 참조하세요. 네트워킹 목적으로xbstress는 XBOX One의 특수 드라이버를 제어합니다. 이 드라이버는 패킷을 드롭하고, 지연 시간을 주입하며, 처리량을 제한합니다.
네트워크 시뮬레이션을 사용할 때는 xbstress가 유발한 것 외의 네트워크 문제가 없도록 깨끗한 네트워크 환경을 제공하세요. 깨끗한 네트워크 환경은 다음 기준을 충족해야 합니다.
- 시뮬레이션 대상보다 높은 사용 가능한 대역폭.
- 무시할 만한 패킷 손실과 함께 안정적인 연결.
- 가능한 가장 작은 지연 시간. 외부 지연 원인의 영향을 최소화하기 위해 모든 노드를 동일한 링크에 배치합니다.
기본 네트워크 시뮬레이션 실행
xbstress (NDA topic)에는 minimum, average, excellent, broken이라는 중요한 네트워크 시나리오를 쉽게 시뮬레이션하기 위한 네 가지 미리 구성된 시뮬레이션 프로필이 있습니다. 이러한 프로필은 인터넷 연결의 지속적인 품질을 모니터링하는 다양한 소스의 수치를 기반으로 합니다. 다른 명령줄 도구와 마찬가지로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을 실행합니다.
지연 시간은 콘솔의 네트워크 흐름 양방향으로 주입됩니다. average 프로필을 시뮬레이션하기 위해 인바운드 및 아웃바운드 패킷에 25 ms 지연을 주입하여 유효 지연 시간 50 ms를 구현합니다. 동일한 링크의 두 콘솔에서 average 프로필을 시뮬레이션하면 유효 피어 투 피어 지연 시간은 양방향으로 50 ms가 됩니다.
복잡한 네트워크 조건의 시뮬레이션 실행
네트워크 코드가 견고하고 인증 준비가 되었는지 확인하려면 복잡한 네트워크 조건에서 테스트하세요. 또한 콘솔이 사용하는 일부 엔드포인트에는 도달할 수 있지만 다른 엔드포인트는 사용할 수 없거나 연결 대역폭이 제한된 상황에서도 테스트하세요. xbstress (NDA topic)의channel 기능을 사용하여 그러한 복잡한 네트워크 조건을 시뮬레이션할 수 있습니다.
예를 들어 다음과 같은 조건을 시뮬레이션하기 위해 채널을 사용합니다.
- 사용자가 XBOX 네트워크(XBOX Live라고도 함)에 액세스할 수 없지만 다른 모든 네트워크 리소스는 사용할 수 있습니다.
- 사용자가 스튜디오에서 사용자 지정 서비스를 호스팅하는 데 사용하는 서버 중 하나에 액세스할 수 없습니다.
- 일반적으로 XBOX 서비스에 대한 액세스는 정상적으로 보이지만 특정 서비스(예: Achievements)에 대한 액세스가 매우 느립니다.
- 사용자가 멀티플레이어 세션을 설정했지만 이제 다른 사용자의 콘솔에 액세스할 수 없습니다.
- 채널에서 시뮬레이션할 주소 또는 범위와 연결 프로필을 지정합니다.
- 다른 연결 프로필을 지정하려는 각 주소 또는 주소 범위에 대해 별도의 채널을 정의합니다.
- 시뮬레이션 시나리오에 적용되는 모든 채널을 지정합니다.
xbstress simulate network=channels명령을 사용하여 채널로 지정된 네트워크 조건을 시뮬레이션하기 시작합니다.
- Channel: 0에서 100 사이의 임의의 숫자로 식별됩니다. 채널 설명은 가장 낮은 것부터 가장 높은 것 순으로 처리됩니다. 결과적으로 특정 주소에 적용되는 두 규칙을 지정하면 더 높은 번호의 채널이 해당 주소에 적용됩니다.
- Network: 주소 또는 주소 범위에 적용될 프로필 이름.
- Addresses: 개별적으로, 세미콜론으로 구분된 목록으로, 또는 서브넷 마스크를 사용한 범위로 지정할 수 있습니다.
네트워크의 세밀한 시뮬레이션 실행
xbstress를 사용하여 인바운드 대역폭, 아웃바운드 대역폭, 패킷 손실, 지연 시간을 개별적으로 제어합니다. 시뮬레이션 매개변수를 보다 세밀하게 제어하려는 경우 이러한 제어를 사용합니다. 자세한 내용은 xbstress (NDA topic)를 참조하세요.
면제된 네트워크 트래픽
네트워크 시뮬레이션은 XBOX One에서 오는 모든 트래픽에 영향을 미치지 않습니다. 도구와 관련된 트래픽은 네트워크 시뮬레이션에서 면제됩니다. 이렇게 하면 시뮬레이션된 연결로 네트워크 코드를 시험하는 동안 발생하는 문제를 디버깅하는 동안 도구가 제대로 작동합니다. 이러한 면제에도 불구하고 네트워크 시뮬레이션으로 인해 콘솔을 사용할 수 없게 되는 경우 네트워크 시뮬레이션을 비활성화할 수 있습니다. 콘솔의 전원 공급 장치를 뽑고 10초 동안 기다렸다가 콘솔을 연결한 다음 콘솔을 켭니다.기본 포트 면제
다음 유형의 트래픽은 네트워크 스트레스 제한의 영향을 받지 않습니다. 이 목록이 전부는 아닙니다. 특정 상황에서 시스템 기능에 사용되는 다른 트래픽도 네트워크 스트레스 제한을 회피할 수 있습니다.-
IPv4 네트워크 구성:
- Address Resolution Protocol (ARP)
- Dynamic Host Configuration Protocol (DHCP): User Datagram Protocol (UDP) 포트 67 및 68
-
IPv6 네트워크 구성:
- SLAAC: ICMPv6
- DHCPv6: UDP 포트 546
- XTF 및 PIX: Transmission Control Protocol (TCP), 포트 4201 및 4221-4223
- Telnet: TCP, 포트 23, 24, 2302, 2303
- XStudio: TCP, 포트 2375
- Server Message Block (SMB): TCP 445
사용자 지정 포트 면제
네트워크 시뮬레이션에서 추가 포트를 면제하고 자체 사용자 지정 도구에 사용하려면xbstress를 사용하여 사용자 지정 면제를 설정하세요. 그런 다음 도구는 이러한 포트를 사용하여 네트워크를 통해 통신할 수 있습니다.
면제를 설정하려면 xbstress에서 tcpportexemptions 또는 udpportexemptions 인수를 사용합니다. 두 인수 모두 면제할 포트의 세미콜론으로 구분된 목록이 뒤따릅니다. 다음 예제는 이러한 명령의 사용을 보여줍니다.
xbstress set tcpportexemptions 49152;49153명령은 TCP 포트 49152 및 49153에 대한 면제를 만듭니다.xbstress set udpportexemptions 49153;49154명령은 UDP 포트 49153 및 49154에 대한 면제를 만듭니다.
