![Selective Repeat ARQ](https://q-a.kr/wp-content/uploads/2025/02/9-3.png)
Selective Repeat ARQ(Automatic Repeat reQuest), 신뢰성 있는 데이터 전송을 보장하는 오류 제어 프로토콜 중 하나입니다. Stop-and-Wait ARQ나 Go-Back-N ARQ와 비교하여 더 효율적인 데이터 전송을 제공하며, 특히 패킷 손실이나 오류 발생이 잦은 네트워크 환경에서 강력한 성능을 발휘합니다.
Selective Repeat ARQ란?
Selective Repeat ARQ는 데이터 프레임을 개별적으로 확인(ACK, Acknowledgment)하고, 손실되거나 오류가 발생한 프레임만 재전송하는 방식의 프로토콜입니다.
기존의 Go-Back-N ARQ에서는 오류가 발생하면 해당 패킷 이후의 모든 패킷을 다시 전송해야 하지만, Selective Repeat ARQ는 특정 패킷만 재전송하여 대역폭을 효율적으로 활용할 수 있는 장점이 있습니다.
Selective Repeat ARQ의 동작 방식
Selective Repeat ARQ는 송신 측(Sender)과 수신 측(Receiver) 간의 협력을 통해 작동합니다.
윈도우(Window) 개념
Selective Repeat ARQ는 Sliding Window(슬라이딩 윈도우) 기법을 사용하여 여러 개의 프레임을 동시에 전송합니다.
- 송신 윈도우(Send Window): 한 번에 전송할 수 있는 프레임의 범위를 나타냅니다.
- 수신 윈도우(Receive Window): 수신자가 받아들일 수 있는 프레임의 범위를 나타냅니다.
윈도우 크기는 N
이라 할 때,
- Go-Back-N에서는 수신 윈도우 크기가 1(순차적으로 프레임을 수신해야 함)
- Selective Repeat에서는 송신 윈도우와 수신 윈도우 크기가 동일하게 N/2(개별적인 수신이 가능)
정상적인 전송 과정
- 송신자는 여러 개의 패킷을 연속적으로 전송합니다.
- 수신자는 올바르게 수신한 패킷에 대해 개별적으로 ACK를 보냅니다.
- 송신자는 수신된 패킷을 확인하고, 확인 응답(ACK)을 받은 패킷은 윈도우에서 제거합니다.
오류 발생 시 재전송 과정
- 수신자는 오류가 발생한 패킷을 감지하고, 해당 패킷에 대한 ACK를 송신하지 않습니다.
- 송신자는 타이머를 사용하여 일정 시간이 지나도 ACK를 받지 못한 패킷을 다시 전송합니다.
- 수신자는 누락된 패킷을 받아들이고, 이를 원래 순서대로 정렬한 후 상위 계층으로 전달합니다.
이러한 방식으로 Selective Repeat ARQ는 Go-Back-N보다 불필요한 재전송을 줄이고, 네트워크 효율성을 높일 수 있습니다.
Selective Repeat ARQ의 장점과 단점
장점
✔ 효율적인 대역폭 사용: 손실된 패킷만 재전송하므로 불필요한 데이터 전송이 줄어듭니다.
✔ 빠른 오류 복구: 특정 패킷만 재전송하기 때문에 데이터 흐름이 원활하게 유지됩니다.
✔ 네트워크 성능 향상: 손실률이 높은 네트워크에서도 안정적인 전송이 가능합니다.
단점
❌ 복잡한 구현 방식: 각 패킷을 개별적으로 관리해야 하므로 버퍼 관리와 ACK 확인이 복잡해집니다.
❌ 메모리 사용량 증가: 수신 측에서 순서를 유지하기 위해 별도의 버퍼가 필요합니다.
❌ 윈도우 크기 제한: 일반적으로 N/2
크기의 윈도우를 사용해야 하므로, 사용 가능한 윈도우 크기가 제한될 수 있습니다.
Selective Repeat ARQ vs Go-Back-N ARQ 비교
비교 항목 | Selective Repeat ARQ | Go-Back-N ARQ |
---|---|---|
패킷 재전송 방식 | 오류 발생 패킷만 개별 재전송 | 오류 발생 패킷 이후 모두 재전송 |
대역폭 효율성 | 높음 | 낮음 (불필요한 재전송 많음) |
복잡성 | 높음 (ACK, 버퍼 관리 필요) | 낮음 (순차적인 재전송) |
메모리 요구량 | 높음 (윈도우 버퍼 필요) | 낮음 |
적합한 환경 | 오류가 많은 네트워크 | 오류가 적은 네트워크 |
Selective Repeat ARQ는 오류가 자주 발생하는 무선 네트워크, 위성 통신, 데이터 스트리밍 같은 환경에서 효과적으로 사용됩니다. 반면, Go-Back-N ARQ는 오류가 적은 네트워크에서 단순한 흐름 제어가 필요할 때 적합합니다.
결론
Selective Repeat ARQ는 패킷 손실이 발생해도 네트워크 대역폭을 낭비하지 않고 데이터를 효율적으로 전송하는 신뢰성 높은 프로토콜입니다.
✔ 기존의 Go-Back-N ARQ보다 재전송 효율이 뛰어나며,
✔ 네트워크 성능이 중요시되는 환경에서 최적의 성능을 발휘할 수 있습니다.
하지만, 버퍼 관리 및 구현 복잡성이 증가하는 단점도 존재하므로, 네트워크 환경에 맞춰 적절한 ARQ 기법을 선택하는 것이 중요합니다.
[…] Selective Repeat ARQ 총정리 […]