ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Server] Protocol과 IP, IPS, DNS 및 관련 개념 정리
    development/Server | Node.js 2021. 10. 19. 01:42

    IPv4의 프로토콜 스택

    이번 포스팅에서는 서버 작업을 하기 위한 기본적인 정보 중 하나인 Protocol과 IP, IPS 및 한 번쯤은 들어봤을 TCP/IP 등에 대한 개념에 대해 알아보겠습니다.

    Protocol과 IP

    Protocol

    먼저 프로토콜이란 무엇일까요? 이 포스팅을 읽고 계시는 분이라면 한번쯤은 들어봤으리라 생각되는 단어이고, 그만큼 웹/서버 모두에 있어서 필수적으로 이해해야 하는 개념인데요.

     

    프로토콜이란 컴퓨터 내/외부에서 데이터를 전송할 때 사용하는 교환 방식을 정의하는 규칙 체계의 집합을 말합니다.

     

    어렵지 않도록 조금 풀어서 설명하자면, 데이터를 요청하고 응답하는 과정에서 서로 간의 정해진 형식으로만 통신할 수 있도록 정해둔 규칙을 말하는 것입니다.

     

    특정 방식으로만 데이터를 요청할테니, 응답 시에도 특정 방식으로만 응답을 하도록 약속하는 것입니다.

    IP (Internet Protocol)

    오늘 알아볼 내용들의 가장 기본적인 개념인 IP는, 흔히들 IP 주소(아래에서 설명할)와 혼동하여 사용하곤 합니다.

    하지만 IP와 IP 주소는 엄연히 다른 뜻을 가지고 있습니다. 이미 프로토콜을 이해했다면 IP는 쉽게 이해하실 수 있습니다.

     

    단어의 뜻 그 자체인 Internet Protocol, 인터넷 호스트끼리의 통신 시에 사용하는 프로토콜을 지칭하는 것입니다.

    IP 주소

    인터넷 내/외부에선 많은 통신이 일어나게 됩니다. 이러한 통신을 흔히 전화에 비유하여 말하곤 합니다.

     

    전화를 걸거나 받을 때 상대방과 본인의 전화번호가 필요한 것처럼, 인터넷 상에서의 통신에서도 서로를 식별할 수 있는 무언가가 필요합니다. 그것이 바로 고유 번호인 IP 주소인 것이죠.

     

    고유 번호를 지칭하는 IP 주소는, 현재까지에 이르러 IPv4, IPv6 총 두 가지 버전이 있습니다.

    왜 버전이 두 개나 되는 걸까요? 하나로는 통용될 수 없는 걸까요?

     

    IP 주소 체계의 초기 버전인 IPv4는, 32비트로 0부터 255까지의 12자리 숫자로 이루어져 있습니다.

    0.0.0.0
    127.0.0.1

    위와 같은 주소 체계를 한 번쯤은 본 경험이 있으실 것 같습니다. 바로 이것이 IPv4 체계의 IP 주소입니다.

     

    이러한 숫자들로 이루어진 IPv4의 체계는 절대적인 개수가 부족함과 동시에 인터넷 사용자의 증가에 따라 점점 주소 공간이 고갈되어 가고 있습니다.

     

    이에 따라 자연스럽게 새로운 주소 체계가 필요해지게 되었고, 새로 나온 체계가 바로 IPv6입니다.

    아직까지는 표준 프로토콜로는 IPv4를 채택하고 있긴 하지만, 윈도우와 리눅스 등의 대중적인 운영체제에선 대부분 IPv6 프로토콜을 지원하고 있습니다.

     

    IPv6는 32비트로 이루어져 있던 IPv4와 다르게 128비트로 구성되어 있어, 이론상 거의 무한대에 가까운 훨씬 많은 주소들을 사용할 수 있습니다.

    2001:0000:0000:0000:0000:25de:0000:cade
    2001:0000:25de:0000:0000:0000:0000:cade

    DNS

    방대한 양의 고유 번호(IP 주소)들은 DNS(Domain Name System)이라는 서비스에서 관리하고 있습니다.

     

    흔히 IP 주소를 전화번호에 비유하고, 그에 따라 DNS를 자연스레 전화번호부에 비유하곤 합니다.

    전화번호부는 각각의 번호를 숫자만으로도 기록할 수 있지만 따로 "다빈이네 집 번호" 과 같이 이름을 따로 붙여 관리하곤 합니다.

     

    DNS의 주 기능이 바로 이와 같습니다.

    호스트의 고유 번호를 사람이 이해할 수 있는 문자열로 변경하여 식별할 수 있도록 해주는 기능입니다.

     

    쉽게 이해하기 위해 단순하게 예시를 들어보겠습니다.

    구글에 접속하기 위해 google.com 을 치고 웹 사이트에 접속하려고 할 때 어떤 일이 벌어질지 다음처럼 추측할 수 있습니다.

    • 먼저 특정한 컴퓨터에 google 웹 사이트를 올려둡니다. (호스팅 해둡니다.).
    • 컴퓨터의 주소가 예를 들어 0.0.0.0과 같다면, DNS에 이 주소로 들어오는 것뿐만이 아닌, "google.com" 이라는 이름으로도 들어올 수 있도록 서비스에 등록해둡니다.
    • 사용자가 google을 친 순간, DNS에서 이러한 요청을 받아 입력한 주소(google)가 0.0.0.0 이라는 주소로 연결되어 있는 걸 확인 후, 0.0.0.0번을 연결합니다.
    • 사용자는 google 사이트를 사용할 수 있게 됩니다.

    이러한 단계를 거쳐 호스팅 된 서비스를 사용할 수 있습니다.

     

    물론 아주 일부분이고, 매우 축약한 것입니다.

    DNS 동작 방식에 대한 자세한 내용을 확인하고 싶다면, 이 을 추천드립니다.

     

    마치며

    이번 글에선 IP와 밀접하게 관련된 내용들의 간단한 개념에 대해 알아보았습니다.

    혹시 잘못된 내용이 있다면 댓글이나 메일로 알려주시면 감사하겠습니다.

    읽어주셔서 감사합니다.

    참고 문서

    - https://ko.wikipedia.org/wiki/인터넷_프로토콜

    - https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

     

    HTTP 개요 - HTTP | MDN

    HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버

    developer.mozilla.org

    - https://aws.amazon.com/ko/route53/what-is-dns/

     

    DNS란 무엇입니까? – DNS 소개 - AWS

    Internet Explorer에 대한 AWS 지원이 07/31/2022에 종료됩니다. 지원되는 브라우저는 Chrome, Firefox, Edge 및 Safari입니다. 자세히 알아보기

    aws.amazon.com

     

Designed by Tistory.