## 5 Experimentation
### Environment Setup
#### 5.4.2 Scenario and Control Configuration Settings  
The nodes' buffer size, the messages' TTL, the messages' size, and message generation frequency, which directly affect the network congestion, vary for each scenario to create different congestion conditions. The first part of Table 3 lists the values for the above scenarios' settings. In this table, the intervals specifying the value for the settings: message generation frequency, message size and walk speed denote a uniform distribution between the two interval limits. Notice that for all the scenarios, the nodes' buffer size is set to 10 M to favour congested situations, mainly when messages are generated at a high rate.  
Also, the control layer can be customized through the settings listed in the second part of Table 3. Next, we describe the customisable control settings:  
**Number of controllers:**: indicates the number of nodes that will act as controllers in the network.  
\begin{table}
\begin{tabular}{l l l l l} \hline \hline
**Settings** & **Taxis** & **Info5** & **Campus** & **Emergency** \\ \hline Simulation time & 69 h & 70 h & 34 h & 23 h \\ Message distribution & ISTH & ISTH & ISTH & CBR \\ Message generation frequency & FR: [10–60] s; & FR: [10–60] s; & FR: 10 s; & 0–8 h: 10 s; \\  & TR: 1800 s & TR: 900 s & TR: 1800 s & 8–16 h: 80 s \\ Congestion level & Low-Medium & Medium-High & High & Medium-High \\ \hline \hline \end{tabular}
\end{table}
Table 1: Message generation distribution per scenario.  
\begin{table}
\begin{tabular}{l l l l} \hline \hline
**Setting** & **Value** & **Setting** & **Value** \\ \hline Network interface & Wi-Fi & Battery & none \\ Transmission speed & 100 Mbps & Type of nodes & pedestrians \\ Transmission range & 60 m & User behaviour & none \\ Interference & none & Application & Single destination \\ Power consumption & none & & \\ \hline \hline \end{tabular}
\end{table}
Table 2: Summary of the common simulation settings for all the scenarios.  
**Optimal congestion interval (\(o_{min}-o_{max}\)):**: as presented in Section 4.2, this setting specifies the optimal range of the node's buffer occupancy.
**Additive increase (\(k_{2}\)) and multiplicative decrease (\(k_{1}\)) (AIMD):**: denote the factor to be added to (\(k_{2}\)) and the factor to multiply by (\(k_{1}\)) the current replication limit (\(l\)) to update the former replication limit based on the network congestion status through (7).
**Aggregation interval (\(\hat{t}\)):**: time while the controller gathers congestion measurements (see Section 3.5).
**LR nrof inputs (2):**: maximum size of the congestion readings aggregation list \(\bar{M}\). This list is used as an input for the congestion prediction function. \(\bar{M}\) works as a sliding list of size \(\hat{z}\) to consider a recent history of readings for the prediction.
**Prediction time factor (\(\phi\)):**: the multiplicative factor applied over the aggregation interval setting (\(\hat{t}\)) to determine the time (\(t_{n+t}\)) for a congestion prediction (Section 3.5, Algorithm 2, _line 10_). \(\phi\) is calculated by the equation:  
\[t_{t+n}=t+\hat{t}\phi \tag{15}\]  
where \(t\) is the current time, and \(\hat{t}\) is the time interval for aggregating congestion readings.
**Directive generation frequency:**: determines the periodicity of the automatic directive generation triggered in case the controller does not receive any congestion reading for this period of time (see Section 3.6).
**Reduction factor for a specific decay (\(r\)):**: the reduction factor to apply to get a certain decay. Used in (1) (Section 3.3).
**Decay threshold:**: when a controller receives a congestion measurement with a decay lower than _decay threshold_, it is discarded, and hence, it is not used to estimate the congestion.
**Number of aggregations weight (\(a\)):**: weight factor applied over the number of aggregations a congestion measurement is built on. Used in (3) (Section 3.3).