42. 4B/5B, 8B/10B 부호화 (Block Coding)

핵심 인사이트 (3줄 요약)

  1. 본질: 블록 코딩(Block Coding)은 하드웨어 전압 변환(Line Coding)을 수행하기 직전 논리 단계에서, 원본 데이터 $m$비트를 조금 더 긴 $n$비트짜리 패키지 덩어리로 치환(Substitution)하여 데이터의 불량 패턴(0이나 1의 연속)을 원천 차단하는 소프트웨어적 포장 기술이다.
  2. 가치: 대역폭 낭비가 전혀 없는 NRZ 계열 코딩의 유일한 약점인 '클럭 동기화 상실'과 '직류(DC) 누적'을 막기 위해, $n$비트 묶음 중 가장 안전한(전압 꺾임이 많은) 패턴만 골라 매핑함으로써 대역폭 효율과 하드웨어 안정성을 동시에 거머쥐었다.
  3. 융합: 초창기 100M 패스트 이더넷을 구원한 **4B/5B (오버헤드 25%)**에서 시작하여, 에러 탐지와 DC 밸런싱의 극치를 보여준 기가비트 및 파이버 채널의 절대 표준 8B/10B로 발전했으며, 이는 고속 직렬 통신(PCIe, USB, SATA) 아키텍처를 하나로 통일시킨 위대한 발명이다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념:

    • $mB/nB$ 코딩에서 $m$은 원본 데이터 비트 수, $n$은 부풀려진 최종 전송 비트 수를 의미한다. ($n > m$).
    • 4B/5B: 원본 4비트(16가지 경우의 수)를 5비트(32가지 경우의 수)로 매핑.
    • 8B/10B: 원본 8비트(256가지)를 10비트(1024가지)로 매핑.
  • 필요성: 100Mbps 이더넷을 설계할 때 맨체스터 코딩을 쓰면 대역폭(200MHz)이 너무 커져 UTP 케이블이 불타버렸다. 대역폭을 아끼기 위해 1비트에 1번만 꺾는 NRZ-I(전압 반전)를 써야 했는데, NRZ-I는 000000이 연속으로 오면 전압이 일자(ㅡ)로 누워 수신기가 죽어버렸다. "그렇다면 NRZ-I를 쓰되, 애초에 데이터 안에 0이 3개 이상 연속으로 안 나오게 조작해서 쏘면 되지 않을까?"라는 천재적인 발상에서 블록 코딩이 탄생했다. 데이터를 5비트 덩어리로 잘라, 0이 많이 낀 불량 패턴은 버리고 예쁜 패턴으로만 포장해 쏘는 것이다.

  • 💡 비유: 블록 코딩은 **'주민등록번호 발급 규칙'**과 같다.

    • 10자리의 숫자를 무작위로 발급하다 보면 4444-444444 같은 기분 나쁘고 외우기 힘든 불량 번호가 생길 수 있다.
    • 그래서 아예 자릿수를 12자리로 넉넉하게 늘려(오버헤드 발생) 가질 수 있는 경우의 수를 수백 배로 뻥튀기한다.
    • 그런 다음, 똑같은 숫자가 3번 이상 반복되는 번호는 아예 폐기(결번)해 버리고, 예쁘게 숫자가 섞인 번호 1000개만 골라서 사람들에게 매핑(치환)해 나눠주는 방식이다.
  • 4B/5B 블록 코딩의 치환(Mapping) 원리 시각화:

  ┌─────────────────────────────────────────────────────────┐
  │         4B/5B 블록 코딩의 '불량 패턴 폐기' 및 매핑 매커니즘       │
  ├─────────────────────────────────────────────────────────┤
  │                                                         │
  │ [1. 경우의 수의 뻥튀기]                                       │
  │   원본 4B (2^4) = 16가지의 데이터 (0000 ~ 1111)               │
  │   포장 5B (2^5) = 32가지의 패턴 코드 ──▶ 16개가 남아돈다!        │
  │                                                         │
  │ [2. 32개의 5B 코드 중 쓸만한 '안전 패턴' 선별 (Filtering)]        │
  │   조건: 어떤 5비트 블록 2개를 이어 붙여도 '0'이 3개 이상 겹치면 안 됨.│
  │                                                         │
  │   ❌ 버리는 패턴: 00000, 00001, 10000 ... (NRZ-I 동기화 파괴범)│
  │   ✅ 채택 패턴 (Data):                                      │
  │      원본 [0000] ──▶ 치환 [11110] (전압이 엄청 꺾임, 동기화 최고) │
  │      원본 [0001] ──▶ 치환 [01001]                           │
  │      원본 [1111] ──▶ 치환 [11101]                           │
  │                                                         │
  │ [3. 남는 패턴들의 재활용 (Control Code)]                       │
  │   데이터 16개 매핑을 다 하고도 남는 패턴들은 통신 제어용으로 씀.      │
  │      [11111] ──▶ IDLE (나 쉬는 중이야, 연결 안 끊겼어!)         │
  │      [11000] ──▶ J (프레임 시작)  /  [01101] ──▶ T (프레임 끝)│
  └─────────────────────────────────────────────────────────┘

