【408计算机网络】数据链路层


一、数据链路层的功能

将原始的、有差错的物理线路改进为逻辑上无差错的数据链路, 从而向网络层提供高质量的服务。
具体地说,数据链路层的主要功能如下:
1)链路管理:负责数据链路的建立、维持、释放(主要用于面向连接的服务)
2)帧同步:接收方确定收到的比特流中一帧的开始位置和结束位置
3)差错控制:用于使接收方确定接收到的数据就是发送方发送到数据
4)透明传输:透明传输就是不管数据是什么样的比特组合,都应当能在数据链路上传送(比如:如果要发送的数据中有帧定界符01111110,如果没有透明传输功能,那么计算机网络会认为这是一个结束符,从而截断,导致收到错误数据)
数据链路层向上提供三种基本服务:
1.无确认的无连接服务
2.有确认的无连接服务
3.有确认的有连接服务

二、组帧

2.1为什么组帧呢?直接传送比特流不好么

组帧的有优点是,如果出错了,只需要发送出错的帧即可,免得重传全部的比特流,这相对于增加了帧同步、帧定界、透明传输问题是值得的。

2.2为什么组帧既要加首部,又要加尾部呢,而报文切割成分组只需要加首部?

因为网络中是以为最小单位进行传输的,所以接收到要正确收到帧,必须清楚帧在一串比特流中是哪开始的,哪结束的。而分组仅仅是包含在帧的数据部分,所以不需要加尾部。

2.3四种组帧方法

2.3.1字符计数法

用一个计数字段来表明该帧包含的字节数,如果计数字段在传输中出现差错,就无法帧同步了,所以这个很少被使用

2.3.2字节填充的首尾界符法

首尾界符法:帧开始用SOH(ASCII中一个特殊字符)作为帧开始的标志,帧结束用EOT作为帧结束的标志
字节填充的首尾界符法:如果传输的数据中含有SOH,EOT,那么把SOH转化为ESC+x两个字符,EOT转化为ESC+y,ESC转化为ESC+z

2.3.3比特填充的首尾标志法

此方法又称为零比特填充法,将帧的数据部分中,每遇到五个1就在后边加个0,然后使用01111110作为帧定界符。

2.3.4物理编码违例法

曼彻斯特编码中高低电平表示1,低高电平表示0,那么高高和低低电平就可以用来帧定界

三、差错控制

3.1检错编码

3.1.1奇偶校验码

事先规定使用奇校验还是偶校验,在数据的最后一位加上一个0或者1,使数据中的1是奇数个,或者偶数个。
例如,使用奇校验:信息数据是1100010,那么在最后补上一个0,得到11000100,接收方收到后,发现整体有奇数个1,那么认为数据正确。
缺陷:两位数据发生变化后,无法检测出来。

3.1.2 CRC循环冗余码

待发送的信息为101001,生成式为G(x)=x^3 + x^2+1
第一步:构造被除数
将待发送的数据后边加上(多项式最高次或者除数—1位)个0,得到101001000
第二步:构造除数
将多项式转换为01串,比如G(x)=x^3 + x^2+1得到1101
第三步:做除法(±运算时使用异或运算)
使用101001000除以1101,得到1
第四步:处理余数
余数位数应该与生成式最高次数相同,如果不同,则补0凑齐得到001
第五步:发送数据
发送数据101001001到接收方
第六步:校验
接收方收到数据后,将数据除以1101,如果是0那么传输正确,否则不正确

3.2纠错编码

海明码,较为复杂。且不容易用文字表述。

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

流量控制和可靠传输机制是传输层的功能,提前了解

4.1流量控制

流量控制就是要控制发送方发送数据的速率,使接收方来得及接收。
一个基本的方法是由接收方控制发送方的数据流。常见的方式有两种:停止-等待流量控制滑动窗口流量控制
1)停止等待流量控制
发送方发出一帧,然后等待应答信号到达在发送下一帧。接收方每收到一帧后返回一个应答信号,表示可以接受下一帧,如果接收方不返回应答,则发送方必须一直等待。
2)滑动窗口流量控制
这里不做详细解释,在4.2可靠传输机制中可以理解滑动窗口流量控制的概念

4.2可靠传输机制

注意:这里只讲可靠传输机制,没有讲不可靠传输机制,不代表各层只有可靠传输机制
可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
不可靠传输服务:仅仅丢弃有误码的帧其他什么也不做。
一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题交给其上层处理,无线链路易受干扰,误码率较高,因此要求数据链路层提供可靠传输服务
以上只是比特差错,此外还有传输差错,包括分组丢失、分组失序、分组重复。
可靠传输的实现比较复杂,开销也比较大,因此是否需要可靠传输根据实际需求
三种可靠传输的协议:停止等待协议、后退N帧协议、选择重传协议

