Reordering: sender S: ns = 1; do avail(nl_buff[ns]) sbuff[ns] = nl_buff[ns]; R ! (sbuff[ns],ns); ns++ od
Reordering: receiver R: nr = 1; do S ? (D,x) rbuff[x] = D; Recd[x] = true  Recd[nr] deliver(rbuff[nr]); nr++ od
Message Loss Detection of message loss - timeout non-premature timeout: if a timeout occurs then message is indeed lost premature timeout: if a timeout occurs then a message might have been lost
Message Loss detection S: sbit = 0; sent = false do !sent /\ avail(nl_buff) sbuff = nl_buff; R ! (sbuff, sbit); sent = true  timeout R ! (sbuff, sbit)  R ? (ack,b) if b = sbit then sent = false; sbit = !sbit od Alternating Bit Protocol - Premature timeouts
R: rbit = 0; do S ? (rbuff, b) if (b = rbit) then deliver(rbuff); rbit = ! rbit; S ! (ack, b) od
Your consent to our cookies if you continue to use this website.