1. A method for ensuring reliable and efficient packet flooding over a computer network comprising two or more network node devices, each of the network node devices comprising at least one transceiver device and a processor that implements a data communications protocol to communicate data to other ones of the network node devices, wherein the data sent is divided into data packets, with each of the data packets being encoded with a protocol header that includes that packet's source address, destination address, transmitter address, receiver address, cost information, and data flags that indicate the type and other attributes of any given packet, the method comprising: (a) maintaining, in each of the network node devices, a system-wide global flooding threshold setting; (b) maintaining, in each of the network node devices, a count of neighbor network node devices; (c) for a received packet that specifies flooding, comparing the threshold setting maintained in step (a) to the count of neighbor network node devices maintained in step (b) and also to a number of neighbor network node devices of each neighbor network node device; (d) if it is determined in step (c) that the count is below the threshold setting, using a unicast transmission to forward the received packet to each of the neighbor network node devices in turn; and (e) if it is determined in step (c) that the count is at or above the threshold setting, forwarding the received packet to each of the neighbor network nodes, wherein step (e) comprises using a broadcast.