한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Guia do Lag em Jogos › Problemas que só afetam alguns

Bug na separação de sessões por IP ou dispositivo Session keyed by IP or machine ID

ID da causa pt-session-key · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)

Abrir o card interativo, com figuras e simulações →

Se o servidor ou um servidor intermediário distingue as conexões por IP ou ID do dispositivo, dois clientes no mesmo PC (mesmo IP público) são tratados como uma só pessoa.

Por quê Tabela de sessões montada por IP ou por IP + ID do dispositivo → Efeito Os dados do segundo cliente sobrescrevem a primeira sessão ou se misturam com ela → Na tela Em um lado os NPCs ficam invisíveis, e no outro a conexão cai ou chegam dados de outra pessoa

Sintomas
Invisível / entidade fantasma, Desconexão
Fatores
Perda de pacotes
Quem é afetado
Só um dos clientes no mesmo PC, Mesma casa, Região ou operadora específica
Quando
Logo após login ou manutenção
Responsável
Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Servidor: distinguir as conexões por um token de sessão único por conexão, tanto no servidor quanto nos servidores intermediários; corrigir sem falta, porque várias pessoas na mesma casa (atrás do NAT do roteador) e usuários de rede móvel em que a operadora divide um IP entre vários assinantes (CGNAT) têm o mesmo problema. Cliente: usar um token de sessão recebido separadamente por cada cliente aberto.
No gráfico
Alto só em alguns · Sessões simultâneas no mesmo IP público, sessões sobrescritas
Onde olhar
Registrar nos logs do servidor e dos servidores intermediários a chave usada para achar a sessão, o token de sessão e o IP e porta do cliente, e ver se a sessão existente mudou no momento em que chegou a segunda conexão do mesmo IP. Reproduz abrindo dois clientes, um depois do outro, no mesmo PC
Confirma se
No momento em que o segundo cliente se conecta, o endereço ou os dados de personagem da primeira sessão mudam, e outros jogadores atrás do mesmo roteador ou da mesma rede móvel (CGNAT) também têm as mesmas desconexões
Descarta se
Duas sessões do mesmo IP mantidas separadas, com tokens diferentes: a causa é outra. Os dois processos usam a mesma porta local: “Conflito de porta UDP fixa”
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo

Fontes

  1. RFC 6269: Issues with IP Address Sharing IETF
    Quando vários assinantes compartilham um endereço IPv4 por NAT ou CGN, não dá para distinguir usuários só pelo IP

Veja também

Mesma camada: Problemas que só afetam alguns

Mesmo sintoma (Invisível / entidade fantasma) em outras camadas

Ver o card interativo, com figuras e simulações