计算机网络(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…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
