지난 글에서 살펴본 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)입니다
라우터는 내부의 라우팅 테이블을 참조하여 패킷을 어디로 보낼지 결정합니다. 라우팅 테이블에는 다음과 같은 정보가 포함됩니다
- 목적지 네트워크: 패킷이 가고자 하는 주소 대역
- 넥스트 홉(Next Hop): 다음으로 거쳐야 할 라우터의 주소
- 인터페이스: 패킷을 내보낼 물리적 포트
- 메트릭(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 주소는 네트워크상의 장치를 식별하는 논리적 주소입니다
- 서브넷 마스크는 주소를 네트워크 부분과 호스트 부분으로 나눕니다
- 라우팅은 라우팅 테이블을 기반으로 패킷의 최적 경로를 설정하는 과정입니다
다음 글에서는 데이터의 신뢰성을 보장하는 전송 계층의 핵심, TCP 핸드셰이크와 흐름 제어에 대해 알아봅니다