概述
- 数据链路层主要功能
在相邻节点之间保证数据帧的“透明” 传输。 - 数据帧
数据帧是数据链路层的最小数据传输单元, 即DPDU。
数据帧的一般格式:

差错控制
传输差错的特征
- 差错产生的主要原因
热噪声: 传输介质内的分子热运动。
冲击噪声: 外界干扰。 - 特征:
热噪声: 干扰幅度小,持续性,对模拟通信影响大。
冲击噪声: 干扰幅度大,突发性,对数字通信影响大。
计算机网络中, 差错控制主要针对冲击噪声。
差错控制方法
通过特殊的编码(差错控制码) , 使接收端能够发现甚至自动纠正错误。
- 差错控制编码
检错码: 能够发现差错, 但无法自动纠正差错, 通过发送方重传来获得正确的数据。
纠错码: 不但能过发现差错, 而且知道哪些位出错, 从而能够自动纠正差错。
流量控制

- 发送方A发送数据帧的速度过快,导致接收方B来不及接受而丢失。
- 数据帧丢失需要重发,浪费信道带宽。
- 流量控制基本思想: A必须获得B的许可才能发送数据帧,从而限制发送方A的发送速度。
- 流量控制策略(协议):
停—等协议
滑动窗口协议
顺序接收管道协议 (回退n协议 )
选择重传协议
停—等协议
协议描述:
-
发送端发送一帧后, 等待对方的应答。
-
接收端收到一帧后, 检查校验位串, 若出错, 则返回“否认” ;若无错, 则返回“确认” 信息。
-
发送端收到“确认” 后, 立即发送下一帧;收到“否认” , 则重发该帧。
-
发送端发送一帧后, 立即启动超时计时器。 若超时, 则重发该帧。
-
接收端应保存最近收到的帧序号, 若下一个到达帧的序号与该序号相同, 则丢弃该帧, 并返回“确认” 信息。

-
缺点:信道利用率低
-
优点:简单
-
信道最大利用率 U = L / B L / B + 2 R U=\frac{L/B}{L/B+2R} U=L/B+2RL/B
其中, B为信道速率, L为帧长, R为信号的单程传播延时, U为信道的最大利用率。
滑动窗口协议
- 基本思想:
为提高信道利用率, 允许发送方连续发送若干帧, 然后再等待对方应答。 - 基本概念
窗口:可容纳数据帧的缓冲区。
发送窗口:发送方用来保存已发送但尚未确认的数据帧。
接收窗口:接收方用来保存已正确接收但尚未提交给主机(网络层)的数据帧。
窗口尺寸:窗口中可容纳数据帧的数目。
帧序号:为保证接收方能按正确次序向主机递交数据帧而设立的临时编号。 一般在数据帧的控制字段中用 n 位表示帧序号。 如果用3位表示, 则帧序号为0~7;当超过8帧时,则重复使用这8个帧序号。
窗口号:对应帧序号。 - 滑动窗口协议的基本规则
设发送窗口尺寸为2, 接收窗口尺寸为1,则:
只有帧序号落入当前窗口的帧才有资格发送;发送方收到对方确认信息后, 发送窗口向前滑动(顺序改变当前窗号) 。
只有帧序号落入当前窗口的帧才接收, 否则丢弃;接收窗口中的帧递交给主机后, 接收窗口向前滑动(顺序改变当前窗号) 。
顺序接收管道协议 (回退n协议)
- 协议描述:
设:发送窗口尺寸WT >1, 接收窗口尺寸WR=1。
- 发送方连续发送n帧而无需对方应答, 但需要将已发出但尚未得到确认的帧保存在发送窗口中, 以备重发。
- 接收方将正确且帧序号落入当前接收窗口的帧存入接收窗口,同时按序将接收窗口的帧送交给主机(网络层) 。 出错或帧序号未落入当前窗口的帧予以丢弃。
- 当某帧丢失或出错时, 则其后到达的帧均丢弃, 并返回应答信息, 请求对方从出错帧开始重发。
- 发送方设置一个超时计时器, 当连续发送n帧后, 立即启动超时计时器;若超时且未收到应答, 则重发这n帧。
- 优点:仅需一个接收缓冲区。
- 缺点:当信道误码率较高时,会产生大量重发帧。
选择重传协议
- 发送窗口尺寸WT >1, 接收窗口尺寸WR >1 。
- 若某一帧出错, 后面正确到达的帧虽然不能立即送网络层, 但可将其保存在接收窗口;因此, 仅需重传出错帧。
- 优点:仅需重传出错帧,不会产生大量重发帧。
- 缺点:需要多个接收缓冲区
停—等 、 顺序接收管道、 选择重传协议都可以看成是滑动窗口协议, 其差别仅在窗口的尺寸不同, 如下表所示 :

