


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、IP 首部校验算法IP 首部校验算法刘派,北京邮电大学软件学院,北京 100876, 摘要,协议为提高数据传输效率简化了协议舍弃了许多为提供可靠 性所需要的工作 如建立连接、维护连接、拆除连接、确认应 IP , ( 答、时间片处理等。其唯一的正确性 检验即依靠头部校验和以保证 头部数据的完整性。为了研究首部校验算法,查看了相关 的),IPRFC文档并利用wireshark 11具进行了抓包,并对抓包取得的数据进行了计算验证。研究发现了一些算法存在一定的问题并对它的改进算法进行了研 究。关键词, IP, 头部校验和,算法,验证 中图分类号,文献标识码,文章编号, TP393 A 10093044
2、 (2010)19-5194-03IP Header ChecksumAlgorithm LIU Pai(Schoolof Software Engineerin,Beijingg Universityof PostsandTelecommunications, Beijing 100876, China) Abstract : In order to increasethe efficiencyof data transmission, IP simplifie s the protocolby not providinga reliable communication fa - cilit
3、y. There areno acknowledgments either end -to -end or hop -by -hop. There isno error control for data, only a header checksum provides a verification that the information usedin processing internet datagram has been transmitted correctly. There no retransmi are s一 sions ? There no is flow contro1.Th
4、e RFC documents give the algorithms usedto computethe checksum andthewireshark softwarepro vides the fun cti on of catch ing thelP packetsThis data can beto usedverify the algorithms? The research also showsthere isin athe bug algorithm and can be overcomed optimised? andKey words: internet protocol
5、: header checksum:algorithm: verification!P Headt-1 ip首部如图1所示,ip数据报首部的固定部分中的各字段,版本占位,指协议的版本。1)4 IP首部长度占位,可表示最大十进制数值是。2) 4 153) 区分服务占8位,用来获得更好地服务。总长度总长度是指首部和数据之和的长度。4) 标识占16位,IP软件在存储器中维持一个计数器,每产 生一个数据报,计数器 就加1,并将该值赋给标识字段。 标志占位,但目前只有两位有意义。还有分片 5)3 MF = 1不能分片DF二1图片偏移占位。片偏移指出较长的分组在 分片后,某1 6) 13片在分组中的相对位
6、置。7)生存时间占 8 位,表明数据报在网络中的寿命协议占位,指出此数据报携带的数据时使用何种协议 8) 8首部检验和占位。这个字段只检验数据报的首部但不包括数据部分 9)16源地址位 10) 32目的地址位 11) 322 IP 校验和算法2. 1 发送方将校验和字段置为然后将包头按比特分成多个单元如包头长度不是比 特的倍数则用 比特填充到比特的 1) 0, IP 16 ,16 ,0 16 倍数;2)对各个单元采用反码加法运算 ( 即高位溢出位会加到低位,通常的补码运算 是直 接丢掉溢出的高位 ) ,将得到的和的反码填入校验和字段;收稿日期, 2010-04-26作者简介,刘派,北京邮电大学
7、软件学院级在读。 1989-07第卷第期年 月 6 19 (2010 7 ) 不技术 Computer Knowledge and Technology 电 脑知识发送数据包。 3)2. 2 接收方1)将IP包头按16比特分成多个单元,如包头长度不是16比特的倍数,则用 0比特填充到 16比特的倍数 ;到的和对各个单元采用反码加法运算检查得到的和是否符合是全有的实现可能对得 会取反码然后判断最终值是不是全 2) ,1(,0);3)如果是全 1则进行下步处理,否则意味着包已变化仍而丢弃之.需要强调的是反码和是采用高位溢出加到低位的,如3比特的反 码和运 算:100b+101b=010b因(为10
8、0b+101b=1001b高,位溢出1,其应该加到低位,即 001b+lb igj( 位溢出位)=010b) 2. 3 校验和源码in 6 register long sum 二 0;while( count> 1 ) sum+= * (unsigned short) addr+;count-二 2;i f(count0 ) sum+= ? (unsigned char*) addr; while (su m?16) sum二(sum&Oxffff) + (sum? 16) ;checksum 二 'sum;第1个while循环是做普通加法,因为IP包头和TCP整个报文段
9、比较 短(没达到 2“ 17数量级),所以不可能导致4字节的sum溢出.紧接着的一 个判断语句是为了能 处理输入数据是奇数个字节的这种情况 ?再接着的数据循环是实现反码算法,山反码和的高位溢出加到低位的性质,可 得到32位的数据的高位比特移位 16比特, 再加上原来的低16比特,不影响最终结果这个等价运算,因为sum的最初值(刚开始循环时)可能很尢所以这 个等价运算需循环进行,直到sum的高比特(16比特以上)全为0.对于32位的sum,事实上这个运算循环至多只有两轮,所以也有程序直接用两 条” sum = (sum&4PJUU 0101 QOKMH!IIO LV uwu loir :
10、iw nil in 侵: mw iK(io uim- Udo mooQ3U?Uiir?-伽 uin OOftjihi uOi7H0 .串計 nnn ion psoq acca因此同且丨吧500別?吧 T8fi?7*5Tih rwfc nnlt奇他】皿出 ?, Wil16-iv.oim ollh utcu nilo或虑砸育|山 WOI mi IIXHfnOxffff ) + (sum? 16);"代替了整个循环.最后,对和取反返回。2.4校验和算法特性1)奇、偶字节可仅意排列组合,2)字节顺序独立,并行计算。3)2.5米取反码而不用补码的原因1) 反码和的溢出有后效性(蔓延性)反码和将
11、高位溢出加到低位,导致这个溢出会对后面操作有永久影响,有后 效性;而补码和直接将高位和溢出,导致这个溢出对后面的操作再无影响, 无后效性2) 反码校验无需考虑字节序正因为反码和的溢出有后效性导致大端字节序和小端字节序,(big-endian )对同一数据序列如两个比特的序列产生的校验和也只是字(little-en dia n) (16 )节序 相反,而补码和因为将溢出丢掉了,不同字节序之间的校验和大不相没什么联系。2. 6 wireshark 抓包验证算法如图 2 所示。 3增量式修改校验和的加速算法图 2 在实际的应用中,存在对收到的数据包进行修改若干个地方,并回送 至发 送方戒者转发的情况
12、。此时需要重新计算数据包的检验和。最常见的可能 就是将收 到的数据包的字段减,并转发的情况。如 TTL 1 果久旧按照 传统的计算检验和的方式 进行计算,特别是当数据包长度很大时,为了重新 计算校验和而将整个数据包的数据遍 历一边,反码求和,效率肯定比较低。 为提高转发效率,要求重校验算法尽可能快,故 出现了如下所示的重校验算法,UpdateTTL(struct ip_hdr*ipptr, unsigned charn) unsigned longsum;unsigned short old;old = ntohs(*(unsigned short*)&ipptr- ttl);ippt
13、r->ttl 一二 n;sum= old + ('ntohs(*(unsigned short*)&ipptr ->ttl) & Oxffff);sum+= ntohs(ipptr - Checksum);sum= (sum& Oxffff) + (sum?16);ipptr->Checksum= htons (sum+ (sum ?16) ;s 算法的实现依据是这样的 ?假设包头原校验和为C, 改变的字段的原始值是 m, 更改后的值是乩设 C'为重校验和,RFC1017中给岀C'二(C+(- m)+m, )二 C+(m -mJ
14、 ) 但山于该式不是更新的校验和的反码,而且反码减法运算在机器内较难实现,于是RFC1141给出s适合在机器内运算的式子 C+m+m'该等价关系的成 立基于反码的运算性质 :取反运算满足结合律,按位取反运算不符号取反 ( 及相、反数 ) 是等价的(即C二-C)。4 可能存在的问题及其解决4. 1 存在的问题RFC1071和1141所提出的增量式修改校验和有一个BUG就是按照公式计算 新的检验和时,有可能出现计算结果为OXFFFF本栏目责仅编辑,冯蕾网络通讯及安全5195第卷第期年 月 6 19 (2010 7 ) 不技术 Computer Knowledge andTechnology
15、 电脑知识的情况,则意味着数据包中所有部分相加的结果为。这是不可能的。 0x0000例如,一个IP包头16位域m二0x5555变为m'二 0x3285.包头其它部分反 码和为0xCD7A.HC旧的检验和HC'新的检验和某个域字修改前的值 m (16- bit )m'某个域修改后的值包头校验和是:"HC 二(0XCD7A+ 0x5555) =0x22D0= 0xDD2F “HC'=(0xCD7A+ 0x3285) =0xFFFF= 0x0000 如用 RFC1141 给出的公式 C'二 C +m + m' "HC' 二
16、HC + m + m' 二 0xDD2F+ 0x5555+ 0x3285=OxFFFF不不用加速算法讣算出的结果不一样4.2 问题解决1) RFC1141里规定,对于更新了的头校验值为 +0时,它会改为-0,因为它假定反 码有一个分布式的属性,当结果为0时它不会一直保持 不变、2) RFC1624里假定上面的属性成立仍而避免了这个可能出现的问题,正 确的等式如下 HC' =(C + (-m) + m' )、hc,=(c + (-+ m) = (0x22D0+ 0x555 口 + 0x3285)二 OxFFFF二 0x0000参考文献,1 一 Borman D, Rese
17、arch C, PartridgeC. Computing the InternetchecksumES. RFC1071, 1988. 2 Mallory T, KullbergA. Incrementalupdatingof the Internet checksumES. RFC1141, 1990.3_ Rijsinghani A. Computationof the Internet checksumvia increments1 update RFC1624, 1994. 4 谢希仁.计算机网络M.5版.北京:电子 工业出版社,2008.,上接第页 ,5185%><%
18、response, write'' 今 日 访 问 "& dayhit &"次,本 周 访 问"&weekhit& 次,总访问 "& Mt &"次"%>要确定两次访问是否在一个星期内,首先确定两个日期是否同年佯、是 否同一月 佯,若是同一月,则需要判断两个日期差的时间是否七天之内, 若在七天之内,则可以 更改周访问次数,若不在同一月佯,则要判 断两个月是否跨年度的相邻两个月,并判断 是否同一周内的时间。若同 一周内,“”字段的值增,否则重新开始一周的统计。 weekhitl3 总结个人网站建设中,需要知识的积累
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年紫外激光传输光纤合作协议书
- 2025年医疗仪器设备制造项目发展计划
- 教育与商业的融合以大数据分析支持学生个性化发展
- 家庭教育心理学塑造孩子健康人格的技巧
- 2025届安徽省 马鞍山中加双语学校高二物理第二学期期末监测模拟试题含解析
- 教育技术与家长参与的个性化学习模式研究
- 智慧医疗的AI助手智能辅导系统的应用与挑战
- 企业人才培养中的信息技术应用分析
- 大数据在提升学生综合素质评价中的应用
- 2025届陕西省旬阳中学物理高二下期末检测试题含解析
- 高考英语3000词默写版(一)
- 中国氢燃料电池用铂催化剂项目商业计划书
- 2025届内蒙古自治区海勃湾区七年级数学第二学期期末检测试题含解析
- 全氢聚硅氮烷转化为氧化硅的机理剖析与多元应用探索
- 物业项目合伙协议书
- 2025年河南省南阳市方城县多校中考二模 化学试题(含答案)
- 国家职业标准 6-11-01-03 化工总控工S (2025年版)
- 入团考试高效复习秘籍试题及答案
- JT-T 600-2025 公路用防腐蚀粉末涂料及涂层
- 2025-2030中国先进陶瓷材料行业市场发展趋势与前景展望战略研究报告
- 临床成人床旁心电监测护理规程
评论
0/150
提交评论