- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2讲_协议设计差错控制技术
差错控制技术 确认(续) 两种发送方式: 独立确认 指用一个确认PDU来携带确认信息 独立确认随时可以发送 另一种是应答携带(piggybacking) 将确认信息放在数据PDU中发送 可以提高协议的效率,但要求接收方有数据发送时才能发送确认 通常在一种协议中,这两种确认形式均存在 确认(续) 如何标识被确认的对象? 用被确认的数据PDU或字节的序号来标识 否定和肯定确认由一个序号构成 如果否定确认或肯定确认的语义是表示所给定的序号之前的所有序号(包括或不包括本序号)的数据PDU都已被成功地接收了,则该确认又称为累计确认。 选择确认信息中包含多个序号,其格式可以有以下几种: 表。表中含有一组序号,要么代表丢失的数据PDU,或者代表正确接收的数据PDU。 范围。范围用序号区间来表示,在区间内的序号要么代表丢失的数据PDU,或者代表正确接收的数据PDU。 位图。用一个比特组来表示确认,其中每一个比特位代表一个序号,它被置位表示它所代表的数据PDU是否已正确收到。此外,这种方法还需要一个序号,指明该位图的偏移量。 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 crc; } 差错检测技术 三、UUCP检验和 UUCP检验和 UNIX操作系统中的uucp应用程序中的计算检验和方法,与CRC检验比较类似 比较简单,有点类似于散列方法,其漏检率比CRC要高一些,而且计算同样的检验和,它所花的时间比查表计算CRC检验和的方法要多一些。 UUCP检验和:源码 cksum(s, n) register char *s; register n; { register short sum; register unsigned short t; register short x; sum = -1; x = 0; do { if (sum 0) {sum =1; sum++} else sum = 1; t = sum; sum += (unsigned) *s++ 0377; x += sum^n; if ((unsigned short) sum = t) {sum ^= x;} } while (--n 0); return (sum); } 差错检测技术 四、算术检验和(Arithmetic Checksum) 算术检验和 尽管可以通过前面介绍的查表的方法或特殊硬件的方法计算检验和来缩短处理时间,但: 对于允许一定程度的漏检率的应用场合,可以采用比CRC检验要简单且又能够发现比较严重的传输错误的方法来进行差错检测。 John Fletcher 在1982提出了这样一种差错检测方法,称为算术检验和 只需用到加法和取模操作, 且算法特别简单 Arithmetic Checksum Error detection at the higher layer is usually done by ordinary arithmetic operations.This is simpler in software but somewhat less effective than a 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. Arithmetic Checksum (Cont.) Alternatively, 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. Example: In TCP, n=16, checksum is 16 bits and one’s complement of the sum. In ISBN, the dat
文档评论(0)