1、计算机网络课程设计 一、 设计内容及 设计要求 1.1 课程设计内容: 利用 ICMP 数据包,通过使用 ICMP 的回送和回送响应消息来确定当前网络中处于活动状态的主机,即 ping 消息的请求和应答,将发送的 ICMP 的数据包类型设置为回送请求(类型号为 8),并显示在标准输出上。用命令行形式运行: scanhost Start_IP End_IP,其中 scanhost为程序名; Start_IP 为被搜索网段的开始 IP; End_IP 为被搜索网段的结束 IP 地址。 1.2 课程设计目的: IP 协议的优点是简单,但缺少差错控制和查询机制 ,而网际控制报文协议( ICMP 具有补
2、充 IP 功能的作用。在网络管理中,常常要确定当前网络在红处于活动状态的主机,这时可以通过 ICMP 的回送和回送响应消息来完成这项工作。这课程设计的目的就是编制程序,利用 ICMP 数据包,发现网络中的活动主机 ,即 ping 消息的请求和应答。通过课程设计,熟悉 ICMP 报文的结构,对 ICMP 协议有更好的理解和认识,培养综合运用网络知识解决实际问题能力。 1.3 课程设计要求: 设计程序,其功能是发送 ICMP 数据包,以获取指定望段中的活动主机,并将结果显示在标准输出设备上程序的具体要求如下 : 1用命令形式运行 scanhost 为程序名; start_ip 为被搜索网段; en
3、d_ip 为被搜索网段的结束 IP 地址。如在命令行输入 scanhost 192.168.0.1 192.168.0.100 2输出格式 活动主机 1 的 IP 地址 活动主机 2 的 IP 地址 活动主机 n 的 IP 地址 二、 总体设计 2.1 设计原理 首先对 ICMP 报文的格式有一定的了解, ICMP 报文是在 IP 数据报内部传输的,其结构如图所示: IP 数据报 IP 首部 ICMP 报文 ICMP 报文的格式如图所示 : 0 7 8 15 16 31(位) 类型字段 代码字段 校验和字段 (不同类型和代码有不同内容) 所有报文的前 4 个字节都是一样的,但是其它字节则互不相
4、同。其中类型字段可以有15 个不同的值,以描述特定类型的 ICMP 报文,某些 ICMP 报文还使用代码字段的值来进一步描述不用的条件。按验和字段为 2 字节,校验的范围是整个 ICMP 报文。检验和是必须的,其计算方法与 IP 协议头部 校验和的计算方法一样。 各种类型的 ICMP 报文如图所示( ICMP 报文类型),不同类型由报文中的类型字段和代码字段来共同决定。 类 型 代 码 描 述 0 0 回送响应( PING 应答) 3 目的不可达 0 网络不可达 1 主机不可达 2 协议不可达 3 端口不可达 4 需要进行分片但设置了禁止分片比特 5 源主机选择路由失败 6 无法识别目的网络 7 无法识别目的主机 8 源主机被隔离 9 目的网络被禁止 10 目的主机被禁止 11 由于服务类型( TOS),网络不可达 12 由于服务类型( TOS),主机不可达 13 由于过滤,通信被强行禁止 14 主机越权 15 优先权终止生效