517. 일반 DNS 질의 - 포트 53 UDP

핵심 인사이트: 인터넷의 주소 변환기인 DNS는 무수히 많은 요청을 눈 깜짝할 새 처리해야 하므로, 복잡한 TCP 연결(3-Way Handshake)을 생략하고 빠르고 가벼운 UDP(포트 53)를 기본으로 사용한다.

Ⅰ. 일반 DNS 질의 (General DNS Query)의 특징

일반적으로 클라이언트(브라우저)가 도메인 이름(예: www.google.com)을 IP 주소로 변환해 달라고 네임서버에 요청할 때, DNS 프로토콜은 전송 계층으로 UDP 포트 53번을 사용합니다.

Ⅱ. 왜 DNS 질의는 UDP를 사용하는가?

  1. 속도와 낮은 오버헤드 (Speed & Low Overhead)
    • 도메인 이름 변환은 웹페이지를 띄우기 전에 수행되는 사전 작업입니다. 만약 TCP를 사용한다면 연결 설정(3-Way Handshake)에만 시간이 소요되어 전체 웹 접속 속도가 느려집니다.
    • UDP는 연결 과정 없이 즉시 패킷을 전송하므로 매우 빠릅니다.
  2. 단일 패킷 교환 (Single Packet)
    • 일반적인 DNS 질의(Query)와 응답(Response)은 그 크기가 매우 작아 512바이트(UDP 권장 최대 페이로드)를 넘지 않습니다. 따라서 패킷 1개로 요청과 응답이 충분히 완료됩니다.

Ⅲ. 패킷 흐름 비교 (UDP vs TCP)

[ DNS over UDP (일반 질의) ]
Client                               DNS Server
  │                                      │
  ├─── 1. DNS Query (UDP 53) ───────────▶│ (단 1번의 전송)
  │                                      │
  │◀── 2. DNS Response (UDP 53) ─────────┤ (단 1번의 수신)
  │                                      │

[ 만약 TCP를 쓴다면? ]
Client                               DNS Server
  ├─── 1. SYN ──────────────────────────▶│ \
  │◀── 2. SYN+ACK ───────────────────────┤  > 연결 설정만 3단계
  ├─── 3. ACK ──────────────────────────▶│ /
  ├─── 4. DNS Query (TCP) ──────────────▶│
  │◀── 5. DNS Response (TCP) ────────────┤
  ├─── 6. FIN ... (종료 과정) ──────────▶│

Ⅳ. TCP 포트 53을 사용하는 예외 상황

일반적인 질의는 UDP를 쓰지만, 다음의 경우에는 DNS가 TCP 포트 53으로 전환(Fallback)하여 작동합니다.

  1. 응답 데이터가 512 바이트를 초과하여 잘림(Truncation)이 발생한 경우 (예: DNSSEC 암호화 키 등 대량의 레코드 포함 시).
  2. 영역 전송 (Zone Transfer) 등 네임서버 간 대량의 동기화 작업을 수행할 때.

📢 섹션 요약 비유: 우편번호를 물어볼 때 우체국에 전화를 걸어 "거기 날씨 어때요? 우편번호 알려주세요, 네 감사합니다 끊을게요" (TCP) 하는 대신, 엽서 한 장에 "11번지 우편번호는?" 적어서 보내고 "06123입니다" 적힌 엽서를 달랑 한 장 돌려받는(UDP) 효율적인 방식입니다.