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

2.1 使用点对点信道的数据链路层

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅!

文章目录

  • 前言
  • 1 通信信道类型
  • 2 数据链路
  • 3 帧
  • 4 透明传输
  • 5 差错检测


前言

在计算机网络通信中,数据链路层起着关键作用。它为直接相连的网络设备之间提供可靠的数据传输服务。本文将系统介绍数据链路层的通信方式、帧封装机制以及如何使用循环冗余检验 (CRC) 实现差错检测,确保无比特差错的传输。

1 通信信道类型

①点对点信道
点对点信道采用一对一的通信方式,在两个设备之间直接传输数据,常用于串行线路或某些专用网络中。

②广播信道
广播信道采用一对多的通信方式,将数据包发送给所有接入信道的设备。在广播信道上,主机需通过共享信道协议进行协调,以避免数据冲突和干扰。

在这里插入图片描述

2 数据链路

①链路 (Link)
链路是无源的点到点物理线路段,中间没有任何交换节点,也称为物理链路。

②数据链路 (Data Link)
当链路中添加控制数据传输的协议的硬件和软件后,就构成了数据链路,也称为逻辑链路。

3 帧

①封装成帧 (Framing)
在传输过程中,需要对数据进行封装,在一段数据的前后加上首部和尾部,构成一个帧。首部和尾部的主要作用是进行帧定界,即确定每一帧的开始和结束。

②最大传送单元 (MTU)
MTU 规定了每帧的数据部分的长度上限,避免数据包过大导致传输失败。
在这里插入图片描述
在这里插入图片描述

③控制字符作为帧定界符

  • SOH (Start Of Header):放在帧的首部,表示帧的开始。
  • EOT (End Of Transmission):放在帧的尾部,表示帧的结束。

在这里插入图片描述

4 透明传输

①定义
透明传输指的是在数据链路层中,无论发送的数据包含何种比特组合,都能确保数据按照原样不受干扰地传输到接收端。

“透明”意味着即使数据中存在与控制字符(如 SOH、EOT 等)相同的比特模式,这些数据也不会被链路层误解为帧的起始或结束,从而避免数据边界的错误解析。

在数据链路层透明传送数据:无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过这个数据链路层。

【情景引入】
如果数据内容中包含的某些字节的二进制代码与控制字符 (如 SOH、EOT) 相同,数据链路层可能会误判帧边界,导致传输错误。
在这里插入图片描述

【解决方案】
用“字节填充”或**“字符填充**”法解决透明传输的问题。
在检测到与控制字符冲突的字节时,通过添加特殊字符来避免错误解析。这种填充技术确保无论数据的比特组合如何,都能无误传输,实现透明传输
在这里插入图片描述

5 差错检测

①误码率 (BER)
在数据传输过程中,比特可能出现错误(如 1 被误判为 0,或 0 被误判为 1)。
误码率 (BER) 是一段时间内错误比特占比特总数的比率,用于衡量传输质量。
在这里插入图片描述
②循环冗余检验 (CRC)

a. CRC 原理与计算

  1. 划分数据组:将数据划分为长度为 (k) 比特的组。

  2. 添加冗余码:CRC 运算会在每组数据后面添加 (n) 位冗余码,构成帧并发送。
    在这里插入图片描述

  3. 计算步骤

    • 对数据 (M) 进行模 2 运算,将其扩展为 (k + n) 位。
    • 用事先选定的多项式 (P)(长度为 (n + 1) 位)对扩展后的数据进行除法,得到商 (Q) 和余数 (R)。
    • 将余数 (R)(长度为 (n) 位)作为冗余码附加到原数据 (M) 后,一起发送。
      在这里插入图片描述

【CRC 冗余码的计算举例】
在这里插入图片描述

③帧检验序列 (FCS)
FCS 是在帧的末尾添加的冗余码,用于检测传输中的比特差错。

【注意】
循环冗余检验 CRC 和帧检验序列 FCS 并不等同:

  • CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
  • FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

