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

下载本文档

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

文档简介

1、-1 差错控制技术差错控制技术 第第 4-2 讲讲网络通用技术网络通用技术-2内容提纲内容提纲1 概述概述2 差错类型差错类型3 差错检测技术差错检测技术4 差错控制技术差错控制技术5 差错控制与网络层次的关系差错控制与网络层次的关系-3差错控制:概述差错控制:概述v网络通信的目的是通过网络在应用进程间传输网络通信的目的是通过网络在应用进程间传输信息,任何数据丢失或损坏都将对通信双方产信息,任何数据丢失或损坏都将对通信双方产生重要的影响。生重要的影响。 v差错控制差错控制是指在网络通信过程中发现(检测)是指在网络通信过程中发现(检测)差错,并采取措施纠正,把差错限制在差错,并采取措施纠正,把差

2、错限制在所允许所允许的尽可能小的范围内的技术和方法。的尽可能小的范围内的技术和方法。 v差错控制的目的是为了差错控制的目的是为了提高数据传输的可靠性提高数据传输的可靠性,但是任何一种差错控制方法均但是任何一种差错控制方法均不可能纠正所有不可能纠正所有可能出现的差错。可能出现的差错。 -4差错类型(续)差错类型(续)v根据差错的表现形式根据差错的表现形式 ,可分为四类():,可分为四类():失真失真(Distortion) 定义:被传送信息中的一个或多个比特发生了改定义:被传送信息中的一个或多个比特发生了改变,或者被传送的信息中插入了一些新的信息,变,或者被传送的信息中插入了一些新的信息,后一种

3、情况也称为后一种情况也称为“插入插入(Insertion)” 主要原因:主要原因:网络中物理干扰(如线路噪声)网络中物理干扰(如线路噪声)发送者和接收者之间的失步发送者和接收者之间的失步入侵者的故意攻击入侵者的故意攻击结点中的硬件故障和软件差错等结点中的硬件故障和软件差错等 解决方法:各种校验方法来检测解决方法:各种校验方法来检测 -5差错类型(续)差错类型(续)v根据差错的表现形式根据差错的表现形式 ,可分为四类,可分为四类()()丢失丢失(Deletion) 定义:网络将被传输的信息丢弃定义:网络将被传输的信息丢弃 主要原因:主要原因:噪声脉冲对某个帧的破坏程度太大,以致接收方不知噪声脉冲

4、对某个帧的破坏程度太大,以致接收方不知道这个帧已经被传输;道这个帧已经被传输;发送者和接收者之间的失步;发送者和接收者之间的失步;流量控制或拥塞控制措施不当时因资源不够而被中间流量控制或拥塞控制措施不当时因资源不够而被中间结点或接收者丢弃;结点或接收者丢弃;因接收者检测到信息被损坏而主动将其丢弃等因接收者检测到信息被损坏而主动将其丢弃等 解决方法:用序号、计时器和确认共同检测,通解决方法:用序号、计时器和确认共同检测,通过重传的方法来纠正错误过重传的方法来纠正错误 -6差错类型(续)差错类型(续)v根据差错的表现形式根据差错的表现形式 ,可分为四类,可分为四类()()重复重复(Duplicat

5、ion) 定义:多次收到同样的信息定义:多次收到同样的信息 主要原因:主要原因:是差错控制机制本身,如果发送方错误地认为数据丢是差错控制机制本身,如果发送方错误地认为数据丢失了,因而重传了它,就可能造成接收方收到重复的失了,因而重传了它,就可能造成接收方收到重复的信息信息 路由选择机制引起的重复帧,如使用基于扩散的路由路由选择机制引起的重复帧,如使用基于扩散的路由选择策略选择策略(如洪泛法如洪泛法) 解决方法:用序号来检测这种错误,用丢弃重复解决方法:用序号来检测这种错误,用丢弃重复的数据来纠正错误。的数据来纠正错误。-7差错类型(续)差错类型(续)v根据差错的表现形式根据差错的表现形式 ,可

