Computer Networking - Go Back N and other stuff
This is where my notes for Ch. 3 of Kurose and Ross Computer Networking: A Top Down approach are going to be. Currently, I don’t have time to take super detailed notes on everything so they’ll get filled in later. Focus on Go-Back-N (GBN) protocol for the assignment.
- The sender is allowed to transmit multiple packets (when available) without waiting for acknowledgment
- However, is constrained to have no more than some max. allowable number, N, of unacknowledged packets in the pipeline.
- define base to be the sequence number of the oldest acknowledged packet
- define nextseqnum to be the smallest unused sequence number (that is, the sequence number of the next packet to be sent)
- Sequence numbers of base + N or greater cannot be used until an unacknowledged packet currently in the pipeline (the packet with seq. number base
- Sequence numbers in the interval [0,base-1] correspond to packets that have already been transmitted and acknowledged.
- The inter- val [base,nextseqnum-1] corresponds to packets that have been sent but not yet acknowledged.
- Sequence numbers in the interval [nextseqnum,base+N-1] can be used for packets that can be sent immediately, should data arrive from the upper layer.
- Tldr; there’s a sliding frame of packets that you can send of size N and that’s why GBN is called a sliding window protocol
- GBN has an extended FSM seen below:
- Basically, on the sender side
- If the window is not full, a packet is created and sent and variables updated.
- If full, the sender returns the data back to the upper layer, and implicit indication that the window is full. Then the upper layer can try again later
- An ack will acknowledge the receipt of a packet
- In the event of a timeout, the sender resends all packets that have been previously sent that have not yet been acknowledged since it uses a single timer
- On the receiver side if it receives the right packet in order it sends and ack for that packet otherwise it sends an ACK for the previous in-order packet.