第 6 章 数据链路层
6-1 填空题
- ( 帧 )是数据链路层的传输单元。
- 进行流量控制的两种方法是( 停止等待 )和( 滑动窗口 )。
- 数据链路层常用的检测帧错误的方法是(CRC )。
- 在数据帧的传输过程中,可能会出现两类错误,一个是( 帧丢失 ),另一个是(帧损坏 )。
- 数据链路层为了检测数据帧或确认帧丢失,每发送一个数据帧都设置一个( 定时器 )。
- CRC-32 生成多项式为 X32+ X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1,写成二进制形式为( 100000100110000010001110110110111 )
- 停止等待协议中,发送端发出一个帧后,如果超时计时器到时间了,还没有收到确认,则应该( 重传刚发出的帧 )。
- 连续 ARQ 协议中用 n 个比特进行数据帧编号,则其发送窗口 WT的大小应满足(WT<=2n-1 )。
- 确认帧 ACKn 表示前续数据帧已经收到,现在期望接收第( n )号帧。
- 当接收方收到 5 号帧时,应该回复一个 ACK,ACK 的编号是( 6 )。
- HDLC 协议定义 3 种类型的帧,分别是( 信息帧 )、( 监督帧 )和( 无编号帧 )。
- HDLC 协议的帧结构依次为标志、地址、( 控制 )、信息、FCS 和标志。
- HDLC 协议的帧首尾标志用二进制表示为( 01111110 )。
- PPP 协议中,认证所用到的协议是( PAP )和( CHAP )。
6-2 选择题
- 下列不属于数据链路层功能的是( B )。
A.帧同步 B.电路管理
C.差错控制 D.流量控制 - 流量控制是为了防止( C )。
A.比特差错 B.发送方缓存溢出
C.接收方缓存溢出 D.接收方和发送方之间冲突 - 在滑动窗口流量控制中,接收窗口左侧的帧是( B )。
A.接收但未确认 B.接收并已确认
C.未接收 D.未发送 - 在滑动窗口流量控制中,接收窗口里面的帧是( C )。
A.接收但未确认 B.接收并已确认
C.当前可以接收 D.当前不能接收 - 在滑动窗口流量控制中,接收窗口右侧的帧是( D )。
A.接收但未确认 B.接收并已确认
C.当前可以接收 D.当前不能接收 - 在滑动窗口流量控制中,发送窗口左侧的帧是( A )。
A.已发送并已被确认 B.已发送但未被确认
C.当前可以发送 D.当前不能发送 - 在滑动窗口流量控制中,发送窗口里面的帧是( C )。
A.已发送并已被确认 B.接收并已确认
C.当前可以发送 D.当前不能发送 - 在滑动窗口流量控制中,发送窗口右侧的帧是( D )。
A.已发送并已被确认 B.已发送但未被确认
C.当前可以发送 D.当前不能发送 - 连续 ARQ 中,若数据链路的发送窗口大小为 WT=4,在发送完 3 号帧、并收到对 2 号帧的确认帧后,发送方还可以继续发送( C )个帧。
A.1 B.2 C.3 D.4 - 给一个帧编号的时候,帧的序号所能取的值是有限的。下面哪个选项是一个帧序号正确的取值范围。 ( A )
A.0 ~ 63 B.0 ~ 64 C.1 ~ 63 D.1 ~ 64 - 在连续 ARQ 协议中,如果 1, 2, 3 号帧被正确接收,那么接收方可以发送一个编号为( D )的确认帧给发送方。
A.1 B.2 C.3 D.4 - 对于发送窗口大小为 n 的滑动窗口,在没有收到确认前,最多可以发送( C )个帧。
A.0 B.n-1 C.n D.n+1 - 在滑动窗口流量控制(窗口大小为 8)中,ACK3 意味着接收方已经收到了第( A )号帧。
A.2 B.3 C.4 D.8 - ARQ 代表( B )。
A.自动重复量化 B.自动重复请求
C.自动重传请求 D.应答重复请求 - 当发出( A )后,定时器开始启动。
A.数据帧 B.ACK 帧 C.NAK 帧 D.以上全部 - 在连续 ARQ 协议中,如果数据帧使用 4bit 来编号,则发送窗口最大为( D )。
A.4 B.8 C.16 D.15 - 在连续 ARQ 协议中,如果数据帧使用 4bit 来编号,则接收窗口大小为( D )。
A.4 B.8 C.16 D.1 - 采用连续 ARQ 协议,接收窗口位置为 4 时,接收到 5 号帧应该( A )。
A.丢弃 B.缓存 C.递交高层 D.不做处理 - 当数据传输出现差错,发送端要进行数据重发的差错控制方法称为( C )。
A.循环冗余校验 B.前向纠错
C.自动重传请求 D.后向纠错 - 在停止等待协议中,数据帧用( A )个比特来编号。
A.1 B.2 C.3 D.4 - 在停止等待协议中,接收方窗口大小为( D )。
A.4 B.8 C.16 D.1 - HDLC 是( A )协议。
A.面向比特的 B.面向字符的
C.面向字节的 D.基于计数的 - HDLC 的( A )字段定义帧的开始和结束。
A.标志 B.地址
C.控制 D.帧校验序列 - HDLC 中,监控帧是( C )。
A.用于传送数据的帧 B.专用的控制帧
C.确认帧和否认帧 D. 以上全部 - HDLC 中,信息帧是( A )。
A.用于传送数据的帧 B.专用的控制帧
C.确认帧和否认帧 D. 以上全部 - HDLC 中,无编号帧是( B )。
A.用于传送数据的帧 B.专用的控制帧
C.确认帧和否认帧 D. 以上全部 - 采用 HDLC 传输比特串 011111111000001,零比特填充后输出为( B )。
A.0101111111000001 B.0111110111000001
C.0111101111000001 D.0111111011000001 - PPP 帧中,( D )字段定义数据字段的内容。
A.标志 B.地址 C.控制 D.协议 - 关于 HDLC 协议和 PPP 协议,错误的是( D )。
A.HDLC 协议提供流量控制和差错控制的功能
B.HDLC 协议可以用于多点通信
C.PPP 协议只能用于点对点通信
D.PPP 协议提供流量控制和差错控制的功能 - BSC 协议中,表示正文开始的特殊控制字符是( B )。
A.SOH B.STX C.ETX D.ETB
6-3 判断题
- 网络通信中只有数据链路层提供流量控制。×
- 运输层不提供差错控制,差错控制是数据链路层的功能。×
- 连续 ARQ 协议中,如果源端已经发送了 3、4、5、6 号帧,但是现在 3 号帧出现了差错,则除了重传 3 号帧外,还要重传 4、5、6 号帧。√
- 停止等待协议中,发送端发出的数据帧有可能丢失,但返回的确认帧是不会丢失的。×
- 停止等待协议中,发送端发出一个帧后,应该一直等待,直到收到接收端发回的确认帧或否认帧后才能作出下一步的动作。√
- 发送窗口大小为 6 的时候,如果已经发送了 0、1、2、3 四个帧,并收到了对 0 和 1 号帧的确认,则接下来可以发送 4、5、6、7 号帧。√
- 在连续 ARQ 协议中,发送窗口越大时,接收窗口一般也应该设的越大,以跟上发送端的速度。×
- 连续 ARQ 协议的接收端窗口比停止等待协议的接收端窗口要大。×
- 在连续 ARQ 协议中,如果用 3 个比特进行编号,则发送端窗口最大为 8。×
- 在连续 ARQ 协议中,如果用 4 个比特进行编号,则发送端窗口可以为 14。√
- HDLC 帧中,如果要发送的数据是“00011101011110011001”,则经过零比特填充后,数据并没有变化。 √
- 停止等待协议不能实现完整的差错控制和流量控制。 ×
- 连续 ARQ 协议总是比停止等待协议效率高。 ×
- 在停等协议中超时定时器的功能是避免死锁。√
- 在停等协议中,如果接收方发现重复帧,只要丢掉重复帧就可以了,不需要其他的动作。×
- 使用 CRC 校验不能绝对确保数据的正确校验。√
- CRC 校验码可以用来纠错。×
- 数据链路层的传输单元称为分组。×
- HDLC 是面向字符的同步控制协议。×
- PPP 协议中,PAP 认证比 CHAP 认证更安全。×
6-4 简答题
- 数据链路和链路有何区别?
答:
链路指的是一条无源的点对点的物理路线,中间没有任何结点,链路也称数据电路、物理链路。物理链路是数据传递的物理基础,数据要转换成电磁信号在链路上传递。但是仅有物理链路是不够的,还需要对数据的传输进行控制,通信双方必须商定一些通信规则,用来控制数据的传递,保证数据传输的正确性,这些规则就是数据链路层协议。物理链路和它上面运行的链路层协议一起组成了数据链路。 - 数据链路层的功能有哪些?
答:成帧、流量控制、差错控制、链路管理、寻址、区分控制和数据 - 帧是如何生成的?什么是帧同步?常用的帧同步的方法有哪些?
答:
数据链路层收到网络层的报文,在报文前面添加首部,后面添加尾部,形成帧帧同步是指数据链路层用来区分帧开始和帧结束的技术。
常用的帧同步技术有:字节计数法、含字节填充的分界符法、含位填充的分界标志法、物理层编码违例法。 - 简述停等和滑动窗口的原理。
答:
(1)停止等待:
数据帧以 0,1 交替进行编号。
发送方每发完一帧后要等待接收方的确认,同时开启计时器。如果计时器时间内收到确认帧 ACK,就发送下一帧后,如果收到否认帧 NAK,就重传。
接收方收到正确的帧,就发送确认帧 ACK,如果收到错误的帧,就发送否认帧 NAK
(2)滑动窗口
数据帧编号为 n 比特,帧编号为 0,1,2…2n-1,0,1,2…2n-1 方式重复编号
发送方设置发送窗口,帧编号落在发送窗口内的帧,可以直接发送不需等待确认,不在发送窗口内的帧,不能发送。收到对方确认后,发送窗口向右移动,将新的帧纳入窗口,从而可以持续不断地发送数据帧。为了防止确认帧丢失而造成双方死锁等待,发送方发出帧后还会开启定时器,如果定时器超时没有收到确认,就重传数据帧。数据帧以 n 比特编号,发送窗口 WT<=2n-1。
接收方设置接收窗口,帧编号落在接收窗口内的帧,可以接收,落在接收窗口外的帧丢弃。接收帧以后,要发送确认,ACKn 表示编号 n 以前的帧都收到了,现在期望收到编号为n 的帧。数据帧以 n 比特编号,发送窗口 WR<=2n-1。 - 数据链路层是如何进行差错控制的?
答:
(1)帧损坏:通过 CRC 冗余校验
(2)帧丢失:主要采用帧编号、确认帧和定时器的方法。
发送方要对帧进行编号,而接收方每收到一个帧,就向发送方发送一个确认帧。
发送方每发送一个帧,就启动一个定时器。如果定时器时间到了,确认帧仍未收到,
就认为该帧丢失了,进行重传。 - 分别给出 HDLC 协议和 PPP 协议的帧格式。
答:
(1)HDLC 帧格式
(2)PPP 帧格式
- HDLC 的帧可以分为哪几大类?试简述各类的的作用。
答:
(1)信息帧(I 帧):用于数据传送
(2)监控帧(S 帧): 监控帧用于监视和控制数据链路,完成信息帧的接收确认、重发请求、暂停发送请求等功能。
(3)无编号帧(U 帧): 用于数据链路的控制 - 试简述 HDLC 帧各字段的的含义,并说明 HDLC 中控制字段的格式。
答:
(1)标志字段用来区分帧的开始和结束。HDLC 指定采用 01111110 为标志序列。
(2)地址字段表示链路上站的地址
(3)控制字段是 HDLC 的关键字段,许多重要的功能都靠它来实现。控制字段用来表示帧类型、帧编号以及命令、响应等。控制字段格式如下图:
(4)信息字段内包含了用户的数据信息和来自上层的各种控制信息
(5)帧校验序列 FCS 占 16 比特,采用 CRC 校验 - 试简述 PPP 协议的工作过程。
答:
(1)双方建立物理链路
(2)双方使用 LCP 建立数据链路,协商确定数据链路参数
(3)用户认证,使用 PAP 或 CHAP
(4)网络配置,使用 IPCP,获取 IP 地址等信息
(5)数据传输,IP 报文封装在 PPP 帧中发送
(6)数据传输完毕,使用 IPCP 协议断开网络连接
(7)使用 LCP 协议断开数据连接 - 简述 PAP 协议与 CHAP 协议的不同。
答:
(1)工作流程不同:数据连接建立后,PAP 客户端首先向系统发送用户名和密码,系统查询用户名和其对应的密码,如果和用户发的一致,认证成功,系统发送确认,否则系统发送否认。
数据连接建立后,由系统首先向客户端发送挑战包,包内含有随机数 r。客户端收到后,将随机数 r 和自己的密码经过运算,将运算得到的结果和用户名一起发送给系统,系统通过用户名查询密码,将查到的密码和随机数 r 进行相同运算,计算的结果如果和用户发来的相同,则认证成功,否则认证失败。
(2)安全性:PAP 直接在线路上发送用户名和密码,不安全;CHAP 在线路上传输的是经过运算后的密码,安全性高,而且使用了随机数,能够防止重放攻击。 - 试分别对停等 ARQ、连续 ARQ 及选择重传 ARQ 三种技术进行特点分析,并对比三种
技术的优缺点。
答:
停等 ARQ 采用了停止等待协议作为流量控制,协议简单,容易实施,但执行效率低,在等待确认帧的时间,发送方不能发送后面的帧,线路空闲。
连续 ARQ 采用了滑动窗口机制进行流量控制,发送窗口大于 1,在等待确认的时间内,发送窗口内的帧都可以继续发送,可以充分利用线路。但连续 ARQ 接收窗口大小为 1,如果第 n 帧出错被丢弃,即便第 n 帧以后所有的帧都正确到达,也会被丢弃,因此第 n 帧以后的帧都需要重传,存在重复发送帧的问题。
选择重传 ARQ,发送窗口和接收窗口都大于 1,发送方可以同时发送多个帧,接收方也可以同时接收多个帧,避免了连续 ARQ 重复发送帧的问题,但协议实施起来比连续 ARQ要复杂,也需要较大的缓冲区。
6-5 计算题
- 设生成多项式为 11001,要发送的数据比特序列为 1011001,请计算 CRC 校验码,写出含有 CRC 校验码的实际发送数据比特序列。
答:CRC 校验码:1010,发送数据比特序列:10110011010 - 设生成多项式为 110101,要发送的数据比特序列为 101011010101,请计算 CRC 校验码,给出含有 CRC 校验码的发送端发送的实际比特序列。
答:CRC 校验码:01101,发送比特序列 10101101010101101 - 有一比特串为:011001011111110111110110,经过零比特填充法后得到的比特串是什么?有一比特串经过零比特填充后得到序列为:011001011111000111110110。试还原成原来的比特串。
答:
011001011111110111110110 零比特填充:01100101111101101111100110
011001011111000111110110 零比特还原:0110010111110011111110