[다이어그램 해설] 컴퓨터가 0000 이라는 원본을 보내고 싶을 때, 칩셋은 이걸 그냥 선로로 보내지 않고 11110 이라는 5비트로 변장시켜 보낸다. NRZ-I 환경에서 1은 전압을 위아래로 꺾는 스위치다. 즉 11110을 받으면 전압이 4번이나 톱니바퀴처럼 미친 듯이 꺾인다. 수신기는 이 꺾임을 보고 시계를 100% 완벽하게 튜닝한 다음, 칩셋 안에서 11110을 다시 0000으로 해석해 OS로 올린다. 게다가 남는 코드들로 "나 쉬고 있어(IDLE)" 같은 제어 신호까지 만들었으니 그야말로 일석삼조의 소프트웨어적 기적이다.

  • 📢 섹션 요약 비유: 원고지에 글을 쓸 때, "단어가 3개 이상 연속으로 자음만 나오면 안 된다(모음 필수)"라는 작문 규칙을 세워 아무리 긴 글을 읽어도 절대 발음이 꼬여서 숨이 막히는 일(동기화 상실)이 없게 만든 꼼꼼한 문법 교정 시스템입니다.

Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

1. 8B/10B 코딩의 완벽주의 (IBM의 알버트 위드머 발명)

4B/5B가 100M급의 선구자였다면, 8B/10B는 기가비트(Gbps)급 통신을 평정한 우주 최강의 블록 코딩이다. 원본 1바이트(8비트)를 10비트로 변환하여 25%의 오버헤드를 갖는다.

  • 개발 이유: 4B/5B는 0의 연속만 막았을 뿐, +전압과 -전압의 비율(DC 밸런싱)을 완벽하게 50:50으로 맞추지는 못했다. 기가비트로 넘어가면서 이 미세한 DC 찌꺼기가 장비를 박살 냈다.
  • 8B/10B의 핵심 - 러닝 디스패리티 (Running Disparity, RD):
    • 10비트 패턴 안에 있는 1과 0의 개수 차이를 RD라고 부른다.
    • IBM 엔지니어들은 원본 8비트 하나당 2개의 10비트 짝꿍(1이 많은 패턴, 0이 많은 패턴)을 배정했다.
    • 칩셋이 방금 보낸 데이터 누적 합에 1이 너무 많으면(DC 양수화), 이번 턴에는 일부러 0이 많은 짝꿍 패턴을 쏴서 전체 DC 밸런스를 칼같이 **0V (Neutral)**로 강제 복원시켜 버린다!
    • 이 소름 돋는 '실시간 DC 가계부 작성' 능력 덕분에 8B/10B를 통과한 데이터는 광케이블이든 구리선이든 1만 km를 가도 전압이 치우치지 않는 무결성을 자랑하게 되었다.

2. 제어 문자(K-Character)의 해방

