前言
这篇文章不是专业的教材,只是对于计算机网络这个概念的尽可能形象但不深入的阐释。
购买苹果
在一个村庄上……
A住在一个村庄上,A知道在这个村庄上有一个种植了苹果的农家B。
当A想要吃苹果时,A可以去B家买,B就会把苹果给A。
这实际上就是最简单的计算机网络模型。
A就是客户端(典型的例子是连接了互联网,并且有WEB浏览器的PC,手机。所有可以发送请求,接收并处理响应的设备+软件都可以是客户端),而B就是服务端。
只是与我们现实的世界有一些不同的点,首先在计算机网络中,连接是必须的。你可以认为A和B住在一个孤立的空岛上,必须要有一个浮空的桥连接两个岛屿(网线),或者一种隔空传递信息和物品的魔法(Wifi),A和B之间的这笔交易才能正常的完成。
而且并不是客户端A真的“登门拜访”了B,而后从B处将“数据苹果”搬回到了A的住处。这个过程更像是A向B写了一封信,在信中A向B要求一些苹果,B将苹果包装好后寄给了A。
邮差与邮局
小镇上的人逐渐变多了,每户人家都经营着不同的生意,他们希望跟其他住户之间有连接,从而可以有机会售卖自己的产品或者买到需要的产品。
这带来了一系列的问题,随着住户的变多,要想要有任意两户之间能够相互通信,每增加一个住户就需要新建目前所有住户数量的新连接!
小镇上有第100户人家时,就会存在$C^2 _{100} = 4950$条连接;同时每个人都得记住通向外面的99条路中的每一条都通向哪里;再者路上运输的东西相比较而言不会那么平均,有些人家之间其实根本没有任何的来往,这意味着许多连接的路是完全闲置的……这些问题汇总到一起是灾难性的。
为了解决这个问题,小镇上成立了一个邮局用来集中处理大家的寄出的信件和返回的包裹。现在每家都只需要跟邮局之间建立连接就行了。邮局的工作者们会为大家送达每一封信件和所需的包裹,但是邮局的工作者并不喜欢“卖苹果的A家”,“卖梨子的C家”这样的称呼,每个人对彼此的称呼都不太一样,可能B会这样称呼,对于A而言,他会称呼C叫“卖鸭梨的查理”。为了方便邮局的工作,邮局给大家提供了一个不重复的数字编号作为地址,当然邮局也得占有一个地址,所有的信件包裹都会先寄到邮局集散,然后再根据数字地址来送到目的地。
现在需要的连接数少了很多,但是大家还是可以互相交流,而且即使有了新的住户,也只需要跟邮局建立一个新的链接就能跟现有的住户之间进行交流!
至此,我们已经建立了简化的网络模型。
我们的设备通信是通过连接到互联网这个超级邮件物流系统的集合来进行的。只需要一个与互联网的链接,就能访问不同的服务器上的资源。
异地的邮局
小镇上的苹果有了名气,现在小镇之外的远方也有客户想要买这个苹果。
让他直接来到小镇的邮局是不现实的,这需要建立一条非常远的连接。但即使这样的情况被允许,一旦客户很多,小镇的邮局又会陷入到如上的窘境。
但是既然他位于另外一个小镇,他的小镇上也会有一个邮局。我们可以让邮局代表小镇进行交流。小镇A的消息集中发向邮局A,再由邮局A决定需要发往外侧的邮局B还是内部的其他住户。邮局A同时还会处理邮局B发来的来自B小镇的信件,将它们分发给对应的目的地。随着世界上的小镇越来越多,还会出现更多等级的邮局,用于集散来自下级邮局的包裹,将下面平级别的邮局视作一个新的“小镇”,重复着这样的过程就形成一个复杂而互联的网络结构。
在这个系统中,我们已经解释了许多基础的计算机网络的概念。
- > 1. 每个小镇与整个系统相比就是一个局域网
- > 2. 多级别的邮局就是不同层级的局域网
- > 3. 与小镇相对的整个系统就是广域网
- > 4. 每个邮局有三重的身份
- > 1. 交换机(对于小镇上的人,邮局帮助他们交换包裹)
- > 2. 路由器(邮局会帮助判断哪些包裹是小镇上的哪个人的,哪些包裹需要发向外地)
- > 3. 网关(所有小镇上的人都通过邮局发送信息)
- > 5. IP地址 (每一户所占有的不重复的数字编号)
- > 6. 域名(对于住户,比起一串数字而言更好记的名字)
- > 7. DNS服务(将每一户的名字与对应的IP地址关联到一起的服务)
- > 8. DHCP服务(当有新的用户时,自动向用户分配IP地址的服务)
后记
!这并不是实际的计算机网络的发展历史!
!这并不是实际的计算机网络的发展历史!
!这并不是实际的计算机网络的发展历史!
只是一个对于现在,我们切实的在使用的计算机网络的一个从抽象到具象的演绎。
你可能已经发现,计算机网络其实某种意义上来讲跟物流系统的组成和运作方式非常相似乃至等价的。事实上也确实如此。
接下来,进阶的,这个小镇,以及其他类似的小镇和小镇上的邮局和整体的邮递系统还会面临着许多的挑战。
这些问题的对应的解决方法就是计算机网络中的具体功能所承担着的职责。