首页 > 专利 > 华为技术有限公司 > 循环冗余校验实现方法、装置和网络设备专利详情

循环冗余校验实现方法、装置和网络设备   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2014-08-22
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2016-03-23
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2019-07-23
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2034-08-22
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201410418113.3 申请日 2014-08-22
公开/公告号 CN105356966B 公开/公告日 2019-07-23
授权日 2019-07-23 预估到期日 2034-08-22
申请年 2014年 公开/公告年 2019年
缴费截止日
分类号 H04L1/00 主分类号 H04L1/00
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 6
权利要求数量 7 非专利引证数量 0
引用专利数量 10 被引证专利数量 0
非专利引证
引用专利 CN103841009A、CN1728714A、CN101572112A、CN101854648A、CN102833036A、CN1728713A、CN103841009A、CN101150481A、CN102055555A、CN1472934A 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 华为技术有限公司 当前专利权人 华为技术有限公司
发明人 邹龙吟、刘轶、徐正华 第一发明人 邹龙吟
地址 广东省深圳市龙岗区坂田华为总部办公楼 邮编 518129
申请人数量 1 发明人数量 3
申请人所在省 广东省 申请人所在市 广东省深圳市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
摘要
本发明实施例公开了一种CRC实现方法和装置,通过对输入数据进行修正,得到修正数据,对所述修正数据进行CRC计算,得到中间CRC结果,再对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。可以减少计算CRC时所需计算模块数,从而节省CRC计算中所占用资源,提高计算效率和资源利用率。
  • 摘要附图
    循环冗余校验实现方法、装置和网络设备
  • 说明书附图:图1
    循环冗余校验实现方法、装置和网络设备
  • 说明书附图:图2
    循环冗余校验实现方法、装置和网络设备
  • 说明书附图:图3
    循环冗余校验实现方法、装置和网络设备
  • 说明书附图:图4
    循环冗余校验实现方法、装置和网络设备
  • 说明书附图:图5
    循环冗余校验实现方法、装置和网络设备
  • 说明书附图:图6
    循环冗余校验实现方法、装置和网络设备
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-12-10 专利权的转移 登记生效日: 2021.11.26 专利权人由华为技术有限公司变更为苏州鱼得水电气科技有限公司 地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为215010 江苏省苏州市高新区长江路556号5幢704室
2 2019-07-23 授权
3 2016-03-23 实质审查的生效 IPC(主分类): H04L 1/00 专利申请号: 201410418113.3 申请日: 2014.08.22
4 2016-02-24 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种循环冗余校验CRC实现方法,其特征在于,包括:
CRC实现装置根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
所述CRC实现装置将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
所述CRC实现装置对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果;
所述对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果包括:
将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。

2.根据权利要求1所述的方法,其特征在于,所述CRC实现装置根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据包括:
在所述输入数据的长度不是所述CRC实现装置的数据位宽的整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据。

3.一种循环冗余校验CRC实现装置,其特征在于,包括数据修正模块,CRC计算模块和结果修正模块;
所述数据修正模块,用于根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
所述CRC计算模块,用于将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
所述结果修正模块,用于对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果;
所述结果修正模块,具体用于将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。

4.根据权利要求3所述的装置,其特征在于,所述数据修正模块,具体用于在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据。

5.一种网络设备,其特征在于,包括转发芯片和通信接口;所述转发芯片包括CRC实现装置;
所述转发芯片,用于接收从所述通信接口收到的第一数据报文,从所述第一数据报文中获取净荷作为第一输入数据,从所述第一数据报文的前向校验序列FCS字段获取第一校验值;将所述第一输入数据提供给所述CRC实现装置,并从所述CRC实现装置获取所述第一输入数据对应的最终CRC结果;根据所述第一校验值和所述第一输入数据对应的最终CRC结果对所述第一数据报文进行校验;所述CRC实现装置包括:
数据修正模块,用于根据所述CRC实现装置的数据位宽对所述第一输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
CRC计算模块,用于将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
结果修正模块,用于对所述中间CRC结果进行逆向修正,得到所述第一输入数据对应的所述最终CRC结果;
所述结果修正模块,具体用于将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。

