# Dynamic Traffic Scheduling and Congestion Control across Data Centers Based on SDN
## 3 The Design and Implementation of DSCSD
### Congestion Control with Multilevel Feedback Queue
Here, we conducted two tests to verify the effectiveness and performance of DSCSD. **Test 1: Verify the effectiveness of DSCSD. ** We used Mininet to set a 4 M-bandwidth for both the shortest path and the second shortest path, and we also utilized the tool iperf to simulate four flows from h1 to c1 and c2, and from h2 to c3 and c4. Each link was equipped with the requirement of a 2 M-bandwidth. We discussed and analyzed the performance of the traditional network and DSCSD. Then, we chose a span under the selfsame condition to test the loss tolerance and real-time bandwidth of these flows. Some of these data are presented in Table 1. Here, we adopted four symbolic notations. The notation \"h1-1\" means the traffic from h1 to c1. By analogy, \"h1-2\" means the traffic from h1 to c2; \"h2-c3\" means the traffic from h2 to c3; and \"h2-c4\" means the traffic from h2 to c4. We also calculated the overall link utilization of both cases as is shown in Figure 5.

Figure 3: Multilevel feedback queue. In Test 1, it held that the loss tolerance of the four flows in a traditional network was high, with two of them close to 100%. As for the overall link utilization, the average link utilization of our scheme was kept at 97%, while that of traditional network was just 48%. For a comparison, we verified the high improvement of link utilization by using DSCSD. **Test 2: Congestion control with multilevel feedback queues. ** In this test, we still used the simulation of Test 1. The difference was that we were only interested in the shortest path (S1, S4, S5) and set a 5 M-bandwidth. The time t was 20 s. Then, we let c5 send UDP flows to h1 with a 3 M-bandwidth consistently, while c1, c2, c3, and c4 sent UDP flows to h2 with a 1 M-bandwidth. \begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline
**bps** & \multicolumn{4}{c}{**Traditional Network**} & \multicolumn{4}{c}{**DSCSD**} \\ \hline
**Time** & **h1-1** & **h1-c2** & **h2-c3** & **h2-c4** & **h2-c4** & **h2-c4** & **h2-c4** & **h2-c4** \\ \hline
0–1 s & 106 k & 1.87 M & 1.91 M & 25.3 k & 1.95 M & 1.94 M & 1.95 M & 1.94 M \\
1–2 s & 11.8 k & 1.86 M & 1.81 M & 70.6 k & 1.94 M & 1.95 M & 1.94 M & 1.94 M \\
2–3 s & 11.8 k & 1.89 M & 1.89 M & 35.3 k & 1.94 M & 1.94 M & 1.94 M & 1.95 M \\
3–4 s & 153 k & 1.92 M & 1.80 M & 11.8 k & 1.95 M & 1.94 M & 1.94 M & 1.94 M \\
4–5 s & 35.3 k & 1.75 M & 1.94 M & 176 k & 1.94 M & 1.95 M & 1.95 M & 1.94 M \\
5–6 s & 82.3 k & 1.94 M & 1.98 M & 82.3 k & 1.82 M & 1.94 M & 1.94 M & 1.94 M \\
6–7 s & 35.3 k & 1.95 M & 1.88 M & 23.5 k & 1.94 M & 1.94 M & 1.87 M & 1.95 M \\
7–8 s & 23.5 k & 1.94 M & 1.88 M & 58.8 k & 1.95 M & 1.94 M & 1.93 M & 1.94 M \\
8–9 s & 11.8 k & 1.89 M & 1.92 M & 23.5 k & 1.95 M & 1.95 M & 1.94 M & 1.94 M \\
9–10 s & 23.5 k & 1.91 M & 1.90 M & 11.8 k & 1.94 M & 1.95 M & 1.94 M & 1.93 M \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Real-time bandwidth comparison. Figure 4: Experimental topology. Figure 5: Overall link utilization comparison. Here, we divided Test 2 into two cases: real-time bandwidth without congestion control queues and real-time bandwidth with congestion control queues, then we discussed and analyzed the effectiveness of congestion control in these two cases. The real-time bandwidths in two cases are respectively shown in Figures 6 and 7. At 10 s, the path (S1, S4, S5) has been saturated with the flows from c5, c1, and c2. At 20 s, we received the request of the normal flows from c3 and c4. At this time, if we do not use congestion control queues (case 1), the flow from c5 with high priority directly affects the quality of the transmission of other flows, which can be observed in Figure 6. In contrast, we noticed the comparison in Figure 7. If we used congestion control queues (case 2), when we received the request of normal flows from c3 and c4, flows from c5 were scheduled into the congestion control queues. Considering the bandwidth remained on the path, the flow from c5 will be rescheduled to the path to be transmitted.