# 50.012 Lecture 6 ## Pipelined Protocol Pipelining means sender allows multiple "in flight" not acknowledged yet packets. * range of sequence numbers must be increased * buffering at sender and/or receiver 2 generic forms of pipelined protocols: go-back-N, selective repeat. ### Go-back-N Sender can have up to N un-ACK-ed packets in pipeline. Receiver only sends cumulative ACK, it doesn't ACK packet if there's a gap. Sender has a timer for the oldest un-ACK-ed packet, when timer expires, it will retransmit all un-ACK-ed packets. There is a k-bit sequence numbers in the packet header. The "window" is of up to N, consecutive un-ACK-ed packets are allowed. ACK(n): ACKs all packets up to, including sequence number n. This is known as the cumulative ACK. Consequently, it might result in duplicate ACKs. ### Selective Repeat Sender can have up to N un-ACK-ed packets in the pipeline. Receiver sends an individual ACK for each packet. Sender maintains timer for each un-ACK-ed packet, when timer expires, it will retransmit only the un-ACK-ed packet. Receiver individually acknowledges each correctly received packet. There are buffer packets for eventual in-order delivery to the upper layer. Sender only resends packets for which ACKs are not received. There is a timer for each un-ACK-ed packet (on the sender side). Sender's window is the N consecutive sequence numbers, and it limits the sequence numbers of sent un-ACK-ed packets.