洛伦兹曲线如何度量TCP公平性
Posted dog250
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛伦兹曲线如何度量TCP公平性相关的知识,希望对你有一定的参考价值。
洛伦兹曲线一般用来描述收入分配,但实际上收入分配只是一个case,所有涉及固定资源分配的case,都可以用洛伦兹曲线来描述,而基于洛伦兹曲线度量公平性的指标,便是基尼指数。
如何理解洛伦兹曲线呢?我给出一个递归构造的方法。
设
n
n
n条流总带宽为单位1,
x
i
x_i
xi为流
i
i
i分配的带宽,很显然
Σ
k
=
1
n
x
k
=
1
\\Sigma_{k=1}^nx_k=1
Σk=1nxk=1,将所有流按照带宽从小到大排列,均匀分布在横轴上。纵轴为积累带宽百分比,横轴为积累流数量,下图
P
P
P点的意思是,前
m
m
m条流的总带宽占据带宽总量的百分比为
p
p
p:
如果所有流分配到相同带宽,按照上面的意思,洛伦兹曲线就是一条直线,每条流占据带宽百分比为
p
a
p_a
pa。由于按照带宽从小到大排列,假设所有流中有一个流比其它流的带宽都大,它肯定排在最后一个,它的带宽肯定要占据比均值更大的百分比,设为
p
n
p_{n}
pn,显然
p
n
>
p
a
p_n>p_a
pn>pa,这意味着其它所有流要均分剩下的
1
−
p
n
1-p_n
1−pn的百分比的带宽:
以上是在假设只有一条流被分配带宽偏大,其余流均分剩余带宽的情况。现在假设剩余
n
−
1
n-1
n−1条流中也有一条流带宽偏大,那么它肯定是第
n
−
1
n-1
n−1条流,和上面的情况类似:
剩下的以此类推。由于是按照带宽分配从小到大排列,总是可以用这种方法递归处理。
我故意放大了比例,方便看出趋势,曲线逐渐下凸。以上的递归过程,很容易得出结论:
- 越往后面的部分斜率越陡,带宽分配越不平均,曲线下凸的越狠。
只有排在后面的流才有更多让曲线下凸的机会,我试着按照上面的方法画第三幅图,但不得不把 p n p_n pn画的更大些,也就是最后面的斜率画的更陡些才能成功,否则斜率越来越趋向于公平曲线,也就很难再制造不公平了,这是关键。
好了,基尼指数是什么呢?设实际洛伦兹曲线与公平洛伦兹曲线围成的面积是 S S S,公平洛伦兹曲线和坐标轴围成的面积为 S A S_A SA,基尼指数就是 S S A \\dfrac{S}{S_A} SAS。
如何构造洛伦兹曲线的表达式呢?需要一个资源分配分布函数,然后去拟合,条件是,曲线的一阶导数表示该点的平均资源分配额,而二阶导数则表示斜率的变化率,事实上二阶导数揭示了不公平的根源:
- 导致斜率变陡的原因,在数学上看,仅仅是因为该点对应的资源分配参与者过少!!
当然了,为什么这里参与者过少,这才是根因,这就不是数学的范畴了。
浙江温州皮鞋湿,下雨进水不会胖。
以上是关于洛伦兹曲线如何度量TCP公平性的主要内容,如果未能解决你的问题,请参考以下文章
泊松回归gamma回归Tweedie回归等广义线性回归模型GLM的评估指标:校准曲线 洛伦兹曲线卡方检验AICBIC偏差(Deviance)指标
TCP核心概念-慢启动,ssthresh,拥塞避免,公平性的真实含义