통신망에서 일반 데이터(0x00~0xFF)와, 통신의 시작/끝을 알리는 제어 데이터(Control Character)를 구별하는 것은 엄청난 두통거리였다. 데이터 안에 우연히 제어 데이터와 똑같은 코드가 들어가면 망이 끊어지기 때문이다(투명성 훼손).

  • 블록 코딩은 이 투명성 문제를 한 방에 삭제했다.
  • 8B/10B는 256개의 데이터를 매핑하고도 10비트 패턴(1024개)이 768개나 남아돈다.
  • 이 남아도는 기괴한 패턴 중 절대 데이터로 쓰이지 않는 특정 패턴들을 모아 **K-Character (제어 문자)**로 명명했다 (예: K28.5).
  • 수신기는 K28.5 패턴이 들어오면 "이건 절대 사용자 데이터일 리가 없어! 무조건 패킷의 시작을 알리는 싱크(Sync) 제어 신호다!"라고 100% 확신할 수 있게 되어, 과거 BSC나 HDLC처럼 비트 스터핑을 할 필요가 완전히 사라졌다.

Ⅲ. 융합 비교 및 다각도 분석

비교 1: 라인 코딩(맨체스터) vs 하이브리드 인코딩 (블록 코딩 + NRZ)

비교 관점순수 라인 코딩 (Manchester)블록 + 라인 하이브리드 (8B/10B + NRZ)
설계 계층오직 L1 (물리적 전압 꺾기)논리적(MAC) 패턴 치환 + 물리적(PHY) 전압 송출
대역폭(Baud) 낭비200% (최악) (1G 쏠 때 2GHz 소모)125% (우수) (1G 쏠 때 1.25GHz 소모)
동기화 및 DC 상쇄전압을 무식하게 꺾어 100% 보장소프트웨어적 패턴 룰(RD)을 돌려 100% 보장
제어/에러 탐지전압 에러 외에 별도 기능 없음K-Code 제어 문자 제공, 룰 위반 시 자체 에러 색출
채택 네트워크10BASE-T (과거의 유물)1000BASE-X, PCIe 1.0~2.0, SATA, HDMI, USB 3.0

PC를 뜯어보면 그래픽카드를 꽂는 PCIe 슬롯부터 하드디스크 SATA 케이블, 모니터 연결 HDMI까지 컴퓨터의 모든 고속 직렬 포트 칩셋 안에는 무조건 이 8B/10B 인코더 하드웨어 로직이 박혀있다. "적당한 25%의 오버헤드를 내어주고, 100% 완벽한 동기화와 DC 밸런스, 그리고 훌륭한 제어 코드를 얻는다"는 이 딜은 인류 IT 하드웨어 역사상 최고의 가성비 트레이드로 평가받는다.

과목 융합 관점

  • 운영체제 / 스토리지 (SATA/SAS): 스토리지 디스크가 메인보드와 6Gbps 속도로 통신하는 SATA-3 인터페이스는 8B/10B를 쓴다. 속도 스펙을 보면 6Gbps 대역폭이지만, 8B/10B의 20%(10개 중 2개) 포장지 낭비율을 빼고 나면 실제 OS가 디스크에서 읽어내는 최대 스루풋(Goodput)은 4.8Gbps(약 600MB/s)로 깎인다. 개발자들이 스토리지 BMT(벤치마크)를 할 때 왜 스펙 속도의 80%밖에 안 나오는지 묻는다면 이 블록 코딩 오버헤드 때문이다.

  • 클라우드 / 데이터센터 백본망 (10GbE / 100GbE): 1G 망에선 25%의 낭비를 참을 만했다. 하지만 10G 망에서 25%를 낭비하면 2.5Gbps가 증발한다. 이건 너무 아깝다. 그래서 차세대 10G/40G 이더넷 엔지니어들은 8B/10B를 가차 없이 버리고, 64비트를 66비트로 묶는 **64B/66B 코딩 (낭비율 단 3%)**으로 진화시켰다. 이 3%의 낭비마저 줄이기 위해 256B/257B 코딩이 등장하며 현대 데이터센터의 400G 백본을 지탱하고 있다.

  • 📢 섹션 요약 비유: 8B/10B는 수입 고기를 들여올 때, 부패(에러)를 막고 보관(동기화)을 쉽게 하려고 고기(8비트) 표면에 두꺼운 얼음 코팅(2비트 낭비)을 발라 무게를 늘린 것입니다. 1kg짜리 고기를 시키면 1.2kg(10비트)짜리 택배가 오지만, 얼음 덕분에 상하지 않고(DC 밸런스) 수백 km를 이동할 수 있는 필수 포장 기법입니다.


