且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《VMware 网络技术:原理与实践》—— 1.2 重复的工作

更新时间:2022-10-01 14:55:36

本节书摘来自华章出版社《VMware 网络技术:原理与实践》一 书中的第1章,第1.2节,作者:(美)Christopher Wahl Steven Pantol,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 重复的工作

为了打好基础,我们先来想象一下,一个和现在完全一样,但是网络的概念还没有出现的世界。业务仍然在计算机(或者类似设备)上完成,但是还没有产生要求它们连接起来交换数据的需求。在偶然的情况下,数据需要从一个工作站转移到另一个工作站,这通过复制到可移动媒体完成——可能是某种蜡筒唱片——然后带着它到另一个地方去。在网络萌芽之后,这种方法被称作实体携行网络(sneakernet),因为数据的载体是你的鞋子(sneaker)。
假设你的工作是桌面支持,所以比公司里的其他人更懂技术。在维护工作的间歇,你和会计部的同事Bob喜欢交换猫的照片,有时候会给照片写上傻气的标题。这不是什么高尚的追求,但是可以让日子过得好一点。你和Bob有权使用带有扫描仪和打印机的电脑,所以可以在家里拍照,带到公司扫描、编辑和打印,通过部门间信件交换打印输出。有一天,高层下达了绿色倡议,严格限制在非关键业务上使用打印机。你考虑要调整工作流程,使用蜡筒唱片,但是这并不理想——空闲的蜡筒唱片本身越来越难得到,一定有更好的办法。
你想起了小时候玩的游戏——使用两个纸杯和一根细绳和远处的朋友聊天。对着纸杯讲话,然后将它移到耳边听对方的回答。你的朋友更聪明,指出可以用两组纸杯,同时说话和听取回应——对着一个连接到朋友耳边的纸杯说话,他则对着连接到你耳边的纸杯说话。你知道,这时就可以利用上述概念——分离发送和接收线路,就可以允许双方同时通信。在地下室的“疯狂科学家实验室”里,你开始着手。
第二天早上,你将成果带给Bob看。在每台计算机上安装一张卡,用两条交叉的线路连接,并且安装一个通过线路向其他计算机发送任何文件的新应用程序。你带来一些猫的新照片进行测试,它们从你的计算机顺利地传到了Bob的计算机。这样,你就建立了第一个两人间的网络。
Bob大为震惊,为这一成果而兴奋不已。接下来的几周,你们两个人快乐地相互传送文件,直到有一天,人力资源部的Paul偶然看到你们的行为,他也想要加入。 你停下来考虑这一情况,虽然Paul有些怪异——他偏爱狗的照片——但是你看到了连接两个以上朋友的价值。
Metcalfe定律
你可能知道,人们之间的联系,两个比一个好,三个比两个好,依次类推。以太网发明者Robert Metcalfe在Metcalfe定律中将这一个概念规范为“网络效应”:网络的价值与连接的兼容通信设备数量的平方成正比。将此与一般随着用户增加而呈线性增长的网络成本相比,就会发现很快就能到达价值远超过成本的临界点。

《VMware 网络技术:原理与实践》—— 1.2 重复的工作

