Go-Back-N ARQ - Pseudocode

Pseudocode

These examples assume an infinite number of sequence and request numbers.

N = window size Rn = request number Sn = sequence number Sb = sequence base Sm = sequence max Receiver: Rn = 0 Do the following forever: If the packet received = Rn && the packet is error free Accept the packet and send it to a higher layer Rn = Rn + 1 Send a Request for Rn Else Refuse packet Send a Request for Rn Sender: Sb = 0 Sm = N − 1 Repeat the following steps forever: 1. If you receive a request number where Rn > Sb Sm = Sm + (Rn − Sb) Sb = Rn 2. If no packet is in transmission, Transmit a packet where Sb <= Sn <= Sm. Packets are transmitted in order.

Read more about this topic:  Go-Back-N ARQ