- 61
- 0
- 约7.32千字
- 约 16页
- 2017-09-11 发布于湖北
- 举报
网络使用ICMP发现局域网内活动主机
天津师范大学
Tianjin University of Education
网络课程设计
所在学院: 信息技术工程学院
专 业: 计算机科学与技术
学 号:
学生姓名:
指导教师:
二〇一三年六月
信息技术工程学院网络课程设计
使用ICMP发现局域网内活动主机
学生姓名:肖磊
指导教师:黄彦 副教授
20 13 年 6月
摘 要
本程序使用原始套接字生成ICMP报文来进行活动主机的探查。这个程序使用的是回送请求与应答消息。程序的大致思想是把ICMP的数据包类型设置为回送请求,将它发送给网络上的一个IP地址,如果这个IP地址已经被占用的话,那幺使用位于这个IP地址的主机上的TCP/IP软件就能够接收到这个ICMP回送请求,从而返回一个ICMP回送响应(类型号为0)信息。信息封装在一个IP包中,我们需要解析该IP包,从中找到ICMP数据信息。相反,如果这个IP地址没有人使用,那幺发送的ICMP回送请求在设定的延时内就不可能得到响应。
在初始化原始套接字之后,本程序就要开始在一个IP网段内寻找活动主机。因为要寻找的主机可能很多,为节省时间可以采用多线程编程。
关键词: ICMP协议,Visual c++ 6.0目 录
引 言 1
1 课程设计相关技术 2
1.1 ICMP报文格式及类型 2
1.2实验平台介绍 4
2.1 使用原始套接字 4
2.2 定义IP头部和ICMP头部的数据结构 5
2.3 填充并发送回送请求类型的ICMP报文 6
2.4程序流程图 8
结论 10
参考文献 11
致谢 12
引 言
IP协议的优点是简洁,但缺少差错控制和查询机制,而网际控制报文协议(ICMP)具有补充IP功能的作用。在网络管理中,常常要确定当前网络中处于活动状态的主机,这时可以通过使用ICMP的回送和回送响应消息来完成这项工作。本课程设计的目的就是编制程序,利用ICMP数据包,发现指定网段中的活动主机。通过课程设计,更加熟悉ICMP报文的结构,对ICMP协议有更好的理解和认识。。
1 课程设计相关技术
1.1 ICMP报文格式及类型
编制程序前首先要对ICMP报文的格式有一定的了解,ICMP报文是在IP数据报内部传输的,其结构如图10-1所示。
IP数据报
IP首部 ICMP报文
图10-1 ICMP封装在IP内部
0 7 8 15 16 31(位)
类型字段 代码字段 校验和字段 (不同类型和代码有不同内容) 图10-2 ICMP报文
ICMP报文的格式如图10-2所示。所有报文的前4个字节都是一样的,但是其它字节则互不相同。其中类型字段可以有15个不同的值,以描述特定类型的ICMP报文,某些ICMP报文还使用代码字段的值来进一步描述不用的条件。按验和字段为2字节,校验的范围是整个ICMP报文。检验和是必须的,其计算方法与IP协议头部校验和的计算方法一样。
各种类型的ICMP报文如图10-3所示(ICMP报文类型),不同类型由报文中的类型字段和代码字段来共同决定。
类 型 代 码 描 述 0 0 回送响应(PING应答) 目的不可达
网络不可达
主机不可达
协议不可达
端口不可达
需要进行分片但设置了禁止分片比特
源主机选择路由失败
无法识别目的网络
无法识别目的主机
源主机被隔离
目的网络被禁止
目的主机被禁止
由于服务类型(TOS),网络不可达
由于服务类型(TOS),主机不可达
由于过滤,通信被强行禁止
主机越权
优先权终止生效 4 0 源端被关闭(基本流控制) 5 重定向
对网络重定向
对主机重定向
对服务类型和网络重定向
对服务类型和主机重定向 8 0 回送请求(PING请求) 9 0 路由器通告
10 0
原创力文档

文档评论(0)