IP와 Domain

오늘·2021년 9월 14일
  • http : 포트번호(80) 암호화x
  • https : 포트번호(433) 암호화o

포트번호 설정하는 이유

: 컴파일 과정에서 프로세스를 인식하기 위한 방법
: 16비트로 된 숫자이며 IP 주소 뒤 :xxxx와 같이 나타내며 프로세스 구분을 하기위해 사용한다.

* Protocol : 인터넷 체계를 동작시키기 위해 약속된 규칙
* IP주소 : 컴퓨터 주소, 포트는 그 안에서 각 프로세스가 위치한 방번호
        : 인터넷에 연결되어있는 여러 컴퓨터들이 서로 정보를 주고 받기 위한 주소
* I/O 버스 : 데이터 전송로
* 컴파일 : 사람이 알아볼 수 있는 언어(Language)로 작성된 프로그램을
	  컴퓨터가 이해할 수 있는 언어(0 1)로 변환해주는 과정

IP와 Domain, DNS

- IP : Internet Protocol
     : 인터넷에서 해당되는 컴퓨터의 주소
- IP 주소 : 인터넷에 연결되어 있는 각 컴퓨터가 가지는 숫자로 이루어진 고유의 주소
         : 네트워크 주소(기기가 속해있는 네트워크를 식별)
           + 호스트 주소(해당 네트워크 내에서 그 기기를 식별)
         : 한 네트워크에 포함된 기기들은 네트워크 주소가 같지만,
           호스트 주소가 다르기 때문에 기기는 서로 다른 ip 주소를 가지게 된다.
       
- Domain : ip는 사람이 이해하고 기억하기 어렵기 때문에 각 ip에 이름을 부여한 것
- DNS : Domain Name System
      : 사람이 읽을 수 있는 도메인 이름(ex.naver.com)을
      컴퓨터가 읽을 수 있는 IP주소(ex.125.209.222.142)로 변환하는 시스템 

인터넷 상에서 다른 단말에 접근하기 위해서는 숫자와 구분자(ex.125.209.222.142) 로 이루어진 고유의 IP를 알아야하지만 사용자가 기억하기 쉬운 또는 의미있는 영문과 숫자, 구분자로 이루어진 것이 등장했고 그게 Domain이다.

그렇다면 DNS는 이 도메인 이름을 가지고 IP를 찾는 시스템.

사실 컴퓨터는 도메인을 통해 서버에 접속할 수 없고 ip를 통해서만 접속할 수 있다.
예를 들어 벨로그를 통해 전화가 걸리는게 아니라
벨로그의 번호를 통해 벨로그에게 전화를 거는 것이다.

따라서 도메인을 통해 다른 기기에 접근하기 위해서는 DNS(Domain Name system)을 통해야 한다.

그럼 어떤식으로 DNS가 동작하는가?

브라우저에서 naver.com을 입력
	↓
로컬 DNS 서버에서 naver.com이라는 도메인이 있는지 확인해 IP를 알려줌
	↓
확인되지 않으면 Root DNS 서버에 도메인 확인 요청
	↓
Root DNS 서버는 해당하는 Top-Level 서버를 찾고
Top-Level 서버는 해당하는 Second-Level 서버를 찾고
Second-Level 서버는 해당하는 Sub DNS 서버에서 IP를 찾아 알려준다
	↓
해당하는 도메인을 다시 방문하면 빠르게 찾기 위하여
naver.com이라는 서버의 IP를 로컬 DNS 서버에 캐싱

-> 웹 브라우저는 웹 페이지를 보고자 요청한 현재 (내)컴퓨터의 ip 주소와 주소창에 입력된 도메인(ex. naver.com)을 가지고 인터넷 상에서 DNS(Domain Name System) 서버를 찾는다. 무엇을 통해? 현재 (내)컴퓨터의 LAN 카드를 통해
-> DNS 서버를 찾게 되면 그 서버에 구축되어 있는 DB에서 찾는 도메인(ex. naver.com)에 해당하는 ip 주소를 얻고, 얻은 ip 주소로 해당 컴퓨터를 찾아간다
-> 찾아간 컴퓨터에 웹 서버가 설치되어 있으면 홈 디렉토리에 있는 디폴트 파일을 찾아 웹 서버에서 언어를 해석해 웹 페이지를 만든 후
-> 그걸 요청한 현재 (내)컴퓨터로 보내준다. 그럼 그걸 웹 브라우저가 나에게 보여주는 것

DNS에 대한 설명은 여기를 읽어봐도 좋을거 같다 : https://www.cloudflare.com/ko-kr/learning/dns

IP주소 찾기

cmd를 켠 후 (OS는 터미널) ping 명령어로 ip 주소가 궁금한 도메인을 입력

www를 안붙이고 검색해도 된다

http 혹은 https는 빼자

localhost와 ip

  • loopback
    내부적으로 개발할 때 흔히 localhost:3000 혹은 이것의 ip 주소인 127.0.0.1:3000 을 사용한다. 이것을 루프백이라 하는데 자신의 컴퓨터를 스스로 서버로 만들고 그 컴퓨터에서 콜을 보내고 응답 받을 수 있다는 걸 말한다.

그럼 localhost:3000은 도메인이고 127.0.0.1:3000은 ip 주소인것인가?
-> 맞음. 일반적으로 웹 서버에서 localhost는 ip주소 127.0.0.1로 예약 되어있는거고 자기 컴퓨터를 가리키는 가상의 ip address지만 실제와 같은 동작을 하는것
-> 쉽게 생각하면 localhost라는 도메인을 찾으러 외부의 DNS서버로 나가는게 현재 자신의 컴퓨터 내에서 찾는 것

+URL이란

누군가에게 인터넷 자료의 링크를 공유할 때 그 링크 주소를 URL(Uniform Resource Locator)라고 하는데, 네트워크 상의 특정 리소스에 접근하기 위해 거쳐야 하는 네트워크 경로를 뜻한다. 따라서 URL은 ip주소나 도메인 네임을 포함하고 있다.


접속 제한하기?

  • IP같은 경우 어느 범위를 어느 국가가 사용할 지는 이미 배정(지정) 되어있다. 하지만 접속 자체는 종속되지 않는다.

  • 해당 국가에서만 접근할 수 있도록 혹은 타 국가에서의 접근은 차단하고 싶다면 domain 최상위 도메인(Top-level domain, TLD) 으로 가능하다.
    -> ex) .com .net .kr 등 으로 접근 범위 제한
    -> Domain을 사서 DNS records에 ip와 함께 등록함으로 domain와 ip를 서로 매핑한다.
    -> 레코드에 등록한다고 바로 사용이 가능한 건 아니고 처리 되는데 1~3일 정도 걸린다. (인터넷이 망으로 함께 연결되어있기는 하지만 각 나라의 룰로 운영시간이 정해져 있기 때문으로 앎..)

  • 이러한 방법으로 한국에서만 서비스하지만 IP는 해외의 것일 수도 있는 것이다.

0개의 댓글