【b站-湖科大教书匠】3 数据链路层-计算机网络微课堂

课程地址:【计算机网络微课堂(有字幕无背景音乐版)】 https://www.bilibili.com/video/BV1c4411d7jb/?share_source=copy_web&vd_source=b1cb921b73fe3808550eaf2224d1c155

3 数据链路层

3.1 数据链路层概述

3.1.1 数据链路层在网络体系结构中的地位

复习一下主机收发数据过程。

主机H1将待发送的数据逐层封装后,

通过物理层将构成数据报的比特转换为电信号,发送到传输媒体。

数据包进入路由器后,由下往上逐层解封到网络层

路由器根据数据报的目的网络地址和自身转发表,确定数据包的转发端口

然后从网络层向下逐层封装数据包,并通过物理层将数据包发送到传输媒体。

数据包最终到达主机H2时,继续由下往上逐层解封,最终解封出主机H1所发送的数据。

3.1.2 链路

仅有链路还不够,还需要一些通信协议来控制这些数据的传输。

3.1.3 帧

3.1.4 数据链路层的3个重要问题

3.1.5 封装成帧

数据链路层给网络层交付的协议数据单元添加数据链路层协议首部,简称为帧头,还有帧尾,这个操作成为封装成帧

添加帧头和帧尾的目的,是为了在链路上以帧为单元传送数据,也就是实现数据链路层本身的功能

例子

3.1.6 差错检测

发送方将封装好的帧经物理层发送给传输媒体。

帧在传输过程中遭遇干扰后可能会出现误码,也就是比特0变成比特1,反之亦然。

思考:接收方主机如何判断帧在传输过程中是否出现了误码呢?

可以通过检错码来发现。

发送方在发送帧之前,基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾。例如,以太网V2的MAC帧的帧尾,就是4字节的帧检验序列FCS字段。要写入该字段的内容——检错码。接收方主机收到帧后,通过检错码和检错算法,可以判断出帧在传输过程中是否出现了误码。

3.1.7 可靠传输

接收方主机收到有误码的帧后,不会接收该帧,将其丢弃。如果数据链路层向上层提供的是不可靠服务,那么丢弃就丢弃了,不会有其他措施。

如果数据链路层提供的是可靠服务,那么需要其他措施确保接收方主机还可以重新收到被丢弃的帧的正确副本。

即:尽管误码是不能完全避免的,但若实现发送方发送什么,接收方就能收到什么,就称为可靠传输。

在介绍以上3个问题时,使用的是点对点信道的数据链路层例子。

对于使用广播信道的数据链路层,除了三个问题外,还有其他问题。

3.1.8 使用广播信道的额数据链路层

将帧的目的地址添加在帧中一起传输。

3.1.9 交换式局域网

使用点对点链路和链路层交换机的交换式局域网,在有线(局域网)领域完全取代了共享式局域网。

网络中的交换机是如何转发帧的呢?

3,1.10 无线局域网

由于无线信道的广播天性,无线局域网仍使用共享信道技术,工作原理是怎样的呢?

3.2 封装成帧

3.2.1 封装成帧

  • 封装成帧:数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧的操作。
    • 帧头和真伪中包含有重要的控制信息。
    • 帧头和帧尾的作用之一就是帧定界

发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,要通过物理层,将构成帧的各比特转换成电信号发送到传输媒体。

那么,接收方的数据链路层,如何从物理层交付的比特流中,提取出一个个帧呢?

帧头和帧尾的作用之一就是帧定界。

并不是每一种数据链路层协议的帧都包含有帧定界标志。

比如,以太网V2的MAC帧的帧头和帧尾中没有帧定界标志,

那么,接收方是如何从物理层交付的比特流中提取出一个个的以太网帧呢?

物理层给封装好的帧添加前导码

另外,以太网还规定了帧间间隔时间。

3.2.2 透明传输

透明传输是指数据链路层向上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

不能

当接收方再次接收到帧定界标志时会误以为帧结束了。

若数据链路层不采取其他措施,避免接收方对帧是否结束的误判,就不能成为透明传输。

即数据链路层对上层交付的协议数据单元有限制,其内容不能包含帧定界符。

很显然,这样的数据链路层没有使用价值。

实际上,各种数据链路层协议一定会解决这个问题。例如在发送帧之前,对帧的数据部分进行扫描,每出现一个帧定界符,就在其前面插入一个转义字符。接收方数据链路层在物理层交付的比特流中提取帧,遇到第一个帧定界符时认为这是帧的开始。遇到转义字符时后面1字节的内容虽与帧定界符相同,但它是数据而不是定界符。剔除转义字符后将其后面的内容作为数据继续提取。当再次提取到帧定界符时表明这是帧的结束。

