[네트워크] ARQ(자동 반복 요청)

HenryHong·2022년 8월 2일
0

ARQ : Automatic Repeat Request의 약자로, 자동 반복 요청을 의미. 에러가 발생한 경우 재전송을 요구하는 방식

Go-back-N ARQ와 Selective Repeat ARQ는 모두 전송층(Transport Layer)의 프로토콜이며 이 두가지를 혼합 및 개선하여 만든 프로토콜이 TCP(Transmission Control Protocol)이다.

이 글에서 사용된 '프레임'이라는 용어는 전송층에서 쓰이는 '패킷'과 같은 개념이며 데이터링크층에서 사용되는 전송단위인 프레임과는 다르다.

무잡음 채널에서의 프로토콜

  • Simplest
  • Stop-and-Wait

잡음이 있는 채널에서의 프로토콜

  • Stop-and-Wait ARQ (파이프 라인이 1개)
  • Go-back-N ARQ (파이프 라인이 N개)
  • Selective Repeat ARQ (파이프 라인이 N개)

용어 정리

  • 파이프라인 : ACK를 받기 전에 보낼 수 있는 프레임의 갯수
  • ACK : 확인응답, 에러없이 프레임을 받은 경우 송신측에 보내는 신호
  • 프레임의 종류 : 데이터 프레임, 제어프레임, ACK 프레임
  • redundent bit : 프레임의 오류를 검출 또는 정정하기 위해 데이터 비트 외에 추가적으로 붙이는 bit
  • NAK(Negative Acknowledge) : 해당 프레임을 제대로 전송받지 못한 경우 송신측에 보내는 신호
  • Slicing Window : 송신자와 수신자가 관심을 두고 있는 순서 번호의 영역을 정의하는 추상적인 개념.
    송신자와 수신자는 가능한 순서 번호의 일부만을 사용해야 한다는 것이다.
    sliding window의 크기가 파이프라인의 크기이다.

Stop-and-Wait ARQ

수신측으로부터 ACK을 받을 때까지 대기하다가 전송하는 방법
반이중 방식으로 다른 ARQ 방식보다 전송 효율이 낮다.
송신측은 프레임을 보냄과 동시에 타이머를 작동시킨다. 수신측에서 보낸 ACK를 받으면 타이머가 멈춘다.
송신측은 전송한 프레임의 사본을 보관하고 있다가 타이머가 만료되면 해당 프레임을 다시 보낸다. -> ACK이 오지 않은 경우 프레임이 손실, 중복, 순서 바뀜이 일어난 것으로 판단
수신자쪽에서의 과정 단순하다.

Go-back-N ARQ

오류가 난 지점부터 전송한 지점까지 모두 재전송 하는 기법
Timer가 만료되면 ACK가 오지 않은 프레임(sliding window의 첫 프레임)부터 재전송한다.
ex) 6번 프레임을 보냈는데 3번 프레임의 타이머가 만료된 경우, 송신자는 뒤로 돌아가서 3,4,5,6번 프레임을 다시 보낸다.

Selective Repeat ARQ

오류가 난 부분만 재 전송하는 기법
NAK를 사용하여 개선할 수 있다.
NAK를 쓰게 되면 Timer가 만료되기전에 해당 프레임을 재전송 해야한다는 것을 알 수 있으므로 빠른 재전송이 가능하다.
수신자 쪽에서의 과정이 복잡하다.

Adaptive ARQ

전송 효율을 최대한 높이기 위해 데이터 프레임의 길이를 동적으로 변경하여 전송한다.
수신측이 송신측에게 수신한 데이터 프레임을 감지하고 오류 발생률을 판단하여 송신측에 오류 발생률을 통보하면 송신측은 통신회선의 오류 발생률이 낮으면 긴 프레임을, 높으면 짧은 프레임을 전송한다.

출처

https://nenunena.tistory.com/37

profile
주니어 백엔드 개발자

0개의 댓글