【计算机网络】 —— 数据链路层(壹)
文章目录
前言
一、概述
1. 基本概念
2. 数据链路层的三个主要问题
二、封装成帧
1. 概念
2. 帧头、帧尾的作用
3. 透明传输
4. 提高效率
三、差错检测
1. 概念
2. 奇偶校验
3. 循环冗余校验CRC
1. 步骤
2. 生成多项式
3. 例题
4. 总结
四、可靠传输
1. 基本概念:
2. 可靠传输的实现机制
1. 停止等待协议 SW
(1)否定分组NAK
(2)超时重传
(3)分组重复
(4)确认迟到
(5)SW协议的信道利用率
2. 回退N帧协议GBN
(1)无差错情况
(2)累积确认
(3)有差错情况
(4)发送窗口尺寸超过上限
(5)总结
3. 选择重传协议SR
(1)SR协议工作过程
(2)SR协议的窗口尺寸
(3)窗口尺寸超出上限
(4)总结
前言
上篇文章中,对于计算机网络的物理层相关内容进行了整理和总结,今天开始数据链路层的学习,还请多多支持!
回顾上期内容:计算机网络 ——【物理层】https://blog.csdn.net/2401_86777036/article/details/143993284?sharetype=blogdetail&shareId=143993284&sharerefer=APP&sharesource=2401_86777036&sharefrom=link
一、概述
1. 基本概念
链路(Link):从一个节点到相邻节点的一段物理线路,中间没有任何其他的交换节点
数据链路(Data Link):把实现通信协议的硬件和软件加到链路上,就构成了数据链路
数据链路层以帧为单位传输和处理数据
2. 数据链路层的三个主要问题
封装成帧:数据链路层给网络层交付的协议数据单元添加帧头和帧尾
差错检测:接收方主机收到帧后通过检错码和检错算法判断帧在传输过程中是否产生误码
可靠传输:可以简单理解为发送方发送什么,接收方就接收到什么
二、封装成帧
1. 概念
数据链路层对上层交付的协议数据单元添加帧头和帧尾使之成为一个帧
2. 帧头、帧尾的作用
1. 包含重要的控制信息
2. 帧定界
PPP帧:帧头、帧尾各有一字节的标志字段
接收方主机的数据链路层依据帧定界标志,从物理层交付的比特流中提取出一个个帧
BUT!并不是每一个数据链路层协议的帧中都有帧定界标志!
例如:以太网V2的MAC帧中:帧头和帧尾中并没有帧定界标志
接收方如何提取出以太网帧呢???
发送方数据链路层封装好以太网帧后交付给物理层,物理层收到后,会在以太网帧前添加8字节的前导码
前导码:
前7个字节为前同步码 —— 作用:是接受方的时钟同步
最后一个字节为帧开始定界符 —— 表名其后面紧跟的为以太网MAC帧
以太网还规定了帧间间隔为96比特时间 ——> MAC帧不需要帧结束定界符
3. 透明传输
数据链路层对上层交付的传输数据没有限制,就好像数据链路层不存在一样
帧定界标志也是一个特殊的数值
如果上层交付的协议数据单元中,也包括这个数值
接收方还能正确接收这个帧么?答案明显是错误的,接收方会对帧是否结束产生误判,这种情况下就不能称为透明传输!
数据链路层的处理办法:
在发送帧之前,对帧的数据部分进行扫描,每发现一个帧定界符,就在前面插入一个转义字符
接收方识别到转义字符时,就可以识别之后的一个字符为数据,从而剔除转义字符后提取数据
转义字符ESC:特殊的控制字符,长度为一字节,十进制数值为27
同样!!转义字符也是特殊的数值,如果数据中也存在转义字符的数值呢???
处理方法同上,在发送帧之前,对帧的数据部分进行扫描,每发现一个帧定界符和转义字符,就在前面插入一个转义字符
对于面向比特的物理链路 ——> 比特填充法
——> 零比特填充法:在发送帧之前,对帧的数据部分进行扫描,每5个连续的1后插入一个0
——> 接收方接收时剔除0即可
4. 提高效率
为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大一些
最大传输单元MTU(Maximum Transfer Unit):考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧数据部分的长度上限
三、差错检测
1. 概念
- 比特差错:比特在传输过程中可能产生产错(0变为1,1变为0)
- 误码率BER(Bit Error Rate):在一段时间内,传输错误的比特占传输的比特总数的比率,BER = 错误的比特 / 总的比特
- 差错检测:使用差错检测码来检测数据在传输过程中是否产生了比特差错
- 差错检测码:
其中FCS字段就是帧检验序列,让接收方的数据链路层检查帧在传输过程中是否产生了差错
2. 奇偶校验
在待发送的数据后添加一位奇偶校验位,使整个数据(包括添加的校验位)中1的个数为奇数(奇校验)或偶数(偶校验)
缺点:如果传输过程中比特1的奇偶性没有发生变化,就检测不出是否发生差错
3. 循环冗余校验CRC
循环冗余校验CRC —— Cyclic Redundancy Check
1. 步骤
- 收发双方约定好一个生成多项式G(x)
- 发送方基于待发送的数据和生成多项式计算出差错检测吗(冗余码),将其添加到待传输数据的后面一起传输
- 接收方通过生成多项式来计算是否产生了误码
2. 生成多项式
常用的生成多项式:
生成多项式必须包含最低次项1
3. 例题
发送方:
接收方:
4. 总结
- 检错码只能检测帧在传输过程中是否出现差错,但不能定位错误,因此无法纠错;
- 可以使用冗余信息更多的纠错码进行前向纠错,但纠错码的开销比较大,在计算机网络中很少使用;
- 循环冗余校验CRC有很好的检错能力,虽然计算比较复杂,但易于硬件实现,因此被广泛适用于数据链路层;
- 计算机网络中通常使用检错重传的方式来纠正传输中的错误,或者丢掉检测到差错的帧,这取决于数据链路层向其上层提供的是否是可靠传输。
四、可靠传输
1. 基本概念:
对于检测到差错的数据:
不可靠传输:丢弃产生差错的帧
可靠传输:想办法实现发送方发送什么,接收方就收到什么
传输差错:
分组丢失
分组失序
分组重复
2. 可靠传输的实现机制
1. 停止等待协议 SW
SW —— Stop-and-Wait
(1)否定分组NAK
接收方接收到数据之后,会对数据进行差错检测:
- 如果检测没有产生误码,则返回确认分组ACK
- 如果检测到存在误码,则丢弃该分组,并返回否定分组NAK
发送方接收到否定分组NAK之后,会重新发送一份数据分组,直至接收到确认分组ACK,之后才会将数据从缓存中删除
(2)超时重传
如果发送方发送数据后,数据在传播过程中丢失,接收方接收不到数据,就不会给发送方返回ACK或者NAK,发送方就会一直阻塞等待;
超时重传:发送方中存在一个重传计时器,重传计时器中设置有一个重传时间,发送方发送数据后,如果在规定的重传时间内没有收到ACK,就会重传上一份数据。
如果接收方接收到数据之后,检测到存在误码:
可以不立即返回NAK,而是等待发送方的超时重传;
但对于误码率较高的点对点链路,为了使对方尽快重传,也可选择发送NAK
(3)分组重复
接收方正确接收数据后,返回ACK确认分组,ACK在传播过程中丢失,触发了发送方的超时重传机制,此时就会导致接收方接收到两份一样的数据,而接受方无法判断是否是重复分组
为避免分组重复问题,就需要给每个数据分组添加序号,对于停止等待协议,每次发送一个数据分组后就会停止等待,所以只需要保证每次发送的数据序号和上一次发送的数据序号不同即可,因此只需要一个比特位来编号即可
(4)确认迟到
接收方正确接受数据之后,返回ACK,但ACK在传输过程中因某些原因,未能及时到达发送方,从而触发了发送方的超时重传,重传0号数据分组,之后才接收到ACK,此时就会立即发送1号数据分组
接收方再次收到0号数据分组之后,发现是重复的数据分组,就会丢弃并返回一个ACK,于是发送方就收到了对0号分组的重复确认,发送方无法正确辨别ACK
此时需要才取的措施就是,对确认分组ACK也进行编号,只需要保证每次的ACK序号和上一次发送的ACK序号不同即可,因此也只需要一个比特位来编号即可
发送方在接收到重复的确认分组ACK0时,会直接忽略该确认分组,等待正确的确认分组
(5)SW协议的信道利用率
信道利用率U计算公式:
由此可见,我们可以得出
当往返时延RTT远大于数据的发送时延时(例如卫星链路),信道的利用率就会非常低
如果出现重传,信道的利用率还会进一步降低
于是为了解决停止等待协议信道利用率低的问题,就出现了回退N帧协议和选择重传协议
2. 回退N帧协议GBN
GBN —— Go-Back-N
对于停止等待协议,每次发送一个数据分组后就会停止等待,所以每发送一个数据分组就至少需要等待一个收发双方的往返时间,信道利用率很低
此时如果采用流水线传输:
回退N帧协议:在流水线传输的基础上,通过发送窗口来限制发送方可连续发送的数据分组个数
发送窗口尺寸:
(n为数据分组的比特位)
当发送窗口=1时,就是停止等待协议
(1)无差错情况
发送方的发送窗口序号落在0~4号分组,一次发送给接收方
接收方依次进行接收,每接收一个数据分组,接收窗口向后滑动一个位置,并返回一个对应的ACK分组
发送方每接收一个ACK分组,发送窗口就向后滑动一个位置
发送方就可将收到确认的数据分组就可以从缓存中删除了
(2)累积确认
接收方没必要对接收到的数据分组逐个发送确认分组,接收方在接收到一批数据分组后,可以对按序到达的最后一个数据分组发送确认
表示:序号n之前的所有数据分组都已经正确接收
此时,就算ACK1丢失了,发送方只接受到了ACK4,就会知道0~4号分组被正确接收
(3)有差错情况
5号数据分组检测到存在误码,丢弃该数据分组
前四个数据分组也不会被接受,也会被丢弃,此时,每丢弃一个数据分组,就会返回一个上一批接收到的最后一个数据分组对应的确认分组
发送方接收到重复的确认分组,就知道之前发送的数据分组存在差错,就可以立即重传这批数据,至于收到几个重复的就会立即重传和具体实现有关
如果不足以立即重传,就会在重传计时器超时时,对发送窗口内的数据全部重传
此时,可以看出,在第一次发送中,就算6,7,0,1号数据分组没有产生差错,也会受到牵连不会被接收,发送方依旧需要重传这些数据
所以,当网络质量不好时,回退N帧协议并不一定比停止等待协议高
(4)发送窗口尺寸超过上限
接收方正确按序接收后,给发送方返回累计确认ACK7
此时,如果ACK7在返回过程中丢失......发送方就会接收不到确认分组,于是在重传计时器超时后,就会重传之前的全部分组
重传的0~7到达接收方,接收方无法分辨新旧分组,会再次接收,于是就会发生分组重复的现象
(5)总结
回退N帧协议是在流水线传输的基础上,通过发送窗口来限制发送方可连续发送的数据分组个数,是一种连续的ARQ协议,在协议工作的过程中,发送窗口和接收窗口不断向后滑动,于是这类协议又被称作滑动窗口协议。
3. 选择重传协议SR
SR —— Selective-Request
为了进一步提高性能,可以设法只对产生误码到的数据分组进行重传。因此,接收方的接收窗口不应只为1,以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后一并提交上层。
此时!为了使发送方仅重传出现差错的分组,接收方不能再使用累积确认的方式,而需要对每个正确接受的数据分组进行逐一确认
发送窗口:
接收窗口:
=
(1)SR协议工作过程
假设:发送方对落在发送窗口的数据分组进行发送:
传播过程中,2号数据分组丢失,接收方接收到0、1号数据时,接收窗口向后滑动,并返回对应的ACK分组;接收3号数据时,窗口不向后移动,但返回对应ACK分组(3号不是按序到达的分组);并将0、1号数据交给上层
接收方接收到0、1号ACK分组,窗口向后滑动,发送方可以将0、1号数据从缓存中删除;此时4、5号数据分组出现在发送窗口中,发送方对其进行发送;接收到ACK3,发送窗口不向后滑动,因为不是按序到达的ACK分组,同时记录已经收到ACK3,确保不会超时重传3号数据分组;
发送方接收4、5号数据,并返回对应ACK分组,但是窗口不向后滑动;发送方接收到4、5号ACK分组,记录已经收到4、5号数据
等重传计时器超时,对2号数据分组进行重传
接收方正确接收2号数据分组,返回对应ACK,接收窗口向后滑动
发送方接收到ACK2,发送窗口也向后滑动
(2)SR协议的窗口尺寸
(3)窗口尺寸超出上限
假设:将和
都设置为5
发送方将发送窗口的数据进行发送
接收方正确接收数据,并返回对应ACK分组,接收窗口向后滑动
假设确认分组返回过程中,ACK0丢失
发送方接收到1-4号ACK分组,并记录已经接收,过一段时间,重传计时器超时,就会重传0号数据分组
接收方无法分辨新旧数据分组,就会接收这个0号数据分组,就会出现分组重复的差错
(4)总结
相关文章:

