SlideShare uma empresa Scribd logo
Problemas de Rede
Prof. Fernando Vieira da Silva, MSc.
Latência
● Diferença de tempo entre uma causa observável e um efeito
observável
● Certo nível de latência é inevitável…
● Precisamos trabalhar para REDUZIR a latência
Latência em VR
● VR (Realidade Virtual) é a mais sensível a latência
● As pessoas esperam ver coisas diferentes assim que mexem a
cabeça
● Latência < 20ms é necessária para manter o usuário em VR
Latência em Jogos de Ação
● Jogos de Ação também são sensíveis a latência
● No máximo 150ms antes dos jogadores sentirem
Latência em Jogos RTS
● Jogos RTS tem mais tolerância à latência
● Podem tolerar até 500ms
Latência NÃO causada por rede
● Latência de Entrada: Tempo entre pressionar um botão e o
jogo detectar que foi pressionado
● Exemplo: Um jogo roda a 60 fps e lê o gamepad no começo de
cada frame
● Se o jogador pressionar o botão “jump” 2ms depois do jogo ler
o gamepad, quase um frame inteiro vai passar até o jogo
perceber...
Latência por Pipeline de
Renderização
● GPUs NÃO executam comandos em tempo real…
● O driver insere os comandos num buffer para serem
executados posteriormente
● Se houver muito para renderizar, a GPU pode atrasar...
Latência por Renderização
Multithread
● Alguns jogos usam mais de uma thread para simular o jogo e
para renderizar (usando a GPU)
● Isso pode causar ainda mais latência...
Outros tipos de latência
● VSync: É comum trocar a imagem em um vídeo card em seu
blanking interval (normalmente 1/60 de segundo). Se o frame
atrasar para renderizar, pode perder esse intervalo…
● Display: TVs e monitores fazem seu próprio processamento
em imagens (algumas tem o “Game Mode” para reduzir isso)
● Tempo de resposta dos pixels: Monitores LCD levam algum
tempo para atualizar o brilho dos pixels – poucos milisegundos
(geralmente um problema em aparelhos antigos)
Latência de Rede
● Atraso por Processamento: Tempo gasto pelo roteador
examinando endereços de origem e destino para determinar a
rota
Latência de Rede
● Atraso de Transmissão: Tempo gasto escrevendo os bits no
meio físico
Latência de Rede
● Atraso por Enfileiramento: Caso pacotes cheguem mais
rápido do que o roteador consegue processar, eles são
enfileirados e podem gerar atraso.
Latência de Rede
● Atraso de Propagação: Informação não pode viajar mais
rápido que a velocidade da luz. Sempre haverá atraso para
enviar dados em longa distância (ex: leva 12ms para uma
informação atravessar os EUA)
Latência de Rede
● Atraso de Propagação: Informação não pode viajar mais
rápido que a velocidade da luz. Sempre haverá atraso para
enviar dados em longa distância (ex: leva 12ms para uma
informação atravessar os EUA)
Se a rede tem tantos problemas
Podemos fazer algo para melhorar isso?
Dicas para Reduzir Latência
● Aumentar a largura de banda do servidor pode reduzir o atraso
de transmissão
Dicas para Reduzir Latência
● Enviar MENOS pacotes
MAIORES:
● Menos pacotes na rede (menor
chance de enfileiramento)
● Menos banda gasta com
cabeçalhos
● Menor tempo gasto
processando os cabeçalhos no
roteador
Dicas para Reduzir Latência
● Para minimizar latência por propagação:
● Priorizar localização geográfica em ponto-a-ponto
● Garantir servidores próximos em cliente-servidor
Jitter
● RTT (round trip time) – Tempo que leva para um pacote ir de
um host para outro e o pacote de resposta voltar.
● Para dois hosts, espera-se que o RTT esteja dentro de uma
determinada faixa
● Quando o RTT desvia do valor esperado, temos o Jitter
Jitter
● RTT (round trip time) – Tempo que leva para um pacote ir de
um host para outro e o pacote de resposta voltar.
● Para dois hosts, espera-se que o RTT esteja dentro de uma
determinada faixa
● Quando o RTT desvia do valor esperado, temos o Jitter
Se o Jitter é a variação do RTT
O que causa essa variação?
Atrasos de rede contribuem para o
Jitter
● Atraso de Processamento: tempo de processamento de
pacotes pode variar conforme rotas são ajustadas
dinamicamente
● Atraso de Transmissão e Propagação: podem variar se rotas
forem alteradas dinamicamente para evitar caminhos
congestionados
● Atraso por enfileiramento: Como o número de pacotes
chegando em um roteador muda, o tempo de enfileiramento
também pode variar
Jitter pode causar pacotes fora de
ordem
Jitter – O que fazer?
● Use TCP OU Implemente seu próprio mecanismo para garantir
entrega de pacotes EM ORDEM
● Técnicas que reduzem latência também ajudam:
● Use MENOS pacotes MAIORES
● Mantenha servidores o mais próximo possível dos jogadores
Perda de pacotes
● Causas:
● Meio Físico não confiável: Ex: Interferência eletromagnética
externa
● Camada de Link não confiável: o canal pode estar cheio e
jogar pacotes fora.
● Rede não confiável: Pacotes chegam mais rápido do que
podem ser processados, enfileiram, e o roteador pode
começar a jogar pacotes fora.
● Mantenha servidores próximos para reduzir a perda de pacotes
(menos transmissão → menos chances de perda)
Fim!

