¿Los adaptadores de red leen los bits entrantes en una sola secuencia?


9

Cuando un adaptador de red Gigabit recibe datos, ¿cómo recibe los bits? ¿Lo está viendo todo en una secuencia de 0 y 1? ¿O hay de alguna manera múltiples transmisiones de 0 y 1 entrando al mismo tiempo?

Por ejemplo ... digamos que hay dos dispositivos de envío y un dispositivo de recepción.

Los dispositivos 1 y 2 comienzan a enviar datos de red al dispositivo 3 al mismo tiempo.

Mi suposición es que desde el punto de vista del adaptador de red del dispositivo 3, todos los 0 y 1 se encuentran en una sola secuencia de datos. Puede determinar qué datos provienen del Dispositivo 1 o 2, pero los datos siguen siendo solo una secuencia de millones / billones de bits.

¿Estoy totalmente equivocado? :)


1
¿Te refieres a una conexión half-duplex o al uso de full-duplex? Nunca hubo dispositivos semidúplex para 1000Base-T, aunque todavía está en ese estándar. Con una conexión full-duplex, no habría tramas de dos dispositivos que compitan por el tercer dispositivo al mismo tiempo en el enlace.
Ron Maupin

duplex completo. De acuerdo, entonces, todavía habría una sola secuencia de 0 y 1 (ej .: 01010101010001010010101001010100001101011010) y desde el punto de vista del Dispositivo 3 (el receptor), mientras que los Dispositivos 1 y 2 podrían turnarse en esa secuencia, nunca ambos estar enviando 0 y 1 al mismo tiempo, ¿verdad?
shihku7

¿Alguna respuesta te ayudó? Si es así, debe aceptar la respuesta para que la pregunta no siga apareciendo para siempre, buscando una respuesta. Alternativamente, puede proporcionar y aceptar su propia respuesta.
Ron Maupin

Respuestas:


14

Depende.

Mientras que muchos PHY de Ethernet transmiten datos de forma puramente en serie (por ejemplo, 100BASE-TX, 1000BASE-SX, 10GBASE-SR), algunos dividen el flujo de datos en múltiples carriles que se transmiten en paralelo.

Más comúnmente, 1000BASE-T, la variante común de gigabit sobre cobre, divide el flujo de datos codificados en cuatro carriles y transmite cada uno por separado en uno de los cuatro pares trenzados en un cable Cat-5. Todas las variantes de par trenzado desde gigabit hacia arriba usan estos cuatro carriles.

Algunos PHY de fibra de alta velocidad (10G +) también usan múltiples carriles sobre hasta dieciséis fibras (con fibra multimodo y corto alcance) o longitudes de onda (con fibra monomodo y largo alcance).

Sin embargo, todo se transmite en tramas que se ejecutan desde una única fuente a un único destino. Los marcos son generalmente atómicos, es decir. siempre se transmiten de una pieza. Cada trama solo transporta datos desde una única conexión / aplicación específica. Su encabezado contiene las direcciones de origen y destino, por lo que puede encontrar su camino a través de la red.

Cuando la red recibe dos tramas de diferentes fuentes para el mismo puerto de destino al mismo tiempo, una de las tramas debe ponerse en cola hasta que el puerto del conmutador hacia el destino haya terminado de transmitir la primera trama.

Esto supone que las fuentes y el destino se ejecutan a la misma velocidad, lo cual no es necesariamente cierto. Podría tener un servidor de archivos conectado por un enlace de 1 Gbit / s y diez clientes cada uno enviando velocidad máxima en sus enlaces de 100 Mbit / s sin colas (significativas). Esto se acerca un poco a su sugerencia de "secuencias múltiples", solo que estas secuencias están intercaladas en el nivel de trama, no en el nivel de bits.

La velocidad en un puerto de red puede ser de miles o incluso millones de tramas en un solo segundo, por lo que desde una perspectiva humana es imposible diferenciar múltiples flujos, todo parece 'simultáneo'.


Reúnase con otro respondedor @jonathanjo y descubra qué descripción de 1000Base-T es correcta.
davidbak

