## 4 Evaluation and Results
### Test Case I: Extreme-Scale Data Transfer in a Single Domain  
To prove the ability of higher throughput with higher bandwidth, we designed a real experiment of extreme-scale data transfer by using AmoebaNet in a single domain. As illustrated in Figure 4, this experiment's topology consisted of two physical SDN-enabled switches (Pica8 P3930 and P5101) and both switches were connected back-to-back with each other by using the high speed link of 40 GE. We also connected four data transfer nodes (DTNs) in topology with 40 GE interfaces of switches and each DTN was configured with virtual interfaces (VLANs).  
We performed large-scale data transfer jobs between data transfer nodes by using the iperf tool and classified the traffic into two different classes (priority and best effort). We included three types of large-scale data transfer jobs in our experiment, which lasted for 20 min. Following are the details of each job:  
Figure 4: Extreme-scale data transfer topology in a single domain.  
* Priority traffic 1, which is sent from 192.3.3.2 (vlan3 nic@DTN2) to 192.3.3.4 (vlan3 nic@DTN4). The data transfer starts at 4 th min, and ends at 15 th min, wherein the maximum bandwidth is capped at 10 Gbps.
* Priority traffic 2, which sent from 192.4.4.3 (vlan4 nic@DTN3) to 192.4.4.4 (vlan4@DTN4). The data transfer starts at the 7 th min and ends at the 18 th min, wherein the maximum bandwidth is capped at 15 Gbps.
* Best-effort traffic, which is sent from 192.2.2.1 (vlan2 nic@DTN1) to 192.2.2.4 (vlan2 nic@DTN4). The data transfer starts at the 1 st min and ends at the 20 th min.  
Initially we established the end-to-end paths each data transfer job and used a well-defined simple application to dynamically program the network resources using AmoebaNet. Essentially, AmoebaNet performs these tasks:  
1. Calculate and route local LAN paths.
2. Install flow rules to set up local LAN paths.
3. Install meters and queues to enforce rate control and QoS guarantee for priority traffic.  
Following is an example of command to establish a priority path using AmoebaNet:  
{  \"cmd\":\"create_path\",  \"hosts\":  [{  [{ \"startTime\": \"immediate\",  \"endTime\": \"2019-09-07 13:00\",  \"srcIp\":\"192.3.3.2\",  \"rate\":\"10000\", // in Mbps  \"dstIp\":\"192.3.3.4\",  \"trafficType\":\"priority traffic\",  \"vlanId\":\"3\",  \"routeType\": \"host-to-host\"  }]  }  
We collected throughput measurements for the data transfer jobs. The evaluation results are illustrated in Figure 5. As shown, (a) from 1 to 4 min, best-effort traffic consumed the entire 40 Gbps bandwidth of the 192.2.2.1--192.2.2.4 path. (b) From time 4 to 7 min, priority traffic 1 achieved a capped throughput of ~10 Gbps, with the best effort traffic consuming the remaining ~30 Gbps. (c) For time 7-15 min, priority traffic 2 was sent and attained a throughput of ~15 Gbps, which reduced the best-effort traffic throughput to ~15 Gbps, and priority traffic 1 remained unchanged at ~10 Gbps. (d) Between time 15 and 20 min, both priority traffic 1 and 2 transfers were completed, allowing the best-effort traffic's throughput to increase to ~40 Gbps. The best-effort traffic consumed the entire bandwidth of the end-to-end path.  
Figure 5 clearly demonstrates that AmoebaNet can work for the extreme-scale data transfer job, and it allows application to dynamically program the underlying networks.