¿Cómo funciona LAN en los videojuegos si solo se permite transmitir una estación?

7

He leído en una LAN que los datos se transmiten en paquetes para permitir que solo una estación transmita en un momento dado, entonces, ¿cómo podría aplicarse esto en las fiestas LAN de videojuegos si solo un dispositivo va a transmitir en un determinado momento? hora ?

Los datos generalmente se transmiten en paquetes. Debido a que el medio es compartido, solo una estación a la vez puede transmitir un paquete.

Stalling, Data and Computer Communications , 5th ed.Pearson

eis3nheim
fuente
66
Vale la pena señalar que la premisa es incorrecta para la mayoría de las redes cableadas modernas; "Debido a que el medio es compartido, solo una estación a la vez puede transmitir un paquete". es cierto para 10BASE2 y parcialmente para 10BASE-T con concentradores repetidores. Pero la Ethernet moderna siempre se usa como conmutadores de almacenamiento y reenvío y muchas estaciones pueden transmitir en cualquier momento.
marcelm
3
(1) Wm. El nombre de Stallings tiene una 's' al final. (2) En otras noticias, películas / cine y la televisión / vídeo consisten en una serie de todavía imágenes. ¿Cómo es posible que las imágenes fijas puedan verse a los humanos como si se estuvieran moviendo? Piénsalo.
dave_thompson_085
LAN Doom funcionó bastante bien incluso hace veinte años en redes coaxiales 10base2, aunque las primeras versiones enviaron un paquete por cada bala de chaingun que causaba problemas.
pjc50
@marcelm, Wi-Fi es ahora el rey de la LAN (se envían más dispositivos con interfaces Wi-Fi que con interfaces de ethernet) y utiliza un medio compartido, semidúplex.
Ron Maupin

Respuestas:

20

Solo se permite la transmisión de un dispositivo a la vez. En cualquier otro momento, otro dispositivo puede transmitir.

¿Cómo puedes tener una conversación en una mesa si solo una persona puede hablar en cualquier momento?

Jörg W Mittag
fuente
3
Sí, espere (y para los protocolos en tiempo real generalmente se asegura de que los marcos sean realmente pequeños, de modo que no tenga que esperar mucho) o no use un medio compartido, entonces este problema simplemente no funciona t existe. Honestamente, la última vez que estuve en una fiesta LAN que realmente usó un medio compartido fue en 1995. Desde entonces, siempre usamos conmutadores.
Jörg W Mittag
2
Para ampliar la analogía de la mesa, sí, si hay una docena de personas en la mesa, es muy posible que termines sin poder decir lo que querías decir. Es por eso que las LAN empresariales tienen que usar conmutadores: el medio compartido CSMA no es un iniciador en las LAN Ethernet grandes. Antes de que los conmutadores de Ethernet se volvieran asequibles, había otros estándares (como Token Ring y 100VG) que reemplazaban el esquema CSMA / CD con un esquema de token, lo que significa que cada orador tenía un intervalo de tiempo (token) en el que tenían una oportunidad democrática de decir lo que quisieran decir
mere3ortal
99
@ eis3nheim sí. Pero el retraso es menor de lo que puedes percibir. Un paquete pequeño en una red rápida tarda microsegundos en transmitirse.
hobbs
1
@ eis3nheim: Por ejemplo, para Gigabit Ethernet, el tiempo de ranura mínimo (la trama más pequeña que puede enviar un dispositivo) es de ~ 4 µs (512 bytes). Hablando en términos de juego, eso es un retraso de aproximadamente medio cuadro a 120 fps. Y técnicamente hablando, GigE ni siquiera necesita un tiempo de ranura mínimo, ya que nunca se ha construido un equipo GigE mediano compartido. 10G y más, ya ni siquiera especifican el medio compartido, y por lo tanto no tienen un tiempo mínimo de ranura. Entonces, esto significa que, en GigE, si su juego solo envía los datagramas más pequeños posibles, entonces el retraso será de aproximadamente 1 fotograma a 120 fps para obtener una respuesta.
Jörg W Mittag
1
?? La mitad de un cuadro de video es de 4 ms (4 000 µs)
Qsigma
18

