《实验四 ICMP报文格式及协议分析》由会员分享,可在线阅读,更多相关《实验四 ICMP报文格式及协议分析(4页珍藏版)》请在金锄头文库上搜索。
1、实验四 ICMP 报文格式及协议分析【实验目的】1、 分析 ICMP 报文的格式;2、 了解 ICMP 报文的各种类型及其作用;3、 通过观察 ICMP 报文的交互了解差错和异常情况报告的实现过程。【实验内容】1、 分析 ICMP 报文的结构,熟悉各个字段的内容、功能、格式和取值范围;2、 编辑 ICMP 报文首部各字段的内容;3、 单个或批量发送已经编辑好的 ICMP 报文;4、 观察 ICMP 报文的交互。【实验原理】ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 是 IP 层的协议。ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发
2、送出去。报文格式如下图所示:数 据 报 首 部 ICMP报 文0数 据 报 数 据检 验 和类 型 代 码 长 度 可 变 部 分取 决 于 ICMP的 类 型8 16 31IP 数 据 报ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。类型字段指明了 报文是何种类型,该字段值与报文类型的对应关系如下表所示:ICMP 报文的类型:ICMP 报文种类 类型的值 ICMP 报文的类型3 目的站不可达4 源站抑制11 数据报的时间超时12 数据报的参数有问题差错报告报文5 改变路由8 或 0 回送请求或回答13 或 14 时间戳请求或回答17 或 18 地址掩码请求或回
3、答询问报文10 或 9 路由器询问或通告ICMP 报文的代码字段是为了进一步区分某种类型中的几种不同的情况。校验和字段用来检验整个 ICMP 报文。应用层有一个很常用的服务叫做 PING (Packet InterNet Groper),用来测试两个主机之间的连通性。PING 使用了 ICMP 回送请求与回送回答报文。对应 ICMP 回送请求和回答报文,如果代码字段的值为 0,则紧接着校验和字段的两个字节分别是“标识”和“序号”字段,用来帮助匹配请求响应和响应报文。【实验步骤】练习一:分析 ICMP 报文的格式1、 运行报文仿真编辑器;2、 单击工具栏上的“新建报文”按钮,在弹出的“新建报文”
4、对话框中选择报文类型为“ICMP”,单击 “确定”按钮,报文仿真编辑器自动构造一个 ICMP 报文;3、 也可以通过单击工具栏上“打开”按钮,选择安装目录下 Data 目录中报文仿真编辑器存档文件:icmp.pef,报文仿真编辑器显示预存的 ICMP 报文;4、 选中报文列表框中的一条记录,报文仿真编辑器中间部分自动显示此条报文记录的协议结构树;5、 选中协议结构树中的“ICMP 首部”结点,报文仿真编辑器右侧部分自动显示当前ICMP 报文首部各个字段的内容;6、 查看 ICMP 报文首部中的类型、代码字段的结构和内容;7、 对于 ICMP 回送请求和回答报文,查看标识和序号字段的结构和内容;
5、8、 分析各个字段的含义。练习二:编辑 ICMP 报文格式中的字段内容1、 在报文仿真编辑器的右侧修改 ICMP 报文的各个字段的内容;2、 单击“保存”按钮;3、 查看修改后的字段内容。练习三:发送和接收 ICMP 报文序列1、 运行报文解析器;2、 单击报文解析器工具栏上的“开始捕获”按钮,报文解析器开始捕获数据报;3、 单击报文仿真编辑器工具栏上的“发送报文”按钮,报文仿真编辑器弹出“发送成功”对话框;4、 单击报文解析器工具栏上的“停止捕获”按钮,在报文解析器左侧报文列表框中查看所接收到的报文仿真编辑器发出的报文;5、 选中其中一条报文记录,报文解析器中间部分自动显示此条报文记录的协议
6、结构树,比较是否与发送的报文相同。练习四:ICMP 请求响应和回答的协议分析1、 单击报文仿真编辑器工具栏上的“打开”按钮,选择安装目录下 Data 目录中报文仿真编辑器存档文件:icmp.pef ,报文仿真编辑器显示预存的 ICMP 报文;2、 运行报文解析器;3、 单击报文解析器工具栏上的“开始捕获”按钮,报文解析器开始捕获数据报;4、 单击报文仿真编辑器工具栏上的“发送报文”按钮,报文仿真编辑器弹出“发送成功”对话框,发送出报文列表框中的报文;5、 可以看到报文解析器接收到报文仿真编辑器发出的报文,单击报文解析器工具栏上的“停止捕获”按钮,停止捕获报文;6、 单击工具栏上的“协议分析”按
7、钮,报文解析器弹出协议分析对话框。在“协议”下拉列表中选择“ICMP” ,对话框下部的列表框中显示存在的 ICMP 回送请求响应与回答对。选择一对 ICMP 回送请求响应与回答,单击“确定”按钮;7、 报文解析器左侧的报文列表中显示这一对 ICMP 回送请求与回答交互过程中所有的报文,右侧以图形的方式显示 ICMP 回送请求与响应的交互过程。选中左侧报文列表中的一条记录,报文解析器中部显示该报文的协议结构树,右侧的协议交互图中以蓝色突出显示该报文;8、 在左侧的报文列表中选择不同的报文,观察协议交互的进行过程,以及 ICMP 的序号字段值的变化。【实验报告要求】1记录实验数据2 分析实验结果例
8、: MAC 帧首部目的地址:FF-FF-FF-FF-FF-FF源地址:00-01-6C-E9-0D-2C类型:ARPARP硬件类型:以太网协议类型:IP硬件地址长度:6协议地址长度:6操作:ARP 请求源硬件地址:00-01-6C-E9-0D-2C源协议地址:192.168.1.6目的硬件地址:00-00-00-00-00-00目的协议地址:192.168.1.2(16 进制显示框)00000000:FF FF FF FF FF FF 00 01 6C E9 0D 2C 08 06 00 0100000010:08 00 06 04 00 01 00 01 6C E9 0D 2C C0 08
9、01 0600000020:00 00 00 00 00 00 C0 A8 01 02其中“类型:ARP”对应值为 08 063未知数据包的分析本部分通过 Sniffer 软件捕获本机所在计算机网络中的未知数据包,要求对所捕获的数据包进行分析。数据包一如下(下图截取了该数据包 16 进制表中的前 10 行):未知数据包一的 16 进制值根据以下举例,分析上述捕获的数据包为一个什么协议的请求报文。未知数据包二如下:未知数据包二的 16 进制值分析如下:第一行前 12 个字节为协议 MAC 帧首部中的目的硬件地址和源地址。紧随其后的两个字节是 MAC 帧首部中的类型字段,标识从上层接收到什么类型的
10、协议, “08 06”表示从上层收到的是 类型的数据报。则接下来的数据就代表该数据报的内容。“00 01”表示硬件类型为以太网,“08 00”表示采用的协议类型为 IP 类型,“06 04”分别表示硬件地址长度为 6 字节及协议地址长度为 4 字节,“00 01”表示执行 ARP 请求操作,“00 13 d4 ae 44 26” “3b 4f 12 9b”表示了源硬件地址,源协议地址(59.79.18.155)“00 00 00 00 00 00” “3b 4f 12 fe” 表示了目的硬件地址和目的协议地址(59.79.18.254) 。剩余的 0 均为填充数据。综上得出,该数据包为一个什么协议的请求报文。