Ⅳ. 실무 적용 및 기술사적 판단

실무 시나리오

  1. 시나리오 — 데이터센터 1G 광 스위치 (1000BASE-SX) 간의 링크 펄떡임 현상 진단: 광 패치코드로 두 스위치를 이었는데, 링크 불이 녹색으로 켜졌다가 0.5초 만에 꺼지고 또 켜지기를 반복(Link Flapping)한다. 광 신호 강도(Rx Power)는 -8dBm으로 매우 정상이다. [해결책] 신호 파워는 정상인데 링크가 유지되지 못하는 건 L1 물리 칩셋의 8B/10B 동기화(Sync) 획득 실패다. 8B/10B는 처음 링크를 맺을 때, 내가 누군지 박자를 맞추기 위해 무조건 특수 제어 문자인 K28.5 (Comma) 패턴을 수백 번 난사한다. 수신 칩셋은 이 콤마 코드를 읽고 10비트의 경계선을 정확히 파악해야(Word Alignment) 링크 UP을 띄운다. 플래핑이 생긴다는 건, 케이블 중간 스플라이싱(접속) 불량으로 빛이 산란되어 이 K28.5 제어 문자가 깨져서 들어와 칩셋이 "박자를 못 찾겠어!"라며 연결을 리셋해 버리는 것이다. 광 감쇠기가 아니라 반사 손실(Return Loss)을 유발하는 커넥터 청소나 불량 케이블 교체가 시급하다.

  2. 시나리오 — 고성능 GPU 서버(PCIe 3.0 vs 4.0)의 실질 대역폭 아키텍처 산정: AI 딥러닝 서버를 구축하는데, PCIe 3.0 (8GT/s) 레인과 PCIe 4.0 (16GT/s) 레인의 실질적인 데이터 전송 스루풋 차이를 계산하여 병목을 산정해야 한다. [해결책] 여기서 블록 코딩의 세대교체가 발생한다. PCIe 3.0은 구형 8B/10B 코딩을 쓰므로, 8GT/s 속도에서 20%의 오버헤드를 빼면 실제 페이로드 속도는 약 6.4Gbps/lane 다. 하지만 PCIe 4.0은 16GT/s 속도를 내면서 코딩을 128B/130B (오버헤드 겨우 1.5%)로 획기적으로 갈아엎었다. 따라서 PCIe 4.0의 실제 스루풋은 거의 15.7Gbps/lane 에 육박한다. 즉, 하드웨어 클럭 스피드는 2배 늘었지만, 블록 코딩 포장지를 엄청나게 얇게 만든 덕분에 실제 애플리케이션(GPU)이 느끼는 데이터 전송량은 2배를 훨씬 상회하는 이득을 보게 되는 것이다.

물리 계층 인코딩 규격에 따른 대역폭(Bandwidth) 오버헤드 산정 및 튜닝 플로우는 다음과 같다.

  ┌───────────────────────────────────────────────────────────────────┐
  │         고속 네트워크/스토리지 망의 실질 스루풋(Goodput) 설계 검증 플로우     │
  ├───────────────────────────────────────────────────────────────────┤
  │                                                                   │
  │   [벤더 장비 스펙 시트의 Line Rate(예: 10Gbps)와 실제 앱 전송 속도 간 괴리 발생] │
  │                │                                                  │
  │                ▼                                                  │
  │      해당 링크가 구동되는 L1 물리 계층의 블록 코딩(Block Coding) 방식 확인    │
  │          ├─ [8B/10B 코딩 사용망 (1G 이더넷, 파이버 채널, SATA)]             │
  │          │      │                                                  │
  │          │      └─▶ [산정: 표기 속도의 정확히 80% 만이 순수 데이터 몫임]     │
  │          │      └─▶ [1Gbps = 실제 최고 스루풋 약 800Mbps (100MB/s)]   │
  │          │                                                        │
  │          └─ [64B/66B 코딩 사용망 (10G/40G 이더넷, 최신 백본)]             │
  │                │                                                  │
  │                ▼                                                  │
  │      오버헤드가 3%(64/66)로 극도로 적으므로 물리적 낭비는 거의 없음!             │
  │          └─▶ 이 구간에서 80% 효율밖에 안 난다면, L1 코딩 문제가 아니라       │
  │               L4 TCP 윈도우 사이즈 작음, 큐잉 지연 등 논리적 병목을 100% 의심하라.│
  └───────────────────────────────────────────────────────────────────┘

