第四章数据链路层
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义
码字:码字由信息位串和校验位串(冗余位串)组成。设信息位 为m位,校验位为r位,则码字长度为n=m+r。
计算机与信息学院
5
4.2 差错控制
两个码字的距离 两个等长码字的不同位数称为这两个码字的距离,简称码距。 如:10001001 10110001 则这两个码字的距离为3。
海明距离 给定某种编码规则,就能够造出包含全部合法码字的码字 表(编码系统);该码字表中必存在着两个码字,使得这两个 码字的距离最小;该最小距离称为该码字表(编码系统)的海 明距离。 海明距离决定了编码系统的检错和纠错能力
除数G(X)
被除数
→
1010001 1101
信息位串
校验位串
1101
R(x)= x3+x2+ 1
余数
14
计算机与信息学院
4.2 差错控制
编码电路
R0
+
R1
+
R2
R3
+
10111000101 输出
1000101
输入
G (x) = x4+x2+x+1的编码电路
译码原理(接受端)
接受方收到一个码字后,用同一生成多项式G(x)除该码字多项式T′ (x), 若MOD(T′(x))/G(x))=0,则正确 若MOD(T′(x))/G(x))≠0,则出错 思考:
时间
19
计算机与信息学院
4.3 流量控制
4.3.3 滑动窗口协议
基本思想:为提高信道利用率,允许发送方连续发送若干帧,然 后再等待对方应答。
基本概念 窗口:可容纳数据帧的缓冲区。 发送窗口:发送方用来保存已发送但尚未确认的数据帧。 接收窗口:接收方用来保存已正确接收但尚未提交给主机 ( 网 络层)的数据帧。 窗口尺寸:窗口中可容纳数据帧的数目。 帧序号:为保证接收方能按正确次序向主机递交数据帧而设 立的临时编号。一般在数据帧的控制字段中用 n 位表 示帧序号。如果用 3 位表示,则帧序号为 0—7 ;当超过 8 帧时, 则重复使用这8个帧序号。 窗口号:对应帧序号。
编码的检错和纠错能力
若要检测d位出错,则海明距离至少为d+1。 若要纠正d位出错,则海明距离至少为2d+1。
计算机与信息学院
6
4.2 差错控制
例:设有一编码系统的码字表有4个码字组成: 0000000000 1111100000
0000011111 1111111111
因为海明距离为5,可检测出4位出错,自动纠正2位出错。 如果出错位不超过4位,则收到的码子必定是非法的码子,即不属
2
计算机与信息学院
4.1 概述
数据链路层主要功能
在相邻节点之间保证数据帧的“透明”传输。 数据帧 数据帧是数据链路层的最小数据传输单元,即DPDU。
数据帧的一般格式:
帧同步 目的地址 源地址 控制 数据 帧校验
数据链路层协议涉及的主要内容
数据链路的建立与拆除 帧同步 差错控制 流量控制
若MOD(T’(x))/G(x))=0, 是否一定正确? 若MOD(T’(x))/G(x)) ≠0,是否一定出错?
计算机与信息学院
15
4.2 差错控制
生成多项式性质
若G(x)含有x+1因子,则能检测出所有的奇数位错。 若G(x)含有常数项1,那么能检测出所有突发长度≤r的突发错。 若 G(x) 含有常数项 1 ,且对任何 0<e≤n-1 的 e, 除不尽 xe+1, 则能 检测出所有的双位错。
出错位
无 1 2 3 4 5 6 7
计算机与信息学院
s1
0 1 1 1
s2
0 0 1 1
s3
0 1 0 1
0
1 0 0
1
0 1 0
1
0 0 1
10
4.2 差错控制
讨论
上述海明码只能纠正一位出错,而实际通信中经常发生的是突 发性错误(一连串位出错)。 要纠正突发性出错,则必须加大海明距离;但加大海明距离势 必会增加校验位串长度,从而降低了编码效率,同时也会使编 码系统过于复杂。 只要将发送方式稍做改变,就能利用纠正一位出错的海明码来 纠正多位突发错:
若G(x)不含x因子,则对于突发长度为r+1的突发错误的漏校率为2-(r-1) 。 若G(x)不含有x因子, 则对突发长度大于r+1的突发错误的漏校率为2-r 。
几个标准G(x) = x12+x11+x3+x2+x+1 CRC-16 = x16+x15+x2+1 CRC-CCITT = x16+x12+x5+1
显然,编码表的海明距离为3,能够自动纠正一位出错。
计算机与信息学院
纠错原理 设发送方发出的码字为: a1a2a3a4 a5a6a7 接受方收到的码字为:b1b2b3b4 b5b6b7 令:br= ar+er
r=1,2,……..7
(4-2)
若第r位出错,则er=1;否则er=0。 再令: s1= b1 +b2+b3+ b5 s2= b2 +b3+ b4+b6 s3= b1 +b3+b4+ b7
将k个码字排列成一个矩阵,每行一个码字。按列发送,一次传输k 个码字。 数据到达接收端后,再重新组成矩阵。如果突发长度≦K,则每个码 字最多出现一位错误,而前述的海明码恰好能够纠正这样的一位错。
11
计算机与信息学院
4.2 差错控制
4.2.5 循环冗余码(检错码)
循环冗余码(CRC码) 是目前计算机网络中使用最广泛的一种检错码。
其中,+:异或, 由式(4-1)构造的编码表如下:
0000000 0001011 0010111 0011100
0100110 0101101 0110001 0111010
1000101 1001110 1010010 1011001
1100001 1101000 1110100 1111111
8
第四章 数据链路层
课前思考
为什么建立数据链路连接? 数据链路连接与物理连接的联系和区别?
数据链路层主要功能有哪些?
数据链路层上常用的差错控制码有哪些? 数据链路层上常用的流量控制策略有哪些? 常用的数据链路层协议有哪些?
1
计算机与信息学院
本章内容
4.1 概述 4.2 差错控制 4.3 流量控制 4.4 数据链路层协议举例
17
计算机与信息学院
4.3 流量控制
4.3.2 停—等协议
协议描述
发送端发送一帧后,等待对方的应答。 接收端收到一帧后,检查校验位串,若出错,则返回“否 认”;若无错,则返回“确认”信息。 发送端收到“确认”后,立即发送下一帧;收到“否认”, 则重发该帧。 发送端发送一帧后,立即启动超时计时器。若超时,则重发 该帧。 接收端应保存最近收到的帧序号,若下一个到达帧的序号与 该序号相同,则丢弃该帧,并返回“确认”信息。
于码子表; 如果出错位为5位,则出错的码子可能是合法的码子。 例: 发送的码子为1111100000,而收到的码子1111111111。
设收到的码字为0000000111,如果出错位不超过两位,则可以
断定其正确码字为0000011111; 如果出错位可能超过两位(如3 位),则无法断定其正确码字是 0000011111,还是0000000000。 编码效率 R=m/n=m/(m+r)
CRC码又称多项式码,每个码字对应于一个多项式。
设码字为a1a2a3….an,则对应的多项式为:A(x)=a1xn-1+ a2xn-2+ a3xn-3+. …+an 如: 110001 →x5+x4+1 编码原理(发送端)
设信息位串为a1a2a3….am ,则对应的多项式为: M(x)=a1xm-1+ a2xm-2+ a3xm-3+. …+am 选择一个r次多项式G(x)作为生成多项式,按下面步骤生成校验串:
其中,m为信息位串长度, r为校验位串(冗余位串)长度。 计算机与信息学院
7
4.2 差错控制
4.2.4 海明码(纠错码)
构造海明码 设信息位有4位,记为a1a2a3a4;校验位为3位,记为a5a6a7。 编码 系统中任何一个合法的码字满足如下线性独立的方程: a5= a1 +a2+ a3 (4-1) a6= a2 +a3+ a4 a7= a1 +a3+ a4
20
计算机与信息学院
4.3 流量控制
滑动窗口协议的基本规则
只有帧序号落入当前窗口的帧才有资格发送;发送方收到对方 确认信息后,发送窗口向前滑动(顺序改变当前窗号)。 只有帧序号落入当前窗口的帧才接收,否则丢弃;接收窗口中 的帧递交给主机后,接收窗口向前滑动(顺序改变当前窗号)。 设发送窗口尺寸为2, 接收窗口尺寸为1,则:
22
计算机与信息学院
4.3 流量控制
优点:仅需一个接收缓冲区。 缺点:当信道误码率较高时,会产生大量重发帧。
计算 :R(x)= MOD(xrM(x)/G(x))
13
计算机与信息学院
4.2 差错控制
1001111
商
10111 10100010000 10111 11010 10111 11010 10111 11010 r T(x) = x M(x)+ R(x) 10111 = x10+x8+ x4+x3+x2+ 1 11010 10111
4
计算机与信息学院
4.2 差错控制
4.2.2 差错控制方法
通过特殊的编码(差错控制码),使接收端能够发现甚至自动 纠正错误。 差错控制编码
检错码:能够发现差错,但无法自动纠正差错,通过发送方重传来 获得正确的数据。
纠错码:不但能过发现差错,而且知道哪些位出错,从而能够自动 纠正差错。
4.2.3 编码的检错和纠错能力、编码效率
(4-3)
s1 s2 s3称为校验因子;接受方将根据校验因子来判断哪位出错。 将(4-1),(4-2)代入(4-3)得: s1= e1 +e2+ e3+ e5 s2= e2 +e3+ e4+ e6 s3= e1 +e3+ e4+ e7
计算机与信息学院
(4-4)
9
4.2 差错控制
根据式(4-4): s1= e1 +e2+ e3 + e5 s2= e2 +e3+ e4 + e6 s3= e1 +e3+ e4+ e7 得到下表:
3
计算机与信息学院
4.2 差错控制
4.2.1 传输差错的特征
热噪声: 传输介质内的分子热运动。 差错产生的主要原因 冲击噪声:外界干扰。 热噪声: 干扰幅度小,持续性,对模拟通信影响大。 特征 冲击噪声:干扰幅度大,突发性,对数字通信影响大。
计算机网络中,差错控制主要针对冲击噪声。
如数据率为9600bps,一次闪电持续时间约为10ms,则连续破坏96位。
CRC-12 16
计算机与信息学院
4.3 流量控制
4.3.1 流量控制概述
A B
发送方A发送数据帧的速度过快,导致接收方B来不及接受而丢失。 数据帧丢失需要重发,浪费信道带宽。 流量控制基本思想: A必须获得B的许可才能发送数据帧,从而限 制发送方A的发送速度。 流量控制策略(协议)
停—等协议 滑动窗口协议 顺序接收管道协议 (回退n协议 ) 选择重传协议
21
计算机与信息学院
4.3 流量控制
顺序接收管道协议 (回退n协议)
协议描述 设:发送窗口尺寸WT= n >1, 接收窗口尺寸WR=1。
发送方连续发送 n帧而无需对方应答,但需要将已发出但尚 未得到确认的帧保存在发送窗口中,以备重发。
接收方将正确的且帧序号落入当前接收窗口的帧存入接收窗 口,同时按序将接收窗口的帧送交给主机(网络层)。出错 或帧序号未落入当前窗口的帧予以丢弃。 当某帧丢失或出错时,则其后到达的帧均丢弃,并返回否认 信息,请求对方从出错帧开始重发。 发送方设置一个超时计时器,当连续发送n帧后,立即启动 超时计时器;若超时且未收到应答,则重发这n帧。
18
计算机与信息学院
4.3 流量控制
缺点:信道利用率低 优点:简单 信道最大利用率
U= L/B
发送方
接收方
L/B+2R
L/ B 2R
其中,B为信道速率,L为帧长,R为信号的
单程传播延时,U为信道的最大利用率。 如考虑差错造成的重发、帧头和校验等冗余
信息、应答帧长度,信道的实际利用率远达不到
最大利用率。实际利用率见P.99。
在信息位串后补r个0,对应的多项式为xrM(x)
用模2不借位除法,计算余数R(x): R(x)= MOD(xrM(x)/G(x)) 要发送的码字多项式:T(x)=xrM(x)+ R(x)
源自文库12
计算机与信息学院
4.2 差错控制
例:信息位串为1010001,若G(x)= x4+x2+x+1,求CRC码。 解:M(x)= x6+x4+ 1 r=4 xrM(x)= x10+x8+ x4 →10100010000
码字:码字由信息位串和校验位串(冗余位串)组成。设信息位 为m位,校验位为r位,则码字长度为n=m+r。
计算机与信息学院
5
4.2 差错控制
两个码字的距离 两个等长码字的不同位数称为这两个码字的距离,简称码距。 如:10001001 10110001 则这两个码字的距离为3。
海明距离 给定某种编码规则,就能够造出包含全部合法码字的码字 表(编码系统);该码字表中必存在着两个码字,使得这两个 码字的距离最小;该最小距离称为该码字表(编码系统)的海 明距离。 海明距离决定了编码系统的检错和纠错能力
除数G(X)
被除数
→
1010001 1101
信息位串
校验位串
1101
R(x)= x3+x2+ 1
余数
14
计算机与信息学院
4.2 差错控制
编码电路
R0
+
R1
+
R2
R3
+
10111000101 输出
1000101
输入
G (x) = x4+x2+x+1的编码电路
译码原理(接受端)
接受方收到一个码字后,用同一生成多项式G(x)除该码字多项式T′ (x), 若MOD(T′(x))/G(x))=0,则正确 若MOD(T′(x))/G(x))≠0,则出错 思考:
时间
19
计算机与信息学院
4.3 流量控制
4.3.3 滑动窗口协议
基本思想:为提高信道利用率,允许发送方连续发送若干帧,然 后再等待对方应答。
基本概念 窗口:可容纳数据帧的缓冲区。 发送窗口:发送方用来保存已发送但尚未确认的数据帧。 接收窗口:接收方用来保存已正确接收但尚未提交给主机 ( 网 络层)的数据帧。 窗口尺寸:窗口中可容纳数据帧的数目。 帧序号:为保证接收方能按正确次序向主机递交数据帧而设 立的临时编号。一般在数据帧的控制字段中用 n 位表 示帧序号。如果用 3 位表示,则帧序号为 0—7 ;当超过 8 帧时, 则重复使用这8个帧序号。 窗口号:对应帧序号。
编码的检错和纠错能力
若要检测d位出错,则海明距离至少为d+1。 若要纠正d位出错,则海明距离至少为2d+1。
计算机与信息学院
6
4.2 差错控制
例:设有一编码系统的码字表有4个码字组成: 0000000000 1111100000
0000011111 1111111111
因为海明距离为5,可检测出4位出错,自动纠正2位出错。 如果出错位不超过4位,则收到的码子必定是非法的码子,即不属
2
计算机与信息学院
4.1 概述
数据链路层主要功能
在相邻节点之间保证数据帧的“透明”传输。 数据帧 数据帧是数据链路层的最小数据传输单元,即DPDU。
数据帧的一般格式:
帧同步 目的地址 源地址 控制 数据 帧校验
数据链路层协议涉及的主要内容
数据链路的建立与拆除 帧同步 差错控制 流量控制
若MOD(T’(x))/G(x))=0, 是否一定正确? 若MOD(T’(x))/G(x)) ≠0,是否一定出错?
计算机与信息学院
15
4.2 差错控制
生成多项式性质
若G(x)含有x+1因子,则能检测出所有的奇数位错。 若G(x)含有常数项1,那么能检测出所有突发长度≤r的突发错。 若 G(x) 含有常数项 1 ,且对任何 0<e≤n-1 的 e, 除不尽 xe+1, 则能 检测出所有的双位错。
出错位
无 1 2 3 4 5 6 7
计算机与信息学院
s1
0 1 1 1
s2
0 0 1 1
s3
0 1 0 1
0
1 0 0
1
0 1 0
1
0 0 1
10
4.2 差错控制
讨论
上述海明码只能纠正一位出错,而实际通信中经常发生的是突 发性错误(一连串位出错)。 要纠正突发性出错,则必须加大海明距离;但加大海明距离势 必会增加校验位串长度,从而降低了编码效率,同时也会使编 码系统过于复杂。 只要将发送方式稍做改变,就能利用纠正一位出错的海明码来 纠正多位突发错:
若G(x)不含x因子,则对于突发长度为r+1的突发错误的漏校率为2-(r-1) 。 若G(x)不含有x因子, 则对突发长度大于r+1的突发错误的漏校率为2-r 。
几个标准G(x) = x12+x11+x3+x2+x+1 CRC-16 = x16+x15+x2+1 CRC-CCITT = x16+x12+x5+1
显然,编码表的海明距离为3,能够自动纠正一位出错。
计算机与信息学院
纠错原理 设发送方发出的码字为: a1a2a3a4 a5a6a7 接受方收到的码字为:b1b2b3b4 b5b6b7 令:br= ar+er
r=1,2,……..7
(4-2)
若第r位出错,则er=1;否则er=0。 再令: s1= b1 +b2+b3+ b5 s2= b2 +b3+ b4+b6 s3= b1 +b3+b4+ b7
将k个码字排列成一个矩阵,每行一个码字。按列发送,一次传输k 个码字。 数据到达接收端后,再重新组成矩阵。如果突发长度≦K,则每个码 字最多出现一位错误,而前述的海明码恰好能够纠正这样的一位错。
11
计算机与信息学院
4.2 差错控制
4.2.5 循环冗余码(检错码)
循环冗余码(CRC码) 是目前计算机网络中使用最广泛的一种检错码。
其中,+:异或, 由式(4-1)构造的编码表如下:
0000000 0001011 0010111 0011100
0100110 0101101 0110001 0111010
1000101 1001110 1010010 1011001
1100001 1101000 1110100 1111111
8
第四章 数据链路层
课前思考
为什么建立数据链路连接? 数据链路连接与物理连接的联系和区别?
数据链路层主要功能有哪些?
数据链路层上常用的差错控制码有哪些? 数据链路层上常用的流量控制策略有哪些? 常用的数据链路层协议有哪些?
1
计算机与信息学院
本章内容
4.1 概述 4.2 差错控制 4.3 流量控制 4.4 数据链路层协议举例
17
计算机与信息学院
4.3 流量控制
4.3.2 停—等协议
协议描述
发送端发送一帧后,等待对方的应答。 接收端收到一帧后,检查校验位串,若出错,则返回“否 认”;若无错,则返回“确认”信息。 发送端收到“确认”后,立即发送下一帧;收到“否认”, 则重发该帧。 发送端发送一帧后,立即启动超时计时器。若超时,则重发 该帧。 接收端应保存最近收到的帧序号,若下一个到达帧的序号与 该序号相同,则丢弃该帧,并返回“确认”信息。
于码子表; 如果出错位为5位,则出错的码子可能是合法的码子。 例: 发送的码子为1111100000,而收到的码子1111111111。
设收到的码字为0000000111,如果出错位不超过两位,则可以
断定其正确码字为0000011111; 如果出错位可能超过两位(如3 位),则无法断定其正确码字是 0000011111,还是0000000000。 编码效率 R=m/n=m/(m+r)
CRC码又称多项式码,每个码字对应于一个多项式。
设码字为a1a2a3….an,则对应的多项式为:A(x)=a1xn-1+ a2xn-2+ a3xn-3+. …+an 如: 110001 →x5+x4+1 编码原理(发送端)
设信息位串为a1a2a3….am ,则对应的多项式为: M(x)=a1xm-1+ a2xm-2+ a3xm-3+. …+am 选择一个r次多项式G(x)作为生成多项式,按下面步骤生成校验串:
其中,m为信息位串长度, r为校验位串(冗余位串)长度。 计算机与信息学院
7
4.2 差错控制
4.2.4 海明码(纠错码)
构造海明码 设信息位有4位,记为a1a2a3a4;校验位为3位,记为a5a6a7。 编码 系统中任何一个合法的码字满足如下线性独立的方程: a5= a1 +a2+ a3 (4-1) a6= a2 +a3+ a4 a7= a1 +a3+ a4
20
计算机与信息学院
4.3 流量控制
滑动窗口协议的基本规则
只有帧序号落入当前窗口的帧才有资格发送;发送方收到对方 确认信息后,发送窗口向前滑动(顺序改变当前窗号)。 只有帧序号落入当前窗口的帧才接收,否则丢弃;接收窗口中 的帧递交给主机后,接收窗口向前滑动(顺序改变当前窗号)。 设发送窗口尺寸为2, 接收窗口尺寸为1,则:
22
计算机与信息学院
4.3 流量控制
优点:仅需一个接收缓冲区。 缺点:当信道误码率较高时,会产生大量重发帧。
计算 :R(x)= MOD(xrM(x)/G(x))
13
计算机与信息学院
4.2 差错控制
1001111
商
10111 10100010000 10111 11010 10111 11010 10111 11010 r T(x) = x M(x)+ R(x) 10111 = x10+x8+ x4+x3+x2+ 1 11010 10111
4
计算机与信息学院
4.2 差错控制
4.2.2 差错控制方法
通过特殊的编码(差错控制码),使接收端能够发现甚至自动 纠正错误。 差错控制编码
检错码:能够发现差错,但无法自动纠正差错,通过发送方重传来 获得正确的数据。
纠错码:不但能过发现差错,而且知道哪些位出错,从而能够自动 纠正差错。
4.2.3 编码的检错和纠错能力、编码效率
(4-3)
s1 s2 s3称为校验因子;接受方将根据校验因子来判断哪位出错。 将(4-1),(4-2)代入(4-3)得: s1= e1 +e2+ e3+ e5 s2= e2 +e3+ e4+ e6 s3= e1 +e3+ e4+ e7
计算机与信息学院
(4-4)
9
4.2 差错控制
根据式(4-4): s1= e1 +e2+ e3 + e5 s2= e2 +e3+ e4 + e6 s3= e1 +e3+ e4+ e7 得到下表:
3
计算机与信息学院
4.2 差错控制
4.2.1 传输差错的特征
热噪声: 传输介质内的分子热运动。 差错产生的主要原因 冲击噪声:外界干扰。 热噪声: 干扰幅度小,持续性,对模拟通信影响大。 特征 冲击噪声:干扰幅度大,突发性,对数字通信影响大。
计算机网络中,差错控制主要针对冲击噪声。
如数据率为9600bps,一次闪电持续时间约为10ms,则连续破坏96位。
CRC-12 16
计算机与信息学院
4.3 流量控制
4.3.1 流量控制概述
A B
发送方A发送数据帧的速度过快,导致接收方B来不及接受而丢失。 数据帧丢失需要重发,浪费信道带宽。 流量控制基本思想: A必须获得B的许可才能发送数据帧,从而限 制发送方A的发送速度。 流量控制策略(协议)
停—等协议 滑动窗口协议 顺序接收管道协议 (回退n协议 ) 选择重传协议
21
计算机与信息学院
4.3 流量控制
顺序接收管道协议 (回退n协议)
协议描述 设:发送窗口尺寸WT= n >1, 接收窗口尺寸WR=1。
发送方连续发送 n帧而无需对方应答,但需要将已发出但尚 未得到确认的帧保存在发送窗口中,以备重发。
接收方将正确的且帧序号落入当前接收窗口的帧存入接收窗 口,同时按序将接收窗口的帧送交给主机(网络层)。出错 或帧序号未落入当前窗口的帧予以丢弃。 当某帧丢失或出错时,则其后到达的帧均丢弃,并返回否认 信息,请求对方从出错帧开始重发。 发送方设置一个超时计时器,当连续发送n帧后,立即启动 超时计时器;若超时且未收到应答,则重发这n帧。
18
计算机与信息学院
4.3 流量控制
缺点:信道利用率低 优点:简单 信道最大利用率
U= L/B
发送方
接收方
L/B+2R
L/ B 2R
其中,B为信道速率,L为帧长,R为信号的
单程传播延时,U为信道的最大利用率。 如考虑差错造成的重发、帧头和校验等冗余
信息、应答帧长度,信道的实际利用率远达不到
最大利用率。实际利用率见P.99。
在信息位串后补r个0,对应的多项式为xrM(x)
用模2不借位除法,计算余数R(x): R(x)= MOD(xrM(x)/G(x)) 要发送的码字多项式:T(x)=xrM(x)+ R(x)
源自文库12
计算机与信息学院
4.2 差错控制
例:信息位串为1010001,若G(x)= x4+x2+x+1,求CRC码。 解:M(x)= x6+x4+ 1 r=4 xrM(x)= x10+x8+ x4 →10100010000