원래 32비트 IPv4 주소는 호스트가 연결되어있는 특정 네트워크를 가리키는 단순히 8비트의 네트워크 영역과 해당 네트워크 내에서 호스트의 주소를 가리키는 나머지 영역으로 단순하게 구분되어 있었다. 참고로 이 형태는 랜 도입 이전에 정해졌는데, 이때는 ARPANET과 같은 적은 수의 대규모 네트워크밖에 없었다.
클래스
덕분에, IP 주소의 정의가 바뀌었으며, 3개의 다른 크기의 네트워크 영역이 다음 표와 같이 정의되었다.(비트단위)
이는 각 클래스당 다음과 같은 수의 네트워크 및 주소를 가능하게 한다. 단, 실제 개수가 예상보다 작다는 것을 유념하기 바란다. 이는 몇몇 값들, 예를 들어 0만으로 이루어진 값등은 허용되지 않기 때문이다.
클래스
앞선 비트
총 네트워크 수
네트워크당 주소 수
클래스 A
0
128
16,777,214
클래스 B
10
16,384
65,534
클래스 C
110
2,097,152
254
기존에 비해 더욱 커진 네트워크 표시 영역은 더 많은 수의 네트워크를 가능하게 해주었고, 이로 인해 임시적이나마 인터넷의 지속적인 성장을 유지할 수 있었다.
오늘날 IP 주소와 함께 널리 사용되는IP 주소 넷마스크는 필요없었는데, 이는 마스크의 길이가 순전히 IP 주소로부터 판별 가능했기 때문이다. 즉, 누구라도 IP의 첫 몇 비트만 보면 어떠한 클래스에 속하는지 알 수 있었기 때문이다.
어떤 주소가 다른 주소와 동일한 물리 네트워크에 속해있는지를 판단하는 이러한 간단한 방법은 효율적으로 동작했다(서브넷참조). 각각의 주소에 대해 네트워크의 번호를 추출해내고, 주소의 나머지 부분은 무시되었다. 네트워크 번호가 동일하다면, 두 주소는 동일한 네트워크로 보내어지게 되는 것이다.
클래스의 변경
하지만, 이러한 첫 번째의 변화는 오래가지 못했다. IP 주소 부족은 여전히 계속되었다. 가장 큰 문제는 대부분의 사이트들은 "클래스 C"에 들어가기에는 너무 컸고, 대신 "클래스 B"를 할당받았다. 인터넷의 빠른 발전과 함께, 클래스 B의 가능한 주소는(기본적으로 214 즉 약 16,000개) 급속도로 소진되어 갔다. 이러한 문제 및 다른 여러 문제를 해결하기 위해 1993년경부터 네트워크 클래스는 사이더에 의해 대체되게 되었다.
IANA에 의한 초기 IP 주소의 할당은 효율적으로 이루어지지 못하였으며, 이는 문제를 악화시켰다. (하지만, 몇몇 기관이 불공평하게, 그리고 부적절하게 클래스 A를 가져갔다는 널리 퍼진 생각은 허위이다. 대부분의 그런 할당은 클래스의 도입 이전으로 거슬러 올라간다. 즉, 그때 할당한 주소들이 훗날 클래스 A라 불리게 되었을 뿐이었다.)
유용한 표
클래스 범위
각 클래스에 사용되는 주소 범위는 다음 표에 일반적인 점과 10진법의 표기로 나타나 있다.