[CS] DNS란 무엇인가? (도메인으로 IP를 찾는 원리?)

2022. 3. 18. 16:15·과거의 이력/CS
목차
  1.  
  2. 📝DNS란?
  3. 📝도메인을 사용하는 이유?
  4. 💻 예시를 통한 설명

누군가에게 전화를 걸때 전화번호를 다 외울수가 없으니 이름으로 검색하여 찾는다.

이때 전화번호는 IP, 저장된 이름은 도메인의 개념이라고 볼 수 있다.

여기서 전화번호(IP)와 이름(도메인)을 함께 저장하는 전화번호부가 바로 DNS이다.

 

 

📝DNS란?

Domain Name System의 약자로 도메인에 관련된 시스템이다. DNS는 네임서버, 도메인 네임서버 라고 불리기도 한다.

도메인이란 www.naver.com  의 주소 중 naver.com 부분을 가르킨다.

여기서 www는 호스트 네임(host name) 이라고 불린다.

 

📝도메인을 사용하는 이유?

마치 누구에게 연락을 하기위해 전화번호가 필요하듯 웹사이트에 접속하기 위해서는 내 컴퓨터의 브라우저가
내가 접속하고자 하는 서버에 요청을 해 데이터를 받아와야 하는데 이때 해당 서버의 IP를 알아야한다.

하지만 사이트마다 IP주소를 모두 외울수가 없기 때문에 외우기 쉬운 주소로 접속을 하는것이다.

 

서두에 언급했듯, IP와 도메인 주소를 함께 저장하는곳이 Domain Name System 즉 DNS이다. DNS는 네트워크에 분산저장된다!

 

 

 

💻 예시를 통한 설명

예를들어 내 브라우저가 네이버에 접근하려 한다. 하지만 아직 IP주소를 모르기때문에
브라우저는 우선 PC에 설정된 로컬 DNS 서버에 해당 도메인과 호스트명의 IP를 가지고 있는지 요청한다.
DNS에는 해당 IP주소가 캐싱돼있을 수도 있고 없을수도 있다.
있다면 바로 반환을 할것이고 없다면 로컬DNS는 Root DNS 서버에 이 주소의 IP를 어디서 찾을 수 있는지
요청한다. (Root DNS 서버는 전세계에 13군데가 있다고 한다! 이중 한국에는 없지만 미러서버가 대체한다고 한다.)

루트 DNS 서버는 .com으로 끝나는 도메인을 담당하는 서버의 IP 주소를 반환한다.
로컬 DNS 서버는 해당 주소에 해당하는 DNS서버에 찾아가면 다양한 호스트 네임별로 구성된 IP 주소가 있다.
그중 www 호스트 네임으로 된 사이트의 Ip주소를 얻어낸다음 브라우저에 반환한다음
비로소 해당 IP로 접속하게 된다.

분산저장된 DNS 구조

 

 

📌 추가 정보 1.

사용자가 DNS에 IP주소를 요청한 중간과정을 해커가 가로챈다음
가짜 사이트를 제공하는식으로 공격이 되기도 한다.
이를 DNS 스푸핑 이라고 한다.

 

📌 추가 정보 2.

후이즈나 가비아같은 국내 서비스에서 내가 사이트의 도메인을 구매할 수 있다.
도메인을 가지고 나면 네임서버에 IP를 호스트 네임별로 등록하여 사용하면 된다.

 

 

 

 

 

 

 


참고링크 : https://www.youtube.com/watch?v=6fc9NAQkcv0

'과거의 이력 > CS' 카테고리의 다른 글

[컴퓨터구조] 캐시란? 레지스터란? 버퍼란?  (0) 2022.04.18
[컴퓨터구조] RAM이란 무엇인가? DRAM과 SRAM의 차이 (캐시메모리)  (0) 2022.03.28
[cs] 메모리 구조 알아보기 (스택, 힙, 데이터, 코드 영역)  (0) 2022.03.08
[HTTP] HTTP 버전별 특징 알아보기  (0) 2022.03.02
[CS] 공유메모리란 무엇일까? shared memory?  (0) 2022.02.28
  1.  
  2. 📝DNS란?
  3. 📝도메인을 사용하는 이유?
  4. 💻 예시를 통한 설명
'과거의 이력/CS' 카테고리의 다른 글
  • [컴퓨터구조] 캐시란? 레지스터란? 버퍼란?
  • [컴퓨터구조] RAM이란 무엇인가? DRAM과 SRAM의 차이 (캐시메모리)
  • [cs] 메모리 구조 알아보기 (스택, 힙, 데이터, 코드 영역)
  • [HTTP] HTTP 버전별 특징 알아보기
정많이 정만이
정많이 정만이
jeongmany
정많이 정만이jeongmany
  • 정많이 정만이
    정많이 정만이
    정많이 정만이
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • 과거의 이력 (71)
        • CS (12)
        • 프론트엔드 (4)
        • javascript (21)
        • Vue.js (7)
        • bootstrap (1)
        • [그리드] ag-grid (3)
        • [그리드] vue-grid-layout (1)
        • HTML_CSS (5)
        • NPM (1)
        • [차트]highcharts (0)
        • JAVA (9)
        • 백엔드 (1)
        • 기본개념 (손필기) (5)
        • 프로그래머스 (1)
      • 알고리즘 (6)
      • 통계 (9)
        • 통계지식 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java
    selectbox
    반복문
    객체
    알고리즘
    js map
    자바스크립트
    HTML
    vue.js
    aggrid
    ag-grid
    webpack.config.js
    코딩테스트
    개발자
    ubuntu설치
    js
    버추얼박스
    vue.config.js
    ubuntu
    공유메모리
    bootstrap
    JavaScript
    ES6
    CSS
    cs
    우분투
    VirtualBox
    vuejs
    Webpack
    vue
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
정많이 정만이
[CS] DNS란 무엇인가? (도메인으로 IP를 찾는 원리?)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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