[다이어그램 해설] "기가 인터넷 달았는데 왜 100메가바이트(800Mbps)밖에 안 나오냐"고 묻는 클라이언트에게 들이미는 수학 공식이다. 1기가(1000BASE-T) 이더넷은 근본적으로 10개를 보내면 2개를 버리는(8B/10B) L1 포장 규격을 쓴다. 즉 물리적 한계 자체가 800Mbps 언저리다. 하지만 10G 망부터는 코딩 기술이 혁신되어 97% 효율이 나오므로, 여기서 속도가 깎인다면 라우터나 서버 OS 튜닝을 조져야 한다는 강력한 아키텍처 판단 기준이 선다.

도입 체크리스트

  • 기술적: 고화질 4K/8K 방송 스튜디오 망을 SDI 베이스밴드에서 IP 기반(SMPTE 2110)으로 마이그레이션할 때, 10G 인터페이스 칩셋 내부의 64B/66B 블록 코딩단에서 압축 없는 비디오 페이로드를 스크램블링 없이 밀어 넣었을 때 클럭 락(Lock)이 빠지는 현상이 없는지 트래픽 생성기(Spirent)로 아이들 테스트를 마쳤는가?
  • 운영·보안적: 자체 폐쇄망에서 8B/10B 인코딩을 쓸 때, 통신사나 표준 규격에서 전혀 사용하지 않는 나머지 미할당(Invalid) 제어 코드 패턴들을 OAM(운용 유지보수) 용도의 비밀 사이드 채널(Side-channel) 통신 암호로 맵핑하여 해커가 절대 스니핑 할 수 없는 하드웨어 기반 대역 외(Out-of-Band) 관제망을 구축할 수 있는지 칩 벤더와 협의했는가?

안티패턴

  • 10G 스위치 랙에서 1G 시절의 에러 로그(Code Violation) 해석법 고수: 10G 스위치 포트에 에러가 뜰 때 1G 시절처럼 "8B/10B 코딩 위반(Invalid Code) 떴네, 선 불량인가 보다" 하고 넘어가는 행위. 10G 64B/66B 코딩은 66비트 중 앞의 2비트(Sync Header, 01 또는 10)만 맞으면 뒤의 64비트는 무조건 통과시킨다. 에러가 나면 1G처럼 10비트 단위로 튕겨내지 않고 수만 개의 쓰레기 64비트를 일단 통과시키고 보므로 에러의 파급 효과가 L2 프레임 전체를 찢어놓는 거대한 버스트로 터진다. 고속 코딩 환경에서는 L1 로그보다 윗단의 L2 FCS 에러 폭주를 모니터링 메인 지표로 상향해야 한다.

  • 📢 섹션 요약 비유: 1G 시대(8B/10B)엔 수박을 1통씩 꼼꼼히 두드려보고(10비트 검사) 썩은 걸 바로 버렸다면, 10G 시대(64B/66B)엔 수박 64통 묶음 박스의 겉면 스티커(2비트 헤더)만 보고 바로 창고로 넘깁니다. 속도는 미친 듯이 빠르지만 안에 썩은 수박이 끼어있으면 창고 전체 물건(프레임)을 몽땅 버려야 하는 쿨한 대량 처리 시스템입니다.


Ⅴ. 기대효과 및 결론

정량/정성 기대효과

최적화 지점단순 NRZ / 맨체스터 사용망mB/nB 블록 코딩(8B/10B) 아키텍처시스템 도약 효과
물리적 대역폭 요구100M 전송 시 200M 대역폭 소모100M 전송 시 125M 대역폭으로 억제저렴한 구리/광 매체로 초고속 통신 대중화
에러 및 DC 통제1연속 시 직류 폭발, 0연속 시 클럭 증발RD(Running Disparity)로 DC 0V 칼방어수 테라바이트를 보내도 100% 동기화 무결점
제어(Control) 통합제어 문자 구분 시 투명성 파괴남는 잉여 패턴(K-Code)으로 제어 전담데이터와 제어 신호가 물리 계층에서 완벽 격리/통합

