<문제 해설>
ARQ = automatic request for repeatition , 통신 과정에서 송/수신자 간에 재전송 요청을 어떻게 할것인가에 대한 방법론
=> OSI-7 계층에서 특정 계층에서 동작하는 매커니즘이 아니라, 오류가 있을 때 어떻게 할 것인가에 대한 방법이다.
=> ARQ 분류 : 정지-대기ARQ, 연속적ARQ(Go-Back-N, Selective), Adaptive(적응적)ARQ
자동 반복 요청(ARQ) 기법
정지-대기(Stop-and-Wait) ARQ
- 송신측에서 한개의 블록을 전송한 후 수신측으로부터 응답을 기다리는 방식
- 수신측의 응답이 ACK라면 다음 블록을 전송하고 NAK라면 앞서 송신한 블록을 다시 송신
- 블록을 전송할때마다 응답을 기다리므로 전송 효율이 낮다.
- 구현방법이 간단
연속(Continuous) ARQ
- Stop-and-Wait ARQ가 갖는 오버헤드를 줄이기 위해 연속적으로 데이터 블록을 보내는 방식
- 수신쪽에서는 잘못되었을때 NAK만을 송신
- 아래 2가지 방식이 존재
*Go-Back-N ARQ
- 여러 블록들을 연속적으로 전송하고, 수신쪽에서 NAK을 보내오면 송신측이 오류가 발행한 이후의 블록을 모두 재송신
- 전송오류가 발생하지 않으면 쉬지않고 송신가능
- 오류가 발생한 부분부터 재송신하므로 중복전송의 단점이 있다.
*선택적 재전송(Selective Repeat) ARQ
- 여러 블록을 연속적으로 전송하고, 수신측에서 NAK를 보내면 송신측에서는 오류가 난 부분의 블록만 재전송
- 수신측에서는 데이터를 처리하기전에 재조합을 해야하므로 복잡한 논리회로와 큰 용량의 버퍼가 필요하다.
적응적(Adaptive) ARQ
- 전송효율을 최대로 하기 위해 데이터 블록의 길이를 채널의 상태에 따라 그때그때 동적으로 변화
- 전송 효율이 좋다
- 제어 회로가 매우 복잡하고, 비용이 많이드는 단점