洛伦兹曲线如何度量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 1pn的百分比的带宽:

以上是在假设只有一条流被分配带宽偏大,其余流均分剩余带宽的情况。现在假设剩余 n − 1 n-1 n1条流中也有一条流带宽偏大,那么它肯定是第 n − 1 n-1 n1条流,和上面的情况类似:

剩下的以此类推。由于是按照带宽分配从小到大排列,总是可以用这种方法递归处理。

我故意放大了比例,方便看出趋势,曲线逐渐下凸。以上的递归过程,很容易得出结论:

  • 越往后面的部分斜率越陡,带宽分配越不平均,曲线下凸的越狠。

只有排在后面的流才有更多让曲线下凸的机会,我试着按照上面的方法画第三幅图,但不得不把 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,拥塞避免,公平性的真实含义

LORENTZFIT 将单参数或多参数洛伦兹函数拟合到数据Matlab

LORENTZFIT 将单参数或多参数洛伦兹函数拟合到数据Matlab