brunch

You can make anything
by writing

C.S.Lewis

by swimjiy Sep 13. 2020

[해치지 않는 웹] 5. 너의 주소는? IP

IP에 대한 개념부터 라우터로 통신하는 과정까지 

네트워크를 공부하지 않으셨더라도 IP란 용어는 숫하게 들어보셨으리라 생각합니다. 사이버 범죄를 수사하는 과정에서 IP 주소를 추적한다는 뉴스나 보안 상의 문제로 해외 IP주소를 차단하는 사이트 등 IP는 우리 주변에서 다양한 소식으로 존재감을 알립니다.

그렇다면 IP는 정확히 어떤 개념이며, 우리가 인터넷으로 어떤 사이트에 들어가고자 할 때 무슨 역할을 하고 있을까요? 또 항상 이슈로 나오는 IP고갈 문제는 무엇일까요?

이번 시간에는 이러한 IP에 대한 궁금점을 하나씩 풀어볼 예정입니다.




IP란?

IP는 Internet Protocol의 약자입니다. 프로토콜이 어떤 정보의 교환을 위한 규약 또는 체계를 의미하기 때문에 IP란 결국 인터넷 상에서 서로 데이터를 주고받을 때 필요한 규약이라고 볼 수 있죠.

우리가 유튜브 사이트에 들어가는 과정은 인터넷을 통해 이루어집니다. 좀 더 들여다보면 어떤 URL에 접근하고자 요청을 보내는 컴퓨터와 그 HTTP 요청에 대해 응답하고 필요한 데이터를 보내는 컴퓨터 간의 상호작용이겠지요. 이 과정 속에서 요청 메시지는 올바르게 작성했는지, 응답 메시지는 잘 작성했는지 등 인터넷 상에서 이루어지는 통신을 관리하는 일이 IP의 주요 역할입니다.


IP주소

앞서 설명한 것처럼 IP는 원활한 네트워크 통신을 위한 규약 중 하나입니다. 그렇다면 규약을 지키기 위한 방법은 무엇일까요? 가령 정확한 택배 서비스를 위해서는 정확한 주소지로 배달했는지가 중요하겠죠. 그러기 위해서는 필수적으로 배달할 집들을 구분하기 위한 '주소'가 필요한데, 이러한 고유 주소의 역할을 인터넷 상에서 하고 있는 게 바로 'IP 주소'입니다. IP주소를 통해 전 세계에 있는 수억 개의 컴퓨터를 구분하고 서로 헷갈리지 않게 통신할 수 있게 된 거죠.




IPv4, 그리고 IP 고갈

192.168.1.1처럼 우리가 익히 알고 있는 모양새는 IPv4라는 가장 널리 쓰이는 IP 주소 체계입니다. 4마디로 되어 있으며 총 32비트로 되어 있어 2의 32 제곱, 약 43억 개의 고유 주소를 만들어낼 수 있습니다. 그러나 43억 개라면 충분하겠지 라고 생각했던 당시 개발자들의 생각과는 다르게 인터넷이 빠르게 발전하고 PC뿐만 아니라 모바일, 태블릿 등에서도 IP를 사용하게 되자 고유 주소는 빠르게 소진되었고 결국 2011년에 관리 기관인 IANA에서는 IPv4의 할당 중지를 선언했습니다. IP 주소 고갈 문제가 대두되기 시작한 거죠.




IP 고갈의 대안들 (IPv6)

다행히도 발 빠른 개발자들은 고갈 문제를 해결하기 위한 다양한 방법들을 내놓았습니다. 그중 하나가 IPv4를 대체할 차세대 주소 체계 IPv6입니다. IPv4와 달리 콜론(:)을 이용한 구분이 특징이며 16진수로 표현하고 있습니다.

2606:2800:0220:0001:0248:1893:25C8:1946

또한 기존 32비트였던 IPv4와 달리 128비트의 공간을 갖고 있기 때문에 생성 가능한 주소의 수가 2의 128 제곱으로 무제한에 가까운 숫자만큼 할당이 가능합니다.


IPv6처럼 새로운 IP체계를 쓰자는 주장과 함께 다른 한 편에서는 이미 쓰고 있는 IPv4를 아껴 쓸 수 있는 방법을 찾자는 의견도 있었습니다. 환경오염 문제에 비유하자면 플라스틱을 대체할만한 친환경 소재를 쓰자는 의견과 재활용을 통해 플라스틱 사용량을 줄이자는 의견이라고 볼 수 있습니다. 친환경 소재는 좋은 대안이긴 하지만 갑작스레 전환하기에는 비용 면에서 부담이 크기 때문이죠.

IP주소 체계를 전환하는 일 또한 서비스 제공 업체의 경제적 부담이 크다는 이유 등으로 낮은 이용률을 보이고 있습니다. 그래서 기존 IPv4의 고갈을 최대한 지연시키면서도 통신 품질에는 영향이 없을만한 다양한 방법이 나왔는데 그중 하나가 사설 IP 주소와 공인 IP 주소로의 분리입니다.




