计算机网络:TCP/IP协议(从 MAC 地址到 VLAN 标签:数据链路层如何重构网络拓扑逻辑)

article/2025/8/6 0:04:35

目录

  • 前言
  • 数据链路层
    • MAC地址
    • 共享介质型网络
      • 争用方式
      • 令牌传递方式
    • 非共享介质网络
    • 根据MAC地址进行转发
    • 环路检测技术
      • 生成树
      • 源路由法
    • VLAN
    • 以太网帧格式
  • 总结
  • 写在文末

前言

本期开始将分层进行讲解OSI参考模型或者TCP/IP参考模型,从数据链路到应用层,本期先介绍数据链路层。

数据链路层

数据链路层是计算机网络中最基本的内容,如果没有数据链路层,基于TCP/IP的通信也就无从谈起。数据链路,指OSI参考模型中的数据链路层,有时也指以太网、无线局域网等通信手段。TCP/IP中对于OSI参考模型的数据链路层及以下部分(物理层)未作定义。因为TCP/IP以这两层的功能是透明的为前提。然而,数据链路的知识对于深入理解TCP/IP与网络起着至关重要的作用。

MAC地址

MAC地址长48比特,在使用网卡(NIC)的情况下,MAC地址一般会被烧入到ROM中。因此,任何一个网卡的MAC地址都是唯一的,在全世界都不会有重复。
在这里插入图片描述
注意:MAC可以不是唯一的,只要不同属于一个数据链路就不会有问题。

共享介质型网络

从通信介质的使用方法来分,网络可以分为共享介质型和非共享介质型,共享介质型网络指多个设备共享一个通信介质的网络。设备之间使用同一个载波信道进行发送和接收。这里我们介绍两种介质控制方式:争用方式以及令牌传递方式。

争用方式

我们称其为CSMA(载波监听多路访问),采用先到先得的方式占用信道,如果多个站同时发送帧,则会产生冲突现象。在一部分以太网中,将其进行改良为CSMA/CD方式,它要求每个站提前检查冲突,如果发生冲突,尽早释放信道。当接收端接收到数据时,会对其进行校验,也就是上期将介绍的FCS位,使用与发送方相同的算法对帧进行计算,如若与收到的帧的FCS位不同,则丢弃。

在这里插入图片描述

令牌传递方式

令牌传递方式就是有一个特殊的报文“令牌”,只有拿到令牌的站,才能发送数据,令牌沿着令牌环进行传输。
在这里插入图片描述

非共享介质网络

非共享介质网络是指不共享介质,在这种方式下,网络中的每个站直连交换机,由交换机进行转发数据帧。
在这里插入图片描述

根据MAC地址进行转发

在使用交换机的时候,它们根据数据链路层中每个帧的MAC地址,决定从哪个接口进行发送数据,这时通过查询转发表,转发表的内容不是手工设置,而是通过交换机进行自学生成。自学过程如下:
1 初始化:交换机启动时,MAC 地址转发表为空。
2 监听数据帧:交换机通过监听端口接收网络中的数据帧。当它收到一个数据帧时,会检查帧的源 MAC 地址和目的 MAC 地址。
3 学习源 MAC 地址:交换机将数据帧中的源 MAC 地址与接收该帧的端口号关联起来,并记录到 MAC 地址转发表中。这就相当于交换机记住了某个 MAC 地址是从哪个端口进入的,以后如果要向这个 MAC 地址发送数据,就可以从这个端口转发出去。
4 转发数据帧:根据目的 MAC 地址在转发表中查找对应的端口号。如果找到匹配项,就将数据帧从对应的端口转发出去;如果没有找到,交换机就会采用广播的方式,将数据帧从除接收端口外的所有其他端口发送出去,以寻找目的 MAC 地址对应的设备。
5 更新转发表:随着网络中数据帧的不断传输,交换机会持续学习新的 MAC 地址,并更新转发表。如果某个 MAC 地址对应的端口发生了变化,交换机也会及时更新转发表中的记录,确保数据能够正确转发。
在这里插入图片描述

环路检测技术