【计算机网络】 —— 数据链路层(壹)
文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…...

力扣-图论-4【算法学习day.54】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...

WiFi受限不再愁,电脑无网络快速修复指南
有时在试图连接WiFi时,会发现网络连接受限,或无法正常访问互联网。这种情况不仅影响了工作效率,还可能错过重要的信息。那么,究竟是什么原因导致了电脑WiFi连接受限呢?又该如何解决这一问题呢?小A今天就来教…...

《Java异常处理》
目录 一、异常的概念与分类 二、异常处理机制 三、异常的抛出 四、自定义异常 五、异常处理的最佳实践 在 Java 编程中,异常处理是保障程序健壮性和稳定性的关键环节。有效地处理异常能够避免程序因错误而崩溃,同时提供友好的错误提示信息ÿ…...

清风数学建模学习笔记——Topsis法
数模评价类(2)——Topsis法 概述 Topsis:Technique for Order Preference by Similarity to Ideal Solution 也称优劣解距离法,该方法的基本思想是,通过计算每个备选方案与理想解和负理想解之间的距离,从而评估每个…...

JVM 面试题
Java 虚拟机(JVM)是运行 Java 程序的引擎,它是 Java 语言 “一次编译,处处运行” 的核心技术。JVM 的主要任务是将 Java 字节码(Bytecode)解释成机器码并执行,负责内存管理、线程管理、垃圾回收…...

