第4-2讲 差错控制技术.ppt_第1页
第4-2讲 差错控制技术.ppt_第2页
第4-2讲 差错控制技术.ppt_第3页
第4-2讲 差错控制技术.ppt_第4页
第4-2讲 差错控制技术.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-1,差错控制技术,第 4-2 讲,网络通用技术,-2,内容提纲,1 概述 2 差错类型 3 差错检测技术 4 差错控制技术 5 差错控制与网络层次的关系,-3,差错控制:概述,网络通信的目的是通过网络在应用进程间传输信息,任何数据丢失或损坏都将对通信双方产生重要的影响。 差错控制是指在网络通信过程中发现(检测)差错,并采取措施纠正,把差错限制在所允许的尽可能小的范围内的技术和方法。 差错控制的目的是为了提高数据传输的可靠性,但是任何一种差错控制方法均不可能纠正所有可能出现的差错。,-4,差错类型(续),根据差错的表现形式 ,可分为四类(): 失真(Distortion) 定义:被传送信息中的

2、一个或多个比特发生了改变,或者被传送的信息中插入了一些新的信息,后一种情况也称为“插入(Insertion)” 主要原因: 网络中物理干扰(如线路噪声) 发送者和接收者之间的失步 入侵者的故意攻击 结点中的硬件故障和软件差错等 解决方法:各种校验方法来检测,-5,差错类型(续),根据差错的表现形式 ,可分为四类() 丢失(Deletion) 定义:网络将被传输的信息丢弃 主要原因: 噪声脉冲对某个帧的破坏程度太大,以致接收方不知道这个帧已经被传输; 发送者和接收者之间的失步; 流量控制或拥塞控制措施不当时因资源不够而被中间结点或接收者丢弃; 因接收者检测到信息被损坏而主动将其丢弃等 解决方法:

3、用序号、计时器和确认共同检测,通过重传的方法来纠正错误,-6,差错类型(续),根据差错的表现形式 ,可分为四类() 重复(Duplication) 定义:多次收到同样的信息 主要原因: 是差错控制机制本身,如果发送方错误地认为数据丢失了,因而重传了它,就可能造成接收方收到重复的信息 路由选择机制引起的重复帧,如使用基于扩散的路由选择策略(如洪泛法) 解决方法:用序号来检测这种错误,用丢弃重复的数据来纠正错误。,-7,差错类型(续),根据差错的表现形式 ,可分为四类() 失序(Reordering) 定义:数据到达接收方的顺序与发送方发送的顺序不一致 主要原因: 采用自适应的路由选择策略,分组在

4、网络中传送时可能有多条路由而引起的后发先到 中间结点缓存或转发出错 重传丢失的数据也可能导致数据不按序到达 解决方法: 把乱序的数据先存储下来,使得以后能把它们存放在正确的位置上; 丢弃乱序的数据,然后按数据丢失来处理 。,-8,差错检测技术:概述,检查收到的数据是否正确 通常情况下,我们所说的差错检测是指检测收到的数据是否被损坏,而不包括对数据丢失、重复、乱序等差错的检测 在这样的前提下,差错检测技术所采取的方法一般是各种检验和技术,如奇偶检验,循环冗余检验等,本节主要介绍这方面的技术 差错检测是差错控制的基础,-9,差错检测技术:原理,E, E:差错检验码,对比,接收器,数据,E,E =

5、f(Data),数据,E,E = f(Data),发送器,数据,f: 差错检验函数,问题:为什么将检验码放在帧的尾部?,-10,奇偶检验,奇偶检验在数据的尾部附加上奇偶检验位,使得码字中比特“1”的个数保持为奇数(奇检验)或偶数(偶检验) 被广泛用于诸如计算机的异步串行口通信中 三种类型: 垂直冗余检验(Vertical Redundancy Checking,VRC) 水平(纵向)冗余检验(Longitudinal Redundancy Checking,LRC) 垂直水平冗余检验,-11,奇偶检验:垂直冗余检验,原理:将整个发送的信息分为长度为p位的若干段,如q段,每段后面按“1”的个数为

6、奇数或偶数的规律加上一位奇偶位,其有(pq) 个信息位,每段由p位构成,共q段。 通常p值等于一个字符的长度,因此有时也将垂直冗余检验称为字符奇偶检验。 可以用硬件或软件方法来实现连续半加(不考虑进位)运算,且可以边发送边产生检验位,并插入检验位发送。在接收时边接收边进行检验并除去检验位 能检测出每行中的所有奇数个位的错,但检测不出偶数个位的错。对于突发错误而言,奇数位错与偶数位错的概率差不多是相等的,因而对差错的漏检率接近于50%。,-12,奇偶检验:水平冗余检验,原理:对各个信息段的相应位水平进行编码,对应每一列产生一个奇偶检验位。这种水平基础上检验字符的技术,使用了和垂直冗余检验同样的奇

