인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에 부여되는 고유 주소.
일반적으로 192.152.123.152 같이 마침표로 구분된 4개의 숫자가 있는 점으로 분리된 10진수 형식으로 표시된다.
2진법으로 바꾸면 32비트 숫자가 된다.
Network ID는 전 세계 호스트들을 관리하기 힘드니 각 국가마다 Network ID를 부여하여 구분한다.
호스트 ID는 호스트들을 개별적으로 관리하기 위해 사용된다.
따라서 인터넷을 사용하여 목적지를 알아내고 찾아가기 위해서는 이 IP주소를 보게 된다.

192.168.10 으로 시작하는 PC는 모두 같은 네트워크에 속하고 있다고 할 수 있다.
IP 클래스를 A,B,C로 나눌 수 있다.
하지만 예를 들어 클래스 B를 어느 중소 기업체에게 할당했을 경우 만일 그 기업이 주어진 IP를 전부 사용하는 것이 아닌 일부분만 사용한다고 했을 때 남은 IP는 낭비가 된다.
그래서 이러한 문제 해결을 위해 IP를 사용하는 네트워크 장치 수에 따라 효율적으로 사용할 수 있는 서브넷이 등장했다.
서브넷이란 하나의 네트워크가 분할되어 나눠진 작은 네트워크이다.
서브넷을 만들기 위해 네트워크를 분할하는 것이 서크네팅이다.
서브네팅을 하면 IP 할당 범위를 더 작은 단위로 쪼갤 수 있다.
이 서브네팅을 서브넷 마스크를 통하여 계산되어 수행된다.
| CLASS | 대역 | 디폴트 서브넷 마스크 |
|---|---|---|
| A | 1.0.0.0 ~ 127.255.255.255 | 255.0.0.0 |
| B | 128.0.0.0 ~ 191.255.255.255 | 255.255.0.0 |
| C | 192.0.0.0 ~ 223.255.255.255 | 255.255.255.0 |
여기서 A 클래스의 네트워크 ID는 처음 8bit, 나머지 24bit는 Host ID.
B 클래스의 네트워크 ID는 처음 16bit, 나머지 16bit는 Host ID.
C 클래스의 네트워크 ID는 처음 24bit, 나머지 8bit는 Host ID.
ip주소에서 네트워크 ID와 호스트 ID로 구분하기 위한 목적으로 만들어졌다.
IP주소와 똑같은 32비트 2진수로 표현된다.
255.255.255.0
위처럼 연속된 1과 연속된 0으로만 구성되어 있다.
IP 주소가 192.168.0.1/24 라고 되어 있다면 /24 이 부분이 바로 서브넷 마스크이다.
32비트 중 앞에서부터 1의 개수가 24개라는 뜻으로 /24라면 255.255.255.0 이 되는 것이다.
서브네팅은 IP주소를 효율적으로 나누어 사용하기 위한 방법이다.
네트워크 성능 보장, 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼개는 작업을 한다.
호스트를 50개만 사용하는 기업이 있다면 192.168.10.0/24의 IP 주소일 때 C 클래스이므로 총 2의 8승인 256개의 주소를 할당하게 되는데 256개 전체를 주면 낭비가 되므로 256을 계속 반으로 나누어 64개를 기업에게 할당하고 남는 네트워크 주소는 다른 사용처로 할당하는 효율적인 작업을 하는 것이 서브네팅이다.
50개 호스트만 사용하는 회사에 192.168.10.0/24 면 C 클래스로 256개 호스트 주소를 주는데 주소 낭비가 심하므로 4등분으로 64개를 할당한다.

그림에서처럼 4등분을 하기 위해 서브넷 구분 비트를 왼쪽에서 2비트로 지정한다.
00, 01, 10, 11로 총 4개로 구분하기 위해서다.
범위를 지정해보면 다음과 같다.

이 범위대로 서브넷을 회사에게 할당해주면 된다.