네트워크 오류 처리 기법 비교
데이터 통신의 신뢰성을 확보하기 위한 주요 기술은 오류 검출(Error Detection), 오류 제어(Error Control)이며, 오류 제어 방식은 다시 FEC(Forward Error Correction)와 BEC(Backward Error Correction)로 나뉩니다.
✅ 오류 검출 vs 오류 제어
구분 | 오류 검출 (Error Detection) | 오류 제어 (Error Control) |
---|---|---|
목적 | 오류가 발생했는지를 확인 | 오류 발생 시 정정하거나 재전송 |
주요 기능 | - 오류 탐지 - 오류 알림 | - 오류 정정 - 데이터 재전송 - 순서 보장 |
기술 예시 | - 패리티 비트 - 체크섬 - CRC | - FEC - ARQ (Stop-and-Wait, Go-Back-N, Selective Repeat 등) |
처리 방식 | 오류만 감지, 정정은 별도 처리 | 오류 발생 시 정정 또는 재전송 |
결과 처리 | 오류 발생 시 수신 거부 또는 재전송 요청 | 오류 발생 시 재전송 또는 정정 수행 |
사용 예 | 이더넷 CRC, UDP 등 | TCP, 위성통신, 스트리밍, ARQ 프로토콜 등 |
✅ FEC (Forward Error Correction) vs BEC (Backward Error Correction)
구분 | FEC (Forward Error Correction) | BEC (Backward Error Correction) |
---|---|---|
개념 | 송신 측에서 오류 정정용 코드를 함께 전송 수신 측에서 자체적으로 정정 수행 | 수신 측에서 오류 감지만 수행 오류 발생 시 송신자에게 재전송 요청 |
기술 예시 | Hamming Code, Reed-Solomon, Convolutional Code | ARQ: Stop-and-Wait, Go-Back-N, Selective Repeat |
장점 | - 지연 없음 (재전송 불필요) - 실시간성에 적합 | - 구현 단순 - 대역폭 효율적 (오류 없을 경우) |
단점 | - 오버헤드 증가 - 오류가 심한 경우 정정 한계 | - 재전송으로 인한 지연 - 통신 환경이 불안정할 경우 성능 저하 |
적용 예 | 실시간 스트리밍, 위성 통신, 방송 등 | TCP 기반 전송, 이메일, 파일 전송 등 |
✅ 핵심 요약
- 오류 검출: 오류가 발생했는지를 판단하는 기술 (정정은 별도)
- 오류 제어: 오류 발생 시 정정까지 포함한 기술
- FEC: 정정 정보를 미리 보내서 수신자가 스스로 복구 (지연 없음)
- BEC: 오류 발생 시 재전송을 요청하여 복구 (지연 가능)
ARQ (Automatic Repeat reQuest) 방식 비교
ARQ는 네트워크 전송 중 오류가 발생했을 때 재전송을 통해 오류를 정정하는 방식입니다. 대표적인 세 가지 방식은 다음과 같습니다:
✅ 비교표
항목 | Stop-and-Wait ARQ | Go-Back-N ARQ | Selective Repeat ARQ |
---|---|---|---|
기본 개념 | 한 프레임 전송 후 확인 응답(ACK)을 기다림 | N개의 프레임까지 연속 전송 가능, 오류 발생 시 해당 프레임 이후 전부 재전송 | 오류 프레임만 선택적으로 재전송 |
전송 효율 | 낮음 (대기 시간이 많음) | 보통 (프레임 손실 시 비효율) | 높음 (오류 프레임만 재전송) |
수신 버퍼 | 필요 없음 (한 번에 하나만 처리) | 작거나 없음 (순차적 수신) | 큼 (비순차 수신 허용) |
복잡도 | 단순 | 중간 | 복잡 |
사용 시기 | 느린 링크, 신뢰 중요 | 일반적인 환경 | 고속 링크, 오류율 낮은 경우 |
오류 발생 시 동작 | 해당 프레임 재전송 | 해당 프레임 포함 이후 전부 재전송 | 오류 프레임만 재전송 |
✅ 개념 흐름 예시
[Stop-and-Wait]
S: Frame1 --> R: ACK1 --> S: Frame2 --> R: ACK2 ...
[Go-Back-N] (윈도우 크기 N)
S: Frame1, Frame2, ..., FrameN -->
R: (오류 발생 시 FrameK 부터 ACK 안 옴) -->
S: FrameK~N 재전송
[Selective Repeat]
S: Frame1, Frame2, ..., FrameN -->
R: ACK1, X(오류), ACK3, ACK4 -->
S: Frame2(오류 프레임만) 재전송