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