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?
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?
fuente
Respuestas:
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.
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.
fuente
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.
fuente
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":
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.
fuente
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
ping
podrí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.
fuente
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.
fuente