# A Single-Rate Multicast Congestion Control (SRMCC) Mechanism in Information-Centric Networking
## 4 Rate Adaptation
### Rate Selection Strategy  
Unlike other classic IP multicast congestion control methods, we do not adjust the multicast rate according to the receiver with worst receiving capability. By introducing the rate selection factor \(\gamma\), we make full use of the buffer of router to improve throughput. The optimal packet loss rate and throughput can be achieved simultaneously by setting the value of \(\gamma\) properly. According to the rate calculation method in the last section, the minimum rate \(R(t+1)_{min}\) and the maximum rate \(R(t+1)_{max}\) are calculated based on the maximum queue occupancy ratio \(O_{max}\) and the minimum queue occupancy ratio \(O_{min}\). According to Equation (10), the final sending rate for the next interval can be determined. \[R(t+1)=R(t+1)_{min}+\gamma\times(R(t+1)_{max}-R(t+1)_{min}) \tag{10}\]```
0:\(O(t)\), \(R_{fair-shared}\)
0:\(R(t+1)\)
1: initialization:\(O_{th1}=0.25\), \(O_{th2}=0.5\), \(\gamma=0.15\), \(R(t+1)_{min}=R(t+1)_{max}=0\)
2:for\(O(t)\) in \(\{O_{min},\ O_{max}\}\)do
3:if\(O(t)=0\)then
4: congestion state value \(=0\)
5: calculate \(R(t+1)_{min}\) or \(R(t+1)_{max}\) using Equation (6)
6:elseif\(0<O(t)\leq O_{th1}\)then
7: congestion state value \(=1,\ O_{th}=O_{th1},\ w=1-\frac{3}{4}\times\frac{O(t)^{2}}{O_{min}^{2}}\)
8:\(R(t+1)_{cal}=R(t)\times(1+w\times(O_{th}-O(t))\)
9: calculate \(R(t+1)_{min}\) or \(R(t+1)_{max}\) using Equation (4)
10:elseif\(O_{th1}<O(t)\leq O_{th2}\)then
11: congestion state value \(=2,\ O_{th}=O_{th2},\ w=\frac{1}{4}\times\frac{O(t)-O_{th2}}{O_{th1}-O_{th2}}\)
12:\(R(t+1)_{cal}=R(t)\times(1+w\times(O_{th}-O(t))\)
13: calculate \(R(t+1)_{min}\) or \(R(t+1)_{max}\) using Equation (4)
14:elseif\(O(t)>O_{th2}\)then
15: congestion state value \(=3,\ O_{th}=O_{th2},\ w=1\)
16:if\(R(t)\geq R_{fair-shared}\)then
17:\(R(t+1)_{cal}=R(t)\times(1+w\times(O_{th}-O(t))\)
18:\(R(t+1)_{cal}=\min\ (R(t+1)_{cal},\ \mathbf{1}\times R(t)\))
19: calculate \(R(t+1)_{min}\) or \(R(t+1)_{max}\) using Equation (4)
20:elseif\(R(t)<R_{fair-shared}\)then
21:\(R(t+1)_{cal}=2.0\times R(t)\)
22: calculate \(R(t+1)_{min}\) or \(R(t+1)_{max}\) using Equation (4)
23:endif
24:endif
25:endfor
26:\(R(t+1)=R(t+1)_{min}+\gamma\times(R(t+1)_{max}-R(t+1)_{min})\)
27:return\(R(t+1)\)
```

**Algorithm 1**The Adaptation Method of Rate

## 5 Evaluation

This section describes the series of experiments that we conducted to evaluate the performance of the proposed mechanism. We developed SRMCC and PerIfwithECN [31] over NS-2 [14] and used the implementations for TFMCC [24] and ASMP [26] that were previously developed in NS-2. First, we performed basic technical verification on SRMCC, then compared SRMCC with TFMCC, ASMP, and PerIfwithECN with regard to throughput, bandwidth utilization, and packet loss rate. Finally, we compared the overhead of the four mechanisms. ### Simulation Setup

The simulation topology is shown in Figure 4. We set various experiment scenarios to investigate the performance. In scenarios 1 and 2, the bandwidths of the links between R0-R1 were set to 5 Mbps and 2 Mbps, respectively. And in scenario 3, the bandwidths of the links between R0-R1 and between R1 and each receiver were set to 2 Mbps and 1.5 Mbps, respectively. In the above three scenarios, there was one multicast traffic and two TCP traffic. Then, in scenario 4, we tested the responsiveness of SRMCC, TFMCC, ASMP, and PerfwithECN to changes of competing traffic, and the bandwidth of the link between R0-R1 was set to 2 Mbps. According to [26], the bottleneck link was shared by one multicast stream, two TCP flows, and one constant bit rate (CBR) applications. At the beginning of the simulation, the first TCP flow (TCP1) was transmitted with the multicast stream. At the 30 th second, the second TCP flow (TCP2) started transmission. And it stopped transmission at the 120 th second. The CBR application started transmission at 600 kb/s at the 80 th second, and stopped transmission at the 170 th second.