¿Cuál es la diferencia entre 0.0.0.0 y una dirección IP de bucle invertido?

19

Del libro Computer Network :

La dirección IP 0.0.0.0 , la dirección más baja, es utilizada por los hosts cuando se inician. Significa '' esta red '' o '' este host ''.

... Todas las direcciones del formulario 127.xx.yy.zz están reservadas para pruebas de bucle invertido. Los paquetes enviados a esa dirección no se envían al cable; se procesan localmente y se tratan como paquetes entrantes. Esto permite que los paquetes se envíen al host sin que el remitente sepa su número, lo cual es útil para la prueba.

Si estoy en lo correcto, una dirección IP de bucle invertido se refiere al host actual.

¿Cuál es la diferencia entre 0.0.0.0 y una dirección IP de bucle invertido?

Tim
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Ron Maupin

Respuestas:

36

La declaración:

La dirección IP 0.0.0.0 [...] significa "esta red" o "este host".

es engañosa. No es un "o" sino "Este host en esta red".

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.

La dirección de bucle invertido (en realidad cualquier dirección en la red 127.0.0.0/8) se explica en el mismo RFC de esta manera:

{127, cualesquiera}

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

Por lo tanto, tanto una dirección de bucle invertido como la dirección de cero pueden ser referidas como "este host", pero de hecho tienen usos muy diferentes:

  • la dirección 0.0.0.0 se puede observar en una red, pero solo durante el proceso DHCP / BOOTP, y solo como una dirección de origen.

  • cualquier dirección en 127.0.0.0/8 no se puede ver en ningún lugar de la red y solo se puede usar para:

    • probando la pila TCP / IP del host.

    • dos aplicaciones en el mismo host para comunicarse entre sí.

Se adjunta una dirección 127.XXX a una interfaz de bucle invertido. Dicha interfaz no tiene una capa subyacente adjunta (es decir, no está adjunta a una capa de enlace). El paquete se procesa y se responde en la capa de Internet. Entonces, realmente no hay forma de que este paquete llegue a nada fuera del host.

Pero un paquete enviado desde 0.0.0.0 es procesado normalmente por la pila de red, excepto que no hay una decisión de enrutamiento, está vinculado a la interfaz que se está inicializando, por lo que se envía desde esta interfaz y pasa a través de la capa de enlace (que puede ser algo más que Ethernet), luego en la red.

JFL
fuente
En otras palabras, 0.0.0.0desde el punto de vista del anfitrión es "uno mismo". 127La dirección no es una referencia a un host, sino más bien una simulación de un host externo (aunque en realidad no es externo). Es eso correcto ? El RFC también establece "un datagrama cuya dirección de origen no define un solo host, por ejemplo, una dirección cero, una dirección de bucle invertido". Por lo tanto, si entiendo correctamente, a diferencia de otras direcciones, no significan un host externo en el red, pero sirven como referencia para diferentes cosas: uno mismo y una especie de host de "prueba".
Sergiy Kolodyazhnyy
Su cita es de la parte de ICMP. Establece que un ICMP inalcanzable no puede enviarse a una dirección 0. Dicha respuesta ICMP debería enviarse a la dirección 0, lo que violaría la regla "NO DEBE enviarse, excepto como dirección de origen". Además, la dirección 0 no se puede usar, excepto como parte de un proceso BOOTP / DHCP que se transmite por naturaleza, por lo que no tiene sentido enviar un mensaje de error ICMP para una transmisión.
JFL
@SergiyKolodyazhnyy editó la respuesta
JFL
12

Si estoy en lo correcto, una dirección IP de bucle invertido se refiere al host actual.

No. El tráfico enviado a una dirección de bucle de retorno regresa dentro del host. Puede enviar tráfico a una dirección de bucle invertido como la dirección de destino y luego leerlo. Esto es útil en las pruebas.

¿Cuál es la diferencia entre 0.0.0.0 y una dirección IP de bucle invertido?

Las direcciones en la 0.0.0.0/8red no se pueden usar como direcciones de destino. El único uso práctico es como una dirección de origen cuando un host no tiene una dirección y está pidiendo algo como un servidor DHCP para asignarle una dirección.


Existe el Registro de direcciones de propósito especial Iv IPv4 que enumera todos los bloques de direcciones especiales, y tiene enlaces a los RFC que definen cada uno de esos bloques.

Ron Maupin
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Ron Maupin