2 분 소요

❄️ David Malan 교수의 컴퓨터 과학 교양 강좌: CS50을 바탕으로 정리한 내용입니다.


프로그래밍을 통해 명령줄에서 실행하는 프로그램판 작성할 수 있는 것은 아닙니다.
인터넷에서 실행되는 코드도 작성할 수 있습니다.

인터넷이 동작할 수 있도록 많은 다양한 시스템들과 프로토콜(Protocol, 통신 규칙)들이 갖추어져 있고,
모든 인터넷 요소들이 더불어 동작해야 사람들이 인터넷을 효과적으로 사용할 수 있습니다.

인터넷에는 어떤 시스템이 있고 어떻게 동작하는지를 이해하면 인터넷에 대한 이해를 전반적으로 높일 수 있을 것입니다.

IP 주소

인터넷상에 있는 장치들은 IP 주소(Internet Protocol Address)를 할당 받습니다.
IP 주소는 인터넷에 연결된 장치들을 식별할 수 있도록 해주고, 인터넷상의 다른 장치를 찾을 수 있도록 해줍니다.

IP 주소는 203.253.15.17과 같이 #.#.#.#의 형태입니다.
#은 10진수로는 0부터 255까지의 숫자이고 2진수로는 8자리의 숫자입니다.
따라서 IP 주소는 32비트로 표현 가능한 약 40억 개의 공인된 주소를 쓸 수 있습니다.

하지만 인터넷에 연결된 장치들이 많아지면서 40억 개의 주소가 점점 부족하게 되었습니다.
이 문제를 해결하기 위한 대책 중의 하나로 어떤 장치들에게는 사설 IP 주소를 할당하여 하나의 공인된 IP 주소를 공유할 수 있도록 합니다.

그러나 IoT 장치 등 인터넷 장치들의 숫자가 폭발적으로 증가할 것을 대비하는 장기적인 대책으로, IPv4라고 불리는 32bit IP 주소 방식을 IPv6라고 불리는 128bit IP 주소 방식으로 대체하도록 했습니다.

IPv4 주소는 숫자 4개의 형태로 각각 8bit 값을 나타내지만, IPv6 주소는 숫자 8개를 가지며 각 16bit 값을 나타냅니다.

af21:10a8:1253:abd3:3019:0c2e:0b80:12a0와 같이 #:#:#:#:#:#:#:# 형태로 말이죠.

또한, 정보가 인터넷을 가로질러 전송될 때, 어디에서 정보를 보냈으며 어디로 보내는지를 인터넷이 알 수 있도록 IP 주소를 사용합니다.
정보에 대한 반송 주소와 도착 주소가 있다는 점에서, 실제 우편을 보내는 것과 매우 비슷합니다.

인터넷에 연결하기

인터넷에 장치 하나를 연결하기 위해서는 몇몇 단계들이 필요합니다.
무선 장치(노트북이나 휴대폰)를 인터넷에 연결하기 위해서는, 먼저 액세스 포인트(AP)에 무선으로 연결해야 합니다.
많은 인터넷 사용자들이 볼 때 액세스 포인트는 무선 공유기의 형태로 보이게 되는데 무선 공유기 역시 액세스 포인트의 한 종류입니다.
이 액세스 포인트는 스위치에 연결되고, 스위치는 라우터에 연결되고, 라우터는 인터넷의 나머지 부분과 연결됩니다.

우리가 인터넷을 사용하는 과정에서 DHCP와 DNS는 특별히 중요한 역할을 담당합니다.

DHCP는 동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol)을 의미하며, 여러분의 컴퓨터에게 고유한 IP 주소를 할당해주는 일을 합니다.

한 때, 네트워크 관리자가 각 컴퓨터에게 수작업으로 IP 주소를 할당해줘야 했습니다.
하지만 지금은 DHCP가 이 과정을 자동으로 해줍니다.

또한, 방문하고자 하는 모든 웹사이트의 IP 주소를 인터넷으르 사용하는 모든 사람들이 기억하기는 어렵습니다.
대부분의 사람들은 IP 주소를 기억하는 대신 웹 페이지에 접속하기 위해 텍스트로 된 주소(예를 들어 google.com)를 웹 브라우저에 입력합니다.
이 주소를 “URL”(Uniform Resource Locator) 혹은 “도메인 주소”라고 부릅니다.

DNS는 도메인 이름 시스템(Domain Name System)을 의미하며, URL을 받아서 IP주소로 또는 그 반대로 변환해주는 일을 합니다.

사용자가 웹 브라우저에 URL을 치면, DNS 서버는 먼저 URL을 보고 어느 IP 주소를 나타내는 것인지 알아냅니다.

그 외의 프로토콜

그 외의 몇몇 프로토콜은 인터넷상에서 효과적으로 통신하는 것을 보장합니다.

TCP는 전송제어 프로토콜을 의미하며, 인터넷으로 보내진 모든 데이터 패킷이 전송되도록 보장하고,
인터넷을 통해 전송되는 정보 패킷이 어떤 서비스를 위한 것인지(웹 검색, 이메일 등) 알 수 있도록 보장합니다.

HTTP는 하이퍼텍스트 전송 프로토콜이며, 웹 브라우저들과 서버들이 통신할 수 있도록 도와주는 또 다른 프로토콜입니다.



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: