지난 글에서 살펴본 OSI 7계층 중 3계층(Network Layer)의 핵심 역할은 서로 다른 네트워크 간의 통신을 가능하게 하는 것입니다. 수많은 장치가 연결된 거대한 인터넷망에서 데이터를 목적지까지 정확하게 배달하기 위해서는 주소 체계와 길 찾기 기술이 필요합니다

IP 주소: 네트워크상의 고유 식별자

IP(Internet Protocol) 주소는 네트워크에 연결된 모든 장치에 부여되는 논리적인 주소입니다. 현재 가장 널리 쓰이는 IPv4와 그 한계를 극복하기 위해 등장한 IPv6가 공존하고 있습니다

구분 IPv4 IPv6
주소 길이 32비트 (4바이트) 128비트 (16바이트)
표시 방식 8비트씩 4부분 (예: 192.168.0.1) 16비트씩 8부분 (예: 2001:0db8:…)
주소 개수 약 43억 개 (고갈 문제 발생) 거의 무한대 (2^128개)
헤더 구조 가변 길이, 복잡한 처리 고정 길이, 빠른 처리

서브넷 마스크와 네트워크 분할

하나의 커다란 주소 대역을 효율적으로 관리하고 보안을 강화하기 위해 여러 개의 작은 네트워크로 쪼개는 과정을 서브네팅(Subnetting)이라고 합니다. 이때 사용하는 것이 서브넷 마스크(Subnet Mask)입니다

  • 네트워크 부분: 해당 장치가 속한 네트워크를 식별합니다
  • 호스트 부분: 해당 네트워크 내에서 개별 장치를 식별합니다

서브넷 마스크는 255.255.255.0처럼 표기하거나, /24(Prefix 표기법)와 같이 비트 수로 간단히 나타냅니다

라우팅: 최적의 경로 찾기

라우팅은 데이터 패킷이 출발지에서 목적지까지 가는 최적의 경로를 결정하는 프로세스입니다. 이 역할을 수행하는 장비가 바로 라우터(Router)입니다

라우터는 내부의 라우팅 테이블을 참조하여 패킷을 어디로 보낼지 결정합니다. 라우팅 테이블에는 다음과 같은 정보가 포함됩니다

  1. 목적지 네트워크: 패킷이 가고자 하는 주소 대역
  2. 넥스트 홉(Next Hop): 다음으로 거쳐야 할 라우터의 주소
  3. 인터페이스: 패킷을 내보낼 물리적 포트
  4. 메트릭(Metric): 경로의 우선순위를 결정하는 비용 값

데이터 전달 흐름

데이터가 여러 라우터를 거쳐 전달되는 과정은 다음과 같이 시각화할 수 있습니다

flowchart LR
    A["출발지 호스트"] --> R1["라우터 A"]
    R1 -->|"최적 경로 계산"| R2["라우터 B"]
    R2 --> R3["라우터 C"]
    R3 --> B["목적지 호스트"]

    subgraph Net1 [네트워크 1]
        A
    end
    subgraph Net2 [네트워크 2]
        R1
        R2
    end
    subgraph Net3 [네트워크 3]
        R3
        B
    end

    classDef primary fill:#2563eb,stroke:#1e40af,color:#ffffff
    classDef info fill:#0891b2,stroke:#0e7490,color:#ffffff
    
    class A,B primary
    class R1,R2,R3 info

라우터는 각 단계에서 패킷의 L3 헤더에 적힌 목적지 IP를 확인하고, 자신이 알고 있는 가장 적합한 경로로 패킷을 던집니다. 이를 홉 바이 홉(Hop-by-Hop) 라우팅이라고 부릅니다

핵심 차이: 공인 IP vs 사설 IP
인터넷상에서 유일하게 식별되는 주소가 공인 IP라면, 집이나 사무실 내부망에서만 사용하는 주소가 사설 IP입니다. 한정된 IPv4 주소를 아끼기 위해 내부에서는 사설 IP를 쓰고, 외부로 나갈 때 라우터가 공인 IP로 변환해주는 NAT(Network Address Translation) 기술이 필수적으로 사용됩니다

정리

  • IP 주소는 네트워크상의 장치를 식별하는 논리적 주소입니다
  • 서브넷 마스크는 주소를 네트워크 부분과 호스트 부분으로 나눕니다
  • 라우팅은 라우팅 테이블을 기반으로 패킷의 최적 경로를 설정하는 과정입니다

다음 글에서는 데이터의 신뢰성을 보장하는 전송 계층의 핵심, TCP 핸드셰이크와 흐름 제어에 대해 알아봅니다