CS

[네트워크] DNS, UDP

may_wonhui 2023. 11. 15. 23:37

DNS?

  • DNS(Domain Name System)은 인터넷에서 사용되는 주소 체계
  • DNS의 역할
    • 인터넷 리소스에 대한 사람이 이해하기 위한 도메인 이름을 컴퓨터가 이해할 수 있는 IP주소로 변환하는 역할
    • DNS를 통해 사용자가 웹 브라우징 및 네트워크 통신을 더 간편하게 할 수 있도록 함
    • 도메인 이름 해석
      • 사용자가 입력한 도메인(ex: www.naver.com) 을 해당 도메인에 연결된 IP주소로 해석. IP주소는 컴퓨터 및 서버를 식별하는 데 사용

 

 


DNS 작동 방식?

  • 사용자가 웹 브라우저에 도메인 이름을 입력
    => DNS가 해당 도메인 이름을 IP 주소로 변환하여 해당 웹 서버를 찾아갈 수 있게 함
    => 이를 통해 사용자는 복잡한 IP주소를 외우지 않고 웹 사이트 및 네트워크 서비스에 접근 가능

 

 

 


DNS 질의?

  • DNS 질의를 통해 인터넷 상에서 신속하고 효율적인 동작 제공
  • DNS 질의 종류
    • A 질의: 도메인 이름을 IPv4 주소로 변환하기 위해 사용
    • AAAA 질의: 도메인 이름을 IPv6 주소로 변환하기 위해 사용
    • CNAME(Canonical Name) 질의:
    • MX(Mail Exchange) 질의: 도메인 이름의 이메일 서버를 식별하기 위해 사용. 메일 라우팅에 사용
    • PTR(Pointer) 질의: IP 주소 → 도메인 이름으로 변환하기 위해 사용. 역방향 DNS 조회를 통해 IP주소의 소유자를 식별하는 데 도움
    • TXT(Text) 질의: 텍스트 정보를 검색하기 위해 사용.
    • SRV(Service) 질의: 서비스와 관련된 도메인 이름 정보 조회에 사용

 

 

 

 

 


DNS와 UDP?

  • DNS는 UDP(User Datagram Protocol)를 사용하여 IP주소 및 도메인 이름 정보를 요청하고 응답한다.
  • DNS 서버에게 IP 주소를 요청할 때, UDP를 사용하는 이유
    • 데이터 크기와 응답 시간: DNS 쿼리는 작고 간단한 구조, 작은 데이터 패킷을 전송하기 위해 TCP보다 UDP가 더 효율적.
    • 대역폭 효율성: UDP는 비연결 지향형(TCP와 같이 연결 설정 및 해제 과정 불필요)이기에 데이터 전송에 필요한 오버헤드 적음. 이는 대역폭 사용을 최소화하고 빠른 응답을 가능하게 함.
    • 병렬 처리 및 응답 시간: UDP를 사용하면 여러 DNS질의를 병렬로 처리할 수 있으며, 응답 시간을 최소화할 수 있음. UDP는 질의 전송 후 다른 질의를 기다릴 필요가 없어 빠른 질의 및 응답이 가능
    • UDP는 실시간 통신에 적합: DNS는 대부분 실시간 통신 시나리오에서 사용되며, DNS 쿼리는 실시간 응용 프로그램에서 지연 시간을 최소화해야 하는 경우에 적합

 

 

 


UDP?

  • UDP(User Datagram Protocol)는 데이터를 신속하게 전달하기 위한 프로토콜 중 하나
  • Transport Layer(전송 계층)의 프로토콜로, 데이터그램을 사용하여 통신
  • 데이터를 신뢰성 있게 전달하지 않고, 속도와 간결함에 중점
  • 비연결성(Connectionless)
    • 연결을 설정하거나 해제하지 않고 데이터를 전송하기에, 빠른 데이터 전송이 가능 (오버헤드가 적어 속도가 빠름)
    • TCP는 데이터를 전송할 때 연결을 설정하는 3-way handshake, 연결을 종료하는 4-way handshake 과정이 필요하다. UDP는 이 과정이 필요하지 않으므로 비교적 속도가 빠르다
    • 따라서 실시간 스트리밍 서비스 등 빠른 전송이 중요한 서비스에서 주로 사용된다.
    • 예를 들어 LIVE로 축구 경기를 본다고 했을 때, 정확한 전송보다 빠른 전송이 중요하다.
    • 데이터의 순서를 보장하지 않는다. -> 그러면 실시간 스트리밍 서비스는 뒤죽박죽 나오나?
      • 일정 시간 동안 데이터를 버퍼링하여 순서를 조절하거나 데이터의 손실을 처리하는 추가적인 기능을 구현한다. 
  • 신뢰성 부족
    • 데이터 손실, 중복 및 순서가 바뀔 수 있음.
    • 데이터가 손실되어도 파악은 할 수 있지만 재전송이나 오류 복구를 수행하지 않음
  • 간결한 헤더
    • UDP는 TCP보다 헤더가 작아서 오버헤드가 적음. 이로 인해 데이터 전송 시 부담이 적음
  • 데이터그램 사용
    • 데이터그램을 사용하여 데이터를 전송. 데이터그램마다 목적지 IP주소 및 포트 번호 포함
    • 데이터그램은 독립적인 메시지 또는 패킷을 의미함
  • 포트 번호 사용
    • 송신자와 수신자 간에 포트 번호를 사용하여 데이터를 전달.

 

 

 


UDP 체크섬?

  • UDP 체크섬은 데이터 무결성을 확인하기 위함.
  • UDP 패킷의 일부로 포함됨.
  • 데이터 손상 여부를 판단하는 데 도움.
  • UDP 체크섬을 통해 오류 감지는 가능하지만, 오류 복구는 수행하지 않음.
  • UDP가 오류를 감지하는 메커니즘
    • 클라이언트는 전송하려는 데이터의 체크섬 값을 계산하여, UDP 헤더의 체크섬 필드에 넣어 서버로 전송
    • 서버는 받은 데이터의 체크섬 값을 다시 계산하여, 전송 받은 체크섬 값과 계산한 체크섬 값이 일치하는지를 확인하여 오류 감지

 

 

 

 

 

+naver.com 을 입력했을 때 발생하는 일.

+dns 쿼리 (recursive ,,)

+dns가 반드시 udp를 쓰는 건 아님?

 

 

'CS' 카테고리의 다른 글

[네트워크] IP 프로토콜  (2) 2023.11.29
[네트워크] TCP  (2) 2023.11.22
[네트워크] HTTPS  (0) 2023.11.13
[네트워크] HTTP 프로토콜  (0) 2023.11.08
[네트워크] 컴퓨터 네트워크와 네트워크 레이어  (0) 2023.11.08