안동민 개발노트 아이콘

안동민 개발노트

3장 : 물리 계층과 데이터 링크 계층

물리 계층의 역할

지금까지 우리는 계층 모델이라는 큰 그림과 캡슐화의 원리를 살펴보았습니다. 이제 그 가장 아래쪽, 데이터가 실제로 물리적 세계에서 어떻게 이동하는지를 들여다볼 차례입니다.

코드를 작성하고 API를 호출하는 개발자에게 전기 신호나 광 펄스 같은 이야기가 왜 필요할까요? 직접 물리 계층을 구현할 일은 없겠지만, 네트워크 성능 문제를 진단할 때 이 병목이 물리적인 한계에서 오는 것인지, 소프트웨어 설정의 문제인지를 구분할 수 있어야 하기 때문입니다.


비트를 신호로, 신호를 비트로

물리 계층의 본질적인 역할은 딱 하나입니다. 0과 1로 이루어진 비트(Bit)를 물리적 매체가 전달할 수 있는 신호(Signal)로 변환하고, 반대로 수신된 신호를 다시 비트로 복원하는 것입니다.

여기서 신호는 매체에 따라 다릅니다. 구리 케이블에서는 전기 신호(전압의 변화)이고, 광섬유에서는 빛의 온/오프(광 펄스)이며, 무선 통신에서는 전자기파(라디오 주파수)입니다.

물리 계층이 신경 쓰는 것은 오직 비트를 정확하게 보내고 받는 것뿐입니다. 그 비트들이 IP 주소인지, HTTP 요청인지는 전혀 모르고 알 필요도 없습니다.


인코딩과 변조

비트를 신호로 변환할 때는 비트열을 어떤 심볼 패턴으로 바꿀지그 심볼을 매체 위의 어떤 물리 신호로 실을지를 함께 생각해야 합니다. 실제 유선 링크도 다중 전압 레벨을 쓰고, 무선 링크도 오류 정정 코딩과 변조를 함께 사용합니다.

라인 코딩과 심볼 인코딩

인코딩 방식원리사용처
NRZ (Non-Return to Zero)1=고전압, 0=저전압초기 시리얼 통신
Manchester비트 중간 천이로 클록 동기화10BASE-T 이더넷
4B/5B4비트를 5비트 코드로 매핑100BASE-TX
8B/10B8비트를 10비트로, DC 밸런스 유지1000BASE-X 계열
PAM 계열여러 전압 레벨로 심볼당 여러 비트 표현고속 구리/광 링크

NRZ는 단순하지만 동기화가 어렵습니다. 11111111처럼 같은 값이 계속되면 수신 측의 클록이 어긋날 수 있기 때문입니다. Manchester 인코딩은 매 비트마다 전압 변화가 있어 클록 동기화가 용이하지만, 같은 데이터 속도를 내려면 더 넓은 신호 대역이 필요합니다. PAM 계열처럼 여러 전압 레벨을 쓰는 방식은 심볼당 더 많은 비트를 담을 수 있지만, 신호 품질 요구도 함께 높아집니다.

반송파 변조

무선처럼 반송파(carrier wave)를 사용하는 환경에서는 반송파의 특성을 변화시켜 데이터를 실습니다.

변조 방식변화 대상효율
ASK (진폭 변조)파형의 높이낮음
FSK (주파수 변조)파형의 빠르기중간
PSK (위상 변조)파형의 시작점높음
QAM (직교 진폭 변조)진폭 + 위상 동시최고

Wi-Fi 6/6E는 조건이 좋을 때 1024-QAM을 사용할 수 있습니다. 하나의 심볼로 10비트(1024가지 상태)를 표현할 수 있어 대역폭 효율이 높지만, 신호 대 잡음비가 낮아지면 더 낮은 변조 단계로 내려갑니다.


유선 전송 매체

꼬임 쌍선 (Twisted Pair Cable)

우리가 흔히 랜선이라고 부르는 케이블입니다. 두 가닥씩 꼬아 한 쌍을 만들고, 일반적인 이더넷 케이블은 이런 쌍 4개, 즉 8가닥의 도선으로 구성됩니다.

카테고리최대 속도대역폭최대 거리특징
Cat5e1 Gbps100 MHz100m가정/사무실 표준
Cat610 Gbps250 MHz55m (10G)중앙 십자 분리대
Cat6a10 Gbps500 MHz100m차폐형/비차폐형 모두 존재
Cat710 Gbps600 MHz100m각 쌍 차폐 구조
Cat825/40 Gbps2000 MHz30m데이터센터용

광섬유 (Fiber Optic Cable)

빛을 이용하여 데이터를 전송합니다. 전기적 간섭의 영향을 받지 않고, 장거리 전송에 유리합니다. 실제 최대 거리와 광원은 광섬유 종류뿐 아니라 트랜시버 표준, 파장, 속도에 따라 달라집니다.

구분싱글모드 (SMF)멀티모드 (MMF)
코어 직경9 μm50/62.5 μm
광원레이저VCSEL/LED 등
최대 거리수 km~수십 km+수십~수백 m
속도100 Gbps+고속 단거리
비용높음낮음
용도WAN, 해저 케이블데이터센터 내부

