本文为 新式拥塞控制 提供依据。
博弈均衡与化学平衡一样都建立在统计学之上,统计学关联众数参与者与随机过程,这本身说明大量的随机背后存在一个稳定的不动点,本文就此写一点想法。
在互联网中,用户之间的流量互相影响,博弈模型可描述这种关系。
博弈模型中,所有参与者均选择策略使自己收益最大化,纳什均衡(一种博弈均衡)是指这样一种稳定状态,该状态下参与者不能通过改变策略进一步提高收益。
在互联网中,每个用户在网络拓扑、网络质量等背景因素下,路由系统为其选择一个最优路径传输数据。而这些用户的选择会相互影响,形成一个博弈模型。 在这个博弈模型的纳什均衡点,所有用户的流量传输达到均衡,无法再通过改变策略来提高自己的收益,即稳定的最优状态。
为什么会有这样的稳定状态?先从用户行为的规律性说起。
至少在目前看来,互联网流量多由人触发(未来不一定,可能流量由 AI 触发,但 AI 也遵循和人一样的 “自然法则”),而人的行为有规律性。虽然人们共同生活在一个庞大的统计复用系统(即世界)中,虽然理论上这样的系统充满了不确定性和不可预知性,但其实人的行为非常规律,每个人的行为都或多或少存在一定的周期。
比如有人每天吃完饭会沿固定线路散步,有人每周五晚上会吃一顿烤鱼。我曾经开玩笑说,我们自以为世界很大,可能性很多,可我们每天遇到的人就那固定几个。每天午饭后在工作的园区散步的可能是同样几波人,每天坐地铁上班的可能也是同样的人,如果留心,可能会在固定时间固定地点看到固定的人,他们都是熟悉的陌生人。
这些熟悉的陌生人同样在固定的时间固定的地点看剧,刷手机,即便仅仅拿起手机无所事事,经常点开的也是那几个熟悉的 app,再加上推荐系统加持,人的视野会逐渐收敛,进而流量也逐渐收敛。
固定的人在固定的时间地点产生固定的流量,这似乎解释了一切问题,可导致这种规律的又是什么?为什么一个人每天都在 11 点 50 分去吃饭,而不是今天 12 点,明天 12 点 15,后天再试试 12 点 50。因为人类设计的系统本身不因人的行为而改变,即系统是输入无关的,人们很难找到尝试的方向,也就是说,只有试了才能知道结果,而不能在尝试之前预测,在已知有足够 “最佳” 的策略后,人们就没了继续尝试的动机。
如交通信号灯,无论车流量怎么改变,红绿灯亮灯间隔不会改变,换句话说,你无法通过利用红绿灯的亮灯模式而获益。系统本身固定后,其它变量在一系列的探测后总会固定下来,此时成本最低,收益最佳。
每当我搬到一个新城市,或换了一份新工作,我对此感受颇深。我会花几天到一个月时间尝试不同时间上下班,直到找到一个各方面权衡都差不多的,从此就固定在那个时间。如果所有人的上下班时间都在每天改变,我可能永远都找不到这个 “最佳点”。我这么想的,别人也是,于是每个人都能找到自己的 “最佳点”。
只有足够多的人朝同一个方向调整策略,才能驱使单一个人调整策略,否则找到 “最佳点” 后就不再变化,个人不再变化,整体也就不再变化。这背后有一个统计学真理,能让系统稳定下来的最大力量就是随机,随机可以湮没掉人们朝同一方向调整策略的动力。我稍微解释一下。
我们假设系统是输入无关的,每一个个人都无法预测往哪个方向调整策略会更好,A 可能觉得是 d1 方向,但在 B 看来可能是 -d1 方向,而 C 看来是 d2 方向…每个人倾向的策略调整方向在整体上看,相互抵消了,无法形成合力朝向同一个方向,那么最好的策略就是 “不动”。封闭空间的气体趋向于同一温度,也因为如此。
于是人群的行为便可预测,互联网流量也变得可预测。
来看事情另一面,如果系统不是输入无关,而随着人的行为变化,会怎样?
显然,这个变化规律一定会被发现而被利用,人们就有了跟踪这个模式改变自己行为以获益的动机。比如地铁间隔根据人流调整,早上 7 点,等车的人少,间隔很久,人们不想等待,于是都在 8 点后才进站以减少等车时间,但所有人都会采取这个策略,于是拥挤开始增加,终于有人受不了,选择提前到站等待,当人们都这样考虑时,高峰期就会提前,直到到达人们的另一个决策点,是选择即到即走,还是选择多睡一会儿。系统开始像个钟摆一样左右颠簸。所以,为了避免系统变得不可预测,地铁往往会选择固定时间段固定间隔。这算一个少数者博弈。
当然,如果不是上班时间,睡觉时间有 deadline,高峰期后因此持续往后延,直到第二天早上回到原点画一个圈(为什么我们的计时系统是一个圈,而不是一条勇往直前的直线),后面还会提到这一点。
大部分统计复用系统被设计为输入无关,不随使用者的变化而变化,否则系统将变得颠簸,不稳定,不可预测。这大概就是这种 “非生态” 系统不像 “N 体系统” 那样捉摸不定的原因,像三体系统那样,引力来自系统本身,同时又影响系统本身。
但我们可以通过了解用户所采用的策略和行为规律,通过博弈论的方法来分析和预测互联网流量模型的行为规律,从而更好地利用网络资源吗?当然可以,但要悄悄的。
还是上面的原因,如果每个人都尝试了解这种规律,如果每个用户都有了流量画像,那么这些用户肯定会利用这个流量画像使自己受益,比如说,如果每个司机都知道工作日晚高峰某个路口严重拥堵,那个地方也就不会拥堵了。流量将因此而开始颠簸。
我不赞同公开全局画像(如果有的话),不赞同利用这种相对全局的模式,这么多年我可以避开道路拥塞,可以买到抢购货,很大程度上就是靠这类信息差。当学校食堂门口火车票代售点排起长队时,如果他们知道花一块钱坐 20分钟公交车到火车站售票大厅就能买到车票,那么售票大厅就要排队了,于是接下来售票点就空闲了。
博弈均衡似乎天然公平。以 BBR probe 为例,带宽占比越小的 flow 加速比越大,这意味着它有足够充分的理由继续 probe,占比越大的 flow 继续 probe 只会降低其效能,还记得 E = maxBW/minRTT 吗?直到均分带宽,达到均衡后,谁也没有动机继续 probe,这就达到了稳态。
虽然人的行为具有规律性是好的,也 “最优”,最 “省力”,但依然没有解释人的行为为什么必须规律性。全体参与者随系统演化,心随影动,岂不是一幅更壮美的图景?
博弈模型勾勒的是一个行为系统,而博弈的背景总有固定因子不受参与者行为影响,它们与输入无关。除非将所有背景拉到前台一起单调演化,否则系统将摆动。
比如太阳自传公转周期不随人意志转移,而这却影响了人的生物钟,进而决定人的行为,日出而作,日落而息。包括四季,气温,动植物生长周期,都属输入无关,而这些背景勾勒了参与者行为的基本面。
客观讲,我们不能把 “摆动”,“抖动”,“波动”,“颠簸” 当作坏事,这些词的意义,在好的一面意味着弹性,大雪压青松,弯而不折,就是这意思。
人类设计的系统之所以普遍采取固定规则,说到底还是因为人们选择了高效而牺牲了弹性。人并不是非要规律性,而是在输入无关的固定背景下,为了组织效率而选择了规律性。地球有一半时间是夜晚,不适合组织生产,只有固定白天一日三餐的理念,才能更好组织集体生产,而这种固定行为一旦开始就成了习惯,当你早上 6 点必须起床在 7 点前吃了早饭,你的人体结构决定了你正好到了 12 点左右会饿,于是吃午饭。
也正因如此,回到前面的例子,由于人们的工作时间不可能单调延后,高峰期摆动的时间才有限,固定时间点的固定发车间隔实际效果是限制了这种摆动的幅度,于是人们的生活变得规律,固定时间出门,固定时间乘车,某种意义上你不得不这么做,因为换其它时间并不会更好。
整个人类社会从此就像上了发条的机器,自动地,有规律地运转。越到后来,“自由” 带来的不确定性越低。原始人最自由,进入农业社会后,受农作物影响,人不得不花更多精力在特定时间照料这些作物,进入工业社会,人的行为和机器捆绑在一起,机器不停,旁边就要有人,如今的信息时代,工人基本都处在 24 小时 oncall 状态。与人类社会相对的是自然生态,生物圈,食物网,弹性大,但低效。
结论是,越追求高效,随机因素就越小,从而弹性就越小。
回到本文写作的本意,互联网也有纳什均衡点,而且还不止一个,这些纳什均衡点可描述诸如路由,拥塞控制,协议部署等多种博弈行为,以网络可靠性和可用性为度量,这些均衡点肯定存在并自发达到。所以我认为诸如 CDN 厂商和各互联网公司叫卖的 “更优质” 的传输服务有点言过其实,没有谁可以更优质。用以下的观点理解拥塞控制和传输协议是高尚的,作为代步工具,在统计复用的的道路上,R8 并不会比 A4L 更快到达目的地,R8 比 A4L 更好的数据是在无人跑道上 “竞速” 出来的结果,当然,可能座椅也更高档些。
最近上下班路上读了《纳什均衡与博弈论》这本书,为我此前提出关于新样式拥塞控制方法(参考:新式拥塞控制)找到了依据,化学反应是分子统计交互, 所有化学反应物质决定均衡条件。在博弈中,混合策略驱动复杂性构造,即进化。 博弈描述了进化过程,创造了多样性。因此,人群也总会稳定,由人群触发的网络流量也因此自带规律和模式。这篇算个读后感吧。
浙江温州皮鞋湿,下雨进水不会胖。