1、 课课 程程 设设 计计 课程名称_计算机网络_ 题目名称_Ping 程序设计与实现 学生学院_计算机学院_ 专业班级_08 计科 4 班_ 学 号_ _ 2011 年 1 月 8 日 1 一、一、 课程设计目的课程设计目的 本次课程设计的目的旨在通过网络相关程序的编写,使我们能深入理解 TCP/IP 协议机制,以及 初步掌握基于 Winsocket 的网络编程技术。 同时巩固相关的理论知识, 为以后程序开发打下良好而又坚 实的基础。 二、知识准备二、知识准备 1 1、ICMPICMP 协议协议 互联网控制信息协议(Internet CONTROL Message Protocol),用于错误
2、报告和调试。该协议是 TCP/IP 协议集中的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括 报告错误、交换受限控制和状态信息等。当遇到 IP 数据无法访问目标、IP 路由器无法按当前的传输速 率转发数据包等情况时,会自动发送 ICMP 消息。我们可以通过 Ping 命令发送 ICMP 回应请求消息并记 录收到 ICMP 回应回复消息,通过这些消息来对网络或主机的故障提供参考依据。 常见 ICMP 报文有响应请求报文,目标不可到达、源抑制和超时报文,此外还有时间戳报文。 2 2、P Pinging 工作原理工作原理 Ping 的原理就是首先建立通道,然后发送包,对方接
3、受后返回信息,这个包至少包括以下内容: 发送的时候,包的内容包括对方的 ip 地址和自己的地址,还有序列数;回送的时候包括双方地址,还 有时间等,主要是接受方在都是在操作系统内核里做好的,时刻在监听。Ping 程序生成一个 icmp“回 送请求” ,将其发送给目的主机。通过检测是否可以收到目标主机的应答,便可以知道网络的连通性。 (3) Tracert 工作原理 透过向目标发送不同 IP 生存时间 (TTL) 值的 ICMP 回应数据包,Tracert 诊断程序确定到目标 所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上 的 TTL 减为 0 时
4、,路由器应该将“ICMP 已超时”的消息发回源系统。Tracert 先发送 TTL 为 1 的 响应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路 由。透过检查中间路由器发回的“ICMP 已超时”的消息确定路由。 三、界面设计及数据结构的说明三、界面设计及数据结构的说明 1 1 、MFCMFC 界面设计建立流程界面设计建立流程 步骤一: 打开 VC6.0, 点击文件选项, 在 project 选项卡中选择 MFC Appwizard(exe), 项目名称为 ping。 2 步骤二:在新窗口中选择窗口类型为基于对话框的类型。 步骤三:设置界面选项 3 步骤四:设置窗口类型 步骤五:选择相应类,点击 finish 完成。 4 界面建立成功后添加相应按钮及功能模块。主界面设计如下: 2 2、数据结构的定义及说明数据结构的定义及说明 (1)(1)定义定义 IPIP 头部头部 5 typedef struct _IpHeader unsigned int