导图社区 数据链路层
这是一篇关于数据链路层的思维导图,主要内容包括:背景,数据链路层的功能。数据链路层定义了在单个链路上如何传输数据,这些协议与被讨论的各种介质有关。
编辑于2024-10-17 16:18:32这是一篇关于数据链路层的思维导图,主要内容包括:背景,数据链路层的功能。数据链路层定义了在单个链路上如何传输数据,这些协议与被讨论的各种介质有关。
集合与关系知识梳理,包括集合的运算、序偶与笛卡尔积、关系的概念、关系的表示方法、关系的性质 (集合X上的二元关系)、关系的运算等等。
“谓词,在谓词逻辑中,原子命题分解成个体词和谓词。 个体词是可以独立存在的事或物,包括现实物、精神物和精神事三种。谓词则是用来刻划个体词的性质的词,即刻画事和物之间的某种关系表现的词。如“苹果”是一个现实物个体词,"苹果可以吃"是一个原子命题,“可以吃”是谓词,刻划“苹果”的一个性质,即与动物或人的一个关系。
社区模板帮助中心,点此进入>>
这是一篇关于数据链路层的思维导图,主要内容包括:背景,数据链路层的功能。数据链路层定义了在单个链路上如何传输数据,这些协议与被讨论的各种介质有关。
集合与关系知识梳理,包括集合的运算、序偶与笛卡尔积、关系的概念、关系的表示方法、关系的性质 (集合X上的二元关系)、关系的运算等等。
“谓词,在谓词逻辑中,原子命题分解成个体词和谓词。 个体词是可以独立存在的事或物,包括现实物、精神物和精神事三种。谓词则是用来刻划个体词的性质的词,即刻画事和物之间的某种关系表现的词。如“苹果”是一个现实物个体词,"苹果可以吃"是一个原子命题,“可以吃”是谓词,刻划“苹果”的一个性质,即与动物或人的一个关系。
数据链路层
背景
主要任务
解决一个局域网内的数据传输问题
数据链路层协议
在OSI体系结构中,数据链路层采用的是面向连接的HDLC协议,为网络层提供了可靠的服务,从网络层的视角看数据链路是不会出差错的。
在TCP/IP体系结构中,数据链路层使用得最多的是PPP协议(点对点信道)和CSMA/CD协议(广播信道)。这两种协议都只提供无连接的服务。从网络层的视角来看,数据链路是可能出差错的。(PPP协议基于SLIP协议发展而来)
无论采用什么样的数据链路层协议,有三个基本问题是共同的,分别是封装成帧、透明传输和差错检测。
基本概念
链路
从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。
数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路,链路是一条路径的组成部分。
数据链路
当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。
若把实现这些协议的硬件和软件加到链路上,就构成了数据链路(逻辑链路)。
现在最常用的方法是使用网络适配器(既有硬件,也包括软件)来实现这些协议。
适配器(网卡)
两种信道
点对点信道
使用一对一的点对点通信方式
广播信道
使用一对多的广播通信方式
广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
数据链路层的功能
封装成帧(组帧)
是什么
在一段数据的前后分别添加首部和尾部,这样就构成了一个帧
在发送帧时,从帧首部开始发送。
最大传送单元MTU
每一种链路层协议都规定了所能传送的帧的数据部分长度上限
帧首部与帧尾部的作用
1. 帧定界(即确定帧的界限)
帧定界符
2. 包括许多必要的控制信息,例如地址信息以及差错控制。
3. 接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束(帧同步)
透明传输
是什么
无论什么样的比特组合的数据,都能够按照原样没有差错地在数据链路层传输
不会因为与帧定界符恰好相同而丢弃数据
组帧方法
字节填充法
数据中出现与控制字符相同时,前面插入一个转义字符
字符计数法
在每一帧的第一个字节中记录该帧所包含的字节数(包括计数字节本身)
缺点
当计数字段出现错误时,会导致接收方错误划分该帧,继而导致错误读取下一帧的开始位置
零比特填充法
每出现5个连续的1,就自动在其后插入一个0
优点
容易使用硬件实现,性能通常优于字符填充法,像HDLC协议就采用了零比特填充法。
违规编码法
使用这两种违规编码作为帧的起始和终止
特点
这种方法不需要填充或计数就可以实现透明传输,但只适用于编码中存在冗余的情况。
例如在曼彻斯特编码中,“高-高”电平对和“低-低”电平对不用来表示信息,是冗余的。
最常用的是零比特填充法和违规编码法
对比
差错检测
比特在传输过程中可能会产生差错
位错
帧错
帧丢失,帧重复,帧失序
通过编码技术来解决位错
检错编码
奇偶校验码
异或结果为0,代表有偶数个1
异或结果为1,代表有奇数个1
特点
校验位可以放在数据位之前,也可以放在数据位之后
只能检测奇数个比特出错的情况,不能确定出错的具体位置和个数,也不能发现出错位数为偶数的情况。
循环冗余码
基本思想
在一个待发送的n位的二进制数据序列之后附加一个r位的校验码再发送出去,共发送n+r位数据
计算步骤
特点
CRC循环冗余码在特定情况下也有纠错功能,但在数据链路层中只使用其检错功能
在数据链路层,发送端帧检验序列FCS的生成和接收端的CRC检验都是用硬件完成的,处理很迅速,因此并不会延误数据的传输。
纠错编码
海明码
基本思想
分组偶校验
计算步骤
确定有k位校验码
确定校验位分布
1248....
根据信息位求校验位
分k个组,确定每组的成员
组中的每一位异或,求出相应组的校验位
纠错
拿到需要校验的数据,分组偶校验求得S1,S2,S3 ...(每一组的成员进行异或,异或结果为0,即有偶数个1,说明无错误)
S3 S2 S1=000 说明无错误
S3 S2 S1 ≠000,则其值反映出错位置
解决帧错
过去OSI观点
必须让数据链路层向上提供可靠传输。因此在CRC检错的基础上,增加了帧编号、确认和重传机制。
接收方收到正确的帧就要向发送端发送确认。
发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。
现在区别对待
对于通信质量良好的有线传输链路
数据链路层协议不使用确认和重传机制,即不要求数据链路层向上提供可靠传输的服务。
如果在数据链路层传输数据时出现了差错并且需要进行改正,那么改正差错的任务就由上层协议(例如,运输层的TCP协议)来完成。
对于通信质量较差的无线传输链路
数据链路层协议使用确认和重传机制,数据链路层向上提供可靠传输的服务。
为网络层提供服务
无确认无连接的服务
适用于错误率较低的信道,被大部分局域网数据链路层所采用。
有确认无连接的服务
适用于错误率较高的信道(如无线信道)
有确认面向连接的服务
适用于对通信可靠性要求较高的场景。
链路管理
主要用于面向连接的服务
三个方面
建立
维持
释放
流量控制
是什么
当数据链路中发送方的发送速率大于接收方的接收速率时,接收方则无法全部接收发来的数据,从而导致数据的丢失,产生传输差错。所以需要一种方法来控制发送方的发送速率,让接收方及时接收数据,这就是流量控制。
两种方法
停止-等待流量控制
原理
1发送方每次只能发送一帧;
2接收方接收到该帧后,发回一个应答信号给发送方;
3发送方接收到应答信号后才可以发送下一帧;
4 若发送方没有接收到接收方发回的应答信号,则需要一直等待;
缺点
由于这种方法每次只允许发送方发送一帧,并且需要等待接收方发回应答,所以效率相对较低。
滑动窗口流量控制
原理
发送方将要发送的数据按帧组成一个队列,对每一帧按顺序编号,依次发送队列里的数据。
数据链路中的发送方和接收方,分别维护一个发送窗口和一个接收窗口
收到左边界确认帧后,发送窗口向右移动
收到左边界帧后,发回确认帧,接收窗口随即向右移动。
接收窗口中包括当前可以接收的帧,即序号在左边界和右边界之间的帧。
当到达帧的序号小于左边界,代表该帧已被接收并确认,不需重复接收,直接丢弃;
当到达帧的序号大于右边界,代表该帧当前还不能接收,超过了接收方的处理范围,也会直接丢弃;
信道利用率
一般来说RTT都是远大于T1+T2的,所以停止-等待协议的信道利用率很低。
可靠传输机制
是什么
发送方发送的数据都能被接收方正确接收
两个重要机制
确认
每当接收方收到发送方发来的数据帧,都需要向发送方发回一个确认帧
超时重传
当发送方发送某一帧后,在规定的时间内没有收到接收方发回的确认帧,就会认为接收方没有收到,发送方需重发该帧。
超时重传通过给每一帧设置一个超时计时器实现
自动重传请求(ARQ)协议
是什么
使用上述两个机制的可靠传输协议
重传是自动进行的,接收方不需要请求发送方重传出错的分组。
注意
1.发送方发出一帧后,必须暂时保存该帧副本,仅在收到相应的确认后才能将其清除。
2.数据帧和确认帧都必须进行编号,便于分辨确认帧是针对哪一帧进行的确认,以及哪些帧还未确认
3.超时计时器设置的重传时间应当比一帧的往返传播时间要长一些
如果重传时间设置得太短,将产生不必要的重传,浪费链路资源;
而如果重传时间设置的太长,那么通信的效率将会降低。
方法
停止-等待协议
发送窗口和滑动窗口大小均为1
应用情况
数据帧丢失 或 接收方检测到帧出错
接收方没有收到正确的数据帧,不发送确认帧
发送方未收到确认帧,在等待超时后将重新发送数据帧。
确认帧丢失
发送方未收到确认帧,在等待超时后将重新发送数据帧。
接收方收到该数据帧后,再次发回确认帧
确认帧迟到
发送方未收到确认帧,在等待超时后将重新发送数据帧。
接收方收到该数据帧后,再次发回确认帧
发送方丢弃迟到的确认帧
后退N帧协议(GBN)
发送窗口最大为2^n - 1,接收窗口大小为1
累计确认
选择重传协议
主题