7、偶性。 漏检率要比垂直冗余检验低。不但可以检测出各段同一位上的奇数位错,而且可以检测出突发长度小于等于p的所有突发错误(Why?),突发长度小于等于p的突发错误必然分布在不同列中,每列一位,所以可以检测出来,-13,奇偶检验:垂直水平冗余检验,同时进行垂直冗余检验和纵向冗余检验 能检测出所有3位或3位以下的错误(因为此时至少在某一行或某一列上为一位错)、奇数位错、突发长度小于等于(p+1)的突发错。 还可以纠正部分差错,例如仅在某一行和某一列中有1位错时,就可以确定错误的位置就在该行和该列的交叉处,从而得以纠正。 此外,能检测很大一部分偶数位错。当某一行出现偶数个错时,虽然垂直冗余检验不能发现

8、,但在其纵向冗余检验中还是可以被检测出来;反之亦然。只有当有错的各行和各列中出错位数均为偶数时,才不可能被发现。,-14,CRC检验:原理,CRC是数据通信中进行错误检查和纠正的一种重要方法,易于编码和解码,对随机和突发错码均能以较低冗余度实施检查。 方法:发端产生一个循环冗余检验码,附在信息位后面发到收端,收端按照与发端同样的算法进行检验,若有错,需要重发。 线性码:由k位信息码和r位检验码构成,每位检验码都是前面某些信息码元的模2和(即按照线性关系相加),码长n=k+r。 线性码特点:封闭性(任意两个码字相加仍可得到一个码字)和循环型(一个码字作任意循环移位得到的仍是码字)。,-15,CR

9、C检验:示例,1101010110Q 商 除数P110101 101000110100000XrM 被除数 110101 111011 110101 111010 110101 111110 110101 101100 110101 110010 110101 01110R 余数,数据:M=1010001101 除数P(生成多项式)= X5+X4+X2+X0 XrM(X)=P(X)Q(X)+R(X) 模 2 运算:加法不进位,减法和加法一样, 例如:1111 + 1010 = 0101 冗余码(R(X))称为帧检验序列 FCS T(X)=XrM(X) + R(X)称为循环码 接收端运算:XrM

10、(X) + R(X) / P(X) = Q(X), 有错:余数R(X) !=0; 无错:余数R(X) =0,去掉尾部r位便得到信息码 问题:R(X) 等于0就肯定没有错吗? 常见多项式: CRC-CCITT = X16+X12+X5+1; CRC-16 = X16+X15+X2+1 CRC-12 = X12+X11+X3+X2+X+1 CRC-32 = X32+X26+X23+ X22+X16+X12+ X11+X10+X8+ X7+X5+X4+ X2+X+1,(信息多项式),-16,算术检验和(因特网检验和),尽管可以通过前面介绍的查表方法或特殊硬件方法计算检验和来缩短处理时间,但: 对于允

11、许一定程度漏检率的应用场合,可以采用比CRC检验简单且又能够发现比较严重的传输错误的方法来进行差错检测。 John Fletcher 在1982提出了这样一种差错检测方法,称为算术检验和 只需用到加法和取模操作 算法特别简单 一些因特网协议(TCP、UDP和IP)使用这种方法,强调易实现性和简单性,-17,Arithmetic Checksum,Error detection at the higher layer is usually done by ordinary arithmetic operations.This is simpler in software but somewhat

12、 less effective than CRC. Standard technique is to view packet as sequence of k numbers of n bits each, say x1, x2,., xk. Checksum is then the n bit number x1+x2+.+xk using ordinary arithmetic with no carry.,-18,Arithmetic Checksum (Cont.),Alternatively, checksum might be 2n bits; first n bits is (s

13、um) x1+x2+.+xk and second n bits is (sum of sum) x1+2x2+3x3+.+kxk. Example: n=16, checksum is 16 bits. Checksum=x1+x2+.+xk,接收端计算x1+x2+.+xk+Checksum=0,则没有错误。,-19,UDP协议的差错检测,两个数进行二进制反码求和的运算规则是从低位到高位逐列进行计算。0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列。最高位相加后产生的进位则进到最低位,也就是循环进位。,-20,UDP协议的差错检测,-21,TCP协议的差错检测,检

