## 4 Mixed-Flow Load-Balanced Scheduling (MFLBS)
### Static Routing Network
#### 4.2.2 Bottleneck Bandwidth Calculation  
We all know that flows are subject to different restrictions on different link segments, and the bandwidth obtained on the most restricted link is the bottleneck bandwidth of  
Figure 3: The bandwidth allocation between new flows (\(f_{k}\) and \(f_{k^{\prime}}\)) and original flow (\(f_{1}\) ). this flow. For example, in Figure 4, \(f_{2}\) shares bandwidth with \(f_{3}\) on \(l_{j,k}\), and exclusive bandwidth on links \(l_{i,j}\), so the bottleneck bandwidth is the 15 Gb/s obtained on \(l_{j,k}\). The bottleneck bandwidth deeply affects the obtained bandwidth of the flow. We give the formulation \(a^{f_{k}}=\min(\mathrm{e}^{f_{k}},\,\gamma^{f_{k}})\), that is, the obtained bandwidth takes the smaller value of the required bandwidth and the bottleneck bandwidth. In order to obtain \(\mathrm{e}\), we need to calculate the restricted speed of the flow link by link, according to the route of the flow, and maintain an allocatable resource table to simulate the remaining network state after the bandwidth has been allocated. Two values are recorded on each link in the Table 3: the number of flows with unallocated bandwidth \(l_{i,j}{}^{*}(N)\) and the remaining bandwidth \(B_{i,j}\). Different from the real-time recording of the remaining bandwidth table of the network status in the dynamic routing network, the allocatable resource table is used to calculate the bandwidth allocation of the flow in advance. Each time the actual allocated bandwidth of a flow is determined, the allocatable bandwidth table needs to be updated. Each time slot needs to maintain a new table. We process the flows in ascending order according to the required bandwidth. First, we need to query the route \(E(f_{k})\) of the flow \(f_{k}\). For a certain link \(l_{i,j}\), \(\langle i,j\rangle\in E(f_{k})\) in the routing, we first assume that the flow does not restrict the flow on this link but normally performs the max-min fairness algorithm with other flows to allocate bandwidth. From this, we can calculate the limited bandwidth \(E=B_{i,j}/\,l_{i,j}{}^{*}(N)\). We repeat the above calculations for the other link segments in \(E(f_{k})\) sequentially and finally obtain a set \(\mathrm{V}(E)\). The smallest value in the set is the flow bottleneck bandwidth \(\mathrm{e}^{f_{k}}\). Finally, we need to update the remaining bandwidth \(B_{i,j}\) of the link segment passed by \(f_{k}\) in the table according to the allocated bandwidth \(a^{f_{k}}\) and reduce the value of \(l_{i,j}{}^{*}(N)\) by one. Repeat the above process until the bandwidth of all flows in this time slot has been determined. In the following algorithm, we outline the important steps of static routing network scheduling in a time slot. Figure 4: The bottleneck bandwidth of \(f_{2}\) and \(f_{3}\). \begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Links**} & \multicolumn{4}{c}{**Remaining Available Bandwidth and Unallocated Flow Numbers**} \\ \cline{2-5}  & \(\varnothing\) & **f1** & **f7** & \(\cdots\) \\ \hline S1\(\rightarrow\)S5 & 6300 & 5180 & 5180 & \(\cdots\) \\ S1\(\rightarrow\)S6 & 7300 & 7300 & 7300 & \(\cdots\) \\ S1\(\rightarrow\)S7 & 3300 & 3300 & 3300 & \(\cdots\) \\ S1\(\rightarrow\)S8 & 2300 & 2300 & 1210 & \(\cdots\) \\ S2\(\rightarrow\)S5 & 5300 & 5300 & 5300 & \(\cdots\) \\ S2\(\rightarrow\)S6 & 4300 & 4300 & 4300 & \(\cdots\) \\ \(\cdots\) & \(\cdots\) & \(\cdots\) & \(\cdots\) & \(\cdots\) \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Allocatable resource table. ```
Input: allocatable resource table Output: load-balanced scheduling
1. new flows arrive on the network;
2. R \(\leftarrow\) the set of remaining allocatable bandwidth on the link in Allocatable resource table;
3. k \(\leftarrow\) unallocated flow numbers in Allocatable resource table;
4.