Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We're trying to debug some applications performing broadcast.

What is the difference between the broadcast address 255.255.255.255 and as e.g. reported by ifconfig, Bcast:192.168.1.255

share|improve this question
add comment

3 Answers

A broadcast address is always relative to a given network, there is no broadcast per se; when you have a network, you can compute its broadcast address by replacing all the host bits with 1s; simply put, the broadcast address is the highest numbered address you can have on the network, while the network address is the lowest one (with all host bits set to 0s); this is why you can't use both of them as actual host addresses: they are reserved for this use.

If your network is 192.168.1.0/24, then your network address will be 192.168.1.0 and your broadcast address will be 192.168.1.255.

If your network is 192.168.0.0/16, then your network address will be 192.168.0.0 and your broadcast address will be 192.168.255.255.

And so on...

255.255.255.255 is a special broadcast address, which means "this network": it lets you send a broadcast packet to the network you're connected to, without actually caring about its address; in this, is similar to 127.0.0.1, which is a virtual address meaning "local host".

More info here: http://en.wikipedia.org/wiki/Broadcast_address

share|improve this answer
    
Is 127.0.0.1 considered a "virtual address"? My understanding is that it's a real address and the RFC says it should point to the virtual loopback interface. However, I've seen instances where a device actually queries my DNS server for 127.0.0.1. –  Beaming Mel-Bin Jan 7 '11 at 18:00
    
Maybe my use of the word "virtual" was a bit of an oversimplification, but that is indeed a reserved address which can't belong to any physical interface and should never be seen outside an host; if something is asking your DNS server who 127.0.0.1 is, it should run as fast as it can to the nearest IP classroom :-p –  Massimo Jan 7 '11 at 19:06
add comment

To add to what Massimo has stated in his answer:

255.255.255.255 would be considered the phsyical layer broadcast address while 192.168.1.255 would be considered the network layer broadcast address. ARP would generate a physical layer broadcast, while NetBIOS would generate a network layer broadcast.

share|improve this answer
add comment

In principle, 255.255.255.255 is the "global" broadcast address, which means that the IP stack is supposed to send the packet to all network interfaces, and routers that are configured to forward broadcasts are supposed to send them on.

In practice, there are almost no routers forwarding broadcasts, and a lot of stacks simply send one copy of the packet to the interface where the default route points to.

The subnet broadcast address is used to select a specific interface. In both cases, these should be mapped to the network layer broadcast address (which would be FF:FF:FF:FF:FF:FF for Ethernet).

In general, using 255.255.255.255 is a bad idea, as there are several setups where the interface with the default route is exactly the wrong choice. Selecting an interface explicitly is better, but needs to be done carefully.

My other suggestion would be to use multicast, if that makes sense for your application. The same caveats as for broadcast traffic still apply, but this allows uninterested hosts to quickly identify your packets, and it allows network managers to set up specific forwarding rules for your protocol.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.