6、分为四类,可分为四类()()失序失序(Reordering) 定义:定义:数据到达接收方的顺序与发送方发送的顺数据到达接收方的顺序与发送方发送的顺序不一致序不一致 主要原因:主要原因:采用自适应的路由选择策略,分组在网络中传送时可采用自适应的路由选择策略,分组在网络中传送时可能有多条路由而引起的后发先到能有多条路由而引起的后发先到 中间结点缓存或转发出错中间结点缓存或转发出错重传丢失的数据也可能导致数据不按序到达重传丢失的数据也可能导致数据不按序到达解决方法:解决方法:把乱序的数据先存储下来,使得以后能把它们存放在把乱序的数据先存储下来,使得以后能把它们存放在正确的位置上;正确的位置上;丢弃乱

7、序的数据,然后按数据丢失来处理丢弃乱序的数据,然后按数据丢失来处理 。-8差错检测技术:概述差错检测技术:概述v检查收到的数据是否正确检查收到的数据是否正确通常情况下,我们所说的差错检测是指检测收到的通常情况下,我们所说的差错检测是指检测收到的数据是否被损坏,而不包括对数据丢失、重复、乱数据是否被损坏,而不包括对数据丢失、重复、乱序等差错的检测序等差错的检测在这样的前提下,差错检测技术所采取的方法一般在这样的前提下,差错检测技术所采取的方法一般是各种检验和技术,如奇偶检验,循环冗余检验等是各种检验和技术,如奇偶检验,循环冗余检验等, ,本节主要介绍这方面的技术本节主要介绍这方面的技术v差错检测

8、是差错控制的基础差错检测是差错控制的基础 -9差错检测技术:原理差错检测技术:原理E, E:差错检验码:差错检验码对比对比接收器接收器数据数据 EE = f(Data)数据数据 EE = f(Data)发送器发送器数据数据f: 差错检验函数差错检验函数问题:问题:为什么将检验码放在帧的尾部?为什么将检验码放在帧的尾部?-10奇偶检验奇偶检验v奇偶检验在数据的尾部附加上奇偶检验位,使奇偶检验在数据的尾部附加上奇偶检验位,使得码字中比特得码字中比特“1”的个数保持为奇数的个数保持为奇数(奇检验奇检验)或偶数或偶数(偶检验偶检验) v被广泛用于诸如计算机的异步串行口通信中被广泛用于诸如计算机的异步串

9、行口通信中v三种类型:三种类型:垂直冗余检验垂直冗余检验(Vertical Redundancy Checking,VRC)水平(纵向)冗余检验水平(纵向)冗余检验(Longitudinal Redundancy Checking,LRC)垂直水平冗余检验垂直水平冗余检验 -11奇偶检验:奇偶检验:垂直冗余检验v 原理:原理:将整个发送的信息分为长度为将整个发送的信息分为长度为p位的若干段,如位的若干段,如q段,段,每段后面按每段后面按“1”的个数为奇数或偶数的规律加上一位奇偶的个数为奇数或偶数的规律加上一位奇偶位,其有位,其有(p q) 个信息位,每段由个信息位,每段由p位构成,共位构成,共

10、q段。段。v 通常通常p值等于一个字符的长度,因此有时也将垂直冗余检值等于一个字符的长度,因此有时也将垂直冗余检验称为验称为字符奇偶检验字符奇偶检验。v 可以用硬件或软件方法来实现连续半加(不考虑进位)运可以用硬件或软件方法来实现连续半加(不考虑进位)运算,且可以边发送边产生检验位,并插入检验位发送。在算,且可以边发送边产生检验位,并插入检验位发送。在接收时边接收边进行检验并除去检验位接收时边接收边进行检验并除去检验位v 能检测出每行中的能检测出每行中的所有奇数个位的错所有奇数个位的错,但检测不出,但检测不出偶数个偶数个位的错位的错。对于突发错误而言,奇数位错与偶数位错的概率。对于突发错误而言

