## 3 RAD System
### Main Modules of RAD System
#### 3.2.2 Traffic Engineer  
The traffic engineer module provides fast and proper routes even for elephant flows, faults, and attacks based on the trigger of the traffic analyzer. The module has two monitoring submodules: _network utilization_ and _network delay_. Through the input of traffic measurement, these submodules monitor network utilization and delay for each link. Although a shortest path can be the best choice for routing in the case of networks having the same capacity link and light traffic, considering only a hop-count cannot guarantee a high network utilization rate or short delay for multimedia traffic requiring various QoS. Thus, we design a multi-dimensional routing module considering various metrics. Now, we next employ network utilization and delay. However, the other metrics can be easily added on. The cost function submodule calculates the cost for each link as given by Equation (1) [41]. This is necessary to choose the best path that considers multi-dimensional metrics based on the values from two monitoring submodules and control parameters. The link incurring high cost is excluded from the route generation. The cost function controls the preference weight of metrics and normalizes the different ranges of metric values. \[C_{i}=\sum_{k}c_{k}\times f_{k}(x_{i}^{k}) \tag{1}\]  
where \(C_{i}\) is the cost value of a link \(i\), \(x_{i}^{k}\) is a \(k\)th metric value of a link \(i\), \(c_{k}\) is the preference weight of metric \(k\) (\(\sum_{k}c_{k}=1\)), and \(f_{k}(\cdot)\) is a normalized function for the \(k\)th metric. In this study, we use two metrics (thus, \(k\) is 2): utilization \(U_{i}\) and delay \(D_{i}\), fine-grained by Equations (3) and (4). For \(f_{k}(\cdot)\), we use an \(S\)-shaped sigmoid form, which is the most commonly used normalized function and is often used to describe QoS perception [43, 44], as Equation (2). \[f(x)=\frac{\left(x/x_{m}\right)^{\Theta}}{1+\left(x/x_{m}\right)^{\Theta}} \tag{2}\]where \(x_{m}>0\) and \(\theta\geq 2\) are tunable parameters that differentiate the utilities. We also assume that the utilities are normalized to their highest limits (i.e., the asymptotic value of \(f(x)\) for the largest \(x\) is considered to be equal to 1). To control the utilization and delay metrics in a delicate manner, RAD uses Equations (3) and (4) instead of Equation (2) [45]. These equations can establish the minimum cost in the cases of lightly loaded and speedy links in a sophisticated manner:  
\[f(r_{i})=\left\{ \begin{array}{cc}\frac{\left[\left(\frac{r_{i}}{R_{i}}-u_{ min}\right)^{\alpha}\cdot\left(C-1\right)\right]+1}{C},&r_{i}/R_{i}>u_{min}\\ 1/C,&\textit{otherwise}\end{array} \right. \tag{3}\]  
where \(r_{i}\) is a used bandwidth of link \(i\), \(R_{i}\) is the capacity of link \(i\), \(C\) is the cost level, \(\alpha\) is a tunable parameter that controls how expensive heavily loaded links look relative to lightly loaded links, \(u_{min}\) is the minimum-cost utilization level. Note that any link utilization below \(u_{min}\) is considered to have the minimum cost. This cost model delicately controls the utilization metric. Larger values of \(C\) tend to decrease the blocking rate, particularly when the network possesses accurate link-state information (i.e., frequent link status updates [45]). However, the fine-grained cost metrics do not always enhance the performance. Thus, we use \(C=4\) and \(\alpha=2\), referring to [43]. \[f(d_{i})=\left\{ \begin{array}{cc}\frac{\left[\left(\frac{d_{i}}{D_{i}}-d_{ min}\right)^{\alpha}\cdot\left(C-1\right)\right]+1}{C},&\frac{d_{i}}{D_{i}}>d_{ min}\\ 1/C,&\textit{otherwise}\end{array} \right. \tag{4}\]  
where \(d_{i}\) is the delay of link \(i\), \(D_{i}\) is the maximum delay of link \(i\) that has turned on, \(C\) is the cost level, \(\alpha\) is a tunable parameter that controls how slow links look relative to fast links, and \(d_{min}\) is the minimum-cost delay level. Note that any delay ratio \(d_{i}/D_{i}\) below \(d_{min}\) is considered to have the minimum cost.