ARQ(Automatic Repeat Request)란?

이동엽·2022년 5월 23일
0

Network

목록 보기
2/6

ARQ는 Automatic Repeat Request의 약자로, 자동 재전송을 의미한다.

쉽게 말해, 에러가 발생할 경우 재전송을 요구하는 방식이다.

ARQ를 설명하기 앞서, 용어를 먼저 정리해야 합니다.

  • 프레임(frame) : 전송층에서 쓰이는 '패킷'과 같은 의미이다.
  • ACK(Acknowledge) : 수신측에서 이상 없이 프레임을 받았을 경우에 보내는 확인 응답이다.
  • NAK(Negative Acknowledge) : 프레임을 제대로 전송받지 못한 경우 송신측에 보내는 신호

Stop-and-Wait

수신측으로부터 ACK를 받을 때까지 대기하는 방식

[동작 방식]

  • 송신측은 프레임을 보내고 기다림과 동시에 타이머를 작동시킨다.
    • 수신측에서는 프레임에 이상이 없으면 ACK를 보낸다.
    • 프레임에 오류가 있으면 NAK를 보낸다.
  • 송신측에서는 ACK를 받으면 타이머를 멈춘다.
  • 오류가 발생한 블록만 재 전송하므로 구현 방법이 가장 단순하고, 신뢰성이 있는 통신 방식이다.
  • 다만, 한 프레임을 보낼 때마다 기다리므로 속도가 느리다.

Go-back-N

오류가 난 지점부터 전송한 지점까지 모두 재전송 하는 기법

[동작 방식]

  • 한번에 여러 프레임을 보내고, 나중에 ACK를 받는 방식
  • 에러가 발생한 경우, 해당 프레임부터 모두 재전송한다.
  • 대역폭을 많이 차지하는 단점이 있다.

Selective-repeat

[동작 방식]

  • 한번에 여러 프레임을 보내고, 나중에 ACK를 받는 방식
  • 에러가 발생한 경우, 해당 프레임만 재전송한다.
  • 수신자 측은 복잡한 논리 회로와 큰 용량의 버퍼를 요구한다.

연속 재전송을 하는 두 방식의 비교

구분Go-back-NSelective-repeat
에러 발생시손상된 프레임의 이후부터 모두 재전송손상된 프레임만 재전송
구현 난이도구조가 비교적 간단, 구현이 쉬움프레임의 재배열을 구현하기 어려움
버퍼 유무데이터를 폐기하기 때문에 큰 버퍼 요구x프레임 재배치로 인한 큰 버퍼 요구


[참고한 자료들]

그림 출처1

그림 출처2

용어 출처

정의 출처

profile
백엔드 개발자로 등 따숩고 배 부르게 되는 그 날까지

0개의 댓글