思考:既包含帧定界符,又包含转义字符,如何处理?

在帧定界符和转义字符前插入转义字符。

说明:转义字符是一个特殊的控制字符,长度为1个字节,十进制值为27。

以上介绍的是面向字节的物理链路,使用字节填充(又称字符填充)的方法实现透明传输。

对于面向比特的物理链路,应该使用比特填充的方法来实现透明传输。

举例

问题:数据中出现了帧定界符。

方法:发送前,使用零比特填充法,对数据部分进行扫描,每5个连续的比特1后面插入1个比特0.这样就确保了帧定界符在整个帧中的唯一性。也就可以实现透明传输。

接收方的数据链路层,从物理层交付的比特流中提取帧时,将帧的数据部分的每5个连续的比特1后面的那个比特0剔除即可。

零比特传输习题

A

 3.2.3 补充

因为仅从数据链路层来看,帧的数据部分是真正要传输的数据,帧头和帧尾都是为了实现数据链路层功能而额外添加的。

3.3 差错检测

3.3.1 比特差错

3.3.2 误码率

3.3.3 简单检错方法-奇偶校验

采用奇校验,当比特1的数量的奇性改变,可以检查出错误。

但如果传输过程中发生了两位误码,会误认为传输过程中没有发生误码。

即,采用奇校验,若比特1的数量的奇性不改变,则无法检查出错误。

假设双方规定采用偶校验。

可以发现规律。

总结规律

奇偶校验的漏检率较高,因此计算机网络的数据链路层一般不会采用这种检测方法。

3.3.4 循环冗余校验 CRC

CRC是一种具有很强检错能力的检错方法,漏检率极低。

举例说明

练习

解答

步骤1 构造被除数

步骤2 构造除数

步骤3 做除法

步骤4 检查余数

练习2

解答

注意

3.4 可靠传输

3.4.1 可靠传输的基本概念

接收方的数据链路层通过帧尾中的帧检验序列FCS字段的值,即检错码,可以检测出帧中出现了比特差错。

那么接下来该如何处理呢?

这取决于数据链路层向上层提供的服务类型。

可靠传输服务

比特差错只是传输差错的一种。

分组丢失。

分组失序

分组重复        

可靠传输服务不只局限于数据链路层。

3.4.2 可靠传输的实现机制——停止-等待协议

本节和后面两节介绍可靠传输的三种实现机制。

停止-等待协议

发送方发送的数据分组丢失的情况。

引出超时重传。

接收方发送的确认或否认分组丢失的情况。

引出数据分组编号。

这样,根据数据分组的序号,接收方就可以判断该数据分组是否是重复的。接收方丢弃重复的数据分组,并给发送方发送针对该数据分组的确认分组,以免发送方对该数据分组的再次超时重传。

思考:既然数据分组需要编号,那么确认分组是否也需要编号呢?

 也是需要的,用于解决确认分组迟到的问题。

说明:对于数据链路层点对点信道而言,往返时间比较固定,不会出现确认迟到的情况。因此如果只在数据链路层实现停止-等待协议,可以不用给确认分组编号。

注意事项

停止等待协议的信道利用率

假设收发双方之间是一个直通的信道。发送方发送完一个数据分组后就停止发送,并等待接收方对该数据分组的确认。当收到确认分组后,可以发送下一个数据分组,如此反复进行。

TD是发送方发送数据所耗费的发送时延,RTT是收发双方之间的往返时间RTT,TA是接收方发送确认分组所耗费的发送时延TA。图中忽略了接收方对数据分组的处理时延(一般不方便计算,做题时常忽略的那个)以及发送方对确认分组的处理时延。

发送方从发送一个数据分组开始到可以发送下一个数据分组为止所经历的总时间——TD+RTT+TA。

仅在TD内用于传送有用数据,也就是数据分组。

因此信道利用率如图所示。

TA一般远小于TD,可以忽略。

当RTT远大于TD时,信道利用率非常低。

举例说明

结论

练习题

D

注意:像停止等待协议,通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议ARQ,意思是重传的请求是自动进行的,不需要接收方显式请求发送方重传某个出错的分组。

3.4.3 可靠传输的实现机制——回退N帧协议

停止等待协议,发送方每发送一个数据分组,就停止发送并等待接收方的确认分组,当收到接收方发送的确认分组后,才会发送下一个数据分组,如此反复进行。从图中可以看出,发送方发送一个数据分组,就至少等待一个收发双方的往返时间。当往返时间较大时,例如卫星链路,停止等待协议的信道利用率很低,若出现超时重传,信道利用率会更低。

如果发送方在收到接收方的确认分组之前,可以连续发送多个数据分组,则可以大大提高信道利用率。这是一种流水线式传输。就本例而言,同等时间下相同时间内,使用停止等待协议的发送方只能发送一个数据分组,而采用流水线传输的发送方,可以发送5个数据分组。

