Configurar uma rede de teste
A simulação de rede é controlada com o xbstress.exe, a ferramenta de estresse de linha de comando do Microsoft Game Development Kit (GDK). Use essa ferramenta para configurar vários estressores do console, incluindo a simulação de rede. Para obter detalhes completos, consulte xbstress (tópico sob NDA). Para fins de rede, oxbstress controla um driver especializado no XBOX One. Esse driver descarta pacotes, injeta latência e limita a taxa de transferência.
Ao usar a simulação de rede, forneça um ambiente de rede limpo para garantir que os únicos problemas de rede sejam aqueles causados pelo xbstress. Um ambiente de rede limpo deve atender aos critérios a seguir.
- Largura de banda disponível maior do que a do destino da simulação.
- Conectividade confiável com perda de pacotes insignificante.
- A menor latência possível. Coloque todos os nós no mesmo link para minimizar o efeito de fontes externas de latência.
Executar uma simulação básica de uma rede
O xbstress (tópico sob NDA) tem quatro perfis de simulação pré-configurados para simular facilmente cenários de rede importantes: mínimo, médio, excelente e interrompido. Esses perfis se baseiam em dados de várias fontes que monitoram continuamente a qualidade das conexões de internet. Como outras ferramentas de linha de comando, oxbstress interpreta o sinalizador de linha de comando /X: como o endereço IP ou o nome do host do console. O comando de simulação executa o seguinte:
- Para simular conectividade ruim, execute
xbstress simulate network=min. - Para simular conectividade média, execute
xbstress simulate network=avg. - Para simular conectividade excelente, execute
xbstress simulate network=exc. - Para simular conectividade interrompida, execute
xbstress simulate network=broken. - Para simular uma desconexão física do cabo Ethernet, execute
xbstress simulate network=disconnect. - Para interromper a simulação de rede, execute
xbstress stop.
A latência é injetada nas duas direções dos fluxos de rede do console. Para simular o perfil médio, implementamos uma latência efetiva de 50 ms injetando um atraso de 25 ms nos pacotes de entrada e de saída. Se você simular o perfil médio em dois consoles no mesmo link, a latência ponto a ponto efetiva entre eles será de 50 ms nas duas direções.
Executar uma simulação de condições de rede complexas
Para verificar se o seu código de rede é robusto e está pronto para a certificação, teste-o diante de condições de rede complexas. Além disso, teste-o em situações em que um console consegue alcançar alguns dos pontos de extremidade que usa, mas outros pontos de extremidade estão indisponíveis ou a largura de banda da conexão é limitada. Você pode simular essas condições de rede complexas usando o recursochannel do xbstress (tópico sob NDA).
Por exemplo, você usaria canais para simular condições como as seguintes:
- O usuário não consegue acessar a rede XBOX (também conhecida como XBOX Live), mas todos os outros recursos de rede estão disponíveis.
- O usuário não consegue acessar um dos servidores que um estúdio usa para hospedar serviços personalizados.
- O acesso aos serviços XBOX parece normal, em geral, mas o acesso a um serviço específico (como Conquistas) está muito lento.
- O usuário configurou uma sessão multijogador, mas agora não consegue acessar o console de outro usuário.
- Especifique um canal para o endereço ou intervalo e o perfil de conexão a ser simulado no canal.
- Defina um canal separado para cada endereço ou intervalo de endereços em que você deseja especificar um perfil de conexão diferente.
- Especifique todos os canais que se aplicam a um cenário de simulação.
- Use o comando
xbstress simulate network=channelspara começar a simular as condições de rede especificadas pelos seus canais.
- Canal: identificado por um número arbitrário de 0 a 100. As descrições dos canais são processadas em ordem numérica, do menor para o maior. Como resultado, se você especificar duas regras que se aplicam a um endereço específico, o canal de número mais alto será aplicado a esse endereço.
- Rede: o nome do perfil a ser aplicado a um endereço ou intervalo de endereços.
- Endereços: podem ser especificados individualmente, em uma lista delimitada por ponto e vírgula ou como um intervalo usando máscaras de sub-rede.
Executar uma simulação refinada de uma rede
Use oxbstress para controlar individualmente a largura de banda de entrada, a largura de banda de saída, a perda de pacotes e a latência. Use esses controles quando quiser um controle mais refinado dos parâmetros de simulação. Para obter detalhes, consulte xbstress (tópico sob NDA).
Isentar tráfego de rede
A simulação de rede não afeta todo o tráfego proveniente do XBOX One. O tráfego associado a ferramentas é isento da simulação de rede. Isso garante que as ferramentas funcionem corretamente enquanto você depura os problemas que surgem ao desafiar seu código de rede com uma conexão simulada. Se a simulação de rede tornar um console inutilizável, apesar dessas isenções, você poderá desativar a simulação de rede. Desconecte a fonte de alimentação do console, aguarde dez segundos, conecte o console novamente e, em seguida, ligue-o.Isenções de porta padrão
Os tipos de tráfego a seguir não são afetados pelas limitações de estresse de rede. Esta lista não é completa. Em algumas circunstâncias, outros tráfegos usados para a funcionalidade do sistema também podem ter permissão para escapar das limitações de estresse de rede.-
Configuração de rede IPv4:
- Address Resolution Protocol (ARP)
- Dynamic Host Configuration Protocol (DHCP): portas 67 e 68 do User Datagram Protocol (UDP)
-
Configuração de rede IPv6:
- SLAAC: ICMPv6
- DHCPv6: porta UDP 546
- XTF e PIX: Transmission Control Protocol (TCP), portas 4201 e 4221-4223
- Telnet: TCP, portas 23, 24, 2302 e 2303
- XStudio: TCP, porta 2375
- Server Message Block (SMB): TCP 445
Isenções personalizadas para portas
Para isentar portas adicionais da simulação de rede e usá-las em suas próprias ferramentas personalizadas, use oxbstress para configurar isenções personalizadas. Suas ferramentas poderão então usar essas portas para se comunicar pela rede.
Para configurar uma isenção, use os argumentos tcpportexemptions ou udpportexemptions no xbstress. Ambos os argumentos são seguidos por uma lista separada por ponto e vírgula das portas a serem isentas. Os exemplos a seguir demonstram o uso desses comandos.
- O comando
xbstress set tcpportexemptions 49152;49153cria isenções para as portas TCP 49152 e 49153. - O comando
xbstress set udpportexemptions 49153;49154cria isenções para as portas UDP 49153 e 49154.