1
El "mismo medio" de jonathanjo describe un dominio de colisión multipuerto que (prácticamente) no existe con Gigabit Ethernet y que también es obsoleto para 10/100 Mbit.
Zac67

2
@davidbak me parece correcto aquí, ¡Zac generalmente lo es! - Solo énfasis diferente. Arreglé algunas cosas en mi respuesta, incluida la aclaración de colisiones que no ocurren en 1000baseT práctico.
jonathanjo

2
A eso también debe agregar PAM16 y codificaciones similares que hacen que básicamente varios bits lleguen a uno.
PlasmaHH

1
@PlasmaHH 1000BASE-T ya usa cuatro carriles y PAM5, por lo que hay aproximadamente 9.3 bits sin procesar en cada paso del reloj (y, por supuesto, 8 bits de "usuario" a 125 MBd para L1).
Zac67

13

Ignore la parte de Gigabit por ahora, y enfóquese un poco en su parte de "2 dispositivos están enviando al mismo tiempo".

En los medios compartidos , esto puede suceder y ser un problema. La mayoría de las transmisiones inalámbricas son medios compartidos, y Ethernet, en el pasado, solía ser:

  • 10base2 (coaxial) usó lo que era más o menos un solo cable con cada uno de ellos. Obviamente, dos (o más) estaciones pudieron transmitir al mismo tiempo;
  • 10baseT y 100baseT (basado en par trenzado), con concentradores (en lugar de conmutadores) también significaban que dos (o más) estaciones podían transmitir al mismo tiempo, ya que la señal recibida de cualquier dispositivo conectado se repetía a todos los demás.

Ahora, si dos dispositivos se envían al mismo tiempo, pueden suceder dos cosas:

  • usa alguna forma de multiplexación (división de tiempo, división de frecuencia ...) que permite "canales" separados para que uno pueda escuchar un canal específico y no ser molestado por los demás. Esto se usa mucho para transmisiones inalámbricas, mucho menos para transmisiones cableadas (WDM / DWDM en fibras es una excepción).

  • o si dos o más dispositivos están enviando al mismo tiempo en el mismo canal, entonces obtienes lo que se llama una colisión : como cuando dos personas están hablando al mismo tiempo, no puedes entender lo que dice, los dispositivos receptores no son capaces de decodificar los datos enviados por cualquiera de los dispositivos (o más a menudo, pueden decodificarlos, pero no tiene sentido y no pasarán las comprobaciones de CRC).

Aquí es donde entraron esquemas como CSMA-CD (Acceso múltiple con detección de portadora, detección de colisión):

  • Antes de intentar transmitir, un dispositivo verificaría si alguien más estaba enviando (sentido del operador)
  • Si el canal es libre, comienza a transmitir.
  • Pero incluso con eso, dos dispositivos pueden iniciarse exactamente al mismo tiempo, por lo que aún puede tener una colisión.
  • Para evitar perder demasiado tiempo en el canal, los dispositivos detectarían colisiones (comparando lo que envían con lo que reciben: si no coincide, entonces significa que alguien más está enviando al mismo tiempo), cancele la transmisión, e intente nuevamente después de un retraso aleatorio (para tratar de evitar una nueva colisión).

Esto fue bastante divertido, y en redes con poca carga funcionó bastante bien, pero tan pronto como el tráfico se volvió significativo, terminarías con toneladas de colisiones, lo que a su vez aumenta el uso de los medios compartidos, lo que a su vez resulta en más colisiones, así que podría ponerse bastante mal.

La respuesta a esto fue cambiar a redes conmutadas full-duplex . Hubs solo repitió la señal sin pensar. Los interruptores, por otro lado, realmente reciben un marco y luego lo reenvían en el enlace de destino (bono adicional: el marco no se envía a todos, solo al destino en la mayoría de los casos).

Si dos dispositivos se envían al mismo dispositivo de destino, entonces el conmutador pondrá en cola uno de los cuadros, por lo que los dos cuadros que se enviaron al mismo tiempo en realidad llegan uno después del otro al destino.

