计算机网络学习笔记 3.1 数据链路层的功能
前言
参考王道考研复习指导
由于本菜鸡第一次发****,许多格式不会用。后续会进一步整理,包括添加笔记内容,标明参考资料。暂时只将学习时的markdown直接导入。
更新中。。。
目录
一、数据链路层的研究思想
研究数据链路层的问题时,我们可以只关心在协议栈中水平方向的各数据链路层。于是,当主机A向主机B发送数据时,可以想象数据在数据链路层从左向右沿水平方向传送的,如图中粗箭头所示。
二、数据链路层基本概念
1、结点
主机、路由器
2、链路
网络中两个结点(相邻节点)之间的物理通道。
- 链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
数据链路
网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧
链路层的协议数据单元,封装网络层数据报。
3、数据链路层功能概述
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到目邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接文造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
- 功能一:为网络层提供服务
- 功能二:链路管理
- 功能三:组帧
- 功能四:流量控制
- 功能五:差错控制(帧错、位错)
1. 为网络层提供服务
对网络层而言,数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网络层。数据链路层通常可为网络层提供如下服务:
- 无确认无连接服务
- 有确认无连接服务
- 有确认面向连接服务
注意:有连接就一定有确认,即不存在无确认的面向连接的服务。
无确认的无连接服务
- 源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧时不需发回确认。
- 对丢失的帧,数据链路层不负责重发而交给上层处理。
- 适用于实时通信或误码率较低的通信信道,如以太网。
有确认的无连接服务
- 源机器发送数据帧时不需先建立链路连接,但目的机器收到数据帧时必须发回确认。
- 源机器在所规定的时间内未收到确定信号时,就重传丢失的帧,以提高传输的可靠性。
- 适用于误码率较高的通信信道,如无线通信。
有确认的面向连接服务
- 帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路。
- 目的机器对收到的每一帧都要给出确认,源机器收到确认后才能发送下一帧,因而该服务的可靠性最高。
- 适用于通信要求(可靠性、实时性)较高的场合。
2. 链路管理(用于面向连接的服务)
即连接的建立、维持、释放
3. 组帧(帧定界、帧同步、透明传输)
两个工作站之间传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传送。
将一段数据的前后分别添加首部和尾部,就构成了帧。首部和尾部中含有很多控制信息,它们的一个重要作用是确定帧的界限,即帧定界。
而帧同步指的是接收方应能从接收到的二进制比特流中区分出帧的起始与终止。
如在HDLC通信规程中,用标识位F(01111)来标识帧的开始和结束。通信过程中,检测到帧标识位F即认为是帧的开始,然后一旦检测到帧标识位F即表示帧的结束。
HDLC标准帧格式如图所示 :
4. 流量控制
由于收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,如若此时不适当限制发送方的发送速率(即链路上的信息流量),前面来不及收的帧将会被后面不断发送来的帧"淹没",造成帧的丢失而出错。
因此,流量控制实际上就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。
这个过程需要通过某种反馈机制使发送方能够知道接收方是否能跟上自己,即需要有一些规则使得发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收到某种反馈信息后继续发送。
流量控制并不是数据链路层特有的功能,许多高层协议中也提供此功能,只不过控制的对象不同而已。
对于数据链路层来说,控制的是相邻两结点之间数据链路上的流量,而对于运输层来说,控制的则是从源端到目的端之间的流量。
5. 差错控制(位错、帧错)
由于信道噪声等各种原因,帧在传输过程中可能会出现错误。用以使发送方确定接收方是否正确收到由其发送的数据的方法称为差错控制。
通常,这些错误可分为位错和帧错。
位错
位错指帧中某些位出现了差错。通常采用循环冗余校验(CRC)方式发现位错,通过自动重传请求(Automatic Repeat reQuest,ARQ)方式来重传出错的帧。
具体做法是:让发送方将要发送的数据帧附加一定的CRC冗余检错码一并发送,接收方则根据检错码对数据帧进行错误检测,若发现错误则丢弃,发送方超时重传该数据帧。这种差错控制方法称为ARQ法。
ARQ法只需返回很少的控制信息就可有效地确认所发数据帧是否被正确接收。
帧错
帧错指帧的丢失、重复或失序等错误。在数据链路层引入定时器和编号机制,能保证每一帧最终都能有且仅有一次正确地交付给目的结点。
习题
1、数据链路层协议的功能不包括( )。
A.定义数据格式
B.提供结点之间的可靠传输
C.控制对物理传输介质的访问
D.为终端结点隐蔽物理传输的细节
答案:D
解析:
数据链路层的主要功能包括组帧,组帧即定义数据格式,A正确。数据链路层在物理层提供的不可靠的物理连接上实现结点到结点的可靠性传输,B正确。控制对物理传输介质的访问由数据链路层的介质访问控制(MAC)子层完成,C正确。数据链路层不必考虑物理层如何实现比特传输的细节,因此D错误。
2、为了避免传输过程中帧的丢失,数据链路层采用的方法是( )。
A.帧编号机制 B.循环冗余校验码
C.汉明码 D.计时器超时重发
答案:A
解析:
为防止在传输过程中帧丢失,在可靠的数据链路层协议中,发送方对发送的每个数据帧设计一个定时器,当计时器到期而该帧的确认帧仍未到达时,发送方将重发该帧。为保证接收方不会接收到重复帧,需要对每个发送的帧进行编号;汉明码和循环冗余校验码都用于差错控制。
3、于信道比较可靠且对实时性要求高的网络,数据链路层采用( )比较合适。
A.无确认的无连接服务
B.有确认的无连接服务
C.无确认的面向连接服务
D.有确认的面向连接服务
答案:A
解析:
无确认的无连接服务是指源机器向目标机器发送独立的帧,目标机器并不对这些帧进行确认。事先并不建立逻辑连接,事后也不用释放逻辑连接。若由于线路上有噪声而造成某一帧丢失,则数据链路层并不会检测这样的丢帧现象,也不会回复。当错误率很低时,这一类服务非常合适,这时恢复任务可以留给上面的各层来完成。这类服务对于实时通信也是非常合适的,因为实时通信中数据的迟到比数据损坏更不好。
4、流量控制实际上是对( )的控制。
A.发送方的数据流量 B.接收方的数据流量
C.发送、接收方的数据流量 D.链路上任意两结点间的数据流量
答案:A
解析:
流量控制是通过限制发送方的数据流量而使发送方的发送速率不超过接收方接收速率的一种技术。流量控制功能并不是数据链路层独有的,其他层上也有相应的控制策略,只是各层的流量控制对象是在相应层的实体之间进行的。
2、下述协议中,( )不是链路层的标准。
A.ICMP B.HDLC
C.PPP D.SLIP
答案:A
解析:
际控制报文协议(ICMP)是网络层协议;PPP是在SLIP基础上发展而来的,都是数据链路层协议。
2、波特率等于( )。
A. 每秒可能发生的信号变化次数 B. 每秒传输的比特数
C. 每秒传输的周期数 D. 每秒传输的字节数
答案:A
解析:
波特率表示信号每秒变化的次数(注意和比特率的区别)。
2、波特率等于( )。
A. 每秒可能发生的信号变化次数 B. 每秒传输的比特数
C. 每秒传输的周期数 D. 每秒传输的字节数
答案:A
解析:
波特率表示信号每秒变化的次数(注意和比特率的区别)。