동축 케이블 (Coaxial Cable)

중심 도체를 절연체와 외부 도체가 감싸는 구조로, 전자기 차폐 성능이 좋습니다. 현재는 CATV 인터넷(DOCSIS)에서 주로 사용됩니다.


무선 전송 매체

기술표준주파수최대 속도도달 거리
Wi-Fi 4802.11n2.4/5 GHz600 Mbps~70m
Wi-Fi 5802.11ac5 GHz3.5 Gbps~35m
Wi-Fi 6/6E802.11ax2.4/5/6 GHz9.6 Gbps~35m
Wi-Fi 7802.11be2.4/5/6 GHz46 Gbps~30m
Bluetooth 5BT 5.x2.4 GHz2 Mbps(근거리)장거리 모드 별도
5G (sub-6)NR3.5 GHz~4 Gbps~1 km
5G (mmWave)NR28 GHz+~20 Gbps~200m

일반적으로 높은 주파수 대역은 더 넓은 채널을 제공하기 쉬워 속도 면에서 유리하지만, 파장이 짧아 장애물 투과와 도달 거리에서 불리한 경우가 많습니다. 이것이 물리학이 결정하는 근본적 트레이드오프입니다.


대역폭, 전송 속도, 신호 감쇠

물리 계층을 이해할 때 혼동하기 쉬운 세 가지 개념을 정리합니다.

대역폭(Bandwidth)은 사용 가능한 주파수 범위(Hz)입니다. 주파수 범위가 넓을수록 더 많은 데이터를 실을 수 있습니다.

전송 속도(Data Rate)는 실제로 비트를 전송하는 빠르기(bps)입니다. 이상적인 채널에서의 상한은 샤논의 채널 용량 정리로 설명할 수 있습니다.

C=Blog2(1+SNR)C = B \log_2(1 + \text{SNR})

CC: 채널 용량(bps), BB: 대역폭(Hz), SNR\text{SNR}: 신호 대 잡음비

shannon_capacity.py
import math

def channel_capacity(bandwidth_hz, snr_db):
    """샤논 채널 용량 계산"""
    snr_linear = 10 ** (snr_db / 10)
    capacity = bandwidth_hz * math.log2(1 + snr_linear)
    return capacity

# 일반적인 매체별 채널 용량 예시
scenarios = [
    ("Cat5e (100MHz, SNR 25dB)", 100e6, 25),
    ("광섬유 (10GHz, SNR 30dB)", 10e9, 30),
    ("Wi-Fi 5 (80MHz, SNR 35dB)", 80e6, 35),
    ("5G mmWave (400MHz, SNR 20dB)", 400e6, 20),
]

for name, bw, snr in scenarios:
    cap = channel_capacity(bw, snr)
    unit = "Gbps" if cap > 1e9 else "Mbps"
    val = cap / 1e9 if cap > 1e9 else cap / 1e6
    print(f"{name}")
    print(f"  이론적 최대 용량: {val:.1f} {unit}\n")

신호 감쇠(Attenuation)는 신호가 매체를 따라 이동하면서 점차 약해지는 현상입니다.

매체최대 전송 거리감쇠 원인해결 방법
UTP (Cat5e)100m저항, 누화리피터, 스위치
광섬유 (SMF)80 km산란, 흡수광증폭기 (EDFA)
Wi-Fi~35m (실내)벽, 간섭AP 추가, 메시
해저 케이블~80 km/구간흡수리피터 (60~80km 간격)

물리 계층 장비

장비역할OSI 계층
리피터 (Repeater)약해진 신호를 증폭/재생L1
허브 (Hub)다중 포트 리피터, 모든 포트에 신호 복제L1
NIC (Network Interface Card)디지털 ↔ 신호 변환, MAC 주소 보유L1/L2
미디어 컨버터매체 변환 (구리 ↔ 광섬유)L1
모뎀디지털 ↔ 아날로그 변환 (DSL/케이블)L1
physical_check.sh
# NIC 상태 및 링크 속도 확인
ethtool eth0 | grep -E "Speed|Duplex|Link"

# 무선 인터페이스 신호 강도 확인
iwconfig wlan0 | grep -E "Signal|Bit Rate"

# 케이블 연결 상태 확인 (carrier 파일)
cat /sys/class/net/eth0/carrier    # 1=연결, 0=미연결
cat /sys/class/net/eth0/speed      # 링크 속도 (Mbps)

# MTU 확인
ip link show eth0 | grep mtu

소프트웨어 최적화로는 물리적 한계를 넘을 수 없다는 점이 물리 계층이 개발자에게 알려주는 가장 중요한 메시지입니다. 먼 지역 간 RTT에는 광섬유 내부 전파 속도, 실제 해저 케이블 경로, 라우터 처리 시간이 함께 반영되며, 이것은 어떤 코드 최적화만으로 사라지지 않습니다.

다음 절에서는 물리 계층 바로 위에서, 비트들을 의미 있는 단위로 묶어 전달하는 이더넷과 MAC 주소를 살펴보겠습니다.