여태껏 개발과 컴퓨터과학을 공부하면서 많은 코드들을 마주치고 컴퓨터의 작동원리에 대해 익혔지만 정작 "인터넷"이 어떻게 작동하는가? 에 대한 물음에는 답을 할 수 없었다. 네트워크 수업을 듣지 않아서... 라는 변명도 있지만 😅 웹 개발을 조금 더 본격적으로 공부해 보기 이전에 인터넷 동작 방식에 대해 알아보고자 한다.
인터넷은 네트워크들의 네트워크이다.
인터넷은 표준 프로토콜들을 이용하여 디바이스와 컴퓨터 시스템들을 연결시켜준다. 인터넷의 핵심은 서로 연결된 라우터들 이다.
두 개의 컴퓨터가 서로 연결될 때, 다음과 같은 한 개의 케이블이 필요하다. 그렇다면... 여러 대의 컴퓨터가 서로 연결되려면 몇 개의 케이블이 필요할까?
컴퓨터의 대수가 늘어날수록, 연결을 위해 필요한 유선케이블(또는 무선 연결)이의 수는 엄청나게 늘어나게 된다.
라우터는 이러한 문제점을 해결한다. 하나의 컴퓨터는 오직 하나의 라우터에만 연결되면 된다.
라우터는 다른 라우터와도 연결될 수 있다. 서로 다른 라우터들이 연결되면서 인터넷은 무한히 확장된다.
우리가 인터넷에서 데이터를 전송한다고 해 보자. 이 데이터들은 패킷이라고 하는 작은 단위로 나뉘어 라우터로 보내진다. 라우터는 패킷을 검사하고, 패킷이 올바른 목적지에 도착할 수 있도록 다음 라우터로 인도한다.
패킷을 올바른 목적지로 주고받기 위해서 인터넷은 다양한 프로토콜을 사용한다. 이때 등장하는 용어가 IP(Internet Protocol) 과 TCP(transmisssion Control Protocol)이다.
이런 핵심 프로토콜 외에도 인터넷에서 소통과 데이터 교환이 가능하게 하도록 하는 기술들과 프로토콜들이 있다.
하지만 아주 먼 곳에 있는 디바이스와 소통을 하고 싶다면 어떻게 할까?
네트워크들은 ISP (Internet Service Provider)에 연결된다. ISP는 다른 ISP들과 연결될 수 있다. 인터넷은 이런 식으로 동작한다.
컴퓨터에 메시지를 보내려면, 받는 컴퓨터를 지정해 줘야 한다고 했었다. 인간이 특정 장소를 찾아갈 때 주소가 필요한 것처럼, 컴퓨터에게도 주소가 필요하다. 네트워크에 연결된 모든 컴퓨터에는 IP 주소가 있다. IP 주소는 네 개의 숫자 배열이 점으로 구분되어 있다.
IP
IP 주소는 네트워크에 연결된 디바이스들의 고유한 인식자이다. 데이터가 올바른 곳에 도달할 수 있도록 라우팅하는 데 사용된다. '173.194.121.32' 같은 숫자의 배열이다.
Domain Name
도메인 이름은 인간이 읽을 수 있는 이름이다. google.com과 같은 주소가 이에 해당된다. IP 주소는 Domain Name System(DNS)를 사용하여 도메인 이름으로 번역된다.
만일 내 컴퓨터가 웹브라우저에서 google.com에 접속하려고 시도한다 해보자. 컴퓨터는 DNS 서버에 DNS 쿼리를 보낸다. DNS 서버는 받은 쿼리에 응답하여 알맞은 IP 주소를 돌려준다. 내 컴퓨터는 받은 IP 주소를 통해 웹이나 다른 자원에 접근한다.
여기까지 인터넷에 대한 아주 기초적인 내용들이었다~!
다음으로는 HTTP, DNS, Browser 등에 대해 알아보도록 하자! 🙂