DNS
지금까지 배운 L1~L4는 Infrastructure라고 할 수 있고
Application 수준은 인터넷을 이루고 있는 다양한 Service들을 의미하는데
Application 수준에서 그러한 Service 중에서 Infrastructure에 해당하는 것들이 있는데
그중 대표적인 것이 DNS(Domain Name Service)이다
도메인 이름으로 IPv4 주소 결과를 알려주는 데이터베이스 서비스이고
분산 구조형 데이터베이스로 트리 구조의 도메인 네임 체계를 가지고 있다
ex. www.naver.com > 3.3.3.3
www.naver.com은 URL, URI라고 하며
www를 Host Name
naver.com을 Domain Name이라고 한다
위 그림처럼
프로세스에서 자신의 DNS에게 www.naver.com을 보내면
자신의 DNS에서 해당하는 IP주소를 보내주게 된다
그리고 그 이후 HTTPS 통신을 한다
외부의 DNS를 사용하는 경우는 자신의 DNS를 사용하는 것보다 느리지만
외부의 DNS에게서도 해당하는 IP주소를 받아올 수 있다
물론 위와 같은 모든 과정 사이에는 ISP(Internet Service Provider)가 사이에 있다
다시 돌아와서, 위와 같은 과정을 거쳐 IP주소를 받아온 것은 DNS Cache에 저장하고
유효기간과 함께 저장하며 유효기간이 끝나면 다시 물어보는 구조로 설계가 되어있다
이처럼 실제 DNS에게 항상 물어보는 것이 아니라
1_ 공유기가 DNS Forwarding을 통해서 알려줄 때도 있고
2_ hosts(host file)에 정보를 기술해 두고 DNS에게 묻지 않고 바로 확인 가능하며
3_ DNS Cache는 DNS에 한번만 질의하면 그 주소를 유효기간이 만료될 때까지 저장해 두어
정보가 있다면 DNS에게 묻지않고 바로 확인 가능하다
그리고 추가적으로,
예를 들어 www.naver.com을 처음으로 본인의 DNS Server에게 물어본다면
본인의 DNS Server는 전세계의 대략 13대 정도가 존재하는 Root DNS에게 요청을 하고
Root DNS는 그 산하의 com 관련 DNS IP 목록을 주고
본인의 DNS Server는 그 중에서 naver와 관련된 DNS Server를 특정하여
www로 된 주소를 요청하면 naver DNS Server들에서 해당 IP 주소를 준다
DNS 서버는 매우 중요해서 보안이 철저하게 구성이 되어있다
'CS > [널널한 개발자] 네트워크' 카테고리의 다른 글
5-3] 웹을 이루는 핵심기술 - 굵고 짧게 살펴보는 HTTP (0) | 2023.06.21 |
---|---|
5-2] 웹을 이루는 핵심기술 - HTML과 HTTP, URL과 URI (0) | 2023.06.21 |
4-5] L4 수준에서 외울 것들 - TCP '연결'이라는 착각 (0) | 2023.06.20 |
4-4] L4 수준에서 외울 것들 - TCP, UDP 헤더형식과 게임서버 특징 (0) | 2023.06.20 |
4-3] L4 수준에서 외울 것들 - TCP 연결 종료 및 상태 변화 (0) | 2023.06.20 |