인터넷은 인류가 만들어낸 가장 위대한 발명품 중 하나입니다.
매 순간 수백만 명이 인터넷을 사용하고 있으며, 인터넷은 새로운 직업과 업무 방식의 탄생부터 뉴스 소비 방식, 의사결정 과정까지 우리 삶의 수많은 측면을 바꿔놓았습니다.
인터넷은 이미 오랜 역사를 지녔지만, 그 기반이 되는 핵심 기술들은 발명 당시 이후 크게 변하지 않았습니다.
이 글에서는 인터넷 프로토콜(IP)이 무엇인지, 어떻게 작동하는지, 그리고 각 버전 간의 차이점은 무엇인지 살펴보겠습니다.
컴퓨터는 인터넷에서 어떻게 통신할까?
컴퓨터를 포함한 각종 기기들은 해저 케이블 또는 무선 통신을 통해 인터넷에 연결되고 서로 소통합니다.
정보는 패킷(packet), 즉 작은 데이터 조각으로 나뉘어 전송되며, 라우터(router)가 이 패킷들을 목적지까지 정확히 배달하고 응답을 되돌려줍니다.
하지만 컴퓨터들이 원활하게 통신하려면, 모든 기기가 이해할 수 있는 표준화된 공통 언어가 필요합니다.
데이터 교환 시 표준화된 통신 방식이 필요하다는 요구에서 비롯된 것이 바로 프로토콜(protocol)입니다.
그중 핵심적인 프로토콜 중 하나가 인터넷 프로토콜(Internet Protocol, IP)입니다.
인터넷 프로토콜은 다양한 네트워크를 거치는 기기 간 통신이 이루어지는 방식에 대한 규칙과 형식을 정의하는 특정 문법을 가지고 있습니다. 즉, 컴퓨터 간 통신을 가능하게 만드는 핵심 요소입니다.
이 규칙들이 담당하는 내용은 다음과 같습니다.
- 네트워크상의 각 기기를 식별하고 위치 파악하기
- 기기들 간의 상호 통신 수행
- 데이터 패킷의 형식과 전송 방식 정의
- 각 패킷이 목적지에 도달하는 방법 결정
- 라우터가 선택할 가장 빠르고 효율적인 경로 산출
- 오류 발생 시 처리 방법 결정
네트워크에 연결된 모든 기기에는 여러 네트워크를 통해 자신을 식별할 수 있는 고유한 방법이 필요합니다.
누군가에게 편지를 보내려면 우편 서비스가 배달할 곳을 알 수 있도록 받는 사람의 집을 특정할 방법이 필요합니다. 편지가 엉뚱한 사람에게 배달되길 원하지 않겠죠!
그래서 편지를 보낼 때는 목적지 주소로 받는 사람의 고유한 집 주소를 적고, 자신의 고유한 집 주소(발신인 주소)도 함께 적습니다.
모든 집은 자신을 식별하는 고유한 주소를 가지고 있습니다.
마찬가지로, 데이터를 주고받기 위해 인터넷상의 컴퓨터와 기기를 식별하는 방법은 바로 그들의 IP 주소를 아는 것입니다.
누군가에게 이메일을 보내려면 상대방 컴퓨터의 IP 주소를 알아야 합니다. 이메일은 더 작은 단위, 즉 패킷으로 나뉘어 전송되는데, 각 패킷에 IP 정보가 포함되어 있기 때문에 올바른 목적지에 도달할 수 있는 것입니다.
인터넷으로 무언가를 보낼 때는 각 패킷마다 목적지 주소와 발신 주소가 반드시 필요합니다. IP 주소야말로 컴퓨터들이 서로를 찾고 위치를 파악하는 수단입니다.
인터넷 프로토콜은 바로 이러한 IP 주소 지정 형식을 정의하는 역할을 담당합니다.
IP 주소란 무엇일까?
IP 주소는 네트워크 주소로, 컴퓨터 네트워크에 연결되는 모든 기기에 하나씩 할당됩니다.
IP 주소는 특정 형식으로 작성된, 기기에 부여된 고유한 숫자 나열이며, 상호 연결된 네트워크 안에서 모든 기기를 전 세계적으로 식별합니다.
앞서 언급했듯이, 각 기기에 고유한 IP 주소가 할당되어 있기 때문에 패킷이 정확한 목적지로 라우팅되고 기기들이 인터넷을 통해 정보를 주고받을 수 있는 것입니다.
다행히 인터넷으로 정보를 보내기 위해 IP 주소를 직접 다루거나 외울 일은 거의 없습니다. 모든 과정은 화면 뒤편에서 자동으로 이루어집니다.
혹시 궁금하다면 구글에 "내 IP 주소"라고 검색해보세요. 검색 결과 첫 번째에서 자신의 고유한 주소를 확인할 수 있습니다.
참고로 IP 주소에는 몇 가지 종류가 있으며, 아래 섹션에서 하나씩 살펴보겠습니다.
사설 IP 주소 vs 공인 IP 주소
누구나 공인(public) IP 주소와 사설(private) IP 주소라는 두 종류의 IP 주소를 가지고 있습니다.
공인 IP 주소는 인터넷 서비스 제공업체(ISP)가 여러분의 홈 라우터에 부여하는 것으로, 전체 로컬 네트워크의 대표 주소 역할을 합니다.
집에는 노트북, 스마트폰, 태블릿 등 여러 기기가 있을 수 있습니다. 각 기기는 자신만의 IP 주소를 가지지만, 동시에 모두 같은 대표 공인 IP 주소 아래에 속해 있습니다.
집안의 모든 기기가 이 대표 공인 IP 주소를 통해 인터넷에 접속하는 것입니다.
공인 IP 주소는 고유합니다. 즉, 동일한 시점에 똑같은 공인 IP 주소가 두 개 존재하지 않습니다.
앞서 말했듯이, 집에 기기가 여러 대 있다면 각각 고유한 IP 주소를 가지는데, 이것이 바로 사설 IP 주소이며 인터넷에 직접 접속할 수는 없습니다.
이 기기들은 공인 IP 주소를 가진 라우터를 경유해 인터넷에 접속하기 때문에, 라우터는 인터넷에 연결하기 전에 각 기기를 개별적으로 식별하고 구분할 방법이 필요합니다.
라우터는 각 기기에 개별적인 사설 IP 주소를 할당하고, 해당 기기가 인터넷에 접속하려 할 때마다 그 주소를 기억하는 방식으로 이를 처리합니다.
동적 IP 주소 vs 고정 IP 주소
공인 IP 주소는 동적(dynamic)과 고정(static) 두 가지 유형으로 나뉩니다.
기기가 인터넷에 접속하면 ISP는 접속이 유지되는 동안 사용 가능한 IP 주소 중 하나를 할당합니다. 이를 통해 기기가 데이터를 주고받을 수 있게 됩니다.
다음에 인터넷에 접속할 때는 ISP가 다른 IP 주소를 제공합니다. 즉, 인터넷에 접속할 때마다 IP 주소가 달라지는 것이죠. 이런 이유로 이 유형의 IP 주소를 '동적'이라고 부릅니다. 끊임없이 변하기 때문입니다.
반면 고정 IP 주소는 절대 변하지 않습니다. 영구적인 주소로, 한 번 부여되면 계속 동일하게 유지됩니다.
고정 IP 주소는 DNS 서버에서 자주 사용됩니다. DNS 서버는 웹사이트를 구성하는 파일들을 저장하는 대형 컴퓨터로, 사용자가 웹사이트 열람을 요청할 때마다 해당 파일들을 전송하는 역할을 합니다.
IPv4 vs IPv6 – 무엇이 다를까?
IPv4 주소란?
IPv4는 인터넷 프로토콜의 최초 버전이자 가장 널리 사용되는 버전입니다.
1980년 처음 도입되어 지금까지 사용되고 있습니다.
IPv4는 32비트 주소로, 4개의 블록으로 구성되며 각 블록은 점(.)으로 구분됩니다.
형태는 다음과 같습니다.
XXX.XXX.XXX.XXX각 블록에는 최대 3자리 숫자가 들어갈 수 있으며, 블록 내 숫자는 10진수 기준으로 0부터 255 사이의 값을 가집니다.
IP 주소의 예는 다음과 같습니다.
142.250.185.206또 다른 예시입니다.
69.171.250.35이 10진수 값들은 컴퓨터가 직접 이해할 수 있는 유일한 언어인 이진수(binary)로 변환됩니다.
실제로 이 10진수들을 이진수로 바꾸면 8개의 이진 숫자(비트)로 이루어진 4개 블록이 됩니다.
그래서 32비트 주소라고 불리는 것입니다. 32개의 이진 숫자로 구성된 주소이기 때문입니다.
예를 들어 앞서 본 142.250.185.206이라는 주소는 실제로는 다음과 같습니다.
10001110.11111010.10111001.11001110즉, 겉면 아래에서는 이렇게 이진수로 표현되는 것입니다.
따라서 2^32, 총 4,294,967,296개의 고유 주소가 존재합니다. 이것이 IPv4가 인터넷에 접속하는 각 기기에 제공할 수 있는 IP 주소의 한계입니다.
이 정도 숫자면 충분히 많아 보입니다. 하지만 인구가 계속 늘고 각 사람이 점점 더 많은 기기를 보유하면서(모든 기기가 자체 IP 주소를 필요로 하죠) 우리는 꽤 오랫동안 주소 고갈 문제에 직면해 왔습니다.
IPv6란?
IPv6는 1998년에 처음 배포된 인터넷 프로토콜의 최신 버전입니다.
IPv4의 후속 버전으로, 앞으로 점차 IPv6로 전환될 예정입니다.
IPv4가 숫자로만 된 주소인 반면, IPv6는 16진수의 영숫자(alphanumeric)를 사용합니다. 즉, 숫자와 문자를 모두 포함합니다.
IPv4가 최대 3자리 숫자를 담은 4개 블록을 사용한다면, IPv6는 4개의 16진수 문자를 담은 8개 블록을 사용합니다.
IPv4에서 각 블록은 점(.)으로 구분되지만, IPv6에서는 콜론(:)으로 구분됩니다.
따라서 IPv6 주소는 다음과 같은 형태입니다.
XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX예를 들면 다음과 같습니다.
2001:0db8:85a3:0000:0000:8a2e:0370:7334IPv6는 128비트 주소로, 2^128개의 주소를 사용할 수 있습니다.
즉, 340,282,366,920,938,463,463,374,607,431,768,211,456개의 주소를 인터넷에서 활용할 수 있습니다.
무려 340 언데시언(undecillion)개의 주소입니다. 이 정도면 모든 사람에게 충분할 것으로 기대됩니다!
마치며
여기까지가 인터넷 프로토콜의 기본 개념입니다. 인터넷 프로토콜은 모든 컴퓨터와 기기가 서로 연결되어 정보를 주고받을 수 있게 하는 기반 기술입니다.
또한 IPv4와 IPv6의 기본적인 차이점도 배웠습니다. 한 문장으로 요약하면, IPv6는 IPv4보다 훨씬 많은 IP 주소를 제공한다는 것입니다.
인터넷 작동 원리에 대해 더 알고 싶다면, 컴퓨터 네트워킹의 기초를 설명하는 freeCodeCamp 유튜브 채널의 영상을 확인해보세요.
읽어주셔서 감사합니다. 즐거운 학습 되세요 😊