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