C语言蓝桥杯2023年省赛真题
文章目录 持续更新中...第一题题目描述输入格式输出格式样例输出提示 2 第二题题目描述 第三题题目描述输入格式输出格式样例输入样例输出 第四题题目描述输入格式输出格式样例输入样例输出提示 第四题题目描述输入格式输出格式样例输入样例输出提示 第五题题目描述输入格式输出…...

Flume基础概念
目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源(如日志文件、消息队列、网络数据、文件系统、数据库等)收集数据,并将…...

哈希处理海量数据
接下来我们将以问题的形式来介绍如何用hash处理海量数据。 1.问题1 (位图) 给定100亿个整数,设计算法找到只出现一次的。 1.1问题分析 100亿个整数,一个整数占用4byte,那么就需要约40G左右的空间来存储。显然常见的…...

Go语言基础教程1
Go语言基础教程 目录 变量声明与使用基本数据类型常量切片操作字符串处理指针格式化输出参数 一、变量声明 1.1 基本变量声明 // 标准声明 var variableName variableType// 示例 var age int var name string1.2 变量声明与初始化 // 显式类型声明 var age int 30// 类…...

【每日一道面试题】for与foreach的区别(2024/12/6)
目录 foreach的特点遍历时删除时 foreach 和 for循环遍历数组的差别关于 foreach 和 for 循环的效率问题 首先我们要对foreach有个基本的了解,才能对它们进行区别 foreach的特点 遍历时 用foreach循环去遍历一个数组, 用foreach循环去遍历一个集合&…...