Mais conteúdo relacionado

Semelhante a Problemas de Rede em Jogos Multi-jogadores

Camada de rede parte1
Camada de rede   parte1Camada de rede   parte1
Camada de rede parte1
Universidade Federal do Pampa
 
Rota Estática / Link State / Vetor de Distância
Rota Estática / Link State / Vetor de DistânciaRota Estática / Link State / Vetor de Distância
Rota Estática / Link State / Vetor de Distância
Rodrigo Rovere - CCIE RS
 
FISL 10: VoIP e mitos: por que a voz picota, atrasa... QoS e seus desafios
FISL 10: VoIP e mitos: por que a voz picota, atrasa... QoS e seus desafiosFISL 10: VoIP e mitos: por que a voz picota, atrasa... QoS e seus desafios
FISL 10: VoIP e mitos: por que a voz picota, atrasa... QoS e seus desafios
Marlon Dutra
 
Apresentação de Protocolos de Roteamento IP
Apresentação de Protocolos de Roteamento IPApresentação de Protocolos de Roteamento IP
Apresentação de Protocolos de Roteamento IP
Wendell Rodrigues
 
Lab 06 ping_com_udp
Lab 06 ping_com_udpLab 06 ping_com_udp
Lab 06 ping_com_udp
Almeida Martins
 
Arquitetura ponto-a-ponto para jogos Multi-jogadores
Arquitetura ponto-a-ponto para jogos Multi-jogadoresArquitetura ponto-a-ponto para jogos Multi-jogadores
Arquitetura ponto-a-ponto para jogos Multi-jogadores
Fernando Vieira da Silva
 
Camada de aplicação parte1
Camada de aplicação parte1Camada de aplicação parte1
Camada de aplicação parte1
Universidade Federal do Pampa
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloud
PET Computação
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
tdc-globalcode
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2
Caio Miranda
 
Economizando Recursos com terminais Burros em Software Livre - Luiz Eduardo G...
Economizando Recursos com terminais Burros em Software Livre - Luiz Eduardo G...Economizando Recursos com terminais Burros em Software Livre - Luiz Eduardo G...
Economizando Recursos com terminais Burros em Software Livre - Luiz Eduardo G...
Tchelinux
 
Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"
Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"
Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"
Fernando Vieira da Silva
 
Wireless - Aula 4
Wireless - Aula 4Wireless - Aula 4
Wireless - Aula 4
Guilherme Nonino Rosa
 
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDADesenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Filipo Mór
 
02 - Aplicação-Transporte.pdf
02 - Aplicação-Transporte.pdf02 - Aplicação-Transporte.pdf
02 - Aplicação-Transporte.pdf
edsonjcg
 