11、,奇数位错与偶数位错的概率差不多是相等的,因而对差错的漏检率接近于差不多是相等的,因而对差错的漏检率接近于50%50%。 -12奇偶检验:奇偶检验:水平冗余检验v原理:原理:对各个信息段的相应位水平进行编码,对各个信息段的相应位水平进行编码,对应每一列产生一个奇偶检验位。这种水平基对应每一列产生一个奇偶检验位。这种水平基础上检验字符的技术,使用了和垂直冗余检验础上检验字符的技术,使用了和垂直冗余检验同样的奇偶性。同样的奇偶性。 v漏检率要比垂直冗余检验低。不但可以检测出漏检率要比垂直冗余检验低。不但可以检测出各段同一位上的奇数位错,而且可以检测出突各段同一位上的奇数位错,而且可以检测出突发长度

12、小于等于发长度小于等于p的所有突发错误(的所有突发错误(Why?Why?)突发长度小于等于突发长度小于等于p的突发的突发错误必然分布在不同列中,错误必然分布在不同列中,每列一位,所以可以检测出每列一位,所以可以检测出来来 -13奇偶检验:奇偶检验:垂直水平冗余检验v 同时进行垂直冗余检验和纵向冗余检验同时进行垂直冗余检验和纵向冗余检验v 能检测出所有能检测出所有3位或位或3位以下的错误位以下的错误(因为此时至少在某因为此时至少在某一行或某一列上为一位错一行或某一列上为一位错)、奇数位错奇数位错、突发长度小于突发长度小于等于等于(p+1)的突发错的突发错。v 还可以还可以纠正部分差错,纠正部分差

13、错,例如仅在某一行和某一列中有例如仅在某一行和某一列中有1 1位错时,就可以确定错误的位置就在该行和该列的交位错时,就可以确定错误的位置就在该行和该列的交叉处,从而得以纠正。叉处,从而得以纠正。 v 此外,能检测此外,能检测很大一部分偶数位错很大一部分偶数位错。当某一行出现偶。当某一行出现偶数个错时,虽然垂直冗余检验不能发现,但在其纵向数个错时,虽然垂直冗余检验不能发现,但在其纵向冗余检验中还是可以被检测出来;反之亦然。只有当冗余检验中还是可以被检测出来;反之亦然。只有当有错的各行和各列中出错位数均为偶数时,才不可能有错的各行和各列中出错位数均为偶数时,才不可能被发现。被发现。 -14CRC检

14、验:原理检验:原理v CRC是数据通信中进行错误检查和纠正的一种重要方是数据通信中进行错误检查和纠正的一种重要方法,易于编码和解码,对随机和突发错码均能以较低法,易于编码和解码,对随机和突发错码均能以较低冗余度实施检查。冗余度实施检查。 v 方法:方法:发端产生一个循环冗余检验码,附在信息位后发端产生一个循环冗余检验码,附在信息位后面发到收端,收端按照与发端同样的算法进行检验,面发到收端,收端按照与发端同样的算法进行检验,若有错,需要重发。若有错,需要重发。v 线性码:由线性码:由k位信息码和位信息码和r位检验码构成,每位检验码位检验码构成,每位检验码都是前面某些信息码元的模都是前面某些信息码

15、元的模2和(即按照线性关系相和(即按照线性关系相加),码长加),码长n=k+r。v 线性码特点:封闭性(任意两个码字相加仍可得到一线性码特点:封闭性(任意两个码字相加仍可得到一个码字)和循环型(一个码字作任意循环移位得到的个码字)和循环型(一个码字作任意循环移位得到的仍是码字)。仍是码字)。 -15CRC检验:示例检验:示例 1101010110Q 商 除数P110101 101000110100000XrM 被除数 110101 111011 110101 111010 110101 111110 110101 101100 110101 110010 110101 01110R 余数q 数

16、据:数据:M=1010001101q 除数除数P(生成多项式)(生成多项式)= X5+X4+X2+X0q XrM(X)=P(X)Q(X)+R(X) 模模 2 运算:加法不进位,减法和加法一样,运算:加法不进位,减法和加法一样, 例如:例如:1111 + 1010 = 0101q 冗余码(冗余码(R(X))称为帧检验序列)称为帧检验序列 FCSq T(X)=XrM(X) + R(X)称为循环码称为循环码q接收端运算:接收端运算:XrM(X) + R(X) / P(X) = Q(X),q 有错:余数有错:余数R(X) !=0;q无错:余数无错:余数R(X) =0,去掉尾部,去掉尾部r位便得到信息码

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

18、验和来缩短处理时间,但:,但:v对于允许一定程度漏检率的应用场合,对于允许一定程度漏检率的应用场合,可以采可以采用比用比CRC检验简单且又能够发现比较严重的传检验简单且又能够发现比较严重的传输错误的方法来进行差错检测。输错误的方法来进行差错检测。vJohn Fletcher John Fletcher 在在19821982提出了这样一种差错检提出了这样一种差错检测方法,称为测方法,称为算术检验和算术检验和只需用到加法和取模操作只需用到加法和取模操作算法特别简单算法特别简单 一些因特网协议(一些因特网协议(TCP、UDP和和IP)使用这种方法,)使用这种方法,强调易实现性和简单性强调易实现性和简

19、单性-17Arithmetic ChecksumvError detection at the higher layer is usually done by ordinary arithmetic operations.This is simpler in software but somewhat less effective than CRC.vStandard technique is to view packet as sequence of k numbers of n bits each, say x1, x2,., xk.vChecksum is then the n bit

20、number x1+x2+.+xk using ordinary arithmetic with no carry.-18Arithmetic Checksum (Cont.)vAlternatively, checksum might be 2n bits; first n bits is (sum) x1+x2+.+xk and second n bits is (sum of sum) x1+2x2+3x3+.+kxk.vExample: n=16, checksum is 16 bits.vChecksum=x1+x2+.+xk,接收端计算接收端计算x1+x2+.+xk+Checksu

21、m=0,则没有错误。,则没有错误。-19UDP协议的差错检测协议的差错检测10011001 00010011 153.1900001000 01101000 8.10410101011 00000011 171.300001110 00001011 16.1100000000 00010001 0 和 1700000000 00001111 1500000100 00111111 108700000000 00001101 1300000000 00001111 1500000000 00000000 0(检验和)01010100 01000101 数据01010011 01010100 数据

22、01001001 01001110 数据01000111 00000000 数据和 0(填充)10010110 11101011 求和得出的结果01101001 00010100 检验和 153.19.8.104171.3.16.11全 0 17 15 1087 13 15 全 0数据 数据 数据 数据数据 数据 数据 全 012 字节伪首部7 字节数据填充按二进制反码运算求和将得出的结果求反码两个数进行二进制反码求和的运算规则是从低位到高位逐列进行计算。0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列。最高位相加后产生的进位则进到最低位,也就是循环进位。 -20U

23、DP协议的差错检测协议的差错检测10011001 00010011 153.1900001000 01101000 8.10410101011 00000011 171.300001110 00001011 16.1100000000 00010001 0 和 1700000000 00001111 1500000100 00111111 108700000000 00001101 1300000000 00001111 1500000000 00000000 0(检验和)01010100 01000101 数据01010011 01010100 数据01001001 01001110 数据0

24、1000111 00000000 数据和 0(填充)10010110 11101011 求和得出的结果01101001 00010100 检验和 153.19.8.104171.3.16.11全 0 17 15 1087 13 15 全 0数据 数据 数据 数据数据 数据 数据 全 012 字节伪首部7 字节数据填充按二进制反码运算求和将得出的结果求反码-21TCP协议的差错检测协议的差错检测v检验和字段检验的范围包括首部和数据检验和字段检验的范围包括首部和数据这两部分。和这两部分。和UDP用户数据报一样,在用户数据报一样,在计算检验和时,要在计算检验和时,要在TCP报文段的前面报文段的前面加

25、上加上12字节的伪首部。伪首部的格式与字节的伪首部。伪首部的格式与UDP用户数据报的伪首部一样。但应将用户数据报的伪首部一样。但应将伪首部第伪首部第6 6个字段中的个字段中的17改为改为6(TCP的的协议号是协议号是6),将第),将第5字段中的字段中的UDP长度长度改为改为TCP长度。长度。TCPTCP必须进行检验必须进行检验( (UDP可选可选) )。-22前向纠错技术前向纠错技术v前向纠错:在每个要发送的数据块附加足够的冗前向纠错:在每个要发送的数据块附加足够的冗余信息余信息( (纠错码纠错码) ),使接收方能够推导出发送方实,使接收方能够推导出发送方实际发送的应该是什么样的比特串。际发送

