1. 前言:
数据链路层,即在物理层之上网络层之下,数据链路层的数据交互可以通过mac来确实身份和发送数据。
说到数据链路层这里简单介绍下设备:
- 网桥(Bridge): 网桥是一种数据链路层设备,用于连接两个或多个局域网,并根据目的地址在它们之间转发数据帧。网桥通过学习源地址和目的地址的对应关系,构建一个地址表,以决定是否转发数据帧。现代网络中,通常使用交换机代替网桥。
- 交换机(Switch): 交换机是一种高级形式的网桥,它可以连接多个设备,并根据目的MAC地址在它们之间转发数据帧。交换机通常具有更多的端口和更高的性能,可以提供更快的数据传输速度。
- 网卡(Network Interface Card,NIC): 网卡是连接设备到网络的硬件接口,位于计算机或其他设备的数据链路层。它负责将计算机内部数据封装成数据帧,并发送到网络上,同时负责接收和解析从网络上接收到的数据帧。
- 集线器(Hub): 集线器是一种被广泛用于早期以太网的设备,它将所有连接到它的设备视为一个共享的冲突域。当一个设备发送数据时,所有其他设备都会收到,这可能导致网络冲突。由于其共享特性和较低的性能,集线器逐渐被交换机所替代。
😄 数据链路层的组网设备现在几乎只有交换机(高级网桥)一种了,而普通网桥,集线器几乎已经是被淘汰的处境了。
😄现如今,二层的所有重要功能几乎都是靠着交换机实现的,要了解数据链路层就从交换机开始了解吧。
2. 交换机
2.1. 交换机的核心功能:
交换机能够根据目的MAC地址快速、精确地将数据帧从一个端口转发到另一个端口。提高了网络性能。
❓为什么要有这个功能?
集线器会将数据广播到所有端口,这样信道利用率极低,通常不超过30%
❓如何实现的?
mac地址是一个用于在网络上唯一标识网络适配器(网卡)的地址。每个网络适配器都有一个独特的 MAC 地址,通常由48位二进制数字组成,以六组十六进制数表示
交换机通过mac学习存储mac表,精准记录某某mac在哪个端口上的。
这里简单实验交换机的mac学习功能(使用华为ensp模拟):
- 网络扑朔如上图所示(ip分别为192.168.1.1/24,192.168.1.2/24)
- 查看交换机mac表
powershell
display mac-address
- pc1发送ping命令到pc2
powershell
ping 192.168.1.2
- 检查mac表
可以看到pc1在ping pc2的过程中记录了两台设备的mac,这里简单介绍,可以了解到交换机可以在通信中获取设备mac。这就是交换机能精准发送消息的关键。
2.2. 交换机的数据处理:
-
泛洪(Flood): 当交换机收到一个数据帧,且不知道目标设备的位置时,它会采用泛洪机制。交换机将数据帧发送到所有的端口,除了接收到数据帧的那个端口。这样做的目的是确保数据帧能够到达目标设备,同时学习目标设备的位置。
-
转发(Forwarding): 一旦交换机学习到了目标设备的位置(MAC地址与端口的对应关系),以后相同目标的数据帧就会被直接转发到目标设备所在的端口,而不再采用泛洪的方式。这提高了网络的效率和带宽利用率。
-
丢弃(Discard): 当交换机接收到的数据帧的目标MAC地址不在它的地址表中时,而且也无法进行泛洪,那么交换机就会选择丢弃这个数据帧。这种情况可能发生在学习到的地址表中没有目标地址,同时也无法进行泛洪的情况下。
2.3. 虚拟局域网VLAN:
Vlan是大部分交换机的具备的功能,可以使用认为的把局域网隔离开,每个 VLAN 表现为一个独立的广播域 。
2.4. 交换机端口类型:
- Access接口:交换机上常用来连接用户PC、服务器等终端设备的接口。Access接口所连接的这些设备的网卡往往只收发无标记帧。Access接口只能加入一个VLAN。
- Trunk接口:Trunk接口允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。Trunk接口常用于交换机之间的互联,也用于连接路由器、防火墙等设备的子接口。
- Hybrid接口:Hybrid接口与Trunk接口类似,也允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。用户可以灵活指定Hybrid接口在发送某个(或某些)VLAN的数据帧时是否携带Tag。
2.5.Stp防环协议:
在了解这个之前,我们先了解一下网络环路的危害。
广播风暴(Broadcast Storm):
定义: 广播风暴是指网络中的广播消息在短时间内迅速传播,导致网络中的设备都收到大量的广播流量。 原因:
通常是由于网络中某个设备发生故障或配置错误,导致持续产生大量广播消息。这可能是因为设备出现循环冗余(broadcast
loop)或因其他原因导致广播消息无法停止。 影响:
广播风暴会占用网络带宽,导致其他正常通信的数据包无法正常传输,最终可能使整个网络变得非常缓慢或不可用
简单总结是:环路造成广播信息无限转发,到达一个数据链路无法接受的量级,导致网络瘫痪。
那么答案就呼之欲出了,stp协议就是通过交换机的功能设计,有交换机自动处理环路的算法。
stp过程简析:
我们通过树生成算法,推选一个根,把各个叶子连起来,组成一个树,这样可以破除环。
- 推选根桥:
- . STP在交换网络中开始工作后,每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID。
- 网络中拥有最小桥ID的交换机成为根桥。
- 在一个连续的STP交换网络中只会存在一个根桥。
- 根桥的角色是可抢占的。
- 选取跟接口(选取叶子)
选完根是不是要选叶子了呢,那么规定,离根桥最近的接口叫根接口
- 选取指定接口(选取叶子)
数据帧的主导路径选择: 在一个网络中,可能存在多个交换机,每个交换机都有连接到同一网络段的接口。如果所有接口都试图同时发送数据帧,就会发生冲突,导致网络性能下降。指定接口的存在使得在每个网络段上只有一个接口成为主导,用于传输数据帧,从而避免了冲突。
stp实验(配置stp)
-
网络扑朔
c43f68fea42d181c361174ac10a7f.png)
-
进入系统视图
powershell
system-view
- 启动stp
powershell
stp mode rstp
- 所有交换机都重复一次