14、验和字段检验的范围包括首部和数据这两部分。和UDP用户数据报一样,在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。伪首部的格式与UDP用户数据报的伪首部一样。但应将伪首部第6个字段中的17改为6(TCP的协议号是6),将第5字段中的UDP长度改为TCP长度。TCP必须进行检验(UDP可选)。,-22,前向纠错技术,前向纠错:在每个要发送的数据块附加足够的冗余信息(纠错码),使接收方能够推导出发送方实际发送的应该是什么样的比特串。 前面介绍的纵向垂直冗余检验就具有纠错功能。 汉明码(Hamming Code) 一般情况下,使用差错检测技术检测出传输错误后,通常使用重传(请求重传和超时

15、重传)的方法来纠正。 为什么需要前向纠错(Forward Error Correction, FEC) ?,-23,前向纠错技术,在有些场合下,不适合或不能使用重传的方法,例如: 很长的传输时延: 例如,空间探测器与地面控制中心之间的通信,可能没有足够的时间来重传 没有反向信道: 在单向广播系统中,根本不能发送重传请求。 高的比特差错率: 重传帧以及请求重传帧出错的概率都非常高,使得重传难以实现 某些实时性应用 发端的信息无法存储,-24,被保护对象的选择,有些协议中,是对整个数据单元(帧、分组、报文,或统称为PDU)进行检验和保护, 而另一些协议则只需要对数据单元的首部(控制部分)或首部中的

16、某些字段进行检验和保护。 选择被保护对象的主要依据是: 协议提供的功能 下层协议提供的服务的特点 性能上的要求等,-25,思考题,1 请说明上述协议采用的差错检测方法及选择的被保护对象的理由。 2 是否在所有协议中,检验和生成函数的输入只有被保护数据?请举例说明,并作出解释。,-26,差错控制技术,一、确认(Acknowledge),-27,确认,确认(ack)是接收者显式地通知发送者所发送的特定数据的接收情况 被确认的对象主要有 PDU 字节 确认的情况: 已正确到达, 还没有收到, 收到但有错(相当于没有收到),-28,确认(续),确认分为三种类型: 肯定确认(Ack) 指示数据已正确收到

17、 否定确认(Nak) 指示数据丢失(没收到或收到但有错误) 选择确认(Select Ack) 既指示已正确接收的数据,又指示哪些数据还没有正确收到,-29,确认(续),两种发送方式: 独立确认 指用一个确认PDU来携带确认信息 独立确认随时可以发送 另一种是捎带确认(piggybacking) 将确认信息放在数据PDU中发送 可以提高协议的效率,但要求接收方有数据发送时才能发送确认 通常在一种协议中,这两种确认形式均存在。,-30,确认(续),如何标识被确认的对象? 用被确认的PDU或字节的序号来标识 否定和肯定确认通常包含一个序号 如果确认的语义表示给定序号之前的所有序号(包括或不包括本序号

18、)的数据都已被成功接收,则该确认又称为累计确认。 选择确认信息中包含多个序号,其格式可以有以下几种: 表。表中含有一组序号,代表丢失的数据或代表正确接收的数据。 范围。范围用序号区间来表示,在区间内的序号代表丢失的数据或者代表正确接收的数据。 位图。用一个比特组来表示确认,其中每一个比特位代表一个序号,它被置位表示它所代表的数据已正确收到。此外,这种方法还需要一个序号,指明该位图的偏移量。,-31,确认:思考题,3 讨论TCP协议采用的确认机制(考虑收到正确数据、错误数据、数据丢失、重复、失序等情况)并分析确认机制的效率。 4 试分析高速传输协议与低速传输协议所采用的确认机制上的差别(如帧中继

19、和X.25)。,-32,差错控制技术,二、计时器(Timer),-33,计时器,为什么需要计时器? 如果携带确认信息的确认PDU或数据PDU丢失,则发送方无法知道发送的PDU的接收情况。 这将导致: 对于可靠通信协议而言,占用发送方缓存 由于流量控制而不能发送新的PDU 发送方一直处于等待状态,死锁 计时器:检测确认PDU或重传请求信号的丢失,-34,计时器(续),计时器的超时值如何设置? 是一个非常复杂和难解决的问题,依赖于住返时间(RTT) RTT与网络负载和路由选择策略有很大的关系,通常情况下是一个动态变化的量 动态估计往返时间和重传计时器定时值的算法 Mills算法(Mills, 19

20、83) Edge算法(Edge, 1984) Karn和Patridge的算法(Karn and Patridge, 1987) Jacobson/Karel的算法(Jacobson, 1988) 如果超时计时器的超时值设置不当,会导致 过短,导致连续大量的数据重传,严重情况下将加剧网络拥塞,甚至出现拥塞崩溃 如果超时值设置太长,出现数据丢失而得不到及时纠正,则会降低协议的性能,-35,计时器(续),为了差错控制的目的,一个协议中往往存在多个计时器(续) TCP协议: 重传计时器:控制丢失的或丢弃的报文段 冻结计时器:一条连接一个冻结计时器。当发送端的TCP收到一个窗口大小为零(让发送端停止发

21、送)的确认时,就启动冻结计时器。 保活计时器:在某些实现中,用来防止在两个TCP端点之间的连接长期处于空闲 时间等待计时器:在连接终止期间使用。当TCP关闭一个连接时,它并不认为这个连接马上就真正关闭。在时间等待期间中,连接还处于一种中间过渡状态。,-36,计时器:思考题,5 请以TCP为例,详细讨论在设置计时器的超时值时应考虑哪些问题。,-37,差错控制技术,三、重传(Retransmit),-38,重传,指发送者重传由确认所指出的数据PDU或重传计时器超时未收到确认的数据PDU。 基于滑动窗口的重传方法: 回退n帧(Go-back-N) 接收方直接丢弃所有不按序到达的数据PDU。 发送方从

