[Network] www.naver.com을 치면 일어나는 일 🖥

Jay·2021년 2월 1일
3

Computer Science

목록 보기
16/50
post-thumbnail
post-custom-banner

우선, IP주소와 도메인에 대해 살짝 짚고가자.

IP주소

  • IP주소란 많은 컴퓨터들이 인터넷 상에서 서로를 인식하기 위해 지정받은 식별용 번호이다.
  • 현재는 IPv4버전(32비트)로 구성되어있고, 한번씩 들어본 127.0.0.1 같은 주소이다.
  • 시간이 갈 수록 IPv4 주소 부족으로 IPv6가 생겼는데, 128비트로 구성되기에 IP주소가 부족하지 않다는 특징이 있다.(이건 다른 글에서 다룬다.)

도메인 네임 (Domain Name)

  • IP주소는 12자리의 숫자로 되어 있어 사람이 외우기 힘들다.
  • 그렇기에 12자리 IP주소를 문자로 표현한 주소를 도메인 네임이라고 한다.
  • 'naver.com'과 같은 의미 있는 문자들과 .으로 구성된다.
  • 도메인 네임은 사람의 편의성을 위해 만든 주소이므로 실제로는 컴퓨터가 이해할 수 있는 IP주소로 변환하는 과정이 필요하다.
  • 이때, 사용할 수 있도록 미리 도메인 네임과 해당하는 IP주소값을 한쌍으로 저장하고 있는 데이터베이스를 DNS라고 부른다.
  • 도메인 네임으로 입력하면 DNS를 이용해서 컴퓨터는 IP주소를 받아 찾아 갈 수 있다.

  1. 사용자가 브라우저에 도메인 네임을 입력한다. 'www.naver.com'
  2. 사용자가 입력한 URL 주소 중 도메인 네임 부분을 DNS 서버에 검색하고, DNS서버에서 해당 도메인 네임에 해당하는 IP주소를 찾아 사용자가 입력한 URL 정보와 함께 전달한다.
  3. 페이지 URL정보와 전달받은 IP주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성하고, 이렇게 생성된 HTTP 요청 메세지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP주소의 컴퓨터로 전송된다.
  4. 이렇게 도착한 HTTP 요청 메세지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환되어 웹 페이지 URL 정보에 해당하는 데이터를 검색한다.
  5. 검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메세지를 생성하고 TCP 프로토콜을 사용하여 인터넷을 거쳐 원래 컴퓨터로 전송된다.
  6. 도착한 HTTP 응답 메세지는 HTTP 프로토콜을 사용하여 웹 페이지 데이터로 변환되어 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 된다.

DHCP

  • 대부분의 가정집에서 인터넷 접속시 DHCP를 사용한다.
  • Dynamic Host Configuration Protocol의 약자.
  • 호스트의 IP주소 및 TCP/IP 설정을 클라이언트에 자동으로 제공하는 프로토콜이다.
  • 사용자의 PC는 DHCP 서버에서 사용자 자신의 IP주소, 가장 가까운 라우터 IP주소, 가장 가까운 DNS 서버 IP주소를 받는다.
  • 이후, ARP 프로토콜을 이용하여 IP주소를 기반으로 가장 가까운 라우터의 MAC 주소를 알아낸다.

    -> 클라이언트가 인터넷 접속을 시도하면 IP와 기본 정보를 제공해준다.

IP 정보 수신

위의 과정을 통해 외부와 통신할 준비를 마쳤고, DNS Query를 DNS 서버에 전송한다.
DNS 서버는 이에 대한 결과로 웹 서버의 IP 주소를 사용자 PC에 돌려준다.
DNS 서버가 도메인에 대한 IP주소를 송신하는 과정은 약간 복잡하다.

www.naver.com을 친다고 하자.

  • 사용자의 PC는 가장 먼저 지정된 DNS서버에 DNS Query를 송신하다.
  • 그 이후, 지정된 DNS 서버는 Root 네임 서버에 www.naver.com을 질의하고 Root 네임서버는 .com 네임서버의 ip주소를 알려준다.
  • 그 이후, .com 네임서버에 www.naver.com을 질의하면 naver.com 네임서버의 ip주소를 받고 그곳에 질의를 또 송신하면 www.naver.com의 ip주소를 수신하게 된다.
  • 이와 같이 여러번 왔다갔다하는 이유는, 도메인의 계층화 구조에 따라 DNS 서버도 계층화가 되어있기 때문이다. 이렇게 계층화되어 있으므로 도메인의 가장 최상단, 즉, 가장 뒷쪽(.com, .kr ..)을 담당하는 DNS 서버는 전세계에 13개 뿐이다.

웹 서버 접속

웹 서버의 IP주소까지 알았다.
HTTP Request를 위해 TCP Socket을 개방하고 연결한다.
이 과정에서 3-way hand shaking이 일어난다.
TCP 연결에 성공하면, HTTP Request가 TCP Socket을 통해 보내진다.
이에 대한 응답으로 웹 페이지의 정보가 사용자의 PC로 들어온다.

profile
developer
post-custom-banner

0개의 댓글