1、网络协议分析实验指导书第 1 页 共 81 页网络协议分析实验指导书网络协议分析实验指导书第 2 页 共 81 页前言网络协议分析课程是针对计算机网络工程专业的本科生而设置的一门课程,它具有很强的理论性和实践性。本实验指导书是专门为网络协议分析理论课程配套的、指导学生完成相关实验及操作而编写的。本实验指导书按照 TCP/IP 的层次结构对网络互连中的主要协议进行分析,由下而上的设计了 14 个实验,涉及协议分析软件的使用、数据链路层协议分析、网络层协议分析、传输层协议分析、应用层协议分析等,共五个部分。希望学生们通过以上实验进一步加深对网络协议的理解和掌握协议分析的方法。 根据不同的要求,可以
2、在本指导书的范围内选择相应的实验内容,组合成满足不同需求的实验指南。如 16 学时的实验可采用:以太网链路层帧格式分析实验、ICMP 协议分析实验、IP 协议分析实验、ARP 协议分析实验、TCP 协议分析实验、UDP 协议分析实验、FTP 协议分析实验、HTTP 协议分析实验等 8 个实验组合;8 学时的实验可采用:以太网链路层帧格式分析实验、IP 协议分析实验、TCP 协议分析实验、FTP 协议分析实验等 4 个实验组合;其余的实验可以作为任选实验或者课下作业。特别说明:1、本指导书中网络物理模型中所用到的交换机和路由器均为锐捷设备,这里只是为举例方便。如果改换为 CISCO 或者华为等的
3、相应设备,不影响本实验的步骤和结果。2、实验中设备的 ip 地址以实际实验机器的 ip 地址为准,对应指导书中网络实验模型中的 ip 地址。网络协议分析实验指导书第 3 页 共 81 页目 录1.网络协议分析实验环境要求 .42.网络协议分析器 Ethereal.52.1 Ethereal 主窗口简介 .52.2 Ethereal 菜单栏简介 .72.3 Ethereal 的工具栏 .72.4 Ethereal 的网络数据抓包过程 .82.5 由 Ethereal协议窗口分析协议的格式 .113. 数据链路层协议分析 .153.1 以太网链路层帧格式分析实验 .153.2 VLAN 802.1
4、Q 帧格式分析实验 .184. 网络层协议分析 .244.1 ICMP 协议分析实验 .244.2 IP 协议分析实验 .304.3 IP 数据报分片实验 .334.4 ARP 协议分析实验 .355.传输层协议分析 .385.1 TCP 协议分析实验 .395.2 UDP 协议分析实验 .446. 应用层协议分析 .476.1 DNS 协议分析实验 .476.2 FTP 协议分析实验 .526.3 HTTP 协议分析实验 .606.4 电子邮件相关协议分析实验 .646.5 TELNET 协议分析实验 .72网络协议分析实验指导书第 4 页 共 81 页1. 网络协议分析实验环境要求(1)本
5、指导书按照 TCP/IP的层次结构对网络互连中的主要协议进行分析。本章实验的基本思路是使用协议分析工具从网络中截获数据报,对截获的数据报进行分析。通过试验,使学生了解计算机网络中数据传输的基本原理,进一步理解计算机网络协议的层次结构、协议的结构、主要功能和工作原理,以及协议之间是如何相互配合来完成数据通信功能的。 Windows 环境下常用的协议分析工具有:Snifer Pro、Natxray、Iris、Ethereal 以及Windows 2000 自带的网络监视器。本书选用 Ethereal 作为协议分析工具。 (2)网络协议图网络协议分析实验指导书第 5 页 共 81 页2.网络协议分析
6、器 Ethereal 网络协议分析器网络协议分析器 Ethereal 是目前最好的、开放源码的、获得广泛应用的网络协议分析器,支持 Linux 和 windows 平台。在该系统中加入新的协议解析器十分简单,自从 1998年发布最早的 Ethereal 0.2版本发布以来,志愿者为 Ethereal 添加了大量新的协议解析器,如今 Ethereal 已经支持五百多种协议解析。其原因是 Ehereal 具有一个良好的可扩展性的设计结构,这样才能适应网络发展的需要不断加入新的协议解析器。本节以 Ethereal 0.10.14 版本为依据。 Ethereal 的安装比较简单,按下述网址下载,下载完
7、 Ethereal 即可完成安装。ftp:/s172.23.2.10/软件及工具 (登陆时,无密码。 新版本 Ethereal已经整合了 winpcap,应用比较方便。 ) 2.1 Ethereal 主窗口简介图 1 是抓包完成后的 Ethereal 的主窗口。过滤栏以上是 Ethereal 本身的菜单,过滤栏以下是抓获的包经过分析后的显示信息。 图 1 抓包完成后的 Ethereal 主窗口 其中: 1菜单栏通常用来启动 Ethereal 有关操作; 2工具栏提供菜单中常用项目的快速访问; 3过滤器栏提供一个路径,来直接控制当前所用的显示过滤器; 网络协议分析实验指导书第 6 页 共 81
8、页4包列表窗格显示当前抓包文件的全部包的摘要。 包列表的每一行对应抓包文件中的一个包,不同报文有不同的颜色,但是没有明显的规 律。如果你选择了一行,则更详细的信息显示在协议窗格和包字节数据窗格中。 注意:在此窗格里单击某个包,就会在另外的第二个窗口里显示这个包的信息。 当 Ethereal 解析一个包时, 由协议解析器将信息放置到行列中去,比较高级协议会 改写较低级协议的信息,你只能看到最高级协议的信息。例如,IP 内部包含有 TCP的Ethernet 包,Ethernet 解析器将写出它的数据 (如 Ethernet 地址) ,而 IP 解析器将用自己的数据改写它 (如 IP 地址) ,等等
9、。 在包列表窗格中的每一列代表抓获的一个包,每个包的摘要信息包括: * No :抓包文件中包的编号。 ,即使已经用了一个显示过滤器也不会改变。 * Time:包的时间戳,即抓获该包的时间,该时间戳的实际格式可以改变。 * Source:包的源地址。 * Destination:包的目标地址。 * Protocol:包协议的缩写。 * Info:包内容的附加信息,这是一种可用的上下文菜单 (鼠标右键) 。 5包协议窗格 (包细节窗格) 包协议窗格以更详细的格式显示从包列表窗格选中的协议和协议字段。包的协议和字 段用树型格式显示,可以扩展和收缩。这是一种可用的上下文菜单,单击每行前的 “”就 可以
10、展开为以 “”开头的若干行,单击 “”又可以收缩。 在每个协议行中,会显示一些指定的协议字段: (1)生成的字段:Ethereal 自己会生成附加的协议字段 (括号括起来者) 。这些字段的信息是从抓包文件中已知的与其它字段的上下文推导出来的。例如,Ethereal 分析每个 TCP流的顺序号/确认号时,就会在 TCP 协议的SEQ/ACK 分析中显示出来。 (2)链接: 如果 Ethereal 检测到抓包文件中存在着与其它包的关系,就会产生一个到其它包的链接。链接用蓝色显示,双击它,Ethereal 就跳到相应的包。 6包字节窗格 (十六进制数据窗格) 包字节窗格以十六进制形式显示出从包列表窗
11、格中选定的当前包的数据,并以高亮度显 示在包协议窗格中选择的字段。在常用的十六进制区内,左边示出包数据的编号,中部为相 应的十六进制示出包数据,右边为对应的 ASCII 字符。 7状态栏 显示当前程序状态和抓获的数据的信息。通常左边显示相关信息的状态,右边显示包的 当前数目。 (a) 网络协议分析实验指导书第 7 页 共 81 页(b) 图 2 状态栏示例示例 (a) 图示出没有装载抓包文件,即 Ethereal 开始时的情况。 (b) 图为已经装载抓包文件时的状态栏。左边显示关于抓包文件的名字、大小、开始抓 包经过的时间等信息。右边显示抓包文件中包的当前数目。显示的数值如下: * P: 抓获
12、包的数目; * D: 当前正显示的包的数目; * M: 已经标记的数目。 2.2 Ethereal 菜单栏简介 1File 文件菜单 文件菜单包括打开和合并抓包文件,全部或部分存储、打印、输出抓包文件,退出 Ethereal。 2Edit 编辑菜单 编辑菜单包括查询包,时间查询,标记或标识一个或多个包,设置你的选项 (剪切,拷 贝,粘贴当前不能实现) 3View 视图菜单 视图菜单控制抓抓获的包数据的显示,包括对抓获包的着色,字型的缩放,协议窗格中 协议树的压缩和展开。 4Go 指向菜单 以不同方式指向特定的包。 5Capture 抓包菜单 开始和停止抓包过程以及编辑抓包过滤器。 6Analy
13、ze 分析菜单 包括的选项由操作显示过滤器,允许和不允许对协议解析,配置用户指定的译码器和跟 踪一个 TCP 流。 7Statistics 统计菜单 显示各种统计窗口的菜单项,包括已经抓到的包的摘要,显示协议的分层统计等等。 8Help 帮助菜单 包括帮助用户的选项,诸如一些基本帮助,所支持的协议列表,手工页面,在线访问一 些 web 页面,以及常用的对话框。 2.3 Ethereal 的工具栏Ethereal 工具栏提供主菜单中常用的选项的快速访问。工具栏不能由用户定制,但是如 果屏幕空间需要显示更多的包数据,就可以用视图菜单将它隐蔽。 作为菜单,只有当前程序被选用时该选项才是可用的,其它选
14、项变成灰色 (如果尚未网络协议分析实验指导书第 8 页 共 81 页装 载数据就不能存入抓包文件) 。图 3 为各种工具图标的名称。 接口 选项 开始 停止 重开始 打开 存储为 关闭 重载 打印 查询包 向后 向前 指定包 到首包 到末包 包着色 卷屏 放大 取消放大 图 3 各种工具图标的名称 * 接口:单击此图标,出现一个抓包选项表对话框; * 选项:引出一个抓包选项对话框; * 开始:根据选项在最近时间开始抓包; * 停止:停止当前运行的抓包过程; * 重开始:为了方便起见,停止当前运行的抓包过程,重新开始; * 打开:出现打开文件对话框,让你打开一个抓包文件来观察; * 存储为:让你
15、将当前的抓包文件存储为你希望的文件。弹出“Save Capture File As” 对话框; * 关闭:关闭当前的抓包文件,如果没有存储该包被会询问是否存储; * 重载:允许重装当前的抓包文件; * 打印:引出打印对话框,允许全部或部分打印包文件中的包; * 查询包:引出查询一个包的对话框; * 向后:在包历史中向回跳; * 向前:在包历史中向前跳; * 指定包:引出对话框,跳到指定编号的包; * 到首包: 跳到包文件中第一个包; * 到末包:跳到包文件中最后一个包; * 着色:对包列表中抓获的色,用不同颜色显示; * 放大:放大打开的包数据 (增大字型) ; * 取消放大:取消包数据放大。
16、 2.4 Ethereal 的网络数据抓包过程Ethereal 的抓包有如下特征: * 可以从不同类别的网络硬件抓包,如 Ethernet、 Token Ring、ATM 等; * 停止抓包时不同的触发器相似:如抓获数据的总数、抓包时间,抓获包的数目; * 抓包过程中同时显示编译后 (解析)的包。 * 根据包过滤器的条件,从抓获的全部数据中进行过滤,减去符合条件的包。 网络协议分析实验指导书第 9 页 共 81 页使用 Ethereal 进行网络协议分析时应当注意:必须有管理员权限才能开始抓包过程;必须选择正确的网络接口来抓获包数据;必须在网络的正确的位置抓包才能看到想看到的业务流量。 1通过
17、抓包接口开始抓包通过抓包接口开始抓包 可以通过工具栏的接口选项,或者“Capture”菜单的“Interfaces”选项选择抓包菜单后,Etherea 弹出抓包接口对话框,如图 4 所示。但需注意,作为抓包接口对话框,只在数据抓包前显示,会消耗很多系统资源,要尽快关闭对话框以防止过多的系统装载。 图 4 抓包接口对话框 图中 Gneric dialup adapter 为拨号适配器,第二行为快速以太网网卡。工具栏框中的各个选项叙述于下: * IP:Ethereal 可能从这个接口分辨第一个 IP 地址,如果分辨不出地址,就会显示 “unknown ”,如果解析出不止一个 IP 地址,则只显示第
18、一个; * Packets:从对话框打开后从该接口侦测到的包数。如果最近一秒没有侦测到包,则 Packets 变为灰色; * Packets/s:在最近一秒侦测到的包数,如果没有侦测到包,则在最近一秒变为灰色;* Stop:停止当前抓包运行; * Capture:利用最后抓包设置立即在该接口开始抓包; * Prepare:打开该接口的抓包选项对话框; * Close:关闭对话框。 如果选择 Capture,则立即开始抓包,并显示图 5 的抓包过程数据报文统计: 图 5 抓包过程数据报文统计 网络协议分析实验指导书第 10 页 共 81 页抓到足够的包后,单击 Stop停止抓包。即可显示如图 1
19、的抓包完成后的 Ethereal 主窗口。 2通过通过 capture 菜单选项抓包 Ethereal 的抓包 (capture)选项,如图 6 所示。 图 6 Capture 选项 (1)单击 Capture 选抓包过滤器 Capture Filters. ,弹出过滤器窗口,如 图 7 所示。 图 7 Capture 过滤器选项(2)在 Filter 栏中选择某项过滤器名称,如“No Broadcast and no Multicast ” 或“TCP only” ,则在 Filter name 和 Filter string 文本框中显示你的选项。 也可以在 Filter name 框中键入过滤器名字,在 Filter string 框中键入过滤器字符串,单击 New,一个过滤器就建立好了。 单击 Capture 选 0ptions,弹出图 8 所示过滤器选项窗口,指明网络适配器,抓包模式,包字节限制,过滤条件等有关抓包的系统配置的启用和设置。