26、的应该是什么样的比特串。前面介绍的纵向垂直冗余检验就具有纠错功能。前面介绍的纵向垂直冗余检验就具有纠错功能。汉明码汉明码(Hamming Code)v一般情况下,使用差错检测技术检测出传输错误一般情况下,使用差错检测技术检测出传输错误后,通常使用重传后,通常使用重传(请求重传和超时重传请求重传和超时重传)的方的方法来纠正。法来纠正。 v为什么需要前向纠错为什么需要前向纠错(Forward Error Correction, FEC) ?-23前向纠错技术前向纠错技术v在有些场合下,不适合或不能使用重传的方法,在有些场合下,不适合或不能使用重传的方法,例如:例如: 很长的传输时延:很长的传输时延

27、:例如,例如,空间探测器与地面控制中心之间的通信,可空间探测器与地面控制中心之间的通信,可能没有足够的时间来重传能没有足够的时间来重传没有反向信道:没有反向信道:在单向广播系统中,根本不能发送重传请求。在单向广播系统中,根本不能发送重传请求。 高的比特差错率:高的比特差错率:重传帧以及请求重传帧出错的概率都非常高,使得重传帧以及请求重传帧出错的概率都非常高,使得重传难以实现重传难以实现 某些实时性应用某些实时性应用发端的信息无法存储发端的信息无法存储-24被保护对象的选择被保护对象的选择v有些协议中,是对整个数据单元有些协议中,是对整个数据单元(帧、分组、帧、分组、报文,或统称为报文,或统称为

28、PDU)进行检验和保护,进行检验和保护,v而另一些协议则只需要对数据单元的首部而另一些协议则只需要对数据单元的首部(控制控制部分部分)或首部中的某些字段进行检验和保护。或首部中的某些字段进行检验和保护。v选择被保护对象的选择被保护对象的主要依据是:主要依据是:协议提供的功能协议提供的功能下层协议提供的服务的特点下层协议提供的服务的特点性能上的要求等性能上的要求等 -25思考题思考题1 请说明上述协议采用的差错检测方法及选择的请说明上述协议采用的差错检测方法及选择的被保护对象的理由。被保护对象的理由。2 是否在所有协议中,检验和生成函数的输入只是否在所有协议中,检验和生成函数的输入只有被保护数据

