¿Cuáles son las mejores prácticas para diseñar e implementar protocolos de red?

La mejor práctica número uno es hacer todo lo posible por utilizar un protocolo estándar y no diseñar un nuevo protocolo personalizado. Ya existen muchos protocolos estándar o al menos conocidos, y si puede hacer que sus comunicaciones se ajusten a uno de ellos, su vida será mucho más fácil.

Recuerde que si desarrolla el suyo propio, no solo tendrá que preocuparse por la solidez y flexibilidad de su protocolo, sino que también deberá desarrollar herramientas para probar y solucionar problemas, así como documentación e información de capacitación para cualquier otra persona que esté planeando hablar con su aplicación. Para los protocolos estándar, puede aprovechar las herramientas y la documentación ya creadas por otros. Los protocolos estándar ya pasaron por alto las pruebas del mundo real y pasaron. Si no puede usar un protocolo existente como está, intente ver si hay uno que pueda extender o modificar, o si nada más intente usar una estructura de mensajería similar a otros protocolos para que su protocolo sea más fácil de entender para otros. y aprender.

La razón principal por la que puedo pensar para requerir un nuevo protocolo es si su red se ejecuta en una capa física fundamentalmente diferente. Por ejemplo, si tiene un dispositivo de ultra baja potencia que necesita enviar una actualización periódica de datos importante a través de una radio de ancho de banda limitado a un servidor que puede estar encendido o no, eso es algo que probablemente requerirá un manejo especial.

Si termina necesitando crear un nuevo protocolo, preste atención a la red subyacente.

  • Intente y asegúrese de que los tamaños de los mensajes se ajusten al tamaño de paquete estándar de las capas de transporte subyacentes incluso después de haber sido rellenados con los encabezados de las capas inferiores.
  • Tenga un método para asegurarse de que puede manejar mensajes perdidos, fuera de servicio, inesperados o corruptos.
  • Agregue tiempos de espera y documente claramente qué son y cómo se usan. Las redes del mundo real no entregan con éxito cada bit que envía, ¡y a veces ni siquiera la mitad de lo que envía!
  • Documente claramente los diversos escenarios de transmisiones buenas y malas y cómo manejar cada situación.

También preste atención a los tipos de dispositivos que tendrán que implementar su protocolo. Muchos dispositivos móviles e integrados tienen limitaciones de ancho de banda, memoria y tiempo para tener en cuenta. Los enrutadores y otros dispositivos que no son puntos finales dentro de su red también pueden tener limitaciones, especialmente cuando se trata de una gran cantidad de dispositivos que se comunican entre sí.

Primero, ¿realmente necesitas tu propio protocolo? Antes de responder, visite http://www.zeromq.org/ . En serio cosas geniales.

OK, quieres crear tu propio protocolo. Guay. He construido algunos de ellos. Primero, eche un vistazo al encabezado TCP en sí. Parece que querrás un sobre de mensaje que empaques / desempaques. Además, ponga un número de versión en el encabezado. Confía en mí en esto. Ser capaz de subir / bajar las revoluciones de su protocolo será invaluable. A continuación, números de secuencia. Al pasar por HTTP, no se garantiza que un mensaje al siguiente esté en el orden que envió. TCP se encarga de ordenar. ¿Pero el servidor que está desarrollando? ¿Qué pasa con los intermediarios? ¿Esto incluso importa?

Dibuje diagramas de secuencia para su protocolo. Centrarse en las condiciones de error. Cualquiera con medio ingenio puede hacer hablar a 2 servidores. Hacer que se entiendan cuando la mierda sale mal es donde sucede la magia.