一、数据链路层功能概述
(一)数据链路层基本概念
- 结点:主机、路由器
- 链路:网络中两个结点之间的
物理通道
,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。 - 数据链路:网络中两个结点之间的
逻辑通道
,把实现控制数据传输协议
的硬件和软件加到链路上就构成数据链路。 - 帧:链路层的协议数据单元,封装网络层数据报。
- 数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
(二)数据链路层功能概述
- 数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据
可靠
地传输到相邻节点的目标机网络层。 - 其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
- 功能:
①、功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务,有连接一定有确认
②、功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
③、功能三:组帧。
④、功能四:流量控制。限制发送方哦
⑤、功能五:差错控制(帧错/位错)。
二、封装成帧&透明传输
(一) 封装成帧
- 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
- 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
- 帧同步:
接收方
应当能从接收到的二进制比特流中区分出帧的起始和终止。 - 组帧的四种方法:①字符计数法,②字符(节)填充法,③零比特填充法,④违规编码法。
(二)透明传输
透明传输
是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。- 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
1. 字符计数法
- 帧首部使用一个计数字段(第一个
字节
,八位)来标明帧内字符数。
- 痛点:鸡蛋装在一个篮子里了。
2. 字符填充法
3. 零比特填充法
4. 违规编码法
- 由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
三、差错控制(检错编码)
(一)差错从何而来?
- 概括来说,传输中的差错都是由于噪声引起的。
- 全局性:
①、由于线路本身电气特性所产生的随机噪声
(热噪声),是信道固有的,随机存在的。
②、解决办法:提高信噪比来减少或避免干扰。(对传感器下手) - 局部性:
①、外界特定的短暂原因所造成的冲击噪声
,是产生差错的主要原因。
②、解决办法:通常利用编码技术来解决。
(二)数据链路层的差错控制
1. 数据链路层编码VS物理层编码
- 数据链路层编码和物理层的数据编码与调制不同。
- 物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。
- 而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
2. 检错编码——奇偶校验码
- 如果一个字符S的ASCII编码从低到高依次为1100101,采用奇校验,在下述收到的传输后字符中,哪种错误不能检测?【D】
A. 11000011 B. 11001010 C. 11001100 D.11010011 - 奇偶校验码特点:只能检查出奇数个比特错误,检错能力为50%。
3. 检错编码——CRC循环冗余码
接收端检错过程
- 把收到的每一个帧都除以同样的除数,然后检查得到的余数R。
①、余数为0,判定这个帧没有差错,接受。
②、余数为不为0,判定这个帧有差错(无法确定到位),丢弃。 - FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
- 在数据链路层仅仅使用循环冗余检验RC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据 链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的 帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。
(三)差错控制(纠错编码)
1. 纠错编码——海明码
- 功能:①、能够发现错误。②、能够找到位置。③、能够纠正错误。
2. 海明距离
- 两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的
海明距离(码距)
,一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)
。
(1)确定校验码位数r
- 要发送的数据:D=1100,数据的位数m=4,满足不等式的最小r为3,也就是D=1100的海明码应该有4+3=7位,其中原数据4位,校验码3位
(2)确定校验码和数据的位置
(3)求出校验码的值
(4)检错并纠错