네트워크에서 통신을 하기 위해서는 IP주소가 반드시 필요하다. 호스트들을 IP주소로 구분하기 때문에 데이터가 어디서 어디로 가야할지 정할 때 반드시 필요하기 때문이다.
그러나 보통 우리는 숫자 주소를 외우지 않고 문자 주소를 외우고 있다.
즉 어디선가 문자 주소를 숫자 주소(IP주소)로 변환해 주고 있다는 것!
이 기능을 현대에선 DNS가 서비스해준다.
과거에는 호스트 이름과 IP 주소 쌍으로 이루어진 데이터들을 모아놓은 호스트 파일이란 것을 만들어
하나의 컴퓨터가 전적으로 관리했다.
그러나 인터넷이 발전함에 따라 사용자수가 기하급수적으로 늘고 중복된 IP와 도메인 이름을 수작업으로 관리할 수가 없어졌기 때문에 오늘날 DNS 서비스가 탄생하게 된 것!
DNS
DNS란 계층적 주소를 지원하는 분산형 데이터베이스 시스템이다.
기본적으로 도메인 이름으로 IP주소를 얻는 것을 기능적 목표로 한다.
DNS는 도메인네임 스페이스, 네임서버 그리고 해석기 세 가지로 구성된다.
1. 도메인네임 스페이스
도메인네임 스페이스란 도메인 네임 관련 데이터들인 자원레코드의 집합체로서 데이터 공간과 이에 대한 규칙에 대한 공간이다.
이 공간은 계층적으로 이루어져 있으며 최상위의 이름없는 호스트를 Root 호스트라 하며 자원 레코드의 크기가 0 인 Null 레코드이다.
Root 레코드를 시작으로 하위에 여러 호스트들이 가지치듯 내려나가는데 Root 레코드 바로 밑의 호스트들을 TLD(Top Level Domain) 이라고 부른다.
최하위 레코드를 맨 왼쪽에 적고 위로 올라가면서 만나는 레이블들을 . 과 함께 이어서 주소를 쓰면 도메인 네임이 된다.
레이블 이름은 각 레벨(트리의 height)마다 유일해야 하며 레벨이 다르면 동일한 이름이더라도 다르게 취급된다.
도메인은 도메인네임 스페이스에서 하부트리 전체를 의미하며 그 도메인의 명칭은 하부트리의 TLD이다.
레이블을 상위부터 점으로 이은 것이 도메인 네임!!
이러한 네임 스페이스의 DB 서비스는 계층적으로 관리하기 때문에 검색이 용이하다.
네임 스페이스의 계층구조와 자원레코드를 관리하는 호스트를 네임서버라고 한다.
루트 네임서버를 시작으로 각 네임서버는 자신의 바로 하위 레밸의 도메인만 관리한다. 이 과정은 재귀적으로 진행되며 하위 레벨의 네임서버로 위임된다.
만일 이웃하는 네임서버의 정보가 필요하면 상위의 네임서버의 도움을 받는다.
존
존은 네임서버가 관리하며 인증데이터의 집합체이다.
모든 호스트의 자원레코드의 집합체
존의 최상위호스트 = 네임서버
위임 서브존 : 존의 관리 권한이 다른 하위 호스트에게 넘어간 존
글루 데이터 : 위임 서브존의 네임서버가 하위 도메인의 내부에 위치할 때 네임서버의 주소를 상위 호스트가 보유하고 있는다. 이때 이 주소를 글루데이터라고 하며 해석기가 상위 네임서버에 질의할 때 글루 데이터를 질의한다.
존 vs 도메인
특정 네임서버가 자신의 하위 도메인을 전적으로 관리하면 존 == 도메인
그것이 아니라면 존 != 도메인
2. 해석기
응용프로그램(User)은 해석기(DNS Client)에게 도메인네임을 파라미터로 요청을 보내
네임서버와 접촉할 것을 요구한다.
해석기는 가장 가까운 네임서버와 접촉한 후에 원하는 정보가 없다면 다른 네임서버와 접촉한다.
해석기가 다른 네임서버와 접촉하는 방식으로는 재귀와 반복이 있다.
재귀적
네임서버가 다른 네임서버에게 요청시 네임서버는 다른 네임서버의 해석기가 되고 다른 네임서버는 네임서버의 네임서버가 된다(?)
해석기의 요청을 재귀적으로 네임서버에 위임한다는 건데 그림으로 보자.
반복적
해석기가 네임서버에서 정보를 못찾았으면 해석기가 직접 다른 네임서버와 접속을 시도한다.
재귀와 반복을 통해 해석기가 자원레코드를 얻었다. 그런데 이 자원레코드 또한 두가지 종류로 나누어진다.
인증데이터 : 도메인을 관리하는 네임서버로부터 직접 얻은 데이터
캐쉬데이터 : 호스트가 인증데이터를 받은 시간이 TTL을 초과하지 않았을 때 호스트가 해석기에게 전송하는 데이터
캐쉬데이터는 TTL보다 초과한 데이터들은 인증데이터를 통해 최신화 시킨다.
21-12-18
'Computer Science > Computer Network' 카테고리의 다른 글
FTP 원리 (0) | 2021.12.18 |
---|---|
WWW (0) | 2021.12.15 |
전송계층 (0) | 2021.12.12 |
TCP 프로토콜 (0) | 2021.12.05 |
네트워크 계층 (0) | 2021.11.30 |