29、?请举例说明,并作出解释。有被保护数据?请举例说明,并作出解释。-26差错控制技术差错控制技术一、确认一、确认(Acknowledge) -27确认确认v确认确认(ack)是接收者显式地通知发送者所发送的是接收者显式地通知发送者所发送的特定数据的接收情况特定数据的接收情况v被确认的对象主要有被确认的对象主要有PDU字节字节v确认的情况:确认的情况:已正确到达,已正确到达,还没有收到,还没有收到,收到但有错收到但有错(相当于没有收到)相当于没有收到) -28确认确认(续续)v确认分为三种类型:确认分为三种类型: 肯定确认肯定确认(Ack)指示数据已正确收到指示数据已正确收到否定确认否定确认(Na

30、k)指示数据丢失指示数据丢失(没收到或收到但有错误)没收到或收到但有错误) 选择确认选择确认(Select Ack)既指示已正确接收的数据,又指示哪些数据还没既指示已正确接收的数据,又指示哪些数据还没有正确收到有正确收到 -29确认确认(续续)v两种发送方式:两种发送方式:独立确认独立确认指用一个确认指用一个确认PDUPDU来携带确认信息来携带确认信息 独立确认随时可以发送独立确认随时可以发送另一种是另一种是捎带确认捎带确认(piggybacking) 将确认信息放在数据将确认信息放在数据PDU中发送中发送可以提高协议的效率,但要求接收方有数据发送可以提高协议的效率,但要求接收方有数据发送时才

