第三讲 数据链路层

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

点对点信道 每对连接对应 一对机器
广播信道
3
问题分析(续1)
◆ ◆
地址问题—通信主机标识问题(*) 面向连接还是非连接?
□ 面向连接——是基于电话系统模型。也就是说,在数
据传输前,有一个连接建立的过程,通信结束后,有一 个连接断开的过程。(服务质量高)
□ 面向非连接——是基于邮政系统模型。也就是说,任
FLAG header payload trailer FLAG
□ 新的问题:如果负载重出现了FLAG了怎么办?
FLAG
A
FLAG
B
FLAG
9
数据封装问题—帧格式(4)

字节填充法
□ 转义字节技术
□ 新问题:数据中包 含了ESC怎么办?
FLAG
A
FLAG
Same with flag
B
FLAG
FLAG
0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8
□ 位填充法分析
13
数据封装问题—帧格式(8)

物理层编码违例法
□ 原理:使用非数据编码信号来表示帧的边界。 如以太网(MAC子层中介绍)——曼彻斯特编码方式传输数据 ―1‖的编码 ―0‖的编码
何时候数据都可以直接发送。(服务质量低)
4
问题分析(续2)

数据封装问题—帧格式
□ 开始、结束标志 □ 通信地址:面向连接时,建立连接过程需要地址;面向 非连接时,数据传输时需要地址。 □ 数据及编码 □ 递交对象——数据链路是数据传输服务层,到达目的机 器后,数据必须递交给其他功能函数来处理。
◆ ◆
19
出错处理(5)

纠错码
□ 例子
0 0 0 0 0 0 0 0 0 0 (码字1) 0 0 0 0 0 1 1 1 1 1 (码字2) 1 1 1 1 1 0 0 0 0 0 (码字3)
1 1 1 1 1 1 1 1 1 1 (码字4)
编码距离为5,因此2d+1=5,可得d=2,该方案可 以纠错2位以下的错误。 接收到数据00000 00111,与上面的码字计算海明距 离,和码字2距离最小,为2,因此该数据有两位出错 了,原始数据应该是00000 11111
◇ 其他编码方式,可以用作帧的边界 □ 物理层编码违例法分析
14
流控制问题

问题描述
发送方的速度超过了接受方能够接受这些帧的速度

基本处理方法
□ 基于反馈的流控制 定义规则,规范发送者什么时候可以发送帧。(具体协议中介绍) □ 基于速率的流控制 限制发送方的速率。(后面章节中详细介绍)
15
出错处理(1)
25
出错处理(11)
◈ CRC校验和计算例子
第三步:用以2为模的除法求余数 余数[11010110110000 /10011 ]= 1110 第四步:用以2为模的减法计算校验和 发送帧T(x) =11010110111110
26
出错处理(12)
◈ CRC校验和验证 接收者接收到T(X)后,用T(x)/G(x),余数应该为0,否则 就判定为有错误。 T(X)= xrM(x)-P(x) ◈ CRC检错能力说明
6
数据封装问题—帧格式(1)
■ 将要传输的数据分成很多小段数据发送出去。 ◆ 问题分析:什么是一个好的帧格式?
(1)容易生成
(2)重新实现帧同步的难度
(3)普遍的适应性
7
数据封装问题—帧格式(2)

字符计数法
字符计数
□ 原理:在头部中的一个域指定该帧中的字符数。
5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3 第一帧 第二帧 第三帧 第四帧 8个字符 5个字符 5个字符 8个字符
□ 问题:出错后的帧无法同步
5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3 第一帧 第二帧 字符计数?
8
数据封装问题—帧格式(3)