设帧序号的位数为n, 则:
WT≥WR
WT+ WR≤2n
- 若WR >WT , 则有 WR-WT个窗口永远用不上。
- WT+ WR≤2n保证了上一轮帧序号和下一轮序号在WT+WR范围内不会出现重复;否则, 接收端无法判断落入窗口的帧是属于哪一轮的。
数据链路层协议举例
HDLC协议
HDLC (High Level Data Link Control) 是一种典型的数据链路层协议,该协议“面向比特”,即以“比特”作为数据帧的基本数据单位。
HDLC帧格式

-
标志
帧同步标志, 固定为“01111110” , 标志着一个帧的开始与结束。
连续发送多帧时, 可用一个标志字段, 既表示帧的开始, 又表示帧的结束。
为了避免其它字段中出现“01111110”, HDLC采用插“0”技术:
发送方:除标志位外,连续发送5个“1” 后自动插“0”。
接收方:连续收到5个“1” 后,其后为“0” ,则自动去掉该“0” 。其后为“1” ,则检查下一位:为“0” 则为标志位。为“1” 则出错。 -
地址
全“1”为广播地址, 全“0”为无效地址。
在多点通信中, 表示目的地址。
在点到点通信中, 地址没有太大意义, 一般用来区分发起方和响应方。 -
控制
该字段表示帧类型,帧编号及其他控制信息。
控制字段格式

N(S): 表示信息帧的帧序号(0-7)。
N®: 接收端期望接收的下一帧的序号。
P/F : 轮询/结束位,用于多点轮询访问方式。
S:
00:确认以前各帧,准备接受序号从N®开始的后继帧。
10:确认以前各帧,但暂停接收后继帧,用来进行流量控制。
01:否认N®起的各帧,请求重发序号从N®开始的各帧。
11:仅否认 N®帧,请求重发序号为N®的单帧。
M: 共5位,表示32种控制功能。 -
数据
要传输的数据,即高层的报文分组, 可以是任意二进制位的组合。 -
帧校验
16位CRC码, G(X)= CRC-CCITT = x16+x12+x5+1。
HDLC工作原理:

- 建立链路连接
通过层间接口(服务),请求建立物理连接。
请求建立链路连接,即发送SNRM帧。
接收方同意建立链路连接,即返回UA帧 - 传输数据帧
数据链路建立完毕,发送/接收方按照某种流量控制策略(停-等、回退n、选择重传),发送和接收数据帧,并允许“捎带应答”。 - 拆除链路连接
全部数据发送完毕,发送方发出“DISC” (拆除连接)无编号帧,接收方返回UA帧作为响应,释放链路层实体占用的资源。
PPP协议
PPP(Point to Point Protocol) 协议应用场合

ISP: Internet服务提供商,为用户提供接入线路、 IP地址和信息增值服务。
PPP帧格式
标志: 01111110, 标志一帧的开始和结束。
地址:总是固定为11111111。
控制:缺省00000011。
协议: PPP的高层协议, 如 十六进制0021表示IP协议。
数据:静载荷数据, 如 IP分组。
CRC: CRC码, 同HDLC。
在缺省的情况下, PPP没有采用帧序号和确认机制来进行可靠的传输,主要用于信道质量较好的场合,对于信道质量较差的场合(如无线信道),应采用其他协议。
本文深入探讨数据链路层的功能,包括数据帧的格式、差错控制与流量控制方法,以及HDLC和PPP协议的工作原理。阐述了停—等、滑动窗口、顺序接收管道和选择重传协议的特点。
409

被折叠的 条评论
为什么被折叠?



