Estoy en el proceso de comenzar a implementar una pila de protocolos de comunicación propia en el software, pero no estoy seguro de dónde comenzar. Es el tipo de trabajo que no he hecho antes y estoy buscando ayuda en términos de recursos para los enfoques mejores/recomendados.Protocolos de comunicación de implementación en C/C++
Utilizaré c/C++ y puedo usar librerías de uso (BSD/BOOST/Apache) pero no GPL. He usado C++ extensivamente así que usar las características de C++ no es un problema.
La pila de protocolos tiene tres capas y ya está completamente especificada y formalmente verificada. Entonces todo lo que tengo que hacer es implementarlo y probarlo completamente en los idiomas especificados. También debería mencionarse que el protocolo es muy simple, pero puede ejecutarse en diferentes dispositivos sobre una capa de transporte física confiable. Conozco los eventos, entradas, salidas, efectos secundarios y el comportamiento de las máquinas de estados de protocolo. En general, se recibe una interrupción para leer el mensaje recibido de la capa física para leerlo y enviarlo al dispositivo en espera. El dispositivo receptor puede procesar y pasar el mensaje de respuesta a la capa de protocolo para enviarlo a la capa física.
Cualquier ayuda con referencias/recomendaciones será apreciada. Estoy dispuesto a usar un lenguaje diferente solo para ayudarme a entender cómo implementarlos, pero eventualmente tendré que recurrir al lenguaje de elección.
Actualización: Un protocolo de ejemplo que deseo implementar es algo así como SNEP.
No necesito preocuparme por la administración de la conexión. Podemos suponer la conexión ya es establecer y que el protocolo hace es el intercambio de datos en los mensajes de protocolo ya están bien definidos en las especificaciones
Esta pregunta es demasiado genérica, comience a diseñarla e impleméntela y solicite ayuda sobre los problemas específicos que encuentre. – peoro
Es una tarea interesante. Cuando diseñe su implementación, tenga en cuenta que desea probar cada capa independientemente con pruebas unitarias. Para obtener ayuda más específica, intente especificar desde dónde comienza (¿tocando los pines conectados a PIO?) Y qué tipo de ayuda desea obtener. – harper
Estoy de acuerdo con @peoro. Además, no estoy seguro, ¿dónde estás desarrollando esto? En cualquier protocolo normal (a través de ethernet), el * OS * maneja los niveles más bajos de la pila de red. Usas las API de OS en las que creas lo que has llamado la capa de protocolo. Pero sin saber dónde pretendes construir esto y qué es específicamente problemático, realmente no puedo ayudar. –