字节填充法
□ 分析:字符计数法失去帧同步后,恢复很难。原因 是很难区分计数的字符和数据字符。
□ 原理:使用特殊的字符作为帧的开始和结束标志
(1)如果传输过程出错了,即有一些位的0或1发生了变 化。把发生变化的位记录为1,其他位置为0,它对应一 个多项式E(x)。 (2)接收者的信息则为T(x)+E(x); (3)校验时候计算为[T(x)+E(x)]/G(x)=E(x)/G(x)
如果E(x)不被G(x)除尽,则可以检测到传输过 程中出错了,如果刚好被除尽了,则该错误没 有被检测到。所以G(x)很重要。
第三讲 数据链路层
1
本讲要求
1 理解数据链路层解决的基本问题
2 掌握数据帧的基本原理和方法
3 掌握出错处理的几种方式
4 掌握数据链路层的基本协议
5 掌握数据链路层的滑动窗口协议
6 了解典型的数据链路协议
2
基本问题
如何利用物理层的0-1比特流传输能力 在相邻机器间进行数据传输?
问题分析
◆ 信道问题

纠错—纠错码
□ 原理:在发送的数据中包含冗余信息,以
便接收者可以推断出数据中肯定有哪些内容。
包含m个数据位和r个校验位的n-位单元,通常称为 n位码字(n=m+r)。
—有这么 神奇的事 情吗?
Data bits
Check bits
0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0
m bits n bits codeword( n = m + r )
r bits
17
出错处理(3)

纠错码
□ 海明距离——两个码字不相同的位的个数
1 0 0 0 1 0 0 1 (码字1) XOR 1 0 1 1 0 0 0 1 (码字2) 0 0 1 1 1 0 0 0 海明距离d=3
◇ 含义理解:如果码字1出错后,变为码字2,则
至少要3位数据发生错误
◇ 海明距离用来度量最少出错的位数
18
出错处理(4)

纠错码
□ 海明距离用来度量最少出错的位数 □ 纠正d位错误的基本原理
即假设传输过程中,最多d位出错。
(1)对于传输数据m位,合法的报文有2m种情况; (2)对于传输的n位码字,可能的码字有2n种情况(n=m+r); (3)从2n中选择2m个n位码字来表示合法的传输数据,并且保证 每两个n位码间的距离至少为2d+1; (4)接收到数据A时,与所有的n位合法码字求解海明距离,海 明距离小于d的,就是传输的数据。
如无限制单工协议规范双方的行为来完成数据的传输

什么是服务? 实体为它的用户提供的功能。
如数据链路层为网络层提供传输数据的功能 如物理层为数据链路层提供0-1比特流传输功能

什么是接口? 定义调用服务的原语操作
如from_physical_layer和to_physical_layer等 □ 服务是用户的功能需求(该层要解决的问题) □ 协议是完成服务功能的实现过程(解决问题的程序) □ 接口是程序的交互界面(用户操作界面)

Baidu Nhomakorabea
定义—什么是错误?
□ 严格意义:凡是接收到的数据和发送的数据不一致
□ 不一致:错误数据*、丢失数据、数据乱序

基本措施
□ 纠错(错误纠正):就是将不一致的数据恢复到一致 □ 检错(错误发现):检查数据中是否存在不一致 □ 不作为
先看看错误数据的基本措施,丢失 和乱序问题在协议中介绍
16
出错处理(2)

字节填充法
□ 字节填充法存在什么问题?
◇ 必须紧紧依赖于8位字符模式 ◇ 不是所有的字符都是8位字符模式,如Unicode使
用16位字符。
结论:非8位字符模式,需要转换为8位 字符模式才能顺利传输
□ 字符填充法分析
12
数据封装问题—帧格式(7)

位填充法
□ 原理:帧开始和结束都有一个特殊的位模式01111110
27
基本数据链路协议(1)

应用情况
点到点信道,也就是只有一个发送者和接收者。

几个重要功能函数
□ from_network_layer □ to_network_layer □ from_physical_layer
□ to_physical_layer
28
基本数据链路协议(2)

