Skip to content

Split View: [컴퓨터 네트워크] 12. IP 프로토콜: 데이터그램과 주소 체계

|

[컴퓨터 네트워크] 12. IP 프로토콜: 데이터그램과 주소 체계

IP 프로토콜: 데이터그램과 주소 체계

IP(Internet Protocol)는 인터넷 네트워크 계층의 핵심 프로토콜입니다. 모든 인터넷 장비는 IP 프로토콜을 실행해야 하며, 이는 인터넷을 하나로 묶어주는 접착제 역할을 합니다.

이 글에서는 IPv4 데이터그램 형식, IP 단편화, 주소 체계(서브넷, CIDR, DHCP), NAT, ICMP, 그리고 IPv6의 등장과 전환 메커니즘을 살펴봅니다.


1. IPv4 데이터그램 형식

IPv4 데이터그램은 헤더와 데이터(페이로드)로 구성됩니다.

IPv4 데이터그램 헤더 (20바이트 기본)
=====================================

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|  IHL  |Type of Service|          Total Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Identification        |Flags|      Fragment Offset    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Time to Live |    Protocol   |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source IP Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination IP Address                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Options (가변 길이)                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

주요 헤더 필드

필드크기설명
Version4비트IP 버전 (IPv4 = 4)
IHL4비트헤더 길이 (32비트 워드 단위)
Total Length16비트데이터그램 전체 길이 (바이트)
TTL8비트남은 홉 수, 0이 되면 폐기
Protocol8비트상위 계층 프로토콜 (TCP=6, UDP=17)
Header Checksum16비트헤더 오류 검출

2. IP 단편화와 재조립

2.1 단편화가 필요한 이유

각 링크에는 MTU(Maximum Transmission Unit) 가 있어서 전송 가능한 최대 프레임 크기가 제한됩니다. IP 데이터그램이 MTU보다 크면 단편화(Fragmentation)해야 합니다.

IP 단편화 예시
================

원본 데이터그램: 4000바이트 (헤더 20 + 데이터 3980)
링크 MTU: 1500바이트

단편 1: [헤더 20] [데이터 1480] = 1500바이트
  ID=x, MF=1, Offset=0

단편 2: [헤더 20] [데이터 1480] = 1500바이트
  ID=x, MF=1, Offset=185 (1480/8)

단편 3: [헤더 20] [데이터 1020] = 1040바이트
  ID=x, MF=0, Offset=370 (2960/8)

2.2 재조립

IP 단편화의 재조립은 중간 라우터가 아닌 최종 목적지 호스트에서만 수행됩니다. 이는 단편들이 서로 다른 경로로 도착할 수 있기 때문입니다.

  • Identification: 같은 원본 데이터그램의 단편임을 식별
  • MF (More Fragments) 플래그: 뒤에 더 많은 단편이 있는지 표시
  • Fragment Offset: 원본 데이터에서의 위치 (8바이트 단위)

3. IPv4 주소 체계

3.1 IP 주소의 기본 구조

IPv4 주소는 32비트로 구성되며, 점으로 구분된 10진수(dotted decimal notation)로 표기합니다.

IP 주소 표기
=============

이진수:  11000000 10101000 00000001 00000001
10진수:  192.168.1.1

32비트 = 약 43억 개의 고유 주소

3.2 서브넷 (Subnet)

서브넷은 라우터를 거치지 않고 서로 직접 통신할 수 있는 장치들의 네트워크입니다.

서브넷 예시
============

          223.1.1.0/24 서브넷
         +-----------------------+
         |                       |
   223.1.1.1  223.1.1.2  223.1.1.3
    [호스트]   [호스트]    [라우터]
                              |
                         223.1.2.9
                              |
         +-----------------------+
         |                       |
   223.1.2.1  223.1.2.2  223.1.2.3
         223.1.2.0/24 서브넷

3.3 CIDR (Classless Inter-Domain Routing)

CIDR는 클래스 기반 주소 체계의 비효율성을 해결합니다. 서브넷 마스크의 길이를 자유롭게 지정하여 주소 공간을 효율적으로 활용합니다.

CIDR 표기법
=============

200.23.16.0/20

주소:       200.23.16.0
서브넷 부분: 200.23.0001|0000.00000000
                       ^20비트

이 서브넷에 포함된 호스트 범위:
  200.23.16.0 ~ 200.23.31.255
  총 2^12 = 4096개 주소

3.4 클래스 기반 주소 (역사적 참고)

CIDR 이전에는 A, B, C 클래스로 주소를 분류했습니다.

