课 程 设 计 课程设计题目 网络协议分析实验报告 学 生 姓 名 : 学 号: 专 业: 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 调试工具
首先认真研读 ping
c 例程,熟悉 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 报文确定发生错误的类型,并确定