网络设备:集线器、网桥、交换机、路由的由来

一开始的P2P通讯

两台设备之间的通讯,只能是中间加一个小盒子将两头连起来,然后开始传输数据。
真·P2P(物理)。
在这里插入图片描述
这样的通讯方式显然很麻烦,互联的方式要么纯靠手工拔插网线,很难多人同时通讯,要么就需要接驳各种一对一的线路,网中设备加一减一都需要相应维护其余设备的网线。

当然还有一些变体方式,比如组成环状、树状等等,但缺点都比较明显(但可一定优化),就是个体设备的加减维护麻烦不清晰。

集线器(HUB)网的形成

为了免去手动配对,可以将所有设备的网口都连接起来到一个地方进行组网。这个地方就叫集线器——HUB。

集线器在物理层起效果,做的事情也很笨,就是将收到的信息复制、广播给所有人。由于所有的信息都会被送到所有设备中,为了区分自己,每一个设备都需要一个独特的 “标记” 或者说名字,来区分哪些信息是给自己的,哪些是别人的(要丢掉)。这个名字就是 mac 地址。

集线器还可以连接集线器,这样来无限拓展。

这种形式的维护简单,设备的加减只需要对自己与集线器的连接负责,这就很解耦了。但缺点也很大,就是每一份数据都是一个广播,想象一下如果一个局域网里有500台设备,每一台设备的承受的信息负载量有多大。这种负载还会跟局域网的设备数有关,自己无法控制。

网桥(Bridge)分而治之

既然一张太大的网容易引起风暴,人们就想到了隔离成一张一张的小网,然后再把这些小网组合在一起。不同网之间除非跨网通讯,否则不传递广播。

于是,在网跟网之间就有了一个特殊的设备——网桥(Bridge)。

网桥是一个划时代的产物,不同于HUB只在第一层物理层起作用,网桥可以说是有了“智能”——它能分析数据包、拿出mac地址,并对它们做逻辑,打开了网络通讯的管理设备大门。

它的连接方式如下:
在这里插入图片描述
红点是普通的集线器Hub,图里分为上下两个局域网。

交换机(Switch)泛化需求

一般来说网桥只有两个端口(一般的桥也只有两端不是?),那同样的道理,能不能将“根据mac来进行选择性发送” 泛化到多端口呢?

能,于是交换机(Switch)就诞生了。交换机本质上可以看作就是一个多网口网桥,它也会根据mac地址对应的端口进行发送。

再后来,随着更有普适性的交换机成本越来越低,网桥就几乎淘汰不见了。由于交换机也有多口,在实际应用上也顺便取代了 HUB,还能减少广播压力。
在这里插入图片描述

于是一般场景下,在现代的网络在数据层,我们只会看到、用到交换机了。

由于交换机跟网桥的功能很像,也有一些企业为了名词兼容性或者让老用户理解,他们对交换机有时候还是会沿用 Bridge 的名称。比如 Linux 自带的 Linux bridge,其实就是虚拟交换机,可以桥接不同的真实或虚拟的网卡,它名字还是叫做网桥(Bridge)。

MAC 学习策略和算法

网桥和交换机都需要针对 mac 跟端口做一个对应,才能决定某个消息该往哪里投送。
不同的网桥和交换机其实在实现的细节上,比如用到的数据结构、缓存等等其实不一样,我们说最普遍的过程:

  • 在刚启动时,显然交换机或者网桥是没有mac信息的。这个时候有一个消息过来,由于没有此mac对应的端口,交换机/网桥会选择全部广播;

  • 每收到一个消息后,交换机就会记录来源的mac,并把此mac与发信息的端口对应起来;

  • 下次来信息如果有目标mac对应的端口信息,交换机/网桥就只会往对应的端口投送了。

对于互联网还不够

交换机的加入,能一定程度缓解局域网设备过多的问题。但全世界的网络设备数量是要远远超出一个普通意义上的局域网的。

如果想建立起全球互联的一个大的互联网,这种方式显然不够。试想一下两个大问题:

1、随便一个交换机就需要记录几十亿的mac数据,这里面需要的查找、更新等代价。

2、不明目标mac发送时导致的广播风暴。

所以还需要在这个基础上继续 “分而治之”。

设想一个现实中的需求,你需要寄某件快递到某个地方去,此时会分两种情况:

  • 目的地是本地的,你认识。这种情况你就直接送过去了。
  • 目的地是外地的,你只知道地址,但不知道怎么送。这个时候你直接送过去当地的邮局。当地的邮局再根据地址,广州的发华南仓,北京的发华北仓。

在这个需求里,事实上的地址就是mac,目的地词条(注意这只是词条层面,而不是事实层面的目的地)就是IP,这个邮局就是路由(Router)。

如何判断当地与否,是通过子网掩码来同目的IP相与判断网段的。
同样的,邮局也会有一张路由表,才知道什么件该派往哪个仓。以此类推,仓库也有一张表才知道下一站是哪里,一直跳到送到具体的地址为止。

四个设备的冲突域、广播域性质

两个域

  • 冲突域。以及设备的通讯发出去后,无条件同时收到的集合。比如一个集线器下的设备,就处于一个冲突域中。
  • 广播域。亦即在找不到目的地对应的端口时,被广播的设备的集合。比如一个交换机下的设备。

集线器、网桥、交换机、路由在这两个邻域

集线器不隔绝冲突域更不隔绝广播域,纯原生态。
网桥/交换机 隔绝了冲突域,但不隔绝广播域。
路由由于需要明确的路由信息,才会觉得下一跳到哪儿,所以它隔绝了冲突域的同时,也隔绝了广播域。

猜你喜欢

转载自blog.csdn.net/weixin_42445065/article/details/130506813