4.3停止等待协议

在这里插入图片描述

4.4后退N帧协议

后退N帧协议的基本原理:发送方发送完一个数据帧后,不时停下来等待确认帧,二是可以连续在发送若干个数据帧。如果这时收到了接收方的确认帧,那么还可以接着发送数据帧。如果某个帧出错了,接收方只能简单的丢弃掉该帧以及其所有的后续帧。发送方超时后需重发该出错帧以及后续所有帧。由于减少了等待时间,后退N帧协议使得整个通信的吞吐量得到提高,但接收方一发现错误帧,就不再接受后续的帧,造成了一定浪费。据此改进,得到了选择重传协议。
在这里插入图片描述

在这里插入图片描述

4.5选择重传协议

回退N帧协议的接收窗口尺寸Wr只能等于1,因此接收方只能按序接收正确到达的数据分组。
一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸Wr不应再等于1,而应该大于1,以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层,这就是选择重传协议。
注意:选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!
详细动画演示过程:推荐b站up主湖科大教书匠计算机网络微课堂第027讲 可靠传输的实现机制 — 选择重传协议
在这里插入图片描述

在这里插入图片描述

4.6发送缓存与接收缓存

当计算机的两个进程(在同一台机器中或在两个不同的机器中)进行通信时,如果发送进程将数据直接发送给接收进程,那么这两个动作(一个是发送,另一个是接收)是非常难协调好的。这是因为计算机的动作很快,如果在某一时刻接收进程开始执行接收的动作,但发送进程的发送动作稍微早了一点或稍微晚了一点(在收发双方事先未进行同步的情况下,发送时刻不可能恰好和接收时刻精确地重合),这都会使接收失败。因此,在计算机进程之间的通信过程中,广泛使用缓存。
缓存就是在计算机的存储器中设置的一个临时存放数据的空间。发送进程将欲发送的数据先写入缓存,然后接收进程在合适的时机读出这些数据。
缓存有点像邮局在街上设立的邮筒。我们可以在我们方便时将欲发送的信件丢到邮筒中。邮局的邮递员按照他的计划在适当时候打开邮筒,将大家投入的信件取走,交到邮局,进行下一步处理。
缓存可以很好地解决发送速率和接收速率不一致的矛盾,还可以很方便地进行串并转换,即比特流串行写入并行读出,或并行写入串行读出。

五、介质访问控制

5.1 介质访问控制分类

在局域网中,如果共用信道的使用产生竞争,怎么能够更好地分配信道的使用权,是一个非常重要的问题,而介质访问控制就是为了解决此问题诞生的
考研所要求的介质访问控制分为以下三类
1)信道划分介质访问控制
2)随机访问介质访问控制
3)轮询访问介质访问控制

5.2 信道划分介质访问控制

信道划分介质访问控制使用了多路复用技术,多路复用技术能把多个信号组合在一条物理信道上进行传输,使多个计算机或终端设备共享信道资源,从而提高了信道的利用率。
信道划分技术分为以下4种:
1、频分多路复用:将一条信道分割成多条不同频率的信道
2、时分多路复用:将信道按时间分配给不同的用户使用,传统时分多路复用(也叫同步时分多路复用)存在缺陷,缺陷是即使用户处于空闲状态,也会分配到时隙,造成浪费,解决办法:统计时分多路复用(也叫异步时分多路复用)在这里插入图片描述
在这里插入图片描述
3、波分多路复用:通俗的说,就是光的频分多路复用,将频率换为波长
4、码分多路复用:又叫码分多址(CSMA),它既共享信道的频率,又共享时间,是一种真正的动态复用技术。
概念:每个站点都维持一个属于该站点的芯片序列,并且是固定的。假如站点A的芯片序列为00011011,则A站点发送00011011表示发送比特1;而将00011011每位取反,即发送11100100表示发送比特0。习惯将芯片序列中的0写为-1,1写为+1,所以A站芯片序列就是(-1 -1 -1 +1 +1 -1 +1 +1),一般将该向量称为该站的码片向量。任意两个不同站的码片向量正交,即任意两个站点的码片向量的规格化内积一定是0。任何站点的码片向量与该码片向量自身的规格化内积一定是1;任何站点的码片向量和该码片的反码向量规格化内积一定为-1。
经典例题:
在这里插入图片描述
在这里插入图片描述