如果用网桥连接网络的时候,如果出现环路,则可能发生数据帧在环路中一而再再而三的持续转发,为了解决这一个情况,有两种方式生成树与源路的方式。

生成树

该方法由IEEE802.1D定义。每个网桥必须在每1~10秒内相互交换BPDU(Bridge Protocol Data Unit)包,从而判断哪些端口使用哪些不使用,以便消除环路。一旦发生故障,则自动切换通信线路,利用那些没
有被使用的端口继续进行传输。具体步骤如下:
1 选举根桥:所有交换机通过交换 BPDU(Bridge Protocol Data Unit)报文,比较桥 ID,选出具有最低桥 ID 的交换机作为根桥。根桥是生成树的中心节点。
2 计算最优路径:各交换机计算到达根桥的最佳路径,将此路径上的端口设为根端口。路径成本是衡量路径优劣的标准,通常链路带宽越高,路径成本越低。
3 选举指定端口:在每条链路上,依据端口到根桥的路径成本等因素,选举出指定端口,负责在该链路上转发数据。非指定端口则不进行数据转发。
4 阻塞非必要路径:将冗余路径上的端口设为阻塞状态,这些端口不转发用户数据,只接收和处理 STP 协议报文,从而防止环路形成。当网络拓扑发生变化时,STP 会重新计算,调整端口状态,确保网络始终无环。
在这里插入图片描述
IEEE802.1D中所定义的生成树方法有一个弊端,就是在发生故障切换网络时需要几十秒的时间。为了解决这个用时过长的问题,在IEEE802.1W中定义了一个叫RSTP(Rapid Spanning Tree Protocol)的方法。该
方法能将发生问题时的恢复时间缩短到几秒以内。

源路由法

源路由法最早由IBM提出,以解决令牌环网络的问题。该方式可以判断发送数据的源地址是通过哪个网桥实现传输的,并将帧写入RIF(Routing InformationField)。网桥则根据这个RIF信息发送帧给目标地址。因此,即使网桥中出现了环路,数据帧也不会被反复转发,可成功地发送到目标地址。在这种机制中发送端本身必须具备源路由的功能。

VLAN

进行网络管理的时候,时常会遇到分散网络负载、变换部署网络设备的位置等情况。而有时管理员在做这些操作时,不得不修改网络的拓扑结构,这也就意味着必须进行硬件线路的改造。然而,如果采用带有VLAN技术的网桥,就不用实际修改网络布线,只需修改网络的结构即可。
我们可以通过对交换机不同端口进行划分,从而区分广播数据传播的范围、减少了网络负载。
在这里插入图片描述

同时为了允许包含跨越异构交换机的网段又定义了IEEE802.1Q的标准(也叫TAG VLAN)。TAG VLAN中对每个网段都用一个VLAN ID的标签进行唯一标识。在交换机中传输帧时,在以太网首部加入这个VID 标签,根据这个值决定将数据帧发送给哪个网段。
在这里插入图片描述

以太网帧格式

