Jain‘s Faireness index如何度量TCP公平性
Posted dog250
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jain‘s Faireness index如何度量TCP公平性相关的知识,希望对你有一定的参考价值。
导语:
本文并非源自于突发奇想。好多年前第一次接触Jain’s Faireness index公式,我甚至记不下来它的形式,也不指望能弄懂它的含义。
后来发现任意学科的绝大多数问题都是可以抽象成数学问题,这些数学问题几乎都可以仅通过四则混合运算,开方,简单的微积分描述和解决,而这些知识对于一个小学高年级学生而言都是可以理解的。
最近周末偶尔会给小小灌输一些数学思想,顺便用简单的数学去梳理以前自己似懂非懂的专业领域,作此文。
但这不是唯一一篇,前面写过多篇,后面也还有。
互联网作为一个自治系统,带宽资源在所有数据流之间是共享的,互联网得以运行的关键如如何在所有这些数据流之间公平合理地分配带宽。
TCP作为一个广泛部署的端到端协议,拥塞控制是避免互联网崩溃的前提,其中最重要的是带宽资源分配的公平性(对于避免拥塞而言,公平是最重要的,而不是效率),公平性是评价一个拥塞控制算法的重要指标。
那么如何度量一个拥塞控制算法的公平性,常用的方式即使用一个公式,即Jain’s Faireness index。
设一共有 n n n条流共享带宽, x i x_i xi为第 i i i条流的带宽分配情况(或为cwnd,或为pacing rate,随意),
F ( x 1 , . . . x n ) = ( Σ i = 1 n x i ) 2 n Σ i = 1 n x i 2 ∈ [ 1 n , 1 ] F(x_1,...x_n)=\\dfrac{(\\Sigma_{i=1}^nx_i)^2}{n\\Sigma_{i=1}^nx_i^2}\\in[\\dfrac{1}{n},1] F(x1,...xn)=nΣi=1nxi2(Σi=1nxi)2∈[n1,1]
F F F数值越大,公平性越好。
F F F为什么是这种形式?为什么它能度量公平性?背后有什么直观含义?我Google了好久都没有找到答案。正好最近跟朋友讨论过这个问题,在经过一些思考后,我决定自己写一篇。
从形式上看,Jain’s Faireness index实际上就是柯西不等式的一个特殊情况。
柯西不等式如下:
Σ k = 1 n a k 2 Σ k = 1 n ≥ ( Σ k = 1 n a k b k ) 2 \\Sigma_{k=1}^na_k^2\\Sigma_{k=1}^n\\geq (\\Sigma_{k=1}^na_kb_k)^2 Σk=1nak2Σk=1n≥(Σk=1nakbk)2【当且仅当 a 1 b 1 = a 2 b 2 = . . . a n b n \\dfrac{a_1}{b_1}=\\dfrac{a_2}{b_2}=...\\dfrac{a_n}{b_n} b1a1=b2a2=...bnan时取等号】
令 b 1 = b 2 = . . . b n = 1 b_1=b_2=...b_n=1 b1=b2=...bn=1,则柯西不等式化为:
Σ k = 1 n a k 2 × n ≥ ( Σ k = 1 n a k ) 2 \\Sigma_{k=1}^na_k^2\\times n\\geq (\\Sigma_{k=1}^na_k)^2 Σk=1nak2×n≥(Σk=1nak)2
两边除以左边,可得:
1 ≥ ( Σ k = 1 n a k ) 2 n Σ k = 1 n a k 2 1\\geq \\dfrac{(\\Sigma_{k=1}^na_k)^2}{n\\Sigma_{k=1}^na_k^2} 1≥nΣk=1nak2(Σk=1nak)2【当且仅当 a 1 = a 2 = . . . a n a_1=a_2=...a_n a1=a2=...an时取等号】
这就是Jain’s Faireness index,而且连取值范围都有了。
虽然数学形式很清晰,但仅从柯西不等式本身,依然无法看出 F F F的直观含义,为什么 x 1 = x 2 = . . . x n x_1=x_2=...x_n x1=x2=...xn就最公平,为什么随着 x i x_i xi之间偏差逐渐变大, F F F会逐渐变小。
从柯西不等式分析Jain’s Faireness index是最完备且优雅的,但在此之前我想分享一些自己思考的成果。我把柯西不等式的几何意义分析放在本文最后,现在暂且忘掉它,先来直观感受Jain’s Faireness index。
如果能有个动态的过程就太好了,于是想办法构造。
先从2条流说起,设
x
1
x_1
x1,
x
2
x_2
x2为其对应的资源,根据毕达哥拉斯定理的面积证明法,构造下面边长为1的正方形和其内接正方形:
有下列等式成立:
x
1
+
x
2
=
1
x_1+x_2=1
x1+x2=1
x
1
2
+
x
2
2
=
h
2
x_1^2+x_2^2=h^2
x12+x22=h2
移动P点可改变
x
1
x_1
x1,
x
2
x_2
x2的大小,观察以
h
h
h为边长的内接正方形面积S的变化。就像转万花筒一样,P点从A移动到AB中点的过程中,S逐渐变小,此后在接近B的过程中,S又逐渐增大。
这个动态过程正好可以如下度量公平性:
- 当P点位于A点或者B点附近时最不公平,此时S最大。
- P点逐渐从A或B接近中点的过程中,S单调递减。
接下来将这个过程向Jain’s Faireness index靠拢。
不妨将S的倒数作为公平性度量。求出S的范围:
1 S = 1 x 1 2 + x 2 2 = 1 h 2 \\dfrac{1}{S}=\\dfrac{1}{x_1^2+x_2^2}=\\dfrac{1}{h^2} S1=如何添加 JAIN SIP?