Flooding is often associated with malicious Internet activies such as disabling servers and connections with overwhelming volumes of garbage communication. But the concept of network flooding is a lot more basic than that.
From a networking perspective, flooding is a naïve method of achieving network broadcasting (communication to all networked nodes). A simple local area network can be constructed using hubs which simply forward all incoming messages to all other connected ports. Using this scheme, the hub doesn't even need to know the addresses of the end nodes. The target address can be embedded in the packet, and all computers who are not addressed can simply discard it.
Advantages of basic flooding
- Hubs don't require memory.
- Extremely fast.
- No configuration necessary.
- Simple algorithm leaves little room for bugs.
Disadvantages of basic flooding
- Can not handle loops in the topology.
- No security policies can be implemented, all packets go everywhere.
- Lots of bandwidth is wasted.
Loops can be handled by adding some kind of spanning tree algorithm to define a loop-free topology. Then the network can flood over this subset of the connections without worrying about infinite loops. Unfortunately this method introduces other problems, and actually reduces the bandwidth utilization since some links will no longer be used.
Given the general shortcomings of flooding, it's main niche is in local area networks. Nevertheless the concept has proven that simple often beats clever, and has made networking technologies such as Ethernet work with a minimum of fuss.