: 수신자로부터 확인응답을 받기 전까지 얼마나 많은 데이터를 전송할 수 있는지 알려주는 일련의 절차
2개의 버퍼(buffer) 사용
: 손상된 패킷을 수신 노드로 전달하는 것을 방지하기 위함.

: 프레임 손실(loss)도 없고, 중복되지 않으며, 손상되지도 않는 이상적인 채널
ex) 데이터가 전송되다가 사라지거나, 똑같은 데이터가 2개 이상 전송되거나, "1011"이 담긴 데이터를 보냈는데 "1001"이 도착하는 경우가 없는 상황
: 흐름 제어나 오류제어를 하지 않는 프로토콜


: 송신자가 한 개의 프레임을 전송한 후에 수신자로부터 확인응답(ACK)을 받을 때까지 기다린 후에 다음 프레임 전달.(하나 보내고 정지)


: 오류 제어를 사용하는 세 개의 프로토콜
오류제어 : 전송된 프레임의 사본을 보관하고 있다가 타이머가 만료되면 해당 프레임을 다시 전달. (일정 시간동안 ACK를 받지 못하면 사본을 재전송)
순서 번호를 프레임에 부여하여 사용. (순서번호는 모듈러-2 연산 기반)
확인응답 번호는 다음에 받기를 기대하는 프레임의 번호.



: 전송 효율을 높이기 위해 확인응답을 기다리는 동안 여러 개의 프레임을 전송하는 방식
: 송신자와 수신자에게 필요한 순서 번호의 범위를 지정하는 추상적인 개념
송신 미닫이 창 (send sliding window) : 송신자에게 필요한 범위
→ 현재 전송할 수 있는 데이터 프레임의 순서 번호가 들어있음.
Go-Back-N ARQ 송신 미닫이 창의 크기 : 2m - 1
Sf : 1번째 미해결 프레임
Sn : 전송할 다음 프레임
Ssize : 창의 크기, ACK를 받지 않고도 최대로 전송할 수 있는 프레임 수

수신 미닫이 창 (receive sliding window) : 수신자가 필요한 범위
→ 데이터 프레임이 정확하게 수신되었고 정확한 확인응답을 전송했는지 확인.
Go-Back-N ARQ 수신 미닫이 창의 크기 : 1 (Rn)


N-복귀 ARQ의 창 크기
: 송신 창의 크기는 2m보다 작고 수신 창의 크기는 항상 1

누적 응답 가능 : 하나의 프레임이 들어올 때마다 ACK를 보내는 것이 아니라 ex) 프레임 3까지 받고 ACK 0을 보내도됨.

수신창의 크기는 1이기 때문에 Rn과 전송된 프레임이 맞지 않다면 수신하지 않음. (ACK를 보내지 않음)

: 전체 N개의 프레임을 전달하는 대신 손상된 프레임만 전송하는 방식
잡음이 많은 채널에서 효율적
수신자 측의 처리절차가 복잡해짐 (N-복귀 ARQ는 수신 창의 크기가 1이기 때문에 수신할 데이터 순서번호와 도착한 프레임 순서 번호만 비교하여 번호가 틀리다면 거부하면 됨, 하지만 선택적 반복 ARQ는 여러 개의 프레임을 받고, 도착하지 않은 프레임의 번호만 골라 송신 측에 재전송을 요청해야함.순서대로 오지 않아도됨.)
선택적 반복 ARQ의 송신과 수신 창 (수신 창 주목!!!!!!)

받지 못한 프레임은 NAK(부정응답)을 보냄

선택적 반복 ARQ의 창 크기
: 송신 창과 수신 창의 크기는 최대 2m의 절반(2m-1)


