当前位置: 首页 > news >正文

【计算机网络】数据链路层的功能

数据链路层的基本功能:

  • 封装成帧
  • 透明传输
  • 差错检测

数据链路层使用的信道主要有两种

  • 点对点信道——PPP协议
  • 广播信道——CSMA/CD协议(有线局域网)、CSMA/CA协议(无线局域网)

数据链路层所处的地位

从图中可以看出,数据从主机H1送到主机H2需要在路径中的各结点的协议栈向上和向下流动多次。

但当我们学习数据链路层时,通常可以只关心协议栈中平方向的各数据链路层。
于是当主机H1向H2发送数据时,可以想象数据就是在各相关设备的数据链路层之间沿水平方向传送的。
即可通过以下这样的链路:H1的链路层—>R1的链路层—>R2的链路层—>H2的链路层,其中三段不同的数据链路可能采用不同的数据链路层协议。

一些基本概念

1)链路。指从一个结点到相邻结点的一 段物理线路。当进行数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路。可见链路只是一条路径的组成部分。
2)数据链路。当在一条链路上传送数据时,除了需要链路本身,还需要- -些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。有时也把上面所说的链路称为物理链路,而把数据链路称为逻辑链路
3)帧。数据链路层对等实体之间进行逻辑通信的协议数据单元。数据链路层把网络层下交的数据构成帧发送到链路上,并把接收到的帧中的数据取出并上交给网络层

为网络层提供的服务

1)无确认的无连接服务。源主机发送帧时不需要先建文链路连接,目的主机收到帧时不需要发回确认。数据传输的可靠性由高层负责。适用于误码率较低的信道,如以太网。
2)有确认的无连接服备。源主机发送帧时不需先建立砟路连接,但目的主机收到帧时必须发回确认。源主机在所规定的时间内未收到确定信号时,就重传丢失的帧,以提高传输的可靠性。该服务适用于误码率较高的信道,如无线通信。
3)有确认的面向连接服务。帧传输过程分为三个阶段:建立链路、传输帧、释放链路。目的主机对收到的每-一个帧都要返回确认。该服务适用于可靠性要求较高的场合。

链路管理

数据链路层的建立、维持和释放过程称为链路管理。它主要用于面向连接的服务
链路两端的结点要进行通信,必须首先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号要返回确认。该服务适用于可靠性要求较高的场合初始化,然后才能建立连接,在传输过程中要能维持连接,而在传输完毕后要释放该连接

封装成帧与透明传输

封装成帧是指在一段数据的前后分别添加首部尾部,构成,帧是数据链路层的数据传送单元
帧长等于帧的数据部分长度加上首部尾部的长度。
首部和尾部中含有很多控制信息(PCI),它们的一个重要作用是确定帧的界限,即帧定界
接收方能从接收到的二进制比特流中区分出帧的起始与终止,即帧同步
如在HDLC协议中,用标识位F 11111)来标识帧的开始和结束。在通信过程中,检测到帧标识位F即认为其是帧的开始,然后一旦检测到帧标识位 F即表示帧的结束。HDLC标准帧格式如图所示。为了提高帧的传输效率,应当使帧的数据部分的长度尽可能地大于首部和尾部的长度,但随着帧长的增加,传输差错发生的概率也随之提高,发生差错时重传的代价也越大,因此每种链路层协议都规定了帧的数据部分的长度上限,即最大传送单元

若在数据中恰好出现与帧定界符相同的比特组合(会误认为“传输结束”而丢弃后面的数据),要采取有效的措施来解决这个问题,即透明传输。更确切地说,透明传输是指不论所传的数据是什么样的比特组合,都能够按原样无差错地在这个数据链路上传输。

流量控制接

因为链路两端结点的工作速率和缓存空间存在差异,所以发送方的发送能力可能大于接收方的接收能力。
此时若不适当限制发送方的发送速率,前面来不及接收的帧将被后面不断发送来的帧“淹没”。诰成帧的丢失而出错。
因此,流量控制实上就是限制发送万的发送速率,使之不超过接收方的接收能力。这个过程需通过某种反馈机制,使发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收到某种反馈信息后继续发送。
在OSI体系结构中,数据链路层具有流量控制的功能。而在TCP/P体系结构中,流量控制功能被移到了传输层。它们控制的对象不同。
对数据链路层来说控制的是相邻结点之间的数据链路上的流量,而对传输层来说,控制的则是从源端到目的端之间的流量。