④常用的 CRC 生成多项式
CRC 检验的效果取决于选用的生成多项式。以下是常见的生成多项式:

  • CRC-16:(X^{16} + X^{15} + X^2 + 1)
  • CRC-CCITT:(X^{16} + X^{12} + X^5 + 1)
  • CRC-32:(X^{32} + X^{26} + X^{23} + X^{22} + X^{16} + X^{12} + X^{11} + X^{10} + X^8 + X^7 + X^5 + X^4 + X^2 + X + 1)

【注意】
无比特差错”与“无传输差错”区别:

  • 可靠传输:数据链路层的发送端发送什么,在接收端就收到什么。
  • 传输差错可分为两大类:
    • 比特差错;
    • 传输差错:帧丢失、帧重复或帧失序等。
  • 在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。
  • 要实现可靠传输,还必须再加上帧编号、确认和重传等机制。

相关文章:

2.1 使用点对点信道的数据链路层

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言1 通信信道类型2 数据链路3 帧4 透明传输5 差错检测 前言 在计算机网络通信中,数据链路层起着关键作用。它为直接相连的网络设备之间提供可靠的数据传输服务。…...

台式机来电自启动设置

在前司时,由于有些工作需要用到台式机,且一到节假日或者突然停电等情况,电脑每次都需要自己手动开机,后来研究了一下,发现可以在BIOS里面更改设置,从而变成关机的情况下,只要来电就能自动开机&a…...

