2024. 6. 2. 21:08ㆍCS/네트워크
참고 자료 : 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초
개요 잡아보기
컴퓨터A는 IP주소가 93.184.216.34라는 컴퓨터B에 접속하려고 한다.
컴퓨터B는 IP주소가 아닌 어떤 이름을 입력하면 자신에게 접속할 수 있게끔 하고싶다. 예를 들어 www.example.com처럼 말이다.
어째든 서로 다른 호스트끼리 소통을 하려면 IP주소가 필요하기 때문에 컴퓨터B는 IP주소와 www.example.com을 매핑해 www.example.com을 입력하면 자신의 IP주소를 전달해주고 싶은 것이다. 이 데이터를 DNS Server에 저장한다.
그렇다면 이제 컴퓨터A가 컴퓨터B에 접속하려고 한다면, 컴퓨터 A는 DNS Server에게 www.example.com에 매핑된 IP주소가 있는지 물어본다. DNS Server는 매핑된 IP주소를 컴퓨터A에게 전달하고, 컴퓨터A는 컴퓨터B로 접속할 수 있다.
DNS
앞선 예시에서 www.example.com이라는 URL을 입력하면 다른 컴퓨터로 접속할 수 있다고 했다.
여기서 www에 해당하는 것이 Host Name이고, example.com에 해당하는 것이 Domain Name이다.
즉, URL은 Host Name과 Domain Name이 합쳐진 구조이다.
그렇다면 Domain Name Service는 무엇일까?
도메인을 입력하면 분산 구조형 데이터베이스를 통해 IP주소를 제공해주는 서비스이다.
- 분산 구조형 데이터 베이스
- 데이터베이스 시스템의 분산 구성
- 데이터의 영역별 구분 및 분산관리
- 트리 구조의 도메인 네임 체계를 구축
- "www.example.com"에서 www은 example이라는 도메인에 포함된 호스트 이름이고, example은 com이라는 도메인에 포함되어 있다.
- 생성된 도메인 네임은 언제나 유일하도록 네임 체계 구성
"www.naver.com"을 입력하면?
우선 구성요소들을 살펴보자. 접속을 시도하는 클라이언트와 접속하고자 하는 서버가 있다. 인터넷 망이 있고, ISP(ex. KT)와 ISP에 연결된 DNS Server가 있다.
나는 네이버에 접속하려고 한다. 그러기 위해서 우선 컴퓨터를 켜야한다. 컴퓨터를 키면 DHCP에 의해 내 컴퓨터의 IP주소가 설정되는데 부가적인 정보로 ISP에 연결된 DNS Server의 IP주소를 받아온다. 내 컴퓨터는 이제 DNS Server의 IP주소를 알고 있다.
이제 "www.naver.com"을 입력한다. 입력을 하면 내 컴퓨터는 먼저 Hosts File에 접근해 해당 도메인의 IP주소가 저장되어있는지 확인한다. 없다면 공유기를 통해 ISP의 DNS Server에 요청을 보낸다.
"혹시 'naver.com'이라는 도메인에 연결된 IP주소를 알고 있어?"
DNS Server는 DB를 뒤져가며 도메인에 연결된 IP주소를 찾고, 찾으면 IP주소와 유효기간을 전달해준다.
내 컴퓨터가 네이버의 IP주소를 이제 알게되었다. 이제는 네이버 서버에 접근할 수 있다.
"www.naver.com"에 연결된 IP정보를 멀리 떨어진 DNS Server에게 다시 물어보기에는 너무 힘이 든다.
DNS Cache에 유효기간 동안 해당 정보를 저장해두기로 한다. 그렇다면 DNS Server까지 유효기간까지는 갈 필요가 없다.
참고자료 : https://aws.amazon.com/ko/route53/what-is-dns/
위에서 설명한 과정을 조금 더 자세하게 다뤄보자. 위 그림의 example.com을 네이버에 접속한다고 가정하자.
- "www.naver.com"을 입력한다. (요청)
- ISP가 관리하는 DNS 해석기로 클라이언트의 요청이 라우팅된다.
- ISP의 DNS 해석기는 라우팅된 요청을 Root DNS에 전달한다.
- 앞전에 DNS는 트리구조를 갖추고 있다고 설명했다. Root DNS는 트리 구조의 가장 상단이다.
- ISP의 DNS 해석기가 .com 도메인 시리즈가 있는지 Root DNS에게 물어본다.
- Root DNS가 .com에 해당하는 DNS IP 목록을 ISP DNS Server에게 전달한다.
- ISP의 DNS는 전달받은 .com DNS IP 목록에 이번에는 .naver에 해당하는 도메인 시리즈가 있는지 물어본다.
- 5번 과정과 마찬가지로 ISP의 DNS는 .naver에 해당하는 DNS IP 목록을 전달받는다.
- 이번에는 ISP DNS Server가 7번에서 전달받은 목록에 www 호스트 이름이 있는지 확인하고 있다면 최종적으로 "www.naver.com"에 해당하는 IP주소를 전달받는다.
- 유효기간 동안 DNS Cache에 도메인의 IP주소를 캐싱한다.
- 웹 브라우저는 DNS 해석기로부터 얻은 IP주소로 "www.naver.com"에 대한 요청을 전송한다.
# 참고로 공유기가 DNS Server의 IP와 동일하면 DNS의 역할을 대신 수행할 수도 있다.
'CS > 네트워크' 카테고리의 다른 글
HTTP (0) | 2024.06.03 |
---|---|
URL과 URI (1) | 2024.06.03 |
L4 ▶ TCP 연결이라는 착각 (1) | 2024.06.02 |
L4 ▶ TCP Header / UDP Header (0) | 2024.06.02 |
L4 ▶ TCP 연결 / 종료 과정 (1) | 2024.06.02 |