Una conversación hecha de pulsos, no de tramas
Antes de que haya enlace no hay por dónde mandar una trama, así que la autonegociación no manda ninguna. Es señalización fuera de banda en el mismo par de cobre: una ráfaga corta de pulsos eléctricos cada 16 ms ± 8 ms, con 33 posiciones de pulso separadas 62,5 µs ± 7 µs. Las 17 posiciones impares son de reloj y llevan pulso siempre; las 16 pares son de datos y van entre ellas — pulso presente es un 1, ausencia es un 0. Así es como 33 posiciones producen una palabra de código de enlace de 16 bits.
Los 16 ms son la razón entera de que el equipo viejo sobreviviera a la transición. Un 10BASE-T de velocidad fija espera un pulso de integridad de enlace cada 16 ± 8 ms, y la ráfaga entera cabe dentro de esa ventana, así que se lee como un pulso normal. UNH-IOL lo dice exactamente: se hizo para permitir que un 10BASE-T de velocidad fija viera las ráfagas de FLP y, en vez de morirse, siguiera en estado LINK TEST PASS. Y ninguno de los dos lados se cree el primer mensaje: tres ráfagas completas, consecutivas y consistentes antes de poner el bit de acuse, tres más con él puesto, y luego de seis a ocho ráfagas más.
El mismatch, y por qué «falló la autonegociación» es falso
Cuando fijas velocidad y dúplex a mano, el PHY apaga la maquinaria de negociación: el bit 0.12 del registro 0 de la MII, Auto-Negotiation Enable, tiene que irse a cero — sin ponerlo a cero no se puede fijar la velocidad. Desde ese momento el puerto emite sólo la señal lisa de su propia tecnología: idles de 100BASE-TX, o pulsos de enlace de 10BASE-T. No está eligiendo mal. Ha dejado de hablar. El otro extremo, que sigue negociando, recibe una portadora y ninguna palabra, y cae en la Parallel Detection Function — el mecanismo para enlazar con equipos de velocidad fija que no negocian.
Aquí es donde la lámina se pone concreta, porque el comportamiento es verificable en silicio. La hoja de datos del DP83848 de Texas Instruments dice que el registro de capacidades del vecino se actualiza a 0x0081 o a 0x0021 para la detección paralela a 100 Mb/s o a 10 Mb/s respectivamente. Decodifica 0x0081 contra el mapa de bits de esa misma hoja y obtienes el bit 7 (TX) y el bit 0 (selector), y nada más: TX_FD en el bit 8 y 10_FD en el bit 6 se quedan en cero. Aquí no hay decisión y no hay error. La única evidencia disponible es «hay portadora de esta tecnología», y una portadora no dice absolutamente nada del dúplex — así que el mecanismo apunta la única capacidad que puede demostrar, y la resolución de prioridad corre después con toda corrección sobre una tabla cuya única entrada es una de half duplex.
Y el enlace levanta. Cisco responde por qué en una frase: las señales eléctricas que los puertos usan para determinar si están conectados no siguen el estado de los modos de dúplex. LED verde, interfaz connected, los dos extremos coincidiendo en la velocidad, y el enlace roto. Lo que te lo dice es un puñado de contadores — nombres de Cisco IOS, no de la norma — y Cisco es la única fuente que reparte lados, así que la lámina la sigue exactamente: colisiones tardías en el lado half duplex, un aumento rápido de errores de FCS y de alineación también en el lado half duplex, y runts en el puerto full duplex.
El consejo que se jubiló solo, y el AP en un puerto de 1G
«Fija los dos extremos a mano» nació en un mundo donde la autonegociación era opcional, lujo que 10 y 100 se pudieron permitir porque soportan detección paralela. El gigabit no puede. Transmite en cuatro pares a la vez y en los dos sentidos a la vez, y para cancelar su propio eco un extremo tiene que ser el reloj (MASTER) y el otro tiene que engancharse a él (SLAVE) — algo que no se lee de una portadora y hay que preguntarlo, y la autonegociación es el único canal para preguntarlo. La cláusula 40.5.1 exige que todo PHY 1000BASE-T soporte Auto-Negotiation y sea capaz de operar como MASTER o SLAVE; la propia interpretación del IEEE añade que seleccionar 1000BASE-T sigue requiriendo que se use Auto-Negotiation, y que eso se logra siguiendo con ella pero limitando lo que se anuncia a las capacidades de 1000BASE-T. Así que lo que un switch llama «forzar a 1000 full» es, por dentro, autonegociación anunciando una sola capacidad. El consejo viejo no está meramente anticuado: en gigabit describe una operación que ya no existe. La propia Cisco cambió de doctrina y lo dejó escrito — el uso de la autonegociación se considera una práctica válida.
La lámina cierra en 2,5G y 5G, que no se inventaron para los servidores. En 2014 alrededor del noventa por ciento de los enlaces de acceso empresariales del mundo iban sobre Cat5e o Cat6, lo que los limitaba a un gigabit sobre cien metros justo cuando los puntos de acceso Wi-Fi empezaron a necesitar más, y recablear un campus a Cat6a a entre doscientos y ochocientos dólares por cable se va a los cientos de miles. IEEE 802.3bz, aprobado el 22 de septiembre de 2016, hizo obligatorios la autonegociación y el Extended Next Page para las dos velocidades nuevas y las añadió a la tabla de prioridad por encima de 1G — sin ninguna entrada de half duplex. Enchufa un AP de 2,5G en un puerto de 1G y el bit de 2,5G sencillamente no es común, así que el denominador común más alto baja a 1000BASE-T full duplex y el enlace sube limpio a un gigabit. Sin error, sin aviso, sin contador. Sólo la cifra de velocidad en la interfaz te dice que el AP está estrangulado — el mismo patrón de toda la lámina: el enlace sano que rinde mal.
Dos cosas que esta lámina se guarda a propósito. No hay ningún porcentaje de lo que cuesta un duplex mismatch en rendimiento, ni ninguna afirmación de que la pérdida sea peor en un sentido: ninguna de las fuentes detrás de esta lámina midió ni una cosa ni la otra, y Cisco sólo dice rendimiento extremadamente lento, conectividad intermitente y pérdida de conexión. Tres niveles de narración, en español e inglés.