Una vez desarrollé uno muy simple en C #. Funcionó bien, incluso si simulaba solo una muy pequeña porción de OSPF cuando detuve el desarrollo.
Mi código usaba algunas clases: Nodo (para los enrutadores), Enlace (para los enlaces entre enrutadores), Puerto (perteneciente al Nodo conectado por Enlace) y, por supuesto, Mensaje (con clases heredadas como EthernetMessage, IpMessage, etc.) …)
Cada enlace conectaba dos puertos, donde estaba presente una cola sincronizada.
- Mi dirección IP está bloqueada por Wikipedia; ¿Qué tengo que hacer?
- Recibo notificaciones por correo en mi teléfono más rápido que mi computadora portátil a pesar de que ambos dispositivos están conectados al mismo enrutador wifi. ¿Alguien sabe por qué?
- Estoy buscando comprar un enrutador inalámbrico para una pequeña empresa, que puede atender a 50-60 personas al mismo tiempo. ¿Alguna sugerencia?
- ¿Por qué tengo una conexión Wi-Fi pero no tengo acceso a Internet?
- Tengo un cable de mi enrutador a mi televisor. También me gustaría agregar una segunda señal inalámbrica más fuerte en la sala de televisión. ¿Cómo puedo hacer eso?
El Nodo estaba sondeando continuamente todos sus Puertos para buscar nuevos Mensajes en un hilo específico y en caso de un nuevo Mensaje, el Nodo lo procesó (comenzando desde el Mensaje de Ethernet, hasta IpMessage incluido en él).
El Enlace simplemente tomó un Mesasge de una terminación y lo colocó en la otra después de un tiempo configurable.
Toda la red era un grupo de hilos independientes (los nodos y los enlaces) que intercambiaban mensajes y los procesaban.