以太网帧前端有一个叫做前导码(Preamble)的部分,它由0、1数字交替组合而成,表示一个以太网帧的开始,也是对端网卡能够确保与其同步的标志。前导码末尾是一个叫做SFD(Start Frame Delimiter)的域,它的值是“11”。在这个域之后就是以太网帧的本体。前导码与SFD合起来占8个字节(8位字节指包含8比特的1个字节。与人们平常说的字节(Byte)类似。
在这里插入图片描述
以太网帧本体的前端是以太网的首部,它总共占14个字节。分别是6个字节的目标MAC地址、6个字节的源MAC地址以及2个字节的上层协议类型。紧随帧头后面的是数据。一个数据帧所能容纳的最大数据范围是46~1500个字节。帧尾是一个叫做FCS的4个字节。在目标MAC地址中存放了目标工作站的物理地址。源MAC地址中则存放构造以太网帧的发送端工作站的物理地址。类型通常跟数据一起传送,它包含用以标识协议类型的编号,即表明以太网的再上一层网络协议的类型。在这个字段的后面,则是该类型所标识的协议首部及其数据。
在这里插入图片描述
IEEE802.3 Ethernet与一般的以太网在帧的首部上稍有区别。一般以太网帧中表示类型的字段,在IEEE802.3以太网中却表示帧的长度。此外,数据部分的前端还有LLC和SNAP等字段。而标识上一层协议类型的字段就出现在这个SNAP中。不过SNAP中指定的协议类型与一般以太网协议类型的意思基本相同。
在这里插入图片描述

总结

本期主要介绍了网络中的数据链路层,下期将会介绍IP协议。

写在文末

 有疑问的友友,欢迎在评论区交流,笔者看到会及时回复

请大家一定一定要关注!!!
请大家一定一定要关注!!!
请大家一定一定要关注!!!
友友们,你们的支持是我持续更新的动力~

创作不易,求关注,点赞,收藏,谢谢~

http://www.hkcw.cn/article/tgjelnoQox.shtml

相关文章

基于 LLM 的商城智能客服助理开发实战

参考LLM开源文档 Datawhale LLM教程🌐📚 文章目录 💡实现思路🚀实现步骤📊 数据集介绍⚙️ 数据处理📝 评估输入🔍 提取商品关键词🔍 检索商品信息📝 生成并评估回答✨ …

电子电器架构 --- OTA测试用例分析(中)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…

安卓逆向篇LSP 模块HOOK 添加技术绕过检测算法解密逻辑验证

前置解释: 0 、 Magisk : 是当前 Android 社区用来获取 root 权限的主流方式开源工具 1 、 LSP 框架: XPosed 框架因只支持安卓 8 及以下,故高版本应使用 MagiskLSPosed 2 、 HOOK 技术: 钩子技术&…

网络攻防技术一:绪论

文章目录 一、网络空间CyberSpace1、定义2、基本四要素 二、网络空间安全1、定义2、保护对象3、安全属性4、作用空间 三、网络攻击1、攻击分类2、攻击过程 四、网络防护1、定义2、安全模型3、安全服务5类4、特定安全机制8种5、普遍性安全机制5种 五、网络安全技术发展简史1、第…

李臻20242817_安全文件传输系统项目报告_第14周

安全文件传输系统项目报告(第 14 周) 1. 代码链接 Gitee 仓库地址:https://gitee.com/li-zhen1215/homework/tree/master/Secure-file 代码结构说明: SecureFileTransfer/ ├── client/ # 客户端主目…

分布式流处理与消息传递——Paxos Stream 算法详解

Java 实现 Paxos Stream 算法详解 一、Paxos Stream 核心设计 #mermaid-svg-cEJcmpaQwLXpEbx9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-cEJcmpaQwLXpEbx9 .error-icon{fill:#552222;}#mermaid-svg-cEJcmpaQw…

设计模式——观察者设计模式(行为型)

摘要 本文详细介绍了观察者设计模式,包括其定义、结构、实现方式、适用场景以及实战示例。通过代码示例展示了如何在Spring框架下实现观察者模式,以及如何通过该模式实现状态变化通知。同时,对比了观察者模式与消息中间件在设计理念、耦合程…

Android基础入门:dataBinding的简单使用

1.2修改布局文件 选中布局文件的第一行&#xff0c;按alterenter就会弹出提示&#xff0c;默认选中data binding layout 改造好的的新的布局文件里最大的变化就是多了一对<data></data>标签&#xff1b;很容易想到这是为了实现布局文件里数据和布局的分离&#xff…

在Android设置界面中实现颜色选择器

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;在Android开发中&#xff0c;颜色选择器是设置界面中实现用户自定义界面主题色或字体颜色的常用功能。本教程详细介绍了如何设计颜色选择器布局&#xff0c;通过 GridView 或 RecyclerView 展示颜色列表&am…

小程序微信认证/年审流程

看清楚文字描述&#xff0c;别光看图&#xff0c;图并不一定准确&#xff0c;按照你想填写的填写、&#xff0c;本教程只是提供一个参考。 1.登录微信公众平台 : 微信公众平台【← ←点击这个蓝色字体】&#xff08;选择正确的小程序&#xff09;&#xff0c;或者根据第三方…

macOS版本微信 4.0 之后,双开策略

从 macOS 版本微信 3.0 升级到 4.0 之后&#xff0c;之前的双开策略实效了。 当然期待微信能够让之前方法回归。这是最理想的。 咱也该自己动手丰衣足食 &#xff5e;&#xff5e;&#xff5e; 第一步 创建微信的「分身」 sudo cp -R /Applications/WeChat.app /Applicati…

EasyPlayer-RTSP-Android:一款强大的流媒体播放器

EasyPlayer-RTSP-Android&#xff1a;一款强大的流媒体播放器 【下载地址】EasyPlayer-RTSP-Android一款强大的流媒体播放器 EasyPlayer-RTSP-Android 是一款功能强大的 Android 流媒体播放器&#xff0c;支持 RTSP、RTMP、HLS 和 HTTP 等多种协议&#xff0c;适用于各种音视频…

mac怎么安装pycharm?

安装步骤&#xff1a;1、打开PyCharm官网&#xff0c;在官网首页点击“下载”按钮&#xff0c;选择“MacOS”版本进行下载&#xff1b;2、双击打开安装包&#xff0c;将PyCharm拖动到应用程序文件夹中&#xff1b;3、根据提示进行安装&#xff0c;在第一次运行PyCharm时&#x…

【工具】Raycast – Mac提效工具

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 引入 以前看到同事们锁屏的时候,不知按了什么键,直接调出这个框,然后输入lock屏幕就锁了。 跟我习惯的按Mac开机键不大一样。个人觉得还…

【实测可用】Sublime Text4 4169 mac/windows 破解注册 20240417 实测可用

官网下载Sublime Text4 官网地址&#xff1a;https://www.sublimetext.com/ 点击下载即可 不用安装&#xff0c;可以直接使用。 MAC 破解注册 修改可执行文件sublime_text 打开网站https://hexed.it/。找到sublime所在目录&#xff0c;比如我这里是&#xff1a;/Users/xxx/s…

小程序快速实现大模型聊天机器人

需求分析&#xff1a; 基于大模型&#xff0c;打造一个聊天机器人&#xff1b;使用开放API快速搭建&#xff0c;例如&#xff1a;讯飞星火&#xff1b;先实现UI展示&#xff0c;在接入API。 最终实现效果如下&#xff1a; 一.聊天机器人UI部分 1. 创建微信小程序&#xff0c…

iOS全能签使用全攻略

适用系统&#xff1a;iOS 12及以上设备 全能签是一款免费免越狱的IPA签名工具&#xff0c; 支持一键签名、多开安装、插件注入等功能&#xff0c;无需联网即可使用。 哈士奇软件源&#xff08;解锁更多资源&#xff09;&#xff1a;https://yuan.ioska.cn/appstore &#xff0…

手把手教你在VMware虚拟机安装macOS(含避坑指南)

文章目录 ▍前期准备&#xff08;重要&#xff01;&#xff01;&#xff01;&#xff09;必备三件套&#xff1a;避坑提醒&#xff1a; ▍详细安装步骤步骤1&#xff1a;安装Unlocker补丁步骤2&#xff1a;创建虚拟机步骤3&#xff1a;修改虚拟机配置文件步骤4&#xff1a;安装…

mac intel芯片下载安卓模拟器

一、调研 目前主流两个模拟器&#xff1a; 雷神模拟器 不支持macosmumu模拟器pro版 不支持macos intel芯片 搜索到mumu的Q&A中有 “Intel芯片Mac如何安装MuMu&#xff1f;” q&a&#x1f517;&#xff1a;https://mumu.163.com/mac/faq/install-on-intel-mac.html 提…

Android Studio 历史版本下载

Android Studio 历史版本下载 官方链接&#xff1a;https://developer.android.google.cn/studio/archive 通过gradle插件版本反查Android Studio历史版本 Android Studio Meerkat | 2024.3.1 【https://r1—sn-j5o76n7e.gvt1-cn.com/edgedl/android/studio/install/2024.3.…