CRC校验实现

1、实验题目:CRC 校验

         PPP 协议受到数据帧后要对数据部分连同 FCS 字段做 CRC 校验,结果若不为“0”,则 可以肯定数据在传输过程中出错;结果若为“0”,则只能说明很大概率上数据在传输的过程 中没有出错,而不是百分之百不出错。这个概率与 CRC 校验时采用的除数有关,我们把使 用某个除数做 CRC 校验,结果为“0”且数据实际不出错的概率称为该除数的有效性。  本次试验要求同学们以实验的方法验证 CRC-16 的有效性。

2、实验内容

(1) 随机取 1 个 128 位数 A。 

(2) 将 A 与 CRC-16 做除法得余数 B,A*216+B 保存在 C 中。 

(3) 随机修改 C 中的 1 个比特,重新与 CRC-16 做除法运算,记录余数为 0 的二进制组 合。

(4) 随机修改 C 中的 2 个比特,重新与 CRC-16 做除法运算,记录余数为 0 的二进制组 合。

(5) 随机修改 C 中的 3 个比特,重新与 CRC-16 做除法运算,记录余数为 0 的二进制组 合。



import java.util.Random;
//import java.util.Arrays;
public class CRC {

	public static int[] crc={1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1};  //crc-16码,可修改
	
	 //生成一个n位的二进制数组,并自动补0
	public static int[] BornBinary(int num,int crcNum)
	{
		int binary[]=new int[num+crcNum];
		Random r=new Random();
		for(int loop=0;loop


你可能感兴趣的:(计算机网络)