네트워크 기초
네트워크는 노드와 링크가 서로 연결되어 있는 구조를 말합니다. 이는 두 대 이상의 장치가 논리적, 물리적으로 연결되어 데이터를 주고 받을 수 있는 상태를 의미하며, 주로 데이터 공유, 컴퓨팅 자원(프린터, 스토리지 등) 공유, 분산 처리를 위해 사용합니다.
네트워크 설계는 항상 신뢰성(Reliability), 속도(Throughput/Latency), 비용(Cost) 사이의 트레이드오프를 통해 결정됩니다.
네트워크의 구성 요소
네트워크를 구성하는 물리적/논리적 요소는 크게 세 가지로 나뉩니다.
엔드 시스템(End Systems / Hosts)
네트워크의 ‘가장자리(Edge)’에 위치하여 실질적인 데이터를 생성하고 소비하는 주체입니다. 운영체제(OS) 관점에서는 네트워크 프로토콜 스택(TCP/IP)이 구현되어 돌아가는 주체이기도 합니다.
- 클라이언트-서버(Client-Server) 모델 : 현대 웹 아키텍처의 기본입니다. 자원을 가진 서버(Server)는 항상 대기 상태를 유지하며, 클라이언트(Client)가 요청(Request)할 때만 응답(Response)합니다.
- P2P(Peer-to-Peer) 모델 : 모든 노드가 클라이언트이자 서버 역할을 동시에 수행합니다. (토렌트, 블록체인 노드 등)
클라이언트-서버 모델은 중앙 집중적 관리가 용이하지만, 서버 트래픽이 집중되면 단일 장애점(SPOF, Single Point of Failure)이 될 위험이 있습니다.
P2P 모델은 중앙 서버가 없어 트래픽 병목이 적고 확장성이 뛰어나지만, 보안 통제와 데이터 일관성 유지가 어렵습니다.
통신 링크(Communication Links)
데이터가 전송되는 물리적 매개체입니다. 링크 계층의 설계는 대역폭(Bandwidth), 전송 거리, 노이즈 내성, 구축 비용 사이의 트레이드오프를 통해 결정됩니다.
- 꼬임선(Twisted Pair/UTP 랜선) : 굴리선을 꼬아 전기적 간섭(Crosstalk)을 상쇄합니다. 저렴하고 설치가 쉽지만, 거리가 멀어질수록 신호 감쇠(Attenuation)가 심해져 보통 100m 이내로 제한됩니다.
- 광섬유(Fiber Optics) : 빛의 전반사를 이용해 데이터를 전송합니다. 전자기 간섭(EMI)이 전혀 없고 대역폭이 압도적으로 넓어 해저 케이블이나 백본망(Backbone)에 필수적입니다. 하지만 구부러짐에 취약하고 케이블 매설 및 장비 비용이 매우 비쌉니다.
- 무선 링크(Wireless/Wi-Fi, BLE) : 전파를 매개체로 합니다. 이동성과 편의성이 극대화되지만, 공용 매체(Shared Medium)를 사용하므로 패킷 충돌(Collision)이 발생하기 쉽고, 보안에 취약하며, 환경 요인(벽, 날씨)에 의해 신호 품질이 크게 변동합니다.
네트워크 장비(Intermediary Devices)
데이터가 목적지까지 찾아가는 과정(포워딩 및 라우팅)을 담당하는 장비들입니다. 하위 계층에서 상위 계층으로 갈수록 더 정확하게 트래픽을 제어하지만, 장비가 처리해야 할 연산량(Overhead)은 커집니다.
- L1 더미 허브(Dummy Hub)/리피터(Repeater)
- 물리 계층(L1) 장비이며, 들어온 전기 신호를 단순히 증폭시켜 연결된 모든 포트로 복사하여 뿌립니다. (Broadcasting)
- 한 컴퓨터가 통신 중일 때 다른 컴퓨터가 통신을 시도하면 데이터 충돌이 발생합니다. 네트워크 규모가 조금만 커져도 마비 수준의 비효율이 발생하므로 현대 네트워크에서는 잘 사용하지 않습니다.
- L2 스위치(Switch)
- 데이터 링크 계층(L2) 장비이며, 패킷의 목적지 MAC 주소를 확인하여, 해당 주소가 연결된 특정 포트로만 프레임을 전달(Forwarding)합니다. 내부에 MAC 주소 테이블(CAM Table)을 유지하며, 하드웨어(ASIC)단에서 $O(1)$의 시간 복잡도로 매우 빠르게 스위칭합니다.
- 포트 간 패킷 충돌을 없애(충돌 도메인 분리) 네트워크 효율을 극대화했습니다. 하지만 목적지를 모르는 브로드캐스트 트래픽(ARP 요청 등)은 여전히 모든 포트로 뿌리기 때문에, 스위치들이 루프(Loop) 구조로 연결될 경우 브로드캐스트 스톰(Broadcast Storm) 이라는 치명적인 장애가 발생할 수 있습니다. 이를 막기 위해 STP(Spanning Tree Protocol) 같은 복잡한 설정이 필요합니다.
- L3 라우터(Router)/L3 스위치
- 네트워크 계층(L3) 장비이며, 서로 다른 LAN(Subnet)을 연결합니다. 목적지의 IP 주소를 기반 으로 라우팅 테이블(Routing Table)을 참조하여 최적의 경로를 계산합니다.
- 소프트웨어적 판단(혹은 고성능 라우팅 칩)이 들어가므로 L2 스위치보다 패킷 처리 속도는 상대적으로 느립니다. 하지만 브로드캐스트 트래픽을 차단하여 네트워크를 논리적으로 분리(브로드캐스트 도메인 분리)하고, 전 세계 규모의 인터넷을 가능하게 하는 핵심 인프라입니다.
- L4/L7 로드밸런서(Load Balancer/ADC)
- 전송 계층(L4, 포트번호)이나 응용 계층(L7, HTTP 헤더, URL 등)의 정보를 분석하여 트래픽을 여러 대의 서버로 분산시켜 줍니다.
- 대규모 서비스에서는 단일 서버로 대량의 트래픽을 감당할 수 없으므로(Scale-up의 한계), 로드밸런서를 앞단에 두고 여러 대의 서버로 트래픽을 쪼개는 Scale-out 아키텍처가 필요합니다.
- 액세스 포인트(AP)
- 물리 계층(L1)과 데이터 링크 계층(L2)에서 동작하며, 유선 네트워크 신호를 무선 신호(Wi-Fi)로 변환해 주는 다리(Bridge) 역할을 합니다.
- 일반 가정이나 소규모 사무실에서 사용하는 공유기 는 하나의 기기 안에 라우터(외부망 연결) + 스위치(유선 LAN 포트) + AP(Wi-Fi 제공) 기능이 모두 통합된 소형 아키텍처입니다.
충돌 도메인(Collision Domain) vs 브로드캐스트 도메인(Broadcast Domain)
- 충돌 도메인 : 패킷 충돌이 발생할 수 있는 영역힙니다. L2 스위치는 각 포트마다 충돌 도메인을 분할하여 이 문제를 해결합니다.
- 브로드캐스트 도메인 : 하나의 브로드캐스트 패킷이 도달할 수 있는 영역(일반적으로 동일한 서브넷)입니다. L2 스위치는 이 도메인을 나누지 못하며, 오직 L3 라우터만이 브로드캐스트 도메인을 분할하여 불필요한 트래픽 전파를 차단합니다. (VLAN 기술을 통해 L2 레벨에서 논리적으로 도메인을 쪼개는 기법도 많이 쓰입니다.)
SDN(Software-Defined Networking)
- 기존의 라우터나 스위치는 경로를 결정하는 뇌(Control Plane)와 패킷을 전달하는 몸통(Data Plane)이 한 장비 안에 강하게 결합되어 있었습니다.
- SDN은 이 제어 평면(Control Plane)을 장비에서 분리하여 중앙의 소프트웨어 컨트롤러로 모으는 패러다임 전환 입니다. 장비들은 단순히 패킷 포워딩만 수행(Data Plane)하고, 네트워크 관리자는 프로그래밍을 통해 전체 네트워크의 흐름을 중앙에서 유연하게 제어합니다. 클라우드 인프라(AWS, GCP, OCI 등)의 가상 네트워크(VPC)가 바로 이 SDN 기술을 바탕으로 구현됩니다.
보안 및 제어 장비(Security Devices)
- 방화벽(Firewall) : 외부의 비인가된 접근이나 악의적인 공격으로부터 내부 네트워크를 보호하는 보안 장비입니다. IP 주소, 포트 번호, 프로토콜 등을 검사하여 트래픽의 통과 여부(Allow/Deny)를 결정합니다.
논리적/물리적 식별자(Identifiers)
장비들이 서로를 인식하고 데이터를 정확히 배달하기 위해 반드시 필요한 주소 체계 입니다.
- MAC 주소(physical Address) : 네트워크 인터페이스 카드(NIC) 제조 시 부여되는 고유한 물리적 주소 입니다. (L2 계층에서 기기 간 직접 통신에 사용,
00:1A:2B:3C:4D:5E) - IP주소(Logical Address) : 네트워크 상에서 해당 기기가 어디에 위치해 있는지 나타내는 논리적 주소 입니다. (L3 계층에서 네트워크 간 경로를 찾을 때 사용,
192.168.0.1)
ARP(Address Resolution Protocol)
내 컴퓨터가 깃허브 서버(IP 주소)로 데이터를 보낼 때, 내 컴퓨터는 목적지 IP 주소는 알지만 당장 데이터를 넘겨줄 라우터의 MAC 주소는 모릅니다. 이 때 사용되는 프로토콜이 ARP이며, 내 컴퓨터가 IP 주소를 가진 기기, MAC 주소를 요청하는 브로드캐스트를 날리면 해당 기기가 자신의 MAC 주소를 응답해 줍니다.
네트워크의 종류
네트워크의 종류를 구분하는 것은 단순히 ‘얼마나 넓은 지역을 커버하느냐’를 넘어, ‘누가 통제권(Administrative Domain)을 가지며, 어떤 라우팅 프로토콜을 사용하고, 어느 정도의 지연 시간(Latency)과 패킷 손실률을 감내해야 하는가’를 결정하는 중요한 기준이 됩니다.
지리적 커버리지에 따른 분류(Scale)
가장 일반적인 분류 방식이며, 네트워크의 범위가 커질수록 대역폭(Bandwidth) 대비 구축 비용이 기하급수적으로 증가하며, 데이터가 거쳐야 하는 라우터(Hop)의 수가 많아져 지연 시간이 길어집니다.
PAN(Personal Area Network)
개인의 작업 공간(보통 10m 이내)을 중심으로 기기들을 연결하는 아주 작은 규모의 네트워크입니다.
전력 소모가 매우 적고 연결이 간편하지만, 전송 거리가 극히 짧고 대역폭이 작아 대용량 데이터 전송에는 부적합합니다. (무선 마이크, 스마트워치 통신에 활용)
- 주요 기술 : 블루투스(Bluetooth), 지그비(Zigbee), NFC
LAN(Local Area Network)
가정, 학교, 회사 건물 등 비교적 좁은 지역을 연결하는 네트워크입니다. 보통 단일 기관이 소유하고 직접 관리합니다.
통제권이 내부 관리자에게 있으므로 보안 정책 적용이 용이합니다. - 스위치(L2)를 주로 사용하여 고속 전송(Gbps 단위)과 매우 낮은 지연 시간(Low Latency)을 보장합니다. - 물리적인 거리 확장에 한계가 있어, 건물을 벗어나면 라우터를 통해 외부망으로 연결해야 합니다. - 주요 기술 : 이더넷(Ethernet, 유선 LAN), Wi-Fi(무선 LAN)
MAN(Metropolitan Area Network)
도시 단위의 규모를 커버하는 네트워크입니다. LAN을 여러 개 묶어 도시 전체를 하나로 연결하는 개념입니다.
과거 케이블 TV 네트워크나 도시 전역의 공공 Wi-Fi 망, 또는 대기업의 시내 캠퍼스 간 연결이 이에 해당합니다. LAN과 WAN의 중간적 성격을 띱니다.
WAN(Wide Area Network)
국가, 대륙 등 매우 넓은 지리적 범위를 연결하는 거대한 네트워크입니다. 인터넷(Internet)이 전 세계를 연결하는 가장 대표적인 WAN입니다.
개인이 직접 구축할 수 없으므로, ISP(통신사 : KT, SKT, LG U+ 등)의 인프라를 임대하여 사용해야 합니다.
수많은 라우터를 거치고 물리적 거리가 멀기 때문에 지연 시간(Latency)과 패킷 손실 위험이 상대적으로 높습니다. 따라서 WAN 구간을 통과하는 애플리케이션을 설계할 때는 타임아웃(Timeout) 처리와 재전송 로직(Retry mechanism)을 반드시 고려해야 하는 기술적 트레이드오프가 있습니다.
- 주요 기술 : 전용 선(Leased Line), 광대역 통신망, BGP(Border Gateway Protocol) 라우팅
물리적/논리적 연결 구조에 따른 분류(Topology)
노드(컴퓨터, 장비)들을 선으로 어떻게 연결할 것인가에 대한 형태적 분류입니다. 노드가 늘어날 때 성능이 어떻게 떨어지는지(Scalability), 하나의 선이 끊어졌을 때 전체 시스템이 마비되는지(Availability), 그리고 구축 비용은 얼마인지(Cost)를 결정짓는 아키텍처 설계입니다.
버스형(Bus Topology)
가장 고전적이고 단순한 구조입니다. ‘백본(Backbone)’ 혹은 ‘트렁크(Trunk)’라고 불리는 단일 중심 케이블에 모든 노드가 T자형 커넥터로 매달려 있는 형태입니다. 과거 동축 케이블을 사용하던 초기 이더넷(Ethernet)의 표준 모델이었습니다.
한 노드가 데이터를 보내면, 그 신호는 백본 케이블을 타고 양방향으로 브로드캐스트(Broadcast)됩니다. 목적지가 아닌 노드는 신호를 무시하고, 목적지 노드만 데이터를 수신합니다. 케이블 양끝에는 신호가 반사되어 돌아오는 것을 막는 종단 저항(Terminator)이 필수적입니다.
- 케이블 소요량이 가장 적어 구축 비용이 매우 저렴하고, 소규모 네트워크에 설치가 쉽습니다.
- 충돌(Collision) 문제 : 하나의 선을 공유하므로, 두 노드가 동시에 데이터를 보내면 신호가 충돌하여 데이터가 파괴됩니다. 이를 해결하기 위해 CSMA/CD (반송파 감지 다중 접속/충돌 방지)라는 복잡한 알고리즘이 필요하며, 노드 수가 늘어날수록 통신 대기 시간이 기하급수적으로 길어집니다.
- 단일 장애점(SPOF) : 각 노드의 고장은 전체에 영향을 주지 않지만, 중앙 백본 케이블이 단선되면 네트워크 전체가 죽시 마비 됩니다. 또한 장애 위치를 추적(Troubleshooting)하기가 매우 까다롭습니다.
링형(Ring Topology)
모든 노드가 원형(Ring)으로 연결되어, 데이터가 오직 한 방향(단방향)으로만 순환하는 구조입니다. IBM이 개발한 토큰링(Token Ring) 이나 광섬유 기반의 고속 네트워크(FDDI)에서 주로 사용되었습니다.
네트워크 상에는 ‘토큰(Token)’ 이라는 특수한 제어 패킷이 끊임없이 돕니다. 데이터를 보내고 싶은 노드는 반드시 이 토큰을 획득해야만 전송 권한을 가집니다. 데이터를 전송한 후에는 다시 토큰을 반납합니다.
- 버스형의 치명적 단점이었던 데이터 충돌(Collision) 이 원천적으로 발생하지 않습니다. 각 노드가 동등한 접근 기회를 가지므로, 네트워크에 트래픽이 몰려도 성능 저하가 예측 가능
- 취약한 결합 허용 : 단 하나의 노드가 고장나거나 케이블 한 곳만 끊어져도 링이 깨지면서 전체 네트워크가 마비됩니다. (이를 극복하기 위해 선을 두 개 까는 ‘이중 링(Dual Ring)’ 구조가 등장하기도 했습니다.)
- 노드를 추가하거나 제거할 때 네트워크를 잠시 중단해야 하는 불편함이 있습니다.
성형(Star Topology)
현대 LAN의 실질적인 표준(De facto standard)입니다. 중앙에 스위치(Switch)나 허브(Hub) 같은 집선 장비가 위치하고, 모든 노드가 중앙 장비와 1:1로 직접 연결됩니다.
- 특정 노드나 케이블에 장애가 생겨도 해당 노드만 통신이 끊길 뿐, 전체 네트워크에는 전혀 영향을 주지 않습니다. 스위치를 통한 독집적인 경로가 보장되므로 데이터 충돌도 발생하지 않으며(전이 중 통신 시), 문제 해결과 확장이 가장 용이합니다.
- 각 노드마다 케이블을 끌어와야 하므로 버스형보다 선이 많이 필요합니다. 가장 큰 문제는 중앙의 스위치 자체가 고장나면 전체 네트워크가 다운되는 단일 장애점(SPOF) 이 된다는 것입니다. 따라서 엔터프라이즈 환경에서는 코어 스위치를 이중화(Redundancy) 하는 설계가 필수적입니다.
망형(Mesh Topology)
모든 노드가 서로 1:1 전용 케이블(Point-to-Point)로 연결된 구조입니다. 주로 국가 간 통신망, 통신사 백본(WAN), 또는 원자로 제어 시스템처럼 ‘절대 끊어지면 안 되는’ 극도의 신뢰성이 요구되는 환경에서 사용합니다.
- 완벽한 우회 경로가 수없이 존재하므로, 여러 회선이 동시에 끊어지는 재난 상황에서도 통신이 생존하는 최고 수준의 결함 허용(Fault Tolerance) 을 가집니다. 데이터 트래픽도 분산되므로 병목 현상이 없습니다.
- 노드가 N개일 때 필요한 전체 케이블 수는 $\frac{N(N-1)}{2}$ 개, 즉 시간 복잡도로 치면 $O(N^2)$ 로 기하급수적으로 늘어납니다. 포트(Port) 수의 한계 때문에 현실적으로 모든 PC를 이렇게 연결하는 것은 불가능하며, 주요 라우터끼리만 연결하는 ‘부분 망형(Partial Mesh)’이 대안으로 사용됩니다.
트리형(Tree Topology/Hierarchical)
성형(Star) 네트워크를 여러 계층으로 연결하여 나무 가지처럼 확장한 구조입니다. 대기업 사옥이나 데이터 센터의 네트워크 아키텍처가 이 구조를 따릅니다.
코어 계층(뿌리) - 분배 계층(중간 가지) - 엑세스 계층(나뭇잎/PC)으로 나누어, 트래픽을 효율적으로 관리하고 네트워크를 무한히 확장할 수 있도록 설계된 아키텍처입니다.
물리적 성형(Star) + 논리적 버스형(Bus)
초기 네트워크 환경에서 중앙에 스위치가 아닌 더미 허브(Dummy Hub)를 두었던 시절입니다.
선은 1:1로 중앙(Star)으로 연결되어 있지만, 허브는 한 포트로 들어온 데이터를 나머지 모든 포트로 복사해서 뿌립니다. 즉, 선은 따로 쓰지만 통로는 하나인 버스처럼 동작하여 데이터 충돌(CSMA/CD 필요)이 발생 합니다.물리적 성형(Star) + 논리적 링형(Ring)
토큰 링 네트워크의 경우, 실제 케이블을 거대한 원형으로 빙빙 둘러 까는 것은 건물 구조상 너무 어렵습니다.
그래서 중앙에 MAU(Multistation Access Unit)라는 특수 장비를 두고 각 PC를 성형(Star)으로 연결합니다. 하지만 MAU 내부의 회로가 데이터를 1번 포트 → 2번 포트 → 3번 포트 순으로 강제로 순환시키기 때문에, 논리적으로는 완벽한 링(Ring) 으로 동작하게 됩니다.
논리적 네트워크 분리
보안과 트래픽 관리를 위해 여러 팀의 네트워크(브로드캐스트 도메인)를 분리해야 한다면, 과거에는 물리적인 L2 스위치를 2개 구매하여 각 팀의 PC를 따로 연결해야 했습니다. 만약 건물 내에 다른 층으로 팀원의 위치를 옮기면 옮긴 자리로 팀의 전용 스위치까지 랜선을 다시 끌어와야 하는 비효율이 발생합니다.
이러한 물리적 경직성(Inflexibility)과 비용 문제를 해결하기 위해, 소프트웨어적으로 네트워크의 경계를 긋는 기술들이 탄생했습니다.
VLAN(Virtual LAN)
VLAN 은 하나의 물리적 스위치를 논리적으로 여러 개의 독립된 스위치처럼 쪼개어 사용하는 기술입니다.
스위치에 들어온 데이터 프레임의 헤더에 ‘VLAN ID’라는 4바이트짜리 꼬리표(Tag) 를 붙입니다. 스위치는 오직 같은 태그를 가진 포트끼리만 데이터를 전달(Forwarding)하고 브로드캐스트를 제한합니다. (IEEE 802.1Q 표준)
- 직원이 건물 어디로 자리를 옮기든, 꽃혀있는 스위치 포트의 VLAN 설정만 소프트웨어적으로 변경해주면 됩니다. 불필요한 브로드캐스트 트래픽이 차단되어 네트워크 성능이 향상되고, 부서 간 통신이 원천 차단되므로 보안성이 극대화됩니다.
- 패킷에 4바이트 태그를 추가/제거하는 스위치의 연산 오버헤드가 발생하며, 서로 다른 VLAN 간에 통신이 필요할 경우 반드시 L3 장비(라우터)를 거쳐야 하는 병목(Inter-VLAN Routing)이 발생합니다.
식별자(VLAN ID)의 크기가 12비트(Bit)로 고정되어 있다는 한계가 있습니다.
즉, 하나의 물리적 인프라 위에서 최대 4,096개의 격리된 네트워크 밖에 만들지 못합니다.이를 해결하기 위해 등장한 것이 VxLAN(Virtual eXtensible LAN) 입니다.
기존의 L2 프레임 전체를 L4(UDP) 패킷 안에 다시 집어넣는(Mac-in-UDP 캡슐화) 기법을 사용하며, 24비트의 식별자를 사용합니다.
VPN(Virtual Private Network)
VLAN이 하나의 견물(LAN) 안에서 방을 쪼개는 기술이라면, VPN(가상 사설망) 은 멀리 떨어진 두 건물(LAN과 LAN)을 마치 하나의 긴 랜선으로 직접 이은 것처럼 논리적으로 묶어주는 기술입니다.
서울 본사와 부산 지사가 통신할 때, 비싸고 물리적인 전용선(Leased Line)을 까는 대신 누구나 쓰는 퍼블릭 인터넷(WAN) 망을 이용합니다. 대신 데이터 패킷 전체를 강력한 암호화 알고리즘(IPsec, OpenVPN 등)으로 포장하고, 캡슐화(Encapsulation) 하여 전송합니다. (터널링과 암호화)
- 전용선 구축 비용을 획기적으로 절감(Cost-effective)하면서도, 해커가 인터넷 구간에서 데이터를 탈취해도 암호화되어 있어 읽을 수 없는 기밀성(Confidentiality)을 보장합니다.
- 암호화 및 복호화 과정에서 라우터나 방화벽의 CPU 자원을 크게 소모하며, 통신 지연(Latency)이 발생합니다. 또한, 기반이 되는 공중 인터넷망의 상태(혼잡도 등)에 따라 통신 품질이 좌우됩니다.
VPC(Virtual Private Cloud)와 SDN(Software Defined Networking)
현대 퍼블릭 클라우드 시스템의 근간이 되는 기술입니다. 클라우드 벤더는 전 세계에 거대한 데이터센터(물리적 인프라)를 지어놓고, 수백만 명의 고객에게 서버 자원을 빌려줍니다. 이때 고객 A의 네트워크와 고객 B의 네트웤가 겹치거나 충돌하지 않도록 완벽하게 격리해야 합니다.
- VPC : 거대한 퍼블릭 클라우드 내에 ‘나만의 논리적인 프라이빗 데이터센터(가상 네트워크)’를 구축하는 것입니다. 고객은 웹 콘솔에서 클릭 몇 번만으로 나만의 IP 대역(Subnet)을 쪼개고, 가상의 라우터와 방화벽(Security Group)을 배치합니다.
- SDN : VPC가 가능한 이유는 라우터와 스위치의 ‘경로를 지정하는 뇌(Control Plane)’와 ‘데이터를 나르는 몸통(Data Plane)’을 분리했기 때문입니다. 클라우드의 거대한 중앙 컨트롤러가 소프트웨어적으로 각 고객의 가상 트래픽 경로를 즉각적으로 계산하여 밑단의 스위치들에게 지시를 내립니다.
- 물리적 인프라 종속성을 완전히 탈피하여 엄청난 확장성(Scalability)과 자동화를 얻었지만, 네트워크 아키텍처 자체가 하나의 거대한 분산 소프트웨어가 되었기 때문에 내부 로직(가상화 하이퍼바이저 층의 네트워크 스택)이 극도로 복잡해졌고 트러블슈팅 난이도가 급상승했습니다.
데이터 전송 방식
회선 교환(Circuit Switching)
과거 아날로그 전화망(PSTN) 시절에 널리 쓰이던 고전적인 데이터 전송 방식입니다.
통신을 시작하기 전에 발신자와 수신자 사이에 물리적 또는 논리적인 ‘전용 통신 경로(Circuit)’ 를 먼저 확립합니다. (Call Setup 과정)
- 경로가 한 번 뚫리면, 그 경로의 대역폭을 수신자와 발신자가 독점합니다. 데이터가 도착하는 순서가 완벽하게 보장되며, 전송 지연 시간도 일정하여(No Jitter) 실시간 음성/영상 통화에 매우 유리합니다.
- 통신 경로가 유지되는 동안 데이터 전송이 없어도 대역폭을 계속 점유하여 네트워크 자원이 낭비됩니다.
- 통신을 시작하기 전, 스위치들이 경로를 설정하는 데 긴 시간이 필요합니다. 경로 중간의 링크 하나라도 끊어지면 통신 전체가 단절되는 단일 장애점(SPOF)의 위험이 큽니다.
패킷 교환(Packet Switching)
회선 교환의 비효율성을 극복하기 위해 등장했습니다.
데이터를 통째로 보내지 않고, ‘패킷(Packet)’ 이라는 아주 작은 조각으로 잘게 나눕니다. 각 패킷의 헤더(Header)에는 목적지 주소(IP)와 일련번호가 적혀 있으며, 라우터들은 이 주소를 보고 그때그때 최적의 경로로 패킷을 던져줍니다. (Store-and-Forward)
- 통계적 다중화(Statistical Multiplexing) : 여러 사용자가 하나의 통신 링크를 공유합니다. 누군가 데이터를 보내지 않을 때는 다른 사람의 패킷이 그 링크를 사용하므로, 한정된 자원의 활용도를 극대화할 수 있습니다.
결함 허용(Fault Tolerance) : 중간 라우터나 링크가 파괴되어도, 라우터가 즉시 다른 우회 경로를 찾아 패킷을 보냅니다.
- 트래픽이 특정 라우터로 물리면, 패킷들이 라우터의 메모리(Buffer/Queue)에 쌓이면서 큐잉 지연(Queuing Delay) 이 발생합니다.
- 큐가 가득 차면 라우터는 어쩔 수 없이 새로 도착한 패킷을 버려버리는데, 이것이 바로 패킷 손실(Packet Loss) 입니다.
- 패킷들이 제각기 다른 경로로 가기 떄문에 도착 순서가 꼬일 수 있으며, 수신 측에서 이를 다시 조립해야 하는 오버헤드가 발생합니다. (이를 해결해 주는 것이 전송 계층의 TCP 프로토콜입니다.)
네트워크 지연(Delay)의 4가지 근본 원인
패킷 교환 방식(인터넷)에서 데이터를 보낼 때, 핑(Ping)이 튀고 지연(Latency)가 발생하는 4가지 원인이 있습니다.
전체 노드 지연 시간 ($d_{nodal}$) = $d_{proc} + d_{queue} + d_{trans} + d_{prop}$
- 처리 지연(Processing Delay/$d_{proc}$) : 라우터가 패킷의 헤더를 열어보고, 오류 비트를 검사하며, 라우팅 테이블을 뒤져 어디로 보낼지 결정하는 데 걸리는 시간(마이크로초 단위)입니다. (하드웨어 칩셋 성능에 의존)
- 큐잉 지연(Queuing Delay/$d_{queue}$) : 패킷이 출력 링크로 나가기 위해 라우터 내부의 버퍼(큐)에서 줄을 서서 기다리는 시간입니다. 트래픽 혼잡도에 따라 0에서 무한대까지 변동 폭이 가장 큽니다.
- 전송 지연(Transmission Delay/$d_{trans}$) : 패킷의 모든 비트(Bit)를 구리선이나 광케이블이라는 물리적 매체로 밀어 넣는 데 걸리는 시간입니다. 패킷 길이와 링크 대역폭(전송 속도)에 따라 결정되며, 패킷의 길이가 크거나 링크 대역폭이 낮을 때 딜레이가 증가합니다. (패킷 길이 $L$을 링크 대역폭 $R$로 나눈 $L/R$)
- 전파 지연(Propagation Delay/$d_{prop}$) : 선으로 밀어 넣어진 신호(전자기파, 빛)가 물리적 거리를 날아가 목적지 라우터에 도달하는 데 걸리는 시간입니다. 링크의 물리적 길이(거리)에 따라 결정됩니다.
통신 대상에 따른 전송 방식(Casting)
데이터를 ‘어떻게’ 보낼지 결졍했다면, 이제 ‘누구에게’ 보낼지를 정의해야합니다. IPv4 아키텍처를 기준으로 4가지 핵심 방식이 있습니다.
유니캐스트(Unicast/1:1)
가장 일반적인 형태이며, 특정 단일 목적지 주소(MAC 또는 IP)를 지정하여 데이터를 보냅니다. (웹 브라우징, 이메일 전송 등)
브로드캐스트(Broadcast/1:All)
동일한 네트워크(LAN) 내에 있는 ‘모든’ 노드에게 데이터를 무차별적으로 뿌립니다.
ARP(IP 주소로 MAC 주소를 찾을 때)나 DHCP(IP 주소를 자동 할당받을 때) 같은 필수 프로토콜에서 사용되지만, 무분별한 사용은 네트워크 전체의 성능을 마비시키는 브로드캐스트 스톰(Broadcast Storm)을 유발합니다. (IPv6에서는 성능 문제로 폐지되었습니다.)
멀티캐스트(Multicast/1:N)
데이터를 받기를 희망하는 ‘특정 그룹’에게만 데이터를 한 번에 보냅니다.
IPTV(실시간 방송), 사내 화상 회의 시스템 등 서버가 100명에게 똑같은 영상을 보낼 때 유니캐스트로 100번 보내는 대신, 멀티캐스트로 1번만 보내면 중간 라우터들이 알아서 복사본을 분배하므로 대역폭이 절약됩니다.
애니캐스트(Anycast/1:Nearest)
동일한 목적지 IP 주소를 가진 서버들이 전 세계에 여러 대 분산되어 있을 때, 네트워크 라우팅 상 ‘가장 가까운(최적의)’ 단 한 대의 서버에게만 데이터를 보내는 방식입니다.
글로벌 CDN(Content Delivery Network)이나 루트 DNS 서버에서, 사용자의 위치에 따라 가장 빠른 서버로 접속을 유도하여 지연 시간을 최소화하는 기술입니다.