无限制的单工协议
□ 前提条件: ◇ 单方向数据传输(即只有一个发送者和接收者) ◇ 理想信道(信道不出错,传输速度极快) ◇ 通信双方能力无穷(发送者不停发送,接收者不停接收)
□ 发送者基本过程
第一步:从网络层获得数据 第二步:发送到物理层。
□ 接收者基本过程
第一步:等待数据到达 第二步:从物理层提取数据 第三步:把数据递交给网络层
29
基本数据链路协议(3) SENDER:
from_network_layer
RECEIVER:
wait_for_event
from_physical_layer to_network_layer
framing
to_physical_layer
30
基本数据链路协议(4)

什么是协议? 通信双方关于如何进行通信的一种约定
23
出错处理(9)
◈ CRC校验和计算算法 (1)假设G(x)的阶为r。在帧的低位端加上r个0,此时 帧长为m+r,对应多项式为xrM(x); (2)利用模2除法,用对应的G(x)的位串去除xrM(x)对 应的位串,余数记为P(x) ; (3)利用模2减法, xrM(x)-除法运算中的余数P(x) , 结果记为T(x)就是带校验和的帧。
流量控制问题—发送者、接收者能力不对等问题 出错处理—什么是错?纠错?检错?不管?
结论:数据传输需要协调双方的行为——协议
5
数据链路层的地址问题
一般来说,通信主体都应该拥有一个标识 ——称为地址。

随机分配—管理员分配配置
如令牌环网等

固化设置—将地址固化到物理器械中
如以太网卡
小探索:查看以太网卡的物理地址,并 修改它。
31
基本数据链路协议(5)
A
ESC
FLAG
B
FLAG
stuffing“ESC”
10
数据封装问题—帧格式(5)

字节填充法
□ 转义字节技术
□ 其他问题?
data“ESC”
FLAG
A
ESC
B
FLAG
FLAG
A
ESC
ESC
B
FLAG
stuffing“ESC”
遇到第一个ESC,表 示后面的是正常数据, 不是特殊字符 11
数据封装问题—帧格式(6)
□ 问题:当传输数据中有01111110如何处理?
□ 解决办法:碰到连续5连续的位“1‖的时候,自动填充一位0
0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 2 3 4 5 6 1 2 3 4 5 6 7 8 1 2 3 4 5 6
24
出错处理(10)
◈ CRC校验和计算例子
问题:发送数据帧 11 0101 1011 m=10, M(x)为(m –1=9)阶多项式 M(x)= x9 + x8 + x6 + x4 + x3 + x + 1 第一步:选择生成多项式G(x) = x4 + x + 1 r=4,10011 第二步:形成多项式xrM(x) n=m+r=10+4=14, xrM(x) 为13阶多项式 x4M(x) = x13 + x12 + x10 + x8 + x7 + x5 + x4 11 0101 1011 0000
20
出错处理(6)

检错—检错码
□ 原理:在发送的数据中包含冗余信息,以便接收者可
以推断出数据中是否发生了错误。
□ 奇偶检错方案——检测单个错误 □ 检错原理:在数据后面加上一个奇偶位,如果码字中
的“1‖的位为偶数,则填0,如果是奇数,则填1。
21
出错处理(7)
□ 奇偶校验例子
sender
数据位 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1
也称多项式编码(Polynomial Code)
◇ 基本思想
◈ 前提条件 (1)将位串看成是系数为0或1的多项式。
如 10001011*x6 +0*x5+ 0*x4 + 0*x3 +1*x2 +1*x1
(2)发送方和接收在数据传输前商定一个生成多项式G(x).
如 G(x) = x4 + x + 1------10011 (3)传输帧有m位,对应的多项式为M(x)。
校验位 0 1 1 0 1 0 0 1
receiver
数据位 0 1 0 0 0 1
校验位 0 0
error
数据位 1 0 1 1 0 0 校验位 0 1
□ 针对突发性长错误,可采用交错奇偶校验位来处理。
22
出错处理(8)
□ 校验和(Checksum) TCP/IP协议中使用的一种校验方法。 □ 循环冗余校验(Cyclic Redundancy Check, CRC)
相关文档
最新文档