第3章 数据链路层(1)

3.1数据链路层的功能

加强物理层传输原始比特流的功能,将可能出差错的物理连接改成逻辑上无差错的数据链路[节点的逻辑通道]

3.1.1 为网络提供服务

  • (1).无确认的无连接服务
    适合通信质量好的有线传输链路(实时通信或误码率较低的通信信道)【例如以太网】
  • (2).有确认的无连接服务
    接收到数据需要发送确认。适用于误码率较高的通信信道【例如无线通信】
  • (3)有确认的面向连接的服务
    服务可靠性高,适用于可靠性实时性较高的场所。

3.1.2 链路管理

数据链路层的连接的建立,维持,释放过程称为链路管理。主要用于面向连接的服务。

3.1.3 帧定界,帧同步与透明传输

数据链路层将网络层的分组封装成帧。将数据的首部和尾部添加信息构成帧。
同步是指的接收方能从接收到的二进制比特流中区分出帧的起始与终止
透明传输是指的任意比特组合的数据都能在链路上传输。

3.1.4流量控制

目的是控制发送方的发送速率。
许多高层也有流量控制功能,只是控制的对象不同。

层次流量控制对象
数据链路层节点与节点之间
网络层整个网络
传输层源端到目的端

3.1.5差错控制

接收方通过某些算法检测数据是否出差错,如果出现差错就丢弃。


3.2组帧

组帧的目的是在出错时仅仅重发出错部分。【解决帧定界,帧同步,透明传输等问题】

3.2.1 字符计数法(可靠性差,一个出错全部出错)

在帧头前面用一个计数字段表明帧内字符数
在这里插入图片描述

3.2.2 字符填充的首位定界符【同步】(适用文本文件)

使用开始字符"SOH"和结束字符"EOT"表示首位,若数据中也有"SOH"或"EOT"就使用转义字符"ESC"插入在前面。出现转义字符就再插入一个转义字符。
在这里插入图片描述

3.2.3 零比特填充的首尾标志法(用硬件实现容易,性能高于字符填充法)

在传输比特前,若存在连续的5个1,就在后面加一个0
在这里插入图片描述

3.2.4违规编码法

曼彻斯特编码差分曼彻斯特斯特编码中所有码元都由两种电平组成。
因此高-高电平低-低电平可以用于起始和终止的定界符。

字符计数法的脆弱性和字符填充法实现的复杂性和不兼容性。目前常用的是零比特填充法和违规编码法。


3.3差错控制

对接收到的数据进行检错和纠错

3.3.1 检错编码

  • 1.奇偶校验码(只能检测出奇数个错误)
    奇校验码:填充0个或多个1使得整个数据有奇数个1
    偶校验码:填充0个或多个1使得整个数据有奇数个0

  • 2.循环冗余码

(1)准备数据,切割网络层分组为等长。
(2)每组都加上冗余码构成帧再发送

收发双发约定好生成多项式,通过做模2除法找到一个冗余码来校验。

生成多项式有两种形式:
可以写成二进制或者多项式形式:1110 001可以写成 x 6 + x 5 + x 4 + x + 1 x^6+x^5+x^4+x+1 x6+x5+x4+x+1
通过计算找到二进制长度减1位冗余码。其中减法是进行异或运算
在这里插入图片描述
通过循环冗余码,数据链路层做到了对帧的无差错接收。接受的的帧都认为传输过程无差错。接收端丢弃的也接收到了,但是因为差错而被丢弃。不是可靠传输。
可靠传输数据链路层发送什么就接收什么。

3.3.2 海明码[纠错编码]

设有效数据长度为n,k为校验位长度
2 k > = n + k + 1 2^k>=n+k+1 2k>=n+k+1

校验位放在 2 i 2^i 2i的位置,其中i∈[0,k-1]。
用的还是偶校验码

编码过程:
在这里插入图片描述


解码过程:
在这里插入图片描述
若在解码时校验位全是0,说明无差错。
若不为0,差错就在以纠正位组成的二进制对应的位置。(图中二进制101就是十进制5,第5位出错了)

检错纠错
位数d位d位
需要d+1位2*d+1位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527673.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重读 Java 设计模式: 解析单例模式,保证唯一实例的创建与应用

本周工作太忙了,变成了加班狗,下班回来也没时间写,只能利用周末时间写了😭。 好了,言归正传,本次我们先来介绍下设计模式中创建型模式-单例模式。 一、引言 单例模式是设计模式中最简单但又最常用的一种模…

springboot260火锅店管理系统

火锅店管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装火锅店管理系统软件来发挥其高效…

Cloud-Sleuth分布式链路追踪(服务跟踪)

简介 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败 GitHub - spring-cloud/spring-cloud-sl…

【数据集】waymo motion dataset介绍与数据解析可视化

文章目录 前言1. 数据下载2. Motion数据集3. 数据描述4. 数据特征scenario.proto5. 地图特征map.proto6. 数据解析6.1 数据解析过程6.1 数据解析过程报错7. 数据可视化前言 waymo open dataset数据集由两个数据集组成: Perception数据集 + Motion数据集 Perception数据集主要用…

后端项目访问不了

问题: 后端启动不了,无法访问网站 原因: 1.防火墙没有关 2.有缓存 3、项目没有启动 4、docker没有启动 解决: 先查看进程:docker ps,必须有三个 详细查看:docker ps -a exited代表没有开启…

基于深度视觉实现机械臂对目标的识别与定位

机械臂手眼标定 根据相机和机械臂的安装方式不同,手眼标定分为眼在手上和眼在手外两种方式,双臂机器人的相机和机械臂基座的相对位置固定,所以应该采用眼在手外的手眼标定方式。 后续的视觉引导机械臂抓取测试实验基于本实验实现&#xf…

HTTP有什么缺陷,HTTPS是怎么解决的

缺陷 HTTP是明文的,谁都能看得懂,HTTPS是加了TLS/SSL加密的,这样就不容易被拦截和攻击了。 SSL是TLS的前身,他俩都是加密安全协议。前者大部分浏览器都不支持了,后者现在用的多。 对称加密 通信双方握有加密解密算法…

活体检测(点头,摇头,张嘴等动态识别)

活体检测(点头,摇头,张嘴等动态识别) 某本书里有一句话,等我去读、去拍案。 田间的野老,等我去了解、去惊识。 山风与发,冷泉与舌, 流云与眼,松涛与耳, 他们等…

吴恩达机器学习笔记十六 如何debug一个学习算法 模型评估 模型选择和训练 交叉验证测试集

如果算法预测出的结果不太好,可以考虑以下几个方面: 获得更多的训练样本 采用更少的特征 尝试获取更多的特征 增加多项式特征 增大或减小 λ 模型评估(evaluate model) 例如房价预测,用五个数据训练出的模型能很好的拟合这几个数据&am…

java正则表达式概述及案例

前言: 学习了正则表达式,记录下使用心得。打好基础,daydayup! 正则表达式 什么是正则表达式 正则表达式由一些特定的字符组成,代表一个规则。 正则表达式的功能 1:用来校验数据格式是否合规 2:在一段文本…

QT画图功能

QT画图功能 每个QWidget都自带的功能,继承了QPainteDevice都可以使用QPainter来进行绘图。 画图需要调用paintEvent绘制事件,paintEvent事件时QWidget类自带的事件。 重写paintEvent事件。(重写事件:如果父类有某个方法&#xff…

C++类和对象(下篇)

目录 一.再谈构造函数 二.static成员 三.友元 四.内部类 五. 再次理解类和对象 一.再谈构造函数 1.构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month…