Pipelined protocols

rdt 3.0는 하나의 packet이 전달되면 멈추고 응답을 기다려야하는 stop-and-wait방식이기 때문에 효율적이지 못하다.
그래서 packet을 여러 개 보내야 하는것을 허용하는게 Pipelining이다.
pipelining의 종류로는 Go-Back-N, selective Repeat가 있다.
Go-Back-N

Selective repeat


sender는 N개의 Packet을 보낸다.
Window Size는 고정된 값이고 sender와 reciver 모두 같은 window size를 가진다.
reciver에서 받은 packet에 대한 ACK을 sender에게 보낸다.
만약 packet n에 대한 time out이 초과되면 packet n만 다시 보내고 해당 packet의 timer를 재시작한다.

[참고] Computer Networking A Top-Down Approach EIGHTHEDITION/Kurose.Ross/Pearson