解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾
在数字化时代,开源已成为推动技术创新和知识共享的核心力量,尤其在数据领域,开源技术的涌现不仅促进了行业的快速发展,也让更多的开发者和技术爱好者得以参与其中。随着物联网、工业互联网等技术的广泛应用,时序数据库…...

React第十一节 组件之间通讯之发布订阅模式(自定义发布订阅器)
组件之间通讯常用方案 1、通过props 2、通过context 3、通过发布订阅模式 4、通过Redux 后面会有专栏介绍 什么情况下使用发布订阅模式 a、当我们想要兄弟组件之间通讯,而共同的父组件中又用不到这些数据时候; b、当多个毫无相关的组件之间想要进行数据…...

Vue 2与Vue 3项目中的屏幕缩放适配:使用vue2-scale-box和vue3-scale-box
🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…...

Brain.js(九):LSTMTimeStep 实战教程 - 未来短期内的股市指数预测 - 实操要谨慎
系列的前一文RNNTimeStep 实战教程 - 股票价格预测 讲述了如何使用RNN时间序列预测实时的股价, 在这一节中,我们将深入学习如何利用 JavaScript 在浏览器环境下使用 LSTMTimeStep 进行股市指数的短期预测。通过本次实战教程,你将了解到如何用…...

云计算考试题
1、与SaaS不同的,这种“云”计算形式把开发环境或者运行平台也作为一种服务给用户提供。(B) A、软件即服务 B、基于平台服务 C、基于WEB服务 D、基于管理服务 2、云计算是对(D)技术的发展与运用 A、并行计算 B、网格计算 C、分布式计算 D、三个选项都是 3、Amazon.com公司…...