미래 전망

  • FEC(에러 정정)와의 경계 붕괴: 과거엔 블록 코딩(64B/66B)이 예쁘게 모양만 다듬어 올려주면 윗단의 이더넷 칩이 에러를 잡았다. 하지만 400Gbps 이상의 802.3bs 규격에서는 블록 코딩 엔진 자체에 Reed-Solomon FEC가 아예 한 몸으로 찰팍 합쳐졌다. 단순히 0 연속을 막는 모양 다듬기를 넘어서, L1 칩셋이 패킷을 쏘기 전에 스스로 수학 퍼즐(패리티)까지 구워버려 목적지에서 자체 부활하게 만드는 '치유형 물리 계층'으로 코딩의 철학이 진화했다.
  • 오버헤드의 극한 수렴 (256B/257B): 대역폭 낭비가 25%(8B/10B) $\rightarrow$ 3%(64B/66B)로 줄어들더니, 이제는 256비트라는 거대한 화물 컨테이너에 딱 1비트짜리 라벨지(Sync Header) 하나만 붙여 쏘는 256B/257B (낭비율 0.39%) 코딩이 탄생했다. 인간이 만들어낸 "오버헤드 극한 다이어트"의 최고봉이며, 테라비트 백본 시대에 단 1Hz의 주파수도 허투루 쓰지 않으려는 통신 공학자들의 광기 어린 집착의 산물이다.

참고 표준

  • IEEE 802.3z (1000BASE-X): 기가비트 이더넷 광통신의 바이블. 광케이블 안에서 레이저가 꺼지는(0연속) 사태를 막기 위해 IBM이 발명한 8B/10B 블록 코딩을 글로벌 표준으로 채택하여 현대 IT 인프라의 뼈대를 세웠다.
  • PCIe (Peripheral Component Interconnect Express): 컴퓨터 마더보드 통신 규격. PCIe 1.0/2.0은 8B/10B(효율 80%)를 썼으나, 속도의 벽을 뚫기 위해 PCIe 3.0부터는 128B/130B(효율 98.5%) 블록 코딩으로 갈아타며 PC 그래픽카드 성능을 폭증시킨 1등 공신이다.

"블록 코딩(Block Coding)"은 무자비한 물리적 아날로그 세계(전선, 전압, 직류)와 순백의 논리적 디지털 세계(0과 1) 사이에서 협상을 맺어준 최고의 소프트웨어 외교관이다. 엔지니어들은 "어차피 전선(매체)은 못 바꾸니, 우리가 보내는 데이터를 전선이 좋아할 만한 예쁜 모양(0이 안 겹치고 DC가 없는 패턴)으로 거짓말을 쳐서 둔갑시키자"는 발상의 전환을 이루어냈다. 기꺼이 20~25%의 오버헤드라는 돈(낭비)을 지불하고, 그 대가로 완벽한 시계(클럭 동기화)와 흔들리지 않는 0V 평형(DC 밸런스)이라는 영원한 안정성을 샀다. 이 위대한 거래 덕분에 우리는 수천 km 떨어진 지구 반대편의 4K 영상을 1비트의 어긋남 없이 지금 내 모니터에서 볼 수 있는 것이다.

  ┌──────────────────────────────────────────────────────────────────┐
  │         초고속 효율의 극한을 향한 Block Coding(포장술) 진화 로드맵       │
  ├──────────────────────────────────────────────────────────────────┤
  │                                                                  │
  │   1막 (최초의 블록 타협)         2막 (기계적 밸런스의 정점)      3막 (극한의 포장 다이어트) │
  │   │                       │                      │               │
  │   ▼                       ▼                      ▼               │
  │ [4B/5B (100M 이더넷)]   → [8B/10B (1G 이더넷/USB)] → [64B/66B (10G/40G 이더넷)]│
  │   │                       │                      │               │
  │   ├─ 0 연속 3개로 칼 차단    ├─ 실시간 DC 0V(RD) 칼맞춤 ├─ 오버헤드를 20% ─▶ 3%로 축소│
  │   ├─ 오버헤드 25% 낭비 발생   ├─ 특수 제어(K-Code)의 발명 ├─ 페이로드 거대화, FEC 코딩 융합│
  │   └─ "0 연속만 일단 피하자"   └─ "음양의 완벽한 조화를 이루자" └─ "포장지는 1비트면 충분해!" │
  └──────────────────────────────────────────────────────────────────┘