Jogos Multi-jogadores: Revisão sobre Redes de computadores
Jogos Multi-jogadores: Revisão sobre Redes de computadoresJogos Multi-jogadores: Revisão sobre Redes de computadores
Jogos Multi-jogadores: Revisão sobre Redes de computadores
Fernando Vieira da Silva
 
Seminario SD - Redes de Alta Performance
Seminario SD - Redes de Alta PerformanceSeminario SD - Redes de Alta Performance
Seminario SD - Redes de Alta Performance
Ronan Borges
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostas
Força Tauá
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Filipo Mór
 

Semelhante a Problemas de Rede em Jogos Multi-jogadores (20)

Camada de rede parte1
Camada de rede   parte1Camada de rede   parte1
Camada de rede parte1
 
Rota Estática / Link State / Vetor de Distância
Rota Estática / Link State / Vetor de DistânciaRota Estática / Link State / Vetor de Distância
Rota Estática / Link State / Vetor de Distância
 
FISL 10: VoIP e mitos: por que a voz picota, atrasa... QoS e seus desafios
FISL 10: VoIP e mitos: por que a voz picota, atrasa... QoS e seus desafiosFISL 10: VoIP e mitos: por que a voz picota, atrasa... QoS e seus desafios
FISL 10: VoIP e mitos: por que a voz picota, atrasa... QoS e seus desafios
 
Apresentação de Protocolos de Roteamento IP
Apresentação de Protocolos de Roteamento IPApresentação de Protocolos de Roteamento IP
Apresentação de Protocolos de Roteamento IP
 
Lab 06 ping_com_udp
Lab 06 ping_com_udpLab 06 ping_com_udp
Lab 06 ping_com_udp
 
Arquitetura ponto-a-ponto para jogos Multi-jogadores
Arquitetura ponto-a-ponto para jogos Multi-jogadoresArquitetura ponto-a-ponto para jogos Multi-jogadores
Arquitetura ponto-a-ponto para jogos Multi-jogadores
 
Camada de aplicação parte1
Camada de aplicação parte1Camada de aplicação parte1
Camada de aplicação parte1
 
Testes de escalabilidade usando cloud
Testes de escalabilidade usando cloudTestes de escalabilidade usando cloud
Testes de escalabilidade usando cloud
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2
 
Economizando Recursos com terminais Burros em Software Livre - Luiz Eduardo G...
Economizando Recursos com terminais Burros em Software Livre - Luiz Eduardo G...Economizando Recursos com terminais Burros em Software Livre - Luiz Eduardo G...
Economizando Recursos com terminais Burros em Software Livre - Luiz Eduardo G...
 
Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"
Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"
Arquitetura de jogos multi-jogadores: Estudo de caso "Starsiege Tribes"
 
Cirrus
CirrusCirrus
Cirrus
 
Wireless - Aula 4
Wireless - Aula 4Wireless - Aula 4
Wireless - Aula 4
 
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDADesenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
 
02 - Aplicação-Transporte.pdf
02 - Aplicação-Transporte.pdf02 - Aplicação-Transporte.pdf
02 - Aplicação-Transporte.pdf
 
Jogos Multi-jogadores: Revisão sobre Redes de computadores
Jogos Multi-jogadores: Revisão sobre Redes de computadoresJogos Multi-jogadores: Revisão sobre Redes de computadores
Jogos Multi-jogadores: Revisão sobre Redes de computadores
 
Seminario SD - Redes de Alta Performance
Seminario SD - Redes de Alta PerformanceSeminario SD - Redes de Alta Performance
Seminario SD - Redes de Alta Performance
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostas
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
 

Mais de Fernando Vieira da Silva

Introdução a jogos Multi-jogadores
Introdução a jogos Multi-jogadoresIntrodução a jogos Multi-jogadores
Introdução a jogos Multi-jogadores
Fernando Vieira da Silva
 
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
Fernando Vieira da Silva
 
Escalabilidade em Jogos Multi-jogadores
Escalabilidade em Jogos Multi-jogadoresEscalabilidade em Jogos Multi-jogadores
Escalabilidade em Jogos Multi-jogadores
Fernando Vieira da Silva
 
