En una conexión Ethernet , una falta de coincidencia dúplex es una condición en la que dos dispositivos conectados funcionan en diferentes modos dúplex , es decir, uno funciona en semidúplex mientras que el otro funciona en dúplex completo. El efecto de una falta de coincidencia dúplex es un enlace que funciona de manera ineficiente. La falta de coincidencia dúplex puede ser causada por configurar manualmente dos interfaces de red conectadas en diferentes modos dúplex o por conectar un dispositivo que realiza negociación automática a uno que está configurado manualmente en un modo dúplex completo. [1]
Cuando un dispositivo configurado para negociación automática se conecta a un dispositivo que no utiliza negociación automática, el proceso de negociación automática falla. El extremo de negociación automática de la conexión aún puede detectar correctamente la velocidad del otro extremo, pero no puede detectar correctamente el modo dúplex. Para la compatibilidad con versiones anteriores de concentradores Ethernet , el estándar requiere que el dispositivo de negociación automática utilice semidúplex en estas condiciones. Por lo tanto, el extremo de negociación automática de la conexión utiliza semidúplex mientras que el par que no negocia está bloqueado en dúplex completo, y esto es una falta de coincidencia de dúplex.
Los estándares Ethernet y los principales fabricantes de equipos Ethernet recomiendan habilitar la negociación automática. [2] [3] [4] Sin embargo, los equipos de red permiten deshabilitar la negociación automática y, en algunas redes, la negociación automática está deshabilitada en todos los puertos y se utiliza una modalidad fija de 100 Mbit/s y dúplex completo. Los administradores de red solían hacer esto intencionalmente al introducir la negociación automática, debido a problemas de interoperabilidad con la especificación inicial de negociación automática. El modo fijo de operación funciona bien si ambos extremos de una conexión están bloqueados con la misma configuración. Sin embargo, mantener una red de este tipo y garantizar la coherencia es difícil. Dado que la negociación automática es generalmente la configuración predeterminada del fabricante, es casi seguro que, en un entorno donde la política es tener configuraciones de puerto fijas, alguien tarde o temprano dejará un puerto configurado para usar la negociación automática por error. [5]
La comunicación es posible a través de una conexión a pesar de una falta de coincidencia de dúplex. Los paquetes individuales se envían y se confirman sin problemas. Como resultado, un simple comando ping no detecta una falta de coincidencia de dúplex porque los paquetes individuales y sus confirmaciones resultantes en intervalos de 1 segundo no causan ningún problema en la red. Una sesión de terminal que envía datos lentamente (en ráfagas muy cortas) también puede comunicarse correctamente. Sin embargo, tan pronto como cualquiera de los extremos de la conexión intenta enviar una cantidad significativa de datos, la red de repente se ralentiza a una velocidad muy baja. Dado que la red está funcionando de otra manera, la causa no es tan evidente.
Una falta de coincidencia dúplex causa problemas cuando ambos extremos de la conexión intentan transferir datos al mismo tiempo. Esto sucede incluso si el canal se utiliza (desde una perspectiva de alto nivel o del usuario) en una sola dirección, en caso de transferencias de datos de gran tamaño. De hecho, cuando se envía una transferencia de datos de gran tamaño a través de un TCP , los datos se envían en múltiples paquetes, algunos de los cuales activarán un paquete de confirmación de vuelta al remitente. Esto da como resultado que los paquetes se envíen en ambas direcciones al mismo tiempo.
En tales condiciones, el extremo full-duplex de la conexión envía sus paquetes mientras recibe otros paquetes; este es exactamente el objetivo de una conexión full-duplex. Mientras tanto, el extremo half-duplex no puede aceptar los datos entrantes mientras los está enviando; los detectará como una colisión . El dispositivo half-duplex detiene su transmisión de datos actual, envía una señal de interferencia en su lugar y luego vuelve a intentarlo más tarde según CSMA/CD . Esto da como resultado que el lado full-duplex reciba una trama incompleta con un error de CRC o una trama runt . No detecta ninguna colisión ya que CSMA/CD está deshabilitado en el lado full-duplex. Como resultado, cuando ambos dispositivos intentan transmitir al (casi) mismo tiempo, el paquete enviado por el extremo full-duplex se descartará y se perderá debido a una colisión asumida y el paquete enviado por el dispositivo half-duplex se retrasará o perderá debido a un error de CRC en la trama. [6]
Los paquetes perdidos obligan al protocolo TCP a realizar una recuperación de errores, pero los intentos iniciales de recuperación (simplificada) fallan porque los paquetes retransmitidos se pierden exactamente de la misma manera que los paquetes originales. Finalmente, la ventana de transmisión TCP se llena y el protocolo TCP se niega a transmitir más datos hasta que se confirmen los datos transmitidos anteriormente. Esto, a su vez, detendrá el nuevo tráfico en la conexión, dejando solo las retransmisiones y los acuses de recibo. Dado que el temporizador de retransmisión se hace cada vez más largo entre intentos, finalmente se producirá una retransmisión cuando no haya tráfico inverso en la conexión y finalmente se reciban los acuses de recibo. Esto reiniciará el tráfico TCP, lo que a su vez provoca la pérdida inmediata de paquetes a medida que se reanuda la transmisión.
El resultado final es una conexión que funciona pero que tiene un rendimiento extremadamente bajo debido a la falta de coincidencia dúplex. Los síntomas de una falta de coincidencia dúplex son conexiones que parecen funcionar bien con un comando ping , pero que se "bloquean" fácilmente con un rendimiento muy bajo en las transferencias de datos; es probable que la tasa de transferencia de datos efectiva sea asimétrica, con un rendimiento mucho peor en la dirección de semidúplex a dúplex completo que en la otra. En operaciones semidúplex normales no se producen colisiones tardías . Sin embargo, en una falta de coincidencia dúplex, las colisiones que se ven en el lado semidúplex del enlace suelen ser colisiones tardías. El lado dúplex completo normalmente registrará errores de secuencia de verificación de tramas o tramas runt . [7] [8] Ver estas estadísticas estándar de Ethernet puede ayudar a diagnosticar el problema.
Contrariamente a lo que se podría esperar razonablemente, ambos lados de una conexión deben estar configurados de manera idéntica para un funcionamiento adecuado. En otras palabras, configurar un lado en automático (ya sea velocidad o dúplex o ambos) y configurar el otro en fijo (ya sea velocidad o dúplex o ambos) probablemente dará como resultado una discrepancia de velocidad, una discrepancia de dúplex o ambas. Una discrepancia de dúplex se puede solucionar habilitando la negociación automática (si está disponible y funciona) en ambos extremos o forzando las mismas configuraciones en ambos extremos (si lo permite la disponibilidad de una interfaz de configuración). Si no hay otra opción que tener una configuración bloqueada en un extremo y negociación automática en el otro (por ejemplo, un dispositivo antiguo con negociación automática rota conectado a un conmutador no administrado), se debe utilizar semidúplex. Todos los equipos LAN modernos vienen con la negociación automática habilitada y se han resuelto los diversos problemas de compatibilidad. La mejor manera de evitar las discrepancias de dúplex es utilizar la negociación automática y reemplazar cualquier equipo heredado que no utilice la negociación automática o que no negocie automáticamente correctamente.
Cisco recomienda dejar activada la negociación automática para aquellos dispositivos compatibles con
802.3u
.
El uso de la negociación automática es el estándar IEEE 802.3 y se recomienda a los clientes que sigan la "intención" de los estándares IEEE 802.3u/z e implementen la negociación automática en sus entornos Ethernet.