《第2讲_协议设计(差错控制技术)》由会员分享,可在线阅读,更多相关《第2讲_协议设计(差错控制技术)(93页珍藏版)》请在金锄头文库上搜索。
1、 网网 络络 协协 议议 工工 程程 第第 2 讲:协议设计讲:协议设计9/19/20241差错控制技术第第 2 讲:协议设计讲:协议设计2.1 协议模型协议模型2.2 协议设计的基本内容协议设计的基本内容2.3 协议设计方法协议设计方法2.4 差错控制技术差错控制技术2.5 流量控制技术流量控制技术9/19/20242差错控制技术差错控制技术:内容提纲差错控制技术:内容提纲2.4.1 差错类型差错类型2.4.2 差错检测技术差错检测技术2.4.3 差错控制技术差错控制技术2.4.4 差错控制与层次的关系差错控制与层次的关系9/19/20243差错控制技术差错控制:概述差错控制:概述v网络通信
2、的目的是通过网络在应用进程间传输网络通信的目的是通过网络在应用进程间传输信息,任何数据丢失或损坏都将对通信双方产信息,任何数据丢失或损坏都将对通信双方产生重要的影响。生重要的影响。 v差错控制差错控制是指在网络通信过程中发现是指在网络通信过程中发现(检测检测)差差错,并采取措施纠正,把差错限制在错,并采取措施纠正,把差错限制在所允许所允许的的尽可能小的范围内的技术和方法。尽可能小的范围内的技术和方法。 v差错控制的目的是为了差错控制的目的是为了提高数据传输的可靠性提高数据传输的可靠性,但是任何一种差错控制方法均但是任何一种差错控制方法均不可能纠正所有不可能纠正所有可能出现的差错。可能出现的差错
3、。 9/19/20244差错控制技术差错控制:概述差错控制:概述 (续续)v差错控制主要有两种途径:差错控制主要有两种途径:硬件途径硬件途径。这种途径选用高可靠性的设备和传输媒。这种途径选用高可靠性的设备和传输媒体体(如光纤如光纤)及相应的辅助措施及相应的辅助措施(如如屏蔽屏蔽)来提高传输来提高传输的可靠性。的可靠性。 软件途径软件途径。这种途径通过通信协议来实现差错控制。这种途径通过通信协议来实现差错控制。在通信协议中,通过差错控制编码在通信协议中,通过差错控制编码(包括检错码和包括检错码和前向纠错码前向纠错码)实现的差错检测、肯定确认、超时重实现的差错检测、肯定确认、超时重传、否认重传、选
4、择重传等措施来实现差错控制。传、否认重传、选择重传等措施来实现差错控制。 9/19/20245差错控制技术差错类型差错类型v根据差错发生的位置,分为三种类型:根据差错发生的位置,分为三种类型:通信链路差错通信链路差错指有关通信链路上故障、干扰造成的传输错误问题指有关通信链路上故障、干扰造成的传输错误问题 路由差错路由差错 有关传输报文在路由过程中阻塞、丢失、死锁以及有关传输报文在路由过程中阻塞、丢失、死锁以及报文顺序错而造成传输的差错问题报文顺序错而造成传输的差错问题通信结点差错通信结点差错 有关通信中某结点的资源限制、环境条件或文本不有关通信中某结点的资源限制、环境条件或文本不符、协议同步关
5、系以及操作错误、硬件故障等,可符、协议同步关系以及操作错误、硬件故障等,可能影响通信链路的正确联接或正常通常的错误中断能影响通信链路的正确联接或正常通常的错误中断等问题等问题 9/19/20246差错控制技术差错类型(续)差错类型(续)v根据差错的表现形式根据差错的表现形式 ,可分为四类():,可分为四类():失真失真(Distortion) 定义:被传送信息中的一个或多个比特发生了改定义:被传送信息中的一个或多个比特发生了改变,或者被传送的信息中插入了一些新的信息变,或者被传送的信息中插入了一些新的信息(这种情况也称为这种情况也称为“插入插入(Insertion)”) 主要原因:主要原因:网
6、络中物理干扰网络中物理干扰(如线路噪声如线路噪声)发送者和接收者之间的失步发送者和接收者之间的失步入侵者的故意攻击入侵者的故意攻击结点中的硬件故障和软件差错等结点中的硬件故障和软件差错等 解决方法:各种校验方法来检测解决方法:各种校验方法来检测 9/19/20247差错控制技术差错类型(续)差错类型(续)v根据差错的表现形式根据差错的表现形式 ,可分为四类,可分为四类()丢失丢失(Deletion) 定义:网络将被传输的信息丢弃定义:网络将被传输的信息丢弃 主要原因:主要原因:噪声脉冲对某个帧的破坏程度太大,以致接收方不知噪声脉冲对某个帧的破坏程度太大,以致接收方不知道这个帧已经被传输;道这个
7、帧已经被传输;发送者和接收者之间的失步;发送者和接收者之间的失步;流量控制或拥塞控制措施不当时因资源不够而被中间流量控制或拥塞控制措施不当时因资源不够而被中间结点或接收者丢弃;结点或接收者丢弃;因接收者检测到信息被损坏而主动将其丢弃等因接收者检测到信息被损坏而主动将其丢弃等 解决方法:用序号、计时器和确认共同检测,通解决方法:用序号、计时器和确认共同检测,通过重传的方法来纠正错误过重传的方法来纠正错误 9/19/20248差错控制技术差错类型(续)差错类型(续)v根据差错的表现形式根据差错的表现形式 ,可分为四类,可分为四类()重复重复(Duplication) 定义:多次收到同样的信息定义:
8、多次收到同样的信息 主要原因:主要原因:是差错控制机制本身,如果发送方错误地认为数据丢是差错控制机制本身,如果发送方错误地认为数据丢失了,因而重传了它,就可能造成接收方收到重复的失了,因而重传了它,就可能造成接收方收到重复的信息信息 路由选择机制引起的重复帧,如使用基于扩散的路由路由选择机制引起的重复帧,如使用基于扩散的路由选择策略选择策略(如洪泛法如洪泛法) 解决方法:用序号来检测这种错误,用丢弃重复解决方法:用序号来检测这种错误,用丢弃重复的数据来纠正错误。的数据来纠正错误。9/19/20249差错控制技术差错类型(续)差错类型(续)v根据差错的表现形式根据差错的表现形式 ,可分为四类,可
9、分为四类()失序失序(Reordering) 定义:定义:数据到达接收方的顺序与发送方发送的顺数据到达接收方的顺序与发送方发送的顺序不一致序不一致 主要原因:主要原因:采用自适应的路由选择策略,分组在网络中传送时可采用自适应的路由选择策略,分组在网络中传送时可能有多条路由而引起的后发先到能有多条路由而引起的后发先到 重传丢失的数据也可能导致数据不按序到达重传丢失的数据也可能导致数据不按序到达解决方法:解决方法:把乱序的数据先存储下来,使得以后能把它们存放在把乱序的数据先存储下来,使得以后能把它们存放在正确的位置上;正确的位置上;丢弃乱序的数据,然后按数据丢失来处理丢弃乱序的数据,然后按数据丢失
10、来处理 。9/19/202410差错控制技术第第 讲:内容提纲讲:内容提纲2.4.1 差错类型差错类型2.4.2 差错检测技术差错检测技术2.4.3 差错控制技术差错控制技术2.4.4 差错控制与层次的关系差错控制与层次的关系9/19/202411差错控制技术差错检测技术:概述差错检测技术:概述v检查收到的数据是否正确的方法和技术检查收到的数据是否正确的方法和技术通常情况下,我们所说的差错检测是指检测收到的通常情况下,我们所说的差错检测是指检测收到的数据是否被损坏,而不包括对数据丢失、重复、乱数据是否被损坏,而不包括对数据丢失、重复、乱序等差错的检测序等差错的检测在这样的前提下,差错检测技术所
11、采取的方法一般在这样的前提下,差错检测技术所采取的方法一般是各种检验和技术,如奇偶检验,循环冗余检验等是各种检验和技术,如奇偶检验,循环冗余检验等, ,本节主要介绍这方面的技术本节主要介绍这方面的技术v差错检测是差错控制的基础差错检测是差错控制的基础 9/19/202412差错控制技术差错检测技术:原理差错检测技术:原理E, E:差错检验码差错检验码对比对比接收器接收器数据数据 EE = f(Data)数据数据 EE = f(Data)发送器发送器数据数据f: 差错检验函数差错检验函数问题:问题:为什么总是将检验码放在帧的尾部?为什么总是将检验码放在帧的尾部?9/19/202413差错控制技术
12、差错检测技术差错检测技术一、奇一、奇偶偶检验检验(Parity Check) 9/19/202414差错控制技术奇偶奇偶检验检验v奇偶检验在数据的尾部附加上奇偶检验位,使奇偶检验在数据的尾部附加上奇偶检验位,使得码字中比特得码字中比特“1”的个数保持为奇数的个数保持为奇数(奇检验奇检验)或偶数或偶数(偶检验偶检验) v被广泛用于诸如计算机的异步串行口通信中被广泛用于诸如计算机的异步串行口通信中v三种类型:三种类型:垂直冗余检验垂直冗余检验(VRC:Vertical Redundancy Checking)纵向冗余检验纵向冗余检验(LRC:Longitudinal Redundancy Chec
13、king)纵向垂直冗余检验纵向垂直冗余检验 9/19/202415差错控制技术奇偶奇偶检验:检验:垂直冗余检验v原理:原理:将整个发送的信息分为长度为将整个发送的信息分为长度为p位的若干段,如位的若干段,如q段,段,每段后面按每段后面按“1”的个数为奇数或偶数的规律加上一位奇的个数为奇数或偶数的规律加上一位奇偶位,其有偶位,其有(p * q) 个信息位,每段由个信息位,每段由p位构成,共位构成,共q列列(段段)v通常通常p值等于一个字符的长度,因此有时也将垂直冗余检值等于一个字符的长度,因此有时也将垂直冗余检验称为验称为字符奇偶检验字符奇偶检验。v可以用硬件或软件方法来实现连续半加运算,且可以
14、边发可以用硬件或软件方法来实现连续半加运算,且可以边发送边产生检验位,并插入发送。在接收时边接收边进行检送边产生检验位,并插入发送。在接收时边接收边进行检验并除去检验位验并除去检验位v能检测出每列中的能检测出每列中的所有奇数个位的错所有奇数个位的错,但检测不出,但检测不出偶数个偶数个位的错位的错。对于突发错误而言,奇数位错与偶数位错的概率。对于突发错误而言,奇数位错与偶数位错的概率差不多是相等的,因而对差错的漏检率接近于差不多是相等的,因而对差错的漏检率接近于50%50%。 9/19/202416差错控制技术奇偶检验:奇偶检验:垂直冗余检验9/19/202417差错控制技术奇偶检验:奇偶检验:
15、纵向冗余检验v原理:原理:对各个信息段的相应位水平进行编码,对各个信息段的相应位水平进行编码,对应每一行产生一个奇偶检验位。这种附加的对应每一行产生一个奇偶检验位。这种附加的水平基础上检验字符的技术,使用了和垂直冗水平基础上检验字符的技术,使用了和垂直冗余检验同样的奇偶性。余检验同样的奇偶性。 v漏检率要比垂直冗余检验低。不但可以检测出漏检率要比垂直冗余检验低。不但可以检测出各段同一位上的奇数位错,而且可以检测出突各段同一位上的奇数位错,而且可以检测出突发长度小于等于发长度小于等于p的所有突发错误(的所有突发错误(Why?Why?)因为可以安排发送顺序使得因为可以安排发送顺序使得在可见突发长度
16、小于等于在可见突发长度小于等于p的突发错误必然分布在不同的突发错误必然分布在不同行中,每行一位,所以可以行中,每行一位,所以可以检测出来检测出来 9/19/202418差错控制技术奇偶检验:奇偶检验:纵向冗余检验9/19/202419差错控制技术奇偶检验:奇偶检验:纵向冗余检验v实现复杂:实现时不能在发送过程中边产生奇实现复杂:实现时不能在发送过程中边产生奇偶检验位,边插入发送,而必须要等到要发送偶检验位,边插入发送,而必须要等到要发送的完整信息块到齐后,才能产生检验位,因而的完整信息块到齐后,才能产生检验位,因而一定要使用记忆寄存器。一定要使用记忆寄存器。9/19/202420差错控制技术奇
17、偶检验:奇偶检验:垂直纵向冗余检验v同时进行垂直冗余检验和纵向冗余检验同时进行垂直冗余检验和纵向冗余检验v能检测出所有能检测出所有3位或位或3位以下的错误位以下的错误(因为此时至少在某因为此时至少在某一行或某一列上为一位错一行或某一列上为一位错)、奇数位错奇数位错、突发长度小于突发长度小于等于等于(p+1)的突发错的突发错以及很大以及很大一部分偶数位错一部分偶数位错。v还可以还可以纠正部分差错,纠正部分差错,例如仅在某一行和某一列中有例如仅在某一行和某一列中有奇数位错时,就可以确定错误的位置就在该行和该列奇数位错时,就可以确定错误的位置就在该行和该列的交叉处,从而得以纠正。的交叉处,从而得以纠
18、正。 v此外,当某一行出现偶数个错时,虽然纵向冗余检验此外,当某一行出现偶数个错时,虽然纵向冗余检验不能发现,但在其垂直冗余检验中还是可以被检测出不能发现,但在其垂直冗余检验中还是可以被检测出来。只有当有错的各行和各列中出错位数均为偶数时,来。只有当有错的各行和各列中出错位数均为偶数时,才不可能被发现。才不可能被发现。 9/19/202421差错控制技术奇偶检验:奇偶检验:垂直纵向冗余检验9/19/202422差错控制技术奇偶奇偶检验:小结检验:小结v使用奇偶检验并不是十分安全,因为噪声脉冲使用奇偶检验并不是十分安全,因为噪声脉冲的长度经常足以破坏一个以上的比特,特别是的长度经常足以破坏一个以
19、上的比特,特别是在数据率较高的情况下。在数据率较高的情况下。 v低速率的串行口通信协议,如低速率的串行口通信协议,如RS232接口,常接口,常采用奇偶检验方法来检测错误采用奇偶检验方法来检测错误。v一般情况下,垂直冗余检验主要用于异步传输,一般情况下,垂直冗余检验主要用于异步传输,且一列对应一个字符。且一列对应一个字符。v而纵向冗余检验则常用于同步传输,通常是把而纵向冗余检验则常用于同步传输,通常是把一串字符作为一个块传送,字符之间没有时间一串字符作为一个块传送,字符之间没有时间间隔,产生一个附加的字符跟在块的后面。间隔,产生一个附加的字符跟在块的后面。 9/19/202423差错控制技术差错
20、检测技术差错检测技术二、二、循环冗余检验循环冗余检验(CRC) 9/19/202424差错控制技术CRC检验:原理检验:原理 1101010110Q 商 除数P110101 1010001101000002nM 被除数 110101 111011 110101 111010 110101 111110 110101 101100 110101 110010 110101 01110R 余数q 数据:M=1010001101q 除数P(生成多项式)= X5+X4+X2+1q 模 2 运算:加法不进位,减法 和加法是一样的,例如: 1111 + 1010 = 0101q 冗余码称为帧检验序列 FC
21、Sq 接收端运算:XnM(X) + R(X) / P(X) = Q(X)q 有错:R(X) !=0q 问题:R(X) 等于0是否就不定没有错吗?q 常见多项式:o CRC-16 = X16+X15+X2+1o CRC-CCITT = X16+X12+X5+1o CRC-32 = X32+X26+X23+ X22+X16+X12+ X11+X10+X8+ X7+X5+X4+ X2+X+19/19/202425差错控制技术CRC检验:检错率检验:检错率vCRC检验的漏检率是比较低的。检验的漏检率是比较低的。CRC-CCITT检验可以检测出所有的双比特差错,长度为检验可以检测出所有的双比特差错,长度
22、为17比特的数据中的比特的数据中的99.997%的突发错误,长度大的突发错误,长度大于于17比特的数据中的比特的数据中的99.998%的突发错误。的突发错误。v采用采用CRCCRC检验的著名协议:检验的著名协议:数据链路层协议数据链路层协议HDLCHDLC采用的就是采用的就是CRC-CCITTCRC-CCITT检验。检验。IBMIBM的的BisyncBisync协议中采用的是协议中采用的是CRC-16CRC-16检验检验以太网帧和光纤分布式数据接口标准以太网帧和光纤分布式数据接口标准(FDDI)(FDDI)中则采中则采用的是用的是CRC-32CRC-32检验。检验。 9/19/202426差错
23、控制技术CRC检验:实现检验:实现vCRC检验的编码需要花费不少的时间,因此计检验的编码需要花费不少的时间,因此计算检验和可能会降低协议的性能。算检验和可能会降低协议的性能。v为了提高协议的性能,通常采用为了提高协议的性能,通常采用硬件方法硬件方法(移移位寄存器位寄存器)或或查检验和表查检验和表(预先计算出检验和放预先计算出检验和放在表中,使用时查表即可在表中,使用时查表即可)的软件方法来实现。的软件方法来实现。 9/19/202427差错控制技术CRC检验:源代码检验:源代码vAT&T Bell实验室的实验室的Don Mitchell所写的一个计所写的一个计算算CRC检验和,并生成检验和表的
24、程序检验和,并生成检验和表的程序Crc_init.cCrc_init.c: : 创建检验和表创建检验和表( (crc_tablecrc_table)Checksum(s, n)Checksum(s, n)查表生成检验和。输入参数查表生成检验和。输入参数s s为被为被检验的数据,检验的数据,n n为数据长度为数据长度( (单位为字节单位为字节) )。函数返。函数返回值为被检验的数据的检验和。回值为被检验的数据的检验和。 9/19/202428差错控制技术crc_init.cmain(argc, argv) int argc; char *argv; unsigned long crc, poly
25、; int n, i; sscanf(argv1, “%lo”,&poly); if (poly & 0xffff0000) fprintf(stderr, “polynomial is too largen”); exit(1); printf(“/*n * CRC 0 %on * /n”,poly); printf(“static unsigned short crc_table256 = n”;9/19/202429差错控制技术crc_init.c (Cont.)for (n =0; n256; n+) crc = n; if (n% 8 = =0) printf(“ “); for (
26、 i = 0; i =1; crc = poly; else crc =1; printf(“0x%x, “,crc); if ( n &8 = = 7) printf (“n”); printf(“);nn”); exit(0); 9/19/202430差错控制技术crc_init.c: examplesv$ crc_init 05401 crc_12.h 创建基于创建基于CRC-12的检验和表,并保存在文件的检验和表,并保存在文件crc_12.h中中 v$ crc_init 0120001 crc_16.h 创建基于创建基于CRC-16的检验和表,并保存在文件的检验和表,并保存在文件crc
27、_16.h中中 v$ crc_init 0102010 crc_ccitt.h 创建基于创建基于CRC-CCITT的检验和表,并保存在文件的检验和表,并保存在文件crc_ccitt.h 中中9/19/202431差错控制技术Checksum(s,n): 源码源码unsigned short cksum(s,n) register unsigned char *s; register int n; register unsigned int crc; for (crc = 0; n 0; n-) crc = crc_table(crc *s+) & 0xff (crc 8); return cr
28、c;9/19/202432差错控制技术差错检测技术差错检测技术三、三、UUCP检验和检验和 9/19/202433差错控制技术UUCP检验和检验和vUNIX操作系统中的操作系统中的uucp应用程序中的计算检验应用程序中的计算检验和方法,与和方法,与CRC检验比较类似检验比较类似v比较简单,有点类似于散列方法,其漏检率比比较简单,有点类似于散列方法,其漏检率比CRCCRC要高一些,而且计算同样的检验和,它所花要高一些,而且计算同样的检验和,它所花的时间比查表计算的时间比查表计算CRCCRC检验和的方法要多一些。检验和的方法要多一些。 9/19/202434差错控制技术UUCP检验和:源码检验和:
29、源码cksum(scksum(s, n), n) register char *s; register char *s; register n; register n; register short sum; register short sum; register unsigned short t; register unsigned short t; register short x; register short x; sum = -1; x = 0; sum = -1; x = 0; do do if (sum 0) sum =1; sum+ if (sum 0) sum =1; su
30、m+ else sum = 1; else sum = 1; t = sum; sum += (unsigned) *s+ & 0377; x += sumn; t = sum; sum += (unsigned) *s+ & 0377; x += sumn; if (unsigned short) sum = t) sum = x; if (unsigned short) sum 0); while (-n 0); return (sum); return (sum); 9/19/202435差错控制技术差错检测技术差错检测技术四、四、算术检验和算术检验和(Arithmetic Checks
31、um) 9/19/202436差错控制技术算术检验和算术检验和v尽管可以通过前面介绍的查表的方法或特殊硬尽管可以通过前面介绍的查表的方法或特殊硬件的方法计算检验和来缩短处理时间件的方法计算检验和来缩短处理时间,但:,但:v对于允许一定程度的漏检率的应用场合,对于允许一定程度的漏检率的应用场合,可以可以采用比采用比CRC检验要简单且又能够发现比较严重检验要简单且又能够发现比较严重的传输错误的方法来进行差错检测。的传输错误的方法来进行差错检测。vJohn Fletcher John Fletcher 在在19821982提出了这样一种差错检提出了这样一种差错检测方法,称为测方法,称为算术检验和算术
32、检验和只需用到加法和取模操作,只需用到加法和取模操作,且算法特别简单且算法特别简单 9/19/202437差错控制技术Arithmetic ChecksumvError detection at the higher layer is usually done by ordinary arithmetic operations.This is simpler in software but somewhat less effective than a CRC.vStandard technique is to view packet as sequence of k numbers of n
33、bits each, say x1, x2,., xk.vChecksum is then the n bit number x1+x2+.+xk using ordinary arithmetic with no carry.9/19/202438差错控制技术Arithmetic 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: In TC
34、P, n=16, checksum is 16 bits and ones complement of the sum.vIn ISBN, the data are radix 10 digits, checksum is radix 11 digit (with 10 represented as X) and is (sum of sum of all digits)/11.9/19/202439差错控制技术算术检验和:源码算术检验和:源码vISO的类的类4运输协议运输协议(TP4) 中的实现源代码:中的实现源代码: unsigned short cksum(s, n) register
35、unsigned char *s; register int n; register int c0=0, c1=0; do c0 = (c0 + *s+) % 255; c1 = (c0 + c1) %255; while (-n 0); return (unsigned short) (c1 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) + (
36、3) + (6) + (7) + (10) + (11)(4) (4) + (5) + (6) + (7) (8) (8) + (9) + (10) + (11) v注意:在每个检验位的形成表达式中,除自身的编号外,注意:在每个检验位的形成表达式中,除自身的编号外,其余都是信息位的编号,因此只要信息位是确定的,检其余都是信息位的编号,因此只要信息位是确定的,检验位也可以唯一地确定。验位也可以唯一地确定。 9/19/202450差错控制技术Hamming Code (Cont.)v10个个7位位ASCII字符使用海明编码形成的字符使用海明编码形成的10位码字,其中位码字,其中数据位在数据位在3、
37、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
38、, ASCII编码:编码:1100111 ,海明码:,海明码:01111001111 字符:字符:c, ASCII编码:编码:1100011 ,海明码:,海明码:11111000011 字符:字符:o, ASCII编码:编码:1101111 ,海明码:,海明码:10101011111 字符:字符:d, ASCII编码:编码:1100100 ,海明码:,海明码:11111001100 字符:字符:e, ASCII编码:编码:1100101 ,海明码:,海明码:00111000101 9/19/202451差错控制技术HammingCode (Cont.)v当一码字到达时,接收方将计数器清当一码字
39、到达时,接收方将计数器清0。 v然后接收方检测每个检验位然后接收方检测每个检验位D(这里的这里的D是检验位的编号是检验位的编号),看是否具有正确的奇偶性。,看是否具有正确的奇偶性。 如果第如果第D位奇偶性不对,则计数值加位奇偶性不对,则计数值加D, 若所有检验位被检查过后,计数器值仍为若所有检验位被检查过后,计数器值仍为0,这个码字就作为,这个码字就作为有效码字接受。有效码字接受。 假如计数器值不为假如计数器值不为0,则该值就是出错位的编者编号。,则该值就是出错位的编者编号。 例如,若检测位例如,若检测位1、2和和8错误,则第错误,则第11位就变反,因为它是唯位就变反,因为它是唯一被第一被第1
40、、2和和8位检测的位。位检测的位。 v海明码的信息余量很大海明码的信息余量很大( (前面的例子:前面的例子:7+4)7+4),因而编码,因而编码效率低。大大增加了数据通信的开销效率低。大大增加了数据通信的开销9/19/202452差错控制技术检错重传与纠错检错重传与纠错v一般使用检错重传,特别是在数据链路层以上一般使用检错重传,特别是在数据链路层以上的各层协议。的各层协议。v在有些协议中,将检错码和纠错码结合起来一在有些协议中,将检错码和纠错码结合起来一起使用,增强差错控制的能力,如起使用,增强差错控制的能力,如ATM AAL1协议中的差错检测机制协议中的差错检测机制。9/19/202453差
41、错控制技术差错检测技术差错检测技术七、七、关于被检验的数据的讨论关于被检验的数据的讨论 9/19/202454差错控制技术被被保护对象的选择保护对象的选择v有些协议中,是对整个数据单元有些协议中,是对整个数据单元(帧、分组、帧、分组、报文,或统称为报文,或统称为PDU)进行检验和保护,进行检验和保护,v而另一些协议则只需要对数据单元的首部而另一些协议则只需要对数据单元的首部(控控制部分制部分)或首部中的某个字段进行检验和保护。或首部中的某个字段进行检验和保护。v选择被保护对象的选择被保护对象的主要依据是什么?主要依据是什么?协议提供的功能,协议提供的功能,下层协议提供的服务的特点下层协议提供的
42、服务的特点以及性能上的要求等以及性能上的要求等 9/19/202455差错控制技术现有协议的例子现有协议的例子vHDLC,点对点数据传输协议点对点数据传输协议 ,整帧整帧(不包括首尾标志字段不包括首尾标志字段) vPPP,Internet中的点对点协议中的点对点协议,整帧整帧 vIP,网际互连网际互连,首部首部vTCP,面向连接的可靠的端到端数据传输服务面向连接的可靠的端到端数据传输服务,整个整个TPDU (计算检验和时要加上一个伪首部计算检验和时要加上一个伪首部)vUDP,无连接的不可靠的端到端数据传输服务无连接的不可靠的端到端数据传输服务,整个整个TPDU (计算检验和时要加上一个伪首部计
43、算检验和时要加上一个伪首部),检验和可选检验和可选 v ATM协议协议 ,传输传输ATM信元信元 ,信元首部信元首部vATM AAL1,支持实时的、面向连接的支持实时的、面向连接的CBR数据传输服务数据传输服务,首部中的序号计数器字段的首部中的序号计数器字段的CRC检验,整个首部的奇偶检验。检验,整个首部的奇偶检验。可选的负载字段的可选的负载字段的FEC。 9/19/202456差错控制技术现有协议的例子(现有协议的例子(Cont.)vATM AAL2 ,传输实时、低速率可变长度的短分组,支持话传输实时、低速率可变长度的短分组,支持话音业务音业务 ,首部首部 vATM AAL3/4 ,支持可变
44、比特率以及面向连接和无连接的服支持可变比特率以及面向连接和无连接的服务务 ,整个整个SAR-PDU vATM AAL5 ,传输高速数据传输高速数据(AAL3/4(AAL3/4的简化版的简化版) ) ,整个整个CS-PDU v帧中继帧中继 ,高速数据传输高速数据传输 ,整帧整帧9/19/202457差错控制技术思考题思考题2-10 请解释上述协议采用的差错检测方法及选择请解释上述协议采用的差错检测方法及选择的被操作对象的理由。的被操作对象的理由。2-11 是否在所有协议中,检验和生成函数的输入是否在所有协议中,检验和生成函数的输入只有被保护数据?请举例说明,并作出解释。只有被保护数据?请举例说明
45、,并作出解释。9/19/202458差错控制技术差错控制技术:内容提纲差错控制技术:内容提纲2.4.1 差错类型差错类型2.4.2 差错检测技术差错检测技术2.4.3 差错控制技术差错控制技术2.4.4 差错控制与层次的关系差错控制与层次的关系9/19/202459差错控制技术差错控制技术:概述差错控制技术:概述v上一节我们已详细介绍了用于检测信息被上一节我们已详细介绍了用于检测信息被“损损坏坏”的各种检测技术的各种检测技术v本节我们主要介绍本节我们主要介绍“丢失丢失”、“重复重复”、“失失序序”等错误的检测技术以及各种差错的恢复技等错误的检测技术以及各种差错的恢复技术。术。 v这些技术涉及的
46、概念主要有:这些技术涉及的概念主要有:确认确认 (Ack)计时器计时器 (Timer)重传重传 (Retransmit)序号序号 (Sequence Number)9/19/202460差错控制技术差错控制技术差错控制技术一、确认一、确认(Acknowledge) 9/19/202461差错控制技术确认确认v确认确认(ack)是接收者显式地通知发送者所发送是接收者显式地通知发送者所发送的特定数据的接收情况的特定数据的接收情况v被确认的对象主要有哪些?被确认的对象主要有哪些?PDU字节字节v确认的情况:确认的情况:已正确到达,已正确到达,还没有收到,还没有收到,收到但有错收到但有错(相当于没有收
47、到相当于没有收到) 9/19/202462差错控制技术确认确认(续续)v确认分为三种类型:确认分为三种类型: 肯定确认肯定确认(Ack)指示数据已正确收到指示数据已正确收到否定确认否定确认(Nak)指示数据丢失指示数据丢失(没收到或收到但有错误没收到或收到但有错误) 选择确认选择确认(Select Ack)既指示已正确接收的数据既指示已正确接收的数据PDU,又指示哪些数据又指示哪些数据PDU还没有正确收到还没有正确收到 9/19/202463差错控制技术确认确认(续续)v两种发送方式:两种发送方式:独立确认独立确认指用一个确认指用一个确认PDUPDU来携带确认信息来携带确认信息 独立确认随时可
48、以发送独立确认随时可以发送另一种是另一种是应答携带应答携带(piggybacking) 将确认信息放在数据将确认信息放在数据PDU中发送中发送可以提高协议的效率,但要求接收方有数据发送可以提高协议的效率,但要求接收方有数据发送时才能发送确认时才能发送确认v通常在一种协议中,这两种确认形式均存在通常在一种协议中,这两种确认形式均存在 9/19/202464差错控制技术确认(续)确认(续)v如何标识被确认的对象?如何标识被确认的对象?用被确认的数据用被确认的数据PDU或字节或字节的序号来标识的序号来标识否定和肯定确认由一个序号构成否定和肯定确认由一个序号构成如果否定确认或肯定确认的语义是表示所给定
49、的序号之前的如果否定确认或肯定确认的语义是表示所给定的序号之前的所有序号所有序号( (包括或不包括本序号包括或不包括本序号) )的数据的数据PDU都已被成功地接都已被成功地接收了,则该确认又称为收了,则该确认又称为累计确认累计确认。 选择确认信息中包含多个序号,其格式可以有以下几种:选择确认信息中包含多个序号,其格式可以有以下几种: 表。表中含有一组序号,要么代表丢失的数据表。表中含有一组序号,要么代表丢失的数据PDU,或者代或者代表正确接收的数据表正确接收的数据PDU。范围。范围用序号区间来表示,在区间内的序号要么代表丢范围。范围用序号区间来表示,在区间内的序号要么代表丢失的数据失的数据PD
50、UPDU,或者代表正确接收的数据或者代表正确接收的数据PDUPDU。 位图。用一个比特组来表示确认,其中每一个比特位代表一位图。用一个比特组来表示确认,其中每一个比特位代表一个序号,它被置位表示它所代表的数据个序号,它被置位表示它所代表的数据PDU是否已正确收到。是否已正确收到。此外,这种方法还需要一个序号,指明该位图的偏移量。此外,这种方法还需要一个序号,指明该位图的偏移量。 9/19/202465差错控制技术9/19/202466差错控制技术确认(续)确认(续)v产生一个确认产生一个确认PDU的触发机制的触发机制:在接收了在接收了n个数据个数据PDU之后,接收者产生一个确认之后,接收者产生
51、一个确认PDU; 发送者产生一个信号,请求产生一个确认发送者产生一个信号,请求产生一个确认PDU。信信号可以随同一个数据号可以随同一个数据PDU一起传递(一起传递(例:例:HDLC中中的什么字段?的什么字段?),也可以是一个专用的控制),也可以是一个专用的控制PDU。接收者直到数据接收者直到数据PDU不连续到达时,才产生一个确不连续到达时,才产生一个确认认PDU; 接收者周期性地产生确认接收者周期性地产生确认PDU,与数据与数据PDU的到来的到来无关;无关; 接收者重复收到同一个数据接收者重复收到同一个数据PDU,接收者发送确认接收者发送确认PDU,防止确认丢失;防止确认丢失; 接收者在发送的
52、数据中携带确认信息。接收者在发送的数据中携带确认信息。 9/19/202467差错控制技术确认:思考题确认:思考题2-12 分析分析TCP协议采用的确认机制(提示:参考协议采用的确认机制(提示:参考相关相关RFC)或或 分析分析ATM的信令协议采用的确认的信令协议采用的确认机制。机制。2-13 试分析高速传输协议与低速传输协议所采用试分析高速传输协议与低速传输协议所采用的确认机制上的差别。要求:先从原理上说明,的确认机制上的差别。要求:先从原理上说明,然后举例说明。然后举例说明。9/19/202468差错控制技术差错控制技术差错控制技术二、计时器二、计时器(Timer) 9/19/202469
53、差错控制技术计时器计时器v为什么需要计时器?为什么需要计时器?如果携带确认信息的确认如果携带确认信息的确认PDU或数据或数据PDU丢失,则丢失,则发送方无法知道发送的发送方无法知道发送的PDU的接收情况。的接收情况。 这将导致:这将导致:对于可靠通信协议而言,占用发送方缓存对于可靠通信协议而言,占用发送方缓存由于流量控制而不能发送新的由于流量控制而不能发送新的PDU发送方一直处于等待状态,死锁发送方一直处于等待状态,死锁计时器:计时器:检测确认检测确认PDU或重传请求信号的丢失或重传请求信号的丢失9/19/202470差错控制技术计时器(续)计时器(续)v计时器的超时值如何设置?计时器的超时值
54、如何设置?是一个非常复杂及难解决的问题是一个非常复杂及难解决的问题依赖于依赖于PDU的住返时间的住返时间(RTT)RTTRTT与网络负载和路由选择策略有很大的关系,通常与网络负载和路由选择策略有很大的关系,通常情况下是一个动态变化的量情况下是一个动态变化的量动态估计动态估计往返时间和重传计时器的定时值的算法比较多往返时间和重传计时器的定时值的算法比较多RFC793RFC793中定义的中定义的TCPTCP算法算法MillsMills算法算法(Mills, 1983)(Mills, 1983)EdgeEdge算法算法(Edge, 1984)(Edge, 1984)KarnKarn和和Patridg
55、ePatridge的算法的算法( (KarnKarn and and PatridgePatridge, 1987), 1987)Jacobson/Jacobson/KarelKarel的算法的算法(Jacobson, 1988) (Jacobson, 1988) 9/19/202471差错控制技术计时器(续)计时器(续)v计时器的超时值如何设置?(续)计时器的超时值如何设置?(续)如果超时计时器的超时值设置不当,如果超时计时器的超时值设置不当,会导致什么后果?会导致什么后果?连续大量的数据重传连续大量的数据重传严重情况下将加剧网络的拥塞程度,出现更多数据严重情况下将加剧网络的拥塞程度,出现更
56、多数据丢失丢失 如果超时值设置太长,出现数据丢失而得不到即时如果超时值设置太长,出现数据丢失而得不到即时纠正,也会降低协议的性能纠正,也会降低协议的性能9/19/202472差错控制技术计时器(续)计时器(续)v为了差错控制的目的,一个协议中往往存在多个为了差错控制的目的,一个协议中往往存在多个计时器计时器OSIOSI类类4 4运输协议:运输协议:发起计时器发起计时器:CR(CR(建连请求建连请求) TPDU) TPDU重传重传重传重传CCCC计时器计时器:CC (CC (连接证实连接证实)TPDU)TPDU重传重传重传计时器重传计时器:DT (DT (数据数据)TPDU)TPDU重传重传加速
57、重传计时器加速重传计时器:ED(ED(加速数据加速数据) TPDU) TPDU重传重传释放计时器释放计时器:DR(DR(断连请求断连请求) TPDU) TPDU重传重传放弃加速计时器放弃加速计时器:最后检查未被确认的:最后检查未被确认的ED TPDUED TPDU静止计时器静止计时器:运输连接保持静止状态的最大时间:运输连接保持静止状态的最大时间 窗口计时器窗口计时器:重传:重传AK(AK(确认确认) TPDU) TPDU的最大时间间隔的最大时间间隔参照计时器参照计时器:源点参照或序号不得重复使用的时间:源点参照或序号不得重复使用的时间 9/19/202473差错控制技术计时器(续)计时器(续
58、)v为了差错控制的目的,一个协议中往往存在多个为了差错控制的目的,一个协议中往往存在多个计时器(续)计时器(续)TCPTCP协议:协议:重传计时器重传计时器:控制丢失的或丢弃的报文段控制丢失的或丢弃的报文段 坚持计时器坚持计时器:一条连接一个坚持计时器。:一条连接一个坚持计时器。当发送端当发送端的的TCP收到一个窗口大小为零收到一个窗口大小为零(让发送端停止发送让发送端停止发送)的确认时,就启动坚持计时器。的确认时,就启动坚持计时器。 保活计时器保活计时器:在某些实现中,用来防止在两个在某些实现中,用来防止在两个TCP之间的连接处于长时期空闲之间的连接处于长时期空闲 时间等待计时器时间等待计时
59、器:在连接终止期间使用的。当在连接终止期间使用的。当TCP关闭一个连接时,它并不认为这个连接马上就真正关闭一个连接时,它并不认为这个连接马上就真正地关闭了。在时间等待期间中,连接还处于一种中地关闭了。在时间等待期间中,连接还处于一种中间过渡状态。间过渡状态。 9/19/202474差错控制技术计时器:思考题计时器:思考题2-14 请请以以TCP为例,详细讨论在设计计时器的超为例,详细讨论在设计计时器的超时值时应考虑哪些问题。时值时应考虑哪些问题。9/19/202475差错控制技术差错控制技术差错控制技术三、重传三、重传(Retransmit) 9/19/202476差错控制技术重传重传v指发送
60、者重传由确认所指出的数据指发送者重传由确认所指出的数据PDU或重传或重传计时器超时时重传未收到确认的数据计时器超时时重传未收到确认的数据PDU。v基于滑动窗口的重传方法:基于滑动窗口的重传方法:回退回退n帧帧(Go-back-N) 接收方直接地丢弃所有不按序到达的数据接收方直接地丢弃所有不按序到达的数据PDU。发送方从第一个否定的确认或超时时所指序号的发送方从第一个否定的确认或超时时所指序号的数据数据PDU开始,重传所有后续数据开始,重传所有后续数据PDU。 选择重传选择重传(selective repeat) 发送方只重传否定确认、选择确认和超时中指出发送方只重传否定确认、选择确认和超时中指
61、出的那些数据的那些数据PDU 9/19/202477差错控制技术重重传(续)传(续)v实际协议中的重传机制比较复杂,主要是超时实际协议中的重传机制比较复杂,主要是超时计时器的超时间隔很难确定。计时器的超时间隔很难确定。 vTCP的重传机制的重传机制重传机制是重传机制是TCP中最重要和最复杂的问题之一。中最重要和最复杂的问题之一。TCP每发送一个报文段,就设置一次计时器。只要每发送一个报文段,就设置一次计时器。只要计时器设置的重传时间到而还没有收到确认,就要计时器设置的重传时间到而还没有收到确认,就要重传这一报文段。重传这一报文段。TCPTCP的下层往往是一个互连网环境。发送的报文段的下层往往是
62、一个互连网环境。发送的报文段可能只经过一个高速率的局域网,但也可能是经过可能只经过一个高速率的局域网,但也可能是经过多个低速率的广域网,并且数据报所选择的路由还多个低速率的广域网,并且数据报所选择的路由还可能会发生变化可能会发生变化 动态自适应算法动态自适应算法9/19/202478差错控制技术差错控制技术差错控制技术四、序号四、序号(SequenceNumber) 9/19/202479差错控制技术序号序号v为什么需要序号?为什么需要序号?为了检测数据为了检测数据PDU的重复、失序和丢失,需要对数据的重复、失序和丢失,需要对数据PDU进行无进行无二义性的编号,该编号称为数据二义性的编号,该编
63、号称为数据PDU的序号的序号通常编号是按照请求服务者传递通常编号是按照请求服务者传递SDU的次序进行的。这些的次序进行的。这些SDU被被放入放入PDU中进行传输。中进行传输。 v序号有三种不同的产生方式序号有三种不同的产生方式:SDU序号序号:对每个对每个SDU都编上序号,从都编上序号,从SDU序号得到序号得到PDU的序号。的序号。如果该如果该SDU被携带在多个数据被携带在多个数据PDU中时,还应附加一个中时,还应附加一个SDU数据数据块号块号PDU序号:对序号:对PDU连续编号,不管它们携带的连续编号,不管它们携带的SDU数据量。数据量。 字节序号:一个字节序号:一个SDU的每个字节都编号,
64、的每个字节都编号,PDU的序号来自于它所的序号来自于它所携带的携带的SDU的第的第1个字节的序号和最后个字节的序号和最后1个字节的序号。个字节的序号。 9/19/202480差错控制技术序号(续)序号(续)v最最重要的问题:如何防止序号重复?重要的问题:如何防止序号重复?使用一个非常大的序号空间。这个序号空间大到使使用一个非常大的序号空间。这个序号空间大到使得在数据单元从这一端到另一端的最大可能的迟延得在数据单元从这一端到另一端的最大可能的迟延时间时间L L内,所有从源点发送出去的新的数据单元都具内,所有从源点发送出去的新的数据单元都具有不同的序号。在开始一个新的连接时,可以使数有不同的序号。
65、在开始一个新的连接时,可以使数据单元的起始序号接着上次连接中最后使用过的序据单元的起始序号接着上次连接中最后使用过的序号继续增加一个号。号继续增加一个号。每次连接开始的数据单元都使用同样的起始序号,每次连接开始的数据单元都使用同样的起始序号,但必须使新的连接推迟开始,如至少在上次的连接但必须使新的连接推迟开始,如至少在上次的连接释放后推迟时间释放后推迟时间L。 赋给每个连接一个标号,或者称为连接序号。对于赋给每个连接一个标号,或者称为连接序号。对于一个给定连接中的每一个数据单元都附上连接序号。一个给定连接中的每一个数据单元都附上连接序号。当新建一个连接时,就换上一个新的序号。当新建一个连接时,
66、就换上一个新的序号。 (socket)9/19/202481差错控制技术序号(续)序号(续)v序号空间的大小与信道特点、确认方法、流量控序号空间的大小与信道特点、确认方法、流量控制方法和制方法和PDU中的数据字段长度有关中的数据字段长度有关如果信道的质量比较好,则序号空间要求比较大,从如果信道的质量比较好,则序号空间要求比较大,从而可以连续发送多个数据单元,提高协议效率而可以连续发送多个数据单元,提高协议效率采用周期性确认,序号空间就不一定要很大采用周期性确认,序号空间就不一定要很大在停止等待协议中,只需要在停止等待协议中,只需要0 0和和1 1两个序号即可两个序号即可一般来说,序号空间的大小
67、与数据字段的长度成反比一般来说,序号空间的大小与数据字段的长度成反比v序号是确认和重传的基础,此外序号还可用于流序号是确认和重传的基础,此外序号还可用于流量控制。量控制。 9/19/202482差错控制技术差错控制技术:思考题差错控制技术:思考题2-14 简要说明确认、计时器、重传、序号之间简要说明确认、计时器、重传、序号之间的关系。的关系。9/19/202483差错控制技术差错控制技术:内容提纲差错控制技术:内容提纲2.4.1 差错类型差错类型2.4.2 差错检测技术差错检测技术2.4.3 差错控制技术差错控制技术2.4.4 差错控制与层次的关系差错控制与层次的关系9/19/202484差错
68、控制技术概述概述v从通信和信息处理的角度看,物理层、数据链路从通信和信息处理的角度看,物理层、数据链路层、网络层和运输层属于面向通信部分,因而网层、网络层和运输层属于面向通信部分,因而网络中的绝大部分差错控制功能要在这几层中实现。络中的绝大部分差错控制功能要在这几层中实现。v处于不同层次的协议所采用的差错控制机制是有处于不同层次的协议所采用的差错控制机制是有差别的。差别的。9/19/202485差错控制技术物理层和数据链路层协议物理层和数据链路层协议v 物理层和数据链路层主要处理通信线路引起的传物理层和数据链路层主要处理通信线路引起的传输错误,这类错误大多是随机偶然性错误,一般输错误,这类错误
69、大多是随机偶然性错误,一般通过检测、重传的方式来纠正。通过检测、重传的方式来纠正。v考虑到物理层一般主要依靠硬件实现,重传纠错考虑到物理层一般主要依靠硬件实现,重传纠错比较困难,所以原则上把差错恢复的任务交给数比较困难,所以原则上把差错恢复的任务交给数据链路层来解决。据链路层来解决。 v在数据链路层通常以帧为单位构造在数据链路层通常以帧为单位构造CRC检验和,检验和,接收方发现接收方发现CRC检验有错时,发送确认信息或丢检验有错时,发送确认信息或丢弃出错帧导致发方超时使其重传出错的帧。同时,弃出错帧导致发方超时使其重传出错的帧。同时,通过帧序号来发现因重传导致的帧重复。通过帧序号来发现因重传导
70、致的帧重复。 9/19/202486差错控制技术物理层和数据链路层协议(续)物理层和数据链路层协议(续)v在有些情况下,物理层也进行奇偶检验,以供维在有些情况下,物理层也进行奇偶检验,以供维护、诊断和分析用,如现在有些护、诊断和分析用,如现在有些ModemModem也可进行差也可进行差错重传控制。错重传控制。v通过以上的差错控制后,数据链路层向上层通过以上的差错控制后,数据链路层向上层(一般一般是网络层是网络层)提供的无差错的数据传输服务提供的无差错的数据传输服务(按序、按序、无丢失、不重复无丢失、不重复)。 9/19/202487差错控制技术网络层网络层v网络层的主要任务是提供路由选择和网络
71、互连功能。网络层的主要任务是提供路由选择和网络互连功能。 v对于路由转发过程中由于拥塞、缓存溢出、死锁、对于路由转发过程中由于拥塞、缓存溢出、死锁、老化以及非法格式等引起的报文丢失、失序等差错,老化以及非法格式等引起的报文丢失、失序等差错,网络层一般只做差错检测而不作纠错处理,只是把网络层一般只做差错检测而不作纠错处理,只是把不能接收或过期非法的分组简单丢弃或向发送方报不能接收或过期非法的分组简单丢弃或向发送方报告。纠错则放在运输层进行处理。告。纠错则放在运输层进行处理。 v但是,如果网络层提供虚电路服务,由于虚电路服但是,如果网络层提供虚电路服务,由于虚电路服务保证报文无差错、不丢失、不重复
72、且按序地进行务保证报文无差错、不丢失、不重复且按序地进行交付,因此网络层就需要实现纠错功能。交付,因此网络层就需要实现纠错功能。 9/19/202488差错控制技术运输层运输层v运输层向应用进程提供的端到端的无差错的数运输层向应用进程提供的端到端的无差错的数据传输服务。据传输服务。 v如果通信子网如果通信子网(只包括网络层、数据链路层和只包括网络层、数据链路层和物理层物理层)所提供的服务越多,运输层协议就可所提供的服务越多,运输层协议就可以做得越简单。例如,网络层提供虚电路服务以做得越简单。例如,网络层提供虚电路服务时,运输层协议就很简单。时,运输层协议就很简单。 v但是,即使网络层提供的是虚
73、电路服务,某些但是,即使网络层提供的是虚电路服务,某些用户仍可能怀疑下面的网络是否用户仍可能怀疑下面的网络是否100%可靠,可靠,因而在网络层上面加上用户自己的端到端差错因而在网络层上面加上用户自己的端到端差错控制和流量控制。控制和流量控制。 9/19/202489差错控制技术运输层(续)运输层(续)v例如,例如,X.25网络虽然提供虚电路服务,但当网网络虽然提供虚电路服务,但当网络中的虚电路进行重建络中的虚电路进行重建(reset)时,主机就无时,主机就无法获得正在网内的分组的状态,恢复工作必须法获得正在网内的分组的状态,恢复工作必须由高层即运输层来进行。由高层即运输层来进行。 v偶然的突发
74、噪声可能把送往一个目的地完全合偶然的突发噪声可能把送往一个目的地完全合法的分组改变成送往另一个目的地址是完全合法的分组改变成送往另一个目的地址是完全合法的分组。法的分组。 (使用使用k位的位的CRC检验和,差错仍检验和,差错仍然有然有2-k的概率被漏检的概率被漏检 )v运输层通常需要解决的差错包括:丢失、重复、运输层通常需要解决的差错包括:丢失、重复、失序,采取的差错控制措施包括:序号、确认、失序,采取的差错控制措施包括:序号、确认、超时、重传等。超时、重传等。 9/19/202490差错控制技术应用层应用层v通过数据链路层、网络层及运输层的上述检测通过数据链路层、网络层及运输层的上述检测纠错
75、措施后,一般地说,运输层逻辑链路提供纠错措施后,一般地说,运输层逻辑链路提供给应用层端用户的服务将是一条无差错的可靠给应用层端用户的服务将是一条无差错的可靠的数据传输通道。的数据传输通道。 v应用层一般可不考虑传输上的错误,但应用层应用层一般可不考虑传输上的错误,但应用层仍然有它自己的差错控制问题。这主要是协议仍然有它自己的差错控制问题。这主要是协议类型不一致、文本或文件系统属性的不匹配、类型不一致、文本或文件系统属性的不匹配、消息包格式错误、程序设计同步关系错误以及消息包格式错误、程序设计同步关系错误以及程序执行中的错误等。程序执行中的错误等。 v差错控制的基本思想与前面讨论是相似的差错控制的基本思想与前面讨论是相似的9/19/202491差错控制技术差错控制与层次的关系:思考题差错控制与层次的关系:思考题2-15 试试以以X.25网络和帧中继(网络和帧中继(FR)为例来说明为例来说明随着网络基础设施的改善(大量采用光纤),随着网络基础设施的改善(大量采用光纤),各协议层次的差错控制机制有什么变化?各协议层次的差错控制机制有什么变化?9/19/202492差错控制技术差错控制技术:小结差错控制技术:小结v协议功能中最重要的一部分协议功能中最重要的一部分v两大类型:两大类型:检错重传或丢弃(由上层协议解决)检错重传或丢弃(由上层协议解决)纠错纠错9/19/202493差错控制技术