우리는 ip를 통해서 컴퓨터가 인터넷내에서 어떤 네트워크에 위치해있고, 어떤 호스트 주소를 가지는 지를 알 수 있다.
ip주소는 기본적으로 4바이트를 통해서 나타낼 수 있다.
네트워크 주소와 호스트 주소를 나타내는 방법으로는 크게 클래스풀 주소 체계, 클래스리스 주소 체계로 나눌 수 잇다.
클래스풀 주소 체계는 앞에서 부터 각 바이트 별로, 네트워크 주소를 나타내고, 뒤에는 호스트 주소를 나타내는데, 이를 클래스 화한 것이다.
A클래스는 첫번째 바이트를 네트워크 주소로 사용하고 나머지 바이트를 호스트 주소로 사용하는 것이다.
이 때 다른 클래스 들과의 구분을 위해서 0으로 무조건 시작한다.
따라서 네트워크주소는 2^7개를 나타낼 수 있고 호스트 주소는 2^24-2개를 만들 수 있다.
모두 0은 호스트 주소를,모두 1은 브로트캐스트 주소를 나타낸다.
B클래스는 네트워크 주소를 앞의 2바이트로 나타낼 수 있고, 01로 시작한다
따라서 네트워크 주소는 2^14개로 나타낼 수 있고, 호스트 주소는 2^16-2개로 나타낼 수 있다.
C클래스는 네트워크 주소를 앞의 3바이트로 나타낼 수 있고,
110으로 시작한다. 따라서, 2^21개의 네트워크 주소로 나타낼 수 있고, 2^8-2개의 호스트를 가질 수 있다.
이렇게 클래스를 나누어서, 네트워크 주소,호스트주소를 나타내면, ip주소의 낭비가 초래 될 수가 있다.
예를 들어서, 특정 조직에 컴퓨터가 255대라면 2^8-2개로 나타낼 수 없으므로, B클래스를 사용해야한다.
B클래스를 사용하면, 낭비가 많이 될 것이다.
이러한 문제 때문에, 나온 것이 클래스리스 주소 체계이다
클래스리스 주소 체계는 ip주소와 비트연산을 하는 서브넷 마스크를 이용해서 네트워크 주소와 호스트 주소를 구분하는 체계이다.
서브넷 마스크는 처음부터 연속된 1을 통해서 나타낼 수 있다.
예를 들어서 서브넷 마스크를 255.255.255.0, ip주소가 168.168.168.168인 경우 비트 연산을 통해서 네트워크 주소인 168.168.168.0으로 알아낼 수 있다.
서브넷 마스크는 연속된 1로 표현하므로, 숫자로 표현 가능하다.
따라서 IP주소/서브넷 마스크 비트열의 1의 수
형태로 나타낼 수 있다.
위의 케이스에서는 168.168.168.168/24와 같이 표기할 수 있다.