-para la FSM de A tuvieras 2 estados ("esperando request" y "espera datos") y guardaras una variable que fuera cambiando entre 0 y 1
- para la FSM de B tuvieras un solo estado y también tuvieras una variable que fuera cambiando entre 0 y 1
Igual para mi la solución del ejercicio no es correcta porque cuando A está en el estado "Espera D1" le puede llegar un mensaje de datos viejo que cumpla D1(rcvpkt) pero que ya se lo haya entregado antes a la capa de aplicación. Esto pasa porque los request para un mismo paquete de datos los puede enviar muchas veces y los paquetes de datos que B envía como respuesta pueden llegar desordenados a A (porque la letra dice que el retardo es "variable" asumo que los paquetes se pueden desordenar en el enlace).
Para mí la solución debería usar número de secuencia en las dos máquinas de estado, no te alcanza solo con 0 y 1 como en stop and wait.