인터넷에서 컴퓨터나 다른 네트워크 장치를 식별하는 고유한 번호이다.
IPv4는 총 32 비트로 구성되어있다. 그러나, 공간이 점차 부족해지고 보다 긴 주소 형식인 IPv6가 고안되었다.
이때, 네트워크 부분과 호스트 부분을 구분해야한다.
학교로 따지면 네트워크는 반을 의미하고 그 안에 학생이 여러명일 때, 호스트는 각 학생을 의미한다.
하나의 네트워크 안에 여러개의 IP를 가질 수 있고, 호스트로 구분한다.
이때, 어떻게 네트워크 안에서 IP를 쪼갤 수 있을까?
이름에서도 힌트가 있다. subnet을 하는 방식! subnetmask를 사용할 수 있다.
그렇다면, 네트워크에서 호스트를 나눠서 사용할 수 있다.
네트워크의 자원이 클 때, 즉 반에 에어컨이 들어져있습니다. 전기세가 나가고 있는데 반에 1명만 존재해요 그렇다면 매우 비효율적일 것입니다. 그렇다면 반에 많은 사람들이 들어가면 좋겠죠? 이렇게 자원을 효율적으로 사용하기 위해서 Internet에서 IP를 통해 network를 나눠서 사용하게 됩니다.
또한, 보안의 이유가 있을 수 있고 네트워크를 분산시켜 과부하를 방지할 수 있기 때문입니다.
총 32비트로 구성되어있고 8비트씩 1개의 옥텟으로 총 4 옥텟으로 ip address가 구성됩니다.
192.168.43.100 이라는 ip address가 있다고 합시다.
이때, 11000000, 10101000, 00101011, 01100100
으로 이진수로 변환 가능합니다
여기서 네트워크 부분은 뭐고 호스트 부분은 뭘까요?
192로 시작하는 것을 통해 네트워크 주소 범위와 호스트 영역을 알 수 있습니다.
어떻게 알 수 있는 걸까요?
이를 이해하기 위해서는 우선 IP ADDRESS의 클래스를 알아야합니다.
그렇다면 ip 주소 클래스에 대해서 먼저 이해합시다!
ip 주소 클래스
ip주소의 클래스는 a,b,c,d,e 총 5개의 클래스로 나눠져있습니다. 즉, 반이 총 5개라는 겁니다!
이때, d와 e는 보통 멀티캐스트와 실험용으로 사용되어 주로 다루지 않습니다.
클래스의 네트워크를 결정하는 요소는 가장 첫번째 옥텟입니다.
가장 첫번째 옥텟이 0으로 시작하는지 10로 시작하는지 혹은 110으로 시작하는지에 따라서 class가 결정되고 각 class마다 네트워크 수가 존재합니다.
a 클래스
가장 처음의 옥텟 IP가 무조건 0으로 시작해야합니다. +) 1번째 옥텟에 의해 네트워크가 결정됩니다. 나머지 3개의 옥텟에 의해 호스트가 결정됩니다.
그렇다면 네트워크 주소로 가능한 경우의 수는 8자리 중에서 1자리가 정해졌기에 2의 7승인 128가지겠죠?
b 클래스
가장 처음의 옥텟 IP가 무조건 10으로 시작해야합니다. +) 처음 2개의 옥텟에 의해 네트워크가 결정됩니다. 나머지 2개의 옥텟에 의해 호스트가 결정됩니다.
10으로 시작하고 11보다는 작아야하기에 128~191까지 첫번재 옥텟에 의해 64개의 경우가 나오고 다음 2번재 옥텟에 의해 256가지의 경우를 곱하면? 16,384라는 값이 나옵니다.
C 클래스
가장 처음이 옥텟 IP가 무조건 11으로 시작해야합니다. +) 처음 3개의 옥텟에 의해 네트워크가 결정됩니다. 나머지 1개의 옥텟에 의해 호스트가 결정됩니다.
11으로 시작하고 111보다는 작아야하기에 첫번재 옥텟은 192~223까지의 수가 가능합니다. 그렇기에 223-192+1인 32개와 256개와 256개의 조합 32×256×256=2,097,152 개가 네트워크 주소로 사용됩니다.
그럼 다시 돌아가서 192.168.43.100 이라는 ip address를 봅시다.
192는 맨 앞의 두 비트가 11로 시작합니다. 그렇기 때문에 C클래스인 것을 알 수 있습니다. 그리고, 네트워크 영역은 C클래스이기 때무에 192.168.43까지가 네트워크 영역입니다. 그렇다면 호스트는 ? 100입니다. 즉, 256개의 경우 중에서 브로드캐스트 주소(가장 마지막 주소-> 같은 네트워크의 모든 장비에게 보내는 통신을 위한 주소)와 네트워크 주소 (호스트 주소 중 가장 맨 처음 주소)를 제외하고 가능한 254개 중 1개의 경우를 갖고 있는 것입니다.
정리하자면,