[다이어그램 해설] 데이터 덩어리를 포장하는 박스의 진화다. 1막 4B/5B는 0이 연속으로 오면 기계가 죽으니까 급한 대로 0을 쳐내는 두꺼운 뽁뽁이를 둘렀다. 2막 8B/10B는 인류 역사상 가장 훌륭한 박스다. 단순히 충격만 막는 게 아니라 박스의 좌우 무게(+, - 전압)를 1그램의 오차도 없이 맞추는 천재적인 오뚝이 밸런스(RD 로직)를 갖췄다. 3막 64/66은 트럭(10G 속도)이 너무 커지자 포장지(오버헤드) 낭비가 너무 심해져서, 뽁뽁이를 다 벗겨내고 수박 64통에 작은 바코드(헤더) 하나만 달랑 붙여 날려 보내는 테라비트 시대의 초거대 물류 시스템이다.

  • 📢 섹션 요약 비유: 블록 코딩은 편지를 보낼 때 중간중간 "사랑해"라는 예쁜 헛소리(오버헤드)를 강제로 끼워 넣는 문법입니다. 종이 낭비(대역폭 소비)는 20% 늘어나지만, 삭막한 내용(연속된 0)이 수만 줄 오더라도 우체부가 졸지 않고(동기화 잃지 않고) 끝까지 기분 좋게 배달하게 만드는 최고의 뇌물입니다.

📌 관련 개념 맵 (Knowledge Graph)

개념 명칭관계 및 시너지 설명
NRZ-I (반전 라인 코딩)블록 코딩과 영혼의 단짝. 블록 코딩으로 0의 연속을 100% 제거한 뒤 NRZ-I 회로에 태우면, NRZ의 약점(동기화 붕괴)은 사라지고 극강의 대역폭 효율만 남는 사기 조합이 완성된다.
DC 밸런스 / Running Disparity (RD)8B/10B 코딩의 심장. 방금 쏜 10비트 덩어리의 1과 0 개수를 추적해 뒀다가, 다음 덩어리를 쏠 때 모자란 쪽의 코드를 쏴서 전체 전압 평균을 강제로 0V로 회귀시키는 알고리즘.
K-Character (제어 코드)원본 8비트를 10비트로 뻥튀기하며 남게 된 768개의 '잉여 패턴' 중 통신 제어(Sync, Start, End) 전용으로 할당된 특수 코드. 데이터의 투명성을 완벽히 보장한다.
오버헤드 (Overhead)에러를 막고 동기화를 맞추기 위해 실제 데이터 외에 억지로 끼워 넣은 낭비 비트의 비율. 8B/10B는 20%라는 막대한 오버헤드 때문에 속도의 발목을 잡아 64B/66B로 대체되었다.
FEC (전방 오류 정정)초고속(100G+) 망에서는 단순 블록 코딩(64B/66B)만으로 파형 유지가 힘들어, 블록 코딩 칩셋단에 아예 수학적으로 에러를 복원하는 리드-솔로몬 엔진(RS-FEC)을 한 몸처럼 결합해 쓴다.

👶 어린이를 위한 3줄 비유 설명

  1. 컴퓨터가 랜선으로 비밀 암호를 보낼 때, '00000'처럼 똑같은 글자만 계속 보내면 컴퓨터가 졸려서 시계(클럭)를 놓치고 쓰러져 버려요.
  2. 그래서 똑똑한 블록 코딩 칩셋은 진짜 데이터를 보내기 전에, '0'이 3번 이상 모인 불량 글자들을 가위로 싹 오려내고(폐기), 무조건 전압이 위아래로 춤을 추는 예쁜 글자(11011 등)로 몰래 바꿔치기해서 보내요.
  3. 비록 포장지(여분의 비트) 때문에 크기는 살짝 커졌지만, 이렇게 예쁘게 조작된 암호를 받은 컴퓨터는 절대 졸지 않고 엄청난 속도로 수십 시간 동안 춤을 추며(완벽한 동기화) 인터넷을 유지한답니다!