开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
基本硬件
本部分是网络专栏的第一节,主要是希望通过这一篇文章能够弄清楚在我们的网络中基本的硬件是什么样的,我们的网络信息到底是怎么传输的,我们常说的集线器,网关等等到底是用来干什么的。
网线-最朴素的想法
很多人都玩过游戏,单机游戏是指这个游戏不需要联网,仅仅在我们的主机上就可以玩了,也不用跟其他主机发生任何关系。如果我们想和别的主机一起玩,那么最朴素的想法其实就是接一根网线到别的主机那,这两台主机就可以通信了。
不过并不是说连一条网线并且知道对方的IP地址就直接可以通信,我们在通信的时候还需要知道对方机器的MAC地址,因此在通信时PC6会发送ARP广播,询问MAC地址,获得了MAC地址后才能够进行通信。
集线器-线太多啦!
如果说按照上面的那种方法都去给每一台主机接一条线的话,这个线未免也太多太复杂了。为了简便,最初的想法是同轴电缆,同轴电缆就像是电路的串联并联一样,一条线外引申很多的主机。但是这种方法有非常大的问题,它是半双工通信非常容易冲突,而且主轴电缆一旦断了,那后面所有的主机都无法通信了,这是我们不可以接受的。于是集线器诞生了。
所有的设备都连接到集线器上就可以互相通信了。如果是PC6要向PC8发送信息,同样是经过ARP广播得到PC8的MAC地址(ARP广播PC7同样会收到,但是IP地址不同就不用回复)。
集线器同样有很大的缺点,就是集线器“不太聪明”,某一个主机发送了一个消息给另外一个主机,那么所有主机都会接收到这个信息,就像电路一样,一通电,所有电路上都是电流。因此集线器是不安全的,同时集线器也是半双工通信。
网桥-带宽拯救者
如果说所有网络都是通过集线器去连接的话,不仅仅是不安全,一个主机发的东西所有主机都能收到,而且非常的占用带宽,通信效率非常的低,这个时候网桥应运而生。网桥他比集线器更加“聪明”一些,它会记录两端的MAC地址,从而隔绝冲突域。
如图,一个网桥连接着两台集线器,如果这个时候PC9发送信息给PC10会发生什么呢?首先是ARP广播查询MAC地址,由于这个时候网桥还没有PC10的MAC记录,因此也会发送给右边的域,但是会保存PC9的MAC地址。所有的主机都会接收到这个ARP广播。当PC10发送回复ARP广播后,这个广播到达网桥后发现了PC9的MAC地址在网桥左边,因此不会再传播到右边的域中。
后续这两台主机之间的通信都不会到达右边的域中,有效地提高了带宽的利用率。
交换机-最终的BOSS
上面的网桥有效地将一个局域网分成了两个冲突域,但是由于集线器的特征,在同一个冲突域下的设备仍然会发生广播风暴,为了彻底解决这一问题,最终的解决方案交换机诞生了。
它的强大在于它可以学习到每一个接口的mac地址,一个数据发送过来后它知道这个mac地址的机器在哪。打个比方,如果当前的PC8要向PC9发送信息,同样的需要进行ARP广播寻找MAC地址,因为交换机还没学习到每个端口的MAC地址,第一次的ARP协议仍然会发送给所有机器,这时候会记录下哪个端口对应的是PC8的MAC地址,PC9回复后也会学习到哪个端口是PC9的。
经过很快的学习,交换机就可以知道连接在这台交换机的所有端口的MAC地址,那么以后的通信都会是一对一的,不会占用其它线路。看上去这个解决方案是很好的,但是如果设想一下,全世界的机器如果都通过交换机连接的话会发生什么。
刚刚说到第一次的ARP寻址,由于交换机没有相关的记录,所以所有主机都会接收到ARP广播。这意味着如果有一台新的机器加入,那么全世界的机器都会收到这个广播,造成广播风暴,而且这样是非常不安全的。
为了避免造成广播风暴,我们需要把主机隔离开,那通过什么隔离呢?这个时候就引申出了网段的概念,不同的网段之间是相互隔离的,具体网段是什么我们将留在下一节去分析。
总结
本节分析了局域网中不同设备的功能,其实很多的已经被淘汰了,现在用的最多的就是集线器这一种,但是集线器也并不是完美的,全世界不同的主机需要隔离去避免广播风暴。那么不同网段之间隔离后应该怎么进行通信呢,还有一种硬件叫做路由器,它就是解决跨网段通信的问题。下一节介绍完网段的概念后再去介绍路由器,我想会对路由器的理解更加深刻!
感谢观看!