DNS 응답은 Header를 검증하고 Question을 건너 Answer를 읽는다

A 레코드 질의의 바이트열은 세 구획으로 나뉘며, 파서는 길이와 압축 포인터를 따라 4바이트 IPv4 주소까지 이동합니다.

Header 12 bytes
ID
요청과 응답을 매칭
Flags / RCODE
질의·재귀·응답·오류 상태
Counts
Question·Answer 개수
Question query
QNAME
example.com → 7·example·3·com·00
QTYPE
A(1) · IPv4 요청
QCLASS
IN(1) · Internet
Answer response
NAME
압축 포인터일 수 있음
TYPE / CLASS
A · IN인지 확인
TTL / LEN
캐시 시간과 RDATA 길이
RDATA
길이 4면 IPv4 주소
01 Header 작성 ID·flags·QDCOUNT 1을 network byte order로 pack
02 Question 인코딩 QNAME 뒤에 Type A와 Class IN을 붙임
03 UDP 전송 resolver:53으로 보내고 응답 timeout을 둠
04 Answer 판독 ID·RCODE 확인 → Question skip → pointer 처리 → A/IN/LEN 4 수용