자동 반복 요청

From CS Wiki


Automatic Repeat reQuest; ARQ;

자동 반복 요청(ARQ)이란 통신 경로에서 에러 발생시 수신측은 에러의 발생을 송신 측에 통보하고 송신측은 에러가 발생한 프레임을 재 전송하는 전송 오류 제어방식이다.

정지-대기 ARQ[edit | edit source]

Stop-and-Wait Automatic Repeat reQuest
  • 송신 측이 하나의 블록을 전송한 후 수신 측에서 에러의 발생을 점검한 다음 에러 발생 유무 신호를 보내올 때까지 기다리는 방식이다.
  • 수신 측의 응답이 긍정 응답(ACK)이면 다음 블록을 전송하고, 부정 응답(NAK)이면 앞서 송신했던 블록을 재 전송한다.
  • 전송 효율이 가장 낮고, 오류가 발생한 블록만 재 전송하므로 구현 방법이 가장 단순하다.

Go-Back-N ARQ[edit | edit source]

Go-Back-N Automatic Repeat reQuest
  • 여러 블록을 연속적으로 전송하고, 수신 측에서 부정 응답(NAK)을 보내오면 송신 측이 오류가 발생한 블록부터 모두 재 전송
  • 에러가 발생한 블록 이후의 모든 블록을 다시 재 전송
  • 에러가 발생한 부분부터 모두 재 전송 하므로 중복 전송 문제

선택적 재전송 ARQ[edit | edit source]

Selective-Repeat Automatic Repeat reQuest
  • 여러 블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내오면 송신측이 오류가 발생한 블록만을 재 전송
  • 복잡한 논리 회로와 큰 용량의 버퍼 필요

적응적 ARQ[edit | edit source]

Adaptive Automatic Repeat reQuest
  • 전송 효율을 최대로 하기 위해서 데이터 블록의 길이를 채널의 상태에 따라 그때 그때 상태에 따라서 동적으로 변경하는 방식
  • 전송 효율이 제일 좋으나, 제어 회로가 복잡하고 비용이 많이 들어 현재는 거의 사용하지 않음.