6.根据权利要求5所述的网络设备,其特征在于,所述数据修正模块,具体用于在所述第一输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述第一输入数据的尾部填充0得到所述修正数据。

7.根据权利要求5所述的网络设备,其特征在于,所述转发芯片,还用于从第二数据报文中获取净荷作为第二输入数据,将所述第二输入数据提供给所述CRC实现装置,并从所述CRC实现装置获取所述第二输入数据对应的最终CRC结果;将所述第二输入数据对应的最终CRC结果作为校验值插入所述第二数据报文的FCS字段中,并从所述通信接口发送所述插入了校验值的数据报文。
说明书

技术领域

[0001] 本发明涉及网络通信领域,尤其涉及循环冗余校验(cyclic redundancy check,简称CRC)实现方法、装置和网络设备。

背景技术

[0002] 在数据报文传输过程中,通常采用循环冗余校验(cyclic redundancy check,简称CRC)算法计算得到帧校验序列(frame check sequence,简称FCS)字段的校验位,将该校验位添加在报文尾部以验证报文传输的正确性。
[0003] 随着芯片处理性能的提高,负责CRC计算的处理器,一拍时序的数据位宽越来越大。例如,目前数据位宽可达到256比特(英文:bit)。但是,由于数据报文的长度不确定,导致最后一拍时序的模(modulus,符号:MOD)指示不确定,存在N种可能性(N=数据位宽/8bit)。为了保证处理效率,最后一拍通常采用并行计算所有可能性再通过选择器根据MOD指示选择的处理方式。这样,占用的计算资源随着数据位宽的增大会成几何级数增长。例如,数据位宽为256bit的处理器,CRC计算所需的计算模块数为:256bit/8bit,即32,而数据位宽为128bit的处理器,CRC计算所需的计算模块数为:128bit/8bit,即16。数据位宽为
256bit的处理器所需的计算模块数是数据位宽为128bit的处理器的两倍。同时,数据位宽为256bit的处理器的每个计算模块所占用的资源规模(256bit)又是数据位宽为128bit的处理器的每个计算模块所占用的资源规模(128bit)的两倍。再加上其他一些可能的逻辑扩充,虽然位宽是两倍的关系,但是整体资源占用是四倍以上,规模过于巨大甚至超出一些主要功能所需资源。
[0004] 以现场可编程门阵列(field-programmable gate array,简称FPGA)作为负责CRC计算的处理器为例,图1示出了现有技术中所需的四输入(4-input)查找表(lookup table,简称LUT)数量与数据位宽的关系,其中横坐标为数据位宽,纵坐标为LUT数量。LUT数量反映了占用资源的大小,从图1中可以看出,所需的LUT数量不是随着数据位宽线性增加,而是几何级增长。

发明内容

