Supongamos que hay dos dispositivos (A y B) que se comunican entre sí (dúplex completo). Por el bien de este ejemplo, digamos que el medio es RF (inalámbrico).
Si el dispositivo A envía un mensaje al dispositivo B, ¿qué métodos / estrategias existen para ambos dispositivos para confirmar que B recibió el mensaje y para ambos dispositivos ser ¿Seguro que el otro dispositivo lo sabe?
Esto se explica mejor a través de un ejemplo del mundo real:
Supongamos que tiene un control remoto / llave de RF de dúplex completo para su automóvil que controla las cerraduras. El control remoto tiene una pantalla LCD.
Si ordena que se cierren las cerraduras, el control remoto enviará una señal al auto. Si el automóvil recibe la señal correctamente, puede bloquear las puertas inmediatamente y luego enviar un acuse de recibo (ACK) al control remoto para que diga "las puertas están bloqueadas" y el control remoto puede mostrar esto en su pantalla. Sin embargo, el control remoto puede recibir o no el ACK del auto.
Si el control remoto no recibe el ACK del automóvil, el control remoto y el usuario no saben si las puertas están cerradas. En este punto, el usuario puede volver a intentar el proceso, o darse por vencido y caminar hacia el automóvil, ya que cualquiera de los dos no es deseable porque no era necesario. También puede causar problemas adicionales, como que el usuario espere que el automóvil se desbloquee y, por lo tanto, no traiga sus llaves para sacar un artículo del maletero. Por lo tanto, existe el deseo de que tanto el control remoto como el automóvil estén "en la misma página".
Ahora consideremos la misma secuencia, excepto que el control remoto recibió el ACK. El control remoto ahora sabe que el auto recibió el mensaje. Puede mostrar al usuario que las puertas están bloqueadas ... Pero el auto no sabe que el control remoto sabe. Desde el punto de vista del automóvil, es posible que no se haya recibido el ACK, por lo que las puertas no deberían estar cerradas aún o de lo contrario nos encontramos con los problemas mencionados en el último párrafo. Por lo tanto, el automóvil puede esperar a que el control remoto envíe un ACK propio al automóvil. Si se recibe, el auto sabe que el control remoto sabe que el auto sabe cómo cerrar las puertas ... ¿Pero el control remoto lo sabe? ¡No!
¿Viendo un patrón aquí? Ambos dispositivos continúan pasando ACKs de un lado a otro. Tampoco puede salir y decir "Sé al 100% que el otro dispositivo sabe que voy a realizar mi acción" .
¿Hay alguna forma para que tanto el control remoto como el automóvil se aseguren de que las puertas estén bloqueadas y el control remoto lo muestre?
Si eso no es posible, ¿qué otras estrategias aparte de la simple fuerza bruta (el auto que envía ACK repetidamente) están ahí para estar bastante seguros de que las puertas están bloqueadas y el control remoto lo muestra como tal?