Flooding vs Broadcasting
Routing is the process of choosing which paths to be used to send network traffic, and sending the packets along the selected sub-network. Flooding and Broadcast are two routing algorithms used in computer networks today. Flooding sends all incoming packets through every outgoing edge. Broadcasting means every device in the network will receive a packet.
What is Flooding?
Flooding is a very simple routing algorithm which sends all incoming packets through every outgoing edge. Because of how this routing algorithm works, a packet is guaranteed to be delivered (if it can be delivered). But there is a possibility of multiple copies of the same packet reaching the destination. Flooding algorithm is guaranteed to find and utilize the shortest path for sending packets because it naturally uses every path in the network. There are no complexities in this routing algorithm; it is very easy to implement. Of course, there are few disadvantages of the flooding algorithm as well. Because packets are sent through every outgoing link, the bandwidth is obviously wasted. This means flooding can actually degrade the reliability of a computer network. Unless necessary precautions like hop count or time to live are taken, duplicate copies can circulate within the network without stopping. One of the possible precautions is to ask nodes to track each packet passing through it and make sure that a packet goes through it only once. Another precaution is called selective flooding. In Selective flooding, nodes may forward packets only in the (approximately) correct direction. Usenet and p2p (peer-to-peer) systems use flooding. Furthermore, routing protocols like OSPF, DVMRP and ad-hoc wireless networks use flooding.
What is Broadcasting?
Broadcasting is a method used in computer networking, which makes sure that every device in the network will receive a (broadcasted) packet. Because broadcasting can impact performance in a negative way, not every network technology supports broadcasting. X.25 and frame relay does not support broadcasting and there is no such thing as internet-wide broadcasting. It is mostly used in LANs (Local Area Networks, mostly in Ethernet and token ring), and is rarely used in larger networks such as WANs (Wide Area Networks). Even IPv6 (successor to IPv4) does not support broadcasting. IPv6 only supports multicasting, which is similar to one-to-many routing methodology that sends packets to all the nodes that have joined a specific multicast group. Having all ones in a packet’s address in both Ethernet and IPv4 indicates that the packet will be broadcasted. On the other hand, a special value in IEEE 802.2 control field is used in token ring to indicate broadcasting. One disadvantage is of broadcasting is that it can be used for DoS (Denial of Service) attacks. For example, an attacker can send fake ping requests using the address of the victim computer as the source address. Then all the nodes in that network will reply this request from the victim computer causing a breakdown of the whole network.
What is the difference between Flooding and Broadcasting?
Sending a packet to all hosts simultaneously is broadcasting. But flooding does not send packets to all hosts simultaneously. The packets would ultimately reach all nodes in the network due to flooding. Flooding may send the same packet along the same link multiple times, but broadcasting sends a packet along a link at most once. Several copies of the same packet may reach nodes in flooding, while broadcasting does not cause that problem. Unlike flooding, broadcasting is done by specifying a special broadcast address on packets.