22、第一个否定确认或超时时所指序号的数据PDU开始,重传所有后续数据PDU。 选择重传(selective repeat) 发送方只重传否定确认、选择确认和计时器超时指出的那些数据PDU,-39,重传(续),实际协议中的重传机制比较复杂,主要是计时器的超时间隔很难确定。 TCP的重传机制 重传机制是TCP中最重要和最复杂的问题之一。TCP每发送一个报文段,就设置一次计时器。只要计时器设置的重传时间到而还没有收到确认,就要重传这一报文段。 TCP的下层往往是一个互连网环境。发送的报文段可能只经过一个高速率的局域网,也可能经过多个低速率的广域网,并且数据报所选择的路由也可能会发生变化 需要一种动态自适

23、应算法,-40,差错控制技术,四、序号(Sequence Number),-41,序号,为什么需要序号? 为了检测数据PDU的重复、失序和丢失,需要对数据PDU进行无二义性的编号,该编号称为数据PDU的序号 编号通常是按照请求服务者传递SDU的次序进行的。这些SDU被放入PDU中进行传输。 序号有三种不同的产生方式: SDU序号:对每个SDU都编上序号,从SDU序号得到PDU的序号。如果该SDU被携带在多个数据PDU中时,还应附加一个SDU数据块号 PDU序号:对PDU连续编号,不管它们携带的SDU数据量。 字节序号:一个SDU的每个字节都编号,PDU的序号来自于它所携带的SDU的第1个字节的

24、序号或最后1个字节的序号。,-42,序号(续),一个重要的问题:如何防止序号重复? 使用非常大的序号空间。这个序号空间大到使得在数据单元从这一端传送到另一端的最大可能的迟延时间L内,所有从源点发送出去的新的数据单元都具有不同的序号。在开始一个新的连接时,可以使数据单元的起始序号为上次连接中最后使用过的序号加1。 每次连接开始数据单元都使用同样的起始序号,但必须使新的连接推迟开始,如至少在上次的连接释放后推迟时间L。 赋给每个连接一个标号,或者称为连接序号。对于一个给定连接中的每一个数据单元都附上连接序号。当新建一个连接时,就换上一个新的序号(如socket)。,-43,序号(续),序号空间的大

25、小与信道特点、确认方法、流量控制方法和PDU数据字段长度有关 如果信道的质量比较好,则序号空间要求比较大,从而可以连续发送多个数据单元,提高协议效率 采用周期性确认,序号空间就不一定要很大 在停止等待协议中,只需要0和1两个序号即可 一般来说,序号空间的大小与数据字段长度成反比 序号是确认和重传的基础,此外序号还可用于流量控制。,-44,差错控制技术:思考题,6 简要说明确认、计时器、重传、序号之间的关系。,-45,差错控制与协议层次的关系,从通信和信息处理角度看,物理层、数据链路层、网络层和运输层属面向通信部分,因而网络中的绝大部分差错控制功能要在这几层中实现。 处于不同层次的协议所采用的差错控制机制是有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论