Más allá de eso, en el nivel físico, es bastante posible que los datos se intercambien a través de varios pares o incluso varios cables en paralelo. Si esto se hace a nivel de bit o si se envían tramas completas en cada par / cable depende de la tecnología exacta utilizada. Pero creo que esa no era realmente tu pregunta.


1
Este es un punto excelente, probablemente la respuesta más adecuada para la pregunta. Debo agregar que a medida que llega a velocidades realmente altas (fibra), generalmente están restringidas a un solo emisor y un solo receptor en una línea para evitar colisiones. Si se necesita agregar otra entrada, se toma en otro canal y se combina con la secuencia entrante y luego se envía a una secuencia saliente. En estos días, incluso Ethernet tiende a ser "Conmutado", lo que evita colisiones: el lugar principal donde se ven las colisiones (2 dispositivos hablando con uno como en la pregunta) en estos días es wifi, la mayoría de todo lo demás es 1 emisor a 1 receptor
Bill K

12

Este caso particular es complejo.

En cuanto a 1000baseT.

Primero: cuando decimos en general que dos dispositivos están transmitiendo al mismo tiempo, normalmente no están enviando bits en el mismo instante en el mismo medio. Si lo hacen, hay una colisión y todos los dispositivos de escucha lo resuelven (eventualmente, a través de varios esquemas de detección de colisión). Por lo tanto, dos dispositivos de transmisión tendrán acceso al medio en momentos ligeramente diferentes. Pero en 1000baseT solo hay dos dispositivos en un conjunto dado de pares; normalmente un dispositivo es un conmutador y el otro es un host.

En segundo lugar, 1000baseT transmite dos bits de datos a la vez en un par, codificados de manera compleja a cinco niveles de voltaje. Entonces es una serie de dígitos de base 4 en el cable, no una serie de dígitos de base 2.

Tercero, 1000baseT puede transmitir en ambas direcciones al mismo tiempo, en el mismo par. Puede separar la señal saliente de la entrante por un circuito llamado híbrido.

Ethernet Gigabit sobre otros medios se comporta de manera diferente. Velocidades más lentas, por ejemplo, 10baseT y 100baseT tienen esquemas más simples. 10baseT sobre un hub realmente tiene colisiones reales; over switches normalmente está organizado por el switch para que los marcos salientes se pongan en cola; si es full duplex no hay colisiones en absoluto.


Reúnase con otro respondedor @ Zac67 y descubra qué descripción de 1000Base-T es correcta.
davidbak

@jonathanjo Tienes razón sobre los símbolos de tres bits, pero solo hay cinco niveles de PAM. Aproximadamente, se trata de un símbolo de 8 bits a cuatro símbolos de 3 bits más codificación codificada donde los símbolos de 3 bits se asignan a niveles PAM (cambiantes).
Zac67

@davidbak gracias por recogerlo. Simplifiqué la descripción para cubrir el punto principal (complejo y no binario) y deshacerme del error. Gracias Zac por aclarar.
jonathanjo

7

Asumiendo todos los enlaces de Ethernet con cable aquí.

Cuando dos dispositivos en el mismo segmento de red envían al mismo tiempo, sin importar a quién envíen, eso se llama colisión . Ninguno de los mensajes llega cuando ocurre una colisión. Afortunadamente, los remitentes tienen la capacidad de detectar colisiones. Cuando sucede, cada remitente elegirá una cantidad aleatoria de tiempo (pequeñas fracciones de segundo) para esperar e intentar nuevamente, y repetirá el proceso hasta que finalmente solo un remitente esté activo.

Pero esto ya casi nunca sucede.

En cambio, hoy en día la mayoría de las conexiones cableadas se realizan a través de redes conmutadas , donde cada dispositivo (tanto emisores como receptores) están todos conectados a su propio puerto separado en un conmutador. Los datos se dividen en paquetes (realmente: tramas ), y el conmutador se asegurará de que solo un paquete esté activo en cada puerto a la vez. Si un enlace está ocupado, el conmutador almacenará y reenviará otras tramas al receptor cuando el enlace vuelva a estar disponible.

