CN1494279A - 一种快速计算ip报文头校验和的方法 - Google Patents

一种快速计算ip报文头校验和的方法 Download PDF

Info

Publication number
CN1494279A
CN1494279A CNA021501130A CN02150113A CN1494279A CN 1494279 A CN1494279 A CN 1494279A CN A021501130 A CNA021501130 A CN A021501130A CN 02150113 A CN02150113 A CN 02150113A CN 1494279 A CN1494279 A CN 1494279A
Authority
CN
China
Prior art keywords
verification
message
former
heading
calculation check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA021501130A
Other languages
English (en)
Other versions
CN1300993C (zh
Inventor
怡 熊
熊怡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB021501130A priority Critical patent/CN1300993C/zh
Publication of CN1494279A publication Critical patent/CN1494279A/zh
Application granted granted Critical
Publication of CN1300993C publication Critical patent/CN1300993C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明涉及一种快速计算IP报文头校验和的方法,属数据通信技术领域。本方法首先计算IP报文头的原校验和,对接收到的IP报文进行转发,若转发过程中只对报文的生存时间进行了减1操作,则对该报文设置可快速计算校验和标志,否则相应的标志位置空;最后对可快速计算校验和标志的报文计算校验和。本发明方法,在计算效率上有了显著的提高,既可以在软件转发的系统中使用,同时也可以在硬件转发系统中使用。

Description

一种快速计算IP报文头校验和的方法
技术领域
本发明涉及一种快速计算IP报文头校验和的方法,属于数据通信技术领域。
背景技术
IP报文头中携带了校验和字段,用来保证IP报文穿过网络时的可靠性。转发设备在收到一个IP报文时,首先计算报文的校验和是否正确,并将校验和不正确的报文丢弃,在确定转发路径并对IP报文头进行必要的修改之后,转发设备将重新计算校验和。IP报文头校验和的计算时间与IP报文头的长度呈线性关系,对于最简单的IP报文头(IP报文头长为20字节),需要进行至少10次内存访问操作和加法运算。这个开销在软件转发的情况下对报文转发率的影响显得尤其重要。事实上,转发设备在绝大多数情况下只对IP报文头中的生存时间(Time To Live,以下简称TTL,IP报文头的第8个字节,当IP报文通过转发设备时,TTL域需要减1)进行了减1操作,而对报文头的其它域没有进行任何修改。
目前常用的IP报文头校验和计算方法就是将IP报文头看成一段连续的空间,然后按照从前到后的顺序,以两个字节为单位进行切分,得到一个短整数的序列,将这些数加起来,在考虑了进位的影响并进行取反操作之后,最后得到的短整数就是IP报文头的校验和。IP报文头的结构如图1所示。
以长度为20字节的IP报文头为例,校验和的计算过程如下:
首先,计算10个短整数的和:短整数和S=∑(Wi);
然后,分别拆分出高16位和低16位:短整数和的高16位=短整数和/65536;短整数和的低16位=短整数和mod 65536;
计算高16位和低16位的和,并将其存在临时变量T中:
临时变量T=短整数和的高16位+短整数和的低16位;
如果T大于65535,则减掉65535:
将临时变量T按16位取反,得到最终的校验和:校验和C=65535-临时变量T。
因为IP报文头中的第一个字节携带了IP的版本号,而IP的版本号为4(对目前普遍使用的IPV4而言),因此正确的IP报文头的第一个短整数W0永远大于0,短整数和的高16位+短整数和的低16位>0,临时变量T肯定不为0,所以,校验和C的取值范围为:0~65534
现有的技术方案是校验和计算的一个通用算法,它并没有考虑转发设备在绝大多数情况下只对IP报文头中的TTL进行减1操作,也不修改IP报文头其他域,而只是对IP报文头重新进行了一次校验和的计算,没有利用IP报文头中已经计算出的上次校验和的结果。从这个通用算法的基本流程不难看出,当IP报文头长度为2N个字节时,至少需要进行N次内存访问操作和加法运算。由于IP报文头的最小长度为20,所以N大于等于10,其运算量将是非常大的。
发明内容
本发明的目的是针对已有技术中计算校验和效率较低的缺点,提出一种快速计算IP报文头校验和的方法,以简化IP校验和的计算。
本发明提出的快速计算IP报文头校验和的方法,包括以下各步骤:
1、按照从前到后的顺序,对IP报文头以两个字节为单位进行切分,得到一个短整数的序列,原校验和为所有短整数之和;
2、对接收到的IP报文进行转发,若转发过程中只对报文的生存时间进行了减1操作,则对该报文设置可快速计算校验和标志,否则相应的标志位置空;
3、对上述设置了可快速计算校验和标志的报文,计算校验和。
上述方法中,计算校验和的公式为:
对于字节序为低字节在前,高字节在后的系统,若第一步中的原校验和<65534,则新校验和=原校验和+1,否则新校验和=原校验和-65534。
对于字节序为高字节在前,低字节在后的系统,若原校验和<65279,则新校验和=原校验和+256,否则新校验和=原校验和-65279。
上述方法中,对报文设置可快速计算校验和标志的方法,是在报文附属的转发控制块中设置标志位。
本发明提出的快速计算IP报文头校验和的方法,只需要进行一次内存访问和加法计算,相对于原有的通用计算方法在计算效率上有了显著的提高。考虑到转发设备在绝大多数情况下只对IP报文头中的TTL进行减1操作,因此这种优化方法具有实用性。从使用场合来看,本方法既可以在软件转发的系统中使用,也可以在硬件转发系统中使用。
附图说明
图1是IP报文头的结构示意图。
图2是TTL在IP头中的位置示意图。
具体实施方式
本发明提出的快速计算IP报文头校验和的方法,首先按照从前到后的顺序,对IP报文头以两个字节为单位进行切分,得到一个短整数的序列,W0,W1,……,Wn,原校验和为W0+W1+……+Wn;对接收到的IP报文进行转发,若转发过程中只对报文的生存时间进行了减1操作,则对该报文设置可快速计算校验和标志,否则相应的标志位置空;对上述设置了可快速计算校验和标志的报文,计算校验和。
计算校验和的公式为:
对于字节序为低字节在前,高字节在后的系统,若第一步中的原校验和<65534,则新校验和=原校验和+1,否则新校验和=原校验和-65534。
对于字节序为高字节在前,低字节在后的系统,若原校验和<65279,则新校验和=原校验和+256,否则新校验和=原校验和-65279。
上述对报文设置可快速计算校验和标志的方法,是在报文附属的转发控制块中设置标志位。
IP报文头中,TTL域的位置是固定的,如图2所示,位于IP报文头的第8个字节,恰好是校验和计算中的第五个短整数W4。从IP报文头校验和通用算法中,不难发现TTL域对校验和的贡献是固定的,与IP报文头的其他域无关,这样,仅当TTL的值发生变化时,可以很容易地根据TTL变化的情况及原校验和,计算出新的校验和。
下面是本发明提出的校验和计算公式的推导过程:
对于设置了可快速计算校验和标志的报文,只有TTL(W4)发生了变化,其他短整数的值不变,所以:
原短整数和Sold=∑(Wi)
新短整数和Snew=∑(Wi′),当i=4时,Wi不等于Wi′,对i的其他值,Wi=Wi
令转发处理前后TTL的差值sub=W4-W4′,即0<sub≤65535
则原短整数和Sold=新短整数和Snew+TTL的差值sub。
若原校验和Cold+TTL的差值sub<65535,则新校验和Cnew=原校验和Cold+TTL的差值sub;
否则新校验和Cnew=原校验和Cold+TTL的差值sub-65535;
系统存在两种不同的字节序:低字节在前、高字节在后和低字节在前、高字节在后,不同的字节序决定了TTL域在第五个短整数中是高位还是低位。
对于低字节在前,高字节在后的系统,TTL域处于第五个短整数中的低字节,当TTL减1时,第五个短整数的值也减1,即TTL的差值sub=1,代入上面推导出的公式,优化后的校验和计算公式为:
若原校验和Cold<65534,则新校验和Cnew=原校验和Cold+1,
否则新校验和Cnew=原校验和Cold-65534;
对于高字节在前,低字节在后系统,TTL域处于第五个短整数中的高字节,当TTL减1时,第五个短整数的值减少了256,即TTL的差值sub=1,代入上面推导出的公式,优化后的校验和计算公式为:
若原校验和Cold<65279,则新校验和Cnew=原校验和Cold+256;
否则新校验和Cnew=原校验和Cold-65279。

Claims (3)

1、一种快速计算IP报文头校验和的方法,其特征在于该方法包括以下各步骤:
(1)按照从前到后的顺序,对IP报文头以两个字节为单位进行切分,得到一个短整数的序列,原校验和为所有短整数之和;
(2)对接收到的IP报文进行转发,若转发过程中只对报文的生存时间进行了减1操作,则对该报文设置可快速计算校验和标志,否则相应的标志位置空;
(3)对上述设置了可快速计算校验和标志的报文,计算校验和。
2、如权利要求1所述的方法,其特征在于第三步中,计算校验和的公式为:
对于字节序为低字节在前,高字节在后的系统,若第一步中的原校验和<65534,则新校验和=原校验和+1,否则新校验和=原校验和-65534;
对于字节序为高字节在前,低字节在后的系统,若原校验和<65279,则新校验和=原校验和+256,否则新校验和=原校验和-65279。
3、如权利要求1所述的方法,其特征在于第二步中,对报文设置可快速计算校验和标志的方法,是在报文附属的转发控制块中设置标志位。
CNB021501130A 2002-11-02 2002-11-02 一种快速计算ip报文头校验和的方法 Expired - Fee Related CN1300993C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB021501130A CN1300993C (zh) 2002-11-02 2002-11-02 一种快速计算ip报文头校验和的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB021501130A CN1300993C (zh) 2002-11-02 2002-11-02 一种快速计算ip报文头校验和的方法

Publications (2)

Publication Number Publication Date
CN1494279A true CN1494279A (zh) 2004-05-05
CN1300993C CN1300993C (zh) 2007-02-14

Family

ID=34233871

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021501130A Expired - Fee Related CN1300993C (zh) 2002-11-02 2002-11-02 一种快速计算ip报文头校验和的方法

Country Status (1)

Country Link
CN (1) CN1300993C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904685A (zh) * 2012-09-29 2013-01-30 杭州华三通信技术有限公司 一种硬件表项校验错误的处理方法及装置
CN104010050A (zh) * 2014-05-30 2014-08-27 北京航空航天大学 基于中间件实现网关napt功能的方法及装置
CN113973110A (zh) * 2021-10-25 2022-01-25 北京奇艺世纪科技有限公司 一种报文生成方法、装置及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701316A (en) * 1995-08-31 1997-12-23 Unisys Corporation Method for generating an internet protocol suite checksum in a single macro instruction
US5815516A (en) * 1996-04-05 1998-09-29 International Business Machines Corporation Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation
KR0183322B1 (ko) * 1996-11-15 1999-05-15 양승택 아이피/아이씨엠피 패킷 체크섬 생성기
US6643821B2 (en) * 2000-11-30 2003-11-04 Stmicroelectronics, Inc. Method and device for computing incremental checksums

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904685A (zh) * 2012-09-29 2013-01-30 杭州华三通信技术有限公司 一种硬件表项校验错误的处理方法及装置
CN102904685B (zh) * 2012-09-29 2016-04-27 杭州华三通信技术有限公司 一种硬件表项校验错误的处理方法及装置
CN104010050A (zh) * 2014-05-30 2014-08-27 北京航空航天大学 基于中间件实现网关napt功能的方法及装置
CN113973110A (zh) * 2021-10-25 2022-01-25 北京奇艺世纪科技有限公司 一种报文生成方法、装置及电子设备
CN113973110B (zh) * 2021-10-25 2024-03-15 北京奇艺世纪科技有限公司 一种报文生成方法、装置及电子设备

Also Published As

Publication number Publication date
CN1300993C (zh) 2007-02-14

Similar Documents

Publication Publication Date Title
US7523171B2 (en) Multidimensional hashed tree based URL matching engine using progressive hashing
US8156071B2 (en) Byte-level file differencing and updating algorithms
CN1163047C (zh) 发送/接收无线数据的设备及其方法
US8495093B2 (en) Multiway trie data structure that dynamically adjusts node sizes in a manner that reduces memory footprint and improves access speed
US8458354B2 (en) Multi-pattern matching in compressed communication traffic
CN1227816C (zh) 有效的格子结构状态量度归一化
CN109474281A (zh) 数据编码、解码方法及装置
CN1300993C (zh) 一种快速计算ip报文头校验和的方法
US6728930B2 (en) Method for computing the internet checksum
EP2462696A1 (en) Compression of bitmaps and values
CN1838666A (zh) 一种跨操作系统平台的字节序转换方法
CN1203439C (zh) 多媒体数据加密方法
CN1243431C (zh) 宽带网络通信产品的通用路由平台命令行的解析方法
CN115328525A (zh) 一种差分包的生成方法
KR100281321B1 (ko) 적응적인 산술 부호화 및 그 복호화 방법
US7751486B2 (en) Systems and methods for transmitting data
CN1179662A (zh) 模式匹配装置
CN1364341A (zh) 算术编码信息信号的算术译码
CN1250022C (zh) 数据通信中的可靠帧同步方法
CN112559465A (zh) 一种日志压缩方法、装置、电子设备及存储介质
RU2807474C1 (ru) Способ сжатия данных последовательности генома
CN100341378C (zh) 一种上行专用物理信道的搜索方法
CN113569103B (zh) 煤化工行业技术方案自匹配方法、电子设备及存储介质
US9106864B2 (en) Multi-bit error diffusion
US8990173B2 (en) Method and apparatus for selecting an optimal delete-safe compression method on list of delta encoded integers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070214

Termination date: 20151102

EXPY Termination of patent right or utility model