Algunos protocolos de LAN, en algunos medios, son half duplex. Eso significa que solo un host en una LAN puede enviar una trama en un momento dado. El ejemplo clásico de esto es el ethernet original, pero el ejemplo moderno es Wi-Fi.

El ethernet original funcionaba con coaxial, y usaba CSMA / CD (Acceso múltiple con detección de portadora con detección de colisión) para detectar colisiones a las que enviaban dos hosts al mismo tiempo, y luego enviaba una señal de interferencia porque los datos estaban corruptos. Cada host retrocedería un tiempo aleatorio e intentaría reenviar, pero los hosts primero escucharon el medio para ver si algún otro host estaba enviando.

Hoy, Wi-Fi utiliza un medio compartido: las ondas de radio. Solo un host a la vez puede enviar. Wi-Fi utiliza CSMA / CA (Acceso múltiple de detección de operador con prevención de colisión) para tratar de evitar colisiones.

En términos humanos, cada cuadro utilizado en el medio es bastante pequeño, y no permanece en el medio por mucho tiempo, por lo que al turnarse y compartir el medio, los anfitriones nos parecen, a los humanos lentos, usar el medio simultáneamente.

Ron Maupin
fuente
"half duplex" se aplica a un enlace, no a toda la red ...
rackandboneman
@rackandboneman, no entiendo la razón de tu comentario. No mencioné ni insinué nada sobre toda la red. Estaba hablando del medio en uso, lo que implica el enlace.
Ron Maupin
rackandboneman lo que llamamos un enlace ahora solía llamarse una red. @RonMaupin dijiste LAN, LAN = Red de área local
usuario253751
2
@immibis, el término LAN se usa en diferentes contextos. Puede significar un dominio de colisión (enlace), un dominio de difusión, una planta de cableado en un solo sitio (incluidas varias redes de capa 3), una red de campus, etc. En el contexto de esta pregunta, estaba usando LAN para referirme a El dominio de colisión.
Ron Maupin
Por supuesto, para un juego cliente-servidor (la mayoría de los juegos en estos días), el "problema" está de vuelta: la latencia mínima está determinada por la cantidad de datos que el servidor necesita procesar, así como la infraestructura de red entre los clientes y el servidor. Full-duplex puede ayudar, o no ayudar. Y sí, el servidor puede tener un mejor enlace que los clientes. Pero, en cualquier caso, todavía estamos hablando de latencias que no se acercan a la duración de una actualización de un solo juego (en LAN) y la mayoría de los juegos de red esperan que el mensaje se procese en alguna actualización futura, lo que permite mantener todas las máquinas en sincronizar a pesar del retraso.
Luaan
5

La respuesta (ingenua) es, o más bien solía ser, simple: se traduce en que cada remitente tiene que esperar una pequeña fracción de segundo. No hay forma de evitar esto porque así es como funciona la red a nivel físico, pero tampoco es un gran problema ya que estamos hablando de unos pocos microsegundos (micro, no mili).

La respuesta algo menos ingenua sería que, a menos que LAN también incluya WLAN, su presupuesto está desactualizado (incorrecto). En una WLAN, aún no tiene muchas opciones. Mientras una estación está enviando, ninguna otra estación puede enviar (a menos que utilicen un canal no superpuesto completamente diferente, pero en realidad son dos redes, no una, por lo que una sería trampa).

Las computadoras en una LAN moderna de "juegos" generalmente se conectarán a través de al menos 100BASE-TX, más probablemente 1000BASE-T, las cuales son compatibles con la operación full-duplex para empezar. Esto significa que puede enviar y recibir en el mismo cable físico (bueno, un cable diferente dentro del cable, pero aún) al mismo tiempo. Por lo tanto, la noción de tener que esperar mientras el cable está ocupado ya no es tan claro, ya que el envío ya no interfiere con la recepción. Solo el tráfico proveniente de varios otros remitentes interfiere independientemente.

