# The Traffic Adaptive Data Dissemination (TrAD) Protocol for both Urban and Highway Scenarios
## 3 Traffic Adaptive Data Dissemination
### Store-Carry-Foruard Mechanism
#### 3.2.2 SCF-Agent Rebroadcast Constraint Technique  
The rebroadcast constraint technique aims to avoid redundant rebroadcasts when multiple SCF-agents receive an identical requirement (beacon) simultaneously. If the protocol does not have such a constraint technique, these SCF-agents would transmit the same data messages at the same time, and redundant broadcasts and collisions will be incurred. Thus, we also use the delay-contention scheme to avoid the redundancy. This method can calculate different delays (back-off times) according to the utility \(U_{SCF}\) of every SCF-agent. If a SCF-agent receives an echo message (redundant data message) that is the same as the one it is scheduling, the SCF-agent will cancel the forwarding schedule and switch to an idle state. If not, the SCF-agent will transmit first when the timer expires.  
Contrary to the utility \(U_{TX}\) in broadcast suppression technique, here, a SCF-agent is given a higher utility \(U_{SCF}\) when the SCF-agent and an uninformed vehicle are closer. Indeed, a shorter distance is helpful to guarantee a better QoS of consecutive transmissions. Furthermore, since the number of neighbors neither contributes to SCF transmission nor constrains the redundant rebroadcast, \(U_{SCF}\) does not consider it. The weight \(\omega_{CBR}\), representing network status, is also used to scale \(U_{SCF}\) (Equation (7)):  
\[U_{SCF}=\omega_{CBR}\cdot\ (1-D) \tag{7}\]  
It is to be noted that, in general, a new incoming (uninformed) vehicle does not require only a single data message, but several. Especially at the boundary of ROI, the vehicle going out of the ROI will perform consecutive transmissions to the new vehicle incoming into the ROI. If the protocol does not handle this scenario properly, a burst of transmissions will be incurred. Therefore, TrAD uses Equation (8) to calculate transmission delay \(Delay_{SCF}\) to solve this problem:  
Figure 5: The identification of a breaker flowchart.  
\[Delay_{SCF}=\textit{ti\cdot}\left[BurstCount+(1-U_{SCF})\right] \tag{8}\]  
One time interval \(ti\) is set between each transmission of required data messages. The \(BurstCount\) is the transmission order of data messages. A SCF-agent with a higher utility \(U_{SCF}\) will fire sooner to transmit the data messages in its transmission queue. The \(ti\cdot\left(1-U_{SCF}\right)\) part also performs as an additional delay, by which the time slot boundary synchronization problem can be mitigated.  
For example, in the disconnected network illustrated by the Figure 1, vehicles V7 and V8 are SCF-agents moving from the well-connected network and carrying the same data messages. They received simultaneously the requirement (beacon) from their neighbor vehicles. Since the utility \(U_{SCF}\) of V8 (0.8) is greater than that of V7 (0.5), V8 is triggered to broadcast the data messages first. Consequently, V7 hears the redundant data message, and then cancels the respective schedule. Therefore, the redundant transmissions of V7 are suppressed.