计算机网络之数据链路层

news2024/7/6 19:15:27

[复习提示]

王道:本章是历年考试中考查的重点。要求在了解数据链路层基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最小帧长的概念、二进制指数退避算法。此外,中继器、网卡、集线器、网桥和局域网交换机的原理及区别也要重点掌握。

一、数据链路层的功能

  • 为网络层提供服务
  • 链路管理
  • 帧定界、帧同步与透明传输
  • 流量控制(对发送方控制)
  • 差错控制

注:

  • 为终端结点隐蔽物理传输的细节是物理层的功能,数据链路层不必考虑如何实现无差别的比特传输;

为网络层提供服务

  1. 无确认的无连接服务。
  2. 有确认的无连接服务。
  3. 有确认的面向连接服务。 

无确认的无连接服务是指源机器向目标机器发送独立的帧,目标机器并不对这些帧进行确认。 事先并不建立逻辑连接,事后也不用释放逻辑连接。当错误率很低时,这一类服务非常合适,这时恢复任务可以留给上面的各层来完成。这类服务对于实时通信也是非常合适的,因为实时通信中数据的迟到比数据损坏更不好。若由于线路上有噪声而造成某一帧丢失,则数据链路层并不会检测这样的丢帧现象,也不会回复。

  • 防止在传输过程中帧丢失,在可靠的数据链路层协议中,发送方对发送的每个数据帧设计一个定时器,当计时器到期而该帧的确认帧仍未到达时,发送方将重发该帧。
  • 为保证接收方不会接收到重复帧,需要对每个发送的帧进行编号;海明码和循环冗余校验码都用于差错控制。

二、组帧

组帧的目的:是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率。

  • 字符计数法(如:第一个帧:51239,第二个帧:7123456。。。)
  • 字符填充的首尾定界符法
  • 零比特填充的首尾标志法(遇到5个“1”后,就插入一个“0”)
  • 违规编码法

 字符计数法

违规编码法: 在物理层进行比特编码时,通常采用违规编码法。例如,曼彻斯特编码方法将数据比特“1”编码成“高一低”电平对,将数据比特“0”编码成“低一高”电平对,而“高一高”电平对和“低一低”电平对在数据比特中是违规的(即没有采用)。

三、差错控制

实际通信链路都不是理想的,比特在传输过程中可能会产生差错,1可能会变成0,0也可能会变成1,这就是比特差错。比特差错是传输差错中的一种,本节仅讨论比特差错。

检错编码 

  • 奇偶校验码(附加一个校验元后,数量为奇数个或偶数个)
  • 循环冗余码(CRC)

CRC

计算实际发送的数据:

1)为原始数据M0加0(加r位);

2)加0后的原始数据模2除以G(x)位串;

3)用结果的余数替代1)中加的0; 

校验是否出错:

1)用收到的二进制序列模2除以G(x)位串;

2)余数为0则没有出错;

正向例题:设G(x)=1101(即r=3),待传送数据M=101001(即m=6)

101001000 

发送出的数据为: 101001001,共有m+r位。

反向例题:在数据传输过程中,若接收方收到的二进制比特序列为10110011010,接收双方采用的生成多项式为G(x)=x^4+x^3+1,则该二进制比特序列在传输中是否出错?如果未出现差错,那么发送数据的比特序列和CRC检验码的比特序列分别是什么?

 G(x)=1*x^4+1*x^3+0*x^2+0*x^1+1*x^0

纠错编码 

  •  海明码

效信息的位数:n,

校验位的位数:k,

n+k≤2^k-1(若要检测两位错,则需再增加1位校验位,即k+1位)

海明距离:两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的码距 (如001和000的码距是1)

检测D位错,需要码距D+1

纠错D位,需要码距2D+1

一般来说,数据的传输差错是由噪声引起的。通信信道的噪声可以分为两类:热噪声和冲击噪声。热噪声一般是信道固有的,引起的差错是随机差错可以通过提高信噪比来降低它对数据传的影响。冲击噪声一般是由外界电磁干扰引起的,引起的差错是突发差错,它是引起传输差错的主要原因,无法通过提高信噪比来避免。

四、流量控制与可靠传输机制

  • 停止-等待流量控制
  • 滑动窗口流量控制
  • 可靠传输机制 