差错检测

因为信道噪声等原因,帧在传输过程中可能会出现错误,这些错误分为位错和帧错。
1)位错:帧中某些位出现差错,通常采用循环冗余检验(CRC)来发现位错。
2)帧错:帧丢失、帧重复或帧失序等错误,它们都属于传输差错。

过去OSI的观点是:必须让数据链路层向上提供可靠传输。因此在CRC检错的基础上,增加了帧编号、确认和重传机制。收到正确的帧就要向发送方发送确认。发送方在一.定期限内若未.收到对方的确认,就认为出现了差错,因此进行重传,直到收到确认为止。
现在,在通信质量较差的无线传输中,数据链路层依然使用确认和重传机制,向上提供可靠的传输服务。对于通信质量良好的有线链路,数据链路层已不再使用确认和重传机制,即不要求向上提供可靠传输的服务,而仅需进行CRC检错,目的是将有差错的帧丢弃,保证上交的帧都是正确的,
而对出错的帧的重传任务则由高层协议(如传输层TCP协议)完成。

相关文章:

【计算机网络】数据链路层的功能

数据链路层的基本功能: 封装成帧透明传输差错检测 数据链路层使用的信道主要有两种 点对点信道——PPP协议广播信道——CSMA/CD协议(有线局域网)、CSMA/CA协议(无线局域网) 数据链路层所处的地位 从图中可以看出,数据从主机H1送到主机H2需要在路径中…...

信号线电路串联电阻

简介 两芯片端串联一个电阻,在靠近发送端或接收端。 一般串联的是0Ω, 22Ω, 33Ω的电阻,也可能更大。 目的 1.解决信号反射问题,吸收反射。 问题如下: pcb单端阻抗过大,而接收端是cmos输入,使得接收端…...

手机App防沉迷系统-算法

