第三讲 数据链路层



《第三讲 数据链路层》由会员分享,可在线阅读,更多相关《第三讲 数据链路层(67页珍藏版)》请在文档大全上搜索。
1、12本讲要求本讲要求1 理解数据链路层解决的基本问题理解数据链路层解决的基本问题2 掌握数据帧的基本原理和方法掌握数据帧的基本原理和方法3 掌握出错处理的几种方式掌握出错处理的几种方式4 掌握数据链路层的基本协议掌握数据链路层的基本协议5 掌握数据链路层的滑动窗口协议掌握数据链路层的滑动窗口协议6 了解典型的数据链路协议了解典型的数据链路协议3基本问题基本问题 如何利用物理层的0-1比特流传输能力在相邻机器相邻机器间进行数据传输?问题分析问题分析 信道问题广播信道广播信道点对点信道每对连接对应一对机器4问题分析(续问题分析(续1) 地址问题地址问题通信主机标识问题(*) 面向连接还是非连接?面
2、向连接还是非连接? 面向连接是基于电话系统模型是基于电话系统模型。也就是说,在数据传输前,有一个连接建立的过程,通信结束后,有一个连接断开的过程。(服务质量高) 面向非连接是基于邮政系统模型是基于邮政系统模型。也就是说,任何时候数据都可以直接发送。(服务质量低)5问题分析(续问题分析(续2) 数据封装问题数据封装问题帧格式帧格式 开始、结束标志 通信地址:面向连接时,建立连接过程需要地址;面向非连接时,数据传输时需要地址。 数据及编码 递交对象数据链路是数据传输服务层,到达目的机器后,数据必须递交给其他功能函数来处理。 流量控制问题流量控制问题发送者、接收者能力不对等问题 出错处理出错处理什么
3、是错?纠错?检错?不管? 结论:数据传输需要协调双方的行为结论:数据传输需要协调双方的行为协议协议6数据链路层的地址问题数据链路层的地址问题 随机分配随机分配管理员分配配置 固化设置固化设置将地址固化到物理器械中如令牌环网等如以太网卡 一般来说,通信主体都应该拥有一个标识一般来说,通信主体都应该拥有一个标识 称为地址。称为地址。小探索:查看以太网卡的物理地址,并修改它。7数据封装问题数据封装问题帧格式(帧格式(1) 问题分析:什么是一个好的帧格式?(1)容易生成(2)重新实现帧同步的难度(3)普遍的适应性 将要传输的数据分成很多小段数据发送出去。8数据封装问题数据封装问题帧格式(帧格式(2)
4、字符计数法字符计数法 原理:在头部中的一个域指定该帧中的字符数。5个字符5个字符8个字符8个字符5 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 8 79 0 1 2 3第一帧8第二帧第三帧第四帧8字符计数 问题:出错后的帧无法同步5 1 2 3 4 7 6 7 8 90 1 2 3 4 5 6 8 79 0 1 2 3第一帧8第二帧8字符计数?9数据封装问题数据封装问题帧格式(帧格式(3) 字节填充法字节填充法 分析:字符计数法失去帧同步后,恢复很难。原因是很难区分计数的字符和数据字符。 原理:使用特殊的字符作为帧的开始和结束标志payloadFLAGFLAGheadertr
5、ailer 新的问题:如果负载重出现了FLAG了怎么办?AFLAGBFLAGFLAG10数据封装问题数据封装问题帧格式(帧格式(4) 字节填充法字节填充法 转义字节技术stuffing“ESC”ESCSame with flagFLAGAFLAGBFLAGFLAGAFLAGBFLAG 新问题:数据中包含了ESC怎么办?11数据封装问题数据封装问题帧格式(帧格式(5) 字节填充法字节填充法 转义字节技术data“ESC”stuffing“ESC”ESCFLAGAESCBFLAGFLAGA ESCBFLAG 其他问题?遇到第一个ESC,表示后面的是正常数据,不是特殊字符12数据封装问题数据封装问题
6、帧格式(帧格式(6) 字节填充法字节填充法 字节填充法存在什么问题? 必须紧紧依赖于8位字符模式 不是所有的字符都是8位字符模式,如Unicode使用16位字符。结论:非结论:非8位字符模式,需要转换为位字符模式,需要转换为8位字位字符模式才能顺利传输符模式才能顺利传输 字符填充法分析13数据封装问题数据封装问题帧格式(帧格式(7) 位填充法位填充法 原理:帧开始和结束都有一个特殊的位模式01111110 问题:当传输数据中有01111110如何处理? 解决办法:碰到连续5连续的位“1”的时候,自动填充一位00 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1
7、 1 0 1 1 1 1 1 1 01 2 3 4 5 61 2 3 4 5 6 7 81 2 3 4 5 60 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 01 2 3 4 56 7 8 位填充法分析14数据封装问题数据封装问题帧格式(帧格式(8) 物理层编码违例法物理层编码违例法 原理:使用非数据编码信号来表示帧的边界。如以太网(MAC子层中介绍)曼彻斯特编码方式传输数据“1”的编码“0”的编码 其他编码方式,可以用作帧的边界 物理层编码违例法分析15流控制问题流控制问题 问题描述问题描述发送方的速度超过了接受方能
8、够接受这些帧的速度 基本处理方法基本处理方法 基于反馈的流控制 基于速率的流控制定义规则,规范发送者什么时候可以发送帧。(具体协议中介绍)限制发送方的速率。(后面章节中详细介绍)16出错处理(出错处理(1) 定义定义什么是错误? 严格意义:凡是接收到的数据和发送的数据不一致 不一致:错误数据*、丢失数据、数据乱序 基本措施基本措施 纠错(错误纠正):就是将不一致的数据恢复到一致 检错(错误发现):检查数据中是否存在不一致 不作为先看看错误数据的基本措施,丢失先看看错误数据的基本措施,丢失和乱序问题在协议中介绍和乱序问题在协议中介绍17出错处理(出错处理(2) 纠错纠错纠错码纠错码 原理:在发送
9、的数据中包含冗余信息,以便接收者可以推断出数据中肯定有哪些内容。包含m个数据位和r个校验位的n-位单元,通常称为n位码字(n=m+r)。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 0m bitsData bitsr bitsCheck bitsn bits codeword( n = m + r )有这么神奇的事情吗?18出错处理(出错处理(3) 纠错码纠错码 海明距离两个码字不相同的位的个数1 0 0 0 1 0 0 1 (码字1)1 0 1 1 0 0 0 1 (码字2)XORXOR0 0 1 1 1 0 0 0海
10、明距离d=3 含义理解:如果码字1出错后,变为码字2,则至少要3位数据发生错误 海明距离用来度量最少出错的位数19 海明距离用来度量最少出错的位数出错处理(出错处理(4) 纠错码纠错码 纠正d位错误的基本原理即假设传输过程中,最多d位出错。(1)对于传输数据m位,合法的报文有2m种情况;(2)对于传输的n位码字,可能的码字有2n种情况(n=m+r);(3)从2n中选择2m个n位码字来表示合法的传输数据,并且保证每两个n位码间的距离至少为2d+1;(4)接收到数据A时,与所有的n位合法码字求解海明距离,海明距离小于d的,就是传输的数据。20出错处理(出错处理(5) 纠错码纠错码0 0 0 0 0
11、 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 1111121出错处理(出错处理(6) 检错检错检错码检错码 原理:在发送的数据中包含冗余信息,以便接收者可以推断出数据中是否发生了错误。 奇偶检错方案检测单个错误 检错原理:在数据后面加上一个奇偶位,如