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

Guia do Lag em Jogos › L8 Sockets e protocolos

Configuração de retransmissão do UDP confiável Reliable-UDP tuning (KCP, ENet…)

ID da causa sk-reliable-udp · 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 as regras de retransmissão implementadas sobre o UDP forem conservadoras demais, a recuperação demora. Se forem agressivas demais, congestionam ainda mais a conexão.

Por quê Intervalo, número de retransmissões e tamanho da janela não combinam com a conexão → Efeito Recuperação lenta, ou envios duplicados que pioram o congestionamento → Na tela Skill não sai, avanço rápido, lag pior quando há congestionamento

Sintomas
Ação perdida / rollback, Avanço rápido
Fatores
Perda de pacotes, Latência
Quem é afetado
Só eu
Quando
Aleatoriamente, de vez em quando
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: retransmitir com base no tempo de ida e volta medido, separar canais por importância. Cliente: aplicar as mesmas configurações de retransmissão e de canais do servidor.
No gráfico
Picos aleatórios · Taxa de retransmissão do UDP confiável, RTT no jogo
Onde olhar
Registrar no servidor e no cliente as estatísticas que a biblioteca usada mantém por conexão (retransmissões, tempo de ida e volta estimado, tempo de espera para retransmitir) e comparar com a taxa real de perda da conexão do mesmo jogador (medida com mtr)
Confirma se
Taxa de retransmissão várias vezes maior que a perda real da conexão: configuração agressiva demais. Espera para retransmitir várias vezes maior que o tempo de ida e volta medido: configuração conservadora demais
Descarta se
Taxa de retransmissão parecida com a perda da conexão e espera compatível com o tempo de ida e volta: não é problema de configuração. Verificar a perda na própria conexão
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo

Fontes

  1. RFC 8085: UDP Usage Guidelines IETF
    A retransmissão pode agravar o congestionamento e deve passar pelo controle de congestionamento; o tempo de ida e volta é estimado pela média de várias medições (EWMA), com valor inicial de 1 s; reduzir a taxa de envio quando o timer expira

Veja também

Mesma camada: L8 Sockets e protocolos

Mesmo sintoma (Ação perdida / rollback) em outras camadas

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