1. 재전송 기반 에러제어 (Retransmission Error Control)
ㅇ 신뢰성있는 데이터 전달을 위해, 재전송을 기반으로 하는, 에러제어 방식
ㅇ `검출후 재전송 방식` 또는 `ARQ 기법` 이라고도 함
2. ARQ 방식의 특징
ㅇ 수신자 피드백 방식
- 수신측이 송신측에 재전송을 요구하는 방식
. 데이터 내 첨부된 오류검출(체크섬 등) 정보로 에러 발생 유무를 점검하고,
.. 에러가 발생한 프레임에 대해 재전송을 요구함
. 긍정확인(ACK) 및 타임아웃(일정시간) 등으로 신뢰성 확보
ㅇ 오류검출 만으로도 통신회선의 신뢰성 제고 가능
- ARQ 기법은 비록 오류정정 체계를 갖추지는 못하였더라도,
. 오류검출 만으로 통신회선의 신뢰성 확보에 충분함
- 특히, 적은 오류 발생일 때 더욱 효과적
ㅇ 결론적으로,
- ARQ는 재전송을 기반으로하여 링크의 신뢰성을 확보하는 기법
- 다만, 실시간 처리에는 곤란한 에러제어 방법임
3. ARQ 구현시 필요한 기능
ㅇ 오류 검출
- 데이터 기반 메커니즘 : 체크섬, 패리티 검사, CRC 등
. 데이터 내에 부가된 리던던시에 의해 오류검출
- 시간 기반 메커니즘 : 타이머 사용
. 송신측은 일정시간(타임아웃) 내 수신측으로부터 ACK 도착 않으면, 에러 발생 가정
ㅇ 수신 여부 피드백
- 긍정 확인시 : ACK (긍정 확인응답)
- 부정 확인시 : NACK (부정 확인응답)
. 또는, 일정시간 ACK 미수신시 즉, 타임아웃 인 경우에 부정 확인으로 간주
ㅇ 재전송의 신뢰화 및 효율화
- 재전송 신뢰성 확보
. 시간 기반 재전송 메커니즘 : 타이머 사용 (RTO 등)
. 확인응답 기반 재전송 메커니즘 : 확인응답(ACK) 메세지의 도착 유무
- 재전송 효율성 확보
. 느린 시작 등
4. ARQ 방식의 종류
ㅇ 정지대기방식 (Stop and Wait, Idle ARQ)
- 한 번에 하나씩 긍정 확인응답(ACK)을 받고, 후속 데이터 전송
- 가장 단순하나, 다소 비효율적
- 반이중 방식에서도 가능
ㅇ Go Back n ARQ (GBN) 또는 Continuous ARQ (연속적 ARQ)
- 한번에 여러 개를 보낸후 하나의 긍정 확인응답(ACK)을 받고, 후속 데이터 전송.
- NAK(부정 확인응답)를 수신할 때까지 계속하여 데이터를 송신함.
- 전이중방식에서 동작함
* `슬라이딩 윈도우 (Sliding Window) 방식` 이라고도 불리움
ㅇ Selective Repeat ARQ (선택적 ARQ, 선택적 재전송)
- 위 연속적 ARQ 와는 비슷하지만,
. 오류가 발생된(NACK) 프레임 이후 또는 오류 발생된 프레임 만을 재전송
.. 例) TCP 등
- 전이중방식에서 동작함
ㅇ Adaptive ARQ (적응적 ARQ) ☞ Link Adaption, H-ARQ 등 참고
- 적응적으로 ARQ 횟수를 줄여 전송 효율을 높이는 방식