非共享介质型网络
如果说共享介质型网络是共享介质的话,那么非共享介质型网络就是不共享介质,那么如何通信呢?在这种方式下,网络中的每个介质会直接连上交换机
,由交换机来转发数据帧。发送端和接收端不会共享通信介质,共享通信介质的意思就是介质之间直接通信。这种网络传输方式一般采用的是全双工通信。
非共享介质型网络比较适合应用于搭建虚拟局域网(VLAN)
,但是这种通信方式有一个及其致命的弱点:一旦交换机发生故障,那么与交换机相连的所有计算机都无法通信。
下面是非共享介质型网络的通信示意图
如图所示,主机 A 发送了一个目标地址为 B,源地址为 A 的交换机,由交换机负责将数据转发给介质 B,如下图所示
非共享型网络是一种全双工通信的方式,每个介质在发送数据的同时也能够接受来自交换机传递过来的数据。
交换集线器
交换集线器是一种共享型网络通信介质,它是使用同轴电缆作为传输介质,通常用于以太网中,交换集线器也叫做以太网交换机
。
以太网交换机中的各个端口会根据介质的 MAC地址
来转发数据,那么转发数据肯定得有所依靠啊,这时可以参考的表就叫做转发表(Forwarding Table)
,转发表中记录着每个介质的 MAC 地址。转发表当然不需要我们手动维护,交换机会自动维护转发表。交换机会自学
每个数据包的经过介质的 MAC 地址,如下图所示
由于不知道主机 B 的 MAC 地址,所以主机 A 发送的数据会经过交换机广播给以太网内的其他主机,主机 B 接收到数据后,会给主机 A 回送消息。
在主机 B 给主机 A 回送消息后,交换机就知道主机 A 和主机 B 的 MAC 地址了,从此以后双方通信会在各自相连的端口之间进行。
由于 MAC 地址没有层次性,转发表中的记录个数与所有网络设备的数量
有关,当设备增加时,转发表的记录也会越来越多,检索时间会逐渐增加。所以如果需要连接多个终端时,需要将网络分成多个数据链路,采用类似 IP 地址一样对地址进行分层管理。
在网络通信的过程中,由于网络链路的冗余或者路由线路冗余可能会造成闭环
,也就是我们所称的环路
。环路会导致数据报文在网络中不断重复复制,最终导致网络设备负载过重,无法正常运行。影响的范围可能会扩散至整个局域网,导致整个局域网里的计算机无法正常使用网络。
那么如何检测网络中出现的环路呢?
环路检测方法
目前有两种检测环路的方式,一种是生成树
,一种是源路由法
。
生成树:生成树指的是每个网桥必须在 1 - 10 秒内相互交换生成树协议单元包,以此来判断哪些接口使用,从而消除环路,一旦发生故障后就会立刻切换线路,利用没有被使用的端口进行传输。
源路由法:源路由法通常是用来解决令牌环路。这种方式可以判断发送数据的源地址是通过哪个网桥实现传输的,并将帧写入 RIF,网桥会根据这个 RIF 信息发送给目标地址,即使网桥中出现了环路,数据帧也不存在被反复转发的可能。
虚拟局域网 VLAN
网络通信过程中经常会遇到网络负载过高,通信性能下降的情况,往往遇到这种情况,就需要分散网络负载,变换部署网络设备的位置等。在虚拟局域网出现之前,往往需要管理员手动变更网络的拓扑结构,比如变更主机网段,进行硬件线路改造等,但是使用了虚拟局域网,就可以不用再做如此复杂的操作了,只需要修改网络结构即可。
那么虚拟局域网究竟是什么呢?
如上图所示,交换机按照端口区分了多个网段,从而区分了广播数据的传播范围,提高网络安全性。然而异构的两个网段之间,需要利用具有路由功能的交换机才能实现通信。
由于交换机端口有两种 VLAN 属性,一个是 VLANID,一个是 VLANTAG,分别对应 VLAN 对数据包设置 VLAN 标签和允许通过的 VLANTAG(标签)数据包,不同 VLANID 端口,可以通过相互允许 VLANTAG,构建 VLAN。
以太网
以太网提了这么多次,那么以太网到底是什么?
数据链路层有很多分类,包括以太网、无线通信、PPP、ATM、POS、FDDI、Token Ring、HDMI 等,其中最著名的通信链路就是以太网了。
以太网最开始的时候,一般使用的是以同轴电缆为传输介质的共享介质型连接方式,这也是以太网的第一种方式,叫做经典以太网
。而现在,随着互联设备的处理能力和传输速度的提高,现在都采用终端和交换机之间连接方式,这也是第二种方式,叫做交换式以太网
。以太网使用的是 CSMA/CD
的总线技术,我们前面也介绍过了。
以太帧格式
在以太网链路上的数据包被称为以太帧
,以太帧开头有一个叫做前导码(Preamble)
的部分,它是由 0、1 数字交替组合而成。前导码的末尾最后是一个叫做 SFD(Start Frame Delimiter)
的域,值为 11。前导码与 SFD 共同占用 8 个字节。
以太网最后 2 bit 称为 SDF,而 IEEE802.3 中将最后 8 bit 称为 SDF。
IEEE802.3 是电气和电子工程师协会 (IEEE)标准的集合制定的标准。
这是以太帧的前导码部分,下面是以太帧的本体部分
以太帧体格式也有两种,一种是以太帧格式,一种是 IEEE802.3 标准以太帧格式。
在以太帧格式中,以太帧的本体的前端是以太网的首部,总共占用 14 字节,分别是 6 字节的目标 MAC 地址、6 字节的源 MAC 地址和 2 字节的上层协议类型,后面是数据部分,占用 46 - 1500 字节,最后是 FCS(Frame Check Sequence,帧检验序列)
4 个字节。FCS 用于检查帧是否有所损坏,因为在通信过程中由于噪声干扰,可能会导致数据出现乱码位。
IEEE802.3 以太帧的格式有区别,一般以太帧中的类型字段却在 IEEE802.3 表示帧长度,此外新增加了 LLC 和 SNAP 字段。
数据链路层在细化的话可以分为两层,介质访问控制层和逻辑链路控制层
介质访问会根据以太网等不同链路特有的首部信息进行控制,逻辑链路层则根据以太网等不同链路共有的帧头信息进行控制。
LLC 和 SNAP 就是逻辑链路控制的首部信息,那么现在你应该明白怎么回事儿了吧。