Please explain the flow of traffic in each case.
They are aimed at different network layers. Every layer-2 broadcast must be inspected and processed by every host to see if it should be passed up to layer-3. A layer-3 broadcast received by a host must be inspected and processed to see if it must be passed up to layer-4.
I suppose it would be possible to create a layer-2 frame which is a layer-2 unicast frame but contains a layer-3 broadcast address. This would not really be a broadcast since it only goes to a single host based on the layer-2 MAC address.
ARP is an example of a layer-2 broadcast which has a layer-3 unicast address. Each host must inspect the layer-2 ARP broadcast to see if it should be passed up to layer-3, but only the host with the layer-3 unicast address will actually pass the layer-2 broadcast up the stack.
The layer 2 broadcast address ff:ff:ff:ff:ff:ff is used on ethernet frames and is supposedly broadcasted on all equipments.
255.255.255.255 is the layer 3 address that is used to adress the exact same hosts.
- IP can support all kind of networks, so ethernet won't be always used.
- Reciprocally ethernet can be used without IP (appletalk, IPX, ...).
- One layer 2 media can share several IP networks, but it is really bad practice: broadcast limits should be the same at layer 2 and 3 (for instance if 10.0.0.0/24 and 10.0.1.0/24 are located on the same switch and same vlan: bad idea).
The flow of traffic in each case goes like this.
Let's take Ron's example of an ARP Request. So the layer 2 destination address is ff:ff:ff:ff:ff:ff which is a broadcast. The layer 3 address however may be 192.168.1.2 which is probably the IP address of the host that you're trying to find the MAC address for. Now this ARP packet is sent out on the network and every host on the network receives it. Each host is going to first receive it, run a CRC on it and if pass, will go on to check the layer 2 address. Now since it's a broadcast, it's going to pass through and then it will check the layer 3 address. Those that do not match, discard the packet. The one that does match then forms a response packet with it's MAC address, sets the layer 3 destination as our original source (say 192.168.1.3) and layer 2 destination as the MAC address of our source.
Like Ron mentioned, the difference is mainly where it's processed. While MAC addresses are processed in layer 2, IP addresses are looked at only at layer 3. Sometimes, the device might not even look at the IP address and directly discard the packet after checking layer 2 information.