재전송 기반 에러제어 ( Retransmission Error Control )
- 데이터링크 계층에서 데이터의 흐름을 제어하는 기법 중의 하나
- 신뢰성있는 데이터 전달을 위해 재전송을 기반으로 하는 에러제어 방식
- '검출 후 재전송 방식' 또는 'ARQ 기법'이라고 함
용어 정리
- 프레임(Frame) : 전송층에서 쓰이는 '패킷'과 같은 개념이며 데이터링크층에서 사용되는 전송단위인 프레임과는 다름
- ACK(Acknowledge) : 수신측에서 이상없이 프레임을 받았을 경우에 보내는 확인 응답
- NAK(Negative Acknowledge) : 프레임을 제대로 전송받지 못한 경우 송신측에서 보내는 신호
- 파이프라인 : ACK를 받기 전에 보낼 수 있는 프레임의 갯수
- redumdent bit : 프레임의 오류를 검출 또는 정정하기 위해 데이터 비트 외에 추가적으로 붙이는 bit
ARQ ( Automatic Repeat Request ) 란?
ARQ 방식의 종류
Stop-and-Wait ARQ
- 수신측으로부터 ACK를 받을 때까지 대기하다가 전송하는 방법
- 반이중 방식으로 다른 ARQ 방식보다 전송 효율이 낮음
- ( 동작방식 )
- 송신측은 프레임을 보내고 기다림과 동시에 타이머 작동
- 수신측에서 프레임에 이상이 없으면 ACK를 보냄
- 프레임에서 오류가 있으면 NAK를 보냄
- 송신측에서 ACK를 받으면 타이머를 멈춤
- 오류가 발생한 블록만 재전송하므로 구현 방법이 가장 단순하고 신뢰성 있는 통신 방식임
- 다만, 한 프레임을 보낼 때마다 기다리므로 속도가 낮음
Go-Back-N ARQ
- 오류가 난 지점부터 전송한 지점까지 모두 재전송하는 기법
- 전이중방식에서 동작함
- 전송오류가 발생하지 않으면 쉬지 않고 송신 가능
- 중복전송의 단점이 있음
- ( 동작방식 )
- 한 번에 여러 프레임을 보내고, 나중에 ACK를 받는 방식
- 에러가 발생한 경우, 해당 프레임부터 모두 재전송함
- 대역폭을 많이 차지하는 단점이 있음
Selective Repeat ARQ
- 오류가 난 부분만 재전송하는 기법
- 전이중방식에서 동작함
- ( 동작방식 )
- 한 번에 여러 프레임을 보내고, 나중에 ACK를 받는 방식
- 에러가 발생한 경우 해당 프레임만 재전송함
- 수신측은 복잡한 논리 회로와 큰 용량의 버퍼를 요구함
Adaptive ARQ
- 전송 효율을 최대한 높이기 위해 데이터 프레임의 길이를 동적으로 변경하여 전송하는 방식
- 오류 발생률이 낮으면 긴 프레임을, 높으면 짧은 프레임을 전송함
- 제어 회로가 매우 복잡하고 비용이 많이 든다는 단점이 있음
GBN(Go-Back-N) ARQ와 SR(Selective Repeat) ARQ의 비교
| GBn ARQ | SR ARQ |
|---|
| 손상/분실된 프레임 이후의 프레임을 모두 재전송 | 손상/분실된 프레임만을 재전송 |
| 구조가 비교적 간단하고 구현이 단순함 | 구조가 복잡(프레임 재배열 등 추가 로직 필요) |
| 데이터 폐기 방식을 사용하여 추가적 버퍼가 필요없음 | 폐기 방식을 사용하지 않아 순차적이지 않은 프레임을 재배열하기 위한 버퍼가 필요함 |
| 비용이 비교적 저렴함 | 비용 및 유지관리 비용이 증가 |