Introdução à Unity High Level API (HLAPI)
Introdução à Unity High Level API (HLAPI)Introdução à Unity High Level API (HLAPI)
Introdução à Unity High Level API (HLAPI)
Fernando Vieira da Silva
 
Instruções para Anotações de Emoções em Tweets
Instruções para Anotações de Emoções em TweetsInstruções para Anotações de Emoções em Tweets
Instruções para Anotações de Emoções em Tweets
Fernando Vieira da Silva
 
Identifying Emotions in Tweets related to the Brazilian Stock Market
Identifying Emotions in Tweets related to the Brazilian Stock MarketIdentifying Emotions in Tweets related to the Brazilian Stock Market
Identifying Emotions in Tweets related to the Brazilian Stock Market
Fernando Vieira da Silva
 
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
Fernando Vieira da Silva
 
Palestra otimização em linguagem c - e-stude.com
Palestra otimização em linguagem c - e-stude.comPalestra otimização em linguagem c - e-stude.com
Palestra otimização em linguagem c - e-stude.com
Fernando Vieira da Silva
 

Mais de Fernando Vieira da Silva (8)

Introdução a jogos Multi-jogadores
Introdução a jogos Multi-jogadoresIntrodução a jogos Multi-jogadores
Introdução a jogos Multi-jogadores
 
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
Arquitetura de Jogos Multi-jogadores: Estudo de caso "Age of Empires"
 
Escalabilidade em Jogos Multi-jogadores
Escalabilidade em Jogos Multi-jogadoresEscalabilidade em Jogos Multi-jogadores
Escalabilidade em Jogos Multi-jogadores
 
Introdução à Unity High Level API (HLAPI)
Introdução à Unity High Level API (HLAPI)Introdução à Unity High Level API (HLAPI)
Introdução à Unity High Level API (HLAPI)
 
Instruções para Anotações de Emoções em Tweets
Instruções para Anotações de Emoções em TweetsInstruções para Anotações de Emoções em Tweets
Instruções para Anotações de Emoções em Tweets
 