[0005] 本发明实施例提供了一种CRC实现方法和装置,根据MOD修正待计算报文,节省计算CRC时所需计算模块数,从而节省CRC计算中所占用资源,提高计算效率和资源利用率。
[0006] 第一方面,提供了一种CRC实现方法,包括:
[0007] CRC实现装置根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
[0008] 所述CRC实现装置将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
[0009] 所述CRC实现装置对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
[0010] 在第一方面的第一种可能的实现方式中,所述CRC实现装置根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据包括:
[0011] 在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据。
[0012] 根据第一方面或第一方面的第一种可能实现方式,在第一方面的第二种可能的实现方式中,所述对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果包括:
[0013] 将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。
[0014] 第二方面,提供了一种CRC实现装置,包括数据修正模块,CRC计算模块和结果修正模块;
[0015] 所述数据修正模块,用于根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;
[0016] 所述CRC计算模块,用于将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;
[0017] 所述结果修正模块,用于对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
[0018] 在第二方面的第一种可能实现方式中,所述数据修正模块,具体用于在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据。
[0019] 根据第二方面或第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述结果修正模块,具体用于将所述中间CRC结果的高低位翻转后作为被除数,将所述CRC多项式的高低位翻转后作为除数,进行CRC计算得到计算结果,再将所述计算结果的高低位翻转后得到所述最终CRC结果。
[0020] 第三方面,提供了一种网络设备,包括转发芯片和通信接口;所述转发芯片包括上述第二方面所述的CRC实现装置;
[0021] 所述转发芯片,用于接收从所述通信接口收到的第一数据报文,从所述第一数据报文中获取净荷作为第一输入数据,从所述第一数据报文的前向校验序列FCS字段获取第一校验值;将所述第一输入数据提供给所述CRC实现装置,并从所述CRC装置获取所述第一输入数据对应的最终CRC结果;根据所述第一校验值和所述第一输入数据对应的最终CRC结果对所述第一数据报文进行校验。
[0022] 在第三方面的第一种可能实现方式中,所述转发芯片,还用于从第二数据报文中获取净荷作为第二输入数据,将所述第二输入数据提供给所述CRC实现装置,并从所述CRC装置获取所述第二输入数据对应的最终CRC结果;将所述第二输入数据对应的最终CRC结果作为校验值插入所述第二数据报文的FCS字段中,并从所述通信接口发送所述插入了校验值的数据报文。
[0023] 本发明实施例提供的CRC实现方法、装置及网络设备,根据所述CRC实现装置的数据位宽对输入数据进行修正,得到修正数据,所述修正数据的长度为所述数据位宽的整数倍;这样,可以保证MOD指示是固定的而不存在多种可能性,计算模块的数量不会随着数据位宽增加而增加,可以减少计算CRC时所需计算模块数。然后,将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到中间CRC结果;再对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果;从而可以得到所述输入数据对应的正确的CRC计算结果。本发明提供的技术方案,CRC计算所需的计算资源基本上随数据位宽线性增加,相比于现有技术中所需的计算资源随着数据位宽成几何级增长,可以显著地减少CRC计算所占用的资源,提高计算效率和资源利用率,从而提高设备性能。

实施方案