import java.util.*; public class Main{public static void main(String[] args){Scanner innew Scanner(System.in);int nInteger.parseInt(in.nextLine());//已注册app列表List<Log> listnew ArrayList<>();for(int k0;k<n;k){String[] strin.nextLine().spl…...

day3_prefixSum

一、前缀和技巧 重点 前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和 个人理解&#xff1b;预计算&#xff0c;空间换时间 1.(一维数组的前缀和)303区域和检索-数组不可变 获取闭区间值 [left,right] -> preSum[right 1] - preSum[left],其中preSum[right…...

Redis过期删除策略和内存淘汰策略有什么区别?

Redis过期删除策略和内存淘汰策略有什么区别&#xff1f; 前言过期删除策略如何设置过期时间&#xff1f;如何判定 key 已过期了&#xff1f;过期删除策略有哪些&#xff1f;Redis 过期删除策略是什么&#xff1f; 内存淘汰策略如何设置 Redis 最大运行内存&#xff1f;Redis 内…...

【计算机网络】物理层传输介质 习题3

双绞线是用两根绝缘导线绞合而成的&#xff0c;绞合的目的是( )。 A.减少干扰 B.提高传输速度 C.增大传输距离 D.增大抗拉强度 在电缆中采用屏蔽技术带来的好处主要是( ) A.减少信号衰减 B. 减少电磁干扰辐射 C.减少物理损坏 D. 减少电缆的阻抗 利用一根同轴电缆互连主机构成…...

智能座舱语音助手产品方案

一、用户调研与痛点分析 1.目标用户分析 用户画像 性别女性年龄50地域2-3线城市职业退休或退居二线教育中专、 大专、 本科财务家庭财务管理者爱好享受生活、 照顾家庭标签有闲有小钱二、产品定位与卖点提炼 购车目的 愉悦自我&#xff0c; 专属于自己的座驾&#xff1a; 家…...

经典面试题之滑动窗口专题

class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 长度最小的子数组 // 大于等于 targetint min_len INT32_MAX;// 总和int sum 0;int start 0; // 起点for(int i 0; i< nums.size(); i) {sum nums[i];while(sum > targe…...

网络编程入门之UDP编程

欢迎各位帅哥美女来捧场&#xff0c;本文是介绍UDP网络编程。在这里&#xff0c;你会见到最详细的教程&#xff1b;细致到每一行代码&#xff0c;每一个api的由来和使用它的目的等。 目录 1.UDP相关API 1.1.两个类 1.2.两个类中的方法 2.UDP编程 2.1.大体框架 2.2.内容构…...

【AI源码】音频和图片生成你的数字人口播

带表情、带头部运动。适合做一些名人短视频鸡汤口播 类似此前微软和阿里emo那个方案 1、介绍: 能够通过单张静态肖像和输入音频生成具有自然流动运动的谈话视频,它采用了一种普遍的运动表示方法,能够捕捉广泛的面部动态,包括细微的表情和头部运动。 2、框架概述 (1)该…...

JAVA_3

JAVA_3 一、JAVA类和对象二、JAVA内存如何运转三、JAVA-constructer 一、JAVA类和对象 类包含三个内容&#xff1a; 1.属性field&#xff0c;静态特征&#xff08;数据&#xff09; 2.方法method&#xff0c;负责动态行为操作数据 3.构造器constructer,负责初始化对象&#xf…...

java项目之汽车资讯网站源码(springboot+mysql+vue)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的汽车资讯网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 汽车资讯网站的主要使用者管…...

C语言中的静态库和动态库的制作和使用

什么是库文件 单一模型 将程序中所有功能全部实现于一个单一的源文件内部。 编译时间长&#xff0c;不易于维护和升级&#xff0c;不易于协作开发。 分离模型 将程序中的不同的功能模块划分到不同的源文件中。 缩短编译时间&#xff0c;易于维护和升级&#xff0c;易于协…...

【MySQL 数据宝典】【事务锁】- 002 事务控制的演进

一、事务处理思路 1.1 排队 排队处理是事务管理最简单的方法&#xff0c;就是完全顺序执行所有事务的数据库操作&#xff0c;不需要加锁&#xff0c;简单的说就是全局排队。序列化执行所有的事务单元&#xff0c;数据库某个时刻只处理一个事务操作&#xff0c;特点是强一致性…...

如何远程操作服务器中的Python编译器并将运行结果返回到Pycharm

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…...

C++入门指南(上)

目录 ​编辑 一、祖师爷画像 二、什么是C 三、C发展史 四、C在工作领域的应用 1. 操作系统以及大型系统软件开发 2. 服务器端开发 3. 游戏开发 4. 嵌入式和物联网领域 5. 数字图像处理 6. 人工智能 7. 分布式应用 五、如何快速上手C 一、祖师爷画像 本贾尼斯特劳斯…...

Python 全栈系列244 nginx upstream 负载均衡 踩坑日记

说明 最初是因为租用算力机(Python 全栈系列242 踩坑记录:租用算力机完成任务)&#xff0c;所以想着做一个负载均衡&#xff0c;然后多开一些服务&#xff0c;把配置写在nginx里面就好了。 一开始租用了一个3080起了一个服务&#xff0c;后来觉得速度不够快&#xff0c;再起了…...

数据链路层——计算机网络学习笔记三

使用点对点信道的数据链路层 前言&#xff1a; 1.数据链路层的重要性&#xff1a;网络中的主机、路由器都必须实现数据连输层&#xff1b; 2.数据链路层中使用的信道&#xff1a; 点对点信道&#xff1a;这种信道是一对一的通信方式&#xff1b; 广播信道&#xff1a;使用一对多…...

leetcode——反转链表

206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;创建三个指针n1,n2,n3&#xff0c;遍历原链表&#xff0c;通过三者之间的关系将链表反转。下面给出图示&#xff1a; 下面给出题解代码&#xff1a; typedef struct ListNode ListNode; struct List…...

类加载机制(双亲委派机制)

文章目录 JVM的作用是什么双亲委派机制加载流程 JVM的作用是什么 我们运行Java程序时&#xff0c;要安装JDK&#xff0c;JDK包含JVM&#xff0c;不同环境的JDK都是不同的。 Java 代码在编译后会形成 class 的字节码文件&#xff0c;该字节码文件通过 JVM 解释器&#xff0c;生…...

从零到一:基于GitHub Pages与Jekyll搭建你的专属学术主页

1. 为什么选择GitHub Pages Jekyll搭建学术主页&#xff1f; 作为一个长期在学术界摸爬滚打的老兵&#xff0c;我见过太多同行花大价钱购买服务器和维护网站&#xff0c;结果最后因为各种技术问题半途而废。直到我发现GitHub Pages和Jekyll这对黄金组合&#xff0c;才真正找到…...

告别传统架构!源网荷储四侧时序数据库选型与落地全解析

新型电力系统应该用什么数据库&#xff1f;源网荷储四侧的时序数据库选型与落地实战 “双碳” 目标的推进正在深刻重构电力系统的运行逻辑。新能源装机占比持续攀升&#xff0c;储能、虚拟电厂、需求响应等新业态快速涌现&#xff0c;源、网、荷、储各侧的角色与互动方式正在被…...

PCB布局设计规范与最佳实践指南

PCB布局设计的最佳实践指南1. 布局设计基础原则1.1 结构约束优先处理在PCB布局初期&#xff0c;必须优先考虑机械结构约束条件&#xff1a;根据导入的结构文件定位所有有特殊位置要求的器件连接器1脚位置必须与结构设计完全匹配严格遵守产品设计中规定的元件限高要求1.2 美观与…...

AutoConnect:ESP32/ESP8266 运行时 Wi-Fi 配网与 OTA 一体化方案

1. AutoConnect 库深度技术解析&#xff1a;面向嵌入式工程师的 ESP32/ESP8266 运行时 Wi-Fi 配置系统AutoConnect 是一个专为 ESP32 和 ESP8266 平台设计的 Arduino 库&#xff0c;其核心目标是在设备运行时&#xff08;runtime&#xff09;通过 Web 界面完成 Wi-Fi 网络的动态…...

AI 模型量化精度控制与评估方法

AI模型量化精度控制与评估方法 随着人工智能技术的快速发展&#xff0c;AI模型在边缘计算、移动设备等资源受限场景中的应用日益广泛。为了在有限的计算资源下保持模型性能&#xff0c;量化技术成为关键手段。量化过程中精度的损失直接影响模型的可靠性&#xff0c;因此量化精…...

MarkDownload:让网页转Markdown变得简单高效的浏览器扩展

MarkDownload&#xff1a;让网页转Markdown变得简单高效的浏览器扩展 【免费下载链接】markdownload A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdownload…...

3个核心方法实现暗影精灵硬件控制与性能调优:告别原厂软件烦恼

3个核心方法实现暗影精灵硬件控制与性能调优&#xff1a;告别原厂软件烦恼 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 一、痛点解析&#xff1a;原厂游戏控制软件的三大致命伤 1.1 隐私安全隐患&#xff1a;网络连接背…...

别再死记硬背了!用Python和SymPy库5分钟可视化理解泰勒公式的逼近过程

用Python动态可视化泰勒公式&#xff1a;5行代码理解多项式逼近本质 数学公式的抽象性常常成为学习者的障碍&#xff0c;尤其是泰勒公式这种涉及无限逼近概念的内容。传统的静态图示和理论推导虽然严谨&#xff0c;却难以直观展示"以直代曲"的动态过程。本文将用Pyth…...

zotero-style:智能文献管理在学术研究中的创新实践

zotero-style&#xff1a;智能文献管理在学术研究中的创新实践 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件&#xff0c;提供了一系列功能来增强 Zotero 的用户体验&#xff0c;如阅读进度可视化和标签管理&#xff0c;适合研究人员和学者。 项目地址: ht…...

突破性SLAM实战:如何用SLAM Toolbox彻底改变机器人定位与建图工作流

突破性SLAM实战&#xff1a;如何用SLAM Toolbox彻底改变机器人定位与建图工作流 【免费下载链接】slam_toolbox Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS 项目地址: https://gitcode.com/gh_mirrors/sl/slam_toolbox …...