第2讲-协议设计(差错控制技术)课件_第1页
第2讲-协议设计(差错控制技术)课件_第2页
第2讲-协议设计(差错控制技术)课件_第3页
第2讲-协议设计(差错控制技术)课件_第4页
第2讲-协议设计(差错控制技术)课件_第5页
已阅读5页,还剩181页未读 继续免费阅读

下载本文档

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

文档简介

网络协议工程第2讲:协议设计11/12/20221差错控制技术网络协议工程第2讲:协议设计11/11/第2讲:协议设计2.1

协议模型2.2协议设计的基本内容2.3协议设计方法2.4差错控制技术2.5流量控制技术11/12/20222差错控制技术第2讲:协议设计2.1协议模型11/11/20222差错控制技术:内容提纲2.4.1差错类型2.4.2差错检测技术2.4.3差错控制技术2.4.4差错控制与层次的关系11/12/20223差错控制技术差错控制技术:内容提纲2.4.1差错类型11/11/20差错控制:概述网络通信的目的是通过网络在应用进程间传输信息,任何数据丢失或损坏都将对通信双方产生重要的影响。差错控制是指在网络通信过程中发现(检测)差错,并采取措施纠正,把差错限制在所允许的尽可能小的范围内的技术和方法。差错控制的目的是为了提高数据传输的可靠性,但是任何一种差错控制方法均不可能纠正所有可能出现的差错。11/12/20224差错控制技术差错控制:概述网络通信的目的是通过网络在应用进程间传输信息,差错控制:概述(续)差错控制主要有两种途径:硬件途径。这种途径选用高可靠性的设备和传输媒体(如光纤)及相应的辅助措施(如屏蔽)来提高传输的可靠性。软件途径。这种途径通过通信协议来实现差错控制。在通信协议中,通过差错控制编码(包括检错码和前向纠错码)实现的差错检测、肯定确认、超时重传、否认重传、选择重传等措施来实现差错控制。11/12/20225差错控制技术差错控制:概述(续)差错控制主要有两种途径:11/11/2差错类型根据差错发生的位置,分为三种类型:通信链路差错指有关通信链路上故障、干扰造成的传输错误问题路由差错有关传输报文在路由过程中阻塞、丢失、死锁以及报文顺序错而造成传输的差错问题通信结点差错有关通信中某结点的资源限制、环境条件或文本不符、协议同步关系以及操作错误、硬件故障等,可能影响通信链路的正确联接或正常通常的错误中断等问题11/12/20226差错控制技术差错类型根据差错发生的位置,分为三种类型:11/11/202差错类型(续)根据差错的表现形式,可分为四类(1):失真(Distortion)定义:被传送信息中的一个或多个比特发生了改变,或者被传送的信息中插入了一些新的信息(这种情况也称为“插入(Insertion)”)主要原因:网络中物理干扰(如线路噪声)发送者和接收者之间的失步入侵者的故意攻击结点中的硬件故障和软件差错等解决方法:各种校验方法来检测11/12/20227差错控制技术差错类型(续)根据差错的表现形式,可分为四类(1):11/差错类型(续)根据差错的表现形式,可分为四类(2)丢失(Deletion)定义:网络将被传输的信息丢弃主要原因:噪声脉冲对某个帧的破坏程度太大,以致接收方不知道这个帧已经被传输;发送者和接收者之间的失步;流量控制或拥塞控制措施不当时因资源不够而被中间结点或接收者丢弃;因接收者检测到信息被损坏而主动将其丢弃等解决方法:用序号、计时器和确认共同检测,通过重传的方法来纠正错误11/12/20228差错控制技术差错类型(续)根据差错的表现形式,可分为四类(2)11/1差错类型(续)根据差错的表现形式,可分为四类(3)重复(Duplication)定义:多次收到同样的信息主要原因:是差错控制机制本身,如果发送方错误地认为数据丢失了,因而重传了它,就可能造成接收方收到重复的信息路由选择机制引起的重复帧,如使用基于扩散的路由选择策略(如洪泛法)解决方法:用序号来检测这种错误,用丢弃重复的数据来纠正错误。11/12/20229差错控制技术差错类型(续)根据差错的表现形式,可分为四类(3)11/1差错类型(续)根据差错的表现形式,可分为四类(4)失序(Reordering)定义:数据到达接收方的顺序与发送方发送的顺序不一致

主要原因:采用自适应的路由选择策略,分组在网络中传送时可能有多条路由而引起的后发先到

重传丢失的数据也可能导致数据不按序到达解决方法:把乱序的数据先存储下来,使得以后能把它们存放在正确的位置上;丢弃乱序的数据,然后按数据丢失来处理。11/12/202210差错控制技术差错类型(续)根据差错的表现形式,可分为四类(4)11/1第4讲:内容提纲2.4.1

差错类型2.4.2差错检测技术2.4.3差错控制技术2.4.4差错控制与层次的关系11/12/202211差错控制技术第4讲:内容提纲2.4.1差错类型11/11/202差错检测技术:概述检查收到的数据是否正确的方法和技术通常情况下,我们所说的差错检测是指检测收到的数据是否被损坏,而不包括对数据丢失、重复、乱序等差错的检测在这样的前提下,差错检测技术所采取的方法一般是各种检验和技术,如奇偶检验,循环冗余检验等,本节主要介绍这方面的技术差错检测是差错控制的基础

11/12/202212差错控制技术差错检测技术:概述检查收到的数据是否正确的方法和技术11/1差错检测技术:原理E,E’:差错检验码对比接收器数据EE'=f(Data)数据EE=f(Data)发送器数据f:差错检验函数问题:为什么总是将检验码放在帧的尾部?11/12/202213差错控制技术差错检测技术:原理E,E’:差错检验码对比接收器数据EE差错检测技术一、奇偶检验(ParityCheck)11/12/202214差错控制技术差错检测技术一、奇偶检验(ParityCheck)11/奇偶检验奇偶检验在数据的尾部附加上奇偶检验位,使得码字中比特“1”的个数保持为奇数(奇检验)或偶数(偶检验)被广泛用于诸如计算机的异步串行口通信中三种类型:垂直冗余检验(VRC:VerticalRedundancyChecking)纵向冗余检验(LRC:LongitudinalRedundancyChecking)纵向垂直冗余检验