Con este esquema, la única forma de tener colisiones es cuando hay más de un dispositivo conectado al conmutador o entre sí a través de un concentrador no conmutado (los puertos en algunos modelos de "enrutador" wifi doméstico aún no están conmutados), o cuando un El enlace entre un conmutador y un dispositivo funciona en modo semidúplex .

En cambio, tratamos con congestión . Es posible que no tengamos colisiones, pero un host popular en la red puede tener dispositivos que deseen enviar más datos y paquetes de los que admitirá el enlace, de modo que el búfer se llene. Pero esa es otra cuestión.


1
Nitpicking, pero a nivel de Ethernet, serían tramas en lugar de paquetes .
jcaron

1
@jcaron Nit-nit-picking: Por supuesto, normalmente usamos 'paquete' para referirnos a 'paquete IP', que está organizado según RFC 791, y es el 'Datos del cliente MAC' de una trama Ethernet. Pero un "paquete Ethernet" se define como todo lo que se transmite, incluido el comienzo del preámbulo hasta el final de los bits de extensión; y 'marco' es la porción de eso desde la dirección de destino hasta la verificación de marco. (802.3-2015 Sección 3.1.1 "Formato de paquete"). Hubiera dicho que el conmutador asegura que se envíe un paquete Ether a la vez, y almacena y reenvía tramas Ether .
jonathanjo

5

Creo que necesita obtener una comprensión básica de cómo funciona ethernet. Por ejemplo, el host emisor enviará un preámbulo de unos alternos y ceros para llamar la atención del host receptor. Cuando el host receptor ve dos en una fila, sabe que el marco es el siguiente. Una vez que se transmite la trama, debe haber silencio en la línea durante 96 bits antes de que se envíe otra trama.

Diferentes estándares de Ethernet utilizarán diferentes codificaciones. Por ejemplo, 100Base-T usa 4B5B que envía cinco bits por cada cuatro bits de datos.


1

(Para esta pregunta, supongo que se trata de una red compartida Hub).

¿Los adaptadores de red leen los bits entrantes en una sola secuencia?

Si. Independientemente de la implementación de PHY, es un flujo de entrada único. Las comunicaciones de múltiples dispositivos no pueden llegar con éxito a una sola NIC (dirección MAC) al mismo tiempo.

Supongo que desde el punto de vista del adaptador de red del dispositivo 3, todos los 0 y 1 se encuentran en un solo flujo de datos "

"flujo único" sí, pero en su ejemplo de dos dispositivos que envían simultáneamente, no habrá flujo de datos que lleguen para su posterior procesamiento; los "cuadros" de 1s y 0s colisionarán.

Puede determinar qué datos provienen del Dispositivo 1 o 2, pero los datos siguen siendo solo una secuencia de millones / billones de bits.

No, no puede. Cuando las señales se combinan, se detecta una colisión y el cuadro se descarta.

¿Estoy totalmente equivocado?

El título de su pregunta es una declaración correcta, pero su discusión en su publicación Q sugiere que su comprensión e hipótesis estaban equivocadas.

Más lejos

  • Independientemente del tipo de "Adaptador de red", solo reciben un único flujo de bits.
  • Los medios físicos para transmitir una señal podrían incluir múltiples subcadenas de datos, pero esas subcadenas y dicho procesamiento físico no se consideran el "Adaptador de red"; esas subcorrientes son codependientes, deben combinarse para tener sentido; y, esas subtransmisiones deben originarse en una sola fuente.
  • Si no está seguro acerca de esta respuesta (y otras respuestas aquí), debe aprender los fundamentos de las redes Ethernet / IP de paquetes conmutados.

Para esta pregunta, supongo que una red compartida Hub : el OP referido a una NIC Gigabit y el modo semidúplex no existe (prácticamente) para GbE. ;-)
Zac67

@ Zac67 Soy como un stanger generoso y servicial. Asumí que el OP eligió "Gigabit" arbitrariamente y que no se dieron cuenta de que habría una contradicción. Esto me permite finalmente responder el título de la pregunta de manera directa y simple. El OP puede leer las otras respuestas para aprender más sobre la contradicción.
Todd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.