255.255.255.255 vs 192.168.1.255

18

Próbujemy debugować niektóre aplikacje wykonujące transmisję.

Jaka jest różnica między adresem rozgłoszeniowym 255.255.255.255 a jak np. Zgłoszonym przez ifconfig, Bcast: 192.168.1.255

nos
źródło
To pytanie i odpowiedzi wyjaśniają.
Ron Maupin

Odpowiedzi:

37

Adres rozgłoszeniowy jest zawsze związany z daną siecią, per se nie występuje ; gdy masz sieć, możesz obliczyć jej adres rozgłoszeniowy, zastępując wszystkie bity hosta 1s; najprościej mówiąc, adres rozgłoszeniowy jest adresem o najwyższym numerze, jaki możesz mieć w sieci, podczas gdy adres sieciowy jest najniższy (przy wszystkich bitach hosta ustawionych na 0); dlatego nie można użyć żadnego z nich jako rzeczywistych adresów hosta: są one zarezerwowane do tego celu.

Jeśli twoja sieć to 192.168.1.0/24, to twój adres sieciowy będzie 192.168.1.0, a twój adres rozgłoszeniowy będzie 192.168.1.255.

Jeśli twoja sieć to 192.168.0.0/16, to twój adres sieciowy będzie 192.168.0.0, a twój adres rozgłoszeniowy będzie 192.168.255.255.

I tak dalej...

255.255.255.255 jest specjalnym adresem rozgłoszeniowym, co oznacza „ta sieć”: pozwala wysłać pakiet rozgłoszeniowy do sieci, do której jesteś podłączony, bez względu na jego adres; w tym jest podobny do 127.0.0.1, który jest adresem wirtualnym oznaczającym „host lokalny”.

Więcej informacji tutaj: http://en.wikipedia.org/wiki/Broadcast_address

Massimo
źródło
Czy 127.0.0.1 uważa się za „adres wirtualny”? Rozumiem, że jest to prawdziwy adres, a RFC mówi, że powinien wskazywać na interfejs wirtualnej pętli zwrotnej. Widziałem jednak przypadki, w których urządzenie faktycznie pyta mój serwer DNS o 127.0.0.1.
Belmin Fernandez
1
Być może moje użycie słowa „wirtualny” było trochę uproszczeniem, ale jest to rzeczywiście zarezerwowany adres, który nie może należeć do żadnego interfejsu fizycznego i nigdy nie powinien być widoczny poza hostem; jeśli coś pyta twój serwer DNS, kim jest 127.0.0.1, powinien on działać tak szybko, jak to możliwe, do najbliższej klasy IP :-p
Massimo
„pozwala wysłać pakiet rozgłoszeniowy do sieci, do której jesteś podłączony”… co zrobić, jeśli masz połączenie z wieloma sieciami? Czy do wszystkich wysyłane są pakiety rozgłoszeniowe?
Nathan Osman
11

Aby dodać do tego, co stwierdził Massimo w swojej odpowiedzi:

255.255.255.255 będzie uważany za adres rozgłoszeniowy warstwy fizycznej, a 192.168.1.255 będzie uważany za adres rozgłoszeniowy warstwy sieciowej. ARP wygenerowałby transmisję warstwy fizycznej, podczas gdy NetBIOS wygenerowałby transmisję warstwy sieciowej.

joeqwerty
źródło
11

Zasadniczo 255.255.255.255 jest „globalnym” adresem rozgłoszeniowym, co oznacza, że ​​stos IP ma wysyłać pakiet do wszystkich interfejsów sieciowych, a routery skonfigurowane do przesyłania rozgłoszeniowego powinny je wysyłać.

W praktyce prawie nie ma routerów przekazujących transmisje, a wiele stosów po prostu wysyła jedną kopię pakietu do interfejsu, do którego prowadzi domyślna trasa.

Adres rozgłoszeniowy podsieci służy do wyboru określonego interfejsu. W obu przypadkach należy je odwzorować na adres rozgłoszeniowy warstwy sieci (który to FF: FF: FF: FF: FF: FF dla Ethernetu).

Ogólnie rzecz biorąc, użycie 255.255.255.255 jest złym pomysłem, ponieważ istnieje kilka konfiguracji, w których interfejs z domyślną trasą jest dokładnie złym wyborem. Wyraźne wybranie interfejsu jest lepsze, ale należy to zrobić ostrożnie.

Moją inną sugestią byłoby użycie multiemisji, jeśli ma to sens dla twojej aplikacji. Nadal obowiązują te same zastrzeżenia, co w przypadku ruchu rozgłoszeniowego, ale umożliwia to niezainteresowanym hostom szybką identyfikację pakietów i pozwala menedżerom sieci na skonfigurowanie określonych reguł przekazywania dla twojego protokołu.

Simon Richter
źródło
1
Kiedy szukam 255.255.255.255, jednym z pierwszych wyników, które się pojawiają, jest RFC 919 . W tym dokumencie RFC znalazłem zdanie: „Adres 255.255.255.255 oznacza transmisję w lokalnej sieci sprzętowej, której nie można przekazywać dalej. ” (Moje podkreślenie) Więc jeśli sugerujesz, że routery mogą być skonfigurowane do przekazywania pakietów, to nie jest to bardzo możliwe.
kasperd