¿Cómo ocurre exactamente una colisión de Ethernet en el cable, ya que los nodos usan circuitos diferentes para Tx y Rx?

13

Estoy tratando de entender cómo se produce una colisión en Ethernet, especialmente cuando existe un desajuste dúplex o cuando en una red Ethernet heredada se transmiten dos nodos simultáneamente.

Todos explican la colisión en un nivel superior (dos cuadros chocan cuando se envía uno y se recibe el otro). Sin embargo, el siguiente gráfico muestra que existen diferentes circuitos para Rx y Tx. ¿Cómo puede ocurrir una colisión ya que hay circuitos dedicados para enviar y recibir tramas?

Se utilizan diferentes circuitos para la transmisión y recepción.

EDITAR : Tal vez la etiqueta "Hub MDI-X" causa cierta confusión con respecto al punto de mi pregunta. No estoy preguntando cómo la funcionalidad de un concentrador puede causar una colisión. Mi enfoque está en la comunicación entre dos nodos con interfaces MDI o MDI-X (el concentrador y los conmutadores tienen interfaces MDI-X). En cualquiera de estos dos casos, ¿cómo puede ocurrir una colisión entre dos nodos cuando tienen una falta de coincidencia dúplex, mientras que en la falta de coincidencia dúplex Rx y Tx todavía tienen sus circuitos dedicados?

Christos Dalamagkas
fuente
Tenga en cuenta que 10Base2 o 10Base5 comparten el mismo medio, por ejemplo, el mismo cable.
Patrick Terlisten
Todavía tengo la misma pregunta con respecto a 100base-tx, en caso de que no coincidan los dúplex y el nodo A sea half duplex y nodeB full duplex. Supongamos que el nodo A tiene una interfaz MDI y el nodo B una MDI-X. El nodo B transmite desde los pines 3 y 4 y el nodo B solo recibe de 3 y 4. ¿Cómo puede ocurrir una colisión en el nodo A ya que solo recibe de estos pines?
Christos Dalamagkas
66
La colisión ocurre en L1, no en L2: son los bits / portadores los que chocan. Dos remitentes chocan cuando intentan enviar (cerca) simultáneamente.
Zac67

Respuestas:

11

Para entender esto necesitas entender el contexto histórico.

Originalmente, Ethernet utilizaba un cable coaxial compartido. Solo un dispositivo pudo transmitir con éxito a la vez. Si dos dispositivos se transmiten al mismo tiempo, se considera una colisión.

Luego aparecieron repetidores, para extender la distancia y aumentar el número de nodos. Un repetidor detectaría qué puerto está transmitiendo, luego repetiría esa señal en los otros puertos. Para mantener la detección de colisión, los repetidores en funcionamiento tenían que tener alguna funcionalidad para garantizar que todos los nodos detectaran una colisión. Los primeros repetidores solo tenían dos puertos, pero los repetidores posteriores podrían tener múltiples puertos y estos se conocieron como concentradores, especialmente cuando se usan junto con el cableado de par trenzado. Los repetidores eran dispositivos bastante tontos, regenerarían las señales eléctricas pero poco más.

Luego entró 10BASE-T, que como habrás notado tiene canales de datos dedicados para cada dirección. Sin embargo, todavía tenía que encajar en el modelo existente, por lo que, por defecto, funcionaba en un modo "semidúplex" donde emulaba un cable coaxial. De hecho, las señales no colisionaron en el cable, pero los transceptores actuaron como si lo hicieran y los repetidores tomarían los mismos pasos que antes para garantizar que esto se vea en toda la red.

Ethernet de par trenzado también puede soportar un modo "full-duplex". En este modo, todo el hardware relacionado con la colisión está desactivado y ambos extremos pueden transmitir en cualquier momento. Sin embargo, este modo trajo un par de desventajas importantes.

  • Era incompatible con los centros repetidores. Sin los mecanismos de detección de colisión, los hubs no tendrían forma de manejar dos dispositivos que transmiten al mismo tiempo.
  • Ambos extremos de un enlace se configurarán para el mismo modo dúplex; si no lo están, sucederán cosas malas.

Estos problemas significaron que, en la práctica, los sistemas 10BASE-T casi siempre funcionaban en modo semidúplex.

Para 100BASE-TX, la situación mejoró dramáticamente. Los conmutadores Ethernet (puentes multipuerto técnicamente rápidos) bajaron de precio hasta el punto de que los concentradores de repetidores tontos podrían eliminarse. La negociación automática permitió que las tarjetas de red establecieran conexiones full-duplex sin configuración manual propensa a errores. Si conecta dos NIC 100BASE-TX junto con un cable cruzado o conecta una NIC 100BASE-TX a un conmutador y no toma medidas para anular manualmente las cosas, seguramente negociarán el modo dúplex completo.