11/12/202215差错控制技术奇偶检验奇偶检验在数据的尾部附加上奇偶检验位,使得码字中比特奇偶检验:垂直冗余检验原理:将整个发送的信息分为长度为p位的若干段,如q段,每段后面按“1”的个数为奇数或偶数的规律加上一位奇偶位,其有(p*q)个信息位,每段由p位构成,共q列(段)通常p值等于一个字符的长度,因此有时也将垂直冗余检验称为字符奇偶检验。可以用硬件或软件方法来实现连续半加运算,且可以边发送边产生检验位,并插入发送。在接收时边接收边进行检验并除去检验位能检测出每列中的所有奇数个位的错,但检测不出偶数个位的错。对于突发错误而言,奇数位错与偶数位错的概率差不多是相等的,因而对差错的漏检率接近于50%。

11/12/202216差错控制技术奇偶检验:垂直冗余检验原理:将整个发送的信息分为长度为p位的奇偶检验:垂直冗余检验11/12/202217差错控制技术奇偶检验:垂直冗余检验11/11/202217差错控制技术奇偶检验:纵向冗余检验原理:对各个信息段的相应位水平进行编码,对应每一行产生一个奇偶检验位。这种附加的水平基础上检验字符的技术,使用了和垂直冗余检验同样的奇偶性。

漏检率要比垂直冗余检验低。不但可以检测出各段同一位上的奇数位错,而且可以检测出突发长度小于等于p的所有突发错误(Why?)因为可以安排发送顺序使得在可见突发长度小于等于p的突发错误必然分布在不同行中,每行一位,所以可以检测出来

11/12/202218差错控制技术奇偶检验:纵向冗余检验原理:对各个信息段的相应位水平进行编码奇偶检验:纵向冗余检验11/12/202219差错控制技术奇偶检验:纵向冗余检验11/11/202219差错控制技术奇偶检验:纵向冗余检验实现复杂:实现时不能在发送过程中边产生奇偶检验位,边插入发送,而必须要等到要发送的完整信息块到齐后,才能产生检验位,因而一定要使用记忆寄存器。11/12/202220差错控制技术奇偶检验:纵向冗余检验实现复杂:实现时不能在发送过程中边产生奇偶检验:垂直纵向冗余检验同时进行垂直冗余检验和纵向冗余检验能检测出所有3位或3位以下的错误(因为此时至少在某一行或某一列上为一位错)、奇数位错、突发长度小于等于(p+1)的突发错以及很大一部分偶数位错。还可以纠正部分差错,例如仅在某一行和某一列中有奇数位错时,就可以确定错误的位置就在该行和该列的交叉处,从而得以纠正。

此外,当某一行出现偶数个错时,虽然纵向冗余检验不能发现,但在其垂直冗余检验中还是可以被检测出来。只有当有错的各行和各列中出错位数均为偶数时,才不可能被发现。

11/12/202221差错控制技术奇偶检验:垂直纵向冗余检验同时进行垂直冗余检验和纵向冗余检验奇偶检验:垂直纵向冗余检验11/12/202222差错控制技术奇偶检验:垂直纵向冗余检验11/11/202222差错控制技奇偶检验:小结使用奇偶检验并不是十分安全,因为噪声脉冲的长度经常足以破坏一个以上的比特,特别是在数据率较高的情况下。

低速率的串行口通信协议,如RS232接口,常采用奇偶检验方法来检测错误。一般情况下,垂直冗余检验主要用于异步传输,且一列对应一个字符。而纵向冗余检验则常用于同步传输,通常是把一串字符作为一个块传送,字符之间没有时间间隔,产生一个附加的字符跟在块的后面。

11/12/202223差错控制技术奇偶检验:小结使用奇偶检验并不是十分安全,因为噪声脉冲的长度差错检测技术二、循环冗余检验(CRC)11/12/202224差错控制技术差错检测技术二、循环冗余检验(CRC)11/11/2022CRC检验:原理

1101010110←Q

商除数P→110101101000110100000←2nM被除数

110101111011

110101111010

110101111110

110101101100

110101110010

11010101110←R

余数数据:M=1010001101除数P(生成多项式)=X5+X4+X2+1模2运算:加法不进位,减法和加法是一样的,例如:1111+1010=0101冗余码称为帧检验序列FCS接收端运算:[XnM(X)+R(X)]/P(X)=Q(X)有错:R(X)!=0

问题:R(X)等于0是否就不定没有错吗?常见多项式:CRC-16=X16+X15+X2+1CRC-CCITT=X16+X12+X5+1CRC-32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+111/12/202225差错控制技术CRC检验:原理CRC检验:检错率CRC检验的漏检率是比较低的。CRC-CCITT检验可以检测出所有的双比特差错,长度为17比特的数据中的99.997%的突发错误,长度大于17比特的数据中的99.998%的突发错误。采用CRC检验的著名协议:数据链路层协议HDLC采用的就是CRC-CCITT检验。IBM的Bisync协议中采用的是CRC-16检验以太网帧和光纤分布式数据接口标准(FDDI)中则采用的是CRC-32检验。

11/12/202226差错控制技术CRC检验:检错率CRC检验的漏检率是比较低的。CRC-CCCRC检验:实现CRC检验的编码需要花费不少的时间,因此计算检验和可能会降低协议的性能。为了提高协议的性能,通常采用硬件方法(移位寄存器)或查检验和表(预先计算出检验和放在表中,使用时查表即可)的软件方法来实现。

11/12/202227差错控制技术CRC检验:实现CRC检验的编码需要花费不少的时间,因此计算CRC检验:源代码AT&TBell实验室的DonMitchell所写的一个计算CRC检验和,并生成检验和表的程序Crc_init.c:创建检验和表(crc_table[])Checksum(s,n)查表生成检验和。输入参数s为被检验的数据,n为数据长度(单位为字节)。函数返回值为被检验的数据的检验和。

