蚂蚁和互联网的故事

要不要出去找吃的,出去多少只,对蚂蚁而言,这是必须面对的问题。

出去多了,有收获还好,没收获的话,浪费“蚁力”不说,江湖险恶,还有丧命的风险。

出去少了,虽不至于“不知有汉,无论魏晋”,但错过食物,减少收成,却是很有可能的。

虽简单,却是生死攸关的问题。生存是第一需求,但食物越多并不完全等价于存活得越久。后者要求的是性价比,是消耗较少资源,收集较多食物。

蚂蚁们给出了自己的答案。

这个答案不是“蚁后坐阵指挥,决胜千里”。蚁后虽有王后的名头,却不过是一只专门负责下蛋的蚂蚁,并没有什么“政治”权力。况且,也没有蚂蚁坐在门口清点和汇报布阵情况供它决策。

每当有蚂蚁带着食物载誉而归时,便会在洞口放下食物,和守候在那里的蚂蚁碰一碰那两根“小天线”。等待的蚂蚁是否出发,踏上冒险之旅,取决于这种交流的次数和间隔的时长。

一旦出发,不找到点什么,蚂蚁是不会轻易回家的。因此,周围的食物越多,回来得越频繁,就有越多的蚂蚁集结出发;食物越少,回来的次数也少,家里的蚂蚁就自觉省点力,不出去白忙活了。当然,回来的少,也可能是壮烈牺牲了,说明外面危险,还是按兵不动的好。

没有统筹兼顾,没有上传下达,个体的机械和无知,却构成了整体的灵活与英明。

这种方式,在蚂蚁界已经运行了几百万年,恐龙在的时候,它们在;恐龙不在的时候,它们依然在。人类在的时候,它们在;人类不在的时候,诅咒它们也不在……

你以为这是在讲蚂蚁觅食,但其实是在讲 TCP通信。TCP协议能够流行、成为整个互联网的基石,很重要的一点是它解决了之前一直存在的“拥塞崩溃”问题。解决此问题的一个措施是“拥塞控制”:

拥塞控制是一种用来调整传输控制协议(TCP)连接单次发送的分组数量(单次发送量,在英文文献和程序代码中常叫做cwnd)的算法。它通过增减单次发送量逐步调整,使之逼近当前网络的承载量。

我们要在事先不知道带宽,或带宽一直变化的情况下,完成通信又避免拥塞。

TCP发送数据包,好比蚂蚁外出觅食;返回确认符,好比蚂蚁带回食物。很快返回大量确认符,意味着带宽充足,允许发送更多数据包,好比大量蚂蚁回巢,表明食物充足,要多派人手出去抢运。反之亦然。如果根本不返回,发送和外出也将停止,对应TCP的超时。

第一只外出的蚂蚁是如何决定出去而不是留下呢?这其实不难,一开始总得有一批侦查员,先出去打探打探,为后续行动收集情报。因为只是侦查,所以数量不用也不宜太多。对应的是TCP控制拥塞的另一招——慢启动,服务器通过 TCP 连接初始化一个新的单次发送量 (cwnd),将其值设置为一个系统设定的保守值。每次往返都令其翻倍(指数式增长),进而迅速向有效带宽靠拢。

一个优秀的分布式系统是没有中央节点的分布式系统。神奇的自然选择造就了蚁群,这个优秀的分布式系统。

争气的是,我们并没有“抄袭”蚂蚁,而是独立发现这一算法,并应用在TCP协议中。

1988 年,Van Jacobson 和 Michael J. Karels 撰文描述了解决这个问题的几种算法:慢启动、拥塞预防、快速重发和快速恢复。这四种算法很快被写进了 TCP 规范。事实上,正是由于这几种算法加入TCP,才让因特网在 20世纪80年代末到 90年代初流量暴增时免于大崩溃。

向两位大神致敬,也向发明TCP/IP的Vint Cerf(被誉为“互联网之父”)和Bob Kahn致敬。


(2005年,Vint Cerf和Bob Kahn获得小布什颁发的“总统自由勋章”)

对了,我们知道蚂蚁懂这个算法,这事本身也是很牛逼的。这是斯坦福大学教授Deborah Gordon长达30年的研究成果。没错,我们是独立提出了蚂蚁觅食的算法,但我们有什么信心能独立提出它们的更多算法?

搜“Harvester ants use interactions to regulate forager activation and availability”,看教授的研究论文。

参考资料:

http://news.stanford.edu/news/2013/may/ants-forage-evolve-051413.html

http://news.stanford.edu/news/2012/august/ants-mimic-internet-082312.html

https://priceonomics.com/the-independent-discovery-of-tcpip-by-ants/

https://www.wired.com/2013/07/what-ants-yes-know-that-we-dont-the-future-of-networking/

https://zh.wikipedia.org/wiki/%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6

https://www.ted.com/talks/deborah_gordon_digs_ants#t-965306

High Performance Browser Networking

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,881评论 4 368
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,052评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,598评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,407评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,823评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,872评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,037评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,778评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,505评论 1 247
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,745评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,233评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,568评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,231评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,141评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,939评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,954评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,784评论 2 275

推荐阅读更多精彩内容