🛡️ 오류 제어 / 흐름 제어
⚡ 전송 오류의 원인
| 원인 | 설명 |
|---|---|
| 백색 잡음 (열잡음) | 도체 내 전자의 열운동. 항상 존재하며 제거 불가능 → 랜덤 오류 |
| 충격성 잡음 (Impulse) | 순간적인 외부 전기 충격. 짧은 시간에 여러 비트가 연속으로 깨짐 → 버스트 오류 의 주원인 |
| 감쇠 (Attenuation) | 거리에 따른 신호 세기 감소 → 증폭기 · 리피터로 보상 |
| 지연 왜곡 | 주파수 성분마다 전파 속도가 달라 파형이 일그러짐 → 등화기(Equalizer) 로 보상 |
| 누화 (Crosstalk) | 인접 회선 간 전자기 유도 간섭 → 꼬임쌍선(트위스트), 차폐로 완화 |
🔎 오류 검출 방식
| 방식 | 원리 | 능력 | 비고 |
|---|---|---|---|
| 패리티 검사 Parity | 1의 개수를 짝수/홀수로 맞추는 검사 비트 1개 추가 | 검출만 홀수 개 오류 | 가장 단순. 짝수 개 오류는 검출 불가, 정정 불가 |
| 블록합 검사 수직 + 수평 패리티 | 행·열 두 방향으로 패리티를 구성 | 1비트 정정 | 교차점으로 오류 위치를 특정 가능 |
| CRC 순환 중복 검사 | 생성 다항식으로 나눈 나머지를 붙여 전송 | 검출만 버스트 오류에 강함 | 이더넷 FCS, HDLC, ATM의 HEC(CRC-8) 등에서 사용 |
| 체크섬 | 데이터를 더한 합의 보수를 전송 | 검출만 | IP · TCP · UDP 헤더 |
| 연속(반복) 송출 | 같은 데이터를 2회 이상 보내 수신 측에서 비교 | 검출만 | 가장 단순하지만 전송 효율이 매우 낮음 기출 |
| 정마크 부호 | 부호 내 1(마크)의 개수를 항상 일정하게 유지 | 검출만 | 2 out of 5 부호 등 |
⚠ 기출 최다 — CRC는 오류 "검출" 부호이지 "정정" 부호가 아니다. FEC의 정정 부호는 해밍 · LDPC · 터보 · 컨볼루션 · Reed-Solomon.
🧮 해밍 코드 — 검사 비트 수 계산
해밍 코드 조건식
2r ≥ n + r + 1
n : 데이터 비트 수 · r : 검사(패리티) 비트 수
조건을 만족하는 가장 작은 r 을 구한다 → 1비트 정정, 2비트 검출
조건을 만족하는 가장 작은 r 을 구한다 → 1비트 정정, 2비트 검출
| 데이터 비트 n | 검사 비트 r | 검산 (2ʳ ≥ n+r+1) | 전체 길이 |
|---|---|---|---|
| 4 | 3 | 8 ≥ 4+3+1 = 8 ✓ | 7 |
| 8 | 4 | 16 ≥ 8+4+1 = 13 ✓ | 12 |
| 16 | 5 | 32 ≥ 16+5+1 = 22 ✓ | 21 |
| 32 | 6 | r=5 → 32 < 38 ✗ / r=6 → 64 ≥ 39 ✓ | 38 |
| 64 | 7 | 128 ≥ 64+7+1 = 72 ✓ | 71 |
📖 기출 — "32비트 데이터의 단일 비트 오류를 정정하려면 검사 비트는 몇 개?" → 6비트. r=5는 32 < 38 로 부족하다.
🔁 FEC vs BEC(ARQ)
| 구분 | FEC (전진 오류 정정) | BEC (후진 = ARQ) |
|---|---|---|
| 동작 | 수신 측이 스스로 정정 | 오류 검출 후 재전송 요구 |
| 역채널 | 불필요 | 필요 |
| 잉여 비트 | 많음 (오버헤드 큼) | 적음 |
| 지연 | 짧음 (재전송 없음) | 재전송만큼 지연 |
| 사용 부호 | 해밍 · 컨볼루션 · 터보 · LDPC · Reed-Solomon | 패리티 · CRC · 체크섬 |
| 적합 환경 | 위성 · 방송 · 실시간 · 단방향 | 유선 데이터 통신 등 양방향 |
📨 ARQ 4종 — Automatic Repeat reQuest
| 방식 | 동작 | 재전송 범위 | 효율 | 복잡도 |
|---|---|---|---|---|
| 정지-대기 Stop-and-Wait |
1프레임 전송 후 ACK를 받아야 다음 전송 | 해당 1개 | 가장 낮음 | 가장 단순 |
| Go-Back-N 연속 ARQ |
N개를 연속 전송, 오류 발생 시 그 프레임 이후 전부 재전송 | 오류 프레임 ~ 이후 전부 | 보통 | 수신 버퍼 1개 |
| 선택적 재전송 Selective-Repeat |
오류가 난 프레임만 골라서 재전송 | 오류 프레임만 | 높음 | 수신 버퍼 · 순서 재정렬 필요 |
| 적응적 ARQ Adaptive |
채널 상태에 따라 블록 길이를 동적으로 조절 | 가변 | 가장 높음 | 가장 복잡 |
🚦 흐름 제어 (Flow Control)
송신 측이 수신 측의 처리 능력(버퍼) 을 넘지 않도록 전송량을 조절하는 기능.
오류 제어와 함께 데이터링크 계층(2계층) 및 전송 계층(4계층)의 핵심 역할이다.
| 방식 | 동작 | 특징 |
|---|---|---|
| 정지-대기 Stop-and-Wait | 한 프레임 보내고 ACK를 기다림 (윈도우 크기 = 1) | 구현이 단순하지만 회선 이용률이 매우 낮음 |
| 슬라이딩 윈도우 Sliding Window | 윈도우 크기만큼 ACK 없이 연속 전송, ACK를 받은 만큼 윈도우가 이동 | 회선 이용률이 높음. TCP·HDLC에서 사용 |
⚠ 기출 함정 — "슬라이딩 윈도우는 네트워크 혼잡 시 윈도우 크기를 1로 감소시킨다" → 틀림.
혼잡 시 윈도우를 줄이는 것은 TCP 혼잡 제어(Slow Start) 의 동작이지, 슬라이딩 윈도우(흐름 제어) 자체의 특성이 아니다.
피기백 확인응답 (Piggyback ACK) — 확인 응답을 따로 보내지 않고,
상대에게 보낼 데이터 프레임에 ACK를 함께 실어 보내는 방법. 프레임 수를 줄여 전송 효율을 높인다. 기출
📝 시험 포인트
• CRC = 검출 전용, 해밍 · LDPC · 터보 = 정정 가능 (FEC)
• 해밍 검사비트 2ʳ ≥ n+r+1 → 32비트 데이터면 6비트
• FEC는 역채널 불필요, BEC(ARQ)는 필요
• ARQ 효율: 적응적 > 선택적 재전송 > Go-Back-N > 정지-대기
• 오류 제어 · 흐름 제어 · 동기화 = 데이터링크 계층(2계층) 의 기능
• 윈도우를 1로 줄이는 것은 TCP 혼잡 제어, 슬라이딩 윈도우가 아님
• CRC = 검출 전용, 해밍 · LDPC · 터보 = 정정 가능 (FEC)
• 해밍 검사비트 2ʳ ≥ n+r+1 → 32비트 데이터면 6비트
• FEC는 역채널 불필요, BEC(ARQ)는 필요
• ARQ 효율: 적응적 > 선택적 재전송 > Go-Back-N > 정지-대기
• 오류 제어 · 흐름 제어 · 동기화 = 데이터링크 계층(2계층) 의 기능
• 윈도우를 1로 줄이는 것은 TCP 혼잡 제어, 슬라이딩 윈도우가 아님