DNS (Domain Name Service / Server)
DNS 역시 응용 계층의 대표적인 프로토콜이다.
네트워크 통신을 위해 IP 주소와 포트 번호를 사용하는데,
IP 주소의 형태는 172.158.192.123 로 총 2^32 개의 주소를 갖을 수 있다. (IPV4 기준)
IP는 사람이 이해하기 어려운 형태이기 때문에 나온 것이 Domain Name 이다.
DNS 는 전화번호부 처럼 Domain Name 을 IP 로 매핑 해준다.
DNS 는 전세계 사람들이 사용해야 하기 때문에 성능과 안전을 위해 서비스를 분산 시켜놓고 계층화 시켜 놓았다.
DNS 계층 구조
- Root DNS Server : 제일 상위에 존재하며 내용을 카피한 13군데 존재한다.
- Top-Level Domain (TLD) Server : [.com .org .net .edu] 같은 상위 도메인을 관리한다.
- Authorized DNS Server : 각 기관이 보유하는 도메인에 속하는 host 매핑에 대한 책임을 관리한다.
- Local DNS Server : 캐시 역할을 한다. 각 네트워크 기관들이 내부의 요청에 대한 호스트와 IP 를 캐싱하고 있다.
- 내부 사용자들은 Local DNS Server 에서 먼저 매핑되는 지 확인하고 밖으로 나간다.
DNS 동작 방식
1. 우선 Local DNS Server 에 "www.today.edu" 가 있는 지 확인하고 있다면 해당 IP 를 반환하고 없다면
2. Root DNS Server 에 요청을 보내고 응답으로 .edu TLD 가 아니까 거기가서 물어보라고 .edu TLD의 IP 주소를 준다.
3. edu TLD Server 에 요청을 보내면 응답으로 해당 IP 가 있는 Authorized DNS Server 의 IP 를 알려준다.
4. Authorized DNS Server 에 요청을 보내면 해당 IP 를 준다.
DNS Record 구조
DNS 의 필드는 (name, value, type, ttl) 4가지고 구성되어 있다. ttl은 expired 관련된 속성이다.
type에는 중요한 중요한 값으로 A , NS 가 있는데,
type = A 일 경우 name 필드에는 host name , value 필드에는 IP 주소가 저장된다.
type = B 일 경우 name 필드에는 domain, value 필드에는 해당 domain을 관리하는 host의 이름이 저장된다.
Root DNS Server
NAME | VALUE | TYPE | TTL |
.edu | dns.edu | NS | ~~ |
dns.edu | 2.2.2.2 | A | ~~ |
위와 같이 저장된다.
".edu 도메인 정보는 dns.edu 에 있어, dns.edu 의 IP 는 2.2.2.2 야" 라는 NS, A 2개의 정보를 응답한다.
만약 응답이 A 만 왔다면 해당 IP 가 원하는 IP이다.
HTTP 는 전송 계층에서 TCP 를 사용하지만 DNS 는 전송 계층으로 UDP 를 사용한다.
UDP 는 연결 과정이 없기 때문에 빠르지만 데이터 유실에 대한 보완이 되어 있지 않다.
DNS 에서 전송되는 메시지는 TCP 에 비해 크기가 작아 유실될 확률도 적고 유실되더라도 데미지가 적다.
또한 DNS 는 HTTP 통신을 위한 준비 작업이기 때문에 여기에 많이 힘을 뺄 필요가 없다.
'CS > 네트워크' 카테고리의 다른 글
Socket 간단 정리 (1) | 2024.06.01 |
---|---|
[응용 계층] HTTP 와 Web Cache (Proxy Server) (0) | 2024.05.30 |
OSI 7계층과 TCP/IP 4계층 간단 요약 (0) | 2024.05.30 |