◇◇新语丝(www.xys.org)(xys5.dxiong.com)(www.xinyusi.info)(xys2.dropin.org)◇◇   新桃花源记   晓鸿   目录   新桃花源记(1)——通过空气连接电脑网络 1   新桃花源记(2)——辛苦的传话人 3   新桃花源记(3)——聪明的指路人 6   新桃花源记(4)——你是人吗? 9   新桃花源记(1)——通过空气连接电脑网络   千禧九年,XYX梦游为业,缘校行,忘路之远近。忽逢桃花岛,桃花岛上住 着一群与世隔绝的人,不知有网络,但每人都有一台上天赐予的电脑。   我看了看他们的电脑,竟然和我们的差不多,内置话筒、喇叭,只是没有红 外、没有“猫”、更没有有线网卡或无线网卡。想拆开来看看硬盘,却发现浑然 一体,竟无从拆卸。岛民从未听说过电脑网络,亦无网线、U盘,甚至软盘都没 有,共享资料着实不便。   回想网络三要素:两台或两台以上的电脑——这里是完全具备了;共享信息 ——这里确实有这个需求;通过某种介质连接在一起——惟缺这一点了。但这里 没有电话线、网线、红外、微波和光纤之类啊,得把思路打开点,只要把电脑通 过某种方式连接起来就行,以前甚至有人研究过通过普通的电源线把电脑连网呢。 桃花源里的电脑只有话筒、喇叭,对了,就可以通过空气传递声音来连网!   手指在键盘上翻飞,不一会,两台电脑上就都编好软件了。我在我的电脑软 件中输入:下载://老王电脑/小说文件夹/红楼梦,就听得我的电脑中的语音软 件开始说话了:   “老王听好咯,我是老徐啊,把你小说文件夹中的红楼梦传给我吧。结束”   空气振动,声音传到老王电脑的麦克风。老王电脑里语音识别软件理解了这 段话,开始读取电脑里保存的《红楼梦》这一文件,然后老王的语音输出软件开 始工作:   “老徐听好咯,我是老王,没问题,我要传给你咯。结束”   “老王听好咯,我是老徐,我准备好了。结束”   “老徐听好咯,我是老王,我开始传给你了:红楼梦,第一回:甄士隐梦幻 识通灵……结束”   我的电脑中语音识别软件识别出每个汉字,并保存到一个文件中。   ……   桃花岛岛民们看了神奇的电脑网络,纷纷要我给他们编软件。于是,一屋子 的电脑整天都在吵吵嚷嚷,“老赵”、“老钱”、“老孙”、“老李”,声音不 绝于耳。   就这么着,只借助话筒、喇叭和空气,各个电脑连成了网。麻雀虽小,但五 脏俱全。不管是通过电、光还是这里简陋一点的做法通过声音传递信息,每次信 息传递都包括了“头部+要传的信息+尾部”,头部包括了源地址(发给谁)和目 的地址(谁发的)等,尾部包括了结束标记等。每个电脑只关心给自己的信息, 比如老王的电脑只有听到“老王听好咯”,才会去关心后面说了什么话并去处理。 当然还有一些广播信息需要发给所有的电脑,就用“大家都听好咯”开头。这些 都得大家事先约定好了才不会乱掉,称为“协议”。   电脑说话的速度越快,一秒之内传递的信息就越多。但电脑说话的速度不能 太快,快到一定程度声音就含糊听不清了。不同房间的回音不一样,温度及空气 密度不同,话筒和喇叭的质量也不同,语音识别的能力也不一样,所以说话速度 的上限也不一样。以前我曾疑惑外表看上去差不多的网线,为什么有的传输速率 只有10兆/秒,有的就可以达到百兆/秒呢?看来和这个房子的道理一样啊。   有些电脑的语音软件我用男声,有些用女声,有些声音尖一些,有些低沉一 些。这样一间屋子的空气可以同时多个人说话而不会互相干扰,这叫“频分多路 复用”,是通过频率把信号分开来。   有些电脑隔得远了点,说话声音听不清楚,这是因为声音在空气中传递时衰 减了。于是我把一台电脑放在中间,负责把听到的话原封不动往下传话。就像以 前的房子太大,皇帝来时下人们从门口一个接一个大喊“皇上驾到”,就可以把 声音传到里屋了。这叫“中继器”。   电脑越来越多,声音干扰得厉害,我准备限制一次只能一个人说话。约定好: 每个电脑说话之前先听听有没有人说话,没人说话了再说。当然这样做还是有可 能发生两个电脑不约而同一起开口(这叫发生冲突),所以再约定开口后还要再 听一下是不是有人碰巧和自己一起开口。如果有冲突的话,就随机等一会儿再听 有没有人说话。这样就保证了房间里每次只有一个人说话啦。这叫“载波侦听, 多路访问,冲突检测”,按照这种方式来说话的网络就是传说中的以太网 (Ethernet)啦。   找我连网的岛民们越来越多,一个房间电脑太多,只要有两台电脑说话,其 他电脑就得等着。等得让人心焦啊,我就把他们分到不同的房间去,每个房间只 放一台或少量的电脑,房间之间隔音,互不干扰。但是问题来了,老王和老徐如 果被分在两个隔音的房间里,老徐下次找老王要林徽因传记的话该怎么把话传到 老王那里呢?   该轮到交换机华丽出场了,再之后,就得造路由器了。网络分层也得提上议 事日程了,不能再像我现在编的这个软件,各个层次纠结在一起不愿分开。   新桃花源记(2)——辛苦的传话人   自从我在《新桃花源记(1)——通过空气连接电脑网络》通过空气把计算机 连网后,桃花岛的岛民们连网的电脑越来越多,于是我开了两个隔音的房间,每 个房间只放少量电脑。房间里面的电脑按照以前的办法互相说话没问题,但如果 老王和老徐被分在两个不同的隔音房间里,老徐要找老王要林徽因传记的话该怎 么把话传到老王那里呢?   对了,加一个传话人就没有问题了,这样各个电脑不需要做任何改动,就可 以解决问题了。   传话人的左耳朵接个耳机可以听A房间的对话,右耳朵接个耳机可以听B房间 的对话,再有两个麦克风,可以专门向A,B两个房间分别讲话。   一开始,传话人也不知道哪个房间住了哪些人,就只是听着而已。按照新桃 花源记(1)的对话过程,传话人听到A房间有人说:“老王听好咯,我是老徐啊, 把你小说文件夹中的《林徽因传》传给我吧。结束”   一听有人说话,传话人就笑了,原来A房间住着老徐,心里记下了,以后有 人找老徐就把话传给A房间就行了。   只是老徐要找的这个老王是在A房间还是B房间呢?传话人自己也不知道。保 险一点,还是各个房间都传一下吧。于是对着各个麦克风原封不动地传话:“老 王听好咯,我是老徐啊,把你“小说”文件夹中的林徽因传记传给我吧。结束”。   这下不管老王呆在哪个房间,也不管有多少房间,老王都能听到这句话了。 老王和新桃花源记(1)中的做法一样,听到“老王听好咯”就开始回答:“老徐 听好咯,我是老王,没问题,我要传给你咯。结束”。   传话人听到这话,知道老徐在A房间,于是向A房间传话。   另外传话人一听到老王发声,就知道老王住在哪个房间了。比如通过刚才的 对话就知道老王在B房间,从此传话人不管听到哪个房间的电脑找老王,只需要 向B房间传一下话就行了。   通过传话人,老王和老徐按照以前同样的方式完成对话。   “老王听好咯,我是老徐,我准备好了。结束”,   “老徐听好咯,我是老王,我开始传给你了:林徽因传……”   老徐电脑中语音识别软件识别出每个汉字,并保存到一个文件中。   这样,不管有多少房间,传话人通过听大家说话,经过一段时间就知道每个 房间有哪些电脑了,可以准确地把每个电脑所说的话传到合适的房间。当然,如 果某个电脑要做广播,说:“大家都听好咯”,则传话人就向每个房间广播一遍。   这下子完美多了,每个房间内部各个电脑的对话不会影响其他房间,可以同 时进行。需要时又可以和其他房间对话或向所有房间广播。这个传话人功不可没, 它在两个房间之间建立起友谊之桥,我们叫它“网桥”。当然如果有更多的房间, 就不像桥了,而且人的耳朵有限,这个任务又很繁重,得造个专门的机器来做这 事。这台机器其实是把声音从一个房间切换(交换,switch)到其他合适的房间, 所以就叫它交换机吧。   有了交换机,A房间的老徐和B房间的老王在通话时,C房间的老赵和D房间的 老李可以同时通话。只要交换机能力足够强,管它有多少电脑同时说话呢。   记得小时候看过电话接线员的工作,外面有电话打进来时,总机就问找哪位, 问清楚后就把线插到相应的分机的插孔里,分机的电话就响了,这个电话接线员 其实也是做类似的事情,只是也是人被程控电话交换机取代了。   接下来的问题是:   如果哪台电脑发了神经病,拼命地说“大家都听好咯”,这样每句话都得传 话到所有的房间,这种广播很多时,就会让大家正常说话都无法进行了,这叫广 播风暴。   如果打仗时一颗导弹正好命中这台交换机,所有的电脑就都瘫了。   如果棒槌岛也有人弄了电脑网络,但做法和我们的不一样,而棒槌岛和桃花 岛的网络想相互连接起来。   ……   下回,得把路由器、网关发明出来了。发明路由器时分层的事情再也不能拖 了,此外校验问题、分包、出错重发、控制问题……真是任重道远啊。   新桃花源记(3)——聪明的指路人   桃花岛的各个房间遍布传话人后,就变得太吵了,尤其很多人爱广而告之, 动不动就说“大家都听好咯”,弄得大家心烦意乱。   需要隔离!   我把大家分到几个村庄,一个村庄作为一个网络,村庄里面才允许广而告之。 村庄之间怎么传话呢?通过指路人(路由器),指路人之间可以互相通话。一个 村庄可以用多个指路人,指路人之间也很复杂地连接起来。下面这个图简化一下, 三个村庄,每个村庄一个指路人,三个指路人一一相连(通过话筒喇叭互相传话, 如果不怕慢的话,甚至可以通过人做信使在指路人之间传话)。   宋集老徐的电脑想和吴集老王的电脑说话,就开腔了:“宋集指路人听好咯, 我是老徐,要和吴集的老王讲话”。宋集的指路人就把话传给吴集的指路人,吴 集的指路人再把话传给吴集的老王。   哪天如果吴集和宋集之间的话筒A-B连线断了,或者话筒A或B坏了怎么办?宋 集的指路人就把话传给杨庄的指路人,杨庄的指路人再把话传给吴集的指路人, 这样,最后可以把话传到吴集的老王那里。   指路人怎么如此聪明,知道要找杨庄的指路人就可以最后把话传到吴集?   原来,指路人之间不断地向能说上话的其他指路人报告自己的信息。比如吴 集的指路人会告诉所连接的杨庄及宋集的指路人:我连着吴集,到吴集一步就到 了。   宋集指路人在喇叭A听到这句话,就知道增加一步就可以到吴集,于是心里 记下了指路信息:   到吴集,向话筒A说话,两步就到了。   杨庄的指路人在话筒喇叭D听到这句话,也心里记下了:   到吴集,向话筒D说话,两步就到了。   各个指路人继续互通信息。比如杨庄的指路人继续通过话筒E传话: 我连着 杨庄,到杨庄一步就到了。我也能到吴集,但要通过别人转,两步就到了。   宋集的指路人通过喇叭F听到这个消息,又记下了:   到杨庄,向话筒F说话,两步就到了。   到吴集,向话筒F说话,三步就到了。   且慢,宋集的指路人之前心里已经记下过“到吴集,向话筒A说话,两步就 到了”,现在又知道“到吴集,向话筒F说话,三步就到了”。那么有人找吴集 的人,到底向话筒A还是F说话?   这就涉及到指路人用什么策略了,如果只考虑缩短中间环节的话,就选步数 最少的:2小于3,于是保留“到吴集,向话筒A说话,两步就到了”。   也可以根据其他条件来,比如如果用话筒A要收费而用话筒F不收费的话,或 者话筒AB之间太忙了,那就用话筒F。   这样每个指路人都可以在心里形成一个指路表,我们称为“路由表”。根据 这个表,不管谁要和哪个村庄里的人说话,指路人都可以通过一个合适的路径最 终把话传到。   这个指路表可以动态更新,比如如果话筒A或B坏了、或者话筒A和B之间的线 被恐怖分子破坏了,指路人之间就会重新互通一下消息。这时宋集的指路人就不 会在喇叭A里听到吴集指路人发来的信息,心里就不会记下:“到吴集,向话筒A 说话,两步就到了”,而是根据喇叭F听到的消息记下“到吴集,向话筒F说话, 三步就到了”。实际上,指路人之间隔一段时间就会通过话筒告诉直接通话的其 他指路人:我还活着。这样,一旦发生问题,就可以及时更新指路的信息。扯远 一点,这种做法其实到处都有,我父母每年要回一趟老家验明正身才能继续领退 休金,本质上和这个一样,就是要告诉别人:我还活着。路由器也是一样。   这样以不变应万变,按照这种方式,只要恐怖分子没把所有的路都断了,总 有一条路可以把话传到。   后续的故事:   防火墙的故事:指路人和谁有仇时,凡是老徐说的话一概不理,或者凡是宋 集发来的话一概不理、凡事要和吴集的人说话的一概不理、凡事要找吴集老王的 一概不理、凡事说的话中有敏感字的一概不理、凡是要下载文件的一概不理……, 于是我们就说被“墙”了。其实除了指路人之外,网络的各个层次(包括上次的 传话人等)都可以成为防火墙的一部分。   指路人本身的修为:指路人之间如何更有效地交换指路信息,可以研究更好 的做法。有很多路可以走的时候,如何根据设定的条件找一条最佳的路?当指路 人太忙的时候,要传的话得排队,如何保证最重要信息先传出去?   指路人开后门:指路人预先留着一点资源在手里,为特殊情况开开后门,比 如可以重要人物优先、交钱多的有钱人优先等。还可以把想说话的人分成三六九 等,不同等级提供的服务质量不同。没办法,资源有限时,人人生而平等就只能 是空话。   分层:话筒喇叭属于物理层,传话人属于数据链路层,指路人属于网络层, 再往上还可以划分更多层次,直至应用层。随着社会越来越复杂,出现不同阶层 是历史的必然。每个层次有自己的地址格式、有自己的协议、有自己的一套差错 处理、控制机制。层和层之间有一套通信的方式。更重要的是,可以替换。比如 以后有了网卡,就把我的话筒喇叭换成网卡网线。通过分层,每个层次不管怎么 替换,其他层次都不会受到直接影响。就像领导换了,小民还和以前一样听到什 么指令做什么事就行了。此外就像领导不喜欢越级上访一样,这里也只提倡上下 层之间直接对话,反对跨层通信。可以设想一下,微软好不容易开发了个IE,如 果你换个网卡它就得为新的网卡重新开发IE,那多麻烦。换网卡的事情只要在下 层解决就行了,换个驱动程序就可以了。   到了应用层,就越发大家各显神通开天辟地了,到处有门,打开以后都是全 然一新的天地,到处是故事,有创造力你就尽情地使吧,各个不同的学科最后都 能联系起来。   新桃花源记(4)——你是人吗?   XYX久住桃花岛,乐不思蜀,网络日益发达,应用日渐丰富,遂研究哲学: 我思故我在,我是谁,我从哪里来,要到哪里去……   推己及人,第一个问题就是——你是人吗?怎么证明你是人呢?   因特网兴起之处有句名言:在互联网上,没有人知道你一是条狗。   你是人吗?在因特网中,这是一个严肃的问题。   时光倒退到1993年7月5日,彼得?施泰納(Peter Steiner)在《纽约客》上 发表了一个著名的漫画。漫画中,一只正在上网的狗对边上的一只狗说:在因特 网(互联网)上,没有人知道你一是条狗。这句话形象地体现了因特网的匿名特 性,因而成为一句网络名言。   然而,随着对隐私权的重视,人们在网上聊天时越来越需要知道对方到底是 谁。文字聊天很难证实对方,那就视频吧,眼见为实,能看到对方真正长的什么 样总可以放心了吧。且慢!有些软件可以模拟出摄像头的效果来,你在聊天时所 看到的人不一定是真正的人,说不定是对方不知从哪里下载来的一段视频!视频 中的那个人是正在和我聊天的人吗?聪明的网友会附加上一些要求,比如要对方 做些指定的动作:眨一下眼睛、举一下胳膊等。预先录制好的视频很难预先估计 到这些特殊 的要求,于是就露馅了。   这个问题不光存在于网络聊天中,一些软件也和我们人一样有同样的疑问: 你是我所看到的那个人吗?比如有种软件可以识别人脸,人只要在计算机摄像头 前面露一下脸就等同于输入帐号密码从而可以登录计算机了。这种软件虽然很方 便,但难免有这样的问题:如果别人拍了我的照片,再拿着我的照片在计算机前 面露一下,是不是就可以轻而易举地进入我的计算机了?人脸登录软件需要判断: 摄像头中出现的到底是活人还是一张照片?比如可以要求使用者在摄像头前露脸 时还得眨几下眼睛,照片不会眨眼睛,就会露馅了。   人工智能技术的发展使得“你是人吗”这一问题进入了一个新的阶段:你是 人还是计算机程序?   在网上聊天时,有种聊天机器人,它睿智幽默,就像一个真正的人一样。按 照人工智能的奠基人艾伦?图灵1950年所提出了图灵测试,当我们通过键盘聊天 时无法判断对方究竟是一个人还是一个聊天机器人时,就可以认为这个聊天机器 人具有人一样的智能了。当这一天到来时,我们在网上聊天时就会多一个疑问: 你是人还是聊天机器人?   至少在目前的网络聊天中,人并不是非常担心和自己聊天的究竟是真正的人 还是具有智能的软件,因为人比软件要聪明多了。但反过来就有问题了,很多软 件确实担心是不是真正的“人”在使用它。   比如网上论坛、博客会担心有软件自动发送大量发垃圾评论,需要输入帐号 和密码的应用软件会担心有黑客通过软件自动反复试探账号密码,含有电子邮件 地址的网页会担心上面的电子邮件地址被恶意软件搜集过去发送垃圾邮件……这 些坏事情如果人来做的话不会造成过大的风险,毕竟人的时间精力有限,做这些 体力活的效率不是很高,不会造成太大的影响。但如果恶意软件这么做,就会造 成很大破坏。毕竟软件是一天24小时不断破坏也不知疲倦的。   为了解决这个问题,Luis von Ahn提出了反向图灵机:不是设计出具有智能 的软件,让测试者分不清是人还是软件;而是设计一些特殊的问题,来把人和软 件区分开来。因此这样的问题必须让人很容易回答出来、但计算机软件很难回答 出来,称为CAPTCHA(全自动区分计算机和人类的图灵测试)。   这是一场和人工智能较劲的比赛:专门找人工智能研究的弱点来设计题目, 同时这个题目对人来说又不能很难。比如将单词的字符扭曲让你说出是什么单词、 让字符不断跳跃并且给你一幅图片问你里面是猫还是老鼠、给你几幅照片让你找 出哪几张照片是美女、给你一幅歪掉的图片,让你用鼠标把它挪正……。有很多 论文研究怎么样出对人很容易但对计算机很难的题目。有些网站甚至出一些专业 问题,比如计算数学题、给出含有分子式的图片要求输入中文名称、回答一个科 学常识的题目等。   在各个网站都在让大家做题目时,Luis von Ahn又开始思考了:这么多人自 愿地动脑筋做题目(据几年前的统计,每天有2亿次),这些脑力都浪费了真是 可惜。于是他从扫描的书籍中找一些自动识别软件无法识别的字符作为Captcha 的题目掺在已有的题目里让人来做,这个做法称为reCaptcha。结果是惊人的, 一年就识别了四亿多个疑难单词,相当于把17600本扫描下来的书全部通过人工 方式电子化了。这真是巨大的商机,Luis von Ahn成立了一个公司专门做这个事 情,公司名字就叫reCaptcha,甚至后来还把这个公司卖给Google了。其实,除 了识别扫描下来的书,品牌推广、学习培训都能用上。   靠着reCaptcha,Luis von Ahn后来在大名鼎鼎的《科学》杂志上发表了文 章。再进一步,把reCaptcha的想法再提升一下,不光通过做Captcha让别人做事 情,让大家玩游戏时也顺带做一些有意义的事情,他的博士论文开创了一个新的 研究方向:人计算。   Captcha的目标是出题目让计算机做不出来,reCaptcha则是将计算机做不出 来的题目通过Captcha交给人做。在Luis von Ahn到处做讲座时,有个学生问了 一个有趣的问题:大意是如果用你的reCaptcha攻击你的Captcha会怎么样? 这有 点像我们的古人问过的:用你的矛攻你的盾会怎么样。Luis von Ahn只好说:你 可以这么做。是有人这么做,做个色情网站,要看下一幅色情图片么?帮我做一 道这个Captcha题目就给你看。这个称为对Captcha的色情攻击。Luis von Ahn坐 不住了,只好在网站上解释一下,大意是你这么用我的矛攻我的盾不合算,人家 做题目做恼了就跑到不要做题目的色情网站了,你的客户就流失了。所以色情攻 击对我没有妨……但接下来又有人发表论文:我不用色情网站照样有办法用你的 矛攻击你的盾……   冰山一角,越扯越远了,再扯远就打开更多的门了,每个门后面都是令人惊 叹的风景。其实每门学科的山峰都足够高,爬到一定高度就会发现所有的群山其 实都是连起来的,走几步就可以爬到其他山头,不管从哪个山脚爬上来,爬到一 定高度,看到的东西就都差不多了。   后记:“你是人吗?”之后进一步的问题是“你是哪个人?你是你所宣称的那 某某某吗?”这个问题反而比“你是人吗”出现得更早,数字证书技术可以解决 这类问题。 ◇◇新语丝(www.xys.org)(xys5.dxiong.com)(www.xinyusi.info)(xys2.dropin.org)◇◇