滁州学院 课 程 设 计 报 告 课程名称: 计算机网络课程设计 设计题目: ping 程序的设计与实现 系 别: 计算机与信息工程学院 专 业: 计算科学与技术 组 别: 第五小组 起止日期: 2011 年12 月1 日~ 2011 年12 月8 日 指导教师: 计算机科学与技术系二○一一年制 课程设计题目 Ping 程序的设计与实现 组长 学号 2011220125 班级 计专(2)班 系别 计算机与信息工程学院 专业 计算机科学与技术 组员 指导教师 课程设计目的 通过设计Ping 程序,理解Ping 程序的实现原理,并初步讲解了c 语言网络编程技术。本章涉及很多网络编程函数和编程技巧,包括库文件的导入;winsock 的初始化、注销;socket 的创建、关闭;设置 socket 选项;根据主机名获取IP 地址; 从堆中分配一定数量的空间、释放从堆中分配的空间;数据报的发送;数据报的接等。 课程设计所需环境 WindowsXP+Visual C++6.0 课程设计任务要求 实现ping 的基本功能,实现ping -t 课程设计工作进度计划 序号 起止日期 工 作 内 容 分工情况 01 2011-12-1~ 2011-12-2 展开思路讨论工作并搜集相关资料 02 2011-12-3~ 2011-12-6 具体制作,编写相关代码,制作相关窗口并实现,美化界面 。 03 2011-12-7~ 2011-12-8 编写并完成课程设计报告 指导教师签字: 年 月 日 课程设计任务书 一.Pin g 程序运行原理 在网络层, 除了IP 协议之外, 还有一些控制协议, 如ICMP, ARP, DHCP 等。 1. ping 的基础知识 原始套接字 原始套接字是允许访问底层传输协议的一种套接字类型。使用原始套接字操作 IP 数据报, 可以进行路由跟踪, Ping 等。另外, 使用原始套接字需要知道许多下层协议结构的知识,所以下面讨论 ICMP,IP, UDP, TCP 格式。 原始套接字有两种类型, 第一种类型是在IP 头种使用预定义的协议, 如ICMP;第二种类型是在IP 头种使用自定义的协议。下面使用创建原始套接字的方法。 创建套接字的函数是 socket()或者 WSASocket(),只不过要将套接字类型指定为SOCK_RAW,代码如下: SOCKET sraw = ::socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); 创建原始套接字时 socket 函数的第三个参数 protocol 值将成为 IP 头中得协议域的值。IPPROTO_ICMP 指定要使用 ICMP。 原始套解释提供管理下层传输的能力。他们可能会被恶意利用, 因此, 仅Administrat...