`BeaconInterval` defines the frequency of beacon transmission. To ensure that all nearby nodes can receive the beacon, the node broadcasts a beacon using the network’s broadcast address. Nodes are likely to be synchronized in sending broadcasts, resulting in lost beacons due to collisions. In order to prevent synchronization among nodes, a uniform random variable staggers the beacons. The `BeaconRandomness` variable defines the upper bound of the uniform random distribution to add to the base beacon interval. Since each beacon starts the exchange process between nodes, nodes with many packets buffered may already be exchanging packets when the next beacon interval occurs. The `HostRecentPeriod` prevents hosts from re-exchanging redundant control packets [@Alenazi:2015:ERP:2756509.2756523], however nodes with large buffers will exceed the `HostRecentPeriod` used PacketEpidemic resulting in the nodes re-exchanging control packets and messages while already transferring messages. This causes messages to be sent and re-sent multiple times wasting bandwidth.

Our Epidemic implementation also uses beacons for node discovery. A node broadcasts beacons at a set interval plus a random delay to minimize beacon collisions. However, we do not use a `HostRecentPeriod` to prevent hosts from re-exchanging redundant control packets, instead each node remembers the neighbors with which it is currently in contact. 