> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XBOX 개발 킷의 네트워크 스트레스 테스트

> XBOX 개발 킷의 네트워크 스트레스 테스트

이 항목을 사용하여 XBOX One 개발 킷에서 용량이 감소된 네트워크를 시뮬레이션하는 방법을 이해합니다. 사용자 네트워크 환경은 불완전하고 혼란스러울 수 있습니다. 사용자에게 사용 가능한 대역폭과 전송 신뢰성은 개발 공간에 있는 것보다 상당히 낮을 수 있습니다.

다양한 사용자 기반에 가능한 최상의 경험을 제공하려면 현실적인 고객 환경에서 게임을 테스트하세요. XBOX One 개발 킷을 사용하여 제한된 대역폭, 패킷 손실, 지연 시간에 대한 네트워크 시뮬레이션을 실행합니다. 네트워크 시뮬레이션은 다양한 조건에서 게임의 동작에 대한 통찰력을 얻을 수 있는 기회입니다.

## 테스트 네트워크 설정

네트워크 시뮬레이션은 Microsoft Game Development Kit (GDK)의 명령줄 스트레스 도구인 *xbstress.exe*로 제어됩니다. 이 도구를 사용하여 네트워크 시뮬레이션을 포함한 다양한 콘솔 스트레서를 구성합니다. 자세한 내용은 [xbstress (NDA topic)](/tools/tools-console/commandlinetools/xbstress)를 참조하세요. 네트워킹 목적으로 `xbstress`는 XBOX One의 특수 드라이버를 제어합니다. 이 드라이버는 패킷을 드롭하고, 지연 시간을 주입하며, 처리량을 제한합니다.

네트워크 시뮬레이션을 사용할 때는 `xbstress`가 유발한 것 외의 네트워크 문제가 없도록 *깨끗한* 네트워크 환경을 제공하세요. 깨끗한 네트워크 환경은 다음 기준을 충족해야 합니다.

* 시뮬레이션 대상보다 높은 사용 가능한 대역폭.
* 무시할 만한 패킷 손실과 함께 안정적인 연결.
* 가능한 가장 작은 지연 시간. 외부 지연 원인의 영향을 최소화하기 위해 모든 노드를 동일한 링크에 배치합니다.

## 기본 네트워크 시뮬레이션 실행

[xbstress (NDA topic)](/tools/tools-console/commandlinetools/xbstress)에는 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`을 실행합니다.

다음 표는 시뮬레이션 프로필의 세부 정보를 보여줍니다.

| 프로필             | 설명                                                                                                | 대역폭                                 | 패킷 손실 | 총 주입 지연 시간    |
| --------------- | ------------------------------------------------------------------------------------------------- | ----------------------------------- | ----- | ------------- |
| Broken          | 연결 손실을 시뮬레이션합니다. 이 값이 지정되어도 개발 도구(예: 디버거, 원격 명령줄 도구, PIX)는 계속 제대로 작동합니다.                          | 데이터가 전송되지 않음.                       | 100%  | 데이터가 전송되지 않음. |
| Minimum (min)   | XBOX One의 최소 작동 요구 사항을 나타냅니다. 타이틀은 XBOX 인증 요구 사항을 충족하기 위해 응답을 중지하거나 크래시하지 않고 이 환경을 지원할 수 있어야 합니다. | 아웃바운드: 192 Kbps<br />인바운드: 192 Kbps | 1%    | 75 ms         |
| Average (avg)   | 합리적인 DSL 연결을 나타냅니다. 타이틀의 네트워크 성능을 테스트할 때 이 프로필에 중점을 두세요.                                          | 아웃바운드: 700 Kbps<br />인바운드: 1 Mbps   | 1%    | 50 ms         |
| Excellent (exc) | 우수한 광대역 연결을 나타냅니다.                                                                                | 아웃바운드: 10 Mbps<br />인바운드: 35 Mbps   | 0.5%  | 30 ms         |

지연 시간은 콘솔의 네트워크 흐름 양방향으로 주입됩니다. average 프로필을 시뮬레이션하기 위해 인바운드 및 아웃바운드 패킷에 25 ms 지연을 주입하여 유효 지연 시간 50 ms를 구현합니다. 동일한 링크의 두 콘솔에서 average 프로필을 시뮬레이션하면 유효 피어 투 피어 지연 시간은 양방향으로 50 ms가 됩니다.

## 복잡한 네트워크 조건의 시뮬레이션 실행

네트워크 코드가 견고하고 인증 준비가 되었는지 확인하려면 복잡한 네트워크 조건에서 테스트하세요. 또한 콘솔이 사용하는 일부 엔드포인트에는 도달할 수 있지만 다른 엔드포인트는 사용할 수 없거나 연결 대역폭이 제한된 상황에서도 테스트하세요. [xbstress (NDA topic)](/tools/tools-console/commandlinetools/xbstress)의 `channel` 기능을 사용하여 그러한 복잡한 네트워크 조건을 시뮬레이션할 수 있습니다.

예를 들어 다음과 같은 조건을 시뮬레이션하기 위해 채널을 사용합니다.

* 사용자가 XBOX 네트워크(XBOX Live라고도 함)에 액세스할 수 없지만 다른 모든 네트워크 리소스는 사용할 수 있습니다.
* 사용자가 스튜디오에서 사용자 지정 서비스를 호스팅하는 데 사용하는 서버 중 하나에 액세스할 수 없습니다.
* 일반적으로 XBOX 서비스에 대한 액세스는 정상적으로 보이지만 특정 서비스(예: Achievements)에 대한 액세스가 매우 느립니다.
* 사용자가 멀티플레이어 세션을 설정했지만 이제 다른 사용자의 콘솔에 액세스할 수 없습니다.

특정 주소 또는 주소 범위에 대한 액세스를 시뮬레이션할 방법을 지정하려면

1. 채널에서 시뮬레이션할 주소 또는 범위와 연결 프로필을 지정합니다.
2. 다른 연결 프로필을 지정하려는 각 주소 또는 주소 범위에 대해 별도의 채널을 정의합니다.
3. 시뮬레이션 시나리오에 적용되는 모든 채널을 지정합니다.
4. `xbstress simulate network=channels` 명령을 사용하여 채널로 지정된 네트워크 조건을 시뮬레이션하기 시작합니다.

각 채널 사양에는 다음 세 가지 값이 있습니다.

* **Channel:** 0에서 100 사이의 임의의 숫자로 식별됩니다. 채널 설명은 가장 낮은 것부터 가장 높은 것 순으로 처리됩니다. 결과적으로 특정 주소에 적용되는 두 규칙을 지정하면 더 높은 번호의 채널이 해당 주소에 적용됩니다.

* **Network:** 주소 또는 주소 범위에 적용될 프로필 이름.

* **Addresses:** 개별적으로, 세미콜론으로 구분된 목록으로, 또는 서브넷 마스크를 사용한 범위로 지정할 수 있습니다.

[xbstress (NDA topic)](/tools/tools-console/commandlinetools/xbstress)를 사용하여 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 Game Development Kit 타이틀 개발용 개발 네트워크 액세스 구성](/home/setup-install/devkits/settings/configure-dev-network)을 참조하세요.

이 명령에서 IP 주소 대신 호스트 이름을 사용할 수도 있습니다. 이 호스트 이름은 단일 IP 주소로 확인되므로 로드 밸런싱되지 않고 단일 IP 주소로 확인되는 서비스에만 작동합니다.

```
      xbstress set channel=0 network=min addresses=mytitleservice.com
      xbstress simulate network=channel
