一.数据链路层功能概述
1.数据链路层的研究思想
水平方向研究,数据从A的数据链路层自左向右传输到B的数据链路层
2.基本概念
结点:主机、路由器
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波.分为有线链路、无线链路.
数据链路:网络中两个结点之间的逻辑通道.把实现的数据传输协议的硬件和软件加到链路上就构成数据链路.
帧:链路层的协议数据单元,封装网络层数据报
数据链路层负责通过一条链路从一个结点向 另一个物理链路直接相连的相邻结点传送数 据报
网络异常,图片无法展示|
网络异常,图片无法展示|
3.功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到 相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接 改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
3.1功能一:
为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认!
3.2功能二 :
链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
3.3功能三:
组帧
3.4功能四:
流量控制。 限制发送方
3.5功能五:
差错控制(帧错/位错)。
习题
选择
1.下列不属于数据链路层功能的是(B)。A.帧定界功能B.电路管理功能C.差错控制功能D.流量控制功能
数据链路层的主要功能有:如何将二进制比特流组织成数据链路层的帧:如何控制帧在物理信道上的传输,包括如何处理传输差错;在两个网络实体之间提供数据链路的建立、维护和释放;控制链路上帧的传输速率,以使接收方有足够的缓存来接收每个帧。这些功能对应为帧定界、差错检测、链路管理和流量控制。电路管理功能由物理层提供,关于“电路”和“链路”的区别请参见本章疑难点1。
2.数据链路层协议的功能不包括(D)。A.定义数据格式B.提供结点之间的可靠传输C.控制对物理传输介质的访问D.为终端结点隐蔽物理传输的细节
数据链路层的主要功能包括组,组帧即定义数据格式,A正确。数据链路层在物理层提供的不可靠的物理连接上实现结点到结点的可靠性传输,B正确。控制对物理传输介质的访问由数据链路层的介质访问控制(MAC)子层完成,C正确。数据链路层不必考虑物理层如何实现比特传输的细节,因此D错误。
3.为了避免传输过程中桢的丢失,数据链路层采用的方法是(D)。A.帧编号机制B.循环冗余校验码C.汉明码D.计时器超时重发
为防止在传输过程中帧丢失,在可靠的数据链路层协议中,发送方对发送的每个数据帧设计一个定时器,当计时器到期而该帧的确认帧仍未到达时,发送方将重发该帧。为保证接收方不会接收到重复帧,需要对每个发送的帧进行编号:汉明码和循环冗余校验码都用于差错控制。
4.数据链路层为网络层提供的服务不包括(C)。A.无确认的无连接服务B.有确认的无连接服务C.无确认的面向连接服务D.有确认的面向连接服务
连接是建立在确认机制的基础上的,因此数据链路层没有无确认的面向连接服务。一般情况下,数据链路层会为网络层提供三种可能的服务:无确认的无连接服务、有确认的无连接服务、有确认的面向连接服务。
5.对于信道比较可靠且对实时性要求高的网络,数据链路层采用(A)比较合适。A.无确认的无连接服务B.有确认的无连接服务C.无确认的面向连接服务D.有确认的面向连接服务
无确认的无连接服务是指源机器向目标机器发送独立的帧,目标机器并不对这些帧进行确认。事先并不建立逻辑连接,事后也不用释放逻辑连接。若由于线路上有噪声而造成某一帧丢失,则数据链路层并不会检测这样的丢帧现象,也不会回复。当错误率很低时,这一类服务非常合适,这时恢复任务可以留给上面的各层来完成。这类服务对于实时通信也是非常合适的,因为实时通信中数据的迟到比数据损坏更不好。
6.流量控制实际上是对(A)的控制。A.发送方的数据流量B.接收方的数据流量C.发送、接收方的数据流量D.链路上任意两结点间的数据流量
流量控制是通过限制发送方的数据流量而使发送方的发送速率不超过接收方接收速率的一种技术。流量控制功能并不是数据链路层独有的,其他层上也有相应的控制策略,只是各层的流
墅控制对象是在相应层的实体之间进行的。
7.下述协议中,(A)不是数据链路层的标准。A.ICMPB.HDLCC.PPPD.SLIP
网际控制报文协议(ICMP)是网络层协议,PPP是在SLP基础上发展而来的,都是数据链路层协议。
8.假设物理信道的传输成功率是95%,而平均一个网络层分组需要10个数据链路层帧来发送。若数据链路层采用无确认的无连接服务,则发送网络层分组的成功率是()。A.40%B.60%C.80%D.95%
要成功发送一个网络层分组,需要成功发送10个数据链路层帧。成功发送10个数据链路层帧的概率是(0.95)^10≈0.598,即大约只有60%的成功率。这个结论说明了在不可靠的信道上无确认的服务效率很低。为了提高可靠性,应该引入有确认的服务。
二.封装成帧和透明传输
1.封装成帧
封装成帧:
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流 后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
帧同步:
接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方式:
1.字符计数法
2.字符(节)填充法
3.零比特填充法
4.违规编码法
2.透明传输
透明传输:
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨 碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误 认为是某种控制信息。这样才能保证数据链路层的传输是透明的
3.组帧的四种方式
3.1字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
痛点:鸡蛋装在一个篮子里了。 因为帧首部发生错误,后续都会出错
3.2字符填充法
3.3零比特填充法
操作:
1.在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。
2.在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
3.4违规编码法
习题:
1.在一个数据链路协议中使用下列字符编码:A01000111; B11100011; ESC11100000; FLAG01111110在使用下列成帧方法的情况下,说明为传送4个字符A、B、ESC、FLAG所组织的帧而实际发送的二进制位序列(使用FLAG作为首尾标志,ESC作为转义字符)。1)字符计数法。2)使用字符填充的首尾定界法。3)使用比特填充的首尾标志法。
1.解答:
1)第一字节为所传输的字符计数5,转换为二进制为00000101,后面依次为A、B、ESC、FLAG的二进制编码:
00000101 01000111 11100011 11100000 01111110
2)首尾标志位FLAG(01111110),在所传输的数据中,若出现控制字符,则在该字符前插入转义字符ESC(11100000):
01111110 01000111 11100011 11100000 11100000 11100000 01111110 01111110
3)首尾标志位FLAG(01111110),在所传输的数据中,若连续出现5个“1”,则在其后插入“0”:
01111110 01000111 110100011 111000000 011111010 01111110