IP 주소 클래스
================

클래스 A: 0xxxxxxx | 24비트 호스트   (2^24 = 약 1600만 호스트)
클래스 B: 10xxxxxx xxxxxxxx | 16비트  (2^16 = 65,536 호스트)
클래스 C: 110xxxxx xxxxxxxx xxxxxxxx | 8비트 (2^8 = 256 호스트)

문제점: 클래스 B는 너무 크고, 클래스 C는 너무 작음
  --> 주소 공간 낭비 --> CIDR 도입

4. DHCP (Dynamic Host Configuration Protocol)

4.1 DHCP의 역할

DHCP는 호스트가 네트워크에 접속할 때 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소를 자동으로 할당해주는 프로토콜입니다.

4.2 DHCP 동작 과정

DHCP는 4단계 과정(DORA)을 통해 동작합니다.

DHCP 4단계 과정 (DORA)
========================

클라이언트                           DHCP 서버
    |                                    |
    |--- 1. DHCP Discover (브로드캐스트) -->|
    |    src: 0.0.0.0                    |
    |    dst: 255.255.255.255            |
    |                                    |
    |<-- 2. DHCP Offer ------------------|
    |    제안 IP: 192.168.1.100          |
    |    임대 시간: 3600초               |
    |                                    |
    |--- 3. DHCP Request (브로드캐스트) ->|
    |    요청 IP: 192.168.1.100          |
    |                                    |
    |<-- 4. DHCP ACK -------------------|
    |    확정 IP: 192.168.1.100          |
    |    서브넷: 255.255.255.0           |
    |    게이트웨이: 192.168.1.1         |
    |    DNS: 8.8.8.8                    |
    |                                    |

5. NAT (Network Address Translation)

5.1 NAT의 필요성

IPv4 주소 고갈 문제를 해결하기 위해 NAT가 도입되었습니다. NAT를 사용하면 하나의 공인 IP 주소로 여러 내부 호스트가 인터넷에 접속할 수 있습니다.

5.2 NAT 동작 원리

NAT 동작
=========

내부 네트워크 (사설 IP)           NAT 라우터           외부 인터넷
10.0.0.0/24                      138.76.29.7

[10.0.0.1:3345] ---->  [138.76.29.7:5001] ----> 웹서버
[10.0.0.2:2890] ---->  [138.76.29.7:5002] ----> 웹서버
[10.0.0.3:1789] ---->  [138.76.29.7:5003] ----> 웹서버

NAT 변환 테이블:
+-------------------+----------------------+
| WAN 측            | LAN 측               |
+-------------------+----------------------+
| 138.76.29.7:5001  | 10.0.0.1:3345        |
| 138.76.29.7:5002  | 10.0.0.2:2890        |
| 138.76.29.7:5003  | 10.0.0.3:1789        |
+-------------------+----------------------+

5.3 NAT의 논란

NAT에 대해서는 여러 비판이 있습니다.

  • 포트 번호는 프로세스 식별 용도인데 호스트 식별에 사용하는 것은 계층 위반
  • 종단 간(end-to-end) 원칙을 위배
  • 서버 운영 시 포트 포워딩 설정이 필요
  • P2P 애플리케이션에서 연결 문제 발생

6. ICMP (Internet Control Message Protocol)

6.1 ICMP의 역할

ICMP는 네트워크 장비 간에 오류 보고와 정보 교환을 위한 프로토콜입니다. IP 데이터그램의 페이로드로 캡슐화되어 전송됩니다.

6.2 주요 ICMP 메시지

ICMP 메시지 유형
=================

타입  코드  설명
----  ----  ----------------------------------
  0    0    Echo Reply (ping 응답)
  3    0    Destination Network Unreachable
  3    1    Destination Host Unreachable
  3    3    Destination Port Unreachable
  4    0    Source Quench (혼잡 제어)
  8    0    Echo Request (ping 요청)
 11    0    TTL Expired (traceroute에서 사용)
 12    0    IP Header Bad

6.3 활용 예시: Traceroute

Traceroute는 TTL 값을 1부터 순차적으로 증가시키면서 UDP 패킷을 전송합니다. 각 라우터에서 TTL이 0이 되면 ICMP TTL Expired 메시지를 반환하여 경로상의 라우터를 파악합니다.

Traceroute 동작
=================

호스트 --> TTL=1 --> [R1] --> ICMP TTL Expired 반환
호스트 --> TTL=2 --> [R1] --> [R2] --> ICMP TTL Expired 반환
호스트 --> TTL=3 --> [R1] --> [R2] --> [R3] --> ICMP TTL Expired 반환
호스트 --> TTL=4 --> [R1] --> [R2] --> [R3] --> [목적지] --> ICMP Port Unreachable

