网络数据传输的差错检测


  系统必须保证数据从一端传送到另一端时完好无损,然而很多时候从源点传输到目的点的数据会被各种因素干扰,比如线路的串扰。

  无论何时,从一个点流向另一个点的数据流都可能被各种因素干扰而产生错误。就是说,任何人都不能保证信在传递过程中不受到的磨损,怎样让收信人知道这封信被磨损,就要靠差错检测。有的发件人在信里附加了一张这封信的照片,这样收件人收到此封信后和照片对比一下,就知道信是否有磨损了。

10个最好的PNG转ICO工具,轻松生成Windows 7的256x256像素超清晰图标: http://blog.yiyidu.com/2012_1792.html

  差错的类型D618311E9A274BD28422AA89D4E746A3

  1. 一个比特位出错

  一个比特位出错是指在给定的数据单元(如一个字节、一个字符、一个数据分组)中只有一个比特被改变了,1变成了0或0变成了1。比如发送端发送的是1100001(ASCII码中的字符A),接受端收到的却是1100011(ASCII码中的字符C)。
单比特出错在串行链路(如以太网线)中很少见。比如发送端以1Mb/s的速率发送数据,也就是说每个比特在线路上持续的时间仅为1/1000000秒,若想产生但比特错误,噪声干扰持续的时间同样仅为1/1000000秒,而这非常罕见,一般噪声持续时间通常不会这么短。

  本文来自亿度软件:http://www.yiyidu.com

  但是,如果系统使用的是并行传输方式发送数据,单比特错误就可能发生。比如,用8条线同时发送1个字节的所有8个比特,若其中一条线出现噪声,那么每个字节中都会有1比特的错误。例如,CPU和存储器间的就是并行传输。

  2. 多比特出错

  多比特出错是指在给定的数据单元中多个比特被改变了。多比特差错通常出现在串行链路中,因为噪声干扰持续的时间通常大于一个比特持续的时间。

  检测

  收件人如何检测信息是否在传输过程中出现差错,这就需要检测技术。

  1. 拷贝。所谓拷贝,就是把同样的信息发两次,接收设备将两次发送的数据一比较就知道是否有差错。使用这种差错检测机制的好处是准确,不好的地方是这不仅增加了有效数据的传输时间,而且还增加了比较每一个比特的时间,效率太低。

  2. 拍照。发送端在传输数据前先给整个数据拍个照,然后把数据连同照片一同发给接收方,接收方收到数据后和照片一比较就知道数据是否受到破坏。常见生成照片的算法有MD5(摘要报文5)和SHA-1(安全散列算法1)。对于生成照片的过程,专业点说叫散列,而MD5和SHA-1都叫散列函数。

  3. 奇偶校验。奇偶校验也叫垂直冗余校验(VRC)。使发送的每组数据都有偶数个1,接收端如果发现一组数据中出现奇数个1就认为出错。性能上来说,奇偶校验可以检测出所有的一个比特位出错出错的情况。也可以检测出多比特出错情况,但变化的比特总数必须是奇数(如3,5,7,9等)。

  4. 循环冗余校验(CRC)。CRC是一种非常快速并且有效的差错检测方法。常见的CRC标准有CRC-8(ATM首部校验)、CRC-10(ATM AAL部分校验)、CRC-32(用于局域网802.3的数据帧校验)。

  5. 校验和。将传输的消息按照8位、16位或32位整数的序列,把这些整数加起来而得出校验码,该校验码也叫校验和。比如IP协议分组和UDP协议分组都采用的是校验和计算。这种差错检测的弊端是:如果整数序列中有两个整数出错,一个值增加了,另一个减小了相同的值,这种错误就不会被检测出来。



  • 欢迎大家转载,转载请复制:
  • 原文链接:网络数据传输的差错检测
  • 原文地址:http://blog.yiyidu.com/2008_1092.html
  • 转载超过10篇需经本人书面许可。

小类: 大类: 互联网络

发表看法:

评论的同时不要忘了转载到自己的空间,让好友看到哦


返回顶部】【返回首页

Copyright © 2008-2108 亿度软件下载 Inc. All rights reserved.
Computer and Software make your life easier.
24 queries in 0.120 seconds.