ip首部校验和算法

ip首部校验和算法

ID:40565542

大小:282.50 KB

页数:16页

时间:2019-08-04

ip首部校验和算法_第1页
ip首部校验和算法_第2页
ip首部校验和算法_第3页
ip首部校验和算法_第4页
ip首部校验和算法_第5页
资源描述:

《ip首部校验和算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告(3)——首部检验和的编程实现一、实验人员二、实验内容和要求(一)实验内容编写一个计算IP报文中首部校验和的程序,并且通过抓包随机选择一个数据报,提取出IP报文首部部分,根据程序计算出校验和的计算值,与报文中检验和对比,检验程序的正确性,计算结果为0保留数据报,否则丢弃。(二)实验要求1.掌握IP数据报的结构,通过wireshark抓包随机选择一个TCP数据报,提取IP报部分,并找到首部。2.学习理解并运用IP首部校验和的计算算法,通过程序实现。三、实验环境Wireshark抓包工具Microsoftvisualstudio2010C#四、实验过程与结果分析(一)实验过程1

2、.利用wireshark抓包分析包格式并提取IP首部(1)IP数据报格式如图1,IP数据报的首部为前20字节。因为首部校验和的计算只需要IP数据报的首部20个字节即可,数据部分不参加运算。所以只需要把IP数据包中的前20个16进制数提取出来作为运算的数据即可。图1IP数据包格式(2)抓包得到的数据报图2TCP数据报如图2,通过wireshark抓包,随机选择一个TCP数据报,根据TCP数据报的格式,我们分析数据报内容可以知道:首先开始6个字节为目的mac地址,后面6个字节为目的mac地址,后面2个字节为协议类型为0800,是IP协议包。所以再后面的20个字节就是IP数据报的首部部分

3、。也就是实验所需要的数据。IP首部为:450000280000400034060ab73baf84710a687191并且,通过包的计算的校验和结果,此包被留下,校验和的值为0。也是座位后面对设计程序计算得到结果的一个验证。2.设计计算首部校验和的的算法(1)程序设计的函数模块关系输入IP首部stringIP0转化为二进制字符串并划分为10个字段IP1~IP10,函数Getziduan()求字段反码,函数FanMa()反码求和函数FanSum();FanSum0();求出由上一布得到的结果的反码,输出结果(2)算法流程首先将IP首部即40位16进制的字符串转化为二进制字符串,然后以

4、每16位为一个字段,分为10个二进制字段。存放在IP1~IP10字符串中;然后求出每个字段的反码,根据IP数据报格式,可以知道IP6存放的就是校验和,将校验和IP6置位全0;利用求反码和方法FanMa(),求出10个字段反码相加后的值stringsum,然后对字符串sum取反,得到发送时所用的校验码。假设接收端的IP首部与发送的是相同的,那么其10个字段的利用反码和算法求出的值应为0。算法的流程与在发送端求出发送的校验码过程相同。(3)几个主要的方法将16进制转化为二进制的字符串操作:publicstaticstringChange(chara){switch(a){case'0'

5、:return"0000";case'1':return"0001";case'2':return"0010";case'3':return"0011";case'4':return"0100";case'5':return"0101";case'6':return"0110";case'7':return"0111";case'8':return"1000";case'9':return"1001";case'a':return"1010";case'b':return"1011";case'c':return"1100";case'd':return"1101";case'e'

6、:return"1110";case'f':return"1111";default:break;}return"xxxx";}求各字段的反码:publicstaticstringFanMa(stringzd){stringbuff0="";chara;for(inti=0;i

7、gip4,stringip5,stringip6,stringip7,stringip8,stringip9,stringip10,intlen){stringbuff="";buff=FanSum0(ip1,ip2,len);buff=FanSum0(buff,ip3,len);buff=FanSum0(buff,ip4,len);buff=FanSum0(buff,ip5,len);buff=FanSum0(buff,ip6,len);buff=FanSum0(b

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。