Broadcasting is the operation of disseminating a message originated by a source node to all reachable nodes in the
network. This is a primary operation in wireless ad hoc and sensor networks and has many applications including route
discovery in on-demand routing protocols. Broadcasting can be simply done through flooding, in which each node
transmits/forwards the message to all its neighbors upon receiving it for the first time. However, it was shown that flooding
can cause a large number of redundant transmissions particularly in networks with high average number of neighbors per
node. Ideally, we would like to minimize the total number of transmissions. Unfortunately, this was proven to be NP-hard.
Therefore, the aim of efficient broadcast algorithms is to reduce the total number of (redundant) transmissions as much as
possible. In this chapter, we explain some of the existing classifications of broadcast algorithms and briefly describe their
potentials and limitations in reducing the number of redundant transmissions.