Qual é a diferença entre 0.0.0.0 e um endereço IP de loopback?

19

Do livro Rede de Computadores :

O endereço IP 0.0.0.0 , o endereço mais baixo, é usado pelos hosts quando eles estão sendo inicializados. Significa '' esta rede '' ou '' este host ''.

... Todos os endereços no formato 127.xx.yy.zz são reservados para teste de loopback. Pacotes enviados para esse endereço não são colocados no fio; eles são processados ​​localmente e tratados como pacotes recebidos. Isso permite que os pacotes sejam enviados ao host sem que o remetente saiba seu número, o que é útil para teste.

Se estiver correto, um endereço IP de loopback se refere ao host atual.

Qual é a diferença entre 0.0.0.0 e um endereço IP de loopback então?

Tim
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Ron Maupin

Respostas:

36

A declaração:

O endereço IP 0.0.0.0 [...] significa '' esta rede '' ou '' este host ''.

é enganoso. Não é um "ou" mas "Este host nesta rede".

De RFC1122 :

{0, 0}

             This host on this network.  MUST NOT be sent, except as
             a source address as part of an initialization procedure
             by which the host learns its own IP address.

O endereço de loopback (na verdade qualquer endereço na rede 127.0.0.0/8) é explicado da mesma maneira RFC:

{127, qualquer}

             Internal host loopback address.  Addresses of this form
             MUST NOT appear outside a host.

Portanto, tanto o endereço de loopback quanto o endereço totalmente zero podem ser referidos como "este host", mas eles têm, de fato, usos muito diferentes:

  • o endereço 0.0.0.0 pode ser observado em uma rede, mas apenas durante o processo DHCP / BOOTP e apenas como endereço de origem.

  • qualquer endereço no 127.0.0.0/8 não pode ser exibido em nenhum lugar da rede e pode ser usado apenas para:

    • testando a pilha TCP / IP do host.

    • dois aplicativos no mesmo host para se comunicarem juntos.

Um endereço 127.XXX é anexado a uma interface de loopback. Essa interface não possui uma camada subjacente conectada (ou seja, não está conectada a uma camada de link). O pacote é processado e respondido na camada da Internet. Portanto, não há realmente nenhuma maneira desse pacote alcançar algo fora do host.

Mas um pacote enviado de 0.0.0.0 é processado normalmente pela pilha de rede, exceto que não há decisão de roteamento, ele está vinculado à interface que está sendo inicializada, portanto, é enviado para fora dessa interface e passa pela camada de link (que pode ser outra coisa que Ethernet), depois na rede.

JFL
fonte
Portanto, em outras palavras, 0.0.0.0do ponto de vista do host, é "eu". 127O endereço não é uma referência a um host, mas sim uma simulação de um host externo (mesmo que não seja de fato externo). Isso está correto? A RFC também declara "um datagrama cujo endereço de origem não define um único host - por exemplo, um endereço zero, um endereço de loopback". Portanto, se eu entendi corretamente, diferentemente de outros endereços, eles não significam um host externo no rede, mas servem como referência para coisas diferentes - auto e tipo de host "teste".
Sergiy Kolodyazhnyy
Sua cotação é da parte do ICMP. Ele afirma que um ICMP inacessível não pode ser enviado para um endereço 0. Essa resposta do ICMP teria que ser enviada para o endereço 0, o que violaria a regra "NÃO DEVE ser enviada, exceto como endereço de origem". Além disso, o endereço 0 não pode ser usado, exceto como parte de um processo BOOTP / DHCP que é transmitido por natureza, portanto não faz sentido enviar uma mensagem de erro ICMP para uma transmissão.
JFL
@SergiyKolodyazhnyy editou a resposta
JFL
12

Se estiver correto, um endereço IP de loopback se refere ao host atual.

Não. O tráfego enviado para um endereço de loopback volta para dentro do host. Você pode enviar tráfego para um endereço de loopback como o endereço de destino e depois lê-lo. Isso é útil nos testes.

Qual é a diferença entre 0.0.0.0 e um endereço IP de loopback então?

Os endereços na 0.0.0.0/8rede não podem ser usados ​​como endereços de destino. O único uso prático é como um endereço de origem quando um host não tem um endereço e está solicitando algo como um servidor DHCP para atribuir um endereço a ele.


Há o Registro de endereços para fins especiais IPv4 da IANA que lista todos os blocos de endereços especiais e possui links para as RFCs que definem cada um desses blocos.

Ron Maupin
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Ron Maupin