停止-等待流量控制:发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;

在连续ARQ协议中,发送窗口的大小≤窗口总数-1。


 

滑动窗口流量控制:

  • 停止-等待协议:发送窗口大小=1,接收窗口大小=1。
  • 后退N帧协议(GBN):发送窗口大小>1,接收窗口大小=1。
  • 选择重传协议(SR):发送窗口大小>1,接收窗口大小>1。
  • 接收窗口的大小为1时,可保证帧的有序接收。
  • 发送窗口+接收窗口≤帧序号

可靠传输机制 :

  • 确认
  • 重传

信道最大利用率例题:一个信道的数据传输速率为4kb/ s ,单向传播时延为30ms,如果使停止﹣等待协议的信道最大利用率达到80%,那么要求的数据帧长度至少为()。
(L/C) / (L/C+ 2R)= L/(L+ 2RC)= L/(L + 2x30msx4kb/s)= 80%,得出L = 960bit。

GBD
  • GBN一般采用累积确认,如果收到了对5号帧的确认意味着接收方已收到1~5号帧,因此发送方仅需要重传后面的帧
  • 在后退N帧的协议中,序列号个数不小于MAX_ SEQ+ 1,题中发送窗口的大小是32,那么序列号个数至少33个
  • 后退N帧的ARQ协议中,发送窗口WT≤(2^n)-1。
SR
  • 在选择重传协议中,若采用n比特对帧进行编号,为避免接收端向前移动窗口后,新的窗口
    与旧的窗口产生重叠,接收窗口的最大尺寸应该不超过序号范围的一半,即WR≤2^(n-1)
  • [2011统考真题]数据链路层采用选择重传协议(SR)传输数据,发送方已发送0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是(2)。重传0和

五、介质访问控制 

采用一定的措施,使得两对节点之间的通信不会互相干扰。

信道划分介质访问控制 (静态分配信道)

  • 频分多路复用/ FDM(类似并行)
  • 时分多路复用/ TDM(类似并发)
  • 波分多路复用/ WDM(光的频分多路复用)
  • 码分多路复用/ CDM(主要用于无线通信系统,特别是移动通信系统。)

没有码分多路复用

 TDM与FDM相比,抗干扰能力强,可以逐级再生整形,避免干扰的积累,而且数字信号比较容易实现自动转换,所以根据FDM和TDM的工作原理,FDM适合于传输模拟信号TDM适合于传输数字信号。

 随机访问介质访问控制(动态分配信道)

所有用户可随机发送信息。发送信息时占全部带宽。

  • ALOHA协议
  • CSMA协议
  • CSMA/CD协议
  • CSMA/CA协议 
  • 轮询访问:令牌传递协议(谁有令牌谁老大)
ALOHA协议
  • 纯 ALOHA协议
  • 时隙ALOHA协议。
CSMA协议
  • 1-坚持CSMA(监听到信道忙后,继续坚持监听信道;监听到信道空闲后,发送帧的概率为1,即立刻发送数据。)
  • 非坚持CSMA(一个结点要发送数据时,首先监听信道;如果信道空闲,那么立即发送数据;如果信道忙,那么放弃监听,等待一个随机的时间后再重复上述过程。)
  • p-坚持CSMA( p,1-p,p,1-p )

CSMA/CD协议
  • 适用于总线型网络和半双工网络
  • “先听后发,边听边发,冲突停发,随机重发”。
  • 碰撞检测(Collision Detection)就是边发送边监听,如果监听到了碰撞,则立即停止数据发送,等待一段随机时间后,重新开始尝试发送数据。
  • CSMA/CD协议中定义的冲突检测时间(即争议期)是指,信号在最远两个端点之间往返传输的时间。
  • 最短帧长等于争用期时间内发出的比特数。因此当传输速率提高时,可减少电缆介质的长度(使争用期时间减少,即以太网端到端的时延减小),或增加最短帧长
  • 最小帧长=总线传播时延x数据传输速率x2
  • CSMA/CD协议已成功应用于使用有线连接的局域网
 CSMA/CD协议
  • 广泛应用于无线局域网