```

로드 밸런싱된 HTTP 서비스에 대한 통신을 조절하거나 차단하려면 [xbstress (NDA topic)](/tools/tools-console/commandlinetools/xbstress) 대신 Fiddler를 사용해야 합니다. 자세한 내용은 [XBOX 개발 킷의 Fiddler](/build/console-features/networking/tools/fiddler-setup-networking)를 참조하세요.

## 네트워크의 세밀한 시뮬레이션 실행

`xbstress`를 사용하여 인바운드 대역폭, 아웃바운드 대역폭, 패킷 손실, 지연 시간을 개별적으로 제어합니다. 시뮬레이션 매개변수를 보다 세밀하게 제어하려는 경우 이러한 제어를 사용합니다. 자세한 내용은 [xbstress (NDA topic)](/tools/tools-console/commandlinetools/xbstress)를 참조하세요.

## 면제된 네트워크 트래픽

네트워크 시뮬레이션은 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에 대한 면제를 만듭니다.

## 네트워크 시뮬레이션과 네트워크 캡처 간의 상호작용

네트워크 시뮬레이션을 수행하는 동안 [xbtrace (NDA topic)](/tools/tools-console/commandlinetools/xbtrace)를 사용하여 콘솔에서 네트워크 캡처를 수행하면 오해의 소지가 있는 네트워크 캡처가 발생할 수 있습니다. 시뮬레이션 효과(예: 패킷 드롭)는 캡처 절차 후에 구현됩니다. 예를 들어 캡처는 실제로 네트워크를 통해 전송되기 전에 시뮬레이션 드라이버에 의해 나중에 드롭되었더라도 패킷이 전송되었음을 나타낼 수 있습니다.

## 참고 항목

[Stress (xbstress.exe) (NDA topic)](/tools/tools-console/commandlinetools/xbstress)


## Related topics

- [네트워크 초기화 상태 감지](/ko/build/console-features/networking/initialization-connectivity-networking.md)
- [스트리밍을 위한 XBOX 개발 키트 설정](/ko/build/core-features/common/game-streaming/game-streaming-setup-xbox-developer-kit.md)
- [GDK의 서비스 품질 측정](/ko/build/console-features/networking/game-mesh/qos-networking.md)
- [도구](/ko/build/console-features/networking/tools/index.md)
- [Microsoft Game Development Kit의 네트워킹 도구](/ko/build/console-features/networking/tools/tools-networking-toc.md)
