Jaka jest różnica między 0.0.0.0 a zapętlonym adresem IP?

19

Z książki Computer Network :

Adres IP 0.0.0.0 , najniższy adres, jest używany przez hosty podczas ich uruchamiania. Oznacza „tę sieć” lub „ten host”.

... Wszystkie adresy formularza 127.xx.yy.zz są zarezerwowane do testowania w pętli zwrotnej. Pakiety wysłane na ten adres nie są wysyłane na drut; są przetwarzane lokalnie i traktowane jako pakiety przychodzące. Umożliwia to wysyłanie pakietów do hosta bez znajomości jego numeru przez nadawcę, co jest przydatne do testowania.

Jeśli mam rację, zwrotny adres IP odnosi się do bieżącego hosta.

Jaka jest zatem różnica między 0.0.0.0 a adresem IP sprzężenia zwrotnego?

Tim
źródło
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Ron Maupin

Odpowiedzi:

36

Wyrok:

Adres IP 0.0.0.0 [...] oznacza „tę sieć” lub „ten host”.

wprowadza w błąd. To nie jest „lub”, ale „Ten host w tej sieci”.

Z 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.

Adres sprzężenia zwrotnego (właściwie dowolny adres w sieci 127.0.0.0/8) jest wyjaśniony w tym samym RFC w ten sposób:

{127, dowolny}

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

Zatem zarówno adres sprzężenia zwrotnego, jak i adres zerowy można nazwać „hostem”, ale w rzeczywistości mają one bardzo różne zastosowania:

  • adres 0.0.0.0 można zaobserwować w sieci, ale tylko podczas procesu DHCP / BOOTP i tylko jako adres źródłowy.

  • żadnego adresu w 127.0.0.0/8 nie można wyświetlić w dowolnym miejscu w sieci i można go używać tylko do:

    • testowanie stosu TCP / IP hosta.

    • dwie aplikacje na tym samym hoście do komunikacji.

Adres 127.XXX jest dołączony do interfejsu pętli zwrotnej. Taki interfejs nie ma dołączonej warstwy bazowej (tzn. Nie jest dołączony do warstwy łącza). Pakiet jest przetwarzany i odbierany w warstwie internetowej. Tak więc naprawdę nie ma sposobu, aby ten pakiet dotarł do czegokolwiek poza hostem.

Ale pakiet wysłany z 0.0.0.0 jest przetwarzany normalnie przez stos sieciowy, z tym wyjątkiem, że nie ma decyzji o routingu, jest powiązany z inicjującym się interfejsem, więc jest wysyłany z tego interfejsu i przechodzi przez warstwę łącza (która może być coś innego niż Ethernet), a następnie w sieci.

JFL
źródło
Innymi słowy, 0.0.0.0z punktu widzenia gospodarza jest to „ja”. 127adres nie jest odniesieniem do hosta, ale raczej symulacją hosta zewnętrznego (nawet jeśli tak naprawdę nie jest zewnętrzny). Czy to jest poprawne ? RFC stwierdza również „datagram, którego adres źródłowy nie definiuje pojedynczego hosta - np. Adres zerowy, adres zwrotny”. Więc jeśli dobrze rozumiem, w przeciwieństwie do innych adresów, nie mają one oznaczać zewnętrznego hosta na sieć, ale służą jako punkt odniesienia dla różnych rzeczy - siebie i swego rodzaju hosta „testowego”.
Sergiy Kolodyazhnyy
Twój cytat pochodzi z części ICMP. Stwierdza, że ​​nieosiągalny ICMP nie może zostać wysłany na adres 0. Taka odpowiedź ICMP musiałaby zostać wysłana na adres 0, co naruszałoby zasadę „NIE MOŻNA przesyłać, z wyjątkiem adresu źródłowego”. Nie można również użyć adresu 0, chyba że jako część procesu BOOTP / DHCP, który ma charakter rozgłoszeniowy, więc nie ma sensu wysyłać komunikatu o błędzie ICMP dla rozgłoszenia.
JFL
@SergiyKolodyazhnyy zredagował odpowiedź
JFL
12

Jeśli mam rację, zwrotny adres IP odnosi się do bieżącego hosta.

Nie. Ruch przesyłany na adres zwrotny zapętla się z powrotem w hoście. Możesz wysłać ruch na adres zwrotny jako adres docelowy, a następnie go odczytać. Jest to przydatne w testowaniu.

Jaka jest zatem różnica między 0.0.0.0 a adresem IP sprzężenia zwrotnego?

Adresów w 0.0.0.0/8sieci nie można używać jako adresów docelowych. Jedynym praktycznym zastosowaniem jest adres źródłowy, gdy host nie ma adresu i prosi coś takiego jak serwer DHCP o przypisanie mu adresu.


Istnieje specjalny rejestr adresów IANA IPv4, który zawiera listę wszystkich specjalnych bloków adresów i zawiera łącza do specyfikacji RFC, które definiują każdy z tych bloków.

Ron Maupin
źródło
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Ron Maupin