基本概念
数据链路层在物理层提供服务的基础上向网络层提供服务,其中最基本的服务是将源自网络层的数据可靠地传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能。将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
网络层、链路层、物理层的关系:
一、为网络层提供服务
有连接就一定要有确认,即不存在无确认的面向连接的服务
服务 | 无确认无连接服务 | 有确认无连接服务 | 有确认面向连接服务 |
---|---|---|---|
源机器发送链路帧时需不需要先建立链路连接 | 不需要 | 不需要 | 需要 |
目的机器收到数据帧是需不需要发回确认 | 不需要 | 必须发回确认 | 对于收到的每一帧都要给出确认 |
对于丢失的帧如何处理 | 对于丢失的帧,链路层不负责重发而交给上层处理 | 源机器在所规定到达时间内为收到确定信号时,就重传丢失的帧,以提高传输的可靠性 | 源机器收到确认后才能发送下一帧,因而该服务的可靠性最高 |
适用于 | 实时通信或误码率较低的通信信道,如以太网 | 适用于误码率较高的通信信道,如无线通信 | 服务于通信要求(可靠性、实时性)较高的场合 |
二、链路管理
即链路层连接的建立、维持、释放(用于面向连接的服务)
三、帧定界、帧同步、透明传输
3.1基本概念
组帧主要解决:帧定界、帧同步、透明传输的问题。组帧时既要加首部又要加尾部。
链路:网络中两个结点之间的物理通路,链路的传输介质主要有双绞线、光纤和微波,分为有线链路和无线链路
数据链路:网络中两个结点之间的逻辑通路,把实现控制数据传输协议的硬件和软件加到链路上就构成了数据链路
帧:链路层的协议数据单元,封装网络层数据报
帧定界:确定帧的界限
透明传输:透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和结束(帧同步是对接收方而言的)
3.2四种组帧方法
3.2.1字符计数法
帧首部使用一个计数字段来标明帧内字符数,但如果出错,比如第一个变为4,那么剩下的部分就全部出错了
3.2.2字符填充的首尾定界法
在前后使用一个首位定界符,定界符不一定非要用上图那个
当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCI码)不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。
当传送的帧是由非ASCI码的文本文件组成时(二进制代码的程序或图像等)就要采用字符填充方法实现透明传输。
3.2.3零比特填充的首位标志法
操作:1.在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。
2.在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误
3.2.4违规编码法
由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
四、流量控制
五、差错控制
差错基本概念
差错类型-帧错
差错类型-比特错
海明码
工作流程:1.确定校验码位数r 2.确定校验码和数据的位置 3.求出校验码的值 4.检错并纠错
海明距离:两个合法编码(码字)的对应比特取值不同的比特数成为这两个码字的海明距离(码距),一个有效编码集中,容易两个合法编码(码字)的海明距离的最小值成为该编码集的海明距离(码距)。
比如 000和 001的码距是1;000和111的码距是3
确定校验码位数
例如:要发送的数据:D=1100求校验码位数,数据的位数m=4,根据公式求出满足不等式的最小r为3,也就是D=1100的海明码应该有4+3=7位,其中原数据4位,校验码3位。
确定校验码和数据的位置
求出校验码的值
X4的通用码是1**,其中*是通用匹配符,可以匹配任意数字,所以X4可以校验序号4、5、6、7
校验码的值是根据偶校验求的,偶校验:保证数据中1的位数是偶数。
检错并纠错
检错方法1:
找到不满足奇/偶校验的分组取交集,并与符合校验的分组取差集。得出是5号位出错了。
检错方法2:
使X4、0,1,1,1满足偶校验,则X4应该为1;
使X2、0,1,1,1满足偶校验,则X2应该为0;
使X1、0,1,1,1满足偶校验,则X2应该为1;
再把X4 X2 X1倒过来写,得到101,得出是第五位错了。