📅  最后修改于: 2020-11-09 09:56:52             🧑  作者: Mango
当数据从一个设备发送到另一设备时,系统不保证该设备接收到的数据是否与另一设备发送的数据相同。错误是在接收方接收到的消息与发送的消息不同时的情况。
错误可以分为两类:
给定数据单元的唯一一位从1更改为0或从0更改为1。
在上图中,发送的消息被破坏为一位,即0位变为1。
串行数据传输中不太可能出现单位错误。例如,发送方以10 Mbps的速度发送数据,这意味着该位仅持续1?s,并且要发生一位错误,噪声必须大于1?s。
单位错误主要发生在并行数据传输中。例如,如果使用八根线发送一个字节的八位,则其中一根线有噪声,则每个字节损坏一位。
两个或多个位从0更改为1或从1更改为0被称为突发错误。
从第一个损坏的位到最后一个损坏的位确定突发错误。
突发错误中的噪声持续时间大于单位错误中的噪声持续时间。
突发错误最有可能在串行数据传输中发生。
受影响的位数取决于噪声的持续时间和数据速率。
最受欢迎的错误检测技术是:
校验和是基于冗余概念的错误检测技术。
它分为两个部分:
发送方会生成一个校验和。校验和生成器将数据细分为每个n位的相等段,然后使用一个补码算术将所有这些段加在一起。总和被补充并附加到原始数据,称为校验和字段。扩展数据通过网络传输。
假设L为数据段的总和,则校验和为?L
The Sender follows the given steps:
The block unit is divided into k sections, and each of n bits.
All the k sections are added together by using one's complement to get the sum.
The sum is complemented and it becomes the checksum field.
The original data and checksum field are sent across the network.
校验和在接收方进行验证。接收器将进入的数据细分为每个n位的相等段,并将所有这些段加在一起,然后对该和求和。如果总和的补码为零,则数据被接受,否则数据被拒绝。
The Receiver follows the given steps:
The block unit is divided into k sections and each of n bits.
All the k sections are added together by using one's complement algorithm to get the sum.
The sum is complemented.
If the result of the sum is zero, then the data is accepted otherwise the data is discarded.
CRC是用于确定错误的冗余错误技术。
以下是CRC中用于错误检测的步骤:
如果该除法的结果为零,则意味着没有错误,并且数据被接受。
如果该除法的结果不为零,则意味着数据包含错误。因此,数据被丢弃。
让我们通过一个例子来理解这个概念:
假设原始数据为11100,除数为1001。