## 4 Multihop D2D Broadcasting
### Broadcast Management within the UE
Note that using a geographical representation (even one with infinite precision) still leaves a margins of uncertainty as to which UEs will receive the message: in fact any UE which is inside the target radius will relay the message, hence all UEs within an annulus of one D2D transmission radius outside the edge of the target area may still receive it. UE applications should also take care of relaying. In fact, it is at the application level that suitable algorithms can be run to make relaying efficient. A brute-force relaying, whereby UEs relay all received messages, would in fact quickly congest the network, since the same UE would receive the message from several neighbors, and relay them all unnecessarily. This would waste resources that could otherwise be used for other purposes. In order to make relaying efficient, a suppression mechanism can be used, e.g., the one of the Trickle algorithm [31]. Trickle is used in WSNs to regulate the relaying of updates and/or routing information. In that context, Trickle runs on each node participating in the broadcasting: before sending a message, the node listens to the shared medium in order to figure out if that information is redundant, i.e., enough neighboring nodes are already sharing it. If so, it abstains from transmission so as to avoid network flooding. In Trickle, two parameters can be configured: the Trickle Interval \(I\) and a number of duplicates \(K_{\text{max}}\). A UE selects a random time window \(\Delta_{trickle}\) in \([I/2,I)\), and counts the copies of the same message received therein. The UE only relays a message if it receives fewer than \(K_{\text{max}}\) copies of it. To sum up, Figure 4 depicts the flowchart of the operations performed by a UE application on reception of a message, when the Trickle suppression algorithm is employed. First, the UE checks whether the incoming message had already been received. If so, it abstains from relaying and the procedure terminates. Otherwise, it computes the distance from the originating UE and compares it with the maximum target radius. If the UE is inside the target area, then Trickle operations are initiated: the Trickle timer is started and the duplicate counter \(k\) is set to 0. Figure 5 shows that \(k\) increases on each duplicate reception within \(\Delta_{trickle}\). When the above timer expires, the UE relays the message if \(k<K_{\text{max}}\). Note that, in the absence of Trickle, UEs must be made to wait for a random time chosen uniformly in \([0,\Delta)\) before attempting a relay. Parameter \(\Delta\) can be tuned to trade collision probability for latency. In fact, P2 MP D2D transmissions will reach several UEs simultaneously. In the absence of random delays, these UEs will attempt relaying at the same time, since LTE-A is slotted. This may lead to collisions, regardless of how the eNB allocates resources (an issue which is dealt with in the next subsection). So far we have assumed that a message is originated by one UE. However, messages are supposed to be generated as reactions to events (e.g., a vehicular collision), and the same event may be detected  
Figure 4: Flowchart of UE-side operations at message (msg) reception. Figure 5: Relaying operations at the UE application. by multiple UEs, which might then initiate a broadcast quasi-simultaneously. In fact, whichever the allocation scheme in the network, there is a time window where all UEs that want to start a broadcast will be unaware of others doing so, even if they are within D2D hearing range of one another. That time window is around 10 ms with SRA (i.e., the time it takes to complete a resource allocation handshake), and equal to the period with ARS. What happens in this case depends on how the application handles the different broadcasts. A baseline solution is to do nothing.