• 计算机网络--差错检测(帧检验序列FCS计算方法)


    我们知道数据链路层广泛使用循环冗余检验CRC的检验技术

    现在我们知道要发送的数据M=101001(长度为k=6)  在我们每次发送数据的时候需要在M后面添加一个N位的冗余码,一共发送(k+N)位数据

    这N位冗余码的计算方法如下:

    用二进制的膜2运算进行2^N(这是2的N次方)乘M的运算 就是说在M这个数后面添加N个0  比如 初始M=101001   进行运算之后M=101001000(n=3)

    将的到的M除以收发双发实现约定的长度(n+1)位的数P  假定P=1101(n=3) 经模2除法运算的到的结果:商Q=110101 余数R=001(不满N位往前补0)Q没有什么用 ,但是这个余数R就是我们所求的冗余码

    我们将这个冗余码R添加到M之后 :M=101001001 (M是之前给的最原始的M)

    下面具体来说一下 具体怎么求R:

      在二进制进行运算的时候全部都用XOR(异或进行运算(就是相同为0 不同为1    1xor1=0 0xor0=0   1xor0=1 ))

     

         

    看图这样我们就能得到R

    来个例题:

    我们要发送的数据为M=101110 采用CRC的生成多项式是P(x)=X^3+1  所以我们的到的p=1001

    得到的R=110   (计算完毕,图画的有点丑见谅)

  • 相关阅读:
    MySQL主从复制与读写分离
    MySQL主从同步、读写分离配置步骤
    c# 无损压缩图片,接口传过来的是字节
    C# 和JAVA AES加密之间的互相兼容,C#版
    list的线程非安全性
    webrequesthelper
    .net core 实现微信登陆
    .net core 实现QQ登陆网站
    c# 深拷贝
    在H+框架下的一个给iframe 的body 添加事件。
  • 原文地址:https://www.cnblogs.com/Dvelpro/p/10206555.html
Copyright © 2020-2023  润新知