1000BASE-T teóricamente tiene un modo semidúplex que algunas NIC afirman admitir y había una especificación para repetidores multipuerto gigabit, pero nunca he visto ninguna evidencia de que alguien haya vendido uno. En la práctica, un enlace gigabit seguramente se ejecutará en modo full-duplex.

Las velocidades más rápidas abandonaron por completo el modo semidúplex.

Peter Green
fuente
Y luego llegó Wireless Ethernet, y las colisiones de medios se convirtieron en algo nuevo.
OrangeDog
@OrangeDog, si se refiere a Wi-Fi (IEEE 802.11), eso no es ethernet inalámbrico (IEEE 802.3). Es un protocolo completamente diferente que tiene diferentes marcos y usa CSMA / CA en lugar de CSMA / CD. Los dos protocolos son muy diferentes, mientras que Ethernet en los distintos medios que admite son básicamente los mismos.
Ron Maupin
14

Un concentrador es realmente solo un cable de alimentación que repite cada señal que recibe en una interfaz a todas las demás interfaces. Si dos dispositivos transmiten al mismo tiempo a la recepción de las interfaces del concentrador, el concentrador repite ambas señales al mismo tiempo a la transmisión de todas las demás interfaces del concentrador, y ambas señales recibidas colisionarán en la transmisión de las otras interfaces, por lo tanto tiene una colisión donde todas las otras interfaces tienen señales de basura porque son dos señales al mismo tiempo. Los hosts que envían simultáneamente y escuchan otra señal se darán cuenta de que más de uno está enviando a la vez, y determinarán que hay una colisión.

Piénselo de esta manera, la recepción de cada interfaz de concentrador está conectada a la transmisión de todas las demás interfaces. Dentro del concentrador, la transmisión y la recepción están conectadas, incluso si están separadas en la interfaz.

Compare eso con un conmutador, donde cada enlace termina en la interfaz del conmutador, y el conmutador no tiene las interfaces conectadas entre sí. En cambio, el conmutador tiene una lógica (generalmente integrada en el hardware) para determinar dónde enviar los marcos que recibe en una interfaz y para evitar colisiones dentro del conmutador.

Un interruptor es un puente de alta densidad. Los puentes originales eran como PC con múltiples interfaces. No esperaría que una PC con múltiples interfaces tuviera colisiones si recibiera tramas simultáneas en múltiples interfaces.


Editar:

Sus comentarios me llevan a creer que todavía no comprende lo que escribí anteriormente sobre los centros.

La forma en que se detectan colisiones cuando se usa UTP y un concentrador es mediante los dispositivos emisores que escuchan otra señal durante el envío. Si un dispositivo que usa UTP está configurado para half duplex, entonces creerá que hay una colisión cuando escucha una señal durante el envío.

Cuando tiene una falta de coincidencia dúplex, el dispositivo configurado para dúplex completo se enviará felizmente mientras recibe del dispositivo configurado para dúplex medio. Por otro lado, el dispositivo configurado para half duplex creerá que hay una colisión cuando se está enviando y escuchará esa señal del dispositivo configurado para full duplex. Eso causará todo tipo de problemas porque el dispositivo configurado para half duplex dejará de enviar la trama (causando un error) y enviará una señal de interferencia que el dispositivo configurado para full duplex no está esperando. El dispositivo configurado para dúplex completo dejará de enviar su marco.

Ron Maupin
fuente
3
Esta es la verdadera respuesta. OP ignora todos los casos, excepto solo dos puntos finales con un cable cruzado (o, en un entorno moderno, cualquier cable) entre ellos.
R .. GitHub DEJA DE AYUDAR A ICE
@R .., el dibujo en la pregunta muestra un concentrador, así que respondí para una conexión de concentrador.
Ron Maupin
Esta respuesta explica cómo se produce la colisión cuando tiene un Hub en la topología. Aunque puede ocurrir una colisión tardía cuando hay dos nodos (digamos un interruptor y una PC), uno es half-duplex y el otro es full-duplex. ¿Por qué ocurre una colisión en este caso, a pesar de que hay circuitos separados para Tx y Rx, como se muestra en el gráfico de mi pregunta?
Christos Dalamagkas
Parece que la etiqueta "Hub MDI-X" causó cierta confusión con respecto al punto de mi pregunta. Edité en consecuencia.
Christos Dalamagkas
3
Porque el que tiene half duplex declara una colisión cuando escucha algo mientras envía. Vea la respuesta anterior. Si un dispositivo configurado para semidúplex oye otra señal durante el envío, debe suponer que hay una colisión porque cree que es semidúplex y que solo puede enviar un dispositivo a la vez.
Ron Maupin
8

Gran pregunta

En full duplex, hay un canal dedicado para el tráfico de "izquierda a derecha" y un canal dedicado para el tráfico de "derecha a izquierda":

Canal dedicado

Por lo tanto, en dúplex completo, las colisiones son imposibles , incluso si ambas NIC transmiten al mismo tiempo.

