好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

[工学]ch33_常用差错控制方法.ppt

58页
  • 卖家[上传人]:油条
  • 文档编号:55338213
  • 上传时间:2018-09-27
  • 文档格式:PPT
  • 文档大小:607.50KB
  • / 58 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 3.4差错控制方法,3.4差错控制方法 3.4.1自动请求重发(ARQ)1. 停止等待ARQ2.返回N帧(Go-Back-N)ARQ3.选择性重发ARQ3.4.2 前向纠错控制方法(FEC)3.4.3 混合纠错控制方法(HEC)3.4.4 信息反馈3.4.5 其它差错控制方式 3.5 差错控制的性能估算和应用,,利用我们前面介绍的抗干扰编码(或叫差错控制编码)来控制传输系统的传输差错的方法,称为差错控制 根据抗干扰编码结构的不同和利用抗干扰编码控制差错的方法不同形成了不同的差错控制工作方式差错控制的两种基本思想: 一是通过差错编码,使得接收端译码器能发现错误并准确地判断差错的位置从而自动纠正它们 另一个就是在接收端能够发现错误但无法自动纠错,请求发送端重发数据等方式来达到纠正错误的目的按照这种基本思想,在数据通信中,利用差错控制编码进行系统传输的差错控制的工作方式可分为四类:自动请求重发(ARQ),前向纠错(FEC),混合纠错(HEC)和信息反馈(IRQ),另外还有诸如像冗余法,多数表决法(重复编码)等,下面分别加以介绍 ARQ Auto Request for Retransmission FEC Forward Error Correction HEC Hybrid Error Correction IRQ Information Repetition Request,差错控制方式分类,,3.4.1 ARQ: 自动请求重发,又称反馈重发 发送端首先对发送序列(信息码)进行差错编码,生成一个可以检测出错误的校验序列(监督码),然后连同数据一起发送出去; 接收端根据校验序列的编码规则判决是否出错,并把判决结果通过反馈通道传回给发送端:,,(1)ARQ传输差错处理方法,通常处理传输差错的办法如下: 肯定确认:接收端收到一个帧后未发现错误,回送一个确认信号,用ACK表示。

      否定确认:用NAK表示 超时重发(Overtime):发送端发出一个帧后开始计时,如果在规定的时间内没有收到确认信号(ACK或NAK),则认为发生帧丢失的或确认信号丢失必须重发2)ARQ技术,ARQ技术结合流量控制又分为三种形式: 1.停止等待ARQ (Stop_and_Wait) 2.返回N帧ARQ (Go_back_N) 3.选择重发ARQ (Selective_Retransmit),,3.4.1 ARQ: 自动请求重发,1.停止-等待ARQ 2.返回N帧(Go-Back-N)ARQ 3.选择性重发ARQ,,1.停止-等待ARQ,(1)基本概念:这是一种结合停止-等待流量控制技术的ARQ技术 发送端:发送一帧数据  等待确认(ACK/NAK)  重发上一帧或发送下一帧数据 获得ACK之前,发送端必须备份已发送的一帧数据 Timer: avoid Deadlock frame lost 接收端:等待接收数据,并校验 正确,将接收到的数据帧上交网络层并回送ACK 错误,丢弃接收到的数据帧并回送NAK,,1.停止-等待ARQ,细节 Deadlock: Timer Repeated data frame: add NO. field in the data frame Give up frame: data frame / ACK、NAK,,1.停止-等待ARQ,状态序号:收发双方都维持一个状态序号,用来记录链路上期待正确接收、确认的帧序号 (2)操作要点(P72): 初始化:将收发两端状态序号初始化为0 状态序号通过1bit的数据来维持即可(序号非0即1) 发送端:每送出一个数据帧(数据帧的序号非零即1,第一个数据帧序号为0),将其序号写入本地状态序号(设用V(s)表示)中。

      1.停止-等待ARQ,(两者一至如何,两者不一至如何?),答:若两者一致,则说明是新的数据帧应该回送确认帧并且更新本地状态序号,准备接收下一个数据帧若发现不一致,则说明是重复帧,应该丢弃之,并且不改变状态序号的值,但仍需向发送端回送一个确认帧而帧的序号应该为刚才收到的数据帧的序号1.停止-等待ARQ,发送端:每收到一个确认帧,将其序号与本地的状态序号相比较两者一至如何,两者不一至如何?),答:若两者一至,则说明传输正确,可以发送新的一数据帧,并更新本地状态序号;准备接收下一数据帧若发现不一至,说明是重复的确认帧,只需丢弃即可,继续等待所期望的确认帧总结:发送端的状态序号值等于刚发送完的数据帧的序号;而接收端的状态序号表示当前期望接收的数据帧的序号链路数据传输过程:正常,,链路数据传输过程:数据帧出错,,链路数据传输过程:数据帧丢失,,链路数据传输过程:确认帧丢失,,停-等ARQ的算法流程,N(s)表示数据帧序号,N,Y,,连续重发请求ARQ,为了减小占空比,提高传输效率,人们又提出了连续重发请求(continuous ARQ)的方法,这是一种结合滑动窗口流量控制技术的方法 连续重发请求,不等前帧确认便发下一帧,即连续发送数据帧,将等待确认时间利用起来,从而大大提高传输效率。

      连续重发请求ARQ,为了保证接收端的数据链路层按照发送的顺序将数据帧提交给上层(网络层),接收端对后继的正确帧的处理方式决定了发送端重发错误帧的方法 返回N帧(Go-Back-N)ARQ: GBN 选择性重发ARQ(Selective Repeat): SR 连续重发请求,能够提高传输效率,但是在实现上相应需要更大的缓冲区(存贮空间,Buffer),,2.返回N帧(Go-Back-N)ARQ,(1)基本想法:连续发送data frame  if有错,则回退N帧连续发送data frame (重发所有其它帧,不管它是否正确接收) (2)缓冲区大小: 发送端:需要一个能存储N个数据帧的缓冲区(重发表),以便随时准备重发 接收端:对检测出有错的那个数据帧之后的N-1帧,不论正确与否都一律丢弃,故只需能够存储一个数据帧的缓冲区即可(仅当在没有考虑流量控制的情况可以这样!)3)返回N帧ARQ示意图,,,,,,,,,,,,,,,,,,ACK1,ACK2,NAK3,,,,,,,,NAK4,NAK5,NAK6,NAK7,NAK8,NAK9,ACK3,ACK4,ACK5,ACK6,NAK7,,,,,,,,,,提交网络层,提交网络层,,,,丢弃,丢弃,接收端,发送端,,,回退N帧:N=滑动窗口大小 发送端: 每收到ACK帧,继续发送新数据 每收到NAK帧,回退N帧,即重发出错帧以及其后发送的 N-1 帧数据(不管它们是否正确),,(4)传输过程,数据帧和确认帧都正常 数据帧出错(丢失),返回NAK(启动Timer)回退N帧 数据帧正确而确认帧出现错误 : 后继收到的确认帧为ACK 后继收到的确认帧为NAK,,(5)返回N帧ARQ操作要点,(1)数据帧和确认帧都正常:不出现差错或丢失 (1)发送端连续发送数据帧而不等待确认帧,直到收到第一帧的确认帧为止决定下一步操作 (2)发送端在重发表中保存N个数据帧的备份 (3)重发表按FIFO规则操作 (4)接收端对每一个正确接收到的数据帧返回一个确认(ACK)帧,,,(5)每一个数据帧包含一个唯一的序号 (6)接收端保存一个接收序列表,保存最后正确接收到一帧数据 (7)当一收到相应数据帧的确认(ACK)帧,发送端从重发表重删除该数据帧,,,(2)数据帧出错(帧受损坏、丢失): (1)假设第 N+1 帧数据出错 (2)接收端立即返回 NAK(N+1),指出最后正确接收到的是第 N 帧 (3)接收端同时清除其后的其它数据帧……,直到收到正确的第(N+1)帧 (4)为避免死锁(ACK/NAK丢失),一般发送端在发送一帧数据的同时启动定时器,,,(5)一旦正确收到第(N+1)帧,接收端就继续正常工作 (6)发送端可以接收确认、否认帧(ACK/NAK) ACK:继续发送后继帧 NAK:回退N帧重发,,,(3)数据帧正确而确认帧出现错误 : 发送端收到后继的肯定应答帧ACK ACK(N) ACK(N+1)error or lost But the sender can receive ACK(N+2), So the sender can acknowledge Nth and (N+1)th frame; That is to say that ACK frame can accumulate his acknowledging functions. After this, the sender can continue to work.,为什么接收端必须对每一个正确接收的数据帧都为ACK?? ?,,,发送端收到后继的否定应答帧NAK 发送端收到 NAK(N+1),这时可以从重发表中看到应该确认的数据帧是第N帧,所以发现失序,必须回退并从第N帧起开始重发。

      问题一:假设丢失或出错的确认帧本来就是NAK(N),接收端继续正常工作 问题二:假设丢失或出错的确认帧本来是ACK(N),接收端会收到重复的第N帧数据,不能正常工作; 解决办法:本地状态序号与帧序号相比较,,(6)Go_Back_N中的状态序号,The functions of the state number are nearly same in the Go_Back_ N and Stop_and _Wait error-controlling methods;But their operations are not same. LN_R, LN_S 表示收、发双方的状态序号 TN_R , TN_S 表示收、发双方传输的数据帧序号 在Go_Back_ N 方案中,帧序号需要[log2N]比特来维持,状态序号与帧序号的取值区间完全相同 假定序号为TN_S=1的数据帧出错,因而该数据帧被接收端丢弃Go_Back_N中的状态序号,因为TN_S=1的数据帧未被正确接收,所以LN_R不增加,并给发送端回送NAK(TN_R=1)帧 当收到TN_S= 2的数据帧,因为LN_R不等于TN_S,所以接收端将此帧丢失,并给发送端返回一个NAK(TN_R=2)帧。

      发送端收到NAK(TN_R=2)帧,立即发现重发表中显然有两个未被确认的数据帧,即TN_S=1和TN_S=2的两个帧,因此将此两帧重发若从LN_S=1的角度来看,同样说明原来TN_S=1的数据帧未被确认,应该回退到此帧开始重发7)连续ARQ的算法流程,N,,(8)返回N帧ARQ存在问题,返回N帧ARQ因连续发送数据帧而提高传输效率 发送端要维持和滑动窗口一样大小的缓冲区,备份已发送的数据;并且重发时不管出错数据帧其后的数据帧是否有错,一律重发,使传输效率降低 通信链路较差、误码率较大时,go_back_N就不一定优于stop_and_wait 另外在长传播延时链路上go_back_N传输效率也较低3.选择性重发ARQ,在返回N帧ARQ的基础上改进而来,也是一种ARQ连续方案 发送端连续发送数据帧——接收端接收确认: ACK(N)——连续发送 NAK(N)——发送端根据NAK(N)中N确认重发出错帧;即对重发帧有个选择,避免对后继正确数据帧的多余重发,较返回N帧方案效率有明显提高1)选择性重发ARQ示意图,,,,,,,,,,,,,,,,ACK1,ACK2,NAK3,,,,,,,ACK4,ACK5,NAK6,ACK7,ACK8,ACK9,,,ACK3,ACK10,NAK6,ACK11,,,,,,,与4、5号帧一起提交网络层,提交网络层,暂存与缓冲区中,暂存与缓冲区中,,,,,,重传,NAK12,ACK13,,NAK14,,,,,,,,ACK15,ACK16,ACK17,,ACK6,,与7~11号帧一起提交网络层,,重传,,,重传,,(2)选择性重发ARQ存在问题,选择性重发ARQ在效率上获得的增加,是以复杂的接收控制机制和巨大的缓冲容量为代价的。

      在链路较差以致较多出现多个错和单个数据帧连续出错的情况下,重发帧和接收帧的缓存提取以及接收后的排序问题都比较复杂。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.