O TCP/IP versão 4 possui 32 bits. Com isso, temos mais de 4 bilhões de endereços disponíveis. Mas hoje em dia temos mais de 6 bilhões de pessoas no mundo, ou seja, logo de cara já temos uma falta de pelo menos 2 bilhões de endereços.
Para piorar esse problema, muitas empresas precisavam (e precisam) ter vários endereços. Para amenizar isso, a princípio, foi necessário dividir os endereços IP em 5 intervalos, conforme a figura abaixo.
Na classe A, o primeiro número do IP definia a rede, e os três últimos definiam as máquinas dentro da rede. Portanto, uma grande empresa que tivesse um endereço 60.0.0.0 tinha a sua disposição 256x256x256 máquinas na rede (2 elevado a 24), totalizando cerca de 16 milhões de IPs.
Na classe B, os dois primeiros números definiam a rede, e os dois últimos definiam as máquinas dentro da rede. Portanto, uma empresa que tivesse um endereço 180.10.0.0 teria a sua disposição 256x256 máquinas em sua rede (2 elevado a 16), totalizando cerca de 64 mil IPs.
Na classe C, os três primeiros números definiam a rede, e o último definia as máquinas dentro da rede. Portanto, uma empresa que tivesse um endereço 200.221.28.0 teria a sua disposição 256 máquinas em sua rede (2 elevado a 8). Na verdade, são 254 endereços disponíveis, pois o primeiro e o último são reservados. Vou explicar isso mais pra frente.
A classe D é usada para aplicações Multcast, ou seja, quando uma estação precisa se comunicar com várias máquina. Mais informações em:
http://pt.wikIPedia.org/wiki/Multicast
A classe E é usada para testes pela equipe que cuida da Internet.
Com esse esquema de classes, uma empresa poderia se adequar à classe de acordo com o número de IP que precisasse.
Mas há outros problemas com essa classificação. Suponha que uma grande empresa precisasse de 100.000 endereços. A classe B é pequena para ela, mas a A é muito grande, pois dos cerca de 16 milhões de endereços disponíveis da classe A, somente serão usados 100.000. O restante não poderia ser usado por mais ninguém. Uma empresa pequena, que necessitasse de 10 endereços, faria parte da classe C, mas ainda sobrariam 243 endereços que não poderia ser usados por mais ninguém.
Já deu pra perceber que muita gente ficaria sem IP muito cedo! Essa falta de endereços IP (versão 4, ou simplesmente IPv4) já está ocorrendo. Veja os links sobre o esgotamento do IPv4:
Mas você pode estar se perguntando: porquê as classes foram divididas com esses intervalos quebrados (128, 192, 224, 240) ao invés de números redondos (50, 100, 150, 200)? É simples! Nós, humanos, estamos acostumados com a numeração decimal, mas os computadores preferem a binária. Para ficar mais claro vamos ver o intervalo das classes em decimal e binário para comparar.
Fica claro que todo endereço que começa com binário 0 é classe A, qualquer endereço que começa com 10 binário é classe B, tudo que começa com 110 binário é classe C, todo endereço que começa com 1110 binário é classe D, e tudo que começa com 1111 binário é classe E.
Assim basta o computador ler os quatro primeiros bits do endereço para saber a qual classe ele pertence.
Mas como resolver o problema de falta de IP?
O protocolo tcp/IP mais utilizado hoje é a versão 4, mas a versão 6 já está sendo usado, e ela contém 128 bits. Ou seja, é possível utilizar aproximadamente 256.000.000.000.000.000.000.000.000.000.000.000.000 máquinas na rede. Porém, a adoção do IPv6 é muita cara, e faltam profissionais capacitados.
Para amenizar isso foram criadas duas soluções para o IPv4: os IPs inválidos e a máscara de sub-rede.