计算机网络课程详细3解读.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 数据链路层 1 组帧(framing) 使用字节(字符)填充的首尾标记法: 使用特殊的字节来表示帧的开始与结束 为避免在数据部分出现这些特殊字节时产生异义,在特殊字节前插入转义字符,称为字节填充(byte stuffing) 该方法依赖于特定的字符编码集,帧长必须是8比特的整倍数,灵活性差,处理开销大(必须由软件处理)。 字节填充图例 (a) A frame delimited by flag bytes (b) Four examples of byte sequences before and after stuffing. 比特填充图例 (a) The original data. (b) The data as they appear on the line. (c) The data as they are stored in receiver’s memory after destuffing. 2 检错和纠错 传输出错的类型 单个错:由随机的信道热噪声引起,一次只影响1位。 突发错:由瞬间的脉冲噪声引起,一次影响许多位。用突发长度表示突发错影响的最大数据位数。 差错编码的类型 检错码:只能检测到数据传输发生了错误,但无法自行纠正,通常与反馈重传结合起来进行差错恢复。 纠错码:不权能够检测出数据传输发生了错误,而且能够自行纠正错误。 如何检测与纠正错误? 码字(codeword):由m比特的数据(消息)加上r比特的冗余(校验位)构成。 有效编码集:由2m个(符合编码规则的)有效码字组成。 检错:当收到的码字为无效码字时,称检测出错误。 海明距离(Hamming Distance):两个码字的对应位上取值不同的位数。 纠错:将收到的无效码字纠正到距其最近的有效码字。 检错码与纠错码的能力都是有限的。 2.2 循环冗余码(CRC码) CRC是一种多项式编码,它将位串看成是某个一元多项式的系数,如1011001看成是一元多项式X6 + X4 + X3 + 1的系数。 信息多项式M(x):由m个信息比特为系数构成的多项式。 冗余多项式R(x):由r个冗余比特为系数构成的多项式。 码多项式T(x):在m个信息比特后加上r个冗余比特构成的码字所对应的多项式,表达式为T(x) = xr·M(x) + R(x)。 生成多项式G(x):双方预先确定用来计算R(x)的一个多项式。 编码方法:用对应于G(x)的位串去除对应于xr·M(x)的位串,所得的余式即为R(x),将其附加到信息比特串的后面一起发送。 检错方法:用对应于G(x)的位串去除对应于T(x)的位串,若余式为0则认为传输正确,否则认为传输错误。 CRC码检错能力强,实现简单快捷,是应用最广泛的检错码。 CRC编码及校验 例1:G(X) = X4 + X + 1,行CRC编码,为101100110100。 例2:仍取G(X) = X4 + X + 1,判断收到的位串100101111001是否有错? 3 可靠交付 差错恢复的两种办法: 使用纠错码,由接收端自动纠正错误。 使用检错码,采用自动重传请求(ARQ)保证可靠交付。这是数据链路层(及传输层)上最常使用的可靠交付方式。 自动重传请求(Automatic Repeat Request): 使用确认和超时实现可靠传输的策略。 两种ARQ方案: 停-等算法 滑动窗口算法 3.1 停-等算法(stop-and-wait) 基本思想: 发送方发完一帧后即停下来等待确认,同时启动一个定时器; 如果收到确认,复位定时器,发送下一个帧; 如果定时器超时,重发刚才的帧。 停-等算法的四种情形。 停-等算法的超时值对性能影响很大,必须仔细选择。 为区分新帧和重发帧,停-等算法使用一比特的帧序号。 停-等算法的四种情形 停-等算法的处理流程 发送端: 1)帧序号seq初始化为0。 2)从缓冲区中取出一个帧,以seq作为帧序号发送。 3)启动定时器,等待确认: i)收到确认帧,且seq≠ack,则seq加1;从缓冲区中取出一个新的帧,加上seq发送。 ii)收到确认帧,但seq = ack,重发当前序号的帧。 iii)收到错误的确认帧,重发当前序号的帧。 iv)定时器超时,重发当前序号的帧。 4)回到3) 接收端: 1)帧序号ack初始化为0,准备接收序号为0的帧。 2)等待接收。 3)帧到达,有以下三种情况: i)帧校验正确,且seq = ack,将帧存入接收缓冲区;ack 加 1,放入确认帧中发送,确认帧中的序号表明当前期待接收的帧。 ii)帧校验正确,但seq≠ack,丢弃帧,重发确认帧。 iii)帧校验错误,丢弃帧,重发确认帧

您可能关注的文档

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档