经过多年,“用户”代替了“连接的兼容通信设备”,Metcalfe定律常被用于描述从传真机到社会化网络的各种情况。
Robert Metcalfe还曾预测,互联网将在1996年底因其自身的压力而崩溃——人都有失算的时候。
但是,如何将第3台电脑加入到你的双人单连接网络中呢?你考虑了3端电缆的想法,但是你知道网络的扩展不会止于Paul。因此,需要一个具有扩展性的方案。你设计了一个有许多网络端口的盒子,接收你们发出的所有内容,然后将其重发到所有其他端口。回到实验室,你为这个设备添加了一些智能——每个端口的第一条线路上接收的信息,将会从第二条线路上发送给其他端口。现在,你不需要担心制作电缆时发送和接收线路的交叉了。这个盒子还能够帮助你解决距离的限制。线路上的信号随着距离而衰减,但是这个盒子能够将信号以最大强度重发,从而使传输距离加倍。你把这个盒子称作“集线器”(hub),这个名字是根据作为开发背景的儿童电视频道而取的。
次日早上,你带着集线器,供Paul使用的网卡以及一些新电缆来到公司。到午饭时分,一切已经就绪。你选择的照片毫无差错地发送到其他两方。但是,法务部的Sharon注意到吊顶上的电缆,也希望加入。不过,Sharon与Paul不和,她所要发送的照片可能冒犯Paul。显然,她不希望Paul接收到这些照片。
你回到了制图板旁边。为了满足Sharon的需求,传输应用程序必须有一定的针对性。但是集线器不假思索地将接收到的信息重发给连接的各方。可能,问题并不在集线器上,而在连接的电脑上。你、Sharon和Bob的电脑上的网卡都完全一样。可以在它们上面写入某种唯一的标识符,然后改写传输应用程序,使用这个标识符。你拆下所有零件,重新制作新的网卡,这时碰到了一个问题——集线器将会重发接收到的所有信息,即使Sharon直接将照片发给你,数据也仍然会发回给Paul。好了,既然要更换网卡,干脆对它们进行一些编程,使其忽略不是发给特定ID的数据。这样应该就行了。进入实验室之后,你发现需要制作许多网卡。以后不知道谁会得到这些网卡,你决定为其编号。公司里只有大约15个人左右需要网卡,所以可以使用2个数字的标识符00~99。在第一张网卡上设置ID时,你认为不应该自找麻烦,所以将ID字段宽度加倍。现在,你的网络可以支持多达10 000个设备——这真难以想象,但是既然做了,就得做好。
第二天,你带来了新硬件,向Bob、Paul和Sharon解释这个新的系统。你的编号是0000,Bob是0001,Paul是0002,Sharon是0003。开始一切正常,很快,在你的秘密网络里有了10个活跃的用户,你开始感到紧张。用户们抱怨记不住人们的编号,Bob投诉说,自从你几天前更换了他的电脑,就没有再收到猫的照片,他认为自己被忽视了。
Bob的问题一下子点醒了你——当你替换他的电脑时,他得到了一张新网卡,不再是0001了,而是0010。你必须让每个人知道这一变化。但是这将进一步招来编号系统难以使用的抱怨。你所需要的是一个能够容纳友好名称——也就是人们容易记住的名称的系统。如果硬件ID变化,必须自动更新友好名称与硬件ID的映射,这样就没有必要去麻烦每个人。
你建立了一个查找表,列出每个人的名字,这是一个友好的名称——你询问每个人,他们希望用什么名称来命名计算机——以及网络ID。你决定每个晚上将这个文件分发给每个人,至少在没有想到名称解析问题的新解决方案之前这么做。传输应用也必须重写,除了向网络ID发送文件之外,还能支持向友好名称发送文件。你做出了必要的更改,并分发新的文件和说明,风波暂时平息了。
你的小项目越来越为人所知。公司的CIO听说了你的事迹,要求了解项目的进行情况。在你解释了目前的工作之后,他询问传输程序是否能够传输任何类型的文件,还是只能传输那些傻气的照片。当你告诉他,数据就是数据,任何文件都有效时,他若有所思。他对你所花的时间表示感谢,然后走开了。
几周之后,CIO找到你,要求连接大楼里的所有电脑——分布在几个楼层的500个工作站。他要求你考虑这一点,并且将细节反馈给他。这真是一个挑战。你的集线器有16个端口,这立刻成了问题。你当然可以制作有500个端口的集线器,但是如果它坏了怎么办?所有人都会离线。你要把这个集线器放在哪里?大楼里没有一个地方能够使你在电缆距离限制内连接到所有工作站,即使有这种地方,安装这么多长短不一的线路在材料和工时上也很昂贵。
如果要求是CIO提出的,时间和钱可能不是问题,所以你开始着手解决第一个问题——距离。一个500端口的集线器不可行,但是2个250端口的集线器可以解决问题。因为集线器将接收到的东西全部重发,应该可以毫无问题地将两个集线器连接起来。细想一下,因为所有信息都被重发给所有端口,两台计算机不管是连接在同一个集线器还是连接许多集线器,都应该能够相互传输数据。较小的设备应该更容易制造,也更容易在出现故障的时候更换。一番冥思苦想之后,你决定采用三层模式。在第一层(核心层)上,一台集线器将连接第二层(分发层)中的集线器。在每个楼层放置一个分发层集线器,这些集线器用于连接第三层(访问层)。 最终用户的工作站连接到分布在楼层各处的访问层集线器。这样,你就可以确保电缆较短且结构化,并且提供扩展或者部署到新的建筑物中的模式化方法。
你将方案提交给CIO,得到了他的批准,然后开始着手部署这个新基础架构,不知不觉之间,网络连接成为了整个公司的信条,没有人记得,在网络出现之前的日子是怎么过的。