Eu li na LAN que os dados são transmitidos em pacotes para permitir que apenas uma estação transmita em um determinado momento; portanto, como isso pode ser aplicado nas partes da LAN dos jogos de vídeo se apenas um dispositivo for transmitir em um determinado momento? Tempo ?
Os dados são geralmente transmitidos em pacotes. Como o meio é compartilhado, apenas uma estação por vez pode transmitir um pacote.
Stalling, Comunicação de Dados e Computador , 5a ed.
Respostas:
Apenas um dispositivo pode transmitir a qualquer momento. A qualquer momento, outro dispositivo pode transmitir.
Como você pode ter uma conversa na mesa de jantar se apenas uma pessoa pode falar a qualquer momento?
fonte
Alguns protocolos de rede local, em algumas mídias, são half-duplex. Isso significa que apenas um host em uma LAN pode enviar um quadro a qualquer momento. O exemplo clássico disso é a Ethernet original, mas o exemplo moderno é o Wi-Fi.
A ethernet original era executada no cabo coaxial e usava o CSMA / CD (acesso múltiplo por detecção de colisão com detecção de colisão) para detectar colisões onde dois hosts estavam enviando ao mesmo tempo e, em seguida, enviava um sinal de obstrução porque os dados estavam corrompidos. Cada host recuava aleatoriamente e tentava reenviar, mas os hosts primeiro ouviam o meio para ver se algum outro host estava enviando.
Hoje, o Wi-Fi usa um meio compartilhado: as ondas de rádio. Somente um host por vez pode enviar. O Wi-Fi usa o CSMA / CA (acesso múltiplo por detecção de operadora com prevenção de colisões) para tentar evitar colisões.
Em termos humanos, cada quadro usado no meio é bastante pequeno e não permanece no meio por muito tempo; assim, revezando-se e compartilhando o meio, os anfitriões aparecem, para nós humanos lentos, para usar simultaneamente o meio.
fonte
A resposta (ingênua) é, ou melhor, costumava ser simples: traduz para cada remetente que precisa esperar uma pequena fração de segundo. Não há como contornar isso, porque é assim que a rede funciona no nível físico, mas também não é um grande problema, pois estamos falando de alguns microssegundos (micro, não mili).
A resposta um pouco menos ingênua seria que, a menos que a LAN também inclua WLAN, sua cotação esteja desatualizada (incorreta). Em uma WLAN, você ainda não tem muitas opções. Enquanto uma estação está enviando, nenhuma outra estação pode enviar (a menos que eles usem um canal não sobreposto completamente diferente, mas são realmente duas redes, não uma, então uma estaria trapaceando).
Os computadores em uma LAN moderna de "jogos" normalmente serão conectados via pelo menos 100BASE-TX, provavelmente 1000BASE-T, ambos compatíveis com a operação full-duplex, para começar. Isso significa que você pode enviar e receber no mesmo cabo físico (bem, um fio diferente dentro do cabo, mas ainda assim) ao mesmo tempo. A noção de ter que esperar enquanto o cabo está ocupado não é mais tão simples, pois o envio realmente não interfere no recebimento. Somente o tráfego proveniente de vários outros remetentes interfere independentemente.
Além disso, hoje em dia os cabos quase sem exceção são conectados a um switch (em vez de um hub) que pode, em princípio (dependendo da qualidade do hardware) enviar e receber independentemente em todas as portas ao mesmo tempo e que, em princípio (novamente, dependendo da qualidade do hardware) tem largura de banda interna suficiente para processar N vezes a taxa de transferência teórica máxima para N portas. Sua milhagem pode variar um pouco, pois a qualidade do comutador varia. Alguns comutadores muito baratos terão N portas, mas apenas largura de banda suficiente correspondente à metade da quantidade de dados que pode ser enviada pelas N portas ao mesmo tempo. Muitas vezes, mesmo isso é (surpreendentemente) perfeitamente bom o suficiente.
Assim, você ainda terá alguns atrasos inevitáveis ocasionais, porque os pacotes precisam ser enfileirados quando dois computadores na rede enviam quase ao mesmo tempo para o mesmo destino (o comutador toma essa decisão, não a placa de rede do computador) , mas na maioria das vezes "funcionará". Observe que, mesmo quando "não funciona", funciona de qualquer maneira, apenas leva um microssegundo ou dois a mais para que os dados sejam recebidos.
fonte
Esse livro é um pouco datado, confira algumas informações sobre como a Ethernet evoluiu e a diferença entre half-duplex e full duplex:
https://en.wikipedia.org/wiki/Ethernet#Evolution
fonte
Isso é verdade para implementações de Ethernet da velha escola (10base2, 10base5 et al ... assim como 10baseT e 100baseT SE um hub sem comutação foi usado) que realmente usava um meio compartilhado fisicamente ou logicamente (planta de cabeamento) para conectar mais de duas transmissões portas capazes. Se duas estações transmitidas acidentalmente ao mesmo tempo, o sinal naquele meio compartilhado fica distorcido - as portas de rede foram projetadas para detectar esses sinais distorcidos e enviar outro sinal ao meio, que ainda pode ser lido corretamente nos dados distorcidos e sinaliza para todos que todas as suas transmissões são inválidas e terão que ser repetidas após um tempo de recuo. O problema com essas configurações era que, se alguma coisa carregava a rede até o limite com pequenos pacotes, a largura de banda alcançável terminava significativamente abaixo do máximo teórico,
Em uma Ethernet totalmente comutada (como seria possível ao construí-la com todas as peças normalmente disponíveis em uma loja após 2004). "Totalmente comutada" porque existem formas híbridas (ed) onde várias mídias compartilhadas (com mais de 2 portas) eram separados por comutadores), sempre há duas portas (uma no comutador e a outra em um computador ou outro dispositivo conectado) compartilhando uma mídia. Qualquer ethernet do tipo "T" possui pares de fios separados para cada direção, portanto, entre duas portas, sempre será possível que ambas transmitam e recebam ao mesmo tempo. Um switch sempre solicita pacotes de vários remetentes em uma sequência válida e o transmite onde quer que decida enviá-los, a menos que esteja realmente sobrecarregado (o que dificilmente ocorrerá em uma situação de rede doméstica).
Para garantir a integridade, alguns outros sistemas de LAN com fio não Ethernet (hoje em dia raramente usados) (por exemplo, Token Ring, FDDI) usavam métodos diferentes para disciplinar o acesso médio, em alguns casos negociando positivamente o privilégio de enviar antes que alguém pudesse transmitir uma carga útil.
O WIFI também precisa lidar com um problema comum de mídia e também com o fato de que dois transmissores conflitantes podem ter visibilidade diferente para diferentes receptores. Um algoritmo chamado CSMA / CA é usado para resolver isso.
fonte
Em uma rede de 10 Mb / s, um pacote completo leva cerca de 1 ms para transmitir. A maioria dos pacotes de jogos é muito menor, então você não percebe essa latência e pode receber centenas de atualizações por segundo com bastante facilidade. O grande atraso vem da distância de pelo menos 18ms por 1000 milhas. Essa é a velocidade da luz e não pode ser evitada. Outros pacotes no fio podem adicionar a essa latência - isso é chamado de instabilidade.
fonte
Em todos os videogames, sempre há um atraso entre o momento em que um jogador oferece informações (pressionando um botão, movendo um joystick etc.) e a reação a isso. Existe até um atraso perceptível entre o computador detectando uma alteração de controle e essa alteração que aparece no próximo quadro na tela *, e é por isso que alguns jogadores reduzem as configurações gráficas (tornando o jogo menos bonito) para manter 60 FPS.
As redes também apresentarão esse atraso por várias razões, uma das quais porque os jogadores não podem receber duas mensagens ao mesmo tempo. Se dois outros computadores tentarem enviar uma mensagem ao mesmo tempo, um deles recuará e deixará o outro ir primeiro (em um meio de transmissão compartilhado, como WiFi) ou um comutador receberá os dois ao mesmo tempo, mas enviará um antes do outro para o destino (Ethernet com fio moderna).
Os atrasos em uma LAN são pequenos, no entanto, e são diminuídos pela quantidade de atraso (dezenas ou até centenas de vezes maior) produzido pela reprodução pela Internet.
Então, como isso pode funcionar? Normalmente, os jogos modelam o outro jogador, prevendo movimentos futuros com base no movimento atual, para que você o veja se movendo suavemente em uma determinada direção, mesmo que seu computador nem sempre esteja recebendo atualizações imediatas sobre onde ele realmente está. (O código que faz isso geralmente é chamado de código de rede .) É por isso que os jogadores às vezes pulam de repente de um lugar para outro; a previsão ficou fora de sincronia com o que realmente estava acontecendo, geralmente devido a um atraso na rede.
* Isso geralmente não é percebido como "vi um atraso", mas "os controles parecem lentos" ou similares.
fonte