Además, los cables hoy en día casi sin excepción se enchufarán a un conmutador (en lugar de a un concentrador) que, en principio (dependiendo de la calidad del hardware) puede enviar y recibir de forma independiente en cada puerto al mismo tiempo, y que en principio (de nuevo, dependiendo de la calidad del hardware) tiene suficiente ancho de banda interno para procesar N veces el rendimiento teórico máximo para N puertos. Su millaje puede variar ligeramente ya que la calidad del interruptor varía. Algunos conmutadores muy baratos tendrán N puertos, pero solo el ancho de banda suficiente correspondiente a la mitad de los datos que se pueden enviar a través de N puertos al mismo tiempo. A menudo, incluso eso es (sorprendentemente) lo suficientemente bueno.

Por lo tanto, todavía tendrá algunos retrasos ocasionales e inevitables debido a que los paquetes deben estar en cola cuando dos computadoras en la red envían casi al mismo tiempo al mismo destino (el conmutador toma esa decisión, no la tarjeta de red de su computadora) , pero en su mayor parte "simplemente funcionará". Tenga en cuenta que incluso cuando no "solo funciona", funciona de todos modos, solo toma un microsegundo o dos más para recibir los datos.

Damon
fuente
2

Ese libro está un poco anticuado, consulte información sobre cómo evolucionó Ethernet y la diferencia entre half-duplex y full duplex:

https://en.wikipedia.org/wiki/Ethernet#Evolution

boomi
fuente
1
Hoy, Wi-Fi sigue siendo half duplex, y se envían más dispositivos con interfaces Wi-Fi que dispositivos con interfaces ethernet, por lo que half duplex está vivo y bien.
Ron Maupin
Eso es definitivamente justo. Pensando en una fiesta LAN, aunque creo que las conexiones por cable.
boomi
@RonMaupin Con los avances en la tecnología MIMO, la limitación de una estación transmisora ​​en cualquier momento también se desvanece para Wi-Fi;)
marcelm
1
@marcelm, es half duplex porque una estación no puede enviar y recibir al mismo tiempo.
Ron Maupin
Más que un poco anticuado, diría. El libro de texto del autor de la pregunta tiene al menos 5 ediciones atrás.
Kevin Krumwiede
2

Esto es cierto para las implementaciones de Ethernet de la vieja escuela (10base2, 10base5 et al ... así como 10baseT y 100baseT SI se usó un concentrador sin conmutación) que realmente utilizaba un medio compartido física o lógicamente (planta de cableado) para conectar más de dos transmisiones puertos aptos. Si dos estaciones se transmiten accidentalmente al mismo tiempo, la señal en ese medio compartido se confunde: los puertos de red se diseñaron para detectar tales señales confusas y enviar otra señal al medio, que aún podría leerse correctamente sobre los datos confusos e indicar a todos que todas sus transmisiones no son válidas y tendrán que repetirse después de un tiempo de espera. El problema con estas configuraciones era que si algo cargaba la red a su límite con paquetes pequeños, el ancho de banda alcanzable terminaba significativamente por debajo del máximo teórico,

En una Ethernet totalmente conmutada (como se obtendría al construirla con cualquier parte comúnmente disponible en una tienda después de ca. 2004. "Completamente conmutada" porque existen formas híbridas (ed) donde se compartieron múltiples medios compartidos (con más de 2 puertos) separados por conmutadores), siempre hay dos puertos (uno en el conmutador, el otro en una computadora u otro dispositivo conectado) que comparten un medio. Cualquier ethernet tipo "T" tiene pares de cables separados para cada dirección, por lo que entre dos puertos siempre será posible que ambos transmitan y reciban al mismo tiempo. Un conmutador siempre ordenará paquetes de múltiples remitentes en una secuencia válida y lo transmitirá donde decida que necesita enviarlos, a menos que esté realmente sobrecargado (lo que es poco probable que ocurra en una situación de red doméstica).

Para completar, algunos otros sistemas LAN cableados no Ethernet (hoy en día raramente utilizados) (por ejemplo, Token Ring, FDDI) usaron diferentes métodos para disciplinar el acceso medio, en algunos casos negociando positivamente el privilegio de enviar antes de que alguien pudiera transmitir una carga útil.

