实验2 网络数据包的监听与分析(参考答案) - 图文

发布时间 : 星期四 文章实验2 网络数据包的监听与分析(参考答案) - 图文更新完毕开始阅读

实验2 网络数据包的监听与分析

一 实验目的

1.掌握使用Wireshark软件监听和捕获网络数据包。

2.掌握通过实际观察网络数据进行分析而了解网络协议运行情况。

二 实验要求

1.设备要求:计算机若干台(装有Windows 2000/XP/2003操作系统、装有网卡),局域网环境,主机装有Wireshark工具。

2.每组1人,独立完成。

三 实验预备知识

1.Wireshark简介

Wireshark是一个开放源码的网络分析系统,也是是目前最好的开放源码的网络协议分析软件之一,支持Linux和Windows平台,支持500多种协议分析。

网络分析系统首先依赖于一套捕捉网络数据包的函数库。这套函数库工作在在网络分析系统模块的最底层。作用是从网卡取得数据包或者根据过滤规则取出数据包的子集,再转交给上层分析模块。从协议上说,这套函数库将一个数据包从链路层接收,将其还原至传输层以上,以供上层分析。在Linux系统中,1992年Lawrence Berkeley Lab的Steven McCanne和Van Jacobson提出了包过滤器,称之为BPF(BSD Packet Filter),设计了基于BPF的捕包函数库Libpcap。在Window系统中,意大利人Fulvio Risso和Loris Degioanni提出并实现了Winpcap函数库,其实现思想来源于BPF。

2.Wireshark的简单操作方法

安装Wireshark之前,需要安装Winpcap,安装过程比较简单。安装完成后,启动Wireshark,如图2.1所示。

图2.1 启动Wireshark后的界面

设置Capture选项。选择“Capture”-“Options”,弹出“Capture Options”界面,设置完成后点击“Capture”而开始捕获数据,如图2.2所示。

图2.2 “Capture Options”界面

在“Capture Options”界面中,主要选项如下:

? “Interface”是要求选择在哪个接口(网卡)上抓包。

? “Limit each packet”是限制每个包的大小,缺省情况不限制。

? “Capture packets in promiscuous mode”是否打开混杂模式。如果打开,抓取所有

的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭该选项。 ? “Capture Filter”是指过滤器,可以过滤掉某些数据包而只抓取满足过滤规则的数

据包。

? “File”是指如果需要将抓到的包保存到文件中,在这里输入文件名称。

? “Ring buffer”是指是否使用循环缓冲。缺省情况下不使用,即一直抓包。注意,

循环缓冲只有在写文件的时候才有效。

设置完“Capture Options”后,选择“Capture”-“Start”开始捕获数据,如图2.3所示。

图2.3 开始捕获数据

点击“Stop”完成数据捕获,如图2.4所示。根据捕获的数据对各种协议,如ARP、ICMP、TCP、UDP等协议进行分析。

图2.4 捕获数据包后的协议分析

2.Wireshark过滤器的简单使用 如果需要抓取某些特定的数据包时,可以有两种方法,一是在捕获数据包之前定义好包过滤器,这样就只能捕获到设定好的那些类型的数据包。包过滤器用来捕获感兴趣的数据包,用在捕获数据包过程中。包过滤器使用的是Libcap过滤器语言,在Tcpdump的手册中有详细的解释,基本结构是:

[not] primitive [and|or [not] primitive ...]

另外一种方法是捕获本机收到或者发出的全部数据包,然后使用显示过滤器,只让Ethereal显示所需要的那些类型的数据包。下面主要介绍这种方法。

在捕获数据包完成后,可以根据“协议”、“是否存在某个域”、“域值”和“域值之间的比较”等四个规则来过滤数据包。

例如,如果只需查看使用ARP协议的数据包,在Wireshark窗口中的“Filter”中输入arp(注意是小写), 然后回车或点击“Apply”,Wireshark 就会只显示ARP协议的数据包,如图2.5所示。

图2.5 使用协议进行过滤

域值比较表达式可以使用“==”、“>”、“!=”等操作符来构造显示过滤器,例如ip.addr==10.1.10.20,ip.addr!=10.1.10.20,frame.pkt_len>10等。域值可以从“Expression”中进行选择,如图2.6所示。

图2.6 添加域值比较表达式

组合表达式还可以使用“and”、“or”、和“not”等逻辑操作符,其中逻辑与“and”也可用“&&”表示,例如ip.addr==172.16.28.211&&frame.pkt_len < 100;逻辑或“or”也可用“||”表示,例如ip.addr==172.16.28.211||ip.addr==172.16.28.254,如图2.7所示;逻辑非“not”也可用“!”表示,例如!llc。

联系合同范文客服:xxxxx#qq.com(#替换为@)