📚 네트워크 · 패킷 분석 › 01. TCP/IP 구조 이해 — 26편
이전 글: 25. Decapsulation · 다음 글: 27. Ethernet Frame
PDU(Protocol Data Unit) 는 한 계층의 프로토콜이 상대편 같은 계층과 주고받는 데이터 단위입니다. 각 계층의 PDU는 그 계층의 헤더(필요하면 트레일러)와 위 계층에서 받은 데이터로 이루어집니다.
이때 위 계층에서 내려받은 데이터를 그 계층 입장에서 SDU(Service Data Unit) 라고 부릅니다. 관계를 식으로 쓰면 다음과 같습니다.
N계층 PDU = N계층 헤더 (+ 트레일러) + N계층 SDU
N계층 SDU = (N+1)계층 PDU
즉 TCP 세그먼트(4계층 PDU)는 IP 입장에서 SDU가 되고, IP가 헤더를 붙이면 IP 패킷(3계층 PDU)이 됩니다. 이 과정 자체는 24. Encapsulation에서 다뤘으므로, 이 글은 각 단위의 이름과 쓰임에 집중합니다.
계층별 PDU 이름은 다음과 같이 부르는 것이 일반적입니다.
| 계층 (TCP/IP 기준) | PDU 이름 | 포함 범위 | 이 시리즈의 해당 글 |
|---|---|---|---|
| 응용 | 데이터 / 메시지 | 응용 프로토콜 데이터 (예: HTTP 요청) | — |
| 전송 (TCP) | 세그먼트(Segment) | TCP 헤더 + 데이터 | 29. TCP Segment |
| 전송 (UDP) | 데이터그램(Datagram) | UDP 헤더 + 데이터 | 30. UDP Datagram |
| 인터넷 | 패킷(Packet) | IP 헤더 + 세그먼트/데이터그램 | 28. MTU와 IP 단편화 — 큰 패킷이 쪼개질 때 |
| 네트워크 접근 | 프레임(Frame) | Ethernet 헤더 + 패킷 + FCS | 27. Ethernet Frame |
| 물리 | 비트(Bit) | 0과 1의 신호 | — |
응용 [ 데이터 ]
↓
전송 [TCP][ 데이터 ] = 세그먼트
↓
인터넷 [IP][TCP][ 데이터 ] = 패킷
↓
접근 [Eth][IP][TCP][ 데이터 ][FCS] = 프레임
↓
물리 0101 1100 ... = 비트
예시(값은 환경마다 다름): 3,000바이트 HTTP 응답을 MTU 1500 이더넷 구간으로 보낼 때 PDU의 수는 계층마다 다릅니다(TCP 옵션 없음 가정).
| 계층 | 단위 | 개수 | 크기 |
|---|---|---|---|
| 응용 | HTTP 응답 | 1 | 3,000바이트 |
| 전송 | TCP 세그먼트 | 3 | 데이터 1460 + 1460 + 80 |
| 인터넷 | IP 패킷 | 3 | 1500 + 1500 + 120 |
| 네트워크 접근 | 이더넷 프레임 | 3 | 1518 + 1518 + 138 (FCS 포함) |
실습 예시: Wireshark에서 이 관계를 확인하는 방법입니다. 캡처된 한 줄(프레임) 안에서 계층별 길이 필드를 읽고, 여러 세그먼트로 나뉜 HTTP 응답은 마지막 세그먼트의 상세 창에 "[N Reassembled TCP Segments]" 항목으로 묶여 표시됩니다(Wireshark의 TCP 재조립 설정이 켜져 있을 때).
# tshark로 같은 정보를 필드로 확인 (Rocky: wireshark-cli, Ubuntu: tshark 패키지)
tshark -r sample.pcapng -Y "tcp.len > 0" \
-T fields -e frame.number -e frame.len -e ip.len -e tcp.len
📷 [실습 화면 삽입 위치] Wireshark 상세 창에서 "Reassembled TCP Segments" 항목을 펼친 화면
관제에서 PDU 개념이 가장 실용적으로 쓰이는 곳은 "이 로그는 무엇을 한 건으로 세는가" 를 구분할 때입니다.
| 데이터 출처 | 한 건의 단위 | 주의할 점 |
|---|---|---|
| pcap (Wireshark) | 프레임 1개 | 같은 연결도 수백 줄이 될 수 있음 |
| 방화벽 세션 로그 | 연결(세션) 1개 | 패킷 수·바이트 수는 필드로 따로 기록 |
| NetFlow / IPFIX | 플로우 1개 | 긴 연결은 여러 플로우 레코드로 나뉠 수 있음 |
| IDS Alert | 탐지 조건을 만족한 패킷 또는 스트림 | 한 연결에서 여러 Alert가 날 수 있음 |
| 웹 access log | HTTP 요청 1개 | 한 TCP 연결에 여러 요청이 있을 수 있음 |
관제자가 확인할 질문
오탐 주의