Wow, que pregunta. La respuesta es, depende. Los grandes proveedores de enrutadores escriben IPv4, IPv6, TCP, UDP, SCTP, OSPF, RIP, BGP, MPLS, etc. se acumula desde cero. Hacer esto requiere leer más de 100 RFC y luego escribir código para implementar todas sus máquinas de estado, analizar reglas, etc., lo cual es una tarea monumental. Además de esto, también necesitan escribir interfaces de línea de comandos y GUI que le permitan configurar lógicamente y realizar tareas de solución de problemas en cada una de estas tecnologías. Millones de líneas de código a menudo están involucradas en esto.
Los enrutadores de cheapo SOHO por ahí toman la salida fácil. Por lo general, usan un sistema operativo de código abierto como Linux o FreeBSD, utilizan su pila de red, encuentran algunas pilas de enrutamiento de código abierto (Zebra y similares) y escriben un front-end basado en la web. Esto todavía requiere un poco de programación, pero son todas cosas de GUI.
Eso es enrutadores. Los interruptores son otra historia. Los conmutadores baratos pueden utilizar software estándar escrito para operar a través de una sola CPU. Puede hacer esto con el sistema operativo Linux y utilizando la utilidad brctl, pero los buenos usan tecnologías como ASICS que tienen su lógica central escrita en silicio, y empujan esta lógica a las tarjetas de línea. Con mayor frecuencia, los tipos de Ingeniero en Computación escriben este tipo de “software”. Puse el software entre comillas, porque se parece mucho más al diseño de PLC que al desarrollo de software estándar.
- ¿Por qué tomó tanto tiempo probar la compatibilidad de IPv6 para sitios web como Google y Facebook?
- ¿Cuáles son los mejores enrutadores de alto rendimiento y largo alcance de 2014?
- Cómo construir mi propio enrutador de Internet
- ¿Qué es el dominio de colisión y el dominio de difusión en redes?
- ¿Por qué la velocidad de transmisión está relacionada con el enlace y no con el enrutador?
Ahora, en lo que respecta a la segunda parte de su pregunta, las personas como Cisco utilizan su propio “núcleo”, sistema operativo y software de aplicación. Entonces, en cierto modo, se parece mucho a la programación del kernel. Juniper ha estado utilizando Linux como su sistema operativo principal, pero escribe mucho de su propio código de red encima. Por lo tanto, escribirían controladores de Kernel para sus conjuntos de chips de hardware y desarrollarían muchos de sus propios códigos de enrutamiento / conmutación.
Muy bien, me detendré aquí. Podría escribir mucho más, pero responder esta pregunta es una vida de trabajo of Estos son sistemas muy complicados que generalmente involucran a cientos de programadores que trabajan durante décadas.