【设计模式】装饰器模式 在java中的应用
文章目录 1. 引言装饰器模式的定义与设计目的装饰器模式与其他设计模式的比较 2. 装饰器模式的结构组件接口(Component)具体组件(ConcreteComponent)装饰角色(Decorator)具体装饰类(ConcreteDec…...

【kafka】生产者的同步发送和异步发送
Kafka 的生产者端提供了同步发送和异步发送两种方式,适合不同的使用场景和性能需求。 以下是两种发送模式的详细讲解: 同步发送 概念 同步发送是指生产者在发送一条消息后,会阻塞当前线程,等待 Kafka 返回发送结果(…...

8. Debian系统中显示屏免密码自动登录
本文介绍如何在Debian系统上,启动后,自动免密登录,不卡在登录界面。 1. 修改lightDM配置文件 嵌入式Debian系统采用lightDM显示管理器,所以,一般需要修改它的配置文件/etc/lightdm/lightdm.conf,找到[Seat…...

SpringBoot 开源停车场管理收费系统
一、下载项目文件 下载源码项目文件口令: 【前端小程序地址】(3.0):伏脂火器白泽知洞座/~6f8d356LNL~:/【后台管理地址】(3.0):伏脂火器仇恨篆洞座/~0f4a356Ks2~:/【岗亭端地址】(3.0):动作火器智汇堂多好/~dd69356K6r~:/复制口令…...

QT的ui界面显示不全问题(适应高分辨率屏幕)
//自动适应高分辨率 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);一、问题 电脑分辨率高,默认情况下,打开QT的ui界面,显示不全按钮内容 二、解决方案 如果自己的电脑分辨率较高,可以尝试以下方案:自…...

双向链表的模拟实现 —— LinkedList
MyLinkedList类 public class MyLinkedList {// 定义节点类static class Node {int val;Node prev;Node next;public Node() {}public Node(int val) {this.val val;}}// 定义头节点private Node head;// 定义尾结点private Node tail;// 头插public void headInsert(int val…...

速盾:高防cdn预热指定url就只刷新这个吗?
高防CDN预热是指在网站上线或更新之前,将网站内容缓存到CDN节点服务器上,以提高用户访问网站的速度和稳定性。通常,预热可以通过指定URL来进行,而不是刷新整个网站。 预热指定URL的好处是可以选择性地进行缓存刷新,而…...

JDK21新特性
目录 虚拟线程(JEP 444): 顺序集合(JEP 431): 字符串模板(JEP 430): 模式匹配的增强(JEP 440、441以及443): 结构化并发和作用域值…...

json学习
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。它通常用于在服务器和客户端之间交换数据,特别是在 Web 应用中。 JSON 格式基于 JavaScript 对象表示法&#…...

005-mysql常用的名称
语言分类 DDL :数据定义语言 1、线上DDL语句在对表操作,是要锁元数据表的,此时所有的修改类的命令无法正常运行。 2、对大表在高峰期进行DDL操作,可以使用工具:pt-online-schema-change gh-ost 工具(8.0以…...

PostgreSQL和MySQL区别
PostgreSQL 和 MySQL 有以下一些主要区别: 一、功能特性 1. 数据类型支持 - PostgreSQL:支持丰富的数据类型,包括数组、JSON、JSONB、hstore(键值对存储)、范围类型等。例如,可以直接在数据库中存储和查…...

Android笔记(三十四):onCreate执行Handler.post在onResume后才能执行?
背景 偶然发现一个点,就是在onCreate执行Handler.post在onResume后才执行,以下是测试代码 多次运行的结果一致,为什么execute runnable不是在onCreate和onResume之间执行的呢,带着疑问撸了一遍Activity启动流程 关键源码分析 …...

动手学深度学习d2l包M4芯片 gpu加速
conda创建环境 CONDA_SUBDIRosx-arm64 conda create -n ml python3.9 -c conda-forge conda env config vars set CONDA_SUBDIRosx-arm64 conda activate mlpip安装包 pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/n…...

游戏引擎学习第35天
开场介绍 今天的任务是继续改进一个虚拟的瓦片地图系统,使其适合处理更大的世界。我们希望这个系统能管理大范围的游戏世界,其中包含按需存储的小区域。昨天,我们介绍了“内存区域”的概念,用于管理持久性存储。我们计划今天继续…...

Python 3 和 MongoDB 的集成使用
Python 3 和 MongoDB 的集成使用 MongoDB 是一个流行的 NoSQL 数据库,以其灵活的数据模型和强大的查询功能而闻名。Python 3 作为一种广泛使用的编程语言,与 MongoDB 的集成变得日益重要。本文将介绍如何在 Python 3 环境中集成和使用 MongoDBÿ…...

MperReduce学习笔记下
自定义InputFormat合并小文件 案例需求 无论hdfs还是mapreduce,对于小文件都有损效率,实践中,又难免面临处理大量小文件的场景,此时,就需要有相应解决方案。 案例分析 小文件的优化无非以下几种方式: …...

react + antd desgin 使用form功能时upload,radio,checkbox不能回显的问题
最近使用react开发 遇到form回显的问题 ,处理upload回显的问题,提示 react-refresh:160 Warning: [antd: Upload] value is not a valid prop, do you mean fileList? 查看文档后,在form.item 组件下有一个特殊属性 valuePropName 子节点的值…...

【NLP修炼系列之Bert】Bert多分类多标签文本分类实战(附源码下载)
引言 今天我们就要用Bert做项目实战,实现文本多分类任务和我在实际公司业务中的多标签文本分类任务。通过本篇文章,可以让想实际入手Bert的NLP学习者迅速上手Bert实战项目。 1 项目介绍 本文是Bert文本多分类和多标签文本分类实战,其中多分…...

OpenSSL 自建CA 以及颁发证书(网站部署https双向认证)
前言 1、前面写过一篇 阿里云免费ssl证书申请与部署,大家可以去看下 2、建议大家看完本篇博客,可以再去了解 openssel 命令 openssl系列,写的很详细 一、openssl 安装说明 1、这部分就不再说了,我使用centos7.9,是自…...

YOLOv11改进,YOLOv11添加U-Netv2分割网络中SDI信息融合模块,助力小目标检测
摘要 理论介绍 SDI模块的架构: 平滑卷积(SmoothConv):用于平滑特征图,帮助减少噪声并使得特征更加稳定。Hadamard积:用于在特征图中进行逐元素相乘(点乘),以加强语义信息和细节信息的融合。通道注意力(ChannelAttention):利用通道注意力机制来自动关注重要的特征通…...

flex布局 flex-end为什么overflow无法滚动及解决方法
flex-end为什么overflow无法滚动及解决方法 在使用Flexbox布局时,我们经常使用justify-content和align-items属性来定位子元素。其中,align-items属性用于控制子元素在交叉轴上的位置,例如顶部对齐、底部对齐或居中对齐等。当我们将align-it…...

从ground_truth mask中获取图像的轮廓图
引言 在图像取证领域,主要分为检测和定位两个方面。检测就是判断一张图片是否为伪造图,定位与传统意义上的语义分割任务相近,就是定位伪造像素的区域。如果单纯使用语义分割网络训练,只能获得次优解,而像多任务学习那样…...

Java项目实战II基于微信小程序的旅游社交平台(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着移动互联网的迅猛发展,旅游已经成为人…...

开源即时通讯与闭源即时通讯该怎么选择,其优势是什么?
在选择即时通讯软件时,应根据企业的经营领域来选择适合自身需求的开源或闭源方案。不同领域对开源和闭源即时通讯的理念存在差异,因此总结两个点简要分析这两种选择,有助于做出更明智的决策。 一、开源与闭源的根本区别在于软件的源代码是否…...

【计算机网络】实验15:VLAN间通信的实现方法“单臂路由”
实验15 VLAN间通信的实现方法“单臂路由” 一、实验目的 加深对VLAN间通信的实现方法“单臂路由”的理解。 二、实验环境 Cisco Packet Tracer模拟器 三、实验过程 1.构建网络拓扑,并配置好主机的IP地址、子网掩码、默认网关,如图1,2所…...

数据库学习记录04
DDL【数据定义语言】 MySQL命名规则 数据库名不得超过30个字符,变量名限制为29个必须只能包含A-Z,a-z,0-9,_共63个字符不能在对象名的字符间留空格必须不能和用户定义的其他对象重名必须保证你的字段没有和保留字、数据库系统或常用方法冲突保持字段名和类型的一致…...

PDF文件打开之后不能打印,怎么解决?
正常的PDF文件是可以打印的,如果PDF文件打开之后发现文件不能打印,我们需要先查看一下自己的打印机是否能够正常运行,如果打印机是正常的,我们再查看一下,文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…...

A* 算法 是什么?
A*(A-star)算法是一种启发式搜索算法,用于在图或网格中找到从起点到目标的最短路径。它被广泛用于路径规划问题,例如导航、游戏开发中的角色移动,以及机器人路径规划。 1. A 算法的基本概念* A* 算法结合了两种经典搜…...

ORM框架详解:为什么不直接写SQL?
想象一下,你正在开发一个小型的在线书店应用。你需要存储书籍信息、用户数据和订单记录。作为一个初学者,你可能会想:“我已经学会了SQL,为什么还要使用ORM框架呢?直接写SQL语句不是更简单、更直接吗?” 如…...

厘米级高精度RTK手持终端北斗卫星定位手持pda
RTK是一种测量技术叫“载波相位差分技术”,是实时处理两个测量站载波相位观测量的差分方法,将基准站采集的载波相位发给用户接收机,进行求差解算坐标,以此得到高精度坐标。随着技术的不断革新,GPS接收机也由原来只能用…...

Kafka-Connect源码分析
一、上下文 《Kafka-Connect自带示例》中我们尝试了零配置启动producer和consumer去生产和消费数据,那么它内部是如何实现的呢?下面我们从源码来揭开它神秘的面纱。 二、入口类有哪些? 从启动脚本(connect-standalone.sh&#…...

【STM32 Modbus编程】-作为主设备读取保持/输入寄存器
作为主设备读取保持/输入寄存器 文章目录 作为主设备读取保持/输入寄存器1、硬件准备与连接1.1 RS485模块介绍1.2 硬件配置与接线1.3 软件准备2、读保持寄存器2.1 主设备发送请求2.2 从设备响应请求2.3 主机接收数据3、读输入寄存器4、结果4.1 保持寄存器4.2 输入寄存器在前面的…...

Kubesphere上搭建redis集群
Kubesphere上搭建redis集群 版本:redis:6.2.3 1)挂载配置 redis.conf: cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-require-full-coverage no cluster-migration-barrier 1 appendonly yes …...

learn-(Uni-app)跨平台应用的框架
使用 Vue.js 开发所有前端应用的框架,开发者编写一份代码,可发布到iOS、Android、Web(包括微信小程序、百度小程序、支付宝小程序、字节跳动小程序、H5、App等)等多个平台。 跨平台:Uni-app 支持编译到iOS、Android、W…...

两架飞机在美国相撞
据美国媒体报道,美国亚利桑那州斯科茨代尔机场10日发生两架飞机在跑道上相撞事故,造成至少1人死亡。...

汪小菲等抖音账号被封,吃人血馒头式营销就该无路可走
2月8日11点07分,“抖音黑板报”发布声明,表示部分账号借机炒作,发布谣言,违背公序良俗和道德底线,不尊重逝者及家属,也伤害了公众感情。针对此类行为,抖音方面“坚决予以打击”,除无限期封禁发布不实信息的“我是夏小健&…...

毛主席独创的、古今中外绝无仅有的社会主义革命“五套组合拳”
序言:史无前例的探索中央文献研究室原副主任李捷老师讲:“在以下几个方面,毛泽东的探索都是前无古人的。”其中就包括“成功解决了一个经济文化落后的东方农业国如何通过社会主义工业化建设和社会主义改造同时并举而逐步确立社会主义基本制度的问…...

刘振起:阅读王春晓文章的三点认识
油画:遵义会议(邱瑞敏 章德明 等作)阅读1月28日昆仑策发表的王春晓的《1983年〈遵义会议若干情况的调查报告〉失实问题真相》一文,对他严谨的治学态度深感敬佩,同时也强烈的获得三点认识。一、《遵义会议若干情况的调查报告》是历史虚无主义的产物历史虚无主义的表现形式:…...

女权大V打拳打到《哪吒之魔童闹海 》?我看你们是神经错乱了!
最近打开手机,各种乱七八糟的文章和信息扑面而来。原来是《哪吒2之魔童闹海》火了,结果一群所谓的“女权分子”开始大放厥词,又是喊着“父权压迫”,又是指责“性别歧视”。更可笑的是,一些微博大V还跳出来为电影中…...

欧盟外长:美欧要是打起贸易战,中国将在一旁看笑话
据路透社报道,2月3日,欧盟领导人在布鲁塞尔举行非正式会议前,欧盟外交与安全政策高级代表卡拉斯警告称,如果美国和欧洲打起贸易战,“那么中国将在一旁看笑话”。她认为:“我们(美、欧)之间联系紧密。我们需要美国,美国也需要我们。&rd…...