Reference no: EM1398558
Let three network entities: X, Y, and Z, which are connected by perfect point-to-point bi-directional channels (that is, any message sent will be received correctly; channel will not corrupt, lose, or re-order packets). X, Y, and Z are to deliver data messages to each other in rotating manner: first X should deliver message to Y, then Y must deliver a message to Z, and then Z must deliver a message to X, and so on.
Sketch the FSM specification for this protocol (one FSM for X, one for Y, and one for Z). udtsend() function must include name of recipient. For instance, udt_send(data,Z) is used to send message to Z. Your protocol doesn't have to use ACK messages.
rdt_send(data), packet = make_pkt(data), udt_send(packet),
rdt_rcv(packet), extract (packet,data), deliver_data(data).