1、 共 12 页 第 1 页 装 订 线 目目 录录 1 设计目的 . 2 2 设计内容 . 2 3 程序流程 . 2 4 设计步骤 . 4 5 设计总结 11 共 12 页 第 2 页 装 订 线 1 设计目的设计目的 网络通信课程设计是网络工程专业的大型作业课。 是培养计算机领域从事网络技 术及应用工作的高级工程技术人才的必修课程。 本课的主要任务是使学生队所学的计算机网络知识从实践上有一个较清晰的 了解。对当前计算机网络的主要种类和常用的网络协议有更进一步的深入认识。学会 计算机网络设计和日常管理及维护的最基本方法。 网络编程简单的理解就两台计算机相互通讯数据, 通过使用套接字来达到进程通
2、 信目的编程就是网络编程。 网络编程最主要工作就是在发送端把信息通过规定好的协 议进行组包,在接收端按照规定好的协议把包进行解析,从而提取出相应的信息,达 到通信的目的。中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数 据包的分析,当然最后再做一些处理。 本次实验运用 C+的网络编程相关知识,通过学习了解了 TCP 和 UDP 协议的基本 知识和 SOCKET 编程的基本概念, 完成 tracert 程序, 实现 ping 功能和路由追踪功能。 2 设计内容设计内容 一、学习实践要求 1对计算机网络的物理构成有清晰的了解; 2理解计算机网络体系结构的内涵; 3熟悉计算机网络的分类及
3、常用的网络协议; 4基于掌握计算机网络软件的开发方法; 5具备管理计算机网络的基本知识及技能。 二、模块功能 (1)pin 功能:发送 ICMP 数据包到计算机,如有返回,显示相应时间等。 (2)路由探测功能:依次 ping 途经的路由器或网关设备,依次显示途经路由器 的响应时间。 3 程序流程程序流程 共 12 页 第 3 页 装 订 线 N Y Y Y N N 超时,打印星号 解析命令行参数中的IP地址或主机名 开始 是预期数据报? 解析数据报并显示输出 有数据报到达? 填充 ICMP 回显请求数据报并发送 TTL+ (初始为 1) 目的主机回应答或 达到最大跳站值? 初始化 winsoc
4、k2 环境 结束 释放分钟资源 打印结束信息 共 12 页 第 4 页 装 订 线 图 1 流程图 4 设计步骤设计步骤 一、程序运行结果相关截图 图 2 运行结果 共 12 页 第 5 页 装 订 线 图 3 运行结果 图 4 运行结果 共 12 页 第 6 页 装 订 线 图 5 运行结果 二、程序源代码 #include #include #include using namespace std; #pragma comment(lib, “Ws2_32.lib“) /IP 报头 typedef struct unsigned char hdr_len:4; /4 位头部长度 unsigned char version:4; /4 位版本号 unsigned char tos; /8 位服务类型 unsigned short total_len; /16 位总长度 共 12 页 第 7 页 装 订 线 unsigned short identifier; /16 位标识符 unsigned short frag_and_flags; /3 位标志加 13 位片偏移 unsigned char ttl; /8 位生存时间 unsigned char prot