《实验四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数据报发送出去。报文格式如下图所示:ICMP报文的种类有
2、两种,即ICMP差错报告报文和ICMP询问报文。类型字段指明了 报文是何种类型,该字段值与报文类型的对应关系如下表所示:ICMP报文的类型:ICMP报文种类类型的值ICMP报文的类型差错报告报文3目的站不可达4源站抑制11数据报的时间超时12数据报的参数有问题5改变路由询问报文8或0回送请求或回答13或14时间戳请求或回答17或18地址掩码请求或回答10或9路由器询问或通告ICMP报文的代码字段是为了进一步区分某种类型中的几种不同的情况。校验和字段用来检验整个ICMP报文。应用层有一个很常用的服务叫做PING (Packet InterNet Groper),用来测试两个主机之间的连通性。PI
3、NG使用了ICMP回送请求与回送回答报文。对应ICMP回送请求和回答报文,如果代码字段的值为0,则紧接着校验和字段的两个字节分别是“标识”和“序号”字段,用来帮助匹配请求响应和响应报文。【实验步骤】练习一:分析ICMP报文的格式1、 运行报文仿真编辑器;2、 单击工具栏上的“新建报文”按钮,在弹出的“新建报文”对话框中选择报文类型为“ICMP”,单击“确定”按钮,报文仿真编辑器自动构造一个ICMP报文;3、 也可以通过单击工具栏上“打开”按钮,选择安装目录下Data目录中报文仿真编辑器存档文件:icmp.pef,报文仿真编辑器显示预存的ICMP报文;4、 选中报文列表框中的一条记录,报文仿真编
4、辑器中间部分自动显示此条报文记录的协议结构树;5、 选中协议结构树中的“ICMP首部”结点,报文仿真编辑器右侧部分自动显示当前ICMP报文首部各个字段的内容;6、 查看ICMP报文首部中的类型、代码字段的结构和内容;7、 对于ICMP回送请求和回答报文,查看标识和序号字段的结构和内容;8、 分析各个字段的含义。练习二:编辑ICMP报文格式中的字段内容1、 在报文仿真编辑器的右侧修改ICMP报文的各个字段的内容;2、 单击“保存”按钮;3、 查看修改后的字段内容。练习三:发送和接收ICMP报文序列1、 运行报文解析器;2、 单击报文解析器工具栏上的“开始捕获”按钮,报文解析器开始捕获数据报;3、
5、 单击报文仿真编辑器工具栏上的“发送报文”按钮,报文仿真编辑器弹出“发送成功”对话框;4、 单击报文解析器工具栏上的“停止捕获”按钮,在报文解析器左侧报文列表框中查看所接收到的报文仿真编辑器发出的报文;5、 选中其中一条报文记录,报文解析器中间部分自动显示此条报文记录的协议结构树,比较是否与发送的报文相同。练习四:ICMP请求响应和回答的协议分析1、 单击报文仿真编辑器工具栏上的“打开”按钮,选择安装目录下Data目录中报文仿真编辑器存档文件:icmp.pef,报文仿真编辑器显示预存的ICMP报文;2、 运行报文解析器;3、 单击报文解析器工具栏上的“开始捕获”按钮,报文解析器开始捕获数据报;
6、4、 单击报文仿真编辑器工具栏上的“发送报文”按钮,报文仿真编辑器弹出“发送成功”对话框,发送出报文列表框中的报文;5、 可以看到报文解析器接收到报文仿真编辑器发出的报文,单击报文解析器工具栏上的“停止捕获”按钮,停止捕获报文;6、 单击工具栏上的“协议分析”按钮,报文解析器弹出协议分析对话框。在“协议”下拉列表中选择“ICMP”,对话框下部的列表框中显示存在的ICMP回送请求响应与回答对。选择一对ICMP回送请求响应与回答,单击“确定”按钮;7、 报文解析器左侧的报文列表中显示这一对ICMP回送请求与回答交互过程中所有的报文,右侧以图形的方式显示ICMP回送请求与响应的交互过程。选中左侧报文
7、列表中的一条记录,报文解析器中部显示该报文的协议结构树,右侧的协议交互图中以蓝色突出显示该报文;8、 在左侧的报文列表中选择不同的报文,观察协议交互的进行过程,以及ICMP的序号字段值的变化。【实验报告要求】1 记录实验数据2 分析实验结果例: 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 目的协议地址:
8、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 01 0600000020:00 00 00 00 00 00 C0 A8 01 02其中“类型:ARP”对应值为08 063未知数据包的分析本部分通过Sniffer软件捕获本机所在计算机网络中的未知数据包,要求对所捕获的数据包进行分析。数据包一如下(下图截取了该数据包16进制表中的前10行):未知数据包一的16进制值根据以下举例,分析上述捕获
9、的数据包为一个什么协议的请求报文。未知数据包二如下:未知数据包二的16进制值分析如下:第一行前12个字节为协议MAC帧首部中的目的硬件地址和源地址。紧随其后的两个字节是MAC帧首部中的类型字段,标识从上层接收到什么类型的协议,“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均为填充数据。综上得出,该数据包为一个什么协议的请求报文。 /