7. IPv6

7.1 IPv6의 등장 배경

IPv4 주소 공간(약 43억)이 고갈되면서 IPv6가 개발되었습니다. IPv6는 128비트 주소를 사용하여 사실상 무한한 주소 공간을 제공합니다.

7.2 IPv6 데이터그램 형식

IPv6 헤더 (40바이트 고정)
==========================

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class |           Flow Label                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        |  Next Header  |   Hop Limit   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                       Source Address                           |
+                       (128 bits)                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                    Destination Address                         |
+                       (128 bits)                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

7.3 IPv4 대비 주요 변화

IPv4 vs IPv6 비교
==================

항목              | IPv4              | IPv6
------------------+-------------------+--------------------
주소 크기         | 32비트            | 128비트
헤더 크기         | 가변 (20~60바이트) | 고정 40바이트
단편화            | 라우터에서 가능    | 출발지에서만 가능
체크섬            | 있음              | 없음 (상위 계층에 위임)
옵션              | 헤더에 포함        | 확장 헤더로 분리
브로드캐스트       | 지원              | 멀티캐스트로 대체

7.4 IPv4에서 IPv6로의 전환

전 세계 모든 장비를 한꺼번에 교체할 수 없기 때문에 점진적인 전환 방법이 사용됩니다.

터널링 (Tunneling): IPv6 데이터그램을 IPv4 데이터그램의 페이로드로 캡슐화하여, IPv4 네트워크를 통과할 수 있게 합니다.

터널링 동작
=============

[IPv6] --> [IPv6/IPv4] ===== IPv4 터널 ===== [IPv4/IPv6] --> [IPv6]
 호스트A    터널 입구      (IPv6를 IPv4에        터널 출구     호스트B
                           캡슐화하여 전송)

원래 패킷: [IPv6 헤더][데이터]
터널 내부: [IPv4 헤더][IPv6 헤더][데이터]
  IPv4의 Protocol 필드 = 41 (IPv6)

8. 정리

개념핵심 내용
IPv4 헤더20바이트 기본, TTL/Protocol/Checksum 포함
단편화MTU 초과 시 분할, 목적지에서만 재조립
CIDR유연한 서브넷 마스크로 주소 효율성 향상
DHCPIP 주소 자동 할당 (Discover-Offer-Request-ACK)
NAT사설 IP를 공인 IP로 변환, 포트 번호로 매핑
ICMP네트워크 오류 보고 및 진단 (ping, traceroute)
IPv6128비트 주소, 고정 40바이트 헤더, 단편화 제거

다음 글에서는 라우터가 최적 경로를 찾기 위한 라우팅 알고리즘(Link-State, Distance-Vector)을 살펴보겠습니다.


참고 자료

  • James F. Kurose, Keith W. Ross, "Computer Networking: A Top-Down Approach", 6th Edition, Chapter 4
  • RFC 791 - Internet Protocol (IPv4)
  • RFC 2460 - Internet Protocol Version 6 (IPv6)
  • RFC 2131 - Dynamic Host Configuration Protocol

[Computer Networking] 12. IP Protocol: Datagrams and Addressing

IP Protocol: Datagrams and Addressing

IP (Internet Protocol) is the core protocol of the Internet network layer. All Internet devices must run the IP protocol, which serves as the glue that holds the Internet together.

In this post, we examine the IPv4 datagram format, IP fragmentation, addressing systems (subnets, CIDR, DHCP), NAT, ICMP, and the emergence of IPv6 along with its transition mechanisms.


1. IPv4 Datagram Format

An IPv4 datagram consists of a header and data (payload).

IPv4 Datagram Header (20 bytes base)
======================================

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|  IHL  |Type of Service|          Total Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Identification        |Flags|      Fragment Offset    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Time to Live |    Protocol   |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source IP Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination IP Address                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Options (variable length)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Key Header Fields

FieldSizeDescription
Version4 bitsIP version (IPv4 = 4)
IHL4 bitsHeader length (in 32-bit words)
Total Length16 bitsTotal datagram length (bytes)
TTL8 bitsRemaining hops, discarded when 0
Protocol8 bitsUpper layer protocol (TCP=6, UDP=17)
Header Checksum16 bitsHeader error detection

2. IP Fragmentation and Reassembly

2.1 Why Fragmentation Is Needed

