IPv4 구조

- ver : IP 버전 번호 ex) IPv4, IPv6
- head. len : 헤더의 길이, option에 따라 가변적
- type of service : 패킷 간의 서비스 방법→ buffer management
- ex) ‘우선 순위’일 경우 : 낮은 우선순위를 쫓아내고 자신이 들어간다.
- length : IP datagram의 전체 길이
- 16-bit identifier, flgs, fragment offset : IP 단편화(fragmentation)와 관련
- 16-bit identifier : 자른 fragment들이 패킷임을 알려주기 위해 ID값 사용
- fragment offset : 잘린 fragment의 순서를 나타냄
- time to live(TTL) : 최대 hop의 수
→ count를 지정하고 TTL이 0이 되면 ICMP가 알려줘 패킷을 제거함. - upper layer : 상위 계층 프로토콜 ex) TCP, UDP 등
- header checksum : 헤더에 대해서 checksum
- source/destination IP address : 출발지/목적지 IP주소
- options(if any) : IP 헤더를 확장시킴. ex) timestamp, record route taken
- payload data : data가 들어 있음. 일반적으로 TCP나 UDP segment
IPV6 구조

- ver : IP의 버전. ex) 4면 IPv4, 6이면 IPv6
- pri : 우선 순위를 이용해 패킷의 중요도를 구분
- flow label : flow는 프로세스간의 통신에서 흘러가는 과정. → flow마다 다른 서비스를 위해 flow 구분
- payload len : 데이터 길이
- next hdr : 추가적으로 필요한 정보(fragmentation을 보조하는 필드(offset, flag, 16-bit id))를 가리키게 함 → 추가적으로 헤더가 필요하면 next hdr를 통해 가리킴
- hop limit : IPv4의 TTL과 같은 역할. TTL에서 hot count 제한해 패킷이 네트워크를 지나가는 횟수를 제한한다.
특징
- no checksum : TTL이 hop을 거칠때마다 감소되어 헤더 정보가 계속 변화하기 때문에, 매번 체크썸을 다시 계산하게 되고 처리속도를 늦추는 원인이 된다. IPv6는 제거해 라우터의 부담 감소
- no fragmentation/ressembly : fragmentation을 보조하는 필드(offset, flag, 16bit id)가 삭제됨. 필요한 경우에만 별도의 확장 헤더를 통해 처리하도록 설계하여 전체적인 구조를 단순하고 빠르게 만듦.
- no options
IPv4 -> IPv6로 변환 방법: 터널링
터널링은 IPv6 데이터그램을 기존의 IPv4 네트워크를 통해 전달하기 위한 방법이다. 쉽게 말해, IPv6 데이터를 IPv4 패킷 안에 넣어 보내는 방식이다. 이를 ‘캡슐화’라고 부르는데, IPv6 패킷이 하나의 내용물이라면 IPv4 패킷은 그것을 감싸는 포장지 같은 역할을 한다.

먼저 IPv6 패킷이 생성되면, 이를 그대로 보내는 대신 IPv4 헤더를 앞에 붙인다. 이렇게 만들어진 패킷은 IPv4 네트워크를 따라 이동하게 되는데 이 구간을 ‘터널’이라고 부른다.
- IPv4 영역에 IPv6 데이터그램을 캡슐화하여 IPv4 라우팅 토폴로지 영역으로 이를 터널링하게 한다(IPv4 터널을 지남)
- IPv6가 IPv4망을 위해 header를 붙여 전송

IPv4 기반 라우터들은 내부에 IPv6 데이터가 들어 있는지 신경 쓰지 않고 IPv4 패킷으로 인식하여 전달한다. 그리고 터널의 끝에 도달하면 붙어 있던 IPv4 헤더를 제거하고 원래의 IPv6 패킷을 꺼내어 다시 IPv6 네트워크로 전달한다.
- IPv4망을 쓰는 구간을 따로 저장해놓고, 그부분에서 터널링을 통해 전송
- 터널이 끝나면 IPv4 헤더를 떼어놓고 전송한다
'CS' 카테고리의 다른 글
| [OS] 메모리 단편화 (0) | 2026.05.17 |
|---|---|
| [OS] 페이지 교체 정책 (0) | 2026.04.19 |
| [네트워크] 인터넷 검열과 망 중립성 (0) | 2026.03.15 |
| [네트워크] SNI와 암호화 기법 (0) | 2026.03.08 |
| [네트워크] 웹의 언어 HTTP와 HTTPS (1) | 2026.03.01 |