28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

前言

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

在上一篇中,我们讲解了网络是靠跨洋的海底电缆以及各大互联网组织制定的规则、协议来进行连接运作的。

但是具体是怎么进行连接的? 没有说明得很清楚,今天就让我们一起来探索探索。

一个简单的网络

当两台计算机需要通信时,您必须物理的 (通常使用网线) 或无线的 (例如 Wifi 或蓝牙) 链接它们,所有现代计算机都可以维持这样的链接。

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

这样的网络不限于两台计算机之间,你可以接入任意数量的计算机,但很快也会变得复杂起来:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

例如,如果要连接 6 台设备,则需要 15 根网线,每台计算机需要连接 5 根网线!

为了解决这样的问题,我们需要一个中间设备,让所有计算机接入它,由这个中间设备做转发,这样就能有效的减少网线的数量了:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

这样一来,虽然减少了网线的数量,但同时也增加了要求。

最初我只需要把信息通过合适的网线传送出去就可以了,但现在,所有的信息都统一发到中间设备那里,谁发给谁的,还必须计算机设备自己说清楚。(就像写邮件一样的)

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

另一点要求是这个中间设备不能进行广播

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

如果我们只是无脑的做转发,让所有其他计算机都接受到,把是否要接受信息的权利和判断交给接受的计算机,这既不安全也极大的浪费了网络资源。

(当然自主搭建较为安全的网络环境中,我们可以使用只是无脑转发的集线器来完成这一工作)

所以我们中间设备需要更加智能一些,只转发给需要信息的人就好了:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

要做到这一点,首先我们每台设备都需要一个唯一的标识 (名字) 才行,这在每一个网络设备出厂之前,生产它的厂家就已经给它赋予一个全球唯一的 MAC 地址

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

形象地说,这就像我们的身份证号码一样,具有唯一性。

另一点就是我们需要一个地方记录,哪一个 MAC 地址的设备对应着中间设备的物理连接的哪一个端口:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

实际上,这就是交换机干的事情。(注意这是交换机不是路由器)

可是这张表是如何建立的呢?

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

最开始启动的时候,这张表是空白的。

当有数据交换发生时,交换机通过源 MAC 地址不断进行学习到 MAC 地址表中,并与端口进行关联:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

交换机在 MAC 地址表中并未查询到目标 MAC 地址,因此该数据将从出了其入口接口之外所有的接口泛洪出去:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

C、D 机器在收到数据后就将数据丢弃了——因为并不是发给自己的——相反 B 机器因为 MAC 地址符合,就收下了,并且需要回复数据给 A 机器。

好了,此时对于交换机来说,又是一个新的源 MAC 地址的数据发来了,记录学习的同时也查询到要去往 A 机器的目标 MAC 地址已经存在了,于是直接转发到 01 端口就好了:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

就在这样不断的数据交换中,交换机不断更新维护着自己的 MAC 地址表。

好了,现在总算有了一个由交换机组建的简单网络了:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

更大的网络

到目前为止,运行一切良好,可是如果是连接成千上万亿台计算机呢?

我们很容易想到,理论上,可以通过多个交换机互联来进行无限的扩展:

28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypjfj.html