Each link has an MTU (Maximum Transmission Unit) that limits the maximum frame size that can be transmitted. If an IP datagram exceeds the MTU, it must be fragmented.

IP Fragmentation Example
==========================

Original datagram: 4000 bytes (header 20 + data 3980)
Link MTU: 1500 bytes

Fragment 1: [Header 20] [Data 1480] = 1500 bytes
  ID=x, MF=1, Offset=0

Fragment 2: [Header 20] [Data 1480] = 1500 bytes
  ID=x, MF=1, Offset=185 (1480/8)

Fragment 3: [Header 20] [Data 1020] = 1040 bytes
  ID=x, MF=0, Offset=370 (2960/8)

2.2 Reassembly

IP fragment reassembly is performed only at the final destination host, not at intermediate routers. This is because fragments may arrive via different routes.

  • Identification: Identifies fragments belonging to the same original datagram
  • MF (More Fragments) flag: Indicates whether more fragments follow
  • Fragment Offset: Position in the original data (in 8-byte units)

3. IPv4 Addressing

3.1 Basic Structure of IP Addresses

An IPv4 address is 32 bits and expressed in dotted decimal notation.

IP Address Notation
====================

Binary:   11000000 10101000 00000001 00000001
Decimal:  192.168.1.1

32 bits = approximately 4.3 billion unique addresses

3.2 Subnets

A subnet is a network of devices that can communicate directly with each other without going through a router.

Subnet Example
================

          223.1.1.0/24 Subnet
         +-----------------------+
         |                       |
   223.1.1.1  223.1.1.2  223.1.1.3
    [Host]     [Host]     [Router]
                              |
                         223.1.2.9
                              |
         +-----------------------+
         |                       |
   223.1.2.1  223.1.2.2  223.1.2.3
         223.1.2.0/24 Subnet

3.3 CIDR (Classless Inter-Domain Routing)

CIDR addresses the inefficiency of class-based addressing. It allows flexible subnet mask lengths for efficient use of address space.

CIDR Notation
===============

200.23.16.0/20

Address:      200.23.16.0
Subnet part:  200.23.0001|0000.00000000
                         ^20 bits

Host range in this subnet:
  200.23.16.0 ~ 200.23.31.255
  Total 2^12 = 4096 addresses

3.4 Class-Based Addressing (Historical Reference)

Before CIDR, addresses were classified into Classes A, B, and C.

IP Address Classes
====================

Class A: 0xxxxxxx | 24-bit host   (2^24 = ~16 million hosts)
Class B: 10xxxxxx xxxxxxxx | 16-bit  (2^16 = 65,536 hosts)
Class C: 110xxxxx xxxxxxxx xxxxxxxx | 8-bit (2^8 = 256 hosts)

Problem: Class B is too large, Class C is too small
  --> Address space waste --> CIDR introduced

4. DHCP (Dynamic Host Configuration Protocol)

4.1 Role of DHCP

DHCP automatically assigns an IP address, subnet mask, default gateway, and DNS server address to a host when it connects to a network.

4.2 DHCP Operation

DHCP operates through a 4-step process (DORA).

DHCP 4-Step Process (DORA)
============================

Client                              DHCP Server
    |                                    |
    |--- 1. DHCP Discover (broadcast) -->|
    |    src: 0.0.0.0                    |
    |    dst: 255.255.255.255            |
    |                                    |
    |<-- 2. DHCP Offer ------------------|
    |    Offered IP: 192.168.1.100       |
    |    Lease time: 3600 sec            |
    |                                    |
    |--- 3. DHCP Request (broadcast) --->|
    |    Requested IP: 192.168.1.100     |
    |                                    |
    |<-- 4. DHCP ACK -------------------|
    |    Confirmed IP: 192.168.1.100     |
    |    Subnet: 255.255.255.0           |
    |    Gateway: 192.168.1.1            |
    |    DNS: 8.8.8.8                    |
    |                                    |

5. NAT (Network Address Translation)

5.1 Need for NAT

NAT was introduced to address IPv4 address exhaustion. With NAT, multiple internal hosts can access the Internet using a single public IP address.

5.2 How NAT Works

NAT Operation
===============

Internal Network (Private IP)      NAT Router        External Internet
10.0.0.0/24                        138.76.29.7

[10.0.0.1:3345] ---->  [138.76.29.7:5001] ----> Web Server
[10.0.0.2:2890] ---->  [138.76.29.7:5002] ----> Web Server
[10.0.0.3:1789] ---->  [138.76.29.7:5003] ----> Web Server

