一个TCP笑话 “你好,我想听一个TCP的笑话。” “你好,你想听一个TCP的笑话?” “是的,我想听一个TCP笑话。” “好的,我会给你讲一个TCP笑话。” “太好了,我会认真听这个笑话。” “你现在准备好听这个TCP笑话了吗?” “当然,我已经准备好听了。” “很好,我马上要讲这个TCP笑话了。它没有场景,10秒钟长,有两个人物,结尾有点睛之笔。” “好的,我早已洗耳恭听了,它没有具体场景,10秒钟长,有两个人物,结尾有点睛之笔。” “噢,不好意思,你接连超时了。 …… 你好,想听一个TCP的笑话吗?” 你明白这个TCP笑话了吗?它讲的就是网络堵塞,连接超时乃至中断。平时上网时,这个问题我们常会遇到。TCP协议是网络传输的主要方法,现在它亟待升级,以解决网络堵塞问题,而蚂蚁——非人类工程师或许能帮助人类解决这个问题。 蚁群功能是1+1﹥2 网络和蚂蚁有什么联系呢?似乎难以想象。然而,千万不要混淆一只蚂蚁和一个蚁群的概念,它们完全不对等,好比一棵树和一片树林完全不是一回事。 美国斯坦福大学科学家发现蚁群非常独特。在美国亚利桑那州沙漠里,蚂蚁会一只一只出窝觅食,除非找到食物,否则它们不会空手回窝。蚂蚁觅食中途,如果遭遇意外永远回不来,蚁群会怎么办?如果遇上正午天气又热又晒,又会怎么办? 通过长期观察,科学家发现蚁群完全适应沙漠气候,觅食的这些困难根本影响不了它们,而且它们还有许多未解之秘。 当遇到又热又晒的极端天气时,蚂蚁靠窝里储存的食物生活,蚁群只派出少量蚂蚁觅食;当食物少,蚂蚁就长时间不回窝,一直在外觅食;当食物多,它就很快回窝,觅食时间就短。准备外出觅食的蚂蚁会守在洞口一个窄道里。当觅食的蚂蚁回窝途经此道,遇见等候的蚂蚁,就会放下食物,然后两只蚂蚁用触角相互碰触。洞口蚂蚁是否外出觅食,取决于相互碰触的次数以及碰触的时间。就这样,一个复杂的集体行为完全由简单的个体碰触而主导。 天气怎样,没有人能断言。是否适合觅食,一只蚂蚁或许判断不出,但蚁群却可以确定。1+1﹥2意味着整体的能力超过了部分相加之和,蚁群就是这样一个整体。而且科学家相信,对蚁群研究得越深入,越会发现有用的东西。 蚁联网的对比 现代互联网上,传输控制协议(TCP/IP)是传送信息的基础,也是互联网重要的组成部分。互联网包含大量信息内容(如网站、视频、音频、文本),以及许多硬件设备(如路由器、缆线、卫星、基站、电脑)。 假如一台设备用TCP协议传输一份文件,它会把文件拆分成许许多多的小份,称为“数据包”。它向接收设备发出一连串数据包,并监控对方是否收到。如果收到,就返回“确认符”以标记,并以此调整剩余数据包的传输速度。 但有时传输数据拥堵、网速变慢,造成部分网络瘫痪,甚至中断连接。TCP协议发明于20世纪70年代,如今它急需改进。科学家从蚂蚁身上得到了启示,并将蚁群系统称为“蚁群算法”、“蚁联网”(英文Anternet)。 科学家发现,蚁群以食物量为参照,计算派出蚂蚁数量的方法,与互联网传输控制协议TCP相比,它们在本质上一模一样。蚁群的目标是派出更少蚂蚁而收集更多食物,TCP的目标是尽量避免拥堵而更快传输信息。通过互联网发送一个数据包,就好比派出一只蚂蚁外出觅食;返回一个确认符,就好比觅食的蚂蚁带回了食物。如果很快返回大量确认符,就意味着网速畅通,带宽足用,而足用意味着发送端将发送更多数据包。这就好比觅食的蚂蚁很快回窝,意味着觅食返回,食物足用,而足用也意味着蚁群将派出更多蚂蚁。反之,如果确认符返回得慢,发送数据就变慢;同样地,如果蚂蚁觅食返回得慢,蚁群派出蚂蚁也将变慢;如果它们根本不返回,那么派出和发送也将停止。对蚁群来说,停止意味着暂时不派出任何蚂蚁觅食;对TCP来说,则意味着连接超时(即中断)。 强调一点,上述这个例子只是简化版TCP,不代表它全部功能,但用来说明两者相似却足够了。 蚁联网有数百万年历史,它是蚂蚁拥有并持续使用的计算方法。通过蚁联网,蚁群把觅食损失降到最低,而且觅到了食物。TCP目的就是把数据拥堵降到最低,并且尽快传输信息。这两者实现目标的同时,都不需要额外的监督体系。 蚁联网的启示 每个蚁群都有一只蚁后,它不觅食不工作,靠其他蚂蚁喂养。它的地位最高,但是它却几乎没有“政治”权力,实际上,蚁后只是一只专职于繁殖工作的蚂蚁工。另外,蚁群里没有像公司那样的“经理”,时刻关注天气环境变化,并报告给外出觅食的蚂蚁。 唯一已知的就是,洞口窄道里两只蚂蚁用触角碰触的次数和时间,决定了蚁群算法的结果。一只蚂蚁的信息极其有限,这就决定了蚁联网的算法必须简单,而且是分布式的、数据化的、可测量的。互联网上,我们同样要设计分布式计算,并借助这种特性,使整个网络每个单元能更加数据化、更加可测量。这也是互联网信息共享的伟大之处。 另外,如果把蚁群比作互联网上无数个“0101”组成的计算机代码,就能以新思路设计更好的计算机程序——蚁群算法程序,实践证明它用来计算最优化路径时特别有效。 然而还有问题需要深入研究,既然蚁群派出的蚂蚁数量,取决于两只蚂蚁触角碰触的次数和时间,那么碰触时,蚂蚁到底“交流”了什么信息?这些信息又怎样决定了蚂蚁的行为?蚂蚁的个体行为,又怎样决定了蚁群的整体行为? 如果这些问题都能进一步弄明白,或许就能完全解决今天网络拥堵的问题,又或许如果蚁群算法提早发现,TCP历史就会改写,乃至不存在今天的问题。 |
|