31、能发送确认时才能发送确认v通常在一种协议中,这两种确认形式均存在通常在一种协议中,这两种确认形式均存在。-30确认(续)确认(续)v 如何标识被确认的对象?如何标识被确认的对象?用被确认的用被确认的PDU或字节或字节的序号来标识的序号来标识否定和肯定确认通常包含一个序号否定和肯定确认通常包含一个序号如果确认的语义表示给定序号之前的所有序号如果确认的语义表示给定序号之前的所有序号( (包括或不包括包括或不包括本序号本序号) )的数据都已被成功接收,则该确认又称为的数据都已被成功接收,则该确认又称为累计确认累计确认。 选择确认信息中包含多个序号,其格式可以有以下几种:选择确认信息中包含多个序号,其

32、格式可以有以下几种: 表。表中含有一组序号,代表丢失的数据或代表正确接收的表。表中含有一组序号,代表丢失的数据或代表正确接收的数据。数据。范围。范围用序号区间来表示,在区间内的序号代表丢失的范围。范围用序号区间来表示,在区间内的序号代表丢失的数据或者代表正确接收的数据。数据或者代表正确接收的数据。 位图。用一个比特组来表示确认,其中每一个比特位代表一位图。用一个比特组来表示确认,其中每一个比特位代表一个序号,它被置位表示它所代表的数据已正确收到。此外,个序号,它被置位表示它所代表的数据已正确收到。此外,这种方法还需要一个序号,指明该位图的偏移量。这种方法还需要一个序号,指明该位图的偏移量。 -

33、31确认:思考题确认:思考题3 讨论讨论TCP协议采用的确认机制(考虑收到正确数协议采用的确认机制(考虑收到正确数据、错误数据、数据丢失、重复、失序等情况)据、错误数据、数据丢失、重复、失序等情况)并分析确认机制的效率。并分析确认机制的效率。4 试分析高速传输协议与低速传输协议所采用的确试分析高速传输协议与低速传输协议所采用的确认机制上的差别(如帧中继和认机制上的差别(如帧中继和X.25)。)。-32差错控制技术差错控制技术二、计时器二、计时器(Timer) -33计时器计时器v为什么需要计时器?为什么需要计时器?如果携带确认信息的确认如果携带确认信息的确认PDU或数据或数据PDU丢失,则丢失

34、,则发送方无法知道发送的发送方无法知道发送的PDU的接收情况。的接收情况。 这将导致:这将导致:对于可靠通信协议而言,占用发送方缓存对于可靠通信协议而言,占用发送方缓存由于流量控制而不能发送新的由于流量控制而不能发送新的PDU发送方一直处于等待状态,死锁发送方一直处于等待状态,死锁计时器:计时器:检测确认检测确认PDU或重传请求信号的丢失或重传请求信号的丢失-34计时器(续)计时器(续)v 计时器的超时值如何设置?计时器的超时值如何设置?是一个非常复杂和难解决的问题,依赖于住返时间是一个非常复杂和难解决的问题,依赖于住返时间(RTT)RTTRTT与网络负载和路由选择策略有很大的关系,通常情况下

35、是与网络负载和路由选择策略有很大的关系,通常情况下是一个动态变化的量一个动态变化的量动态估计动态估计往返时间和重传计时器定时值的算法往返时间和重传计时器定时值的算法MillsMills算法算法(Mills, 1983)(Mills, 1983)EdgeEdge算法算法(Edge, 1984)(Edge, 1984)KarnKarn和和PatridgePatridge的算法的算法(Karn and Patridge, 1987)(Karn and Patridge, 1987)Jacobson/KarelJacobson/Karel的算法的算法(Jacobson, 1988) (Jacobson

36、, 1988) 如果超时计时器的超时值设置不当,如果超时计时器的超时值设置不当,会导致会导致过短,导致连续大量的数据重传,严重情况下将加剧网络拥塞,过短,导致连续大量的数据重传,严重情况下将加剧网络拥塞,甚至出现拥塞崩溃甚至出现拥塞崩溃 如果超时值设置太长,出现数据丢失而得不到及时纠正,则会如果超时值设置太长,出现数据丢失而得不到及时纠正,则会降低协议的性能降低协议的性能 -35计时器(续)计时器(续)v为了差错控制的目的,一个协议中往往存在多个为了差错控制的目的,一个协议中往往存在多个计时器(续)计时器(续)TCPTCP协议:协议:重传计时器重传计时器:控制丢失的或丢弃的报文段控制丢失的或丢

