1、计算机网络课程设计计算机网络课程设计 一、一、设计内容及设计内容及设计要求设计要求 1.1 课程设计内容:课程设计内容: 利用 ICMP 数据包, 通过使用 ICMP 的回送和回送响应消息来确定当前网络中处于活动 状态的主机, 即 ping 消息的请求和应答, 将发送的 ICMP 的数据包类型设置为回送请求 (类 型号为 8) , 并显示在标准输出上。 用命令行形式运行: scanhost Start_IP End_IP, 其中 scanhost 为程序名;Start_IP 为被搜索网段的开始 IP;End_IP 为被搜索网段的结束 IP 地址。 1.2 课程设计目的:课程设计目的: IP 协
2、议的优点是简单,但缺少差错控制和查询机制,而网际控制报文协议(ICMP 具有 补充 IP 功能的作用。在网络管理中,常常要确定当前网络在红处于活动状态的主机,这时 可以通过 ICMP 的回送和回送响应消息来完成这项工作。这课程设计的目的就是编制程序, 利用 ICMP 数据包,发现网络中的活动主机,即 ping 消息的请求和应答。通过课程设计,熟 悉 ICMP 报文的结构, 对 ICMP 协议有更好的理解和认识,培养综合运用网络知识解决实际 问题能力。 1.3 课程设计要求:课程设计要求: 设计程序,其功能是发送 ICMP 数据包,以获取指定望段中的活动主机,并将结果显示 在标准输出设备上程序的
3、具体要求如下: 1用命令形式运行 scanhost 为程序名;start_ip 为被搜索网段;end_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 由于服务类型(