En half-duplex , sin embargo, el tráfico en cualquier dirección está destinado a usar solo el cable, una dirección a la vez. Entonces, aunque físicamente, todavía hay canales dedicados, lógicamente si una NIC recibe algo mientras está transmitiendo, lo registra como una colisión. Los bits / señal en realidad no "colisionan" en el cable : un contador de colisión simplemente se incrementa cuando la NIC está recibiendo y transmitiendo al mismo tiempo.

Eddie
fuente
44
Las señales chocan en el cable, incluso con par trenzado. Con tres nodos finales, dos señales simultáneas colisionarían en el tercer nodo.
Zac67
44
" Los bits / señal en realidad no" colisionan "en el cable " En un centro, como en el dibujo de la pregunta, los bits sí colisionan en el cable y producen una señal de basura. Los hosts que envían simultáneamente y escuchan otra señal enviarán una señal de interferencia a todas las otras interfaces en el concentrador.
Ron Maupin
@RonMaupin Tienes razón, por supuesto: me refería a lo que sucedería cuando el repetidor no detectara / reaccionara a la colisión.
Zac67
1
@ Zac67, no estaba comentando por ti. Tú y yo dijimos lo mismo básicamente al mismo tiempo.
Ron Maupin
@ Zac67 / RonMaupin El OP editó la pregunta confirmando que no están preguntando sobre el caso de los hubs.
Eddie
6

Con un par trenzado y un concentrador repetidor, el concentrador no es mucho más que un amplificador digital. Para eso, detecta una portadora desde una señal entrante en un puerto y cambia todos los demás puertos al modo de salida. En este modo de salida, cualquier operador entrante adicional es una colisión. Esto activa una señal de atasco para propagar la colisión y hacer que el emisor deje de transmitir.

Este método de repetición imita el comportamiento de las variantes de Ethernet de medios compartidos anteriores (10BASE5 y 10BASE2) donde el repetidor solo se usaba como uniones de segmentos físicos o extensores de línea. Por supuesto que tiene razón: el par trenzado es un medio dúplex completo en el nivel del cable donde una colisión solo ocurre en la capa física superior y no en el cable en sí.

Un repetidor no puede permitir más de un remitente al mismo tiempo. Múltiples transmisiones simultáneas se mezclarían en los puertos de salida y producirían un ruido ininteligible. Del mismo modo, cualquier nodo en modo semidúplex asume un medio compartido, incapaz de transmisión de dúplex completo. Cualquier operador detectado durante la transmisión es una colisión, lo que hace que el emisor retroceda. No importa si el medio tiene capacidad full-duplex (fibra, par trenzado) o no (coaxial).

Con una falta de coincidencia dúplex, un extremo del enlace está en modo semidúplex y el otro en modo dúplex completo. Ahora, cuando el lado half-duplex (HDX) está transmitiendo, cualquier portadora en su receptor hace que se detecte una colisión. Sin embargo, el lado full-duplex (FDX) puede estar enviando felizmente mientras recibe desde el lado HDX y es completamente ajeno a las colisiones que crea en el otro lado. El lado HDX necesita abortar la transmisión y envía una señal de atasco. Como el lado FDX no puede detectar la supuesta colisión, detecta un cuadro parcial y, por lo tanto, dañado.

Los cuadros pequeños y de baja frecuencia tienen una posibilidad razonable de superar esta falta de coincidencia dúplex, por lo que a pingpodría funcionar. Sin embargo, tan pronto como una transmisión seria esté tratando de comenzar, la mayor frecuencia de cuadro y el mayor tamaño harán que las transmisiones fallen de manera muy confiable.

Con los conmutadores no administrados, una falta de coincidencia dúplex puede ser muy difícil de detectar, especialmente cuando ni siquiera las NIC del host informan su modo dúplex correctamente.

Con los conmutadores administrados, generalmente tiene contadores de errores de puerto. El aumento de las colisiones en un lado (HDX) y el aumento de las runas y los errores de FCS en el otro lado (FDX) son indicaciones muy fuertes de una falta de coincidencia dúplex.

Básicamente, confiar en la negociación automática es una muy buena práctica para evitar desajustes dúplex. La configuración manual de la velocidad y el modo dúplex generalmente es propenso a crear una falta de coincidencia, especialmente al reemplazar el equipo unos años más tarde. Afortunadamente, todo el esquema half-duplex desapareció con Gigabit Ethernet y más rápido.

Zac67
fuente
3

Supongamos que la máquina A comienza a enviar datos a la máquina B. A medida que el paquete comienza a enviarse, la máquina C comienza a enviar datos diferentes a la máquina B. Solo hay una ruta de señal a la máquina B, por lo que las transmisiones de A y C chocan y B no puede recibir a los dos.

El hecho de que se use un circuito diferente para las transmisiones desde la máquina B, hacia la máquina A y hacia la máquina C no ayuda. Todo lo que sucede es que A y C están tratando de transmitir a la máquina B al mismo tiempo y solo hay una ruta de señal a la máquina B.

David Schwartz
fuente