CS305 Project Report
Our data collected below are all based on the follwing event:
1 | 0 link 200000 |
In the event file, we make the bandwidth decrease every 20s, so the network becomes more congested.
Smoothness
onelink | twolink | sharelink | |
---|---|---|---|
α=0.1 | |||
α=0.5 | |||
α=0.9 |
1 | 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
Fairness
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 $^{[1]}$
$$
\begin{equation}
F\left(x_{1}, \ldots x_{n}\right)=\frac{\left(\Sigma_{i=1}^{n} x_{i}\right)^{2}}{n \Sigma_{i=1}^{n} x_{i}^{2}} \in\left[\frac{1}{n}, 1\right]
\end{equation}
$$
Here we only test two proxy, so the formula becomes
$$
\begin{equation}
F(x_1,x_2)=\frac{(x_1+x_2)^2}{2(x_1^2+y_2^2)}
\end{equation}
$$
where $x_i$ is each stream’s bandwidth, the more $F$ gets close to 1, the system is fairer to each proxy.
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
.
Utilization
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
Bandwidth’s increase and decrease
Instead of decreasing the bandwidth, here we increase the bandwidth using the following event with onelink α=0.5
1 | 0 link_1 200 |
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
1 | 0 link_1 1000 |
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
.
Reference
[1] Jain’s paper in 1984: https://arxiv.org/ftp/cs/papers/9809/9809099.pdf