![](https://img.haomeiwen.com/i18840/21635b2b88004278.png)
一群收获蚁生活在美国亚利桑那沙漠中,日复一日,收获蚁都要外出寻找种子作为食物,并运回蚁窝。对于他们来说,找不到种子,宁愿饿死、累死也不回窝。然而,沙漠中的天气有时会变得又热又干,食物减少,死亡危险增加。斯坦福大学生物学Gordon教授发现,每当这种天气来临,蚂蚁们就会自觉减少外出觅食的数量。难道说,蚁群中有位管家每天都查看天气预报,并且决定该派多少只蚂蚁出门么?并没有。
在蚁窝出口,等候外出的蚂蚁排着长长的队伍,每只回窝的蚂蚁在放下食物之后,都会与排队的蚂蚁互相碰碰触角。这些排队的蚂蚁会根据回窝蚂蚁的数量和频率来判断自己是否需要外出觅食。天气干热,蚂蚁找不到食物或者死掉,回窝的蚂蚁就会变少,排队的蚂蚁就不会大量出动。所以说,单只蚂蚁之间的交互决定了整个蚁群的觅食行为。一只蚂蚁也许并不聪明,整个蚁群却似乎拥有了智慧!
沙漠中有干热的天气,互联网中也有宕机和过载。蚁群的目标是收集食物,避免蚂蚁牺牲;互联网的目标则是传输文件,避免网络过载。斯坦福大学电子工程与计算机科学Prabhakar教授发现,实际上,互联网中的文件传输与蚂蚁的觅食行为非常相似。
传输控制协议TCP会将文件分成众多小包,这些小包叫做package。一些package会被先发出去,并且监控是否被成功接收,成功则返回ACK码,类似于邮件回执;如果宕机或过载出现,很慢或无法收到回执,服务器就会减慢甚至停止队列中剩余package的发送。
发出一个package就像一只蚂蚁外出觅食,收到ACK回执则类似于蚂蚁找到食物回窝。蚂蚁回来得又多又快,说明食物充足,那么就派出更多的蚂蚁。ACK回执快速及时,则说明网络带宽良好,那么赶快把剩下的package发出去吧。
蚁群依靠单只蚂蚁之间的交互控制觅食行为,互联网依靠单个package之间的发送与接收,控制拥堵和过载。不需要先知或强大的管理者存在,个体的简单协作即可以控制群体行为。TCP协议的这个设计思想使得网络具有了可伸缩性,使得任何网络都可以连接到一起,成为今日互联网的基石。
实际上,研究者们已经发现了很多生物系统与计算机系统间的相似之处。比如,粘液菌与网络路由,蜂群与分布式搜索,塘鹅与空间分割算法等等。
下一次你在厨房里发现蚂蚁的时候,别急着宣战。单只蚂蚁也许比较笨,但整个蚁群的能力不容小视,也许比你还要聪明哦。
编译&语音:Mia
原作者:Rosie Cima
原文链接:http://priceonomics.com/the-independent-discovery-of-tcpip-by-ants/
网友评论