CSMA/CD与CSMA/CA主要区别
  • CSMA/CD可以检测冲突,但无法避免;CSMA/CA发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免。
  • 传输介质不同。CSMA/CD用于总线形以太网,CSMA/CA用于无线局域网802.11a/b/g/n等。
  • 检测方式不同。CSMA/CD通过电缆中的电压变化来检测;而CSMA/CA采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式。
  • 总结:CSMA/CA协议的基本思想是在发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免出现碰撞。CSMA/CD协议的基本思想是发送前监听,边发送边监听,一旦出现碰撞马上停止发送。

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

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

相关文章

现代C++、STL、QTL的使用

0、现代C中最重要的是&#xff1a; 右值引用、移动语义、完美转发、万能引用 1、std::vector、QVector 2、std::list、QList 3、std::map、QMap 4、std::multimap、QMultiMap 5、std::tuple &#xff08;1&#xff09;创建&#xff1a; std::tuple<T1, T2, TN>…

7.21 SpringBoot项目实战【图书借阅】并发最佳实践:细粒度Key锁、数据库乐观锁、synchronized、ReentrantLock

文章目录 前言一、编写服务层二、编写控制器三、并发实战1. synchronized关键字2. Lock 接口3. Atomic类4. 细粒度Key锁5. 数据库乐观锁6. 最终service完整代码 最后 前言 上文的产品设计流程&#xff1a;查看图书列表 7.3 实现-》查看图书详情上文7.20 -》图书借阅(本文)。 就…

【微服务】Feign 整合 Sentinel,深入探索 Sentinel 的隔离和熔断降级规则,以及授权规则和自定义异常返回结果

文章目录 前言一、Feign 整合 Sentinel1.1 实现步骤1.2 FallbackFactory 示例 二、Sentinel 实现隔离2.1 隔离的实现方法2.2 Sentinel 实现线程隔离示例 三、熔断降级规则3.1 熔断降级原理及其流程3.2 熔断策略 —— 慢调用3.3 熔断策略 —— 异常比例和异常数 四、授权规则4.1…

今年这行情,不会自动化的要做好心理准备了

李强是一名软件测试工程师&#xff0c;入行之后在一家小型公司工作了五年。这段时间里&#xff0c;他主要负责手工测试和一些简单的自动化测试工作。由于公司项目也相对简单&#xff0c;他逐渐陷入了工作的舒适区&#xff0c;没有积极追求新的知识和技能。 然而随着身边朋友发展…

MD5生成和校验

MD5生成和校验 2021年8月19日席锦 任何类型的一个文件&#xff0c;它都只有一个MD5值&#xff0c;并且如果这个文件被修改过或者篡改过&#xff0c;它的MD5值也将改变。因此&#xff0c;我们会对比文件的MD5值&#xff0c;来校验文件是否是有被恶意篡改过。 什么是MD5&#xff…

Docker Swarm 集群搭建

Docker Swarm Mode Docker Swarm 集群搭建 Docker Swarm 节点维护 Docker Service 创建 1.准备主机 搭建一个 docker swarm 集群&#xff0c;包含 5 个 swarm 节点。这 5 个 swarm 节点的 IP 与暂 时的角色分配如下&#xff08;注意&#xff0c;搭建完成后会切换角色&#xff…

winscp连接虚拟机过程

1、winscp安装 安装winscp&#xff1a;winscp安装 2、winscp连接虚拟机 参考链接&#xff1a;WinSCP怎么连接虚拟机 执行ifconfig查看主机ip 可见192.168.187.129即为虚拟机地址。执行 netstat -ntpl 启动网络连接后&#xff0c;即可进行winscp连接。 过程中可能遇到以下问…

vue v-for

目录 前言&#xff1a;Vue.js 中的 v-for 指令 详解&#xff1a;v-for 指令的基本概念 用法&#xff1a;v-for 指令的实际应用 1. 列表渲染 2. 动态组件 3. 表单选项 4. 嵌套循环 5. 键值对遍历 解析&#xff1a;v-for 指令的优势和局限性 优势&#xff1a; 局限性&a…

通义大模型使用指南之通义千问

一、注册 我们可以打开以下网站&#xff0c;用手机号注册一个账号即可。 通义大模型 (aliyun.com) 二、使用介绍 如图&#xff0c;我们可以看到有三个大项功能&#xff0c;通义千问、通义万相、通义听悟。下来我们体验一下通义千问的功能。 1、通义千问 通义千问主要有两个功能…

