ARQ 오류 제어 방식과 재전송 메커니즘

ARQ의 ACK·NAK·타임아웃 기반 재전송 원리와 Stop-and-Wait, Go-Back-N, Selective-Reject 방식의 차이를 정리한다.

2026-08-14 · 최초 발행 2025-08-10

오류를 감지한 뒤 다시 보내는 ARQ

ARQ(Auto Repeat Request)는 수신 측이 데이터 오류를 감지했을 때 송신 측에 재전송을 요구하는 오류 제어 기법이다. 물리 계층은 비트를 전송하는 역할을 맡고, 오류 검출과 제어는 데이터링크 계층에서 수행한다. ARQ는 이 과정에서 데이터 무결성을 보장하는 핵심 장치다.

송신 측은 프레임을 보낸 뒤 확인응답(ACK)을 기다린다. 수신 측은 정상 프레임에는 ACK를 돌려주고, 오류가 있으면 부정응답(NAK)을 보내거나 응답하지 않는다. 송신 측은 NAK를 받거나 타임아웃이 발생하면 해당 데이터를 다시 전송한다.

한 프레임씩 확인하는 Stop-and-Wait

Stop-and-Wait ARQ는 가장 단순한 형태다. 송신자는 프레임 하나를 전송한 뒤 ACK가 도착해야 다음 프레임을 보낼 수 있다. NAK 또는 타임아웃이 발생하면 같은 프레임을 재전송한다.

구현과 프레임 보관은 단순하다. 송신 측은 한 프레임만 저장하면 되므로 버퍼 요구량도 작다. 반면 ACK를 기다리는 동안 채널을 활용하지 못하므로, 전송 지연이 긴 환경에서는 효율이 떨어지고 오버헤드 비율도 높아진다.

수신자송신자수신자송신자프레임 1 손실 또는 오류타임아웃프레임 0 전송ACK 1 (프레임 0 정상 수신)프레임 1 전송프레임 1 재전송ACK 0 (프레임 1 정상 수신)

윈도우로 연속 전송하는 ARQ

Sliding Window ARQ는 여러 프레임을 연속으로 보낼 수 있도록 윈도우 개념을 적용한다. 확인응답을 기다리는 동안에도 윈도우 범위 안에서 다음 프레임을 전송할 수 있어 채널 활용률을 높인다. 재전송 범위에 따라 Go-Back-N과 Selective-Reject로 구분된다.

오류 이후 프레임까지 되돌리는 Go-Back-N

Go-Back-N ARQ에서 송신 측은 윈도우 크기(N)만큼 ACK 없이 연속 전송할 수 있다. 오류가 발생하면 문제가 된 프레임부터 그 뒤에 보낸 프레임까지 다시 전송한다. 수신 측은 오류 프레임 이후에 도착한 프레임을 모두 폐기한다.

연속 전송으로 채널 활용률과 전송 효율은 높아진다. 다만 이미 정상 수신된 후속 프레임까지 재전송해야 하므로 낭비가 생기며, 오류율이 높은 환경에서는 성능이 저하될 수 있다.

수신자송신자수신자송신자프레임 1 손실 또는 오류프레임 1부터 재전송프레임 0 전송프레임 1 전송프레임 2 전송ACK 0 (프레임 0 정상 수신)NAK 1 (프레임 1 오류)프레임 1 재전송프레임 2 재전송ACK 1 (프레임 1 정상 수신)ACK 2 (프레임 2 정상 수신)

필요한 프레임만 다시 보내는 Selective-Reject

Selective-Reject ARQ, 또는 Selective Repeat ARQ는 오류가 발생한 특정 프레임만 골라 재전송한다. 수신 측은 정상 수신한 프레임을 버퍼에 보관하고, 순서가 갖춰지면 상위 계층으로 전달한다. 송신 측은 프레임별 타이머를 유지한다.

재전송량을 최소화해 대역폭 활용도를 높일 수 있으며, 오류율이 높은 환경에서도 효과적이다. 그 대가로 송수신 양쪽에 대용량 버퍼가 필요하고, 프레임별 관리 오버헤드와 구현 복잡성이 커진다.

수신자송신자수신자송신자프레임 1 손실 또는 오류프레임 1만 재전송프레임 0 전송프레임 1 전송프레임 2 전송프레임 3 전송ACK 0 (프레임 0 정상 수신)NAK 1 (프레임 1 오류)ACK 2 (프레임 2 정상 수신)ACK 3 (프레임 3 정상 수신)프레임 1 재전송ACK 1 (프레임 1 정상 수신)

재전송 범위가 만드는 운영상 차이

ARQ 방식 채널 효율성 버퍼 요구량 구현 복잡성 적합한 환경
Stop-and-Wait 낮음 최소 간단 짧은 거리, 낮은 오류율
Go-Back-N 중간 중간 중간 중간 거리, 중간 오류율
Selective-Reject 높음 높음 복잡 긴 거리, 높은 오류율

오류율이 높아질수록 정상 프레임까지 다시 보내는 비용이 커진다. Selective-Reject는 필요한 프레임만 재전송하는 방식으로 이 비용을 줄이지만, 이를 위해 버퍼와 프레임 관리가 추가된다.

ARQ 방식별 성능오류율처리량Selective-RejectGo-Back-NStop-and-Wait

TCP와 무선 통신에서의 적용

TCP(Transmission Control Protocol)는 Go-Back-N과 Selective-Reject를 혼합한 방식을 사용한다. 초기 TCP는 Go-Back-N 방식을 사용했으며, 현대 TCP는 Selective Acknowledgment(SACK) 옵션으로 Selective-Reject 기능을 구현한다. 패킷 손실 탐지에는 중복 ACK와 타임아웃 메커니즘이 활용된다.

무선 환경은 유선보다 오류율이 높으므로 ARQ 구현의 효율이 더 중요하다. LTE와 5G 등의 무선 통신에는 Hybrid ARQ(HARQ)가 적용된다. 이는 ARQ와 FEC(Forward Error Correction)를 결합한 방식으로, 오류 정정 코드가 일부 오류를 자체 수정하고 수정할 수 없는 오류에만 재전송을 요청한다.

타이머·시퀀스·버퍼를 함께 설계해야 한다

타임아웃이 지나치게 짧으면 불필요한 재전송이 늘고, 너무 길면 지연 시간이 증가해 성능이 떨어진다. 네트워크 상태에 맞춰 동적으로 조정할 필요가 있다.

시퀀스 번호 공간은 윈도우 크기를 고려해 충분히 확보해야 한다. 송신 버퍼에는 재전송 가능성이 있는 모든 프레임을 저장하고, 수신 버퍼에는 순서가 맞지 않는 프레임을 임시 보관한다. 오류 제어만 따로 볼 수는 없다. 수신자의 처리 능력을 고려해 전송 속도를 조절하는 흐름 제어와 통합해 운영해야 한다.

ARQ 방식의 선택은 네트워크의 거리, 오류율, 지연 특성, 버퍼 여유에 달려 있다. Stop-and-Wait의 단순성, Go-Back-N의 연속 전송, Selective-Reject의 선택적 재전송은 서로 다른 환경에서 각자의 비용과 이점을 가진다.

ARQ오류 제어데이터링크 계층재전송네트워크