IP Layer: 인터넷을 한 덩어리로 묶는 추상화

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:5000142.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 같은 상위 계층을 배울 때 훨씬 수월해진다.


© 2022 JeongHwan Yun.