물리 계층의 역할
비트가 전기, 빛, 전파의 신호로 바뀌는 과정을 라인 코딩과 변조로 살펴보고, NRZ와 맨체스터 부호의 신호 변화를 실행해 비교합니다. 꼬임 쌍선과 광섬유, 무선 매체의 특성을 정리하고, 섀넌의 채널 용량으로 대역폭과 잡음이 속도를 어떻게 묶는지 계산합니다.
지금까지 계층 모델과 캡슐화를 보았으니, 이제 가장 아래에서 데이터가 실제로 어떻게 움직이는지 들여다볼 차례입니다. 개발자가 물리 계층을 직접 구현할 일은 거의 없습니다. 하지만 네트워크가 느릴 때 그것이 케이블이나 무선 신호의 한계 때문인지 소프트웨어 설정의 문제인지를 가려내려면, 물리 계층이 무엇을 하고 어디서 한계에 부딪히는지 알아야 합니다.
비트를 신호로, 신호를 비트로
물리 계층(physical layer)이 하는 일은 하나입니다. 0과 1의 비트를 매체가 나를 수 있는 신호로 바꾸어 보내고, 받은 신호를 다시 비트로 되살리는 것입니다. 신호의 모습은 매체마다 달라서, 구리 케이블에서는 전압의 변화, 광섬유에서는 빛의 세기나 위상, 무선에서는 전파입니다. 물리 계층은 그 비트가 IP 주소인지 HTTP 요청인지 전혀 알지 못하며, 알 필요도 없습니다.
비트의 내용과 물리 신호의 전달 조건을 분리한다
비트를 심볼과 매체 신호로 표현합니다. 수신 신호에서 심볼을 판정하고 비트를 복원합니다. 각 단계의 값과 전환 이유를 비교합니다.
PHYSICAL TRANSMISSION · BITS / SIGNAL / BITS
비트의 내용과 물리 신호의 전달 조건을 분리한다
물리 계층은 비트를 매체의 신호로 보내고 수신 신호에서 비트를 복원합니다. 대역폭·SNR·감쇠가 전달 조건에 영향을 주지만, 물리 계층이 IP 주소나 HTTP 요청을 해석하는 것은 아닙니다.
대역폭 B · Hz
사용 가능한 주파수 범위
비트 속도와 다른 단위
전송 속도 · bps
초당 전달하는 비트 수
응용 처리량 보장과 구분
감쇠 · 신호 약화
매체를 따라 신호가 약해짐
거리·매체·링크 예산 확인
이 흐름은 개념도이며 비트 하나=심볼 하나라는 뜻이 아닙니다. 단일 대역 제한 AWGN 채널의 C=B log₂(1+SNR)에서 SNR은 선형값입니다. 장비의 다중 쌍·MIMO 속도나 측정 처리량으로 바로 대입하지 않습니다.
이 예의 조건
- 본문과 전체 도표의 예를 따라 송신 표현부터 수신 복원까지 진행합니다.
관계도의 보충 설명
| 구분 | 전체 도표의 내용 |
|---|---|
| 관계 설명 | 송신은 비트를 심볼과 매체 신호로 바꾸고, 신호가 매체를 지나 수신 측에 도착하면 심볼을 판정하고 비트를 복원한다. 매체의 대역폭·신호와 잡음·감쇠가 전달 조건에 영향을 준다. 비트 하나가 항상 심볼 하나인 것은 아니다. |
| 관찰·상황 | 값·보충 정보 | 변화·이유 |
|---|---|---|
| 송신 표현 비트를 심볼과 매체 신호로 표현합니다. |
|
|
| 매체 전달 전기·빛·전파 신호가 매체를 통과합니다. |
|
|
| 수신 복원 수신 신호에서 심볼을 판정하고 비트를 복원합니다. |
|
|
비트의 내용과 물리 신호의 전달 조건을 분리한다
비트를 심볼과 매체 신호로 표현합니다. 수신 신호에서 심볼을 판정하고 비트를 복원합니다. 각 단계의 값과 전환 이유를 비교합니다.
PHYSICAL TRANSMISSION · BITS / SIGNAL / BITS
비트의 내용과 물리 신호의 전달 조건을 분리한다
물리 계층은 비트를 매체의 신호로 보내고 수신 신호에서 비트를 복원합니다. 대역폭·SNR·감쇠가 전달 조건에 영향을 주지만, 물리 계층이 IP 주소나 HTTP 요청을 해석하는 것은 아닙니다.
대역폭 B · Hz
사용 가능한 주파수 범위
비트 속도와 다른 단위
전송 속도 · bps
초당 전달하는 비트 수
응용 처리량 보장과 구분
감쇠 · 신호 약화
매체를 따라 신호가 약해짐
거리·매체·링크 예산 확인
이 흐름은 개념도이며 비트 하나=심볼 하나라는 뜻이 아닙니다. 단일 대역 제한 AWGN 채널의 C=B log₂(1+SNR)에서 SNR은 선형값입니다. 장비의 다중 쌍·MIMO 속도나 측정 처리량으로 바로 대입하지 않습니다.
이 예의 조건
- 본문과 전체 도표의 예를 따라 송신 표현부터 수신 복원까지 진행합니다.
관계도의 보충 설명
| 구분 | 전체 도표의 내용 |
|---|---|
| 관계 설명 | 송신은 비트를 심볼과 매체 신호로 바꾸고, 신호가 매체를 지나 수신 측에 도착하면 심볼을 판정하고 비트를 복원한다. 매체의 대역폭·신호와 잡음·감쇠가 전달 조건에 영향을 준다. 비트 하나가 항상 심볼 하나인 것은 아니다. |
| 관찰·상황 | 값·보충 정보 | 변화·이유 |
|---|---|---|
| 송신 표현 비트를 심볼과 매체 신호로 표현합니다. |
|
|
| 매체 전달 전기·빛·전파 신호가 매체를 통과합니다. |
|
|
| 수신 복원 수신 신호에서 심볼을 판정하고 비트를 복원합니다. |
|
|
그림처럼 보내는 쪽은 비트들을 심볼(symbol)이라는 신호의 단위로 바꾸어 매체에 싣고, 신호는 매체를 지나며 약해지고 잡음이 섞입니다. 받는 쪽은 받은 신호에서 각 심볼이 무엇이었는지 판정해 비트를 되살립니다. 심볼 하나가 비트 하나와 같을 필요는 없어서, 고속 링크는 심볼 하나에 여러 비트를 담습니다.
라인 코딩: 비트를 전압의 패턴으로
라인 코딩(line coding)은 비트열을 어떤 전압의 패턴으로 나타낼지 정하는 방법입니다. 가장 단순한 NRZ(non-return-to-zero)는 1을 높은 전압으로, 0을 낮은 전압으로 나타냅니다. 맨체스터 부호(Manchester code)는 비트마다 한가운데에서 전압을 바꾸는데, 10Mbps 이더넷(10BASE-T)이 쓰던 IEEE 802.3의 관례로는 1이면 낮음에서 높음으로, 0이면 높음에서 낮음으로 바뀝니다.
def nrz(bits):
return ["+" if b == "1" else "-" for b in bits] # 1은 높은 전압, 0은 낮은 전압
def manchester(bits):
# IEEE 802.3의 관례: 1은 비트 가운데서 낮음에서 높음으로, 0은 높음에서 낮음으로 바뀐다
return [half for b in bits for half in (("-", "+") if b == "1" else ("+", "-"))]
def transitions(levels):
return sum(a != b for a, b in zip(levels, levels[1:]))
for bits in ("11111111", "10110010"):
for name, encode in (("NRZ", nrz), ("Manchester", manchester)):
levels = encode(bits)
print(f"{bits} {name:<10} {''.join(levels):<16} 신호 변화 {transitions(levels)}번")11111111 NRZ ++++++++ 신호 변화 0번
11111111 Manchester -+-+-+-+-+-+-+-+ 신호 변화 15번
10110010 NRZ +-++--+- 신호 변화 5번
10110010 Manchester -++--+-++-+--++- 신호 변화 10번1이 여덟 번 이어지면 NRZ의 신호는 한 번도 바뀌지 않습니다. 받는 쪽은 신호가 바뀌는 순간을 보고 비트의 시작을 맞추는데, 변화가 없으면 자기 시계가 조금씩 어긋나 비트 몇 개가 지났는지 놓칠 수 있습니다. 맨체스터 부호는 비트마다 반드시 한 번 이상 바뀌므로 받는 쪽이 시계를 맞추기 쉽지만, 같은 비트를 보내는 데 신호를 두 배로 자주 바꿔야 해서 더 넓은 주파수 대역이 필요합니다.
그래서 이후의 이더넷은 다른 방법을 씁니다. 100Mbps 이더넷은 4비트를 5비트의 부호로 바꾸는 4B/5B를, 1Gbps 광 이더넷은 8비트를 10비트로 바꾸는 8B/10B를 써서, 0이나 1이 너무 길게 이어지지 않게 하면서 맨체스터보다 적은 비용으로 신호의 변화를 보장합니다. 더 빠른 링크는 PAM4처럼 전압을 네 단계로 나누어 심볼 하나에 2비트를 담는데, 단계 사이의 간격이 좁아지므로 잡음에 더 민감해집니다.
변조: 반송파에 비트를 싣기
무선처럼 일정한 주파수의 반송파(carrier wave)를 쓰는 매체에서는, 반송파의 성질을 바꾸어 비트를 싣습니다. 이를 변조(modulation)라고 합니다.
| 변조 | 바꾸는 성질 |
|---|---|
| ASK | 반송파의 진폭 |
| FSK | 반송파의 주파수 |
| PSK | 반송파의 위상 |
| QAM | 진폭과 위상을 함께 바꾸어 여러 상태를 만든다 |
QAM은 심볼 하나가 가질 수 있는 상태의 수로 이름을 붙여, 1024-QAM은 1024가지 상태, 곧 심볼 하나에 log₂1024 = 10비트를 싣습니다. Wi-Fi 6는 신호가 좋을 때 1024-QAM을, Wi-Fi 7은 4096-QAM(12비트)을 씁니다. 상태가 많을수록 상태끼리의 차이가 작아지므로, 신호 대 잡음비(SNR)가 나빠지면 장비는 더 적은 상태의 변조로 낮추어 오류를 줄입니다. AP에서 멀어질수록 Wi-Fi의 속도가 단계적으로 떨어지는 이유가 이것입니다.
유선 매체
꼬임 쌍선
흔히 랜선이라고 부르는 케이블로, 두 가닥의 구리선을 꼬아 한 쌍을 만들고 보통 네 쌍, 곧 여덟 가닥을 씁니다. 선을 꼬는 것은 바깥의 잡음과 이웃한 쌍에서 새어 드는 신호(누화)를 줄이기 위해서입니다.
| 범주 | 주파수 사양 | 대표적인 쓰임 |
|---|---|---|
| Cat5e | 100MHz | 1Gbps를 100m까지. 조건이 맞으면 2.5Gbps와 5Gbps |
| Cat6 | 250MHz | 1Gbps를 100m까지. 10Gbps는 누화 조건에 따라 약 55m까지 |
| Cat6a | 500MHz | 10Gbps를 100m까지 |
| Cat8 | 2000MHz | 25Gbps와 40Gbps를 30m까지. 데이터센터용 |
광섬유와 동축 케이블
광섬유(optical fiber)는 유리 섬유 속으로 빛을 보내므로 전기적인 잡음의 영향을 받지 않고, 먼 거리를 갈 수 있습니다. 코어가 약 9μm로 가는 싱글모드 광섬유(SMF)는 레이저를 써서 수십에서 수천 킬로미터의 장거리와 해저 케이블에, 코어가 50μm나 62.5μm인 멀티모드 광섬유(MMF)는 데이터센터 안의 짧은 고속 연결에 씁니다. 실제로 갈 수 있는 거리는 광섬유의 종류뿐 아니라 양 끝의 트랜시버 규격과 파장, 속도에 따라 정해집니다. 동축 케이블(coaxial cable)은 가운데 도체를 절연체와 바깥 도체가 감싸 잡음을 잘 막으며, 지금은 주로 케이블 TV망으로 인터넷을 제공하는 DOCSIS에 쓰입니다.
무선 매체
| 기술 | 대역과 특징 |
|---|---|
| Wi-Fi 4(802.11n) | 2.4GHz와 5GHz. 최고 600Mbps는 40MHz 채널, 공간 스트림 4개를 모두 쓸 때의 값 |
| Wi-Fi 5(802.11ac) | 5GHz. 채널 폭, 변조, 공간 스트림 수에 따라 속도가 정해진다 |
| Wi-Fi 6(802.11ax) | 2.4GHz와 5GHz. 160MHz 채널, 1024-QAM. 6E는 6GHz 대역으로 넓힌 것 |
| Wi-Fi 7(802.11be) | 6GHz의 320MHz 채널, 4096-QAM, 여러 대역을 함께 쓰는 MLO |
| Bluetooth LE | 2.4GHz. 1Mbps, 2Mbps 모드와 멀리 가는 대신 느린 125kbps, 500kbps 모드 |
| 5G NR | 7.125GHz 이하의 FR1과 24.25GHz 이상의 FR2. 나라와 통신사마다 쓰는 대역이 다르다 |
대체로 높은 주파수의 대역은 넓은 채널을 쓸 수 있어 빠르지만, 파장이 짧아 벽을 잘 통과하지 못하고 멀리 가지 못합니다. 5G의 밀리미터파(FR2)가 빠르지만 기지국을 촘촘히 세워야 하는 이유입니다. 표의 속도는 물리 계층이 비트를 내보내는 속도의 상한이며, 같은 채널을 쓰는 다른 기기와의 경쟁, 재전송, 헤더 때문에 응용 프로그램이 실제로 얻는 처리량은 그보다 훨씬 낮습니다.
대역폭과 잡음이 정하는 한계
여기서 말하는 대역폭(bandwidth)은 신호가 쓸 수 있는 주파수의 폭으로 단위는 Hz이며, 1장에서 본 데이터 전송 속도(bps)와 다른 뜻입니다. 둘의 관계는 섀넌(Shannon)의 채널 용량 정리가 정합니다. 잡음이 섞이는 채널이 오류 없이 보낼 수 있는 속도의 상한은 대역폭과 신호 대 잡음비로 정해집니다.
는 채널 용량(bps), 는 대역폭(Hz), 은 신호와 잡음의 전력의 비입니다. SNR은 보통 데시벨(dB)로 나타내므로, 식에 넣기 전에 로 바꾸어야 합니다.
import math
def capacity_bps(bandwidth_hz, snr_db):
snr = 10 ** (snr_db / 10) # dB를 전력의 비로 바꾼다
return bandwidth_hz * math.log2(1 + snr) # 섀넌의 채널 용량
cases = [ # (가정한 채널, 대역폭 Hz, SNR dB)
("100MHz, SNR 25dB", 100e6, 25),
("80MHz, SNR 35dB", 80e6, 35),
("400MHz, SNR 20dB", 400e6, 20),
("80MHz, SNR 10dB", 80e6, 10),
]
for name, bw, snr in cases:
print(f"{name}: 용량 약 {capacity_bps(bw, snr) / 1e6:,.1f}Mbps")100MHz, SNR 25dB: 용량 약 830.9Mbps
80MHz, SNR 35dB: 용량 약 930.2Mbps
400MHz, SNR 20dB: 용량 약 2,663.3Mbps
80MHz, SNR 10dB: 용량 약 276.8Mbps25dB는 전력의 비로 약 316배이므로, 100MHz 채널의 용량은 100×10⁶ × log₂(317) ≈ 830.9Mbps입니다. 같은 80MHz 채널이라도 SNR이 35dB에서 10dB로 떨어지면 용량이 3분의 1 아래로 줄어, 대역폭만큼이나 신호의 품질이 중요하다는 것을 알 수 있습니다. 이 값들은 하나의 채널을 가정한 이론적인 상한이며, 실제 장비는 여러 쌍의 선이나 여러 안테나(MIMO)를 함께 써서 이보다 빠를 수도 있고, 오류 정정 부호의 몫 때문에 상한에 못 미치기도 합니다.
신호는 매체를 따라가며 약해지는데, 이를 감쇠(attenuation)라고 합니다. 구리선은 거리가 길수록 감쇠와 누화가 커져 이더넷의 한 구간은 100m로 정해져 있고, 광섬유도 트랜시버가 감당할 수 있는 손실의 예산 안에서만 쓸 수 있어 장거리 시스템은 중간에 광 증폭기를 둡니다. Wi-Fi는 거리뿐 아니라 벽과 다른 기기의 간섭에 따라 신호가 약해지므로, 신호가 약한 곳에는 AP를 더 두거나 메시 구성을 씁니다.
물리 계층의 장비와 확인 방법
| 장비 | 하는 일 |
|---|---|
| 리피터 | 약해진 신호를 되살려 다시 내보낸다 |
| 허브 | 받은 신호를 다른 모든 포트로 되풀이해 내보내는 여러 포트의 리피터 |
| 네트워크 카드(NIC) | 데이터와 신호를 서로 바꾸고, MAC 계층의 일도 함께 한다 |
| 미디어 컨버터 | 구리선과 광섬유처럼 서로 다른 매체를 잇는다 |
| 모뎀 | 반송파를 변조하고 복조해 DSL이나 케이블망에 데이터를 싣는다 |
ethtool eth0 # 협상된 링크 속도(Speed), 이중 방식(Duplex), 연결 여부(Link detected)
cat /sys/class/net/eth0/carrier # 1이면 물리적으로 연결됨, 0이면 연결되지 않음
cat /sys/class/net/eth0/speed # 협상된 링크 속도(Mbps)
iw dev wlan0 link # 무선: 연결된 AP, 신호 세기(dBm), 송신 비트 속도장치 이름은 ip link로 확인해 바꿉니다. 1Gbps 카드인데 ethtool이 100Mbps로 협상되었다고 보여 준다면 케이블의 선 하나가 끊겼거나 낮은 범주의 케이블일 가능성이 크고, 이는 어떤 소프트웨어 설정으로도 고칠 수 없습니다. 물리 계층의 한계는 소프트웨어로 넘을 수 없다는 것이 이 계층이 개발자에게 주는 가장 중요한 교훈입니다.
정리
- 물리 계층은 비트를 매체에 맞는 신호로 바꾸어 보내고, 받은 신호에서 비트를 되살리며, 비트의 뜻은 알지 못합니다.
- 라인 코딩은 비트를 전압의 패턴으로 나타내며, 신호의 변화가 있어야 받는 쪽이 시계를 맞출 수 있어서 맨체스터, 4B/5B, 8B/10B 같은 방법이 쓰입니다.
- 무선은 반송파의 진폭과 위상을 바꾸는 변조로 비트를 실으며, QAM은 상태가 많을수록 빠르지만 잡음에 약합니다.
- 꼬임 쌍선은 범주와 길이에, 광섬유는 종류와 트랜시버에, 무선은 대역과 간섭에 따라 속도와 거리가 정해집니다.
- 섀넌의 채널 용량은 대역폭과 신호 대 잡음비로 속도의 상한을 정하며, 이 한계는 소프트웨어로 넘을 수 없습니다.
연습 문제
1. 0dB와 0
섀넌의 식에서 대역폭이 10MHz이고 SNR이 0dB라면 채널 용량은 얼마인가요? SNR은 그대로 두고 대역폭만 20MHz로 넓히면 어떻게 되나요? SNR이 0dB인 것과 전력의 비가 0인 것은 어떻게 다른가요?
해설 보기
0dB는 10⁰ = 1, 곧 신호와 잡음의 전력이 같다는 뜻이므로, 용량은 10×10⁶ × log₂(1 + 1) = 10Mbps입니다. SNR이 그대로이면 용량은 대역폭에 비례하므로 20MHz에서는 20Mbps가 됩니다. 전력의 비가 0이라면 신호가 아예 없다는 뜻이어서 log₂(1) = 0, 곧 아무것도 보낼 수 없습니다. 데시벨과 비를 섞어 쓰면 이렇게 전혀 다른 답이 나오므로, 식에 넣기 전에 단위를 반드시 바꾸어야 합니다. 실제로 채널을 넓히면 받는 잡음도 함께 늘어나는 경우가 많아, 대역폭을 두 배로 했다고 늘 용량이 두 배가 되는 것은 아닙니다.
2. 1이 길게 이어지면
NRZ로 1을 1,000개 이어서 보냈습니다. 받는 쪽은 비트를 몇 개 받았는지 어떻게 알 수 있나요? 이 문제를 맨체스터 부호와 8B/10B는 각각 어떻게 해결하나요?
해설 보기
NRZ에서는 1이 이어지는 동안 전압이 한 번도 바뀌지 않으므로, 받는 쪽은 자기 시계만으로 비트의 개수를 세야 합니다. 두 장비의 시계는 아주 조금씩 다르기 때문에 1,000비트쯤 지나면 하나를 더 세거나 덜 세는 일이 생길 수 있습니다. 맨체스터 부호는 비트마다 가운데에서 반드시 전압이 바뀌므로 받는 쪽이 비트마다 시계를 다시 맞출 수 있지만, 신호를 두 배로 자주 바꿔야 합니다. 8B/10B는 8비트를 0과 1이 고르게 섞인 10비트의 부호로 바꾸어 같은 값이 다섯 번 넘게 이어지지 않게 하므로, 25%의 추가 비용으로 충분한 신호 변화를 보장합니다.
3. AP에서 멀어질 때
노트북을 AP 옆에 두면 Wi-Fi의 링크 속도가 높게 나오지만, 벽을 두 개 지나 멀어지면 속도가 단계적으로 떨어집니다. 물리 계층에서 무슨 일이 일어나고 있는지 변조와 섀넌의 식으로 설명하세요.
해설 보기
멀어지고 벽을 지날수록 받는 신호가 약해져 잡음에 대한 신호의 비(SNR)가 떨어집니다. 1024-QAM처럼 상태가 많은 변조는 상태끼리의 차이가 작아서 SNR이 낮으면 심볼을 잘못 판정하기 쉬우므로, 장비는 오류를 줄이려고 256-QAM, 64-QAM처럼 상태가 적은 변조와 더 강한 오류 정정 부호로 차례로 낮춥니다. 심볼 하나에 싣는 비트가 줄어드니 속도가 단계적으로 떨어집니다. 섀넌의 식으로 보아도 같은 대역폭에서 SNR이 낮아지면 용량의 상한이 줄어들므로, 설정을 바꿔서는 해결되지 않고 AP를 가까이 두거나 하나 더 두어야 합니다.
다음 글 이더넷과 MAC 주소에서는 물리 계층 바로 위에서 비트들을 프레임으로 묶어 같은 링크 안의 상대에게 전달하는 이더넷과 MAC 주소를 살펴봅니다.