이전 포스팅 Network #1. Intro
오늘은 IP 주소에 대해서 내용을 정리해보려고 한다. TCP/IP라는 프로토콜을 만들 때 이 프로토콜에서 사용하는 모든 장비들을 구분해 주기 위해서 만들어 낸 것이 IP 주소이다.
우리는 현재 IPv4라는 인터넷 프로토콜을 사용한다. 물론 오늘날에는 IPv6도 있지만, 아무래도 대중화된 프로토콜은 IPv4일 것이다. IPv4는 32 bit로 이루어진 숫자이며 총 네 구간으로 나누어져 있는데 각 구간은 8bit 이므로 0에서 255까지 숫자가 가능하다. 따라서 0.0.0.0 ~ 255.255.255.255까지 IP 주소로 사용할 수 있는 것이다. 산술적으로 보았을 때 2^32 = 약 40억 정도 되는데 실제로 전 세계에 존재하는 IP 주소는 그보다는 약간 적다.
우리가 근거리 네트워크에서 사용하는 IP 주소를 보면 모든 주소가 다 다른 것이 아니라 일부분만 다르다. 이에 대해서 조금 더 자세하게 알아보면 아래의 그림에서 네트워크 32bit 주소는 네트워크 파트와 호스트 파트로 나누어져 있다는 것을 알 수 있다. 예를 들어 네트워크 파트가 24bit이면, 호스트 파트는 8bit 인 것이다. 여기서 /24를 netblock 이라고 한다.
넷블락에 따라 해당 네트워크 안에서 사용할 수 있는 IP 주소의 갯수가 달라진다. 예를 들어 넷블락이 /24라면, 호스트 부분은 8bit가 남게 되고 사용할 수 있는 주소는 2^8-3 = 253 개를 사용할 수가 있다. 3을 빼주는 이미 자리가 정해진 두 개와 라우터 하나를 빼 주어야 하기 때문이다. IP 주소를 배정할 때는 그 네트워크에 몇 개의 호스트가 접속이 가능한지를 먼저 확인한 후에 배정하는 주소가 이 호스트를 모두 포함할 수 있는지를 확인해야 한다.
서브넷 마스크는 32개의 이진수로 왼쪽에 1, 오른쪽에 0으로 이루어진 수로 IP 주소를 가지고 어디까지가 네트워크 부분이고, 어디까지가 호스트 부분인지를 나타내는 역할을 한다. 예를 들어 아래에서 /24 넷블락의 서브넷 마스크는 왼쪽에 24개의 1과 오른쪽의 8개의 0으로 이루어진 255.255.255.0이 되는 것이다. 네트워크 사이즈를 파악하기 위해 넷블락과 서브넷 마스크는 꼭 알아야 하는 개념이다.
여기서 한 가지 짚고 넘어가야 하는 사실은 호스트, 즉 여러분의 컴퓨터가 IP 주소를 가지고 있다는 말은 사실 틀린 말이다. 정확히는 호스트 안의 인터페이스들이 ip 주소를 가지고 있다. 예를 들면 Ethernet Interface, Wifi Interface, Loopback Interface 등등 말이다.
라우터는 여러 네트워크를 하나로 연결해 주는 장치이다. 아래의 그림에서는 ISP(인터넷 서비스 제공자)의 LAN이나, 여러 ISP 네트워크를 서로 연결하는 역할을 한다. 라우터는 WAN과 LAN을 연결해 준다. 라우터를 거치지 않고 통신이 가능한 영역을 하나의 네트워크라고 부른다.
인터넷이 라우터에게 하나의 public address 를 전달하면 그 라우터에 연결된 기기들은 private address를 사용한다. private address는 유일한 값이 아니어서(전 세계에 하나만 있는 그런 unique), 인터넷에 직접 접근할 수는 없다.
전세계에서 192.168.0.13 을 사용하는 사람은 정말 많을 테지만 각각의 NAT 아래에 있고 이들은 서로 독립된 네트워크 안에서 존재한다. NAT은 어떻게 보면 IP주소를 전 세계의 모든 사람이 사용할 수 없기 때문에 나온 대안이지, 완벽한 해결책은 아니다. 이 문제를 해결하기 위해 나온 것이 IPv6이다.
참고자료
- <시스코 네트워킹> (진강훈 저)
- https://www.udacity.com/course/networking-for-web-developers--ud256
'Computer Sci. > Network' 카테고리의 다른 글
[네트워크] TCP/IP (0) | 2021.05.12 |
---|---|
[네트워크] 이더넷(Ethernet) (0) | 2020.12.14 |
[네트워크] OSI 7계층, TCP/IP 4계층 모델 (0) | 2020.11.25 |
[네트워크] 토폴로지, 네트워크 구현, 장치들 (0) | 2020.10.05 |
Network #1. Intro. (0) | 2020.05.13 |