PE Notes · 네트워크
오류제어 FEC, ARQ, CRC
비트 오류를 검출만 할지 스스로 고칠지 다시 보낼지로 가르고, CRC와 Stop-and-Wait·Go-Back-N·Selective Repeat, HARQ를 비교합니다.
선로와 전파는 비트를 뒤집습니다. 오류제어는 그 뒤집힘을 찾거나 고치거나 다시 보내는 체계입니다. 위성처럼 왕복이 길면 잉여를 실어 스스로 고치고, 유선처럼 왕복이 짧으면 검출 후 재전송이 싸집니다.
검출과 정정을 나누다
한 비트만 뒤집히면 단일 오류, 연속으로 깨지면 버스트입니다. 패리티·체크섬·는 검출이고, 는 수신이 스스로 고칩니다. 는 검출 뒤 되돌려 달라고 합니다.
| 비교축 | FEC | ARQ(BEC) |
|---|---|---|
| 누가 고치나 | 수신, 잉여 비트 | 송신, 재전송 |
| 지연 | 낮다 | 왕복만큼 는다 |
| 대역 | 잉여가 항상 붙는다 | 오류 날 때만 는다 |
| 자리 | 위성·방송·저장매체 | 유선·Wi-Fi 재전송 |
| 한계 | 고칠 수 있는 비트 수 | 채널이 끊기면 반복 |
해밍 코드는 FEC의 고전입니다. 리드솔로몬은 디스크와 QR, LDPC·폴라 코드는 이동망에 가깝습니다.
창을 열면 누가 다시 보내나
Stop-and-Wait는 한 장을 보내고 ACK를 기다립니다. 구현은 쉽고, 파이프가 길면 효율이 1/(1+2a)로 무너집니다. 은 창 N을 밀어 보내다 틀린 장부터 뒤를 전부 다시 보냅니다. 는 틀린 장만 고르고, 수신 버퍼가 커집니다.
| 비교축 | Stop-and-Wait | Go-Back-N | Selective Repeat |
|---|---|---|---|
| 창 | 1 | N (2^n−1) |
N (2^(n−1)) |
| 재전송 | 그 프레임 | 오류 이후 전부 | 틀린 프레임만 |
| 수신 버퍼 | 거의 없음 | 거의 없음 | 창만큼 |
| 효율 | 낮음 | 중간 | 높음 |
| 복잡도 | 낮음 | 중간 | 높음 |
| 자리 | 단순 링크 | HDLC류 | Wi-Fi·현대 TCP |
TCP의 슬라이딩 윈도우는 선택 재전송에 가깝게 진화했습니다. 흐름 제어와 혼잡 제어는 다른 토픽에서 창을 나눕니다.
CRC는 찾고, HARQ는 겹친다
CRC는 생성 다항식으로 나눈 나머지를 FCS로 붙입니다. 수신도 같은 다항식으로 나눠 나머지가 0이면 통과입니다. 버스트를 잘 찾고, XOR로 칩에 올리기 쉽습니다. 정정은 못 하니 ARQ와 짝입니다.
| 비교축 | CRC | HARQ |
|---|---|---|
| 역할 | 검출 | 정정 + 재전송 |
| 남는 것 | 나머지 ≠ 0 | 이전 수신을 더해 다시 디코드 |
| 쓰임 | 이더넷·ZIP | LTE·5G |
는 같은 블록을 더하거나(체이스), 새 잉여만 보탭니다(증분 잉여). QoS가 지연을 재면, 오류제어는 그 지연의 재료입니다.