本节课介绍回退N帧协议,该协议在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数。

假设采用3个比特给分组编号,因此序号范围是0-7。

如图所示,是收发双方各自的分组序号。当序号到7时,下一个序号从0开始。

发送方维持一个发送窗口,序号落在发送窗口内的数据分组可被连续发送,而不必等收到接收方的相应确认分组后再发送。

发送窗口的尺寸记为WT。对于本例,其取值范围是1<WT <= 2^3 -1,其中的3是构成分组序号的比特数量。本例取WT的值为5。(如果WT取值为1,则为停止-等待协议。如果WT取值超过取值范围上限,则会造成严重错误。)

如图所示,序号落在发送窗口内的5个数据分组可被连续发送,而落在发送窗口外的分组不允许发送。

接受窗口的尺寸记为WR。对于回退N帧协议,WR取值只能为1.这一点与停止-等待协议是相同的。

如图所示,序号落在接收窗口内的数组分组允许接收,反之不允许接收。

首先来看最简单的情况——无差错情况

1 无差错情况

发送方将序号落在发送窗口的0-4号数据分组,依次连续发送出去。经过互联网的传输,正确到达了接收方,即没有出现乱序和误码。

接收方按序接收,每接收一个,接收窗口就按序向前滑动一个位置,并给发送方发送所接收分组的确认分组。

p26   3:50

3.4.4 可靠传输的实现机制——选择重传协议

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

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

相关文章

2024华为数通HCIP-datacom最新题库(变题更新⑤)

请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了&#xff0c;如果你准备去考试&#xff0c;还是用的之前的题库&#xff0c;切记暂缓。 1、…

【项目管理体系】代码评审规范

1完整性检查 2一致性检查 3正确性检查 4可预测性检查 5健壮性检查 6结构性检查 7可追溯性检查 8可理解性检查 9可验证性检查 软件开发全套资料获取&#xff1a;&#xff08;本文末个人名片直接获取&#xff09; 软件产品&#xff0c;特别是行业解决方案软件产品不同于一般的商品…

JavaScript中常用数据类型做布尔值(Boolean)转换

一、前言 二、示例 1、String转Boolean 2、Number转Boolean 3、NaN、Null、undefined 转Boolean 4、Object转Boolean 5、Array转Boolean 6、Symbol转Boolean 三、总结 四、思考 一、前言 JavaScript中&#xff0c;经常需要对一些值进行boolean判断&#xff0c;根据判…

DDoS攻击的最新防御策略:从检测到缓解的全方位方案

在数字化浪潮的推动下&#xff0c;互联网已成为现代社会的血脉。然而&#xff0c;随着网络空间的不断膨胀&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击如同潜伏在暗处的猛兽&#xff0c;随时准备发动致命一击&#xff0c;威胁着网络的稳定与安全。面对这一严峻…

前端-echarts tooltip展示多项自定义数据

效果如图&#xff0c;鼠标滑动到某一个柱子的时候&#xff0c;出现这一项数据的多个自定义数据&#xff0c;外加自己的模板样式渲染。 希望能展示每一列中的多个自定义数据 代码部分 主要是在data中&#xff0c;value就是实际展示的主数据&#xff0c;其他字段名为自定义的数…

Linux常见操作问题

1、登录刚创建的用户&#xff0c;无法操作。 注&#xff1a;etc/passwd文件是Linux操作系统中存储用户账户信息的文本文件&#xff0c;包含了系统中所有用户的基本信息&#xff0c;比如用户名、用户ID、用户组ID、用户家目录路径。 注&#xff1a;etc: 这个目录存放所有的系统…

Java工具包——Lombok

目录 1. maven仓库手动导入依赖注解 1.1 maven仓库引入依赖 1.2 在类上使用Data注解 1.3 在属性上使用Getter与Setter注解 2. EditStarters插件注解 2.1 安装EditStarters插件 2.2 在pom.xml中进行操作 2.3 在java对象类中使用注解 3. lombok工具使用结果查看 3.1…

腾讯云CVM,CentOS8系统下部署Java-Web项目步骤详解

在CVM中部署项目首先要配置好JDK,Tomcat,Mysql(这里以Tomcat和Mysql为例)。部署JDK和Tomcat的步骤可以参考 CentOS7系统下部署tomcat,浏览器访问localhost:8080/_不积跬步&#xff0c;无以至千里&#xff1b;不积小流&#xff0c;无以成江河。-CSDN博客 我这里从Mysql的安装和设…

HDOJ5616 Jam‘s balance

