计算机网络——数据链路层简解

1. 前言:

数据链路层,即在物理层之上网络层之下,数据链路层的数据交互可以通过mac来确实身份和发送数据。

说到数据链路层这里简单介绍下设备:

  1. 网桥(Bridge): 网桥是一种数据链路层设备,用于连接两个或多个局域网,并根据目的地址在它们之间转发数据帧。网桥通过学习源地址和目的地址的对应关系,构建一个地址表,以决定是否转发数据帧。现代网络中,通常使用交换机代替网桥。
  2. 交换机(Switch): 交换机是一种高级形式的网桥,它可以连接多个设备,并根据目的MAC地址在它们之间转发数据帧。交换机通常具有更多的端口和更高的性能,可以提供更快的数据传输速度。
  3. 网卡(Network Interface Card,NIC): 网卡是连接设备到网络的硬件接口,位于计算机或其他设备的数据链路层。它负责将计算机内部数据封装成数据帧,并发送到网络上,同时负责接收和解析从网络上接收到的数据帧。
  4. 集线器(Hub): 集线器是一种被广泛用于早期以太网的设备,它将所有连接到它的设备视为一个共享的冲突域。当一个设备发送数据时,所有其他设备都会收到,这可能导致网络冲突。由于其共享特性和较低的性能,集线器逐渐被交换机所替代。

😄 数据链路层的组网设备现在几乎只有交换机(高级网桥)一种了,而普通网桥,集线器几乎已经是被淘汰的处境了。

😄现如今,二层的所有重要功能几乎都是靠着交换机实现的,要了解数据链路层就从交换机开始了解吧。

2. 交换机

2.1. 交换机的核心功能:

交换机能够根据目的MAC地址快速、精确地将数据帧从一个端口转发到另一个端口。提高了网络性能。

❓为什么要有这个功能?

集线器会将数据广播到所有端口,这样信道利用率极低,通常不超过30%

❓如何实现的?

mac地址是一个用于在网络上唯一标识网络适配器(网卡)的地址。每个网络适配器都有一个独特的 MAC 地址,通常由48位二进制数字组成,以六组十六进制数表示
交换机通过mac学习存储mac表,精准记录某某mac在哪个端口上的。

这里简单实验交换机的mac学习功能(使用华为ensp模拟):

  1. 网络扑朔如上图所示(ip分别为192.168.1.1/24,192.168.1.2/24)
  2. 查看交换机mac表
powershell 复制代码
display mac-address
  1. pc1发送ping命令到pc2
powershell 复制代码
ping 192.168.1.2
  1. 检查mac表

    可以看到pc1在ping pc2的过程中记录了两台设备的mac,这里简单介绍,可以了解到交换机可以在通信中获取设备mac。这就是交换机能精准发送消息的关键。

2.2. 交换机的数据处理:

  1. 泛洪(Flood): 当交换机收到一个数据帧,且不知道目标设备的位置时,它会采用泛洪机制。交换机将数据帧发送到所有的端口,除了接收到数据帧的那个端口。这样做的目的是确保数据帧能够到达目标设备,同时学习目标设备的位置。

  2. 转发(Forwarding): 一旦交换机学习到了目标设备的位置(MAC地址与端口的对应关系),以后相同目标的数据帧就会被直接转发到目标设备所在的端口,而不再采用泛洪的方式。这提高了网络的效率和带宽利用率。

  3. 丢弃(Discard): 当交换机接收到的数据帧的目标MAC地址不在它的地址表中时,而且也无法进行泛洪,那么交换机就会选择丢弃这个数据帧。这种情况可能发生在学习到的地址表中没有目标地址,同时也无法进行泛洪的情况下。

2.3. 虚拟局域网VLAN:

Vlan是大部分交换机的具备的功能,可以使用认为的把局域网隔离开,每个 VLAN 表现为一个独立的广播域

2.4. 交换机端口类型:

  1. Access接口:交换机上常用来连接用户PC、服务器等终端设备的接口。Access接口所连接的这些设备的网卡往往只收发无标记帧。Access接口只能加入一个VLAN。
  2. Trunk接口:Trunk接口允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。Trunk接口常用于交换机之间的互联,也用于连接路由器、防火墙等设备的子接口。
  3. Hybrid接口:Hybrid接口与Trunk接口类似,也允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。用户可以灵活指定Hybrid接口在发送某个(或某些)VLAN的数据帧时是否携带Tag。

2.5.Stp防环协议:

在了解这个之前,我们先了解一下网络环路的危害。

广播风暴(Broadcast Storm):

定义: 广播风暴是指网络中的广播消息在短时间内迅速传播,导致网络中的设备都收到大量的广播流量。 原因:

通常是由于网络中某个设备发生故障或配置错误,导致持续产生大量广播消息。这可能是因为设备出现循环冗余(broadcast

loop)或因其他原因导致广播消息无法停止。 影响:

广播风暴会占用网络带宽,导致其他正常通信的数据包无法正常传输,最终可能使整个网络变得非常缓慢或不可用

简单总结是:环路造成广播信息无限转发,到达一个数据链路无法接受的量级,导致网络瘫痪。

那么答案就呼之欲出了,stp协议就是通过交换机的功能设计,有交换机自动处理环路的算法。

stp过程简析

我们通过树生成算法,推选一个根,把各个叶子连起来,组成一个树,这样可以破除环。

  1. 推选根桥:
  • . STP在交换网络中开始工作后,每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID。
  • 网络中拥有最小桥ID的交换机成为根桥。
  • 在一个连续的STP交换网络中只会存在一个根桥。
  • 根桥的角色是可抢占的。
  1. 选取跟接口(选取叶子)

选完根是不是要选叶子了呢,那么规定,离根桥最近的接口叫根接口

  1. 选取指定接口(选取叶子)

数据帧的主导路径选择: 在一个网络中,可能存在多个交换机,每个交换机都有连接到同一网络段的接口。如果所有接口都试图同时发送数据帧,就会发生冲突,导致网络性能下降。指定接口的存在使得在每个网络段上只有一个接口成为主导,用于传输数据帧,从而避免了冲突。

stp实验(配置stp)

  1. 网络扑朔

    c43f68fea42d181c361174ac10a7f.png)

  2. 进入系统视图

powershell 复制代码
system-view
  1. 启动stp
powershell 复制代码
stp mode rstp
  1. 所有交换机都重复一次
相关推荐
冬天给予的预感18 分钟前
DAY 54 Inception网络及其思考
网络·python·深度学习
段帅龙呀5 小时前
Redis构建缓存服务器
服务器·redis·缓存
乌鸦不像写字台5 小时前
【docker部署】在服务器上使用docker
服务器·docker·容器
Antonio9158 小时前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
kfepiza8 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
无妄-20248 小时前
软件架构升级中的“隐形地雷”:版本选型与依赖链风险
java·服务器·网络·经验分享
R.X. NLOS9 小时前
VS Code远程开发新方案:使用SFTP扩展解决Remote-SSH连接不稳定问题
运维·服务器·ssh·debug·vs code
群联云防护小杜10 小时前
构建分布式高防架构实现业务零中断
前端·网络·分布式·tcp/ip·安全·游戏·架构
轩情吖12 小时前
Qt的第一个程序(2)
服务器·数据库·qt·qt creator·qlineedit·hello world·编辑框
岸边的风13 小时前
无需公网IP的文件交互:FileCodeBox容器化部署技术解析
网络·网络协议·tcp/ip