11/12/202228差错控制技术CRC检验:源代码AT&TBell实验室的DonMitccrc_init.cmain(argc,argv)intargc;char*argv[];{unsignedlongcrc,poly;intn,i;sscanf(argv[1],“%lo”,&poly);if(poly&0xffff0000){fprintf(stderr,“polynomialistoolarge\n”);exit(1);}printf(“/*\n*CRC0%o\n*/\n”,poly);printf(“staticunsignedshortcrc_table[256]={\n”};11/12/202229差错控制技术crc_init.cmain(argc,argv)11/1crc_init.c(Cont.)for(n=0;n<256;n++){crc=n;if(n%8==0)printf(““);for(i=0;i<8;i++){if(crc&1){crc>>=1;crc^=poly;}elsecrc>>=1;}printf(“0x%x,“,crc);if(n&8==7)printf(“\n”);}printf(“);\n\n”);exit(0);}11/12/202230差错控制技术crc_init.c(Cont.)for(n=0;ncrc_init.c:examples$crc_init05401>crc_12.h创建基于CRC-12的检验和表,并保存在文件crc_12.h中

$crc_init0120001>crc_16.h创建基于CRC-16的检验和表,并保存在文件crc_16.h中

$crc_init0102010>crc_ccitt.h创建基于CRC-CCITT的检验和表,并保存在文件crc_ccitt.h中11/12/202231差错控制技术crc_init.c:examples$crc_initChecksum(s,n):源码unsignedshortcksum(s,n)registerunsignedchar*s;registerintn;{registerunsignedintcrc;for(crc=0;n>0;n--)crc=crc_table[(crc^*s++)&0xff]^(crc>>8);returncrc;}11/12/202232差错控制技术Checksum(s,n):源码unsignedshor差错检测技术三、UUCP检验和

11/12/202233差错控制技术差错检测技术三、UUCP检验和11/11/202233差错UUCP检验和UNIX操作系统中的uucp应用程序中的计算检验和方法,与CRC检验比较类似比较简单,有点类似于散列方法,其漏检率比CRC要高一些,而且计算同样的检验和,它所花的时间比查表计算CRC检验和的方法要多一些。11/12/202234差错控制技术UUCP检验和UNIX操作系统中的uucp应用程序中的计算检UUCP检验和:源码cksum(s,n)registerchar*s;registern;{registershortsum;registerunsignedshortt;registershortx;sum=-1;x=0;do{if(sum<0){sum<<=1;sum++}elsesum<<=1;t=sum;sum+=(unsigned)*s++&0377;x+=sum^n;if((unsignedshort)sum<=t){sum^=x;}}while(--n>0);return(sum);}

11/12/202235差错控制技术UUCP检验和:源码cksum(s,n)11/11/202差错检测技术四、算术检验和(ArithmeticChecksum)11/12/202236差错控制技术差错检测技术四、算术检验和(ArithmeticCheck算术检验和尽管可以通过前面介绍的查表的方法或特殊硬件的方法计算检验和来缩短处理时间,但:对于允许一定程度的漏检率的应用场合,可以采用比CRC检验要简单且又能够发现比较严重的传输错误的方法来进行差错检测。JohnFletcher在1982提出了这样一种差错检测方法,称为算术检验和只需用到加法和取模操作,且算法特别简单

11/12/202237差错控制技术算术检验和尽管可以通过前面介绍的查表的方法或特殊硬件的方法计ArithmeticChecksumErrordetectionatthehigherlayerisusuallydonebyordinaryarithmeticoperations.ThisissimplerinsoftwarebutsomewhatlesseffectivethanaCRC.Standardtechniqueistoviewpacketassequenceofknumbersofnbitseach,sayx1,x2,...,xk.Checksumisthenthenbitnumberx1+x2+...+xkusingordinaryarithmeticwithnocarry.11/12/202238差错控制技术ArithmeticChecksumErrordetecArithmeticChecksum(Cont.)Alternatively,checksummightbe2nbits;firstnbitsis(sum)x1+x2+...+xkandsecondnbitsis(sumofsum)x1+2x2+3x3+...+kxk.Example:InTCP,n=16,checksumis16bitsandone’scomplementofthesum.InISBN,thedataareradix10digits,checksumisradix11digit(with10representedasX)andis(sumofsumofalldigits)/11.11/12/202239差错控制技术ArithmeticChecksum(Cont.)Alt算术检验和:源码ISO的类4运输协议(TP4)中的实现源代码:unsignedshortcksum(s,n)registerunsignedchar*s;registerintn;{registerintc0=0,c1=0;do{c0=(c0+*s++)%255;c1=(c0+c1)%255;}while(--n>0);return(unsignedshort)(c1<<8+c0);}11/12/202240差错控制技术算术检验和:源码ISO的类4运输协议(TP4)中的实现源代差错检测技术五、其他差错检测技术11/12/202241差错控制技术差错检测技术五、其他差错检测技术11/11/202241差错某些卫星设备控制接口协议SDSInternational公司的上行功率控制器的计算机控制接口的通信协议中的检验和的计算方法如下:

Checksum=Mod[(charactervalue-32),95]+32

上式的含义是:将报文的所有字符的ASCII码值减去32后相加,将所得结果模95后所得值加上32即为检验和字节。

11/12/202242差错控制技术某些卫星设备控制接口协议SDSInternationalUDP协议的差错检测UDP检验和的计算以及在用户数据报中包括检验和都是可选的。若不计算,则填0。1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101011→求和得出的结果0110100100010100→检验和153.19.8.104171.3.14.11全0171510871315全0数据数据数据数据数据数据数据全012字节伪首部7字节数据填充按二进制反码运算求和将得出的结果求反码两个数进行二进制反码求和的运算规则是从低位到高位逐列进行计算。0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位1,加到下一列。若最高位相加后产生进位,则最后得到的结果要加1。11/12/202243差错控制技术UDP协议的差错检测UDP检验和的计算以及在用户数据报中包括UDP协议的差错检测UDP检验和的计算以及在用户数据报中包括检验和都是可选的。若不计算,则填0。1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(检验和)0101010001000101→数据0101001101010100→数据0100100101001110→数据0100011100000000→数据和0(填充)1001011011101011→求和得出的结果0110100100010100→检验和153.19.8.104171.3.14.11全0171510871315全0数据数据数据数据数据数据数据全012字节伪首部7字节数据填充按二进制反码运算求和将得出的结果求反码11/12/202244差错控制技术UDP协议的差错检测UDP检验和的计算以及在用户数据报中包括TCP协议的差错检测检验和字段检验的范围包括首部和数据这两部分。和UDP用户数据报一样,在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。伪首部的格式与UDP用户数据报的伪首部一样。但应将伪首部第4个字段中的17改为6(TCP的协议号是6),将第5字段中的UDP长度改为TCP长度。必须进行检验(UDP可选)。11/12/202245差错控制技术TCP协议的差错检测检验和字段检验的范围包括首部和数据这两部差错检测技术六、前向纠错(FEC)技术

11/12/202246差错控制技术差错检测技术六、前向纠错(FEC)技术11/11/2022前向纠错技术前向纠错:在每个要发送的数据块上附加上足够的冗余的信息(纠错码),使接收方能够推导出发送方实际发送的应该是什么样的比特串。前面介绍的纵向垂直冗余检验就具有纠错功能。海明码(HammingCode)一般情况下,使用差错检测技术检测出传输错误后,通常使用重传(请求重传和超时重传)的方法来纠正。

为什么需要前向纠错(FEC:ForwardErrorCorrection)?11/12/202247差错控制技术前向纠错技术前向纠错:在每个要发送的数据块上附加上足够的冗余前向纠错技术在有些场合下,不适合或不能使用重传的方法,例如:

很长的传输时延:例如,空间探测器与地面控制中心之间的通信,可能没有足够的时间来重传没有反向信道:在单向广播系统中,根本不能发送重传请求。

高的比特差错率:重传帧以及请求重传帧出错的概率都非常高,使得重传难以实现

某些实时性应用没有时间来实现重传11/12/202248差错控制技术前向纠错技术在有些场合下,不适合或不能使用重传的方法,例如:HammingCode原理:海明编码是将码字内的位从最左边开始按顺序依次编号,第1位是1号,第2位是2号,......,第n位是n号。编号为2的幂的位(1号位,2号位,4号位,8号位等)是检验位,其余的位填入m位数据。

用来校正单比特误码的检验位数目r的下界是:2r≥n+1

每个检验位的取值应使得包括自己在内的一些位的集合服从规定的奇偶性(例如,偶性要求这些位的集合中1的个数是偶数)为了知道编号为k的数据位对哪些检测位有影响,将编号k改写成2的幂的和,例如11=1+2+8,29=1+4+8+16。每个位只由扩展式中所示编号的位检测。例中编号为11的位只由编号为1、2和8的检测位检测。

11/12/202249差错控制技术HammingCode原理:海明编码是将码字内的位从最左边HammingCode(Cont.)如何为每个检验位取值?以一个7位ASCII字符使用海明编码形成11位码字为例:在这里:m=7,r=4,n=11,显然2r>11+1=12,而且编号1=1,2=2,3=1+2,4=4,5=1+4,6=2+4,7=1+2+4,8=8,9=1+8,10=2+8,11=1+2+8,于是有:

(1)→(1)+(3)+(5)+(7)+(9)+(11)(2)→(2)+(3)+(6)+(7)+(10)+(11)(4)→(4)+(5)+(6)+(7)(8)→(8)+(9)+(10)+(11)注意:在每个检验位的形成表达式中,除自身的编号外,其余都是信息位的编号,因此只要信息位是确定的,检验位也可以唯一地确定。

11/12/202250差错控制技术HammingCode(Cont.)如何为每个检验位取值HammingCode(Cont.)10个7位ASCII字符使用海明编码形成的10位码字,其中数据位在3、5、6、7、9、10和11位,编号为1、2、4、8的位是检验位。字符:H,ASCII编码:1001000,海明码:00110010000字符:a,ASCII编码:1100001,海明码:10111001001字符:m,ASCII编码:1101101,海明码:11101010101字符:i,ASCII编码:1101001,海明码:01101011001字符:n,ASCII编码:1101110,海明码:01101010110字符:g,ASCII编码:1100111,海明码:01111001111字符:c,ASCII编码:1100011,海明码:11111000011字符:o,ASCII编码:1101111,海明码:10101011111字符:d,ASCII编码:1100100,海明码:11111001100字符:e,ASCII编码:1100101,海明码:0011100010111/12/202251差错控制技术HammingCode(Cont.)10个7位ASCIIHammingCode(Cont.)当一码字到达时,接收方将计数器清0。

然后接收方检测每个检验位D(这里的D是检验位的编号),看是否具有正确的奇偶性。

如果第D位奇偶性不对,则计数值加D,

若所有检验位被检查过后,计数器值仍为0,这个码字就作为有效码字接受。

假如计数器值不为0,则该值就是出错位的编者编号。

例如,若检测位1、2和8错误,则第11位就变反,因为它是唯一被第1、2和8位检测的位。

海明码的信息余量很大(前面的例子:7+4),因而编码效率低。大大增加了数据通信的开销11/12/202252差错控制技术HammingCode(Cont.)当一码字到达时,接收方检错重传与纠错一般使用检错重传,特别是在数据链路层以上的各层协议。在有些协议中,将检错码和纠错码结合起来一起使用,增强差错控制的能力,如ATMAAL1协议中的差错检测机制。11/12/202253差错控制技术检错重传与纠错一般使用检错重传,特别是在数据链路层以上的各层差错检测技术七、关于被检验的数据的讨论

11/12/202254差错控制技术差错检测技术七、关于被检验的数据的讨论11/11/2022被保护对象的选择有些协议中,是对整个数据单元(帧、分组、报文,或统称为PDU)进行检验和保护,而另一些协议则只需要对数据单元的首部(控制部分)或首部中的某个字段进行检验和保护。选择被保护对象的主要依据是什么?协议提供的功能,下层协议提供的服务的特点以及性能上的要求等

11/12/202255差错控制技术被保护对象的选择有些协议中,是对整个数据单元(帧、分组、报文现有协议的例子HDLC,点对点数据传输协议,整帧(不包括首尾标志字段)PPP,Internet中的点对点协议,整帧

IP,网际互连,首部TCP,面向连接的可靠的端到端数据传输服务,整个TPDU(计算检验和时要加上一个伪首部)UDP,无连接的不可靠的端到端数据传输服务,整个TPDU(计算检验和时要加上一个伪首部),检验和可选

ATM协议,传输ATM信元,信元首部ATMAAL1,支持实时的、面向连接的CBR数据传输服务,首部中的序号计数器字段的CRC检验,整个首部的奇偶检验。可选的负载字段的FEC。

11/12/202256差错控制技术现有协议的例子HDLC,点对点数据传输协议,整帧(不包括首现有协议的例子(Cont.)ATMAAL2,传输实时、低速率可变长度的短分组,支持话音业务,首部

ATMAAL3/4,支持可变比特率以及面向连接和无连接的服务,整个SAR-PDUATMAAL5,传输高速数据(AAL3/4的简化版),整个CS-PDU帧中继,高速数据传输,整帧11/12/202257差错控制技术现有协议的例子(Cont.)ATMAAL2,传输实时、低思考题2-10请解释上述协议采用的差错检测方法及选择的被操作对象的理由。2-11是否在所有协议中,检验和生成函数的输入只有被保护数据?请举例说明,并作出解释。11/12/202258差错控制技术思考题2-10请解释上述协议采用的差错检测方法及选择的被操差错控制技术:内容提纲2.4.1

差错类型2.4.2

差错检测技术2.4.3差错控制技术2.4.4差错控制与层次的关系11/12/202259差错控制技术差错控制技术:内容提纲2.4.1差错类型11/11/20差错控制技术:概述上一节我们已详细介绍了用于检测信息被“损坏”的各种检测技术本节我们主要介绍“丢失”、“重复”、“失序”等错误的检测技术以及各种差错的恢复技术。

这些技术涉及的概念主要有:确认(Ack)计时器(Timer)重传(Retransmit)序号(SequenceNumber)11/12/202260差错控制技术差错控制技术:概述上一节我们已详细介绍了用于检测信息被“损坏差错控制技术一、确认(Acknowledge)11/12/202261差错控制技术差错控制技术一、确认(Acknowledge)11/11/确认确认(ack)是接收者显式地通知发送者所发送的特定数据的接收情况被确认的对象主要有哪些?PDU字节确认的情况:已正确到达,还没有收到,收到但有错(相当于没有收到)11/12/202262差错控制技术确认确认(ack)是接收者显式地通知发送者所发送的特定数据的确认(续)确认分为三种类型:

肯定确认(Ack)指示数据已正确收到否定确认(Nak)指示数据丢失(没收到或收到但有错误)

选择确认(SelectAck)既指示已正确接收的数据PDU,又指示哪些数据PDU还没有正确收到

11/12/202263差错控制技术确认(续)确认分为三种类型:11/11/202263差错控确认(续)两种发送方式:独立确认指用一个确认PDU来携带确认信息独立确认随时可以发送另一种是应答携带(piggybacking)将确认信息放在数据PDU中发送可以提高协议的效率,但要求接收方有数据发送时才能发送确认通常在一种协议中,这两种确认形式均存在

11/12/202264差错控制技术确认(续)两种发送方式:11/11/202264差错控制技术确认(续)如何标识被确认的对象?用被确认的数据PDU或字节的序号来标识否定和肯定确认由一个序号构成如果否定确认或肯定确认的语义是表示所给定的序号之前的所有序号(包括或不包括本序号)的数据PDU都已被成功地接收了,则该确认又称为累计确认。

选择确认信息中包含多个序号,其格式可以有以下几种:

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

11/12/202265差错控制技术确认(续)如何标识被确认的对象?11/11/202265差错11/12/202266差错控制技术11/11/202266差错控制技术确认(续)产生一个确认PDU的触发机制:在接收了n个数据PDU之后,接收者产生一个确认PDU;

发送者产生一个信号,请求产生一个确认PDU。信号可以随同一个数据PDU一起传递(例:HDLC中的什么字段?),也可以是一个专用的控制PDU。接收者直到数据PDU不连续到达时,才产生一个确认PDU;

接收者周期性地产生确认PDU,与数据PDU的到来无关;

接收者重复收到同一个数据PDU,接收者发送确认PDU,防止确认丢失;

接收者在发送的数据中携带确认信息。

11/12/202267差错控制技术确认(续)产生一个确认PDU的触发机制:11/11/2022确认:思考题2-12分析TCP协议采用的确认机制(提示:参考相关RFC)或分析ATM的信令协议采用的确认机制。2-13试分析高速传输协议与低速传输协议所采用的确认机制上的差别。要求:先从原理上说明,然后举例说明。11/12/202268差错控制技术确认:思考题2-12分析TCP协议采用的确认机制(提示:参差错控制技术二、计时器(Timer)11/12/202269差错控制技术差错控制技术二、计时器(Timer)11/11/20226计时器为什么需要计时器?如果携带确认信息的确认PDU或数据PDU丢失,则发送方无法知道发送的PDU的接收情况。这将导致:对于可靠通信协议而言,占用发送方缓存由于流量控制而不能发送新的PDU发送方一直处于等待状态,死锁计时器:检测确认PDU或重传请求信号的丢失11/12/202270差错控制技术计时器为什么需要计时器?11/11/202270差错控制技术计时器(续)计时器的超时值如何设置?是一个非常复杂及难解决的问题依赖于PDU的住返时间(RTT)RTT与网络负载和路由选择策略有很大的关系,通常情况下是一个动态变化的量动态估计往返时间和重传计时器的定时值的算法比较多RFC793中定义的TCP算法Mills算法(Mills,1983)Edge算法(Edge,1984)Karn和Patridge的算法(KarnandPatridge,1987)Jacobson/Karel的算法(Jacobson,1988)11/12/202271差错控制技术计时器(续)计时器的超时值如何设置?11/11/202271计时器(续)计时器的超时值如何设置?(续)如果超时计时器的超时值设置不当,会导致什么后果?连续大量的数据重传严重情况下将加剧网络的拥塞程度,出现更多数据丢失如果超时值设置太长,出现数据丢失而得不到即时纠正,也会降低协议的性能11/12/202272差错控制技术计时器(续)计时器的超时值如何设置?(续)11/11/202计时器(续)为了差错控制的目的,一个协议中往往存在多个计时器OSI类4运输协议:发起计时器:CR(建连请求)TPDU重传重传CC计时器:CC(连接证实)TPDU重传重传计时器:DT(数据)TPDU重传加速重传计时器:ED(加速数据)TPDU重传释放计时器:DR(断连请求)TPDU重传放弃加速计时器:最后检查未被确认的EDTPDU静止计时器:运输连接保持静止状态的最大时间窗口计时器:重传AK(确认)TPDU的最大时间间隔参照计时器:源点参照或序号不得重复使用的时间11/12/202273差错控制技术计时器(续)为了差错控制的目的,一个协议中往往存在多个计时器计时器(续)为了差错控制的目的,一个协议中往往存在多个计时器(续)TCP协议:重传计时器:控制丢失的或丢弃的报文段

坚持计时器:一条连接一个坚持计时器。当发送端的TCP收到一个窗口大小为零(让发送端停止发送)的确认时,就启动坚持计时器。

保活计时器:在某些实现中,用来防止在两个TCP之间的连接处于长时期空闲

时间等待计时器:在连接终止期间使用的。当TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭了。在时间等待期间中,连接还处于一种中间过渡状态。

11/12/202274差错控制技术计时器(续)为了差错控制的目的,一个协议中往往存在多个计时器计时器:思考题2-14请以TCP为例,详细讨论在设计计时器的超时值时应考虑哪些问题。11/12/202275差错控制技术计时器:思考题2-14请以TCP为例,详细讨论在设计计时器差错控制技术三、重传(Retransmit)11/12/202276差错控制技术差错控制技术三、重传(Retransmit)11/11/2重传指发送者重传由确认所指出的数据PDU或重传计时器超时时重传未收到确认的数据PDU。基于滑动窗口的重传方法:回退n帧(Go-back-N)接收方直接地丢弃所有不按序到达的数据PDU。发送方从第一个否定的确认或超时时所指序号的数据PDU开始,重传所有后续数据PDU。

选择重传(selectiverepeat)发送方只重传否定确认、选择确认和超时中指出的那些数据PDU11/12/202277差错控制技术重传指发送者重传由确认所指出的数据PDU或重传计时器超时时重重传(续)实际协议中的重传机制比较复杂,主要是超时计时器的超时间隔很难确定。

TCP的重传机制重传机制是TCP中最重要和最复杂的问题之一。TCP每发送一个报文段,就设置一次计时器。只要计时器设置的重传时间到而还没有收到确认,就要重传这一报文段。TCP的下层往往是一个互连网环境。发送的报文段可能只经过一个高速率的局域网,但也可能是经过多个低速率的广域网,并且数据报所选择的路由还可能会发生变化

动态自适应算法11/12/202278差错控制技术重传(续)实际协议中的重传机制比较复杂,主要是超时计时器的超差错控制技术四、序号(SequenceNumber)11/12/202279差错控制技术差错控制技术四、序号(SequenceNumber)11/序号为什么需要序号?为了检测数据PDU的重复、失序和丢失,需要对数据PDU进行无二义性的编号,该编号称为数据PDU的序号通常编号是按照请求服务者传递SDU的次序进行的。这些SDU被放入PDU中进行传输。

序号有三种不同的产生方式:SDU序号:对每个SDU都编上序号,从SDU序号得到PDU的序号。如果该SDU被携带在多个数据PDU中时,还应附加一个SDU数据块号PDU序号:对PDU连续编号,不管它们携带的SDU数据量。

字节序号:一个SDU的每个字节都编号,PDU的序号来自于它所携带的SDU的第1个字节的序号和最后1个字节的序号。

11/12/202280差错控制技术序号为什么需要序号?11/11/202280差错控制技术序号(续)最重要的问题:如何防止序号重复?使用一个非常大的序号空间。这个序号空间大到使得在数据单元从这一端到另一端的最大可能的迟延时间L内,所有从源点发送出去的新的数据单元都具有不同的序号。在开始一个新的连接时,可以使数据单元的起始序号接着上次连接中最后使用过的序号继续增加一个号。每次连接开始的数据单元都使用同样的起始序号,但必须使新的连接推迟开始,如至少在上次的连接释放后推迟时间L。

赋给每个连接一个标号,或者称为连接序号。对于一个给定连接中的每一个数据单元都附上连接序号。当新建一个连接时,就换上一个新的序号。(socket)11/12/202281差错控制技术序号(续)最重要的问题:如何防止序号重复?11/11/202序号(续)序号空间的大小与信道特点、确认方法、流量控制方法和PDU中的数据字段长度有关如果信道的质量比较好,则序号空间要求比较大,从而可以连续发送多个数据单元,提高协议效率采用周期性确认,序号空间就不一定要很大在停止等待协议中,只需要0和1两个序号即可一般来说,序号空间的大小与数据字段的长度成反比序号是确认和重传的基础,此外序号还可用于流量控制。11/12/202282差错控制技术序号(续)序号空间的大小与信道特点、确认方法、流量控制方法和差错控制技术:思考题2-14简要说明确认、计时器、重传、序号之间的关系。11/12/202283差错控制技术差错控制技术:思考题2-14简要说明确认、计时器、重传、序差错控制技术:内容提纲2.4.1

差错类型2.4.2

差错检测技术2.4.3

差错控制技术2.4.4差错控制与层次的关系11/12/202284差错控制技术差错控制技术:内容提纲2.4.1差错类型11/11/20概述从通信和信息处理的角度看,物理层、数据链路层、网络层和运输层属于面向通信部分,因而网络中的绝大部分差错控制功能要在这几层中实现。处于不同层次的协议所采用的差错控制机制是有差别的。11/12/202285差错控制技术概述从通信和信息处理的角度看,物理层、数据链路层、网络层和运物理层和数据链路层协议

物理层和数据链路层主要处理通信线路引起的传输错误,这类错误大多是随机偶然性错误,一般通过检测、重传的方式来纠正。考虑到物理层一般主要依靠硬件实现,重传纠错比较困难,所以原则上把差错恢复的任务交给数据链路层来解决。

在数据链路层通常以帧为单位构造CRC检验和,接收方发现CRC检验有错时,发送确认信息或丢弃出错帧导致发方超时使其重传出错的帧。同时,通过帧序号来发现因重传导致的帧重复。

11/12/202286差错控制技术物理层和数据链路层协议物理层和数据链路层主要处理通信线路引物理层和数据链路层协议(续)在有些情况下,物理层也进行奇偶检验,以供维护、诊断和分析用,如现在有些Modem也可进行差错重传控制。通过以上的差错控制后,数据链路层向上层(一般是网络层)提供的无差错的数据传输服务(按序、无丢失、不重复)。

11/12/202287差错控制技术物理层和数据链路层协议(续)在有些情况下,物理层也进行奇偶检网络层网络层的主要任务是提供路由选择和网络互连功能。

对于路由转发过程中由于拥塞、缓存溢出、死锁、老化以及非法格式等引起的报文丢失、失序等差错,网络层一般只做差错检测而不作纠错处理,只是把不能接收或过期非法的分组简单丢弃或向发送方报告。纠错则放在运输层进行处理。

但是,如果网络层提供虚电路服务,由于虚电路服务保证报文无差错、不丢失、不重复且按序地进行交付,因此网络层就需要实现纠错功能。

11/12/202288差错控制技术网络层网络层的主要任务是提供路由选择和网络互连功能。11/运输层运输层向应用进程提供的端到端的无差错的数据传输服务。

如果通信子网(只包括网络层、数据链路层和物理层)所提供的服务越多,运输层协议就可以做得越简单。例如,网络层提供虚电路服务时,运输层协议就很简单。

但是,即使网络层提供的是虚电路服务,某些用户仍可能怀疑下面的网络是否100%可靠,因而在网络层上面加上用户自己的端到端差错控制和流量控制。

11/12/202289差错控制技术运输层运输层向应用进程提供的端到端的无差错的数据传输服务。运输层(续)例如,X.25网络虽然提供虚电路服务,但当网络中的虚电路进行重建(reset)时,主机就无法获得正在网内的分组的状态,恢复工作必须由高层即运输层来进行。

偶然的突发噪声可能把送往一个目的地完全合法的分组改变成送往另一个目的地址是完全合法的分组。(使用k位的CRC检验和,差错仍然有2-k的概率被漏检)运输层通常需要解决的差错包括:丢失、重复、失序,采取的差错控制措施包括:序号、确认、超时、重传等。

11/12/202290差错控制技术运输层(续)例如,X.25网络虽然提供虚电路服务,但当网络中应用层通过数据链路层、网络层及运输层的上述检测纠错措施后,一般地说,运输层逻辑链路提供给应用层端用户的服务将是一条无差错的可靠的数据传输通道。

应用层一般可不考虑传输上的错误,但应用层仍然有它自己的差错控制问题。这主要是协议类型不一致、文本或文件系统属性的不匹配、消息包格式错误、程序设计同步关系错误以及程序执行中的错误等。

差错控制的基本思想与前面讨论是相似的11/12/202291差错控制技术应用层通过数据链路层、网络层及运输层的上述检测纠错措施后,一差错控制与层次的关系:思考题2-15试以X.25网络和帧中继(FR)为例来说明随着网络基础设施的改善(大量采用光纤),各协议层次的差错控制机制有什么变化?11/12/202292差错控制技术差错控制与层次的关系:思考题2-15试以X.25网络和帧中差错控制技术:小结协议功能中最重要的一部分两大类型:检错重传或丢弃(由上层协议解决)纠错11/12/202293差错控制技术差错控制技术:小结协议功能中最重要的一部分11/11/202网络协议工程第2讲:协议设计11/12/202294差错控制技术网络协议工程第2讲:协议设计11/11/第2讲:协议设计2.1

协议模型2.2协议设计的基本内容2.3协议设计方法2.4差错控制技术2.5流量控制技术11/12/202295差错控制技术第2讲:协议设计2.1协议模型11/11/20222差错控制技术:内容提纲2.4.1差错类型2.4.2差错检测技术2.4.3差错控制技术2.4.4差错控制与层次的关系11/12/202296差错控制技术差错控制技术:内容提纲2.4.1差错类型11/11/20差错控制:概述网络通信的目的是通过网络在应用进程间传输信息,任何数据丢失或损坏都将对通信双方产生重要的影响。差错控制是指在网络通信过程中发现(检测)差错,并采取措施纠正,把差错限制在所允许的尽可能小的范围内的技术和方法。差错控制的目的是为了提高数据传输的可靠性,但是任何一种差错控制方法均不可能纠正所有可能出现的差错。11/12/202297差错控制技术差错控制:概述网络通信的目的是通过网络在应用进程间传输信息,差错控制:概述(续)差错控制主要有两种途径:硬件途径。这种途径选用高可靠性的设备和传输媒体(如光纤)及相应的辅助措施(如屏蔽)来提高传输的可靠性。软件途径。这种途径通过通信协议来实现差错控制。在通信协议中,通过差错控制编码(包括检错码和前向纠错码)实现的差错检测、肯定确认、超时重传、否认重传、选择重传等措施来实现差错控制。11/12/202298差错控制技术差错控制:概述(续)差错控制主要有两种途径:11/11/2差错类型根据差错发生的位置,分为三种类型:通信链路差错指有关通信链路上故障、干扰造成的传输错误问题路由差错有关传输报文在路由过程中阻塞、丢失、死锁以及报文顺序错而造成传输的差错问题通信结点差错有关通信中某结点的资源限制、环境条件或文本不符、协议同步关系以及操作错误、硬件故障等,可能影响通信链路的正确联接或正常通常的错误中断等问题11/12/202299差错控制技术差错类型根据差错发生的位置,分为三种类型:11/11/202差错类型(续)根据差错的表现形式,可分为四类(1):失真(Distortion)定义:被传送信息中的一个或多个比特发生了改变,或者被传送的信息中插入了一些新的信息(这种情况也称为“插入(Insertion)”)主要原因:网络中物理干扰(如线路噪声)发送者和接收者之间的失步入侵者的故意攻击结点中的硬件故障和软件差错等解决方法:各种校验方法来检测11/12/2022100差错控制技术差错类型(续)根据差错的表现形式,可分为四类(1):11/差错类型(续)根据差错的表现形式,可分为四类(2)丢失(Deletion)定义:网络将被传输的信息丢弃主要原因:噪声脉冲对某个帧的破坏程度太大,以致接收方不知道这个帧已经被传输;发送者和接收者之间的失步;流量控制或拥塞控制措施不当时因资源不够而被中间结点或接收者丢弃;因接收者检测到信息被损坏而主动将其丢弃等解决方法:用序号、计时器和确认共同检测,通过重传的方法来纠正错误11/12/2022101差错控制技术差错类型(续)根据差错的表现形式,可分为四类(2)11/1差错类型(续)根据差错的表现形式,可分为四类(3)重复(Duplication)定义:多次收到同样的信息主要原因:是差错控制机制本身,如果发送方错误地认为数据丢失了,因而重传了它,就可能造成接收方收到重复的信息路由选择机制引起的重复帧,如使用基于扩散的路由选择策略(如洪泛法)解决方法:用序号来检测这种错误,用丢弃重复的数据来纠正错误。11/12/2022102差错控制技术差错类型(续)根据差错的表现形式,可分为四类(3)11/1差错类型(续)根据差错的表现形式,可分为四类(4)失序(Reordering)定义:数据到达接收方的顺序与发送方发送的顺序不一致

主要原因:采用自适应的路由选择策略,分组在网络中传送时可能有多条路由而引起的后发先到

重传丢失的数据也可能导致数据不按序到达解决方法:把乱序的数据先存储下来,使得以后能把它们存放在正确的位置上;丢弃乱序的数据,然后按数据丢失来处理。11/12/2022103差错控制技术差错类型(续)根据差错的表现形式,可分为四类(4)11/1第4讲:内容提纲2.4.1

差错类型2.4.2差错检测技术2.4.3差错控制技术2.4.4差错控制与层次的关系11/12/2022104差错控制技术第4讲:内容提纲2.4.1差错类型11/11/202差错检测技术:概述检查收到的数据是否正确的方法和技术通常情况下,我们所说的差错检测是指检测收到的数据是否被损坏,而不包括对数据丢失、重复、乱序等差错的检测在这样的前提下,差错检测技术所采取的方法一般是各种检验和技术,如奇偶检验,循环冗余检验等,本节主要介绍这方面的技术差错检测是差错控制的基础

11/12/2022105差错控制技术差错检测技术:概述检查收到的数据是否正确的方法和技术11/1差错检测技术:原理E,E’:差错检验码对比接收器数据EE'=f(Data)数据EE=f(Data)发送器数据f:差错检验函数问题:为什么总是将检验码放在帧的尾部?11/12/2022106差错控制技术差错检测技术:原理E,E’:差错检验码对比接收器数据EE差错检测技术一、奇偶检验(ParityCheck)11/12/2022107差错控制技术差错检测技术一、奇偶检验(ParityCheck)11/奇偶检验奇偶检验在数据的尾部附加上奇偶检验位,使得码字中比特“1”的个数保持为奇数(奇检验)或偶数(偶检验)被广泛用于诸如计算机的异步串行口通信中三种类型:垂直冗余检验(VRC:VerticalRedundancyChecking)纵向冗余检验(LRC:LongitudinalRedundancyChecking)纵向垂直冗余检验

11/12/2022108差错控制技术奇偶检验奇偶检验在数据的尾部附加上奇偶检验位,使得码字中比特奇偶检验:垂直冗余检验原理:将整个发送的信息分为长度为p位的若干段,如q段,每段后面按“1”的个数为奇数或偶数的规律加上一位奇偶位,其有(p*q)个信息位,每段由p位构成,共q列(段)通常p值等于一个字符的长度,因此有时也将垂直冗余检验称为字符奇偶检验。可以用硬件或软件方法来实现连续半加运算,且可以边发送边产生检验位,并插入发送。在接收时边接收边进行检验并除去检验位能检测出每列中的所有奇数个位的错,但检测不出偶数个位的错。对于突发错误而言,奇数位错与偶数位错的概率差不多是相等的,因而对差错的漏检率接近于50%。

11/12/2022109差错控制技术奇偶检验:垂直冗余检验原理:将整个发送的信息分为长度为p位的奇偶检验:垂直冗余检验11/12/2022110差错控制技术奇偶检验:垂直冗余检验11/11/202217差错控制技术奇偶检验:纵向冗余检验原理:对各个信息段的相应位水平进行编码,对应每一行产生一个奇偶检验位。这种附加的水平基础上检验字符的技术,使用了和垂直冗余检验同样的奇偶性。

漏检率要比垂直冗余检验低。不但可以检测出各段同一位上的奇数位错,而且可以检测出突发长度小于等于p的所有突发错误(Why?)因为可以安排发送顺序使得在可见突发长度小于等于p的突发错误必然分布在不同行中,每行一位,所以可以检测出来

11/12/2022111差错控制技术奇偶检验:纵向冗余检验原理:对各个信息段的相应位水平进行编码奇偶检验:纵向冗余检验11/12/2022112差错控制技术奇偶检验:纵向冗余检验11/11/202219差错控制技术奇偶检验:纵向冗余检验实现复杂:实现时不能在发送过程中边产生奇偶检验位,边插入发送,而必须要等到要发送的完整信息块到齐后,才能产生检验位,因而一定要使用记忆寄存器。11/12/2022113差错控制技术奇偶检验:纵向冗余检验实现复杂:实现时不能在发送过程中边产生奇偶检验:垂直纵向冗余检验同时进行垂直冗余检验和纵向冗余检验能检测出所有3位或3位以下的错误(因为此时至少在某一行或某一列上为一位错)、奇数位错、突发长度小于等于(p+1)的突发错以及很大一部分偶数位错。还可以纠正部分差错,例如仅在某一行和某一列中有奇数位错时,就可以确定错误的位置就在该行和该列的交叉处,从而得以纠正。

此外,当某一行出现偶数个错时,虽然纵向冗余检验不能发现,但在其垂直冗余检验中还是可以被检测出来。只有当有错的各行和各列中出错位数均为偶数时,才不可能被发现。

11/12/2022114差错控制技术奇偶检验:垂直纵向冗余检验同时进行垂直冗余检验和纵向冗余检验奇偶检验:垂直纵向冗余检验11/12/2022115差错控制技术奇偶检验:垂直纵向冗余检验11/11/202222差错控制技奇偶检验:小结使用奇偶检验并不是十分安全,因为噪声脉冲的长度经常足以破坏一个以上的比特,特别是在数据率较高的情况下。

低速率的串行口通信协议,如RS232接口,常采用奇偶检验方法来检测错误。一般情况下,垂直冗余检验主要用于异步传输,且一列对应一个字符。而纵向冗余检验则常用于同步传输,通常是把一串字符作为一个块传送,字符之间没有时间间隔,产生一个附加的字符跟在块的后面。

11/12/2022116差错控制技术奇偶检验:小结使用奇偶检验并不是十分安全,因为噪声脉冲的长度差错检测技术二、循环冗余检验(CRC)11/12/2022117差错控制技术差错检测技术二、循环冗余检验(CRC)11/11/2022CRC检验:原理

1101010110←Q

商除数P→110101101000110100000←2nM被除数

110101111011

110101111010

110101111110

110101101100

110101110010

11010101110←R

余数数据:M=1010001101除数P(生成多项式)=X5+X4+X2+1模2运算:加法不进位,减法和加法是一样的,例如:1111+1010=0101冗余码称为帧检

温馨提示

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

评论

0/150

提交评论