Battlefield: Inspecione a perda de pacotes e o tempo de retorno de pacotes do jogo multijogador

Battlefield: Inspecione a perda de pacotes e o tempo de retorno de pacotes do jogo multijogador

Estou ciente de que esta é uma pergunta incomum, mas parece que as pessoas aqui provavelmente são as que podem ajudar. Estou tentando depurar com meu ISP por que estou tendo atrasos extremos durante o jogo.

Pergunta:Qual é uma boa maneira de analisar o tempo de execução e a perda de pacotes que me fornece informações mais detalhadas sobre onde está o gargalo na conexão? Existe uma maneira fácil de reproduzir artificialmente o tráfego até certo ponto, sem realmente jogar o jogo?

Aqui está minha situação:

  • Meu ISP fornece minha conexão através de uma grande rede sem fio com vários pontos de acesso ao longo de cerca de 10 km antes de chegar ao cabo principal. Sempre foi assim e no passado provou ser extremamente confiável. Devido a alterações no hardware ou outras alterações de configuração do meu ISP, a qualidade do jogo caiu há vários meses. Meu ISP é muito útil e tenta encontrar e corrigir a origem dos problemas.
  • Tenho em geral um ping muito bom e quando jogo, as informações do jogo mostram sempre um bom ping de 20-30ms.
  • Uma característica do Battlefield é que ele mostra símbolos de aviso quando a taxa de quadros cai, o tempo de resposta da conexão é ruim ou os pacotes são perdidos. A situação que se repete é que posso jogar cerca de 10-60 segundos sem nenhum símbolo de aviso e então sofro uma grave perda de pacotes onde tenho atrasos e o BF me mostra todos os tipos de avisos de conexão. Depois disso, posso jogar novamente por alguns segundos antes de ver esse comportamento novamente.

Estou trabalhando exclusivamente em Linux e me sinto confortável com ping, traceroute, nmape outras ferramentas de rede. Conheço as portas altas que o BF usa, posso descobrir os tamanhos dos pacotes usados ​​e, claro, posso extrair IPs dos servidores de jogos. Qual é uma boa maneira de começar a rastrear esse problema para que eu possa provocar artificialmente a perda de pacotes enquanto meu ISP depura o que acontece em sua rede?

Análise

Instalei o WireShark conforme sugerido gentilmente por moonpoint e capturei alguns minutos de jogo lento. Numa primeira análise, concentrei-me nos pacotes que vêm do servidor do jogo. Filtramos todos os pacotes UDP que vêm do servidor para o meu IP e ajustei o tempo para ver o tempo relativo entre esses pacotes. Após a classificação, havia cerca de 20 pacotes que demoravam entre 650 ms e 1300 ms, que suspeito serem aqueles em que estou pulando metade do mapa. Entre a maioria dos outros pacotes temos quase exatamente o tempo de execução que vejo como "Ping" dentro do jogo de cerca de 30 ms.

Depois de marcar todos os pacotes críticos, limpei o filtro e observei todo o tráfego para ver se conseguia encontrar algum padrão do que estava acontecendo com todos os pacotes em torno dos pacotes críticos. O que descobri é que existem duas situações. Observe que 94.250.208.153 é o servidor do jogo e o destaque em azul é o pacote crítico do jogo UDP:

Primeiro, cerca de 10 a 15 pacotes antes do crítico, há um pacote SSDP M-Search místico vindo de um endereço MAC:

imagem

A segunda situação é que o pacote crítico é precedido (ou às vezes cercado) por uma retransmissão TCP principalmente para um servidor Google:

insira a descrição da imagem aqui

Há mais alguma medida que eu possa tomar da minha parte? Alguém pode me dizer como posso investigar o pacote SSDP místico?

Responder1

O MTR, que combina funcionalidades encontradas em ping e traceroute, também pode ser uma ferramenta útil para determinar o ponto ou pontos ao longo de um caminho de rede onde está ocorrendo perda de pacotes ou ondenervosismoé alto (exemplo).

Você também pode usar o software gratuito e de código abertoWiresharkanalisador de pacotes para solucionar o problema, mas ser capaz de compreender as informações que ele fornece requer familiaridade com como o subjacenteProtocolos de Internet, como TCP/IP, funcionam. Existem cursos e tutoriais sobre seu uso online. Embora aprender como usá-lo de maneira eficaz possa levar bastante tempo, depois de aprender a usar uma ferramenta como o Wireshark, você poderá solucionar mais facilmente todos os tipos de problemas envolvendo conectividade de rede.

