4 计算机网络 数据链路层
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
26
CRC校验码的检错能力
• • • • • CRC校验码能检查出全部单个错; CRC校验码能检查出全部离散的二位错; CRC校验码能检查出全部奇数个错; CRC校验码能检查出全部长度小于或等于K位的突发错; CRC校验码能以[1-(1/2)K-1]的概率检查出长度为(K+1) 位的突发错; • 如果K=16,则该CRC校验码能全部检查出小于或等于16 位 的所有的突发差错,并能以1-(1/2)16-1=99.997%的概率 检查出长度为17位的突发错,漏检概率为0.003%;
也就是如何确定帧的边界问题,这个问题 称为帧同步。
8
四种方法 :
字符填充法 使用特殊的字符定界一帧的开始和结束。 比特填充法 使用一组特定的比特模式如01111110定界 字节计数法 用一个特殊字符表示一帧的开始,使用一 个字段来标明本帧内的字节数。 违例编码法 在物理层采用特定的比特编码方法来定界 帧的开始和结束
– 只有当收到的帧的序号与接收窗口一致时才能接收该帧。 否则,就丢弃它。 – 每收到一个序号正确的帧,接收窗口就向前(即向右方) 滑动一个帧的位置。同时发送对该帧的确认。
36
滑动窗口的重要特性
• 只有在接收窗口向前滑动时(与此同时 也发送了确认),发送窗口才有可能向 前滑动。
28
应当注意
• 仅用循环冗余检验 CRC 差错检测技术只能做 到无差错接受(accept)。 • “无差错接受”是指:“凡是接受的帧(即不 包括丢弃的帧),我们都能以非常接近于 1 的 概率认为这些帧在传输过程中没有产生差错”。 • 也就是说:“凡是接受的帧都没有传输差错” (有差错的帧就丢弃而不接受)。 • 要做到“可靠传输”(即发送什么就收到什么) 就必须再加上确认和重传机制。
4.2.1差错控制
• 传输差错 — 通过通信信道后接收的数据与发送数据 不一致的现象;• 差错控制 — 检查是否出现差错以及如何纠正差错; • 通信信道的噪声分为两类:热噪声和冲击噪声; • 由热噪声引起的差错是随机差错,或随机错; • 冲击噪声引起的差错是突发差错,或突发错; • 引起突发差错的位长称为突发长度;
4
数据链路层的目的
物理层:---物理线路---比特流传输---有差错的物理线路 数据链路层:---数据链路---帧传输---无差错的数据链路
1. 在原始物理线路上传输数据信号是有差错的; 2. 设计数据链路层的主要目的: 在原始的、有差错的物理线路的基础上,采取 差错检测、差错控制与流量控制等方法,将有差错 的物理线路改进成无差错的数据链路,向网络层提 供高质量的数据传输服务;
29
4.2.2流量控制
1.流量控制的定义 调整发送信息的速率,使接受结点能够及时处理 信息的过程。 2.流量控制的目的 防止网络拥挤 使业务量能均匀地分配给各网络结点。 流量控制主要解决发送方的发送能力大于接收方的 接收能力的问题
30
• 流量控制方案: (1)XON/XOFF方案
接收方发送XON/XOFF一对控制字符来实现流量 控制。
1 2
6 5
1 2
连续发0~4 7 0 4 3
收到ACK1 7 0 4 3
收到ACK4 7 0 4 3
接收窗口
6 5
1 2
6 5
1 2
6 5
1 2
准备接收0
准备接收1
准备接收4
32
滑动窗口的概念
• 发送端和接收端分别设定发送窗口和接收窗口 。 • 发送窗口用来对发送端进行流量控制。 • 发送窗口的大小 WT 代表在还没有收到对方确认信 息的情况下发送端最多可以发送多少个数据帧。
发送方 接收方
发送数据 f(x) 生成多项式 G(x) f(x). x G(x)
k
发送数据 f '(x) 生成多项式 G(x) f'(x). x G(x)
k
=Q(x)+
R(x) G(x)
k
=Q(x)+
R'(x) G(x)
实际发送: f(x). x +R(x) 数据字段 校验字段 f(x) . x
k
R'(x)=R(x) R'(x)=R(x)
带CRC校验码的 发送数据比特序列
1 1 0 0 1
1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1
0 0 1 0 0 1 0 0 1 0 0 1 0
25
标准CRC生成多项式G(x)
• CRC-12 • CRC-16 • CRC-CCITT • CRC-32 G(x)= x12+x11+x3+x2+x+1 G(x)= x16+x15+x2+1 G(x)= x16+x12+x5+1 G(x)= x32+x26+x23+x22+x16+x12+x11+ x10 +x8+x7+x5+x4 + x2+x+1
33
发送窗口 WT (a)
0
1
2
3
4
5
6
7
0
1
2
允许发送 5 个帧 WT
不允许发送这些帧
(b)
0
1
2
3
4
5
6
7
0
1
2
已发送
还允许发送 4 个帧
WT
不允许发送这些帧
(c)
0
1
2
3
4
5
6
7
0
1
2
已发送
WT (d) 0 1 2 3 4 5 6
不允许发送这些帧
7
0
1
2
已发送 并已收到确认
已发送
还允许发送 3 个帧
(2)窗口机制
发送过程中采用不等待确认帧返回就连续发送 若干帧虽提高信道利用率,缺点是帧号较长,所 有发送帧都要在发送方缓冲区中。 限制待确认帧数量的最大长度--窗口
31
• 窗口的大小
6 5 7 0 4 3 1 2
假设:发送窗口WT=5;接收窗口WR=1
7 0 4 3 7 0 4 3
发送窗口
6 5
出错的位 (b)
16
4.2.1差错控制(续)
• 噪声和干扰是传输差错的主要原因
误码率定义: 二进制比特在数据传输系统中被传错的概率, 它在数值上近似等于:
Pe = Ne/N 其中,N为传输的二进制比特总数; Ne为被传错的比特数。
17
讨论
• 误码率应该是衡量数据传输系统正常工作状态下传输 可靠性的参数。 • 对于一个实际的数据传输系统,不能笼统地说误码率 越低越好,要根据实际传输要求提出误码率要求; • 对于实际数据传输系统,如果传输的不是二进制比特, 要折合成二进制比特来计算; • 差错的出现具有随机性,在实际测量一个数据传输系 统时,只有被测量的传输二进制比特数越大,才会越 接近于真正的误码率值;
18
4.2.1差错控制----检错码与纠错码
差错控制最常用的方法是差错控制编码,主要包括两种编码:
1.检错码: 数据帧仅包含足以使接收端发现差错的冗余信息; 接收端能发现出错,但不能确定哪一比特是错的, 并且自己不能纠正传输差错; 差错控制方式:自动请求重发( Automatic ReQuest for repeat ,ARQ) 2.纠错码: 每个传输的数据帧带上足够的冗余信息; 接收端能发现并自动纠正传输差错; 差错控制方式:前向纠错(Forward Error Correction,FEC)
9
数据链路层的功能之二
• 2.差错控制 使用差错控制码产生的校验和可以检查 出一帧在传输中是否发生了错误。一旦 检查出错误后,通常采用反馈重发的方 法来纠正错误。
10
数据链路层的功能之三
• 3.流量控制
流量控制处理的是发送方发送能力大于 接收方接收能力的问题。 要注意的是,流量控制并不是数据链路 层所特有的功能 。
接收正确 接收出错
R(x) 发送
24
• 举例:
G(x)
1 1 0 0 1
1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1
1 0 0 1 CRC校验码 比特序列
0 0 1 0 0 0 0 0 0 0 0 1 0 0 1
Q(x) k f(x) .x
R(x)
1 1 0 0 1 1 发送数据 比特序列
• 在通信过程中产生的传输差错,是由随机差错与突发差错 共同构成的。
15
信源
通信信道
信宿
传输差错 产生过程
传输数据 数据信号波形 0 1
数据
噪声 (a)
数据+噪声
0
1
1
0
0
1
1
0
0
1
0
1
0
噪声
数据信号 与噪声信号 叠加后的波形
采样时间 接收数据 原始数据 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0
27
帧检验序列 FCS
• 在数据帧后面添加上的冗余码称为帧检 验序列 FCS (Frame Check Sequence)。 • 循环冗余检验 CRC 和帧检验序列 FCS并不 等同。
– CRC 是一种常用的检错方法,而 FCS 是添 加在数据后面的冗余码。 – FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的惟一方法。
第4章 数据链路层
1
4.1 数据链路层的基本概念
• 链路(link)是一条无源的点到点的物理线 路段,中间没有任何其他的交换结点。
– 一条链路只是一条通路的一个组成部分。
• 数据链路除了物理线路外,还必须有通信协议 来控制这些数据的传输。若把实现这些协议的 硬件和软件加到物理线路上,就构成数据链路。
– 现在最常用的方法是使用适配器(即网卡)来实现 这些协议的硬件和软件。 – 一般的适配器都包括了数据链路层和物理层这两层 的功能。
2
数据链路与物理线路
3
数据链路层像个数字管道
• 在两个对等的数据链路层之间画出一个 数字管道,而在这条数字管道上传输的 数据单位是帧。
结点
帧 帧
结点
• 早期的数据通信协议曾叫作通信规程 (procedure)。因此在数据链路层,规程 和协议是同义语。
11
数据链路层的功能之四
• 4.链路管理 链路管理主要用于面向连接的服务。 包括链路的建立、维持和释放。
12
4.1.3数据链路层提供的服务
1.面向无连接的服务 (1)无应答式 (2)应答式 2.面向连接的服务
需要建立数据链路连接(建立,维持Leabharlann Baidu释放)
13
数据链路层结构及其服务
14
4.2 差错控制与流量控制
19
常用的检错码
• 奇偶校验码 垂直奇(偶)校验 水平奇(偶)校验水平 垂直奇(偶)校验(方阵码)
• 循环冗余编码CRC 目前应用最广的检错码编码方法之一
20
奇偶校验码
奇偶校验(Parity Checking)计算数据单元中为1的比特个数, 再增加一个附加比特位,使得1的个数为偶数(偶校验)或 奇数(奇校验)。该附加的比特位就叫做奇偶位(Parity Bit)。 设m位数据单元b1b2……bm-1bm,r为奇偶位。采用偶校验时 有: r=b1⊕b2⊕……⊕bm-1⊕bm (偶校验) 采用奇校验时有: r=b1⊕b2⊕……⊕bm-1⊕bm⊕1 (奇校验) 我们的讨论都是基于偶校验的 .
不允许发送这些帧
34
WR (a) 0 1 2 3 4 5 6 7 0 1 2
准备接收 0 号帧 WR (b) 0 已收到 1 2 3 4
不允许接收这些帧
5
6
7
0
1
2
准备接收 1 号帧 WR
不允许接收这些帧
(c)
0
1
2
3
4
5
6
7
0
1
2
已收到
准备接收 4 号帧
不允许接收这些帧
35
接收端设置接收窗口
• 在接收端只有当收到的数据帧的发送序号落入接收 窗口内才允许将该数据帧收下。 • 若接收到的数据帧落在接收窗口之外,则一律将其 丢弃。 • 在连续 ARQ 协议中,接收窗口的大小 WR = 1。
水平垂直奇偶校验
22
循环冗余校验(CRC)码
• 基本思想:先建立应发送的二进制数之间 的数量关系,即发送方对数据帧的二进制 数按一定规则运算,产生二进制的校验码, 把数据和校验码同时发送。接受方收到后 按同样的规则检验这些二进制数,从而可 以判断出传输过程中有无差错发生。
23
循环冗余编码工作原理
5
4.1.1数据链路层的模型
数据链路层的基本功能是提供无差错的、 透明的数据传输
6
4.1.2 数据链路层的主要功能
(1) 帧定界(帧同步)
(2) 差错控制
(3) 流量控制
(4) 链路管理
7
数据链路层的功能之一
• 1. 帧同步
帧是数据链路层的传送单位,按OSI的术语 就是数据链路层协议数据单元DL-PDU 。 如何将来自物理层的比特流组装成帧?
21
1 0101001 0 0111001 1 1011101 1 1100111 ý Ý « ä ½ ò Ê ¾ ´ Ê ·Ï
0101010 0101001 0111001 1011101 1100111 ý Ý « ä ½ ò Ê ¾ ´ Ê ·Ï
垂直奇偶校验
水平奇偶校验
10101010
1 0101001 0 0111001 1 1011101 1 1100111 ý Ý « ä ½ ò Ê ¾ ´ Ê ·Ï