C++之函数重载【详解】

C之函数重载【详解】 1. 函数重载的概念2. C支持函数重载的原理(名字修饰)2.1 前言2.2 函数名修饰规则2.3 VS下的命名修饰规则 重载函数是函数的一种特殊情况&#xff0c;为方便使用&#xff0c;C允许在同一中声明几个功能类似的同名函数&#xff0c;但是这些同名函数的形式参数…

DOS攻击-ftp_fuzz.py

搭建FTP 使用AlphaFuzzer的FTPFUSS进行攻击 挖掘漏洞&#xff0c;自动用特殊字符看能不能把服务器崩掉 这些都是测试的目录 不能随意使用&#xff0c;可能会把C盘内容清掉 也可以自己写脚本测试下

考试成绩一键私发

哈喽&#xff0c;老师们&#xff01;这里有一个超级实用的教学小助手&#xff0c;让你的成绩发布工作变得更轻松&#xff01;一起来看看这个成绩查询系统吧&#xff01; 什么是成绩查询系统&#xff1f; 成绩查询系统&#xff0c;就像一个自动化的成绩发布平台。它可以帮助老师…

【Leetcode】【中等】1726.同积元组

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/tuple-with-same-product/ 给你…

一文带你了解架构设计

一、架构简介 想做好架构设计&#xff0c;第一步是将一个 IT 系统从应用层级至底层基础设施&#xff0c;全部拆解为一个个应用模块&#xff0c;可以称之为“元素”或“组件”&#xff1b;第二步是保证各个模块间不能孤立存在&#xff0c;还要做好充分的协作&#xff0c;协作通…

vue重修之自定义项目、ESLint和代码规范修复

文章目录 VueCli 自定义创建项目ESlint代码规范及手动修复代码规范错误 VueCli 自定义创建项目 安装脚手架 (已安装) npm i vue/cli -g创建项目 vue create xxx选项 Vue CLI v5.0.8 ? Please pick a preset:Default ([Vue 3] babel, eslint)Default ([Vue 2] babel, eslint) …

yolov8x-p2 实现 tensorrt 推理

简述 在最开始的yolov8提供的不同size的版本&#xff0c;包括n、s、m、l、x&#xff08;模型规模依次增大&#xff0c;通过depth, width, max_channels控制大小&#xff09;&#xff0c;这些都是通过P3、P4和P5提取图片特征&#xff1b; 正常的yolov8对象检测模型输出层是P3、…

软考系列(系统架构师)- 2020年系统架构师软考案例分析考点

试题一 软件架构&#xff08;架构风格、质量属性&#xff09; 【问题1】&#xff08;13分&#xff09; 针对该系统的功能&#xff0c;李工建议采用管道-过滤器&#xff08;pipe and filter)的架构风格&#xff0c;而王工则建议采用仓库&#xff08;reposilory)架构风格。请指出…

数字信号处理期末复习(2)——z变换与DTFT

前言 本章主要学习的内容为z变换、离散时间傅里叶变换&#xff08;DTFT&#xff09;、离散时间系统的z变换域和频域&#xff08;傅里叶变换域&#xff09;的分析。 在z变换中&#xff0c;主要考查z变换和z反变换的计算、z变换的性质 在DTFT中&#xff0c;主要考查序列傅里叶变…

vue父子组件传值不能实时更新的解决方法

最近做项目,遇到个大坑,这会爬出来了,写个总结,避免下次掉坑。 vue父子组件传值不能实时更新问题,父组件将值传给了子组件,但子组件显示的值还是原来的初始值,并没有实时更新,为什么会出现这种问题呢? 出现这个问题,可能有以下两个原因: 一、 父组件没有把值传过…

提升药店效率:山海鲸医药零售大屏的成功案例

在医药行业中&#xff0c;特别是医药零售领域&#xff0c;高效的药品管理和客户服务至关重要。随着科技的飞速发展&#xff0c;数字化解决方案已经成为提高医药零售管控效率的有效工具之一。其中&#xff0c;医药零售管控大屏作为一种强大的工具&#xff0c;正在以独特的方式改…