본문 바로가기
네크워크 기초

ARQ(Automatic Repeat reQuest)

by asd135 2023. 9. 21.
728x90

ARQ

ARQ (Automatic Repeat reQuest)는 데이터 통신에서 오류 제어를 위해 사용되는 프로토콜이다.

이 프로토콜은 수신자가 잘못된 패킷을 받으면 송신자에게 재전송을 요청하는 방식으로 작동한다.

 


Stop-and-Wait ARQ

 

가장 기본적인 형태의 ARQ로, 송신자가 패킷을 보내고 ACK (Acknowledgement) 또는 NAK (Negative Acknowledgement) 응답을 받을 때까지 기다린다. ACK를 받으면 다음 패킷을 보내고, NAK를 받거나 타임아웃이 발생하면 같은 패킷을 재전송한다.

 


Go-Back-N ARQ

 

Stop-and-Wait ARQ 방식의 단점을 해결하기 위해 데이터 블록을 연속으로 보냄. 만약 어떤 패킷에 대한 ACK가 오지 않으면, 그 패킷과 그 이후에 보낸 모든 패킷들을 재전송한다.

 


Selective Repeat ARQ

 

Go-Back-N과 비슷하지만, 잘못된 패킷만 재전송하는 차이점이 있다(Go-Back-N ARQ) 방식을 개선. 이 방법은 네트워크 자원을 더 효율적으로 사용할 수 있지만 구현이 복잡하다.

 


Adaptive ARQ (Automatic Repeat reQuest)

 

네트워크 상황에 따라 동적으로 ARQ 프로토콜의 동작 방식을 조정하는 방식이다. 기본적으로 Adaptive ARQ는 데이터 전송 중 오류가 발생할 경우 재전송을 요청하는 일반적인 ARQ 메커니즘을 사용하지만, 네트워크 상태나 트래픽 조건 등에 따라 전송 방식을 변경한다.

예를 들어, 네트워크의 오류율이 높아질 경우 Adaptive ARQ는 짧은 프레임을 전송하고 반대로 네트워크의 오류율이 낮아질 경우에는 긴 프레임을 전송한다.

Adaptive ARQ를 구현하기 위해서는 추가적인 알고리즘이나 메커니즘이 필요하며, 이로 인해 시스템 복잡도가 증가하는 단점도 존재한다.

 


각각의 ARQ 방식은 네트워크 환경, 데이터 전송률 등 여러 요소에 따라 적합성이 달라진다.

 

출처: Tanenbaum A.S., Wetherall D.J., "Computer Networks", Fifth Edition
Forouzan B.A., "Data Communications and Networking", Fourth Edition
Kurose J.F., Ross K.W., "Computer Networking: A Top-Down Approach", Seventh Edition
Forouzan B.A., "Data Communications and Networking", Fifth Edition