- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机网络》课程设计格式1
计算机网络课程设计报告
题 目: 发现网络中的活动主机
学生姓名:
学 号:
专业班级: -------------------------------
同组姓名:
指导教师:
设计时间: 2010年上学期第16周
指导老师意见:
评定成绩: 签名:
日期: 年 月 日
目录
一, 课程设计的目的和意义 1
二,课程设计的内容和要求 2
三, 课程设计的原理 2
四,课程设计的过程 2
4.1ICMP报文分析 2
4.2程序功能分析 3
五,程序流程图 6
图6 子线程流程图 8
六,程序运行结果 8
七,心得体会 9
八,附录 10
课程设计的目的和意义
IP协议的优点是简洁,但缺少差错控制和查询机制,而网络控制报协议具有补充IP功能的作用。在网络管理中,常常要确定当前网络中处于活动状态的主机,这时可以通过使用ICMP数据包的回送相应消息来完成这项工作。本课程设计的目的就是编制程序,利用ICMP数据包,发现指定网段中的活动主机。通过课程设计,使学生更加熟悉ICMP报文的结构,对ICMP协议有更好的理解和认识。
二,课程设计的内容和要求
设计程序,其功能是发送ICMP数据包,以获取指定网段中的活动主机,并将结果显示在标准输出上。
程序的具体要求如下:
1)用命令行形式运行:scanhost Start_IP End_IP
其中scanhost为程序名;Start_IP为被搜索网段的开始IP地址;End_IP
为被搜索网段的结束IP地址。
2)输出格式为:
活动主机1
活动主机2
……
课程设计的原理
本程序使用的原始套接字生成ICMP请求或应答报文来进行活动主机的探查。这个程序使用的是回送请求和应答消息。程序的大致思想是把ICMP的数据报类型设置为回送请求,将它发送给网络的一个IP地址,如果这个IP地址已经被占用的话,那么使用位于这个IP地址的主机上的TCP/IP软件就能接受到这个ICMP回送请求,从而返回到一个ICMP会送请求中找到ICMP数据信息,相反,如果这个IP地址没有人使用,那么发送的ICMP回送请求在设定的延时内疚不可能得到响应。
四,课程设计的过程
4.1ICMP报文分析
ICMP是一种差错和控制报文协议,用于传输错误报告和控制信息。
ICMP报文分为头部和数据部分。ICMP报文封装在IP数据报文传输。IP报头中类型为1时,表示报文的数据部分为ICMP报文。虽然ICMP报文由IP报文传输,但是并不能认为ICMP是IP的上层协议,而是IP协议的有机补充。把ICMP报文放在IP包中,是要利用IP的转发功能。
类型(TYPE)是一个字节,表示ICMP消息的类型。代码(CODE)也是一个字节,表示报文类型的下一步信息。校验和共有两个字节,提供对整个ICMP报文的校验和。按照协议的功能来分,ICMP报文可以分为:
(1)ICMP差错报文
包括目的不可达报告,超时报告,参数出错报告。
(2)ICMP控制报文
包括拥塞控制和源抑制报文,路由控制和重定向报文。
(3)ICMP测试报文
包括请求应答报文,时截请求应答报文。
本课程设计就是使用ICMP请求/应答报文来测试目的主机是否存在,请求者想某特定的主机发送请求,其中包含任选的数据。目的主机收到请求后,发送应答报文。在同一时刻,一台机器可以同时向多台主机发送请求报文。
ICMP报文格式如图3所示,ICMP回送报文格式如下图4所示:
图3ICMP报文格式
图4ICMP回应报文格式
4.2程序功能分析
在初始化原始套接字之后,本程序就要开始在一个IP网段内寻找活动主机。因为要寻找活动的主机可能很多,为节省时间可以采用多线程编程。结合核心代码对程序的具体进行分析。
4.2.1使用原始套接字
为了实现发送/监听ICMP报文,必须使用原始套接字,创建原始套接字的代码如下:SOCKET sockraw;
Sockraw=WSASocket(AF-INET,SOCK—RAW,IPPROTO—ICMP,NULL,0,wsa-flag-overlapped);
在WSASocket函数中,我们使用IPPROTO-ICMP表示接收ICMP数据包,为了使用发送接收超时设置,必须将标志位置
文档评论(0)