# Two-Level Congestion Control Mechanism (2 LCCM) for Information-Centric Networking
## 5 Evaluation
### Performance of Switching Strategy  
To evaluate the performance of the switching strategy, a simple topology is set up as shown in Figure 7. Three hosts are running the prototype SEANet protocol stack implemented by our group on Ubuntu 16.04 system, and the receiver is connected to both sender 1 and sender 2 through an ICN router.  
For the first 4 s of chunk transmission, the link bandwidth between the receiver and sender 1 is 100 Mbps with an RTT of 20 ms, and the link bandwidth between the receiver and sender 2 is 70 Mbps. After 4 s, we assume severe congestion happens in the link between the receiver and sender 1. Then the corresponding available bandwidth drops to 40 Mbps and the RTT grows to 50 ms. In our experiments, the emulation tool NetEm [42] is used to vary network parameters and limit bandwidth. The size of the transmitted content is 100 MB. With such an experimental setup, we can simulate a real transmission scenario that a router on a transmission link has a bottleneck in forwarding due to bursty background traffic. In this case, the SEANet chunk transmission is affected, the available bandwidth decreases, and the RTT of packets increases due to queuing delay. These changes are detected by 2 LCCM and timely congestion control is performed. Multiple sets of experimental results show that the switching process is stable with very small fluctuations in this experimental environment, so we selected one of the sets of experimental results for demonstrating the experimental performance.  
As shown in Figure 8, the solid blue line indicates the throughput rate variation of the chunk transmission without replica switching operation, that is to say, the receiver retrieves the entire chunk from sender 1. This transmission ends at about 17.92 s. There is a  
Figure 7: Experimental topology.  
sudden drop of throughput rate at around 10.3 s. This is because the BBR algorithm enters the _PROBE_RTT_ state to detect a smaller RTT, and _cwnd_ is reduced to the size of 4 packets.  
The orange-dashed line indicates that the receiver first retrieves data from sender 1 for about 4 s. Then, a sudden deterioration in bandwidth and RTT is detected, and the network is considered to be heavily congested. This transmission lasts about 1 s at a low bandwidth of 40 Mbps at sender 1, then it switches to sender 2 to retrieve the remaining data. There is a short rate burst time before switching to sender 2, and this chunk transmission finally ends at about 12.47 s.  
As we can be seen from the experimental results, the receiver selects the sender 1 that has better data service performance between the two senders for data retrieval at first. After the state of a link towards sender 1 suddenly deteriorates, the congestion control module at the receiver quickly detects this change, reduces the request sending rate, and finds an alternative sender 2 with a better state to continue this chunk transmission. The experimental results show that the replica switching brings significant performance improvement, and the transmission time is reduced from 17.92 s to 12.47 s in our experimental scenario, an improvement of about 30.4%. It verifies the effectiveness of the two-level congestion control mechanism.