Packet Capture

패킷 캡처는 바이트 오프셋으로 계층 경계를 보여준다

tcpdump나 Wireshark의 헥스 덤프에서는 같은 바이트 스트림을 계층별 범위로 해석한다. 클릭한 필드가 어떤 바이트에 해당하는지 보는 감각이 중요하다.

0x0000부터 Ethernet header가 시작된다
IPv4 IHL과 TCP Data Offset이 다음 경계를 결정한다
FCS는 대부분의 캡처에서 보이지 않는다
0x0000~0x000d

Ethernet

Dst MAC, Src MAC, EtherType
0x000e~0x0021

IPv4 header

Version/IHL, Total Length, TTL, Protocol, Source/Destination IP
0x0022~0x0035

TCP header

Port, Sequence, Acknowledgment, Flags, Window, Checksum
0x0036~

Application data

HTTP 요청 줄, headers, body 같은 애플리케이션 메시지
IHL

IP header 길이

IPv4 options가 있으면 20B보다 길어질 수 있다.
Data Offset

TCP header 길이

TCP options가 있으면 payload 시작 위치가 뒤로 밀린다.
FCS

캡처에 없을 수 있음

와이어에는 있지만 일반 캡처 화면에는 보통 빠진다.