WIFI también tiene que lidiar con un problema de medio compartido, y también el hecho de que dos transmisores en conflicto podrían tener una visibilidad diferente para diferentes receptores. Se utiliza un algoritmo llamado CSMA / CA para resolver esto.

rackandboneman
fuente
1

En una red de 10 Mb / s, un paquete de tamaño completo tarda aproximadamente 1 ms en transmitirse. La mayoría de los paquetes de juegos son mucho más pequeños, por lo que no se da cuenta de esta latencia y podría obtener cientos de actualizaciones por segundo con bastante facilidad. El gran retraso proviene de una distancia de al menos 18 ms por 1000 millas. Esta es la corriente de luz y no se puede evitar. Otros paquetes en el cable pueden agregar a esa latencia, eso se llama jitter.

Fred Phillips
fuente
1
" Otros paquetes en el cable pueden agregarse a esa latencia, eso se llama jitter " . En realidad, la jitter es una latencia cambiante. Creo que te refieres a la congestión, que es una de las causas de la inquietud. Los protocolos en tiempo real, por ejemplo, VoIP, a menudo pueden funcionar bien con una latencia bastante grande, pero una latencia en constante cambio (fluctuación) causará problemas graves.
Ron Maupin
Nunca suponga que el ancho de banda y la latencia deben estar relacionados. Un camión lleno de discos duros tiene un gran ancho de banda, pero también una gran latencia. La latencia se trata de cuando llega el primer bit, el ancho de banda se trata de qué tan rápido llegan los siguientes bits después del primero.
allo
1

En cada videojuego siempre hay un retraso entre el momento en que un jugador ofrece información (presionando un botón, moviendo un joystick, etc.) y la reacción a eso. Incluso hay un retraso perceptible entre la computadora que detecta un cambio de control y ese cambio aparece en el siguiente cuadro en la pantalla *, por lo que algunos jugadores reducirán la configuración de gráficos (haciendo que el juego sea menos bonito) para mantener 60 FPS.

Las redes también introducirán este retraso por varias razones, una de las cuales es porque los jugadores no pueden recibir dos mensajes al mismo tiempo. Si otras dos computadoras intentan enviar un mensaje al mismo tiempo, una se apagará y dejará que la otra vaya primero (en un medio de transmisión compartido, como WiFi) o un conmutador recibirá ambas al mismo tiempo, pero enviará una antes de otro al destino (Ethernet moderna con cable).

Sin embargo, los retrasos en una LAN son pequeños y se ven reducidos por la cantidad de retraso (decenas o incluso cientos de veces mayor) que se produce al jugar en Internet.

Entonces, ¿cómo puede funcionar eso? Por lo general, los juegos modelarán al otro jugador, prediciendo el movimiento futuro en función del movimiento actual, para que lo veas moverse suavemente en una determinada dirección, incluso si tu computadora no siempre recibe actualizaciones inmediatas sobre dónde está realmente. (El código que hace esto a menudo se denomina código de red ). Es por eso que los jugadores a veces saltan repentinamente de un lugar a otro; la predicción se desincronizó con lo que realmente estaba sucediendo, a menudo debido a un retraso de la red.


* Esto generalmente no se percibe como "vi un retraso" pero "los controles se sienten lentos" o similares.

cjs
fuente
1
Sin mencionar el retraso entre "algo cambia en la pantalla", "notas que algo cambia en la pantalla", "planeas una acción de respuesta" y "realmente mueves tu mano / dedo". Todos los animales grandes necesitan circuitos de compensación de retraso bastante decentes para tener la oportunidad de hacer cualquier cosa en el mundo real. La ocultación de la latencia es una cosa tanto en los animales como en el código de red del juego, y las neuronas transmiten mucho más lentamente que los cables de cobre; Las neuronas sanas más rápidas transmiten a unos 120 m / s. Incluso con cables mucho más largos, eso es mucho más latencia que la que se obtiene en una LAN típica.
Luaan