Comunicación entre una computadora y microcomputadoras

2

Actualmente estoy trabajando en un proyecto que requiere que me comunique entre varios Raspberry Pi y una computadora. Mostraré los datos enviados por Raspberry Pi en esa computadora. Ya que estoy usando Raspberry Pi, pensé que puedo aprovechar el uso de los protocolos de capa de red. Por lo tanto, concatené casi mil números flotantes como una cadena y lo envié a través de la red de área local utilizando el protocolo UDP. En el lado de la computadora, estoy analizando esos números flotantes de la cadena y mostrándolos como gráficos de datos en vivo. Este proceso no es por una vez, está trabajando en un bucle. No he visto ningún problema hasta ahora, pero mi pregunta es "¿Hay alguna forma de hacer que la comunicación sea más confiable? ¿Qué usarías para eso?"

    
pregunta Şener

1 respuesta

4

Como se indica en los comentarios, TCP es en general una mejor opción que UDP cuando se trata de confiabilidad.

UDP es ligero y con mucho menos sobrecarga que TCP. Una vez que envía un mensaje UDP, no espera un mensaje de retorno que confirme si el mensaje se recibió o no. Para darle un ejemplo práctico: UDP se usa mucho en los videojuegos porque reduce la latencia y el motor gráfico puede cumplir con un paquete de pérdida. Cuando los jugadores juegan en línea, bombardean la red con una cantidad loca de paquetes pequeños.

Hay otra implementación que puede apilarse sobre el protocolo TCP, pero esto se vinculará a los requisitos específicos y el escenario de caso de uso.

Por otro lado, TCP es un protocolo de peso pesado con la confiabilidad en mente. Cada paquete contiene mucha más sobrecarga para evitar la corrupción y para garantizar que los datos se hayan recibido correctamente. Es obligatorio que cada mensaje TCP recibido se confirme al remitente. Esto significa que un paquete creará dos transmisiones.

De vuelta a su pregunta, en una red local con poca transferencia de datos, probablemente nunca verá ninguna diferencia y probablemente solo deje caer un paquete de vez en cuando. Si actualiza con bastante frecuencia, pero la eliminación no es crucial, UDP es la opción de facto. Si desea saber cuándo falla un paquete y desea más confiabilidad y detección de fallos, TCP es su amigo.

    
respondido por el Simon Marcoux

Lea otras preguntas en las etiquetas