【最新华为OD机试E卷-支持在线评测】考勤信息(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…...

netdata保姆级面板介绍

netdata保姆级面板介绍 基本介绍部署流程下载安装指令选择设置KSM为什么要启用 KSM?如何启用 KSM?验证 KSM 是否启用注意事项 检查端口启动状态 netdata和grafana的区别NetdataGrafananetdata各指标介绍总览system overview栏仪表盘1. CPU2. Load3. Disk…...

苹果最新论文:LLM只是复杂的模式匹配 而不是真正的逻辑推理

大语言模型真的可以推理吗?LLM 都是“参数匹配大师”?苹果研究员质疑 LLM 推理能力,称其“不堪一击”!苹果的研究员 Mehrdad Farajtabar 等人最近发表了一篇论文,对大型语言模型 (LLM) 的推理能…...

Python知识点:基于Python工具,如何使用Scikit-Image进行图像处理与分析

开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候! 基于Python的Scikit-Image图像处理与分析指南 在Python的科学计算生态系统中&am…...

MongoDB初学者入门教学:与MySQL的对比理解

🏝️ 博主介绍 大家好,我是一个搬砖的农民工,很高兴认识大家 😊 ~ 👨‍🎓 个人介绍:本人是一名后端Java开发工程师,坐标北京 ~ 🎉 感谢关注 📖 一起学习 &…...

Oracle AI Vector Search

Oracle AI Vector Search 是 Oracle Database 23ai 中引入的一项新技术,它允许用户在数据库中直接存储和高效查询向量数据。这项技术旨在简化应用程序的开发,并且支持不同维度和格式的向量。以下是 Oracle AI Vector Search 的一些关键特性和优势&#x…...

基于SpringBoot的健身会员管理系统实战分享

在这个充满活力的时代,我们自豪地呈现一款专为健身爱好者和专业人士设计的会员管理系统——一个集创新、效率与便捷于一体的解决方案。我们的系统基于强大的RuoYi-Vue框架构建,采用最新的Spring Boot和Vue3技术,确保了系统的高性能和用户友好…...

Elasticsearch高级搜索技术-结构化数据搜索

目录 结构化数据的存储 示例映射 使用range查询 查询示例 运算符 更多示例 日期查询 示例 结构化数据搜索是Elasticsearch另一个强大的功能,允许用户对具有明确类型的数据(如数字、日期和布尔值)进行精确的过滤和查询。这种类型的搜索通常涉及…...

ffmpeg面向对象——类所属的方法探索

ffmpeg是面向对象的思想写的代码,自然符合oopc的实现套路。这个也是oopc的通用法则。 1.类所属方法oopc的实现形式 ffmpeg抽象出某一类,然后某一类的方法如何调用?你说这还不简单: 对象.对象方法() 或者 对象指针-&g…...

TensorRT-LLM七日谈 Day3

今天主要是结合理论进一步熟悉TensorRT-LLM的内容 从下面的分享可以看出,TensorRT-LLM是在TensorRT的基础上进行了进一步封装,提供拼batch,量化等推理加速实现方式。 下面的图片更好的展示了TensorRT-LLM的流程,包含权重转换&…...

如何使用Pandas库处理大型数据集?

如何使用Pandas库处理大型数据集? 处理大型数据集是数据分析中的一个挑战,尤其是在资源有限的情况下。Pandas是Python中非常流行的数据处理库,但它在处理非常大的数据集时可能会遇到内存限制的问题。因此,我们需要一些策略来提高Pandas处理大型数据集的效率。以下是使用Pa…...

XHR 创建对象

XHR 创建对象 XMLHttpRequest(XHR)是现代Web开发中不可或缺的技术之一。它允许Web开发者通过JavaScript发送网络请求,以在不重新加载整个页面的情况下更新网页的某部分。XHR为开发者提供了一种在客户端和服务器之间传输数据的有效方式,是AJAX(Asynchronous JavaScript an…...

# 在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 分析

在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 分析 一、问题描述: 在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 如下图: 二、报错分析&…...

C++的类和动态内存分配(深拷贝与浅拷贝)并实现自己的string类

首先&#xff0c;我们先写一个并不完美的类&#xff1a; #include<iostream> #include<cstring> using namespace std;class Mystring{private:char *p;int len;static int num;friend ostream& operator<<(ostream& os, const Mystring& c);pu…...

通过观测云 DataKit Extension 接入 AWS Lambda 最佳实践

前言 AWS Lambda 是一项计算服务&#xff0c;使用时无需预配置或管理服务器即可运行代码。AWS Lambda 只在需要时执行代码并自动缩放。借助 AWS Lambda&#xff0c;几乎可以为任何类型的应用程序或后端服务运行代码&#xff0c;而且无需执行任何管理。 Lambda Layer 是一个包…...

MySQL-三范式 视图

文章目录 三范式三范式简介第一范式第二范式第三范式 表设计一对一一对多多对多最终的设计 视图 三范式 三范式简介 所谓三范式, 其实是表设计的三大原则, 目的都是为了节省空间, 但是三范式是必须要遵守的吗? 答案是否定的(但是第一范式必须遵守) 因为有时候严格遵守三范式…...

多线程(三):线程等待获取线程引用线程休眠线程状态

目录 1、等待一个线程&#xff1a;join 1.1 join() 1.2 join(long millis)——"超时时间" 1.3 join(long millis&#xff0c;int nanos) 2、获取当前线程的引用&#xff1a;currentThread 3、休眠当前进程&#xff1a;sleep 3.1 实际休眠时间 3.2 sleep的特殊…...

Hi3244 应用指导

Hi3244 是一款DIP8封装高性能、多模式工作的原边控制功率开关。Hi3244内高精度的恒流、恒压控制机制结合完备的保护功能&#xff0c;使其适用于小功率离线式电源应用中。在恒压输出模式中&#xff0c;Hi3244 采用多模式工作方式&#xff0c;即调幅控制&#xff08;AM&#xff0…...

NAT 类型详解:四种 NAT 的数据流与原理解析

NAT 类型详解&#xff1a;四种 NAT 的数据流与原理解析摘要&#xff1a;NAT&#xff08;Network Address Translation&#xff09;是 P2P 通信中绕不开的关卡。不同的 NAT 类型决定了内网设备能否被外部直接访问&#xff0c;直接影响 WebRTC 等 P2P 技术的穿透成功率。本文通过…...

朋友学过都说好的家电清洗培训 行业前景与培训内容科普解读

家电清洗培训行业前景随着人们生活水平的提高&#xff0c;家电的普及率越来越高&#xff0c;对家电清洗的需求也日益增长。据相关数据显示&#xff0c;近年来家电清洗市场规模呈现逐年上升的趋势。在城市中&#xff0c;越来越多的家庭开始重视家电的清洁与保养&#xff0c;以延…...

交通事故车辆受损情况数据集分享(适用于YOLO系列深度学习分类检测任务)

交通事故车辆受损情况数据集分享&#xff08;适用于YOLO系列深度学习分类检测任务&#xff09; 源码下载链接:https://pan.baidu.com/s/1zYLg1EOwHB-HTBlxQr4w7A?pwdyhmd 提取码:yhmd前言 随着道路交通量的不断增加&#xff0c;交通事故的发生频率也呈现上升趋势。事故发生后&…...

RFSoC开发避坑指南:手把手教你理解并配置RF数据转换器的核心结构体(以XRFdc为例)

RFSoC开发实战&#xff1a;深度解析XRFdc结构体配置与避坑策略 第一次打开xrfdc.h头文件时&#xff0c;面对密密麻麻的结构体定义&#xff0c;我的鼠标滚轮不由自主地滑动了三分钟才看完所有内容。作为曾经在RFSoC项目上踩过无数坑的开发者&#xff0c;我完全理解那种面对数十个…...

Adafruit Bluefruit LE模块AT命令实战:从BLE透传到Eddystone信标与HID设备开发

1. 项目概述与核心价值如果你正在开发一个需要无线连接功能的物联网设备、可穿戴设备或者创意交互项目&#xff0c;那么蓝牙低功耗&#xff08;BLE&#xff09;技术几乎是一个绕不开的选择。它功耗低、连接快&#xff0c;并且被现代智能手机和电脑广泛支持。然而&#xff0c;直…...

fastmod vs codemod:为什么你应该选择这个更快的代码替换工具

fastmod vs codemod&#xff1a;为什么你应该选择这个更快的代码替换工具 【免费下载链接】fastmod A fast partial replacement for the codemod tool. Assists with large-scale codebase refactors via regex-based find and replace with human oversight and occasional i…...

CM201-1-CH刷机避坑指南:S905L3B+UWE5621DS芯片组合刷机时,为什么必须取消‘擦除flash’?

CM201-1-CH刷机避坑指南&#xff1a;S905L3BUWE5621DS芯片组合的特殊性解析 每次刷机操作都像一场精密手术&#xff0c;而CM201-1-CH这款搭载S905L3B主控与UWE5621DS无线芯片组合的机顶盒&#xff0c;则像一位"特殊体质"的患者——常规操作可能导致不可逆的"医疗…...

数据清洗实战:解锁混乱数据,构建高效企业集成管道

1. 项目概述与核心价值 最近在和一些做企业级应用集成的朋友聊天&#xff0c;发现一个挺有意思的痛点&#xff1a;很多系统在对接时&#xff0c;数据格式五花八门&#xff0c;尤其是那些历史包袱重的老系统&#xff0c;传过来的数据经常是“拧巴”着的。比如&#xff0c;一个本…...

量子启发式算法优化车联网通信与交通控制

1. 量子启发式算法在车联网中的创新应用在智慧城市建设的浪潮中&#xff0c;交通拥堵已成为困扰现代都市的顽疾。传统交通管理系统往往采用固定配时方案或简单的自适应控制&#xff0c;难以应对城市路网中瞬息万变的交通流变化。与此同时&#xff0c;随着车联网(V2X)技术的普及…...

零中频接收机技术演进与动态范围优化方案

1. 零中频接收机技术演进与核心挑战零中频架构&#xff08;Zero-IF&#xff09;在移动通信领域已发展超过二十年&#xff0c;最早可追溯至1990年代的GSM手机设计。这种直接将射频信号下变频至基带的技术&#xff0c;相比传统超外差架构省去了中频处理环节&#xff0c;理论上具有…...