대한민국 국민이라면 모두 갖고 있는게 있다.
바로 주민등록번호!
주민등록번호는 대한민국에서 우리가 누군지 나타내기 위한 정보이다.
컴퓨터도 동일하다. 우리가 누군가에게 이메일을 보낸다면 어떤 정보를 보고 보낼 것인가?
이때 사용되는 컴퓨터의 주소 즉, Host에 대한 식별자가 바로 IP (internet protocol) 이다.
우리가 현재 사용하는 IP는 IPv4 와 IPv6를 따르고 있다.
IPv4는 총 32bit 길이의 식별자로 0.0.0.0 ~ 255.255.255.255까지 한칸당 1byte의 정보를 담고있다.
이렇게 만들 수 있는 주소는 2^32 ~ 약 43억개 정도의 주소가 나온다.
하지만 점차 사용되는 컴퓨터의 수가 늘어나자 현재는 주소 고갈 문제에 직면해 있다.
이를 해결하기 위해 나온 것이 IPv6 이다.
IPv6는 총 128bit 크기의 식별자이다. 16bit씩 8개 블럭으로 나뉘어져있다.
16bit를 다시 4개의 16진수로 변환해서 표현한다.
ex) 2001:0230:abcd:ffff:0000:0000:ffff:1111
하지만 보편적으로 아직까지 우린 IPv4를 사용하고 있고
이 뒤로 IP주소라고 말하면 IPv4주소라고 생각하면된다.
넷마스크는 무엇일까? 이것을 알려면 Network ID와 Host ID를 알아야 한다.
IP 주소 ex) 192.124.24.6 를 잘라서
앞부분을 Network ID 뒷부분을 Host ID라고 한다.
..?? 그럼 어디까지가 Network ID인지 어떻게 알아요???
그것을 알려주는 것이 바로 넷마스크(서브넷마스크)이다.
cmd에 ipconfig를 명령하면 이렇게 ip주소를 돌려준다.
여기서 서브넷 마스크라고 적힌 부분을 보면 255.255.255.0이라고 나와 있는 것을 볼 수 있다.
이것으로 Network ID를 아냐?
바로 IP주소와 서브넷 마스크를 AND연산을 하면 알 수 있다.
서브넷 마스크를 2진수로 보면
111111111.111111111.111111111.00000000 이다.
이것과 IP주소를 AND연산하면?
당연히 192.124.24.0이 나온다. ==> 이게 바로 Network ID
그 뒷부분은 Host ID 이다. 여기서 우리가 알 수 있는 것은 Host ID는 0~255까지 가능하니까
우리집 공유기에 연결할 수 있는 기기는 최대 256개구나~ 라고 알 수 있다.
이렇게 서브넷 마스크를 표현할때 아래같은 방법도 사용한다.
IP주소 192.124.24.6 / 24 ==> 이렇게 뒤에다 24를 적으면 "24bit 만큼 서브넷마스크를 사용한다~"는 뜻이다.
[추가]
서브넷 마스크는 넷마스크의 일종인데 클래스별로 나뉜다.
A class - 255.0.0.0
B class - 255.255.0.0
C class - 255.255.255.0
==> 즉 네트워크 주소의 범위를 모두 1비트로 사용하는 것을 기본 서브넷 마스크라고 한다.