일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Serialization
- stream
- C 언어 코딩 도장
- Selection Sorting
- C programming
- list 컬렉션
- 윤성우 열혈자료구조
- 이것이 자바다
- buffer
- coding test
- datastructure
- insertion sort
- 이스케이프 문자
- 윤성우의 열혈 자료구조
- 혼자 공부하는 C언어
- s
- JSON
- Graph
- R
- 메모리구조
- Stack
- 알기쉬운 알고리즘
- Algorithm
- Today
- Total
Engineering Note
[Network] DNS(Domain Name System) 본문
본 내용은 KOCW 이미정 교수님 강의를 보며 정리하며 작성한 내용입니다.
DNS(Domain Name System)
DNS
- 사용자는 특정 웹 사이트에 액세스 하길 원하거나, 브라우저를 통해 웹사이트를 요청할 때 브라우저의 주소창에 "www.yahoo.com"이라는 hostname or domain name이라고 불리는 값을 사용한다. 그런데 실제 컴퓨터에서 돌아가는 network application process는 이러한 주소가 아니라 32bit의 IP address를 사용하는데, 이때, 사용자가 입력한 Domain Name을 IP 주소로 변환하는 기능을 해주는 시스템을 Domain Name System이라고 한다.
그런데 DNS는 Network application이라면 전부다 필요로 하는 System인데 그렇다면, Network Layer에서 구현되는게 맞지만, 그러한 복잡성은 application layer(edg system)으로 위임하자는 Internet 철학때문에 application layer으로 구현되어 있다.
DNS service의 역할
- hostname to IP address translation
- host aliasing(alias name -> canonical name)
- introduct specific domain's mail server
- load distribution(replicated Web server: many IP addresses correspond to one name(alias name))
distributed DNS(not centralize DNS) => distributed, hierachical database
DNS는 분산형태로 매핑 정보를 관리하고 되어 있는데, 이유는 중앙 집중화 되어 있다면, 여러 host의 요청을 감당하기 위한 트래픽이 감당하기 어렵고, 하나의 문제가 생겼을 때 다른 서비스도 모두 사용할 수 없다는 문제가 생긴다. 그리고 여러 지역의 edge에 대한 요청을 감당하기 위해서라면 분산화 되어 있어야 효율적으로 감당할 수 있다.
중앙화 되어 있다면, 중앙화 서버 근처 link의 traffic volume이 증가하고, 또 먼거리에 있는 host의 요청은 많은 네트워크 홉을 거쳐서 리퀘스트를 보내야하는데, 리스폰스 타임이 길어진다.
매번 큰 데이터베이스를 유지하는 것도 쉬운 일이 아니다.
그리서 distributed이면서 hierachical database로 구성되어 있다.
DNS 계층 구조
- Root DNS Server
- Top Level DNS(com DNS Server, org DNSserver, edu DNS server)
- Authorittive DNS(yahoo.com DNS servers, amazon.com DNS servers, pbs.org DNS servers)
TLD, authoritative servers
TLD 서버는 당연히 각 도메인 마다 관리하는 기관이 있다. .com DNS TLD server를 관리하는 기관은 Network Solutions를 관리한다. 장비, 데이터베이스 관리 등을 담당한다. Educause for .edu TLD에서 담당한다. .kr은 한국인터넷정보센터에서 kr TLD 서버를 관리한다.
authoritative 서버는 각 기관이 ahthoritative DNS Server를 관리하고 있다. authoritative가 실제 hostname to IP mapping을 위한 데이터베이스가 있다. 기관내에 있는 hostname에 대한 IP에 대한 정보를 가지고 있다. TLD 서버는 어떤 도메인에 대한 authoritative에 대한 정보를 갖고 있다.
Local DNS server(default name server, proxy name server)
- DNS 계층구조에는 속하지 않는 DNS 서버
- residential ISP, company, university가 관리
- 브라우저의 요청에 대해 자신이 DNS 매핑 정보를 가지고 있다면 바로 응답을 해주고, 가지고 있지 않다면, DNS hierachy로 요청을 전달한다.
SMTP(Simple Mail Transfer Protocol), RFC 2821
- 이메일을 전송하는 데 사용되는 표준 프로토콜
- SMTP는 이메일 클라이언트(아웃룩, Gmail 등)에서 메일 서버로 이메일을 보내거나, 메일 서버에서 다른 메일 서버로 이메일을 전달할 때 사용됩니다. 반대로, 수신자가 메일 서버에 있는 이메일을 읽을 때는 POP3나 IMAP 같은 다른 프로토콜을 사용합니다.
- TCP를 사용해서 email message를 전송한다.
- port 번호는 25
SMTP Interaction
C:telnet <servername> 25
S:220 hamberger.edu
C:250 Hello crepes.
HTTP와 SMTP비교
- HTTP: pull, 클라이언트가 서버와 커넥션 후 서버로부터 데이터를 받아옴
- SMTP: push, 클라이언트가 서버와 커넥션 후 데이터를 보냄.
참고자료 : KOCW 네트워크(이미정)
'Computer Science > Network' 카테고리의 다른 글
[Network] Multipart라는 개념이 등장하게 된 배경 (1) | 2025.07.29 |
---|---|
[Network] Application Layer, e-mail application (1) | 2025.07.29 |
[Network] 네트워크에서 쓰이는 단위 (1) | 2025.07.29 |
[Network] Cashe(캐시)의 정의 그리고 웹캐시와 Proxy Server, Reverse Proxy 비교 (0) | 2025.07.29 |
[Network] WebSocket 프로토콜과 HTTP와 차이, 그리고 TCP/IP와의 관계 (0) | 2025.07.22 |