课 程 设 计 课程设计题目 网络协议分析实验报告 学 生 姓 名 : 学 号: 专 业: 2024 年 6 月 29 日实验 1 基于 ICMP 的 MTU 测量方法实验目的1) 掌握 ICMP 协议2) 掌握 PING 程序基本原理3) 掌握 socket 编程技术4) 掌握 MTU 测量算法实验任务编写一个基于 ICMP 协议测量网络 MTU 的程序,程序需要完成的功能:1)使用目标 IP 地址或域名作为参数,测量本机到目标主机经过网络的 MTU;2)输出到目标主机经过网络的 MTU。实验环境1)Linux 系统;2)gcc 编译工具,gdb 调试工具。实验步骤1. 首先认真研读例程,熟悉 linux 下 socket 原始套接字编程模式,为实验做好准备;2. 生成最大数据量的 IP 数据报(64K),数据部分为 ICMP 格式,ICMP 报文为回送请求报文,IP 首部 DF 位置为 1;由发送线程发送;3. 假如收到报文为目标不可达报文,减少数据长度,再次发送,直到收到回送应答报文 。至此,MTU 测量完毕。ICMP 协议是一种面对无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。[1] 它是 TCP/IP 协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到 IP 数据无法访问目标、IP 路由器无法按当前的传输速率转发数据包等情况时,会自动发送 ICMP 消息。ICMP 报文在 IP 帧结构的首部协议类型字段(Protocol 8bit)的值=1.ICMP 原理ICMP 提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据 ICMP 报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是 ICMP 唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。我们在网络中常常会使用到 ICMP 协议,比如我们常常使用的用于检查网络通不通的Ping 命令(Linux 和 Windows 中均有),这个“Ping”的过程实际上就是 ICMP 协议工作的过程。还有其他的网络命令如跟踪路由的 Tracert 命令也是基于 ICMP 协议的。ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方.是 IP 层的一个协议。但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此...