计算机网络(7) 数据链路层
数据链路层的内容不学不知道,一学真的是吓一跳哦,内容真的挺多的,但是大家不要害怕,总会学完的。
还有由于数据链路层的内容太多,一篇肯定是讲不完的所以我决定把它分为好几个部分进行学习与讲解。大家可以关注以后文章的发布。
数据链路层(Data Link Layer)
数据链路层是计算机网络体系结构中的第二层,它位于物理层之上,网络层之下。数据链路层的主要任务是确保在物理层提供的可靠传输基础上,能够有效地进行数据帧的可靠传输。它负责在局部网络中节点之间传输数据包(帧),并处理传输过程中可能出现的错误和流量控制。
数据链路层的主要功能
-
帧的封装与解封装: 数据链路层的最基本功能是将网络层传递下来的数据包(Packet)封装成帧(Frame),然后在物理层上进行传输。在接收到数据时,数据链路层会将物理层传输的比特流解封装成数据包并交给上层网络层处理。
-
错误检测与纠正: 数据链路层负责检测在物理层传输过程中可能出现的错误,如位错误、丢失或重复的帧。最常见的错误检测方法是循环冗余检查(CRC)。如果数据链路层发现错误,它可以请求重发(ARQ协议),以确保数据的正确性。
-
流量控制: 数据链路层需要管理网络节点之间的传输速度,防止因接收端处理能力不足导致丢失数据帧。流量控制通过一些机制(如窗口控制)来调整数据发送的速率。
-
介质访问控制(MAC): 数据链路层管理对共享传输介质的访问。在共享介质网络中(如以太网、无线网络),多个设备需要争用网络带宽,数据链路层采用介质访问控制协议来避免冲突并管理数据传输。
-
物理地址(MAC地址)管理: 数据链路层使用物理地址(通常是MAC地址)来唯一标识网络中的设备。MAC地址是一种硬件地址,它由网络设备的制造商赋予,并用于确保帧能够被正确地发送到目标设备。
数据链路层的子层
数据链路层通常被分为两个子层:
- 逻辑链路控制子层(LLC,Logical Link Control):
- LLC子层负责在数据链路层与网络层之间建立逻辑连接。它处理与网络层的交互,提供帧的封装和差错控制。LLC子层使得数据链路层能够支持多种网络协议。
- 介质访问控制子层(MAC,Medium Access Control):
- MAC子层负责控制对物理介质的访问。它通过协议来决定如何在共享的通信媒介上调度数据的发送。MAC子层使用硬件地址(MAC地址)来进行数据帧的目标定位,并解决冲突。
- 典型的MAC协议有:CSMA/CD(以太网)、CSMA/CA(Wi-Fi)等。
数据链路层的常见协议
-
以太网(Ethernet):
- 以太网是广泛使用的局域网协议,基于CSMA/CD(载波侦听多路访问/碰撞检测)协议,它在数据链路层提供帧的封装、错误检测和介质访问控制。
-
无线局域网(Wi-Fi):
- Wi-Fi协议基于IEEE 802.11标准,定义了在无线环境中如何通过MAC协议进行数据的传输与访问。
-
点对点协议(PPP,Point-to-Point Protocol):
- PPP是一种常用于点对点连接的协议,通常用于拨号连接、DSL和VPN等。PPP协议提供了数据封装、错误检测、流量控制等功能。
-
帧中继(Frame Relay):
- 帧中继是一种广域网协议,使用虚拟电路传输数据帧,通常用于传输速率较高的数字数据。帧中继提供错误检测、流量控制和数据链路的管理。
-
ATM(异步传输模式):
- ATM是一种面向连接的技术,用于广域网和局域网。它将数据分成固定长度的53字节的单元(称为单元,或Cell),提供错误检测和流量控制。
数据链路层的错误检测与纠正
-
循环冗余校验(CRC,Cyclic Redundancy Check):
- 数据链路层通过CRC来检测数据帧在传输过程中是否出现了错误。发送端会根据数据内容计算一个CRC值,并将其附加到数据帧中。接收端使用相同的算法检查数据的完整性,若CRC值不匹配,表示数据帧在传输中出错。
-
自动重传请求(ARQ,Automatic Repeat reQuest):
- 数据链路层使用ARQ协议来请求丢失或损坏的数据帧重发。常见的ARQ协议有停等ARQ(Stop-and-Wait ARQ)、连续ARQ(Go-Back-N ARQ)、选择重传ARQ(Selective Repeat ARQ)等。
数据链路层与物理层的区别
- 物理层: 主要负责比特的传输,将数据通过物理媒介从一个设备传输到另一个设备,它不涉及数据的内容和结构。
- 数据链路层: 负责对比特进行封装形成数据帧,提供错误检测、流量控制等功能,确保数据能够可靠地在物理媒介上传输。
下面讲解帧封装的知识:
帧封装(Frame Encapsulation)
帧封装是数据链路层的核心功能之一,它指的是将来自上层(通常是网络层)的数据包附加上数据链路层的控制信息,形成一个完整的数据帧,然后通过物理介质传输到目标设备。帧封装的主要目的是确保数据在传输过程中得到可靠的传输和正确的识别。
帧封装的过程
帧封装的过程通常包括以下几个步骤:
-
添加帧头(Header):在网络层的数据包之前附加一个帧头。帧头通常包含目标地址、源地址、类型信息、帧序号、流量控制和错误检测等信息。
-
封装数据:帧头之后是上层传输的数据包,这是数据帧的主要内容部分,也就是数据载荷(payload)。
-
添加帧尾(Trailer):在数据部分之后附加帧尾。帧尾通常包含循环冗余校验(CRC)或其他形式的错误检测码,用于检测帧在传输过程中是否发生错误。
-
帧边界标识(Frame Boundary Identification): 通过在帧的其实和结束位置使用特定的标志位,可以明确区分帧之间的界限,确保在传输过程中数据不会混淆。
帧封装的结构
帧的结构因协议而异,但通常包含以下几个常见的字段:
- 帧头(Header):包含控制信息,如目标MAC地址、源MAC地址、协议类型等。
- 数据(Data):包含要传输的实际数据,即来自网络层的数据包。
- 帧尾(Trailer):包含错误检测码(例如CRC),用于检测帧在传输过程中的完整性。
帧封装的作用
-
确保数据完整性:通过添加错误检测码,帧封装可以帮助接收方检测并定位传输过程中是否有数据损坏或丢失。
-
地址识别和定位:帧头中包含源地址和目标地址,确保数据帧能够到达正确的目标设备。
-
分段和组装:封装成帧的数据可以在发送端分段处理,接收端则可以按照帧序号将数据重新组合成完整的信息。
-
流量控制和顺序控制:通过帧头中的控制信息,可以有效地实现对数据流的控制,并保证数据按顺序到达。
帧封装的典型例子
-
以太网帧:
- 以太网帧是数据链路层的典型帧格式之一。它由以太网协议(如IEEE 802.3)定义,帧头包括目标MAC地址、源MAC地址、帧类型等字段,帧尾通常包含CRC校验码。
-
PPP帧:
- 在点对点协议(PPP)中,帧封装结构为标志字段、地址字段、控制字段、协议字段、数据和帧校验序列。PPP广泛用于通过电话线或宽带连接等点对点链路传输数据。
相关文章:
计算机网络(7) 数据链路层
数据链路层的内容不学不知道,一学真的是吓一跳哦,内容真的挺多的,但是大家不要害怕,总会学完的。 还有由于数据链路层的内容太多,一篇肯定是讲不完的所以我决定把它分为好几个部分进行学习与讲解。大家可以关注以后文…...
2024年秋国开电大《建筑结构试验》形考任务1-4
形考作业一 1.下列选项中,( )项不属于科学研究性试验。 答案:检验结构的质量,说明工程的可靠性 2.下列各项,( )项不属于工程鉴定性试验。 答案:验证结构计算理论的假定 3.按试验目的进行分类,可将结构试验分成( )。 答案:工程鉴定性试验和科学研究性试验…...
【MySQL】explain之type类型
explain的type共有以下几种类型,system、const、eq_ref、ref、range、index、all。 system:当表中只有一条记录并且该表使用的存储引擎的统计数据是精确的,比如MyISAM、Memory,那么对该表的访问方法就是system。 constÿ…...
Llama架构及代码详解
Llama的框架图如图: 源码中含有大量分布式训练相关的代码,读起来比较晦涩难懂,所以我们对llama自顶向下进行了解析及复现,我们对其划分成三层,分别是顶层、中层、和底层,如下: Llama的整体组成…...
Android onConfigurationChanged 基础配置
onConfigurationChanged 代替重建 0. **定义与基本用途**1. **具体使用场景 - 屏幕方向改变**2. **具体使用场景 - 键盘可用性改变**3. **具体使用场景 - 语言设置变更**4. **具体使用场景 - 屏幕密度变化**5. **具体使用场景 - 字体大小改变**6. **具体使用场景 - 屏幕尺寸变化…...
3. Sharding-Jdbc核⼼流 程+多种分⽚策略
1. Sharding-Jdbc 分库分表执⾏核⼼流程 Sharding-JDBC执行流程 1. SQL解析 -> SQL优化 -> SQL路由 -> SQL改写 -> SQL执⾏-> 结果归并 ->返回结果简写为:解析->路由->改写->执⾏->结果归并1.1 SQL解析 1. SQL解析过程分为词法解析…...
为什么财富的蓝图如此重要
我们生活在一个二元对立的世界里:上与下、明与暗、冷与热内与外、快与慢、左与右。这些还只是千百种对立之中的几个例子而已。 有了一个极端,表示一定同时有相对的另一端存在。有了右边不可能没有左边。 所以,在钱这件事上,有外…...
【云计算解决方案面试整理】1-2云计算基础概念及云计算技术原理
准备面云计算解决方案的岗位,整理了一些,也请大佬们指点。 文档分为 云计算基础概念、云计算技术原理、主流云计算平台(以天翼云为例)、云计算架构(弹性设计、高可用设计、高性能设计)、安全防护几个方面。 一、云计算基础概念 1.请简要解释一下什么是云计算? 简单说呢…...
循环语句 while()... 与 for()...(day11)
一、while()与do...while()... 循环语句: 通过循环语句可以反复执行一段代码多次 1、while循环: - 语法: while(①条件表达式){ ②语句... } - while语句在执行时, 先对条件表达式进行求值判断, 如果值为true&#…...
Mysql篇-三大日志
概述 undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。 redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现…...
MySQL的SQL书写顺序和执行顺序
老是忘记执行顺序,记录一下: 1. SQL语句的书写顺序 书写顺序通常是我们编写SQL查询时的顺序,主要包括以下关键字: SELECT:选择要查询的字段。FROM:指定数据来源表。JOIN(可选)&am…...
摄像机视频分析软件下载LiteAIServer视频智能分析软件抖动检测的技术实现
在现代社会中,视频监控系统扮演着至关重要的角色,其可靠性和有效性在很大程度上取决于视频质量。然而,由于多种因素,如摄像机安装不当、外部环境振动或视频信号传输的不稳定,视频画面常常出现抖动问题,这不…...
spring gateway 动态路由
##yml配置 spring:application:name: public-gateway # cloud: # gateway: # routes: # - id: mybatis-plus-test # 路由的唯一标识 # uri: http://192.168.3.188:9898 # 目标服务的地址 # predicates: # - Path/test/** # 匹配…...
除了 Postman,还有什么好用的 API 管理工具吗?
Postman在团队协作上的支持相对有限,且免费版本的功能较为基础,高级功能需要付费解锁。 为了寻找更加符合团队需求的解决方案,许多开发者开始探索其他API管理工具,其中Apifox便是备受推崇的选择之一。下面通过一个表格来简单了解…...
JAVA:探索 EasyExcel 的技术指南
1、简述 在 Java 开发中,Excel 文件的读写操作是一项常见的需求。阿里巴巴开源的 EasyExcel 提供了一种高效、简洁的解决方案,特别是在处理大规模数据时表现尤为突出。本文将详细介绍 EasyExcel 的优缺点、应用场景,并通过实例展示其基本用法…...
【数字图像处理+MATLAB】对图片进行伽马校正(Gamma Correction):使用幂律变换公式进行伽马变换
引言 伽马校正(Gamma Correction)是一种用于图像处理的技术,主要用于调整图像的亮度或对比度。其基本原理是对图像的每一个像素应用一个非线性变换,以更好地适应人眼的视觉感知。在数字图像处理中,伽马校正通常用于调…...
算法——螺旋矩阵II(leetcode59)
给你一个正整数 n ,生成一个包含 1 到 n^2所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 对于螺旋矩阵来讲难点主要在于行或列放置元素时的边界条件,我们遵循一个循环不变量原则在放置行或列元素时遵循左闭右开来放置元…...
以往运维岗本人面试真题分享
以下是本人面试运维岗的一些面试经历,在此做个记录分享 目录 TCP/IP三次握手 IPtables IPtables四表五链都是什么? nat端口如何做? 开放本机的80端口该如何做? 如何在单用户模式下引导Centos? nginx轮询模式都有…...
macOS解决U盘装完系统容量变小的问题
发现原来256GB容量的U盘在mac电脑上只显示34GB,想起来之前用该U盘装过系统,最终搜到了以下解决方案,在此记录: (1) 查看盘符列表,找到需要格式化的U盘,假设为disk4 diskutil list(2) 卸载分区disk4 disk…...
ORA-00257: archiver error
ORA-00257: archiver error 归档满问题: 报错: SQL> conn admin/admin ERROR: ORA-00257: archiver error. Connect internal only, until freed. Warning: You are no longer connected to ORACLE. 检查空间: SQL> select name, tot…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