37、弃的报文段 冻结计时器冻结计时器:一条连接一个冻结计时器。:一条连接一个冻结计时器。当发送端当发送端的的TCP收到一个窗口大小为零收到一个窗口大小为零(让发送端停止发送让发送端停止发送)的确认时,就启动冻结计时器。的确认时,就启动冻结计时器。 保活计时器保活计时器:在某些实现中,用来防止在两个在某些实现中,用来防止在两个TCP端点端点之间的连接长期处于空闲之间的连接长期处于空闲 时间等待计时器时间等待计时器:在连接终止期间使用。当在连接终止期间使用。当TCP关关闭一个连接时,它并不认为这个连接马上就真正关闭一个连接时,它并不认为这个连接马上就真正关闭。在时间等待期间中,连接还处于一种中间过渡闭

38、。在时间等待期间中,连接还处于一种中间过渡状态。状态。 -36计时器:思考题计时器:思考题5 请以请以TCP为例,详细讨论在设置计时器的超时为例,详细讨论在设置计时器的超时值时应考虑哪些问题。值时应考虑哪些问题。-37差错控制技术差错控制技术三、重传三、重传(Retransmit) -38重传重传v指发送者重传由确认所指出的数据指发送者重传由确认所指出的数据PDU或重传或重传计时器超时未收到确认的数据计时器超时未收到确认的数据PDU。v基于滑动窗口的重传方法:基于滑动窗口的重传方法:回退回退n帧帧(Go-back-N) 接收方直接丢弃所有不按序到达的数据接收方直接丢弃所有不按序到达的数据PDU

39、。发送方从第一个否定确认或超时时所指序号的数发送方从第一个否定确认或超时时所指序号的数据据PDU开始,重传所有后续数据开始,重传所有后续数据PDU。 选择重传选择重传(selective repeat) 发送方只重传否定确认、选择确认和计时器超时发送方只重传否定确认、选择确认和计时器超时指出的那些数据指出的那些数据PDU -39重传(续)重传(续)v实际协议中的重传机制比较复杂,主要是计时实际协议中的重传机制比较复杂,主要是计时器的超时间隔很难确定。器的超时间隔很难确定。 vTCP的重传机制的重传机制重传机制是重传机制是TCP中最重要和最复杂的问题之一。中最重要和最复杂的问题之一。TCP每发送

40、一个报文段,就设置一次计时器。只要每发送一个报文段,就设置一次计时器。只要计时器设置的重传时间到而还没有收到确认,就要计时器设置的重传时间到而还没有收到确认,就要重传这一报文段。重传这一报文段。TCPTCP的下层往往是一个互连网环境。发送的报文段的下层往往是一个互连网环境。发送的报文段可能只经过一个高速率的局域网,也可能经过多个可能只经过一个高速率的局域网,也可能经过多个低速率的广域网,并且数据报所选择的路由也可能低速率的广域网,并且数据报所选择的路由也可能会发生变化会发生变化 需要一种动态自适应算法需要一种动态自适应算法-40差错控制技术差错控制技术四、序号四、序号(Sequence Num

41、ber) -41序号序号v 为什么需要序号?为什么需要序号?为了检测数据为了检测数据PDU的重复、失序和丢失,需要对数据的重复、失序和丢失,需要对数据PDU进行进行无二义性的编号,该编号称为数据无二义性的编号,该编号称为数据PDU的序号的序号编号通常是按照请求服务者传递编号通常是按照请求服务者传递SDU的次序进行的。这些的次序进行的。这些SDU被被放入放入PDU中进行传输。中进行传输。 v 序号有三种不同的产生方式序号有三种不同的产生方式:SDU序号序号:对每个对每个SDU都编上序号,从都编上序号,从SDU序号得到序号得到PDU的序号。的序号。如果该如果该SDU被携带在多个数据被携带在多个数据

