12012427 Kerui Huang
12010641 Jingxuan Niu
12011619 Liquan Wang
Our data collected below are all based on the follwing event:
0 link 200000
20 link 20000
20 link 1000
20 link 200
In the event file, we make the bandwidth decrease every 20s, so the network becomes more congested.
onelink | twolink | sharelink | |
---|---|---|---|
α=0.1 | ![]() |
![]() |
![]() |
α=0.5 | ![]() |
![]() |
![]() |
α=0.9 | ![]() |
![]() |
![]() |
ylabels = ['% of link utilization', 'Jain Fairness', 'Derivative of BR wrt time']
By checking the code in grapher.py
we can see that smoothness means "Derivative of BR wrt time"
The fifth param in proxy's log file is BR (bit rate), so the smoothness means the change rate of bit rate
We can see clearly that at the beginning the bit rate suddenly increased because we initialized the bit rate as 200 but the bandwidth is 200000
At 20000->1000, the bit rate suddenly decreased because the bandwidth becomes too narrow, and at this time the video becomes vaguer
There's no good params to improve this because the change of bandwidth defined in the event file is stable
onelink | twolink | sharelink | |
---|---|---|---|
α=0.1 | ![]() |
![]() |
![]() |
α=0.5 | ![]() |
![]() |
![]() |
α=0.9 | ![]() |
![]() |
![]() |
Jain's Faireness index is widely used to value the fairness of specific stream distribution system, whose formula is
Here we only test two proxy, so the formula becomes
where
From the pictures, we can see that sharelink α=0.1 performs the best
- This may because that the sharelink shares the same link, so the difference is less
- And because α=0.1, the weight of
$T_{current}$ is low, so the change rate of bit rate is low, which makes the fluctuation of network milder, the fairness will more likely to be 1
Another feature we noted is that in the onelink column, there are always imbalance after the 100000->10000
and 2000->200
This feature is the same as Jain Fairness's change feature, from this, we can know that the mutation of bit rate can also cause the imbalance between two proxies
onelink | twolink | sharelink | |
---|---|---|---|
α=0.1 | ![]() |
![]() |
![]() |
α=0.5 | ![]() |
![]() |
![]() |
α=0.9 | ![]() |
![]() |
![]() |
-
We can see clearly that at the bandwidth's sudden decrease, the utilization suddenly increase, especially in twolink α=0.1. This is because the network can't decrease the bit rate of segment requested in time, and α=0.1 makes the change rate more slower
-
Generally we can see that as bandwidth becomes narrower, the utilization becomes bigger, which is reasonable
-
As for the param choice, twolink and sharelink are both good choice, but they have different advantage and disadvantage
-
Twolink's advantage is its high utilization(twolink is higher than 20%, but sharelink is lower than 20%), which means in the same bandwidth, the picture quality is better.
But the disadvantage is its fluctuation, which can be seen clearly in the picture
-
Sharelink's advantage is its stability of utilization at α=0.1, which means the picture quality is more stable
-
Instead of decreasing the bandwidth, here we increase the bandwidth using the following event with onelink α=0.5
0 link_1 200
20 link_1 1000
20 link_1 20000
20 link_1 100000
The fairness is perfectly maintained at 1, so the increase of bandwidth doesn't affect the balance between two proxies, but the decrease does.
Then we test the real case, the bit rate will both increase and decrease
0 link_1 1000
10 link_1 500
10 link_1 2000
10 link_1 10000
10 link_1 100
10 link_1 5000
Below picture is the fairness change, the feature is the same as we analyze before: there is imbalance when the bit rate decreases
Utilization change, the feature is the same as we analyze before: there is utilization increase when the bit rate decreases
[1] Jain's paper in 1984: https://arxiv.org/ftp/cs/papers/9809/9809099.pdf