Identifying Emotions in Tweets related to the Brazilian Stock Market
Identifying Emotions in Tweets related to the Brazilian Stock MarketIdentifying Emotions in Tweets related to the Brazilian Stock Market
Identifying Emotions in Tweets related to the Brazilian Stock Market
 
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
Identifying Emotions in Tweets for Brazilian Stock Market Prediction (WTD Pre...
 
Palestra otimização em linguagem c - e-stude.com
Palestra otimização em linguagem c - e-stude.comPalestra otimização em linguagem c - e-stude.com
Palestra otimização em linguagem c - e-stude.com
 

Problemas de Rede em Jogos Multi-jogadores

  • 1. Problemas de Rede Prof. Fernando Vieira da Silva, MSc.
  • 2. Latência ● Diferença de tempo entre uma causa observável e um efeito observável ● Certo nível de latência é inevitável… ● Precisamos trabalhar para REDUZIR a latência
  • 3. Latência em VR ● VR (Realidade Virtual) é a mais sensível a latência ● As pessoas esperam ver coisas diferentes assim que mexem a cabeça ● Latência < 20ms é necessária para manter o usuário em VR
  • 4. Latência em Jogos de Ação ● Jogos de Ação também são sensíveis a latência ● No máximo 150ms antes dos jogadores sentirem
  • 5. Latência em Jogos RTS ● Jogos RTS tem mais tolerância à latência ● Podem tolerar até 500ms
  • 6. Latência NÃO causada por rede ● Latência de Entrada: Tempo entre pressionar um botão e o jogo detectar que foi pressionado ● Exemplo: Um jogo roda a 60 fps e lê o gamepad no começo de cada frame ● Se o jogador pressionar o botão “jump” 2ms depois do jogo ler o gamepad, quase um frame inteiro vai passar até o jogo perceber...
  • 7. Latência por Pipeline de Renderização ● GPUs NÃO executam comandos em tempo real… ● O driver insere os comandos num buffer para serem executados posteriormente ● Se houver muito para renderizar, a GPU pode atrasar...
  • 8. Latência por Renderização Multithread ● Alguns jogos usam mais de uma thread para simular o jogo e para renderizar (usando a GPU) ● Isso pode causar ainda mais latência...
  • 9. Outros tipos de latência ● VSync: É comum trocar a imagem em um vídeo card em seu blanking interval (normalmente 1/60 de segundo). Se o frame atrasar para renderizar, pode perder esse intervalo… ● Display: TVs e monitores fazem seu próprio processamento em imagens (algumas tem o “Game Mode” para reduzir isso) ● Tempo de resposta dos pixels: Monitores LCD levam algum tempo para atualizar o brilho dos pixels – poucos milisegundos (geralmente um problema em aparelhos antigos)
  • 10. Latência de Rede ● Atraso por Processamento: Tempo gasto pelo roteador examinando endereços de origem e destino para determinar a rota
  • 11. Latência de Rede ● Atraso de Transmissão: Tempo gasto escrevendo os bits no meio físico
  • 12. Latência de Rede ● Atraso por Enfileiramento: Caso pacotes cheguem mais rápido do que o roteador consegue processar, eles são enfileirados e podem gerar atraso.
  • 13. Latência de Rede ● Atraso de Propagação: Informação não pode viajar mais rápido que a velocidade da luz. Sempre haverá atraso para enviar dados em longa distância (ex: leva 12ms para uma informação atravessar os EUA)
  • 14. Latência de Rede ● Atraso de Propagação: Informação não pode viajar mais rápido que a velocidade da luz. Sempre haverá atraso para enviar dados em longa distância (ex: leva 12ms para uma informação atravessar os EUA) Se a rede tem tantos problemas Podemos fazer algo para melhorar isso?
  • 15. Dicas para Reduzir Latência ● Aumentar a largura de banda do servidor pode reduzir o atraso de transmissão
  • 16. Dicas para Reduzir Latência ● Enviar MENOS pacotes MAIORES: ● Menos pacotes na rede (menor chance de enfileiramento) ● Menos banda gasta com cabeçalhos ● Menor tempo gasto processando os cabeçalhos no roteador
  • 17. Dicas para Reduzir Latência ● Para minimizar latência por propagação: ● Priorizar localização geográfica em ponto-a-ponto ● Garantir servidores próximos em cliente-servidor
  • 18. Jitter ● RTT (round trip time) – Tempo que leva para um pacote ir de um host para outro e o pacote de resposta voltar. ● Para dois hosts, espera-se que o RTT esteja dentro de uma determinada faixa ● Quando o RTT desvia do valor esperado, temos o Jitter
  • 19. Jitter ● RTT (round trip time) – Tempo que leva para um pacote ir de um host para outro e o pacote de resposta voltar. ● Para dois hosts, espera-se que o RTT esteja dentro de uma determinada faixa ● Quando o RTT desvia do valor esperado, temos o Jitter Se o Jitter é a variação do RTT O que causa essa variação?
  • 20. Atrasos de rede contribuem para o Jitter ● Atraso de Processamento: tempo de processamento de pacotes pode variar conforme rotas são ajustadas dinamicamente ● Atraso de Transmissão e Propagação: podem variar se rotas forem alteradas dinamicamente para evitar caminhos congestionados ● Atraso por enfileiramento: Como o número de pacotes chegando em um roteador muda, o tempo de enfileiramento também pode variar
  • 21. Jitter pode causar pacotes fora de ordem
  • 22. Jitter – O que fazer? ● Use TCP OU Implemente seu próprio mecanismo para garantir entrega de pacotes EM ORDEM ● Técnicas que reduzem latência também ajudam: ● Use MENOS pacotes MAIORES ● Mantenha servidores o mais próximo possível dos jogadores
  • 23. Perda de pacotes ● Causas: ● Meio Físico não confiável: Ex: Interferência eletromagnética externa ● Camada de Link não confiável: o canal pode estar cheio e jogar pacotes fora. ● Rede não confiável: Pacotes chegam mais rápido do que podem ser processados, enfileiram, e o roteador pode começar a jogar pacotes fora. ● Mantenha servidores próximos para reduzir a perda de pacotes (menos transmissão → menos chances de perda)
  • 24. Fim!