网络协议分析课程设计发现网络中的活动主机

网络协议分析课程设计发现网络中的活动主机

ID:37053964

大小:99.48 KB

页数:22页

时间:2019-05-16

网络协议分析课程设计发现网络中的活动主机_第1页
网络协议分析课程设计发现网络中的活动主机_第2页
网络协议分析课程设计发现网络中的活动主机_第3页
网络协议分析课程设计发现网络中的活动主机_第4页
网络协议分析课程设计发现网络中的活动主机_第5页
资源描述:

《网络协议分析课程设计发现网络中的活动主机》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、发现网络中的活动主机目录一设计目的1二设计要求1三概要设计23.1设计原理23.2数据结构设计23.1.1.IP头部数据结构23.1.2.ICMP头部数据结构33.3系统流程图33.3.1.主流程图33.3.2.子流程图5四详细设计64.1.ICMP报文分析64.2.程序功能分析74.2.1使用原始套接字74.2.2定义IP头部和ICMP头部数据结构74.2.3填充并发送请求类型的ICMP报文74.2.4解析数据包9五测试结果105.1.测试中遇到的问题105.2.测试结果10六.总结与体会11附录及源代码12发现网络中的活动主机一设计目的IP协议的优点是简单,但缺少差错

2、控制和查询机制,而网际控制报文协议(ICMP具有补充IP功能的作用。在网络管理中,常常要确定当前网络在红处于活动状态的主机,这时可以通过ICMP的回送和回送响应消息来完成这项工作。这课程设计的目的就是编制程序,利用ICMP数据包,发现网络中的活动主机,即ping消息的请求和应答。通过课程设计,熟悉ICMP报文的结构,对ICMP协议有更好的理解和认识,培养综合运用网络知识解决实际问题能力。二设计要求设计程序,其功能是发送ICMP数据包,以获取指定望段中的活动主机,并将结果显示在标准输出设备上程序的具体要求如下:1.用命令形式运行scanhost为程序名;start_ip为被

3、搜索网段;end_ip为被搜索网段的结束IP地址。如在命令行输入scanhost192.168.0.1192.168.0.1002.输出格式活动主机1的IP地址活动主机2的IP地址活动主机n的IP地址三概要设计3.1设计原理本程序使用的原始套接字生成ICMP请求/应答报文来进行活动主机的探查。这个程序使用的是回送请求和应答消息。程序的大致思想是把ICMP的数据报类型设置为回送请求,将它发送给网络上的一个IP地址,如果这个IP地址已经被占用的话,那么使用位于这个IP地址的主机上的TCP/IP软件就能接受到这个ICMP回送请求,从而返回一个ICMP回送请求(类型号为0)信息。

4、信息封装在一个IP包中,我们需要解析该IP包,从中找到ICMP数据信息,相反,如果这个IP地址没有人使用,那么发送的ICMP回送请求在设定的延时内就不可能得到响应。3.2数据结构设计3.1.1.IP头部数据结构typedefstructiphdr{unsignedintheadlen:4;//ip头长度unsignedintwersion:4;//ip版本号unsignedchartos;//服务类型unsignedshorttotallen;//ip包总长度unsignedshortid;//ip号unsignedshortflag;//标记unsignedchartt

5、l;//生存时间unsignedcharprot;//协议(UDPTCP)unsignedshortchecksum;//校验和unsignedintsourceip;//源ipunsignedintdestip;//目的ip}IpHeader;3.1.2.ICMP头部数据结构typedefstructicmphdr{BYTEtype;//icmp类型码,回送请求的类型码为8BYTEcode;//子类型码,保存与特定ICMP报文类型相关的细节信息USHORTchecksum;//校验和USHORTid;//ICMP报文id号USHORTseq;//ICMP数据报的序列号}

6、Icmpheader;3.3系统流程图3.3.1.主流程图(图1)开始构造原始套接字,并初始化建立并初始化木的主机的Sockaddr_in数据结构dest起始IP地址->start_ip结束IP地址->endip将start_ip填入到dest中start_ip<=endip?线程数目太多?创建一个线程并执行start_ip++还有线程在执行?结束等待一定时间图1NYYN3.3.2.子流程图(图2)开始填充ICMP数据报发送数据报接受数据报去掉IP头,获取ICMP信息数据包太短?不是回送响应?ID不符合?数据库中的IP地址结束图2YYYNNN四详细设计4.1.ICMP报文

7、分析ICMP是一种差错和控制报文协议,用于传输错误报告和控制信息。ICMP报文分为头部和数据部分。ICMP报文封装在IP数据报中传输。IP报头中的类型为1时,表示报文的数据部分为ICMP报文。虽然ICMP报文由IP报文传输,但是并不能认为ICMP是IP的上层协议,而是IP协议的有机补充。把ICMP报文放在IP包中,是要利用IP的转发功能。类型(TYPE)是一个字节,表示ICMP消息的类型。代码(CODE)也是一个字节,表示报文类型的下一步信息。校验和共有两个字节,提供对整个ICMP报文的校验和(和IP报文类型的进一步信息)。校

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

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

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