사설 IP주소와 공인 IP주소

다시 택배 이야기로 돌아가 볼까요? 택배 배송지를 입력할 때 보통 기본 주소는 건물 주소를 쓰고, 상세 주소에 102동, 2층 등 건물 안에서 또다시 구분한 주소명을 쓰죠. 하나의 건물에는 여러 개의 가구가 있는데 그 가구들 하나하나 고유한 주소지를 붙이기에는 한계가 있기 때문에 건물 주소 뒤에 몇 층 몇 번째인지를 추가함으로써 구분하게 된 거죠. IP 주소도 이와 비슷합니다.

요즘에는 회사나 가정에서 하나의 라우터를 가지고 WIFI, 랜선 등을 이용해 여러 기기가 함께 사용하는 모습을 종종 볼 수 있습니다. 이때 라우터가 '건물'의 역할을 하고 고유한 주소인 공공 IP주소(Public IP Address)를 가지며, 그 안에서 인터넷을 사용하는 개인 기기들이 '건물 내 가구들'처럼 하나의 라우터 영역 안에서 각자를 구분하기 위한 사설 IP 주소(Private/Local IP Address)를 갖고 있습니다.

그리고 이렇게 라우터 내에서 PC, 스마트폰 등의 기기들이 연결된 지역 네트워크를 LAN(Local Area Network), 이런 LAN들을 연결한 광역 네트워크를 WAN(Wide Area Network)이라고 부릅니다. 

이렇게 라우터에 여러 대의 기기를 연결함으로써 개인 PC에는 일일이 고유 주소를 부여하지 않아도 되기 때문에 주소 고갈 문제를 어느 정도 해결할 수 있었습니다.


지금 사용하는 컴퓨터에서도 사설 IP와 공인 IP를 확인할 수 있습니다. 공인 IP는 google 검색창에 what is my ip라고 치면 확인할 수 있습니다. 

또한 사설 IP는 커맨드 창에 아래와 같이 입력하면 공인 IP주소와는 다른 사설 IP 주소를 확인할 수 있습니다.

// Windows
$ ipconfig

// Linux, Mac
$ ifconfig




사설 IP로 통신하는 과정

그런데 사설 IP 주소의 경우는 다른 동네 컴퓨터와 주소가 동일한 경우를 자주 목격할 수 있습니다. 그 이유는 사설 IP  주소가 하나의 라우터 안에서 겹치지 않게 할당받은 주소이기 때문인데요, 가령 집 주소만 해도 우리 집이 202호인데 옆 아파트에도 202호가 있을 수 있는 상황과 비슷합니다.

그렇다면 어떻게 중복되는 사설 IP 주소를 가지고 다른 컴퓨터와 통신을 주고받을 수 있는 걸까요? 이건 예시를 통해 차차 알아보겠습니다.

가령 우리가 귀여운 고양이 유튜브 영상 하나를 본다고 가정해봅시다. 사설 IP주소가 192.172.0.1이라면 HTTP 메시지는 가령 다음과 같겠죠.

이처럼 주문자, 즉 요청을 보내는 호스트는 사설 IP 주소로 되어있습니다. 그러나 라우터를 거치면서 자동으로 공인 IP 주소로 변경하여 전송하는데 이 과정이 가능한 이유는 바로 라우터에 탑재된 기능 중 하나인 네트워크 주소 변환, NAT(network address translation)때문입니다.

개인 PC에서 요청을 보내면 먼저 라우터에 메시지가 도착하고, 라우터는 NAT 기능을 이용해 호스트 주소를 공인 IP로 변경하여 유튜브 서버로 전달합니다. 유튜브 서버는 메시지에 응답하고 데이터를 라우터에 전달하고 최종으로 라우터가 처음 요청했던 개인 PC로 데이터를 보내게 됩니다.

이러한 중간 과정이 있기 때문에 사설 IP 주소를 할당받고 있음에도 다른 컴퓨터들과 데이터를 주고받을 수 있게 된 겁니다.




마무리

오늘은 IP에 대한 개념부터 IPv4 고갈 문제를 해결하기 위한 방법 중 IPv6와 사설 IP주소, 공인 IP주소를 알아봤습니다.

이 시리즈를 진행하면서 느낀 점은 별생각 없이 쓰고 있던 기능이나 개념들도 알고 보면 긴 역사를 갖고 있는 경우가 많다는 것입니다. 인터넷계의 주민번호 정도로만 알고 있던 IP도 오늘은 좀 더 새롭게 느껴지지 않나요?

또한 IP는 네트워크에서 중요한 개념이기 때문에 오늘 분량 상 못했던 얘기들도 포함하여 한 번 더 깊게 다뤄볼 예정입니다.

그럼 다음 시간에 또 뵙겠습니다.




참고자료

인터넷 프로토콜 - 위키백과, 우리 모두의 백과사전

IP - 나무위키

What is NAT? (2020) - YouTube

오십보백보 netwhat 시작하기

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari