프로토콜에는 위와 같은 분류가 적용되는데 여기서 우리가 오늘 알아볼 sliding window protocol에 속하는 것은 다음의 그림과 같이
GO-Back-N ARQ와 Selective Repeat ARQ 이렇게 두가지가 존재한다.
우선 Stop and Wait ARQ를 알아보자
ARQ는 Automatic Repeat Request의 약자로, 자동 재전송을 의미한다.
송신자가 패킷을 보내면 잘 보냈다는 의미로 ACK를 회신한다. 그런데 패킷을 보내고 일정 시간이 지나도 ACK가 돌아오지 않으면 Time out이 되고 해당 패킷을 다시 보내게 된다. 이런 식의 반복이 Stop-and-Wait ARQ이다.
하지만 한번에 프레임을 하나만 보낸다는 점, bandwidth를 활용하지 못하는 것을 인해 performance가 떨어지는 점이 단점이다.
그래서 우리는
센더가 10~0까지 index 넘버가 있다고 가정하자. 그리고 윈도우 사이즈는 4라고 가정해보자.
먼저 0이 출발한다. 그리고 3까지 이게 반복된다.
3까지 도착하면 프레임 0의 ack가 돌아온다.
그러면 index 4는 receiver에게 날라간다.
그러면 window는 옆으로 미끄러져가고 프레임에 4321이 포함된다.
index 1의 ack가 돌아온다.
다음 인덱스 출발 -> 윈도우 슬라이딩 -> 다음 ack도착 -> 다음 인덱스 출발..