目录 HDOJ5616 Jams balance题目描述背景输入输出 题解解法一解法二优化 打赏 HDOJ5616 Jam’s balance 题目描述 背景 有 N N N个已知质量的砝码&#xff0c;分别询问给出的 M M M个质量能否被称出 输入 第一行输入一个变量 T T T&#xff0c;表示有 T T T组数据&#xf…

数据预处理功能教程,上传文件生成知识库 | Chatopera

如何快速的生成高质量的知识库&#xff1f; 数据预处理功能教程 | Chatopera 云服务低代码定制聊天机器人 关于 Chatopera Chatopera 云服务重新定义聊天机器人&#xff0c;https://bot.chatopera.com 定制智能客服、知识库、AI 助手、智慧家居等智能应用&#xff0c;释放创新…

【java算法专场】双指针(上)

目录 前言 基本原理 对撞指针 快慢指针 移动零 算法思路 算法步骤 代码实现 算法分析 复写零 算法思路 算法步骤 代码实现 快乐数 算法思路 算法步骤 代码实现 盛最多水的容器 ​编辑算法思路 代码实现 前言 双指针是一种在数组或链表等线性数据结构中高效…

Axure 教程 | 雅虎新闻焦点

主要内容 在雅虎首页&#xff0c;新闻焦点大图和焦点小图同步切换轮播&#xff0c;本课程我们来学习如何实现这个效果。 交互说明 1.页面载入后&#xff0c;切换当前屏幕显示的5张焦点图&#xff0c;小图标处以横线提示当前焦点图。 2.鼠标移入焦点大图&#xff0c;新闻标题显示…

马斯克的SpaceX星舰有多牛?我们离殖民火星还有多远?

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 埃隆马斯克是一位知名的企业家和工程师&#xff0c;他掌握着多家公司&#xff0c;涉及多个领域&#xff0c;包括电动汽车、太空探索、太阳能、脑…

Charles 证书迁移/复制,实现手机安装一次证书可以连接多个设备的 charles 效果

如果你希望在一个手机上安装一次证书&#xff0c;但是使用这个手机可能在不同的时候去连接你自己安装了Charles的不同设备。比如你在公司有有一个电脑&#xff0c;你在家里也有一个电脑&#xff0c;甚至还有一个笔记本等。 如果想实现只给手机安装一次证书&#xff0c;就可以都…

告别数据线!轻松实现iOS和安卓设备间的文件共享

用 AirDroid 的附近传输功能&#xff0c;完全免费&#xff0c;几十个G的文件也可以相互传输。不限制iPhone和iPad数量&#xff0c;多个设备同时登录也不会强迫下线。 当你要在苹果手机和安卓手机之间传输文件&#xff0c;请将AirDroid安装到两台手机上&#xff0c;然后登录同一…

[AI开发配环境]VSCode远程连接ssh服务器

文章目录 总览&#xff1a;ssh连接远程服务器连接免密登录&#xff1a;Docker&#xff1a;ssh连接远程宿主机后&#xff0c;进一步连接并使用其中的docker容器reload window 配置解释器&#xff1a;CtrlP&#xff0c;在上面输入“>python”, 然后选selecet interpreter运行命…

Ubuntu磁盘分区和挂载 虚拟机扩容 逻辑卷的创建和扩容保姆及教程

目录 1、VMware虚拟机Ubuntu20.04系统磁盘扩容 2、Linux的磁盘分区和挂载 3、创建逻辑卷和逻辑卷的扩容 1、VMware虚拟机Ubuntu20.04系统磁盘扩容 通过下图可以看出我们的根磁盘一共有20G的大小&#xff0c;现在我们把它扩容为30G 注&#xff1a;如果你的虚拟机有快照是无…

CV每日论文--2024.6.26

1、StableNormal: Reducing Diffusion Variance for Stable and Sharp Normal 中文标题&#xff1a;StableNormal&#xff1a;减少扩散方差以实现稳定且锐利的法线 简介&#xff1a;本文介绍了一种创新解决方案&#xff0c;旨在优化单目彩色输入&#xff08;包括静态图片与动态…

最新自助下单彩虹云商城系统源码,含小储云商城模板免授权

最新彩虹商城源码,含小储云商城模板免授权&#xff0c;试用了一下还行&#xff0c;具体的大家可以看看 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89405387 更多资源下载&#xff1a;关注我。

通过混合栅极技术改善p-GaN功率HEMTs的ESD性能

来源&#xff1a;Improved Gate ESD Behaviors of p-GaN PowerHEMTs by Hybrid Gate Technology&#xff08;ISPSD 24年&#xff09; 摘要 本工作中&#xff0c;首次证明了混合栅极技术在不增加额外面积和寄生效应的前提下&#xff0c;能有效提升p-GaN HEMTs的栅极静电放电(E…