Se você não está familiarizado com o Wireshark, no YouTube existeTutorial WireShark para inicianteseWireshark 101: Como fazer o Wireshark, Haktip 115; muitos outros podem ser encontrados pesquisando os termos "Tutorial do Wireshark". Sites com tutoriais incluemTutorial rápido e sujo do Wireshark,Como usar o Wireshark para capturar, filtrar e inspecionar pacotes, eTutorial Wireshark, que é um arquivo PDF criado porProfessor Ângelos Stavrouno Departamento de Ciência da Computação da George Mason University. Também existem cursos online disponíveis sobre como usar o Wireshark.

Com Wireshark, outcpdump, uma ferramenta de captura de pacotes de linha de comando disponível para Linux, OS X e Microsoft Windows (WinDump), você pode capturar os pacotes que fluem de e para o seu sistema quando o problema ocorre, para que você mesmo possa analisar os dados mais tarde ou em tempo real, ou, uma vez que ambas as ferramentas podem salvar os dados que você capturou como umPCAParquivo, você pode fornecer os dados à equipe de suporte de rede do seu ISP, já que seu pessoal pode estar familiarizado com a interpretação de tais dados, já que os arquivos pcap são um método comum para trocar dados sobre um problema de rede entre engenheiros de rede ao depurar um problema.

O Wireshark capturará todos os dados em uma interface de rede, mas como você conhece os números das portas de rede e os endereços IP associados aos servidores do jogo Battlefield, você podeuse um filtro Wireshark para filtrar números de porta e/ou endereço IP.

Atualizar:

Ohexadecimaldígitos que você viu associados ao "pacote SSDP M-Search" não são umcontrole de acesso à mídia (MAC)endereço. Os endereços MAC são semelhantes a 50-c5-8d-26-c2-06, ou seja, os endereços MAC Ethernet e Wi-Fi geralmente são exibidos com travessões ou dois pontos entre cada dois dígitos hexadecimais com um total de 12 dígitos, ou seja, são 48 endereços de bits. O que você está vendo é, em vez disso, umIPv6endereço - existem duas versões do protocolo da Internet em uso na Internet hoje, a muito usadaProtocolo de Internet versão 4 (IPv4)e o mais recente Protocolo de Internet versão 6 (IPv6).

SSDP significaProtocolo Simples de Descoberta de Serviço, que é um protocolo usado paraPlug and Play Universal (UPnP). Algum sistema na sua rede local, aquele com endereço IPv6 fe80::50e7:d4f0:db:c4dc, está enviando um pacote para umMulticast IPendereço, ff02::c. Para IPv4, o endereço multicast é 239.255.255.250, enquanto o SSDP sobre IPv6 usa o conjunto de endereços ff0X::c para todos os intervalos de escopo indicados por X ("X" no pacote que você viu é "2").

Não sei por que seu sistema está entrando em contato com oAmazon Web Services (AWS)Endereço IP nem o endereço do Google.

C:\>nslookup 52.203.205.255 8.8.8.8
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    ec2-52-203-205-255.compute-1.amazonaws.com
Address:  52.203.205.255


C:\>nslookup 216.58.212.78 8.8.8.8
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    lhr35s05-in-f78.1e100.net
Address:  216.58.212.78 

Vejo que a conexão é para a porta 443, oporto conhecidopara tráfego HTTPS, mas quando realizei um52.203.205.255 Pesquisa reversa de IPusando DomainToolsPesquisa reversa de IPcapacidade, ele relatou "Não encontramos nenhum resultado para sua pesquisa." Freqüentemente, colocar um endereço IP nessa ferramenta de pesquisa mostrará onomes de domínio totalmente qualificados (FQDNs)para sites hospedados no endereço IP (vários sites podem ser hospedados no mesmo endereço IP), mas não neste caso.

A216.58.212.78 Pesquisa reversa de IPretornou a mesma mensagem. Se você vir um 1e100.net, é um sistema do Google. O Google usa "1e100" no nome porque é uma forma de representar um "1" com cem zeros depois, o que é umGoogle.

Ambos os pacotes podem não estar relacionados às comunicações com o servidor Battlefield. O fato de serem retransmissões, enviadas quando um sistema enviou um pacote, mas não recebeu um pacote de confirmação do outro lado indicando que foi recebido, pode indicar que o tráfego para outros sites também está sofrendo perda de pacotes no ao mesmo tempo que você está tendo problemas com o servidor Battlefield. Você pode filtrar esses dois endereços IP para visualizar outros pacotes de/para eles para ter uma ideia melhor de por que eles podem estar aparecendo na captura de pacotes, se você estiver interessado em saber por que seu sistema está se comunicando com esses dois endereços IP.

informação relacionada