5.3 随机访问介质访问控制

当几台计算机都是用一条信道发送数据时,就需要去共享这条信道,而共享信道需要着重考虑的一个问题就是如何使众多用户能够合理而方便的共享,并且不发生冲突,于是出现以下两种划分信道的方法:
第一种是静态划分信道:即频分多路复用、时分多路复用等,这种方法只要用户分配到了信道就不会和其他用户发生冲突。但是这种划分信道的代价相当高,在一个小小的局域网中不合适
第二种是动态划分信道,而动态地划分信道又分为随机接入受控接入

  • 随机接入:就是所有用户可以根据自己的意愿随机的发送消息,这样就会产生冲突,从而导致所有冲突用户发送数据失败。为了解决随机接入发生的碰撞,CSMA/CD等协议被引入。
  • 受控接入:就是不能随机地发送数据,一定要得到某种东西才有权发送数据。

随机接入在考研中需要掌握四种:ALOHA协议、CSMA协议、CSMA/CD协议、CSMA/CA协议,这四种协议的核心思想是通过争用,胜利者才可以获得信道,从而获得信息的发送权。因此随机访问介质访问控制又多了一个绰号叫做:“争用型协议”

5.3.1 ALOHA协议

ALOHA协议:想发的时候就发,不做任何检测,如果一段时间没有收到确认,那么认为发生了冲突,等待一个随机时间再发。
时分ALOHA协议:所有结点的时间被划分为间隔相同的时间,规定每个节点等到了下个时隙来了才能发送。

5.3.2 CSMA协议(载波侦听多路访问协议)

每个节点发送数据前,先用载波侦听技术判断信道是否空闲。常见的CSMA有三种策略:

  1. 1-坚持CSMA:侦听到空闲时,立即发送数据,否则继续侦听
  2. p-坚持CSMA:侦听到空闲时,p概率发送数据,1-p概率延迟一段随机时间重新侦听
  3. 非坚持CSMA:侦听到空闲时,立即发送数据,否则过一段随机时间重新侦听

5.3.3 CSMA/CD协议(带冲突检测的载波侦听多路访问协议)

CSMA/CD的工作流程:
先听后发:每个站在发送数据之前先检测线路上是否有其他计算机发送数据,若有,则暂时不发送数据,以免发生冲突,若没有,则发送数据
边听边发:(CSMA改进之处体现)计算机在发送数据时,也会一直检测信道是否有冲突发生
冲突停发:(CSMA改进之处体现)如果检测到冲突,就会停止发送数据
随机重发:采用截断二进制指数类型退避算法来等待一段随机时间再次重发。
在这里插入图片描述
在这里插入图片描述
CSMA/CD中四个重要数据:端到端长度、数据传输速率、争用期、最小帧长
当某一项发生改变时,记住最小帧长不变,一定是512bit=64B
例如:在一个10Mbit/s,1000m,争用期51.2us,最小帧长64B的网络中,现在打算把10mbit/s改为100Mbit/s,那么各项如何变化?

  • 传输速率10Mbit/s–>100Mbit/s
  • 端到端长度1000m–>100m【原因:最小帧长(不变)=传输速率(扩大10倍) x 端到端长度(缩小10倍/信号传播速度*2】
  • 争用期51.2us–>5.12us【原因:最小帧长(不变)=传输速率(扩大10倍) x 争用期(缩小10倍)】

理解CSMA/CD过程最重要,视频讲解推荐b站up主湖科大教书匠的计算机网络微课堂第031讲 随机接入 — CSMA/CD协议

5.3.4 CSMA/CA协议

CSMA/CA主要用于无线局域网中,由IEEE802.11标准定义,它在CSMA的基础上增加了冲突避免的功能。冲突避免要求每个节点在发送数据之前监听信道。如果信道空闲,则发送数据。发送节点在发送完一个帧后,必须等待一段时间(称为帧间间隔),检查接收方是否发回帧的确认。若收到确认,则表明无冲突发生,若在规定时间内没有收到确认,表明出现冲突,重发该帧。

5.4 轮询访问介质访问控制

轮询介质访问控制主要用在令牌环局域网中,目前使用得很少。在轮询访问介质访问控制中,用户不能随即的发送信息,而是通过一个集中控制的监控站经过轮询过程后再决定信道的分配。

六、局域网介绍

七、广域网介绍

八、数据链路层设备

猜你喜欢

转载自blog.csdn.net/qq_42425551/article/details/121871907