핵심 인사이트 (3줄 요약)
- 본질: IPv4 헤더의 가장 첫 번째 줄(4바이트)은 라우터가 패킷을 받아들였을 때 가장 먼저 뜯어보는 주민등록증과 같은 기본 식별 정보 구역이다.
- 버전과 길이 (VER & IHL): 이 패킷이 IPv4인지 IPv6인지 구분하는
버전(4)과, 헤더의 길이가 몇 바이트인지(보통5× 4 = 20바이트) 알려주어 라우터가 정확한 위치에서 페이로드를 잘라낼 수 있게 해 준다.- 품질과 크기 (TOS & Total Length): 이 패킷이 음성 데이터라서 빨리 처리해야 하는지(QoS)를 명시하는
TOS(DSCP)필드와, 헤더를 포함한 패킷 전체가 몇 바이트 뚱뚱한지 알려주는전체 길이필드로 구성된다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: IPv4 헤더의 0비트부터 31비트까지 첫 4바이트(Row 1)를 차지하는 4개의 필드다.
-
필요성: 우체국 직원이 소포를 받으면 가장 먼저 확인하는 것은 "이게 국제 우편이냐 국내 우편이냐(버전)?", "송장 크기가 어디까지냐(IHL)?", "이거 취급 주의 특급 우편이냐(TOS)?", "총 무게가 몇 kg이냐(Total Length)?"다. 이 4가지 정보가 없으면 라우터는 그다음 정보(IP 주소 등)를 엉뚱한 위치에서 읽게 되어 패킷을 100% 버리게 된다.
-
💡 비유: 서류 결재판을 받았을 때, 결재판 맨 앞표지에 적힌 **"결재 문서의 양식 버전(V4), 문서의 총 페이지 수(Length), 그리고 [긴급!] 도장 유무(TOS)"**와 같습니다.
📢 섹션 요약 비유: 헤더 첫 줄은 이력서의 **"맨 위 인적 사항 칸"**입니다. 내 이름(IP)을 말하기 전에 내가 어느 시대(IPv4) 사람인지, 키와 몸무게(Total Length)는 몇인지를 밝히는 가장 기초적인 자기소개입니다.
Ⅱ. 4대 필드의 세부 동작 메커니즘 (Deep Dive)
1. Version (버전, 4 Bits)
- 라우터가 패킷을 까보고 4비트를 읽었을 때
0100 (10진수 4)이 나오면 IPv4로 처리하고,0110 (10진수 6)이 나오면 완전히 다른 헤더 규격을 가진 IPv6 패킷으로 간주하고 처리 모듈을 바꾼다.
2. IHL (Internet Header Length, 4 Bits)
- 4바이트 워드 단위: 헤더의 길이가 총 몇 바이트인지 라우터에게 알려주는 필드다. 그런데 공간이 고작 4비트밖에 없어 최대 숫자 15(
1111)까지만 적을 수 있다. - 해결책 (x 4 연산): 헤더 길이는 무조건 4바이트 단위로 증가한다. 그래서 이 필드에 **
5**가 적혀 있으면 라우터는 속으로 곱하기 4를 해서 **"아, 헤더는 20바이트구나!"**라고 계산한다. 옵션이 꽉 차서 60바이트 헤더면 이 값은15가 된다. (5 미만의 숫자가 오면 깨진 데이터로 간주해 버림).
3. TOS (Type of Service) / DSCP (8 Bits = 1 Byte)
- 라우터 큐(Queue)에 패킷 수천 개가 쌓여 있을 때, **"누구를 먼저 새치기시켜서 보내줄 것인가?"**를 결정하는 우선순위표다(QoS).
- 과거엔 우선순위 3비트(Precedence)로 썼으나, 현대 네트워크에서는 이를 DSCP(Differentiated Services Code Point, 6비트) 규격으로 바꾸어 사용한다.
- 실시간으로 끊기면 안 되는 VoIP(인터넷 전화기)나 화상 회의 패킷은 이 DSCP 값에 '특급 배송(EF)' 딱지를 붙여, 일반 웹서핑 패킷보다 무조건 라우터를 먼저 통과하게 대우해 준다.
4. Total Length (전체 길이, 16 Bits = 2 Bytes)
- 범위: 헤더(20B) + 실제 데이터(Payload)를 합친 전체 패킷의 사이즈를 '바이트 단위'로 적는다. 16비트이므로 $2^{16} - 1 = 65,535$ 바이트가 한 패킷이 가질 수 있는 최대 크기다.
- 활용: 이 값에서 아까 구한 헤더 길이(IHL × 4)를 빼면, 순수한 알맹이(TCP 페이로드)의 데이터 사이즈가 몇 바이트인지 정확히 알 수 있다. (예: 전체 1500 - 헤더 20 = 데이터 1480 바이트).
┌─────────────────────────────────────────────────────────────┐
│ 헤더 1행(Row 1) 뜯어보기 (와이어샤크 예시) │
├─────────────────────────────────────────────────────────────┤
│ │
│ 0100 │ 0101 │ 00000000 │ 0000 0001 0010 1100 (총 32비트) │
│ └┬─┘ └┬─┘ └───┬────┘ └──────────┬────────┘ │
│ │ │ │ │ │
│ VER IHL TOS Total Length │
│ (4) (5=20B) (0=일반택배) (300 바이트) │
│ │
│ ▶ 라우터 왈: "IPv4 패킷이고, 헤더는 20바이트 짜리네! │
│ 보통 패킷이니까 줄 서고, 전체 무게는 300바이트구나!" │
└─────────────────────────────────────────────────────────────┘
📢 섹션 요약 비유: 라우터는 택배 기사님입니다. 소포를 들자마자 **"버전 4(택배 규격), 20바이트(박스 크기), 300바이트(총 무게), DSCP(당일 특급 취급주의)"**를 1열에서 순식간에 스캔한 뒤, 분류 컨베이어 벨트에 패킷을 올려놓습니다.