Westmont College 包,帧, 奇偶校验, 校验和, 循环冗余校验 CS 140 Part III 数据链路层 包,帧, 奇偶校验, 校验和, 循环冗余校验 Chapter 7
要解决的问题 不能为每对计算机提供单独的网络 原因 安装电缆需要大量的时间和金钱 维护电缆需要花费金钱 (尤其是长距离电缆) 2019/2/28
解决方案 网络包含 共享的主机 许多节点 2019/2/28
共享的问题 需求量很大 一些应用软件传输量很大(影响公平性) 一些应用软件不能等待(影响及时性) ==》需要一个公平的仲裁机制:保证所有计算机都能公平地访问共享的通信设施。 ==》怎么办? 2019/2/28
包交换原则 公平性的解决之道 把数据分成很小的单位,叫包 每一个站点都有公平的送出包的机会 时分多路技术:保障公平性和及时性 2019/2/28
包交换技术图解 获得共享的媒介 送出一个包 在发送下一个之前允许其他站点发送 2019/2/28
有关包的细节 取决于不同的网络 与特定网络的硬件相关的包称为硬件包( Hardware packet ),又称为帧( frame ) 最小/最大尺寸不同 格式不同 与特定网络的硬件相关的包称为硬件包( Hardware packet ),又称为帧( frame ) 帧起始 控制信息 数据 校验和 帧结束 8bit m 0 - n 8-32 8bit 2019/2/28
帧格式举例 :RS-232传输机制的硬件包 RS-232 :面向字符 特殊字符 起始字符 (soh) 结束字符 (eot) 2019/2/28
当数据包含特殊字符时 翻译成替换的形式 称为字节填充法( byte stuffing ) 举例 2019/2/28
以字节填充帧的示例图 填充后的帧比原来的长 不得已而为之 2019/2/28
错误处理 数据可能在传输过程中出现错误 帧包含了额外的信息用以检测/纠正错误 可以在统计意义上保证正确传送了数据 位丢失 位值改变 由发送端负责设置 由接受端负责检查 可以在统计意义上保证正确传送了数据 2019/2/28
错误检测和修复技术 校验位 每个字符的一个额外位 可以使用 奇校验 偶校验 不能处理两个比特同时改变的错误 2019/2/28
错误检测和修复技术[续] 校验和 把待发数据看成一串整数 计算和发送算术和 能够处理多位比特错误 但不能处理所有的错误(即使数据变了,和可能未变) 2019/2/28
错误 检测和修复技术[续] 循环冗余校验 (CRC) 用数学函数来处理数据 计算更加复杂 可以处理更多的错误 2019/2/28
检查和计算举例 检查和计算上面的数据 把计算的结果添加到帧 2019/2/28
校验和不能发现的错误举例 每一条的第二比特反转 校验和还是一样的 2019/2/28
循环冗余校验的基本单元 异或 移位寄存器 a :移位之前的状态 b :移位以后的状态 输出的最高比特和原来相同 2019/2/28
循环冗余校验硬件举例 计算16位CRC码 移位寄存器初始化为零 待发信息的每一位依次移入 CRC结果在寄存器中。 2019/2/28
CRC计算举例 输入的数据比特位都是1 上图显示15, 16,和 17次移入后的CRC 反馈引入零 2019/2/28
使用CRC的帧的图例 CRC 只cover数据 2019/2/28
SUMMARY 包技术 硬件包称为帧 可以通过RS-232进行包交换 为公平访问共享的网络资源而发明 由发送方把数据分成许多个小的包 用特殊字符来划分帧的开始和结束 当数据中出现特殊字符时则用字节填充 2019/2/28
SUMMARY (续) 如何检测数据错误? 技术: 发送方在包中加入额外信息 接受方进行检查 校验位 校验和 循环冗余校验 (CRC) 提供统计意义上的保证 2019/2/28