Estoy leyendo acerca de implementaciones de UDP confiable (es decir, envío de paquetes ACK y reenvío de paquetes no acreditados de nuevo).Pregunta confiable del método UDP y ACK
de los dos patrones principales que parecen encontrar cerca de la red:
cliente envía un ACK para cada paquete recibido con la secuencia de ese paquete. El servidor asume que el paquete no se ha entregado a menos que reciba un ACK.
El cliente envía un paquete ACK con las secuencias de los paquetes que cree que faltan. El servidor asume que el paquete se entrega a menos que reciba un ACK del cliente diciendo que le falta una secuencia, luego vuelve a enviar los paquetes solicitados (faltantes).
En resumen, en 1. los clientes envían la secuencia de los paquetes recibidos, mientras que en 2. el cliente envía la secuencia de los paquetes faltantes.
Me pregunto cuáles son los pros/contras de cada método y cuál es más convencional (supongo que 1, pero 2 parece ser un método muy inteligente ya que la mayoría de los paquetes llegan y solo unos pocos se pierden).
EDIT: Un ejemplo corto en ambos métodos:
Method 1: Server sends: 1,2,3,4,5
Client received: 1,3,5,4
Client sends back: ACK 1, ACK 3, ACK 5, ACK 4
Server resends: 2.. maybe more if ACK packets were lost
Method 2:
Server sends 1,2,3,4,5,6,7,8
Client receives: 1,3,2,5,7
Client Sends :ACK (lowest continuous 3,highest received 7, seem to be missing 4,6)
Server resends: 4,6,8
¿Qué ocurre si en el método dos, el paquete de confirmación del cliente que dice que falta algo nunca se entrega? – villintehaspam
Por lo que entiendo, en el método 2 hay un ACK que dice 'no faltan paquetes aquí (y el más alto recibido es 532)' ... así que si el servidor envía 1 paquete y no se recibe ACK, entonces ese paquete se vuelve a enviar. los paquetes de ACK en el método 2 generalmente se envían periódicamente ... actuando como un ping Supongo que – Radu094
¿Podría aclarar un poco más sobre las diferencias? Entonces, el método 1 ack paquetes explícitamente, siempre que se alcance un nuevo seq no (por lo tanto, podría ser una respuesta para más de un paquete) y el método 2 acepta paquetes periódicamente y nunca explícitamente? – villintehaspam