DNS(Domain Name System)

2023. 5. 3. 15:56· CS
목차
  1. Domain Name의 등장
  2. DNS(Domain Name System)
  3. DNS의 계층

Domain Name의 등장

도메인 네임은 왜 나온것일까?
이는 IP와 굉장히 밀접한 관계가 있다

IP(IPv4와 IPv6)

인터넷의 가장 대표적인 ID라고 하면 IP가 바로 떠오른다. 이게 도메인과 무슨 상관일까?

IPv4는 8Bit(8진수)씩 4칸으로 이루어져있다. 그리고 IPv6는 16Bit(16진수)씩 8칸으로 이루어져있다. 너무 깊게 들어가지 않고 도메인이 나온 이유만 생각해보자 IPv6는 xxxx:xxxx:xxxx:xxxx 여기에 이루어진 숫자를 외울수 있을까? 심지어 수억개가 넘는 IP를?? IPv4도 xxx.xxx.xxx.xxx로 이것도 인간의 뇌로 외우기엔 다소 무리가 있다. 그래서 우리는 쉽게 읽기 위해 인간이 읽고 외우고 심지어 쓰기 쉽게 하기위한것이 필요했다 이것이 Domian Name의 탄생이다.

 

우스겟 소리이지만, 반대로 사람이 읽기 쉬운 Domain Name은 컴퓨터가 읽기 어렵다.

왜냐하면 규칙이 없기 때문이다. 언제는 길었다가 언제는 짧아지는 복잡한 시스템으로 이해하는 것이다

 

그래서! 응용계층(인터넷 5계층)에서만 사용하게 된다.

 

 

DNS(Domain Name System)

  • 서비스
    • Domain name ▶ IP 주소 로 교환
    • Aliasing 관리
      • Aliasing : 또 다른 생소한 단어가 나왔다 간단하게 설명해보면 동일한 IP에 다른 DNS를 매핑하는것이다.
        이것은 정말정말 아주아주 쉽고 단순하게 얘기한것이니까 꼭 공부해보시길...
    • 전 우주적으로 중앙관리가 가능하다
    • 분산관리 ( 계층적 분산관리 )

 

DNS의 계층

  1. 최상위 : Root Name Server
  2. Top Level Domain Name Server
    • " .kr , .com , .edu , .org , .net " 이것들을 top level domain이라고 한다.
    • Top Level Domain Server의 IP를 유효기간과 함께 반환한다. 유효기간 동안은 동일한 Top Level Domain Server IP의 요청은 하지 않는다.
  3. Authorized DNS  = 굉장히 많은 질문이 중복되기 때문에 Cache저장소가 존재한다 ( 여기엔 타이머 또한 존재한다 )
    • 여기서 본격적인 도메인네임(google.com)을 가지고 있다.
  4. Local DNS = 굉장히 많은 질문이 중복되기 때문에 Cache저장소가 존재한다 ( 여기엔 타이머 또한 존재한다 )
각각의 Domain Name Server는 수많은 하위 DNS와 연결되어있다. 트리형식을 생각하면 빠르다

 

● Recursive 방식

 

우리 local DNS와 연결되어있는 컴퓨터가 한대 있다고 가정해보자

  1. Local DNS에게 우리가 궁금한 주소(www.google.com)을 물어봤을때
  2. cache의 정보가 만료된 요청을 보낸 Local은 Authorized DNS에게 물어 볼 것이다 하지만 Authorized DNS의 캐시또한 정보가 없다면 Local은 Root에게 바로 주소 요청을 보낸다
  3. Root는 .com을 담당하고 있는 TLDNS에게 물어볼것이다
  4. 그러면 .com 을 담당하고 있는 TLDNS는 google.com을 담당하고 있는 Authorized DNS를 불러낸다
  5. Authorized DNS는 다시 역으로(재귀식)으로 Root에게 전달하고 Root는 받은 내용을 Local DNS에게 전달한다
이렇게 친절하지 않다. 모든 질문을 센터가 담당해서 처리하는것은 굉장히 보기 드물다.

 

● Iterative 방식

 

똑같은 조건이다.

  1. Local DNS에게 우리가 궁금한 주소(www.google.com)을 물어봤을때
  2. cache의 정보가 만료된 요청을 보낸 Local은 Authorized DNS에게 물어 볼 것이다 하지만 Authorized DNS의 캐시또한 정보가 없다면 Local은 Root에게 바로 주소 요청을 보낸다
  3. 여기서 다른 점이 나타나는데 Root가 TLDNS로 직접 요청을 보내는것이 아니라 TLDNS 주소를 Local DNS에게 말해준다. 그러면 그걸 받은 Local DNS는 .com을 담당하는 TLDNS에게 직접 물어본다
  4. 그럼 TLDNS는 google.com의 주소를 가진 Authorized DNS를 알려준다 물론 Local DNS에게 말이다
  5. 그럼 Local은 그때 Authorized DNS에게 물어봐서 직접 가져온다
이게 보편적인 방법이라고 할 수 있다.

 

이런식으로 우리는 응용에서는 사람이 알아보기 편한 DNS주소를 사용해서 넘어가지만 계층 내려가면서 컴퓨터의 작업과 가까워지면서 IP로 바꾼다음에 서비스를 진행한다.

 

 

 

'CS' 카테고리의 다른 글

🎯 Redis  (1) 2024.04.26
💻 멀티 프로세스와 멀티 스레드  (0) 2023.10.16
HTTP(3). 성능향상  (0) 2023.05.01
Cookie와 Session  (4) 2023.05.01
HTTP(1). GET & POST  (0) 2023.04.27
  1. Domain Name의 등장
  2. DNS(Domain Name System)
  3. DNS의 계층
'CS' 카테고리의 다른 글
  • 🎯 Redis
  • 💻 멀티 프로세스와 멀티 스레드
  • HTTP(3). 성능향상
  • Cookie와 Session
늦은산책
늦은산책
늦은산책
중얼중얼블로그
늦은산책
전체
오늘
어제
  • 분류 전체보기
    • 오류 모음집
    • CS
      • 💾 자료구조
      • 👫🏼 정렬
      • 🖥 네트워크
      • 💻 운영체제
      • 💾 DB
      • 🌌 알고리즘
      • 📝 언어
    • 테스트
    • Git 초보에게 필요한 Git bash사용법
    • 프로젝트
      • 팀 프로젝트
      • 개인 프로젝트
      • 항해99 개인 프로젝트
      • 스위프 프로젝트(Lit Map)
    • Java
      • 객체 지향
    • Spring
      • 🌲 Spring
      • 👨‍💻 SpringSecurity
      • 🌵 JPA
    • MSA
      • MSA 강좌 - 이도원 강사님
    • Docker(도커)
    • 코딩테스트
      • 🧮 프로그래머스
      • 🎲 백준
    • 항해99
      • 🕛 1주차
      • 🕐 2주차
      • 🕑 3주차
      • 🕒 4주차
    • AWS
    • CI와CD

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 카우치코딩
  • 카우치코딩_팀프로젝트
  • 개발자포트폴리오
  • 항해99
  • 카우치코딩_포트폴리오_멘토링
  • 개발자포토폴리오
  • 취리코
  • couchcoding
  • 개발자취준
  • 코딩테스트
  • 개발자취업
  • 개발자이력서
  • 취업리부트코스

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
늦은산책
DNS(Domain Name System)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.