iBetter Books
수정

0과 1을 신호로

컴퓨터 안에서 데이터는 0과 1로 존재합니다. 그런데 랜선이나 공기는 0과 1을 직접 전달할 수 없습니다. 전선을 통해 흐르는 것은 전기이고, 공기를 통해 퍼지는 것은 전자기파입니다. 0과 1을 이런 물리 신호로 옮기는 작업이 부호화(Encoding)입니다.

선 부호화 — 전기 신호로 표현하기

이더넷 케이블로 데이터를 보낼 때, 0과 1을 전압 변화로 표현합니다. 가장 단순한 방법은 1이면 높은 전압, 0이면 낮은 전압을 보내는 것입니다. 이를 NRZ(Non-Return-to-Zero) 방식이라 합니다.

그런데 NRZ에는 문제가 있습니다. 1이 열 개 연속으로 오면 전압이 긴 시간 동안 변하지 않습니다. 수신 측은 박자를 맞추기 위해 신호가 변하는 순간을 기준으로 삼는데, 변화가 없으면 시계가 맞지 않습니다. 마치 메트로놈이 멈춘 상태에서 피아노를 계속 치는 것과 같습니다.

이 문제를 해결하는 방법 중 하나가 맨체스터 부호화(Manchester Encoding)입니다. 0이든 1이든 비트 주기의 중간에서 반드시 신호 전환이 일어납니다. 초기 이더넷이 따른 IEEE 802.3 규약에서는 0을 내려가는 전환(높은 전압에서 낮은 전압으로), 1을 올라가는 전환(낮은 전압에서 높은 전압으로)으로 표현합니다. 항상 변화가 생기므로 수신 측이 박자를 잃지 않습니다.

현대 이더넷의 선택 — 4B/5B와 그 이후

고속 통신에서는 조금 더 정교한 방식을 씁니다. 4B/5B는 4비트 원본을 5비트 코드로 바꾸어 전송합니다. 1비트가 늘어나는 대신, 연속하는 0이나 1이 너무 길게 이어지지 않도록 코드를 설계합니다. 100 Mbps 패스트 이더넷이 이 방식을 사용했습니다.

기가비트 이더넷과 그 이상에서는 8B/10B, 64B/66B 같은 방식을 씁니다. 숫자가 커질수록 오버헤드 비율이 줄어드는 것을 알 수 있습니다. 4B/5B는 원본 대비 25%를 더 씁니다. 64B/66B는 약 3%만 더 씁니다.

선 부호화는 전선을 통한 전기 신호에만 관한 이야기입니다. 전파를 이용해 멀리 보내려면 다른 기술이 필요합니다. 다음 절에서 그 기술, 변조를 다룹니다.