IP Layer
IP (Internet Protocol) Layer는 TCP/IP 4계층 모델에서 네트워크 계층(Network Layer)에 해당하며, OSI 7계층으로 치면 3계층입니다. 가장 핵심적인 역할은 “패킷을 한 네트워크에서 다른 네트워크로 최적의 경로를 따라 전달”하는 것—즉 논리적 주소(=IP 주소) 기반의 라우팅입니다.
IP Layer란?
IP (Internet Protocol) Layer는 TCP/IP 4계층 모델에서 네트워크 계층(Network Layer)에 해당하며, OSI 7계층으로 치면 3계층임 가장 핵심적인 역할은 “패킷을 한 네트워크에서 다른 네트워크로 최적의 경로를 따라 전달”하는 것—즉 논리적 주소(=IP 주소) 기반의 라우팅
왜 필요한가?
| 문제 | IP Layer가 제공하는 해결책 |
|---|---|
| 물리적으로 떨어져 있는 수많은 LAN·WAN을 하나의 ‘인터넷’으로 묶어야 함 | 전 세계적으로 유일한 주소 체계(IPv4/IPv6)와 계층적 라우팅 |
| 이기종 네트워크(이더넷, Wi-Fi, 5G, 광망 …)간 데이터 전달 | 서로 다른 링크 계층을 통일된 패킷 형식(IP Datagram)으로 캡슐화 |
| 큰 데이터그램이 링크 MTU보다 클 때 | Fragmentation & Reassembly(IPv4만 IPv6은 PMTU 디스커버리 사용) |
| 전송 중 오류·혼잡·노드 고장 감지 | ICMP로 오류·제어 메시지 전달 |
핵심 기능 상세
논리적 주소 지정 (Addressing)
IPv4 : 32-bit, dotted-decimal(192.0.2.4)
IPv6 : 128-bit, hexadecimal 콜론 표기(2001:db8::1)
네트워크/호스트 부분을 사용해 계층적(aggregation) 라우팅을 가능케 함
패킷화 (Encapsulation)
- 상위 계층(TCP, UDP, ICMP 등) 세그먼트를 IP Header + Payload 형태로 감싼 뒤 하위 링크 계층(이더넷 프레임 등)에 다시 캡슐화
라우팅 (Routing & Forwarding)
Forwarding : 라우터가 목적지 주소를 보고 다음 홉(next-hop) 인터페이스로 패킷을 넘김
Routing : 라우터들이 RIP, OSPF, BGP 같은 라우팅 프로토콜로 테이블을 동적으로 구축
분할 및 재조합 (Fragmentation/Reassembly)
IPv4 헤더의 Identification, Flags, Fragment Offset 필드로 조각화 추적
IPv6은 기본적으로 조각화를 금지, 발신 호스트가 Path MTU Discovery로 크기를 조정
품질과 오류 제어
IPv4 Header Checksum으로 1-hop 오류 검출(IPv6에는 없음 : 링크 계층/전송 계층에 맡김)
ICMP를 통해 “Destination Unreachable”, “Time Exceeded” 등 메시지 반환
IPv4 헤더 구조 한눈에 보기
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver| IHL|DSCP|ECN| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TTL | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options (0 ~ 40 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ver/IHL : 버전(4)과 헤더 길이(32비트 word 수)
Total Length : 헤더 + 데이터 전체 길이
TTL : 홉 수 제한(루프 방지)
Protocol : 상위 프로토콜 번호(TCP = 6, UDP = 17…)
Options : Timestamp, Record Route 등 거의 사용 안함
IPv6는 고정 40바이트 헤더에 별도 확장 헤더 체인을 사용해 단순화/고속화함
흐름 예시 (간단 시나리오)
192.168.1.10:5000 → 142.250.78.14:443(TCP)
TCP 세그먼트가 IP Datagram으로 캡슐화
로컬 라우터가 목적지 네트워크(AS15169)를 향한 default route 선택
중간 BGP 라우터들이 TTL을 1씩 감소시키며 패킷 포워딩
Google 프런트엔드 서버에서 TCP ACK, HTTP/2 응답 → 역방향 경로로 전송
개발자 관점 : 유용한 CLI
| 작업 | IPv4 | IPv6 |
|---|---|---|
| 라우팅 테이블 확인 | ip route show | ip -6 route show |
| 패킷 흐름 추적 | traceroute 8.8.8.8 | traceroute -6 2001:4860:4860::8888 |
| ICMP Echo | ping -c 4 host | ping6 -c 4 host |
자주 헷갈리는 점 정리
| 오해 | 실제 |
|---|---|
| “IP = 인터넷 전체 프로토콜 스택” | IP는 한 계층일 뿐, 아래(링크)/위(전송)/위의 위(애플리케이션) 계층이 따로 있다 |
| “IP가 연결 지향” | IP는 비연결형, 비신뢰성∙Best-Effort. 신뢰성은 TCP가 따로 보장 |
| “IPv6는 단순히 주소 길이만 4배” | 헤더 단순화, Neighbour Discovery, 확장 헤더, IPsec 의무 지원 등 근본적 개선 포함 |
마무리
IP Layer는 인터넷을 ‘한 덩어리’로 보이게 해 주는 추상화입니다. 여기서 다룬 주소 지정, 라우팅, 조각화, ICMP 등의 기초가 잡혀 있으면 TCP, UDP, TLS 같은 상위 계층을 배울 때 훨씬 수월해짐