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.

Go-Back-N (GBN)

  • 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.
Written on October 7, 2014