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

Guia do Lag em Jogos › Causas-raiz da retransmissão TCP

ACKs atrasados ou perdidos (upload saturado) ACK path congestion on asymmetric links

ID da causa rt-ack-path · Responsável principal Externo (Externo) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)

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

Os dados chegaram bem, mas, se o ACK de “recebido” atrasa ou se perde na fila de upload lotada, quem envia considera o pacote perdido e retransmite.

Por quê Upload de vídeo ou backup na nuvem em casa lota o upload → Efeito Os ACKs atrasam centenas de ms na fila do roteador ou são descartados quando ela estoura → Na tela Os pacotes de jogo que o servidor envia em geral chegam na hora. Seus comandos, presos na mesma fila de upload, atrasam: input lag, rubber banding e, às vezes, retransmissões espúrias

Sintomas
Input lag, Rubber banding
Fatores
Latência, Perda de pacotes
Quem é afetado
Mesma casa
Quando
Aleatoriamente, de vez em quando, Horário de pico à noite
Responsável
Responsável principal Externo (Externo) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Mostrar o estado da rede na tela quando o ping disparar, com o aviso “verifique programas fazendo upload”.
O que fazer (Externo)
Orientar os jogadores a encurtar a fila de upload com SQM no roteador, priorizar pacotes pequenos (ACKs) e limitar a velocidade de upload (upload de vídeo, backup na nuvem).
Números de referência
Um ACK posterior confirma também os anteriores, então perder alguns ACKs em geral não causa problema. O problema é o atraso na fila.
No gráfico
Alto só em alguns · RTT (ping) por conexão
Onde olhar
No PC do jogador, comparar o ping até o servidor do jogo com o upload (upload de vídeo, backup na nuvem) ligado e desligado. No servidor, ver o rtt da conexão desse jogador com ss -ti
Confirma se
Só durante o upload o ping sobe para centenas de ms e aparecem input lag e rubber banding; parando o upload, tudo volta logo. No servidor, o rtt dessa conexão também sobe nesse momento
Descarta se
Perda e latência sem relação com o upload: “Perda no trecho sem fio” ou causa no caminho. Só o sentido servidor → jogador atrasado, sem relação com o upload: “Estouro de fila no gargalo”
Como verificar
Verificação no ambiente do jogador

Fontes

  1. RFC 3449: TCP Performance Implications of Network Path Asymmetry IETF
    Em links assimétricos com upload estreito, ACKs atrasados ou perdidos derrubam o desempenho do TCP; como o ACK é cumulativo, um ACK posterior cobre os que se perderam; contramedidas como escalonamento com prioridade para ACKs
  2. Smart Queue Management Bufferbloat.net
    Manter a fila curta no roteador com gerenciamento de fila e shaping
  3. tc-cake(8) — Linux manual page iproute2
    O CAKE separa os fluxos e minimiza a latência dos fluxos esparsos (sparse flows)
  4. ss(8) — Linux manual page iproute2
    rtt (tempo médio de ida e volta) e rttvar (desvio) no ss -i

Veja também

Mesma camada: Causas-raiz da retransmissão TCP

Mesmo sintoma (Input lag) em outras camadas

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