[0030] 为使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
[0031] 本发明实施例提供了一种CRC实现方法,如图2所示,包括:
[0032] 201、对输入数据进行修正,得到修正数据;
[0033] 本发明实施例中,所述CRC实现方法可以由CRC实现装置执行。所述CRC实现装置可以是处理器,包括网络处理器(network processor,简称NP),专用集成电路(application-specific integrated circuit,简称ASIC)芯片,或可编程逻辑器件,例如FPGA。
[0034] CRC实现装置根据所述CRC实现装置的数据位宽,对输入数据进行修正。在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据;所述修正数据的长度为所述数据位宽的整数倍。这样,进行CRC计算的数据长度固定,可以保证MOD指示是固定的而不存在多种可能性,从而可以减少计算模块的数量。
[0035] 举例来说,所述数据位宽为256bit,若所述数据的长度为248bit,则在所述输入数据的尾部填充8bit的0,所得到的修正数据的长度为256bit,为所述数据位宽的整数倍。若所述输入数据的长度为376bit,则在所述输入数据的尾部填充136bit的0,得到修正数据的长度为2*256bit,为所述数据位宽的整数倍。
[0036] 202、对所述修正数据进行CRC计算,得到中间CRC结果;
[0037] 所述CRC实现装置将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到该中间CRC结果;即,用除数除尽被除数的所有比特位,得到的余数即为该中间CRC结果。这里的除法用的是异或算法而不是算术除法。其中,所述CRC多项式是预先设置或配置在所述CRC实现装置上,例如可以为CRC8多项式x8+x6+1,或者也可以为CRC16多项式x16+x12+x5+1。
[0038] 以所述CRC实现装置的数据位宽为16bit,CRC8多项式x8+x6+1,即,二进制数101000001为例。假设输入数据为0x12,则根据步骤201对所述数据进行修正,得到的修正数据为0x1200。进一步地,对该修正数据0x1200进行CRC计算,即,以该修正数据为0x1200为被除数,以该多项式x8+x6+1(二进制数101000001)为除数,得到的中间CRC结果为0xC6,具体可参见图3所示。
[0039] 203、对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
[0040] CRC算法是可逆的,CRC计算过程也可逆。因此,可以将上述对修正数据计算出的中间CRC结果,通过逆向修正,得到该输入数据对应的最终CRC结果。形象的来说,将对该修正数据进行CRC计算得到上述中间CRC结果的过程翻转(这样所有数据的高低位均发生翻转),回退步骤201中对输入数据进行修正时所填充0的比特位数,例如将图2翻转,回退8位得到一个计算结果;由于所有数据的高低位,包括计算结果的高低位,均发生了翻转,因此还需要将该计算结果的高低位再翻转回来,得到该输入数据0x12的最终计算结果。
[0041] 具体地,对上述中间CRC结果进行逆向修正,得到该输入数据对应的最终CRC结果包括:所述CRC实现装置将该中间CRC结果的高低位翻转后作为被除数;将该CRC多项式,例如x8+x6+1(二进制数101000001)的高低位翻转后作为除数,然后进行CRC计算得到计算结果,再将该计算结果的高低位翻转后得到该最终CRC结果。
[0042] 继续步骤202中的例子,所述CRC实现装置对所述中间CRC结果0xC6进行逆向修正,可以将图3过程翻转180度来看。具体可参见图4所示,将所述中间CRC结果0xC6(二进制:00110110)的高低位翻转得到0x63(二进制:01100011)作为被除数,将CRC8多项式x8+x6+1(二进制数101000001)高低位翻转得到x8+x2+1(二进制数100000101)作为除数,进行CRC计算后得到0xEA(二进制:11101010),再将0xEA进行高低位翻转,得到最终CRC结果0x57(二进制01010111)。
[0043] 采用本发明实施例提供的CRC实现方法,通过对输入数据进行修正,可以保证MOD指示是固定的而不存在多种可能性,这样计算模块的数量不会随着数据位宽增加而增加。相比于现有技术中整体所需的计算资源随着数据位宽成几何级增长,采用本发明实施例提供的CRC实现方法,整体所需的计算资源基本上随数据位宽线性增加,显著降低了大数据位宽处理器消耗的计算资源,从而提高处理器计算效率和性能。
[0044] 图5为本发明实施例提供的一种CRC实现装置的结构示意图,所述CRC实现装置50包括数据修正模块501,CRC计算模块502和结果修正模块503,用于实现图2所示的CRC实现方法。
[0045] 所述数据修正模块501,用于对输入数据进行修正,得到修正数据;
[0046] 所述CRC计算模块502,用于对所述修正数据进行CRC计算,得到中间CRC结果;
[0047] 所述结果修正模块503,用于对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
[0048] 所述数据修正模块501,具体用于根据所述CRC实现装置的数据位宽,对输入数据进行修正,得到所述修正数据。具体地,在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,所述数据修正模块501根据所述CRC实现装置的数据位宽,在所述输入数据的尾部填充0得到所述修正数据,所述修正数据的长度为所述数据位宽的整数倍。具体示例可见上文,此处不再赘述。这样,进行CRC计算的数据长度固定,可以保证MOD指示是固定的而不存在多种可能性,从而可以减少计算模块的数量。
[0049] 所述CRC计算模块502,具体用于将所述修正数据作为被除数,CRC多项式作为除数,进行CRC计算得到该中间CRC结果;即,用除数除尽被除数的所有比特位,得到的余数即为该中间CRC结果。这里的除法用的是异或算法而不是算术除法。其中,所述CRC多项式是预先设置或配置在所述CRC实现装置上,例如可以为CRC8多项式x8+x6+1,或者也可以为CRC16多项式x16+x12+x5+1。
[0050] CRC算法是可逆的,CRC计算过程也可逆。因此,可以将上述对修正数据计算出的中间CRC结果,通过逆向修正,得到该输入数据对应的最终CRC结果。形象的来说,将对该修正数据进行CRC计算得到上述中间CRC结果的过程翻转(这样所有数据的高低位均发生翻转),回退所述数据修正模块501对输入数据进行修正时所填充0的比特位数,例如将图3翻转,回退8位得到一个计算结果;由于所有数据的高低位,包括计算结果的高低位,均发生了翻转,因此还需要将该计算结果的高低位再翻转回来,得到该输入数据0x12的最终计算结果。
[0051] 所述结果修正模块503具体用于将被该中间CRC结果的高低位翻转后作为被除数;将该CRC多项式,例如x8+x6+1(二进制数101000001)的高低位翻转后作为除数,然后进行CRC计算得到计算结果,再将该计算结果的高低位翻转后得到该最终CRC结果。
[0052] 举例来说,所述CRC实现装置的数据位宽为16bit,输入数据为0x12,得到的修正数据为0x1200;以CRC8多项式x8+x6+1,即,二进制数101000001为例,所述CRC计算模块502根据该多项式对该修正数据0x1200进行CRC计算,得到的中间CRC结果为0xC6,具体计可参见图3所示。所述CRC实现装置对所述中间CRC结果0xC6进行逆向修正,可以将图3过程翻转180度来看。具体可参见图4所示,将所述中间CRC结果0xC6(二进制:00110110)的高低位翻转后得到0x63(二进制:01100011)作为被除数,将CRC8多项式x8+x6+1(二进制数101000001)高低位翻转后得到x8+x2+1(二进制数100000101)作为除数,进行CRC计算后得到0xEA(二进制:11101010),再将0xEA进行高低位翻转,得到最终CRC结果0x57(二进制01010111)。
[0053] 本实施例中其他未尽细节可参考本发明图2所示实施例中所述。
[0054] 所述CRC实现装置50可以由处理器实现,所述处理器包括NP,ASIC芯片,或可编程逻辑器件,例如FPGA。
[0055] 本发明实施例提供的CRC实现装置,通过对输入数据进行修正,可以保证MOD指示是固定的而不存在多种可能性,这样计算模块的数量不会随着数据位宽增加而增加,可以减少计算CRC时所需计算模块数。相比于现有技术中整体所需的计算资源随着数据位宽成几何级增长,本发明实施例提供的CRC实现装置,整体所需的计算资源基本上随数据位宽线性增加,可以显著地减少CRC计算所占用的资源,提高计算效率和资源利用率,从而提高所述CRC实现装置的性能。
[0056] 参见图6,为本发明实施例提供的网络设备结构示意图,所述网络设备60包括转发芯片601和通信接口602;
[0057] 所述转发芯片601和所述通信接口602通过总线或其他方式相互连接;
[0058] 所述转发芯片601包括如CRC实现装置6011;所述CRC实现装置6011的结构和实现原理可以参加图5所示的实施例。所述转发芯片601,用于接收从所述通信接口602收到的第一数据报文,从所述第一数据报文中获取净荷作为第一输入数据,从所述第一数据报文的FCS字段获取第一校验值;将所述第一输入数据提供给所述CRC实现装置6011,并从所述CRC装置6011获取所述第一输入数据对应的最终CRC结果;根据所述第一校验值和所述第一输入数据对应的最终CRC结果对所述第一数据报文进行校验。具体地,所述转发芯片601通过比较所述第一校验值与所述第一输入数据对应的最终CRC结果相同是否相同来验证所述第一数据报文传输的正确性。若所述第一校验值与所述第一输入数据对应的最终CRC结果相同,校验通过,表示所述第一数据报文传输正确;否则,校验不通过,表示所述第一数据报文传输出错。
[0059] 具体地,所述CRC实现装置如6011,包括:数据修正模块,用于对所述输入数据进行修正,得到修正数据;CRC计算模块,用于对所述修正数据进行CRC计算,得到中间CRC结果;结果修正模块,用于对所述中间CRC结果进行逆向修正,得到所述输入数据对应的最终CRC结果。
[0060] 所述数据修正模块,具体用于根据所述CRC实现装置6011的数据位宽,对所述输入数据进行修正,得到所述修正数据。具体地,在所述输入数据的长度不是所述CRC实现装置的数据位宽整数倍的情况下,所述数据修正模块根据所述CRC实现装置6011的数据位宽,在所述输入数据的尾部填充0得到所述修正数据,所述修正数据的长度为所述数据位宽的整数倍。具体示例可见上文,此处不再赘述。这样,进行CRC计算的数据长度固定,可以保证MOD指示是固定的而不存在多种可能性,从而可以减少计算模块的数量。
[0061] 所述转发芯片601还用于从第二数据报文中获取净荷作为第二输入数据,将所述第二输入数据提供给所述CRC实现装置6011,并从所述CRC装置6011获取所述第二输入数据对应的最终CRC结果;将所述第二输入数据对应的最终CRC结果作为校验值插入所述第二数据报文的FCS字段中,用于验证所述第二数据报文传输的正确性;并从所述通信接口602发送所述插入了校验值的数据报文。
[0062] 所述转发芯片601可以仅包括一个CRC实现装置6011,也可以包括多个CRC实现装置6011。具体地,所述转发芯片601包含的CRC实现装置6011的数量,由所述转发芯片601所支持的通信协议以及该通信协议使用的CRC多项式确定。例如,所述转发芯片601支持以太网(IEEE 802.3)和点对点协议(point-to-point protocol,简称PPP),其中,以太网使用CRC32多项式:x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1,而PPP使用CRC16多项式:x16+x12+x5+1,则所述转发芯片601包括两个CRC实现装置6011,一个使用上述CRC32多项式实现以太网报文的CRC计算,另一个使用上述CRC16多项式实现PPP报文的CRC计算。或者,又例如,所述转发芯片601支持PPP和蓝牙(Bluetooth),其中PPP和蓝牙(Bluetooth)均使用CRC16多项式:x16+x12+x5+1,则所述转发芯片601可以只包括一个CRC实现装置6011。
[0063] 本发明实施例中以所述网络设备包括一个所述转发芯片601为例,如图6所示,当然所述网络设备也可以包括多个所述转发芯片601,对此本发明实施例不做限定。本发明实施例提供的网络设备,在对收到的第一数据报文进行CRC计算,以便验证报文传输的正确性,或者对待发送的第二数据报文进行CRC计算,得到校验值以便插入FCS字段,使得对端验证报文传输的正确性时,通过对输入数据,即,第一数据报文或第二数据报文的净荷进行修正,可以保证MOD指示是固定的而不存在多种可能性,这样计算模块的数量不会随着数据位宽增加而增加,可以减少计算CRC时所需计算模块数。相比于现有技术中整体所需的计算资源随着数据位宽成几何级增长,本发明实施例提供的网络设备,整体所需的CRC计算资源基本上随数据位宽线性增加,可以大大减少CRC计算所占用的资源,提高计算效率和资源利用率,从而提高所述网络设备的性能。
[0064] 本领域技术人员可以理解的是,本发明实施例中仅示出了网络设备中与本发明相关的部分结构,还可以包括比图示更多的部件,或者不同的部件布置。
[0065] 本领域普通技术人员可以理解,实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于计算机可读存储介质中,上述存储介质可以是随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘或光盘等。
[0066] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

附图说明

[0024] 图1是现有技术中CRC计算消耗资源的示意图;
[0025] 图2是本发明实施例提供的一种CRC实现方法流程图;
[0026] 图3是本发明实施例提供的对修正数据进行CRC计算的过程示意图;
[0027] 图4是本发明实施例提供的对中间CRC结果进行逆向修正的过程示意图;
[0028] 图5是本发明实施例提供的一种CRC实现装置结构示意图;
[0029] 图6是本发明实施例提供的一种网络设备结构示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号