Da teoria, cada parte de um endereço IP é um número entre 0 e 255 (256 slots utilizáveis no total).
Mas por que 0
não é usado em nenhum endereço IP em sua 4ª parte e eles sempre começam em 1 nos cálculos de endereços IP?
Por exemplo:
127.0.0.1 <=== logically this should start from 0 as the first usable IP address.
192.168.0.1 <=== for example even default router IP address is set to 1 rather than to be 0
10.10.0.1
.
.
Por que o 0
slot é sempre ignorado na última parte?
No IPv4, o primeiro endereço de uma sub-rede é reservado por motivos pouco claros, na verdade, mas provavelmente porque há muito tempo costumava ser o endereço de "transmissão". (Mais tarde, o último endereço tornou-se o endereço de broadcast padrão.)
Então, hoje em dia, pode ser possível usar o primeiro endereço, tecnicamente, mas a maioria das pilhas de rede existentes ainda o trata como "reservado" (mais ou menos como todo o espaço ex-"Class E" 240.0.0.0/4 se tornou acidentalmente inutilizável).
Observe que é especificamente o primeiro endereço de uma sub-rede e nem sempre o
0
endereço. Esses só correspondem no caso de uma sub-rede /24. Mas, por exemplo, uma sub-rede /16 terá.0.0
reservado, mas não.1.0
ou.47.0
– esses estão no meio do /16, então são endereços de host perfeitamente válidos.(E, por outro lado, uma sub-rede /27 menor poderia começar não apenas em,
.0
mas também em.32
ou.192
– essas seriam novamente reservadas em /27, mesmo que não fossem reservadas em /24.)Observe também que isso se aplica apenas a sub-redes de transmissão (por exemplo, ethernet). Esses endereços ainda podem ser usados em links ponto a ponto ou roteados individualmente como /32's.
Nas especificações IPv4, o endereço mais baixo em qualquer rede IPv4 é reservado como o endereço de rede que tem uma finalidade distinta do endereço de transmissão que normalmente é o endereço mais alto da rede (embora possa ser configurado de maneira diferente se você estiver procurando diversão) . A ideia de um endereço de rede faz mais sentido antes das redes sem classe e das máscaras de sub-rede. O conceito por trás de sub-redes e máscaras de sub-rede era um complemento ao IPv4 não presente na especificação original.
Atualização: Não há nada de mágico sobre ele terminar em ".0", mas simplesmente que é o endereço mais baixo em uma sub-rede (que nem sempre pode ser .0).
Originalmente, o IPv4 era classful e dividido em 5 classes; A, B, C, D e E. Redes classe A são todos IPs que têm o bit significativo mais alto como 0 ou, em outras palavras, IPs de 0.0.0.0 a 127.255.255.255. Os endereços IPv4 cujos dois bits superiores são 10 são da classe B que corresponde aos endereços 128.0.0.0 a 191.255.255.255. A classe C começa 110xxxxx em seu primeiro octeto ou endereços 192.0.0.0 a 223.255.255.255. A classe D tem um primeiro octeto correspondente a 1110xxxx, fornecendo os IPs 224.0.0.0 a 239.0.0.0. Finalmente, a Classe E é 1111xxxx ou IPs 240.0.0.0 a 255.255.255.255. Os endereços classe E são considerados reservados e não têm uso definido, com exceção especial de 255.255.255.255. Classe D são endereços multicast usados para enviar pacotes para grupos de computadores juntos. As classes AC são seus IPs unicast normais, onde os dispositivos individuais obtêm um IP em alguma rede.
Com isso dito, o que define o tamanho de cada rede é sua classe. As redes de classe A são definidas para ter os primeiros 8 bits ou o primeiro octeto como parte da rede do endereço e os 24 bits restantes são a parte específica do host do endereço em uma única rede IPv4. A classe B dividiu em 16 bits e 16 bits ou 2 octetos cada. As redes de classe C usaram os primeiros 24 bits como parte da rede e os últimos 8 bits como parte do host. Em termos modernos, uma rede de classe A tem uma sub-rede /8, a classe B é uma /16 e a classe C é uma sub-rede /24. A separação entre a parte da rede e do host do endereço IPv4 é importante para o roteamento de pacotes e é como qualquer dispositivo decide se pode enviá-lo diretamente para o sistema na rede local ou se deve enviá-lo a um roteador para encaminhá-lo para outro lugar . Antes das pilhas e protocolos de rede IPv4 implementarem a sub-rede,
Você pode ver resquícios disso em protocolos como o protocolo de roteamento RIPv1. Ele apenas anuncia IPs, não máscaras de sub-rede, portanto, a distinção entre um endereço de host e um endereço de rede foi fundamental. Se um endereço RIPv1 anunciou um endereço de 192.0.0.0, esse é o endereço mais baixo em uma rede de classe B, portanto, é o endereço de rede para toda a rede. Ele informaria a outros dispositivos que todos os sistemas de 192.0.0.0 a 192.0.255.255 estavam disponíveis nessa rota (já que a classe B usa os dois primeiros octetos para rede, 192.0 neste exemplo). No entanto, se ele anunciou 192.0.0.1, esse não é o endereço mais baixo nessa rede, portanto, é um endereço de host. Isso significa que o RIPv1 está anunciando uma rota para um único host específico, não para uma rede inteira. Talvez seja um modem dial-up ou tenha algum outro motivo para obter uma rota exclusiva,
Agora que as sub-redes são comuns e os protocolos mais novos, como o RIPv2, enviam a máscara de sub-rede junto com o IP, todo o conceito de endereço de rede é um pouco redundante, mas estamos presos a ele por motivos históricos. Uma rota específica do host pode ser anunciada com uma máscara de sub-rede de 255.255.255.255, mas ainda temos que manter a compatibilidade com o software que assume que um endereço de rede está presente na parte inferior do intervalo de rede.
Atualizar:Para esclarecer melhor, aqui estão alguns exemplos. Se você dividir o intervalo de endereços IP 10.xxx em /26 sub-redes, isso dará a cada sub-rede 64 endereços totais (62 utilizáveis para hosts), já que apenas 6 bits do IP de 32 bits permanecem para a parte do host. Os primeiros cinco endereços de rede de sub-rede seriam 10.0.0.0, 10.0.0.64, 10.0.0.128, 10.0.0.192 e 10.0.1.0. Os endereços de broadcast padrão seriam o endereço mais alto na sub-rede e corresponderiam a 10.0.0.63, 10.0.0.127, 10.0.0.191 e 10.0.1.63, respectivamente. Se, em vez disso, fosse usada uma sub-rede /23, cada rede teria 512 endereços (510 utilizáveis). As primeiras cinco sub-redes são 10.0.0.0, 10.0.2.0, 10.0.4.0 e 10.0.6.0. Os endereços de broadcast correspondentes são 10.0.1.255, 10.0.3.255, 10.5.255 e 10.7.255. Observe que, neste último exemplo, 10.0.1.0, 10.0.3.0 e assim por diante não são endereços de rede. Eles são perfeitamente utilizáveis como IPs regulares para hosts porque estão no meio do intervalo de sub-rede. Apenas os primeiros e últimos endereços são especiais. 10.0.0.255 também pode ser usado de forma semelhante como um host regular.
Com relação ao título da sua pergunta, pelo menos no Linux,
127.0.0.0
é um endereço perfeitamente útil (que, como qualquer outro127.*
endereço, mapeia para a interface de loopback).Por exemplo, posso iniciar um servidor web em
127.0.0.0:8080
:E então inicie outro vinculado a
127.0.0.1:8080
:E agora posso acessar esses servidores em seus respectivos endereços:
Muitas décadas atrás, o endereço 127.0.0.0/8 foi designado como um endereço de loopback interno. Adequado apenas para tráfego local com o PC local.
Desde que a decisão foi tomada anos atrás, todos os fabricantes de roteadores designaram esse endereço como não roteável. Muitos roteadores antigos podem ser codificados e não removíveis. Alguns exigiriam um novo firmware, e o fabricante os designou como fim de linha para que nunca recebam um novo firmware. Isso exigiria que muitas centenas, senão milhares de roteadores fossem substituídos. Alguns existem que você pode reprogramar.
Portanto, cada roteador na Internet descartará qualquer destino de tráfego para o endereço 127.0.0.0/8. O tráfego nunca passará pela internet devido a isso.
Literalmente dezenas de milhares de roteadores teriam que ser reprogramados para permitir que esse endereço fosse roteado. Um único roteador não compatível entre você e seu destino e o pacote nunca chegará até você.
Mesmo que a mudança fosse feita agora, levaria anos para que os pacotes chegassem a ela de forma confiável.
No IPv4, qualquer IP que termine em .0 significa que é um endereço de rede (padrão) quando você usa o prefixo /24. Você não pode usar este endereço e atribuí-lo a um computador. Os IPs 'permitidos' a serem atribuídos são de .1 a .254. Você também não pode usar .255 porque ele é usado como endereço de 'difusão' para a rede.
A pergunta está carregada - endereços IPv4 não são o que você afirma, mas podem ser representados como quatro números entre 0 e 255 (mas muitas outras representações são possíveis, usadas e válidas, como 10.5, 0x7f.0 e assim por diante).
O que você está se perguntando é por que o primeiro endereço em uma sub-rede geralmente não é usado. Mas isso não tem nada a ver com um octeto ser zero, pois os exemplos a seguir mostram que são todos os primeiros endereços dentro de sua sub-rede: 10.0.0.248, 127.1.0.160, 192.168.101.2.
A razão pela qual o primeiro endereço é frequentemente reservado tem razões históricas e de compatibilidade - se você puder desperdiçar o primeiro endereço, pode ser prudente melhorar a compatibilidade com dispositivos antigos e quebrados. Como os endereços IPv4 são premium hoje em dia, isso se torna menos comum.