42、PDU中时,还应附加一个中时,还应附加一个SDU数数据块号据块号PDU序号:对序号:对PDU连续编号,不管它们携带的连续编号,不管它们携带的SDU数据量。数据量。 字节序号:一个字节序号:一个SDU的每个字节都编号,的每个字节都编号,PDU的序号来自于它的序号来自于它所携带的所携带的SDU的第的第1个字节的序号或最后个字节的序号或最后1个字节的序号。个字节的序号。 -42序号(续)序号(续)v一个重要的问题:如何防止序号重复?一个重要的问题:如何防止序号重复?使用非常大的序号空间。这个序号空间大到使得在数使用非常大的序号空间。这个序号空间大到使得在数据单元从这一端传送到另一端的最大可能的迟延时

43、间据单元从这一端传送到另一端的最大可能的迟延时间L L内,所有从源点发送出去的新的数据单元都具有不内,所有从源点发送出去的新的数据单元都具有不同的序号。在开始一个新的连接时,可以使数据单元同的序号。在开始一个新的连接时,可以使数据单元的起始序号为上次连接中最后使用过的序号加的起始序号为上次连接中最后使用过的序号加1 1。每次连接开始数据单元都使用同样的起始序号,但必每次连接开始数据单元都使用同样的起始序号,但必须使新的连接推迟开始,如至少在上次的连接释放后须使新的连接推迟开始,如至少在上次的连接释放后推迟时间推迟时间L。 赋给每个连接一个标号,或者称为连接序号。对于一赋给每个连接一个标号,或者

44、称为连接序号。对于一个给定连接中的每一个数据单元都附上连接序号。当个给定连接中的每一个数据单元都附上连接序号。当新建一个连接时,就换上一个新的序号新建一个连接时,就换上一个新的序号(如如socket)。-43序号(续)序号(续)v序号空间的大小与信道特点、确认方法、流量控序号空间的大小与信道特点、确认方法、流量控制方法和制方法和PDU数据字段长度有关数据字段长度有关如果信道的质量比较好,则序号空间要求比较大,从如果信道的质量比较好,则序号空间要求比较大,从而可以连续发送多个数据单元,提高协议效率而可以连续发送多个数据单元,提高协议效率采用周期性确认,序号空间就不一定要很大采用周期性确认,序号空

45、间就不一定要很大在停止等待协议中,只需要在停止等待协议中,只需要0 0和和1 1两个序号即可两个序号即可一般来说,序号空间的大小与数据字段长度成反比一般来说,序号空间的大小与数据字段长度成反比v序号是确认和重传的基础,此外序号还可用于流序号是确认和重传的基础,此外序号还可用于流量控制。量控制。 -44差错控制技术:思考题差错控制技术:思考题6 简要说明确认、计时器、重传、序号之间的关简要说明确认、计时器、重传、序号之间的关系。系。-45差错控制与协议层次的关系差错控制与协议层次的关系v从通信和信息处理角度看,物理层、数据链路层、从通信和信息处理角度看,物理层、数据链路层、网络层和运输层属面向通信部分,因而网络中的网络层和运输层属面向通信部分,因而网络中的绝大部分差错控制功能要在这几层中实现。绝大部分差错控制功能要在这几层中实现。v处于不同层次的协议所采用的差错控制机制是有处于不同层次的协议所采用的差错控制机制是有区别的。区别的。-46物理层和数据链路层协议物理层和数据链路层协议v 物理层和数据链路层主要处理通信线路引起的传物理层和数据链路层主要处理通信线路引起的传输错误,这类错误大多

温馨提示

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

评论

0/150

提交评论