35. 부호화 (Encoding) - Line Coding, Block Coding
핵심 인사이트 (3줄 요약)
- 본질: 디지털 통신에서 부호화(Encoding)는 컴퓨터 내부의 논리적 0과 1의 비트 스트림을 구리선이나 광케이블이 받아들일 수 있는 **물리적 전압/빛 펄스 형태로 변환(Line Coding)**하고, 통신의 신뢰성과 동기화를 위해 미리 여분의 비트를 끼워 넣는(Block Coding) 일련의 변환 작업이다.
- 가치: 이 부호화 과정이 없으면 연속된 0이나 1이 발생할 때 수신기의 클럭 타이밍(Clock Synchronization)이 무너져 프레이밍 에러가 발생하고, 매체의 직류(DC) 성분 밸런스가 깨져 장거리 전송 시 파형이 완전히 붕괴되는 물리 계층의 대참사를 맞게 된다.
- 융합: 초창기 이더넷의 비효율적인 맨체스터(Manchester) 라인 코딩에서 벗어나, 현대 기가비트망은 4B/5B, 8B/10B 같은 고도의 블록 코딩(Block Coding)으로 데이터의 패턴을 예쁘게 다듬은 뒤, 다치 변조 라인 코딩(PAM-5 등)을 씌워 대역폭 낭비를 0으로 수렴시키는 융합 아키텍처를 완성했다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념:
- 라인 코딩 (Line Coding): '디지털-대-디지털 변환'의 핵심. 컴퓨터의 비트 0과 1을 전선의 +5V, -5V 같은 전기적 펄스나 광선의 ON/OFF 신호로 매핑하는 물리적 설계 방식이다. (예: NRZ, 맨체스터)
- 블록 코딩 (Block Coding): 라인 코딩을 하기 전에, $m$비트의 원본 데이터 덩어리(블록)에 여분의 비트를 추가하여 조금 더 긴 $n$비트짜리 덩어리($mB/nB$)로 포장하는 논리적 치환 작업이다. 목적은 에러 탐지와 클럭 동기화다.
-
필요성: 컴퓨터에서 $0$ 이 100번 연속으로 나온다고 가정하자. 단순한 전압 방식(0=0V, 1=5V)을 쓰면, 선로의 전압은 오랫동안 0V로 바닥을 기게 된다. 수신기는 "컴퓨터가 꺼진 건가? 아니면 0이 100번 온 건가? 내 시계(타이머)가 맞나?" 하고 혼란에 빠져 클럭 동기화(Synchronization)를 잃어버린다. 또한 전압이 한쪽(0V나 5V)으로만 치우치면 직류(DC) 성분이 누적되어 중간의 변압기(Transformer)를 통과하지 못하고 신호가 타버린다. 따라서 엔지니어들은 데이터가 무조건 주기적으로 전압을 출렁거리게 만들고(Self-clocking), +와 - 전압의 평균이 정확히 0이 되도록(DC 밸런싱) 원본 데이터를 인위적으로 조작하는 부호화 마법을 발명해야 했다.
-
💡 비유: 부호화(Encoding)는 **'모스 부호 전보 치기'**와 같다.
- 내 머릿속의 한글(논리적 0과 1)을 전보 아저씨에게 건네면, 아저씨는 전봇대(매체)가 버틸 수 있도록 '돈돈 쓰 돈(라인 코딩)'이라는 전기적 파열음으로 바꾼다.
- 그런데 내가 실수로 "아아아아아아아" 똑같은 글자만 100번 적어내면 수신자가 몇 번인지 헷갈리니까, 아저씨가 임의로 "아아(끝) 아아(끝)"처럼 중간에 쉼표(블록 코딩 잉여 비트)를 규칙적으로 끼워 넣어 상대방이 헷갈리지 않게 배려하는 꼼꼼한 포장 작업이다.
-
연속된 0/1이 유발하는 수신단 클럭 붕괴 시각화:
┌─────────────────────────────────────────────────────────┐
│ 부호화(Encoding) 없이 보낼 때 발생하는 치명적 동기화 실패 │
├─────────────────────────────────────────────────────────┤
│ │
│ [송신단] 원본 데이터: 연속된 10개의 '1' 전송 (NRZ 단순 매핑: 1=+5V)│
│ | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | │
│ 5V ─██████████████████████████████████████████ ───▶ │
│ 0V ─ │
│ │
│ [수신단] 타이머 오차 누적으로 인한 대참사 │
│ |1|1|1| 1| 1| 1| 1| 1| 1| 1 | 1 | (수신기 타이머 폭주)│
│ 5V ─██████████████████████████████████████████ │
│ 결과: 전압이 떨어지지 않고 쭉 5V 유지됨. 수신기는 자체 타이머로 │
│ 자르려 하지만, 오차가 누적되어 10개가 아니라 11개로 읽어버림! │
│ │
│ * 부호화의 미션: "데이터가 무엇이든 억지로 전압을 위아래로 흔들어 │
│ 수신기가 박자(클럭)를 맞출 눈금을 파주자!" (셀프 클러킹)│
└─────────────────────────────────────────────────────────┘
[다이어그램 해설] 수신기는 전압이 0에서 5V로 꺾일 때(Edge) "아! 여기서부터 한 비트 시작이구나!" 하고 자기 시계를 다시 영점 조준(동기화)한다. 그런데 전압이 안 꺾이고 평행선으로 쭉 밀고 들어오면 시계를 맞출 기준점이 사라져 망망대해를 떠돌게 된다. 속도가 조금만 빨라도 10개의 비트를 11개나 9개로 오독(Framing Error)하게 되는 것이다. 부호화 기술의 존재 이유는 데이터 전송이 아니라 이 **'시계 맞추기 톱니바퀴(Edge)'**를 데이터 속에 몰래 숨겨 넣는 것에 있다.
- 📢 섹션 요약 비유: 메트로놈 없이 혼자 노래를 부르는데, 10초 동안 똑같은 '아~' 소리만 길게 내면 내가 10초를 불렀는지 11초를 불렀는지 헷갈립니다. 숨을 쉬기 위해 중간에 '앗!' 하고 끊어주는 억지스러운 발성 규칙(인코딩)을 만들면 박자를 놓치지 않는 원리입니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
1. 블록 코딩 (Block Coding)의 기적: 4B/5B 매핑
라인 코딩(전압 바꾸기)을 하기 전, 논리적인 소프트웨어 단계에서 데이터를 손본다. $mB/nB$ 코딩은 $m$비트의 원본을 $n$비트로 부풀려 치환하는 기술이다. ($n > m$)
- 4B/5B 코딩 원리: 원본 4비트(16가지 경우의 수)를 5비트(32가지 경우의 수)로 1:1 매핑한다.
- 마법의 규칙: 32가지의 5비트 패턴 중, "0이 3번 이상 연속으로 나오는 패턴"은 모조리 쓰레기통에 버리고 사용하지 않는다. 오직 0이 연속되지 않는 안전한 16개 패턴만 골라서 원본 데이터에 치환시킨다.
- 결과: 이 코딩을 통과한 데이터는 우주가 멸망해도 0이 3번 이상 연속으로 나오지 않는다. 수신기는 무조건 전압이 자주 바뀌는 것을 보장받게 되어 클럭 동기화(Sync)를 절대 놓치지 않는다. 또한 남는 5비트 패턴들은 통신 시작(Start), 끝(End), 에러 보고 등의 훌륭한 제어 코드로 쏠쏠하게 써먹는다.
- 단점: 100Mbps 데이터를 보내려면 억지로 5비트로 부풀렸으므로 실제 선로에는 125Mbps 속도의 펌프질(오버헤드 25%)을 해야 한다. 고속 이더넷(100BASE-TX)의 핵심 근간 기술이다.
2. 라인 코딩 (Line Coding)의 대명사: 맨체스터 코딩
블록 코딩으로 0의 연속을 막았어도, 진짜 전기적 전압 펄스를 전선에 그리는 하드웨어 로직이 라인 코딩이다. (세부 분류는 다음 장(#36)에서 상세히 다룬다.)
-
맨체스터 코딩 (Manchester Coding): 초기 10Mbps 랜선(10BASE-T)을 지배한 전설적인 라인 코딩.
- 원리: 비트의 정중앙에서 무조건 전압을 꺾는다.
- 논리 '0' = 비트 중간에 전압이 위에서 아래로 뚝 떨어진다 (+V $\rightarrow$ -V).
- 논리 '1' = 비트 중간에 전압이 아래에서 위로 솟구친다 (-V $\rightarrow$ +V).
- 장점 완벽주의: 비트 한가운데 무조건 전압 변화(Edge)가 생기므로, 수신기는 데이터가 00000이 오든 11111이 오든 비트 중앙만 쳐다보고 완벽하게 100% 클럭 동기화를 맞출 수 있다 (Self-clocking 끝판왕). 또한 위아래 전압을 반반씩 무조건 쓰므로 DC(직류) 밸런스가 수학적으로 완벽한 0V가 된다.
- 단점 효율 최악: 1비트를 보내기 위해 전압을 2번이나 위아래로 흔들어야 한다(Baud Rate 낭비). 10Mbps를 보내려면 매체가 20MHz의 대역폭을 소모해야 하는 사치스러운 규격이라, 기가비트 시대에는 쫓겨났다.
- 원리: 비트의 정중앙에서 무조건 전압을 꺾는다.
-
📢 섹션 요약 비유: 블록 코딩은 원고지에 글을 쓸 때 띄어쓰기를 잊을까 봐 아예 "3글자마다 무조건 쉼표를 찍어라"라고 작문 규칙을 강제하는 것이고, 라인 코딩은 그 원고지를 읽어주는 성우가 발음이 안 꼬이게 한 글자마다 박수를 치며(맨체스터) 읽어주는 행동입니다.
Ⅲ. 융합 비교 및 다각도 분석
비교 1: 맨체스터(라인 코딩) vs 4B/5B (블록 코딩) + NRZI 결합 아키텍처
초기 이더넷(10M)과 패스트 이더넷(100M)이 물리적 한계를 뚫기 위해 취한 부호화 전략의 차이다.
| 비교 관점 | 10BASE-T (10M 이더넷) | 100BASE-TX (100M 이더넷) |
|---|---|---|
| 부호화 아키텍처 | 순수 맨체스터 라인 코딩 | 4B/5B 블록 코딩 + NRZI 라인 코딩 결합 |
| 클럭 동기화 방식 | 비트 중앙의 무조건적 전압 꺾임 (강제) | 5비트 조작으로 0 연속을 막은 뒤, NRZI의 전압 반전 이용 |
| 대역폭 낭비(Baud) | 10M 전송 시 20M Baud 파형 소비 (200%) | 100M 전송 시 125M Baud 파형 소비 (125%) |
| 설계 철학 | "효율은 무시하고 확실하게 무식하게 꺾자" | "무식하게 꺾지 말고, 논리(블록)로 모양을 예쁘게 다듬어 쏘자" |
만약 100M 이더넷에서 구형 맨체스터 코딩을 고집했다면 선로에 200MHz 주파수를 쏟아부어야 했고, 구리선의 감쇠 한계에 부딪혀 통신 거리가 10m도 안 되었을 것이다. 엔지니어들은 하드웨어 펄스(맨체스터)로 속도를 조지는 대신, 소프트웨어 수학(4B/5B 블록 코딩)을 먼저 돌려 패턴을 다듬어 대역폭 낭비를 획기적으로 줄이는 천재적인 융합 설계로 100m 거리의 100M 시대를 열어젖혔다.
과목 융합 관점
-
저장 장치 (Storage): 하드디스크(HDD) 자성 표면에 데이터를 기록할 때도 동일한 부호화가 쓰인다. 자성이 계속 한 방향으로만 있으면 헤드가 위치(클럭)를 잃어버리므로, 연속된 0을 막기 위해 디스크 컨트롤러 펌웨어 단에서 8B/10B(혹은 런 렝스 제한 코딩 RLL) 블록 코딩을 씌워 자성을 규칙적으로 흔들어준다. 통신 매체(선로)나 저장 매체(플래터)나 물리적 한계를 극복하는 논리적 치환 원리는 우주적으로 동일하다.
-
광통신 (PON/FTTH): 기가비트 광통신(1000BASE-X)에서는 레이저를 껐다 켰다 해야 하는데, 오랫동안 레이저를 끄고 있으면(연속된 0) 수광 소자가 잠들어버린다(Synchronization Loss). 이를 막기 위해 원본 8비트를 10비트로 부풀리는 8B/10B 코딩을 적용하여, 레이저가 쉴 새 없이 반짝거리도록(DC 밸런싱 보장) 강제하여 수 테라비트 장거리 전송의 불을 밝혔다.
-
📢 섹션 요약 비유: 10M 시절엔 체력이 남아돌아 한 걸음마다 무조건 손뼉을 치며 뛰었다면(맨체스터), 100M 고속 질주 시대엔 손뼉 칠 힘(대역폭)이 아까워서 머리로 발걸음 수를 세며(블록 코딩) 가장 우아하고 에너지 소모가 적은 폼으로 달리게 된 육상 폼의 교정입니다.
Ⅳ. 실무 적용 및 기술사적 판단
실무 시나리오
-
시나리오 — 데이터센터 구리 케이블 10Gbps 링크 에러 (64B/66B 코딩의 도입 원리): 기존 1G망에서 쓰던 8B/10B 인코딩을 그대로 10G(10GBASE-R) 스위치 포트에 적용하려 한다고 가정하자. [해결책] 치명적인 아키텍처 설계 미스다. 8B/10B는 8비트를 보내기 위해 10비트를 쓴다(오버헤드 25%). 만약 10Gbps 속도를 내려면 물리적 케이블(Baud)에는 12.5Gbps의 클럭을 밀어 넣어야 한다. 12.5GHz의 엄청난 고주파를 쏘면 구리선과 광모듈에서 ISI와 지연 왜곡이 터져 기계가 다 타버린다. 이를 구원하기 위해 IEEE 엔지니어들은 오버헤드가 단 3%에 불과한 64B/66B 블록 코딩을 창조했다. 64비트를 66비트로만 살짝 포장하여, 물리적 클럭 스피드를 10.3125GHz 수준으로 극한 억제하면서도 동기화 패턴을 유지하는 마법을 부렸다. 최신 백본망 도입 시 물리 계층 부호화 스펙을 읽는 눈이 필요한 이유다.
-
시나리오 — 장거리 임대망(SDH/SONET)에서의 PRBS 스크램블링 트러블슈팅: 통신사에서 임대한 E1/T1 전용선으로 대용량 파일을 전송하는데 핑이 툭툭 끊긴다. 장비 인터페이스에는 'Loss of Sync(동기 실패)' 알람이 난무한다. 페이로드 안에 우연히 0이 수천 번 연속되는 압축 파일 데이터가 들어있었다. [해결책] 구형 라인 코딩(AMI 등)의 한계를 부수는 원초적 해결책인 스크램블링 (Scrambling) 부재 현상이다. 아무리 코딩을 예쁘게 해도 0이 수천 번 오면 답이 없다. 실무자는 라우터의 시리얼 인터페이스에서 스크램블링 기능을 켜야 한다. 이는 송신단에서 보내려는 데이터에 아주 복잡한 난수 수열(Pseudo-Random)을 XOR로 곱해버려 데이터를 완벽히 불규칙한 1과 0의 짬뽕(노이즈 형태)으로 뒤섞어 버리는 것이다. 수신단은 똑같은 난수표를 곱해 원본을 기적같이 살려낸다. 연속된 0의 공포를 아예 데이터 난수화로 박살 내버린 고전적이고 확실한 실무 해결책이다.
물리 계층(PHY)의 통신 불안정 및 동기화 실패 시 원인 규명 의사결정 흐름은 다음과 같다.
┌───────────────────────────────────────────────────────────────────┐
│ L1 물리 계층 '동기화 이탈(Loss of Sync)' 장애 진단 플로우 │
├───────────────────────────────────────────────────────────────────┤
│ │
│ [링크는 살아있으나 수초 간격으로 포트가 UP/DOWN을 반복하며 Sync Fail 로그 출력]│
│ │ │
│ ▼ │
│ 전송되는 데이터 페이로드의 특성이 0이나 1이 연속되는 특정 패턴인가? │
│ ├─ 예 ─────▶ [라인 코딩/부호화 단의 클럭 추출(CDR) 실패 증상] │
│ │ │ │
│ │ └─▶ [조치: 포트의 스크램블러(Scrambler) 활성화 확인]│
│ │ │
│ └─ 아니오 (데이터 내용과 무관하게 무작위로 링크가 뻗음) │
│ │ │
│ ▼ │
│ 양단 간의 물리적 클럭 주도권(Clock Source) 및 대역폭 설정이 매칭되는가? │
│ ├─ 아니오 ────▶ [논리적 Clock Slip 발생. Master/Slave 강제 설정] │
│ │ │
│ └─ 예 ──────▶ [SFP 광모듈 불량으로 인한 광 파형(아이패턴) 찌그러짐 의심]│
└───────────────────────────────────────────────────────────────────┘
[다이어그램 해설] "선도 멀쩡하고 전압도 좋은데 자꾸 장비가 링크를 끊는다"는 것은 수신기가 송신기의 박자(클럭)를 놓쳐 춤추다가 스텝이 꼬여서 포기한 상태다. 이 스텝을 유지시켜 주는 것이 부호화(Encoding)다. 실무에서 0이 수천 개 들어있는 깡통 파일을 보냈을 때 장비가 미쳐버린다면, 100% 포트단 설정에서 0을 쪼개주는 스크램블링이나 블록 코딩 옵션이 꺼져 있어 하드웨어가 직류(DC)의 바다에 빠져 질식한 것이다.
도입 체크리스트
- 기술적: 신축 전산실에서 고가의 Cat.7 배선을 걷어내고 광케이블 백본을 깔 때, 코어 스위치 트랜시버 모듈이 100G 이상 속도에서 발열을 최소화하기 위해 고전적인 8B/10B(25% 오버헤드 낭비)가 아닌 64B/66B 기반 인코딩과 FEC가 결합된 최신 칩셋(PHY)을 탑재했는지 아키텍처 문서를 벤치마킹했는가?
- 운영·보안적: 무선 망(Wi-Fi)이나 RF 통신에서 송신단이 데이터를 쏠 때, 중간 도청자가 0과 1의 패턴을 유추하는 전력 분석 공격(DPA)을 방어하기 위해 데이터 파형을 난수화하여 직류 평탄도를 깨뜨리는 휫태커(Whitening/Scrambling) 알고리즘이 기본 동작하도록 설정되었는가?
안티패턴
-
소프트웨어적 압축과 물리적 부호화(Encoding)의 혼동: "데이터를 4비트에서 5비트로 부풀리니까(4B/5B) 비효율적이네. ZIP으로 압축해서 보내면 오버헤드 줄어들겠지?"라는 L7/L1 계층 혼동. ZIP 같은 압축은 애플리케이션 계층(L7)에서 파일 용량을 줄이는 논리적 연산이다. 압축된 파일이 랜카드(L1)로 내려가면, 랜카드 칩셋은 그 내용이 무엇이든 간에 선로의 물리적 생존(동기화)을 위해 강제로 여분의 비트(4B/5B)를 끼워 넣어 전압을 위아래로 미친 듯이 흔든다. L1 부호화는 용량 다이어트가 아니라 '전선 위 생존을 위한 우주복 입기' 과정이다. 절대 뺄 수 없는 오버헤드다.
-
📢 섹션 요약 비유: 소프트웨어 압축은 여행 가방에 짐을 꾹꾹 눌러 담아 부피를 줄이는 과정이고, L1 부호화(블록 코딩)는 그렇게 줄인 가방을 비행기 화물칸에서 던져도 안 부서지게 거대한 에어캡과 박스(오버헤드)로 칭칭 감아 포장하는 과정입니다. 비행기 규칙 상 이 안전 포장은 절대 생략할 수 없습니다.
Ⅴ. 기대효과 및 결론
정량/정성 기대효과
| 최적화 지점 | 단순 0/1 전압 매핑 (부호화 없음) | 4B/5B + 맨체스터 등 부호화 융합 적용 시 | 물리 계층 진화 효과 |
|---|---|---|---|
| 클럭 동기화 (Sync) | 0 연속 시 수신기 동기 잃고 뻗음 | 펄스 엣지 제공으로 완벽한 셀프 클럭킹 | 장거리 구간 프레이밍 에러율 제로화 달성 |
| DC 밸런스 유지 | 직류(0V/5V) 누적 시 변압기 타버림 | + 전압과 - 전압 비율 50% 균형 유지 | 노이즈 차단용 트랜스포머 통과 및 장비 소손 방지 |
| 대역폭 효율성 | 오버헤드 없으나 물리적 한계로 저속 | 오버헤드는 생기지만 고속 클럭 전송 가능 | 100Mbps ~ Gbps 급 현대 이더넷망 상용화 |
미래 전망
- PAM-4 변조와 고차 블록 코딩의 궁극적 융합: 400GbE / 800GbE 등 테라비트를 향해 가는 초고속 시대. 전선을 1초에 수백억 번 깜빡이는(Baud Rate 증가) 건 물리적으로 끝나버렸다. 미래의 PHY 칩셋은 전압을 4단계로 쪼개는 아날로그적 PAM-4 라인 코딩 위에, 256B/257B 같은 오버헤드가 단 0.4%에 불과한 극한의 블록 코딩을 덧씌워 대역폭 낭비는 우주 먼지 수준으로 지워버리고 페이로드 전송만 극대화하는 마법의 융합 칩으로 진화하고 있다.
- 광자 스크램블링의 내재화: 빛은 전기와 달리 DC 밸런스라는 개념 자체가 모호하다. 미래의 양자/광통신은 빛의 위상과 편광(Polarization) 상태 자체에 논리적 블록 코딩 패턴을 실시간으로 박아넣어, 유리 코어 내부의 광학적 산란(Dispersion)을 빛 자체가 스스로 복원하게 돕는 광-지능형 인코딩 모델로 넘어가고 있다.
참고 표준
- IEEE 802.3u (100BASE-TX Fast Ethernet): 과거 10M의 맨체스터 코딩을 버리고, 4B/5B 블록 코딩으로 0 연속을 지우고 MLT-3(다치 변조) 라인 코딩으로 대역폭을 반으로 깎아 100Mbps 기적을 만든 현대 고속 이더넷 부호화의 아버지.
- FC-FS (Fibre Channel Framing and Signaling): 스토리지 전용 광망(SAN)에서 수백 km를 에러 없이 뚫기 위해 8B/10B 디코딩과 정밀 스크램블링 표준을 융합하여 패킷 유실을 물리적으로 0으로 만든 엔터프라이즈 하드웨어 규격.
컴퓨터가 생각하는 '논리적 0과 1'은 너무 순수해서 거친 물리 매체(전선, 광)에 그대로 던져놓으면 단 몇 초도 버티지 못하고 노이즈와 커패시턴스의 늪에 빠져 죽어버린다. '부호화(Encoding)'는 이 순수한 0과 1에게 거친 자연을 헤쳐 나갈 물리적 방호복을 입히는 예술이다. 0이 너무 많으면 억지로 1을 끼워 넣어주고(블록 코딩), 전압이 너무 오래 머물면 억지로 위아래로 꺾어주며(라인 코딩) 수신기가 박자를 잃지 않게 끊임없이 뺨을 때려주는(Self-clocking) 이 천재적인 변환 과정이 있었기에, 인류는 모뎀의 시대를 넘어 테라비트 해저 광케이블의 시대를 열 수 있었다.
┌──────────────────────────────────────────────────────────────────┐
│ 디지털 대역폭 극대화를 위한 물리 계층 부호화(Encoding) 진화 로드맵 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 1막 (무식한 전압 꺾기) 2막 (영리한 블록 포장) 3막 (극한의 다이어트 융합)│
│ │ │ │ │
│ ▼ ▼ ▼ │
│ [맨체스터 라인 코딩] → [4B/5B & 8B/10B 코딩] → [64B/66B + PAM-4 변조]│
│ │ │ │ │
│ ├─ 1비트마다 강제로 꺾음 ├─ 0 연속 패턴을 사전에 제거 ├─ 오버헤드를 3% 미만으로 압축│
│ ├─ 오버헤드 100% (2배 낭비) ├─ 전압 낭비 줄이고 속도 펌핑 ├─ 진폭 쪼개기로 클럭 한계 돌파│
│ └─ "힘들어도 억지로 흔들어라" └─ "머리 써서 패턴을 다듬어라" └─ "최소한으로 포장하고 압축해 쏴라"│
└──────────────────────────────────────────────────────────────────┘
[다이어그램 해설] 랜카드 칩셋 설계자들의 눈물겨운 대역폭 절약 투쟁기다. 1막 옛날(10M 랜)엔 칩이 멍청해서 비트가 들어오면 무조건 전압을 위아래로 꺾었다. 너무 비효율적이라 2막(100M/1G 랜)에선 데이터를 먼저 5개, 10개짜리 블록 단위로 묶어서 예쁜 패턴(0이 안 겹치는 패턴)으로 치환하는 똑똑한 두뇌(블록 코딩)를 달아 전선 낭비를 막았다. 하지만 이조차 20%의 낭비가 아까웠던 3막(10G 이상) 현대 천재들은 패킷을 66개 단위로 거대하게 묶어 오버헤드를 소수점으로 박살 내버리고 전압을 4단계로 쪼개는 궁극의 하이브리드 인코딩을 완성해 냈다.
- 📢 섹션 요약 비유: 우주(매체)로 짐을 보낼 때, 예전엔 부서지지 말라고 짐보다 두 배 큰 나무 상자(맨체스터 100% 낭비)를 썼다면, 지금은 초고압축 충격 흡수 우레탄 폼 얇은 막 1mm(64B/66B 3% 오버헤드)만 발라서 우주선 빈 공간에 짐을 꽉꽉 채워 넣는 우주 항공 배송 기술의 진화입니다.
📌 관련 개념 맵 (Knowledge Graph)
| 개념 명칭 | 관계 및 시너지 설명 |
|---|---|
| 동기화 (Synchronization) | 수신기가 언제 비트를 읽어 들일지 타이밍을 맞추는 작업. 부호화(Encoding)의 제1 목적은 전압을 흔들어 이 동기화 눈금(Edge)을 끊임없이 제공하는 것이다. |
| DC 밸런싱 (Direct Current Balancing) | 전압이 +나 - 한쪽으로 치우쳐 직류화되는 것을 막아 신호 타버림을 막는 현상. 맨체스터나 8B/10B 코딩은 1과 0의 개수를 강제로 50:50으로 맞춰 이를 완벽히 해결한다. |
| 스크램블링 (Scrambling) | 블록 코딩 없이 단순 난수를 원본 데이터에 XOR 곱셈하여, 연속된 0이나 1의 패턴을 백색 잡음 형태의 무작위 1/0 패턴으로 갈아 엎어주는 L1 트릭 기술. |
| 맨체스터 (Manchester) | 1비트의 한가운데서 무조건 전압이 떨어지거나 솟구치는 라인 코딩. 동기화는 완벽하나 대역폭을 2배나 잡아먹는 초창기 10M 이더넷의 전설적 유물. |
| Baud Rate (배드보) | 1초 동안 파형이 꺾이는(변화하는) 횟수. 맨체스터 코딩은 10Mbps를 보내기 위해 20M Baud 파형을 소모하는 비효율의 극치를 달린다. |
👶 어린이를 위한 3줄 비유 설명
- 컴퓨터가 보내는 숫자 '000000'은 심장 박동기 모니터에 뜨는 "삐이이이-" 일자 평행선(죽은 상태)과 같아요. 기계가 볼 때는 죽은 건지 고장 난 건지 구별을 못한답니다.
- 그래서 똑똑한 의사 선생님(인코더 칩셋)은 진짜 평행선이 오기 전에, 컴퓨터 몰래 심장 박동기를 '위아래로 쿵쾅쿵쾅' 억지로 뛰게(라인 코딩) 조작해서 기계가 살아있음을 확인시켜 줘요.
- 중간에 억지로 가짜 박동(블록 코딩 오버헤드)을 몇 개 섞어 넣어야만, 전깃줄 반대편에 있는 친구가 길을 잃지 않고 숫자를 빠르고 정확하게 전부 받아 적을 수 있답니다!