ARQ : Automatic Repeat Request의 약자로, 자동 반복 요청을 의미. 에러가 발생한 경우 재전송을 요구하는 방식
Go-back-N ARQ와 Selective Repeat ARQ는 모두 전송층(Transport Layer)의 프로토콜이며 이 두가지를 혼합 및 개선하여 만든 프로토콜이 TCP(Transmission Control Protocol)이다.
이 글에서 사용된 '프레임'이라는 용어는 전송층에서 쓰이는 '패킷'과 같은 개념이며 데이터링크층에서 사용되는 전송단위인 프레임과는 다르다.
수신측으로부터 ACK을 받을 때까지 대기하다가 전송하는 방법
반이중 방식으로 다른 ARQ 방식보다 전송 효율이 낮다.
송신측은 프레임을 보냄과 동시에 타이머를 작동시킨다. 수신측에서 보낸 ACK를 받으면 타이머가 멈춘다.
송신측은 전송한 프레임의 사본을 보관하고 있다가 타이머가 만료되면 해당 프레임을 다시 보낸다. -> ACK이 오지 않은 경우 프레임이 손실, 중복, 순서 바뀜이 일어난 것으로 판단
수신자쪽에서의 과정 단순하다.
오류가 난 지점부터 전송한 지점까지 모두 재전송 하는 기법
Timer가 만료되면 ACK가 오지 않은 프레임(sliding window의 첫 프레임)부터 재전송한다.
ex) 6번 프레임을 보냈는데 3번 프레임의 타이머가 만료된 경우, 송신자는 뒤로 돌아가서 3,4,5,6번 프레임을 다시 보낸다.
오류가 난 부분만 재 전송하는 기법
NAK를 사용하여 개선할 수 있다.
NAK를 쓰게 되면 Timer가 만료되기전에 해당 프레임을 재전송 해야한다는 것을 알 수 있으므로 빠른 재전송이 가능하다.
수신자 쪽에서의 과정이 복잡하다.
전송 효율을 최대한 높이기 위해 데이터 프레임의 길이를 동적으로 변경하여 전송한다.
수신측이 송신측에게 수신한 데이터 프레임을 감지하고 오류 발생률을 판단하여 송신측에 오류 발생률을 통보하면 송신측은 통신회선의 오류 발생률이 낮으면 긴 프레임을, 높으면 짧은 프레임을 전송한다.