에듀테크 프로젝트 대시보드
패킷 교환 vs 회선 교환
OSI 모델을 배우기 전에 알아야 할 더 근본적인 질문 — 인터넷은 왜 옛날 전화망처럼 동작하지 않을까? 전화는 "회선 교환", 인터넷은 "패킷 교환"이라는 전혀 다른 방식을 씁니다.
전화를 걸면 발신자와 수신자 사이에 전용 통신로(회선)가 통화가 끝날 때까지 예약됩니다. 반면 인터넷에서 메시지를 보낼 때는 데이터를 잘게 쪼갠 패킷 여러 개가 다른 사람들의 데이터와 같은 케이블을 번갈아 나눠 쓰며 목적지까지 갑니다. 이 차이가 왜 인터넷이 수십억 대의 기기를 동시에 연결할 수 있는지를 설명하는 핵심입니다.
이 트렁크(간선)에는 물리적으로 회선이 3개뿐입니다. 아래 4개의 통신 쌍 중 누구든 "통화 시작"을 누르면 비어있는 회선 하나를 독점 예약합니다. 회선이 3개 다 차 있으면, 4번째로 시도한 쌍은 회선이 없어서 아예 연결조차 되지 못합니다 (통화 중 신호 · busy).
이번엔 같은 4개의 통신 쌍이 회선을 예약하지 않습니다. 대신 보낼 데이터를 작은 패킷으로 쪼개고, 각 패킷에 "이건 누구 것이고 어디로 가는지" 적은 헤더를 붙여 하나의 공유 링크로 흘려보냅니다. 링크는 한 번에 패킷 하나씩만 통과시킬 수 있어서, 여러 통신의 패킷들이 라우터의 대기열(큐)에서 순서를 기다렸다가 번갈아(통계적 다중화) 지나갑니다.
이번엔 5개의 통신이 동시에 몰리는 상황을 두 방식으로 나란히 재생합니다. 회선 교환은 회선이 3개뿐이라 2개는 아예 실패하고, 패킷 교환은 공유 링크 하나로 5개 전부 성공하지만 도착 시간이 제각각입니다.
| 항목 | 회선 교환 | 패킷 교환 |
|---|---|---|
| 연결 방식 | 전용 회선을 미리 예약 (독점) | 예약 없음, 공유 링크를 나눠 씀 |
| 지연시간 | 일정함 (한 번 연결되면 안정적) | 혼잡도에 따라 변동 (지터 발생 가능) |
| 자원 효율 | 침묵 중에도 회선 낭비 | 쓰는 만큼만 링크 점유, 효율적 |
| 확장성 | 회선 수만큼만 동시 연결 가능, 낮음 | 트래픽이 몰려도 다들 조금씩 나눠 받음, 높음 |
| 혼잡 시 | 회선 없으면 연결 자체가 실패(busy) | 지연되거나 드물게 유실, 완전 실패는 아님 |
| 장애 대응 | 그 회선이 끊기면 통화 자체가 끊김 | 패킷마다 다른 경로로 우회 가능 (라우터 하나가 죽어도 계속 감) |
| 대표 사례 | 전통 전화망(PSTN) | 인터넷 전체 (IP) |
패킷 교환에서 각 패킷은 자기 데이터 조각과 함께 "누가, 누구에게, 몇 번째 조각을" 보내는지 적은 헤더를 들고 다닙니다. 아주 단순화하면 이런 딕셔너리와 비슷합니다.
# 패킷 하나를 흉내낸 구조 (실제 IP 헤더는 훨씬 더 많은 필드를 가짐) packet = { 'src': '192.168.0.12', # 출발지 주소 — 이 패킷을 보낸 쪽 'dst': '203.0.113.7', # 목적지 주소 — 라우터는 이것만 보고 다음 경로를 정함 'seq': 42, # 이 패킷의 순번 — 도착 후 원래 순서로 재조립할 때 씀 'ttl': 64, # 살아남을 수 있는 최대 홉(라우터 통과) 수 'payload': b'...', # 실제로 보내려는 데이터 조각 (전체 중 일부일 뿐) } # 같은 공유 링크로 여러 통신의 패킷이 이렇게 번갈아(라우터 큐 순서대로) 흘러갈 수 있음: queue = [pkt_A1, pkt_B1, pkt_A2, pkt_C1, pkt_B2, ...] # A, B, C는 서로 다른 통신
/tcp-udp 페이지로 이어집니다.