¿Cómo se implementan los enrutadores en C?

Se dice que los enrutadores son dispositivos inteligentes. Tienen muchos protocolos de enrutamiento que se ejecutan en tiempo real que funcionan junto con sus pares para mantener viva la red. También tienen varios protocolos de administración que hacen que los dispositivos reales sean accesibles a través de la consola remota. Perspectiva del sistema, el hardware es compatible con un sistema operativo en tiempo real como VxWorks, Integrity. Con controladores apropiados para diferentes tipos de interfaces como gigE, óptico, TDM, serie, etc., el software de la aplicación se desarrolla además de eso. El software de la aplicación tendrá una arquitectura bien diseñada con un espacio para varios tipos de protocolos mencionados anteriormente. Estos se pueden implementar en C o C ++. Básicamente, la arquitectura de un enrutador se puede dividir en 2 planos lógicos, es decir, plano de control y plano de reenvío. Los protocolos de enrutamiento y los protocolos de toma de decisiones son parte del plano de control, mientras que el reenvío de paquetes y la búsqueda de ruta pertenecen al plano de reenvío. Los enrutadores también tienen plano de administración para telnet, ftp, soporte SNMP. Para implementar un enrutador físico desde cero, se requieren conocimientos tanto en dominios de hardware como de software (aplicaciones y sistemas) que pueden ser demasiado pesados ​​(tanto en términos financieros como de esfuerzo). Alternativamente, puede implementar un simulador en una caja de Linux para fines académicos. Diseñe la arquitectura (junto con interfaces y protocolos simulados). Cree un grupo de direcciones virtuales, asígnelas a cada interfaz virtual. Esto debería darle una idea aproximada de cómo funcionan los enrutadores.