Evaluate multipath balia congestion control on ns3

 The dumbbell topology in [1] is used for to evaluate balia performance on ns3.

n0--L0--n2--L1--n3--L2--n4
n1--L3--n2--L1--n3--L4--n5

 The control rule in balia [2] is:
w r ← { w r + x r τ r ( ∑ x k ) 2 ⋅ 1 + α r 2 ⋅ 4 + α r 5 When an ack is received w r − w r 2 min ⁡ ( 1.5 , α r ) When packet loss happens (1) w_r \leftarrow\begin{cases} w_r+\frac{x_r}{\tau_r(\sum{x_k})^2}\cdot\frac{1+\alpha_r}{2}\cdot\frac{4+\alpha_r}{5} & \text{When an ack is received} \\ w_r-\frac{w_r}{2}\min(1.5,\alpha_r)& \text{When packet loss happens} \end{cases}\tag{1} wr{wr+τr(xk)2xr21+αr54+αrwr2wrmin(1.5,αr)When an ack is receivedWhen packet loss happens(1)
  Here, α = max ⁡ x k x r \alpha=\frac{\max{x_k}}{x_r} α=xrmaxxk. x r = w r τ r x_r=\frac{w_r}{\tau_r} xr=τrwr
 But the code implementaion in linux [3]for ai is:

	/*			(sum_rate)^2 * 10 * w_r
	 * ai = ------------------------------------
	 *			(x_r + max_rate) * (4x_r + max_rate)
	 */

  That gets me confused, since ai is not in consitent with (1).
  According to (1) and τ r = w r x r \tau_r=\frac{w_r}{x_r} τr=xrwr:
a i = 10 ⋅ ( ∑ x k ) 2 ⋅ τ r ( x r + m a x _ r a t e ) ⋅ ( 4 x r + m a x _ r a t e ) ai=\frac{10\cdot (\sum{x_k})^2\cdot \tau_r}{(x_r+max\_rate)\cdot(4x_r+max\_rate)} ai=(xr+max_rate)(4xr+max_rate)10(xk)2τr
 What I got is:

	/*			         (sum_rate)^2 * 10 * w_r
	 * ai_correct= ------------------------------------
	 *			    x_r*(x_r + max_rate) * (4x_r + max_rate)
	 */

  I dont know the reason behind the formular (1) to control the increase process of cwnd.
But at least, the ai_correct is indeed has the same unit with w_r.
  So, in implemementation, I use ai_correct to control the increase process of cwnd.

Test1

 The bandiwidth of L1 is 5Mbps.
 flow1 and flow4 are two subflows of a multipath session. flow2 and flow3 take Reno for rate control. flow1 and flow2 take route(n0->n4). flow3 and flow4 take route(n1->n5).
 The sending rate of each flow:
Evaluate multipath balia congestion control on ns3_第1张图片
 Packets received rate, here mp denotes the total throughput of the multipath session:
Evaluate multipath balia congestion control on ns3_第2张图片

Test2

 The bandiwidth of L1 is 8Mbps.
 The sending rate of each flow:
Evaluate multipath balia congestion control on ns3_第3张图片
 Packets received rate:
Evaluate multipath balia congestion control on ns3_第4张图片
[1] Evaluation multipath weswood congestion control on ns3
[2] Multipath TCP: Analysis, Design, and Implementation
[3] balia implementation in mptcp

你可能感兴趣的:(仿真,拥塞控制,mptcp)