NAT Translation Table:
+-------------------+----------------------+
| WAN Side          | LAN Side             |
+-------------------+----------------------+
| 138.76.29.7:5001  | 10.0.0.1:3345        |
| 138.76.29.7:5002  | 10.0.0.2:2890        |
| 138.76.29.7:5003  | 10.0.0.3:1789        |
+-------------------+----------------------+

5.3 Controversies Around NAT

There are several criticisms of NAT:

  • Port numbers are meant for process identification but are used for host identification, violating layer boundaries
  • Violates the end-to-end principle
  • Requires port forwarding configuration for running servers
  • Causes connection issues in P2P applications

6. ICMP (Internet Control Message Protocol)

6.1 Role of ICMP

ICMP is a protocol for error reporting and information exchange between network devices. It is encapsulated as the payload of an IP datagram.

6.2 Key ICMP Messages

ICMP Message Types
====================

Type  Code  Description
----  ----  ----------------------------------
  0    0    Echo Reply (ping response)
  3    0    Destination Network Unreachable
  3    1    Destination Host Unreachable
  3    3    Destination Port Unreachable
  4    0    Source Quench (congestion control)
  8    0    Echo Request (ping request)
 11    0    TTL Expired (used by traceroute)
 12    0    IP Header Bad

6.3 Usage Example: Traceroute

Traceroute sends UDP packets with TTL values incrementing from 1. When TTL reaches 0 at each router, an ICMP TTL Expired message is returned, revealing the routers along the path.

Traceroute Operation
=====================

Host --> TTL=1 --> [R1] --> ICMP TTL Expired returned
Host --> TTL=2 --> [R1] --> [R2] --> ICMP TTL Expired returned
Host --> TTL=3 --> [R1] --> [R2] --> [R3] --> ICMP TTL Expired returned
Host --> TTL=4 --> [R1] --> [R2] --> [R3] --> [Destination] --> ICMP Port Unreachable

7. IPv6

7.1 Background of IPv6

As IPv4 address space (approximately 4.3 billion) was exhausted, IPv6 was developed. IPv6 uses 128-bit addresses, providing a virtually unlimited address space.

7.2 IPv6 Datagram Format

IPv6 Header (40 bytes fixed)
==============================

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class |           Flow Label                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        |  Next Header  |   Hop Limit   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                       Source Address                           |
+                       (128 bits)                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                    Destination Address                         |
+                       (128 bits)                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

7.3 Key Changes from IPv4

IPv4 vs IPv6 Comparison
========================

Item               | IPv4              | IPv6
-------------------+-------------------+--------------------
Address Size       | 32 bits           | 128 bits
Header Size        | Variable (20~60B) | Fixed 40 bytes
Fragmentation      | Possible at routers| Source only
Checksum           | Present           | None (delegated to upper layers)
Options            | In header         | Separated to extension headers
Broadcast          | Supported         | Replaced by multicast

7.4 Transition from IPv4 to IPv6

Since all devices worldwide cannot be replaced at once, gradual transition methods are used.

Tunneling: IPv6 datagrams are encapsulated as the payload of IPv4 datagrams, allowing them to traverse IPv4 networks.

Tunneling Operation
=====================

[IPv6] --> [IPv6/IPv4] ===== IPv4 Tunnel ===== [IPv4/IPv6] --> [IPv6]
 Host A    Tunnel Entry     (IPv6 encapsulated    Tunnel Exit    Host B
                             in IPv4 for transit)

Original packet: [IPv6 Header][Data]
Inside tunnel:   [IPv4 Header][IPv6 Header][Data]
  IPv4 Protocol field = 41 (IPv6)

8. Summary

ConceptKey Points
IPv4 Header20 bytes base, includes TTL/Protocol/Checksum
FragmentationSplit when exceeding MTU, reassembled at destination only
CIDRFlexible subnet masks for improved address efficiency
DHCPAutomatic IP assignment (Discover-Offer-Request-ACK)
NATTranslates private to public IP, mapped by port number
ICMPNetwork error reporting and diagnostics (ping, traceroute)
IPv6128-bit addresses, fixed 40-byte header, no fragmentation

In the next post, we will examine the routing algorithms (Link-State, Distance-Vector) that routers use to find optimal paths.


References

  • James F. Kurose, Keith W. Ross, "Computer Networking: A Top-Down Approach", 6th Edition, Chapter 4
  • RFC 791 - Internet Protocol (IPv4)
  • RFC 2460 - Internet Protocol Version 6 (IPv6)
  • RFC 2131 - Dynamic Host Configuration Protocol