理 院、系 电子科学与技术 专业 11 年级 1113 班
试验时间 20## 年 10 月 日
姓名 林伟雄 学号 201111911313
实验名称 Wireshark (Ethereal)抓包实验
同组同学
实验成绩
一、实验目的
1、掌握Wireshark软件的使用。
2、掌握Wireshark执行基本的协议数据单元捕获。
3、掌握Wireshark捕获、嗅探文件传输协议密码。
二、实验环境
安装好Windows 20## Server操作系统+Wireshark的计算机,要捕获PDU,必须有效的链接到网络且在运行Wireshark下,才能捕获数据。
三、实验仪器设备及软件
协议分析软件Wireshark、联网的PC机。
四、实验内容
1、安装Wireshark,简单描述安装步骤。
2、打开wireshark,选择接口选项列表。或单击“Capture”,配置“option”选项。
3、设置完成后,点击“start”开始抓包,显示结果。
4、选择某一行抓包结果,双击查看此数据包具体结构。
5、捕捉IP数据报。①写出IP数据报的格式。②捕捉IP数据报的格式图例。③针对每一个域所代表的含义进行解释。
五、实验结果及分析
捕抓到的图如下:
由图可知,这个IP帧的一下信息:
版本号:IPV4
首部长度:20 bytes
总长度:202 Bytes,即可变部分为182.
标识:0x1aa3(6819)
标志:0x00
片偏移:0,表示本片是原分组中的第一片。
生存时间:64,说明这个数据报还可以在路由器之间转发64次。
协议:UDP(17)
头部检验和:0xd8a1 (接受正确)
Source:192.168.2.143
Destination:192.168.2.255
六、实验总结及体会
使用Wireshark抓包非常容易,直接点击工具栏第三个按钮和工具栏第一个按钮就开始抓包了,会发现只要一点击这个按钮,立刻就显示抓到包了,这是因为Wireshark默认在混杂模式下抓包,只要经过网卡的数据包都抓取下来,点击第四个按钮停止此次抓包。如果机器上安装了多块网卡,Wireshark默认选择第一张网卡抓包,如果等抓包完成了,这是发现选错了网卡是一件极度郁闷的事情。点击第一个按钮可以在抓包之前选择抓哪张网卡。
本次试验也让我知道了实验是理论联系实际的桥梁。自古以来,古人就教导我们要“知行合一”。只有通过实验,我们才能更好的理解知识,掌握知识,运用知识。所以这次Wireshark抓包实验让我受益匪浅。
第二篇:计算机网络抓包实验分析
辽宁工业大学
创新实验(论文)
题目 计算机网络抓包实验分析
电子与信息工程学院 院(系)啊啊啊 专业 133 班
学生姓名
学 号
指导教师
开题日期:2010 年 6 月 10 日
实验目的
通过软件捕获网络流量,分析数据报结构,能够更加清楚地掌握网络分层的思想,从感性认识飞跃到理性认识。再通过捕获各个具体协议的通信数据包,一步一步具体分析其实现步骤,更加具体地掌握协议的实现过程。
实验内容
本次实验包括五项实验内容。分别是捕获报文基本分析实验、捕获并分析地址识变协议(ARP)、捕获并分析因特网控制信息协议、捕获并分析传输控制协议、捕获并分析用户数据报协议。
1. 任意捕获一个数据包,分析其数据链路层格式、网络层格式和传输层格式,加深对计算机网络分层概念的理解。
2. 地址识变协议(ARP)是LAN环境中最重要的协议之一。ARP允许你的网络上使用的设备自动将物理(MAC)地址映射为IP地址,因此需要对ARP有很详细的了解,并清楚它是怎样工作的。
3. 传输控制协议(TCP)是因特网上最常用的第四层协议,TCP可以保证数据传输的可靠性。很多因特网服务,比如HTTP、FTP、SMTP和Telnet,都要依靠TCP来传输数据。另外,很多传统的LAN程序,比如文件传输和SQL也都要使用TCP/IP。
4. 用户数据报协议(UDP)是网络上另外一种很常用的第四层协议。UDP由很多上层协议使用-例如,SNMP、普通文件传输协议(TFTP)和DNS-当DNS请求需要解析时(DNS在进行区域传输时使用TCP)。所以,要很清楚的理解UDP的重要性。
实验主要仪器设备和材料
每人一台联网计算机、软件。
实验方法、步骤及结构测试
1 启动软件
启动桌面软件图标
2 捕获报文基本分析实验
1. 打开程序后,选择Capture(捕获)—Start(开始),或者使用F10键,或者是工具栏上的开始箭头。
2. 一小段时间过后,再次进入Capture(捕获)菜单,然后选择Stop(停止)或者按下F10键,还可以使用工具栏。
3. 还可以按F9键来执行“停止并显示”的功能,或者可以进入Capture(捕获)菜单,选择“停止并显示”。
4. 停止捕获后,在对话框最下角增加了一组窗口卷标,包括高级、解码、矩阵、主机表单、协议分布和统计信息。
5. 选择解码卷标,可以看到缓冲器中的所有实际“数据”。分析该卷标结构及其内容。
图1 解码窗口
从解码卷标上可以看出解码窗口分为三部分,最上面是捕获的报文,中间是报文的解码,最下面是报文的二进制码,即发送的最原始内容。我们可以看出捕获到的报文有DLC,IP,TCP,HTTP等协议,解码表对应每一个层次的协议进行解码分析。从以前的实验,我们已经得知链路层对应的是DLC协议,在DLC协议里面,长度为14字节,我们可以看到发送数据包的目标MAC地址(Destination)和发送数据包的源MAC地址(Source),并且可以得知此数据包携带的协议类型为IP。
打开IP的标签,可以看到有IP协议报头的详细解码,其中IP协议报头长度为20个字节。其中从上图得到的数据分析如下:
第一行,Version=4,表示IP协议的版本号为4,即IPV4,占4位,Header Length=20 Bytes,表示IP包头的总长度为20个字节,该部分占4个位。所以第一行合起来就是一个字节。
第二行,Type of Service=00,表示服务类型为0。用来描述数据报所要求的服务质量。
接下来的六行, 000 前三位不用;0 表示最小时延;0 表示吞吐量;0 表示可靠性;0 表示最小代价;0 不用。第二到第八行合占1字节。
第九行,Total Length=40Bytes,表示该IP包的总长度为40个字节。该部分占两字节。
图2 IP协议报头
第十行,Identification=34833,表示IP包识别号为34833。该部分占两个字节。
第十一行到十三行,Flags,表示片标志,占3个位。各位含义分别为:第一个“0”不用,第二位为不可分片位标志位,此处值为“1”表示该数据表禁制分片。第三位为是否最后一段标志位,此处“0”表示最后一段。
第十四行,Fragment Offset=0,表示片偏移为0个字节。该部分占13位。 第十五行,Time to Live=51Secongs/Hops,表示生存时间TTL值为51,占1字节。
第十六行,Proctol=6(TCP),表示协议类型为TCP,协议代码是6,占1字节。
第十七行,Header Checksun=88AE(correct),表示IP包头校验和为88AE,括号内的Correct表示此IP数据包是正确的,没有被非法修改过。该部分占两字节。
第十八行,Source Address=[59.74.42.45],表示IP数据包源地址为:59.74.42.45,占四字节。
第十九行,Destination Address=[10.10.199.143],表示IP数据包目的地址为:10.10.199.143,占四字节。
第二十行,No Options,表示IP数据包中未使用选项部分。当需要记录路由时才使用该选项。
接下来的协议在以下捕获内容后分析。
3 捕获并分析地址识变协议(ARP)
1. 选择“捕获”――“定义过滤器”。
2. 在“定义过滤器”中,选择“文件”――“新建”。
3. 将这个文件命名为ARP,点击OK,然后点击“完成”。
4. 现在选择“高级”,从协议列表中选择ARP。
5. 点击OK,关闭定义过滤器窗口。已经定义了过滤器,可以按F10来捕获流量。
6. 输入arp -d IP 来清除默认网关上的ARP,这个命令中的IP是你的默认网关IP地址,然后Ping你的默认网关。
7. 停止捕获并打开代码窗口。至少会看到2个捕获到的帧(假设你可以连接到默认网关)。
8. 分析捕获到的结果(即解释数据包的内容和协议具体实现过程)。
4.4捕获并分析传输控制协议
从下面截图可以看出,可以分析ARP的工作过程:首先,在本局域网上的所有主机上运行的ARP进程都收到本机发送的ARP请求分组(从目标地址为Broadcast可以看出)。其次,从摘要中,PA=[10.10.199.129],可以看出ARP请求地址为10.10.199.129,而此IP地址的网络设备在ARP请求分组中见到自己的IP地址,就向本机发送ARP响应分组,并写于自己的硬件地址。至于在此ARP分组的其余的所有主机都不会理睬这个ARP请求分组。从以上可以分析,ARP请求分组是广播的,但ARP响应分组是单一的,即一对一。
一下对第一个ARP包进行分析。
第二行(Destination),6个字节,可以看出ARP包是采取广播方式,目标地址从下面的解码可以看出是FFFFFFFFFFFF,翻译过来就是全1,全1为一个广播地址,这里代表一个链路层的广播地址。
接下第三行(Source),6个字节,值为0003254A3982,这个MAC地址为发起该ARP的主机接口的MAC地址,即源MAC地址。
接下来第四行(Ethertype),2个字节,是协议类型, 0806代表ARP类型,表示该帧是ARP帧。
接下来第五行(Hardware type),2字节,是硬件类型。我们用的是标准以太网,值为1H(0001),表示是10M以太网。
接下来第六行(Protocol type),长度2字节,是协议类型,我们用的是IP协议,IP对应的值为800,所以显示值为0800.
接下来第七行(HLEN),1字节,记录硬件地址长度,这个值告诉处理该帧的程序,读取硬件地址时读到哪里结束。因为使用到网卡的MAC地址,而MAC地址的长度为6字节,所以这里显示长度为6。
接下第八行(PLEN),1字节,为协议长度,这个值告诉处理该帧的程序,
图3第一个ARP数据包详情
读取协议地址时读到哪里结束。这次通信使用IPV4协议,而IPV4为4字节,所以该字段的值就是4
接下第九行(OPER),2字节,为操作类型,ARP请求为1,ARP响应为2,图中是0001,所以这是一个ARP请求。
接下第十行(SHA),6字节,用来定义发送者站的物理地址长度,这里为发送者MAC地址,该地址用来告诉本次操作的对方,是哪个MAC地址对它进行了操作。
接下第十一行(SPA),4字节,用来定义发送站的逻辑地址长度,这里为发送者IP地址,该地址用来告诉本次操作的对方,是哪个IP地址对它进行了操作。
接下第十二行(THA),6字节,用来定义目标的物理地址长度,这里为接收者MAC地址,用来告诉本次操作的对方,是哪个MAC地址应该接收并处理该帧。
接下第十三行(TPA), 4字节,用来定义目标的逻辑地址,这里为接收者IP地址,用来告诉本次操作的对方,是哪个MAC地址应该接收并处理该帧。
最后的0,应该只起到填充作用。这是由于IP报文规定最小不能少于60字节,而ARP只用了42个字节,所以它需要用其他无用数据来填充剩下的12字节。
4捕获并分析传输控制协议
1. 进入“捕获”――“定义过滤器”。在定义过滤器窗口中,点击“文件”――“新建”。
2. 在“新建捕获文件”窗口中,确认新文件的名称(TCP)并点击OK,然后点击“完成”。
3. 转到“高级”卷标,你会看到系统提供的协议列表。点击IP协议标题旁边的“+”号,到下面找到TCP,然后选中TCP。
4. 点击OK,关闭定义过滤器窗口。
5. 按F10开始捕获TCP流量。
6. 分析捕获到的结果(即解释数据包的内容和协议具体实现过程)。
从下图可以得知TCP的工作方式,因为TCP是提供面向连接的可靠的传输服务。
第1、2、3个数据包是HTTP协议使用下层TCP协议通过三次握手原则建立连
接的过程,下图所示,选中三个数据包描述的是TCP三次握手的过程。这样我们可以知道,HTTP通讯是发生在TCP协议之上,缺省端口是TCP的80端口,
图4 TCP的工作方式
所以HTTP是一个可靠的协议。第1、2个数据包的长度为66字节,第3个数据包的长度为60字节
下面先对第一个TCP包进行数据分析。
第一行(Source port):2字节,源端口号,即发送这个TCP包的计算机所使用的端口号。
第二行(Destination port):2字节,目标端口号,即接受这个TCP包计算机所使用的端口号。
第三行(Initial Sequence number):4字节,表示发送数据包的排序序列。用以接收的时候按顺序组合和排序。
第四行(Next expected seq number):大小不定,用以表示当前接受到数据包的序号。
第五行(Date offset):1字节,用来说明数据包的大小,从哪里开始哪里结束。
第六行(Reserved Bit):保留空间,以作未来用。
第七至第十三行(Flags):6字节,标志位,有控制功能。分别为URG,紧急指针;ACK,确认指针;PUSH,不用等待缓冲区装满而直接把报文交给应用层;RST,复位指针;SYN,同步信号;FIN,完成或释放指针。
第十四行(Windows):2字节,发送方希望被接受的数据大小。
第十五行(Checksum):2字节,是根据报头和数据字段计算出的校验和,一定由发送端计算和存储的。
第十六行(Urgent pointer):2字节,紧急指针,告知紧急资料所在的位置。
接下来的是任意选项,里面包含了一些选项,如最大数据段大小等
图5 TCP标记信息(1)
图5 TCP标记信息(2)
三个图分别为前三个数据包中的TCP标记信息,反映了TCP的三次握手过程:客户端向Web服务器发送一个SYN同步连接请求,Web服务器收到请求后
图5 TCP标记信息(3)
向客户端发送一个SYN/ACK数据包,同意客户端的连接请并向客端发起同步,客户端收到该数据包后再次确认,从而成功建立TCP连接。
如上面第一幅图,本机发送一个初始序号(SEQ)455908395给服务器。标志位SYN置为1。
上面第二幅图,服务器收到这个序号后,将应答信号(ACK)和随机产生一个初始序号(SEQ)259161551发回到请求端本机,因为有应答信号和初始序号,所以标志位ACK和SYN都置为1。
上面第三幅图,本机收到服务器的信号后,发回信息给服务器。标志位ACK置为1,其它标志为都为0。注意此时SYN值为0,SYN是标示发起连接的,上两部连接已经完成。
5 捕获并分析用户数据报协议
1. 进入“捕获”――“定义过滤器”,点击“文件”――“新建”。在新建文件名称对话框中,确认为UDP,点击OK,然后点击“完成”按钮。
2. 在定义过滤器窗口中,选择“高级”卷标。从协议列表中,打开IP对话框,然后点击UDP选择框。
3. 选择OK按钮关闭定义过滤器窗口。
4. 按F10开始捕获UDP流量。
5. 现在用完整的域名(FQDN)来对主机执行Ping 命令。进入“开始”――“运行”,并输入ping www.nai.com。现在按回车键,可以ping这个网站四次。
6. 按F9停止并显示捕获结果。
7. 分析捕获到的结果(即解释数据包的内容和协议具体实现过程)。
从下图,我们可以看到UDP协议的详细组成。
第一行(Source port):2字节,为发送进程的端口号。
第二行(Destination port):2字节,为接收进程的端口号。
第四行(length):2字节,说明UDP数据报的总长度,包括报头和数据域,
图6 UDP协议
以字节(B)为单位。
第五行(Checksum):2字节,校验和,简单的差错检验。
接下来的一行是数据,这里显示的是数据长度为29字节。
实验总结:
通过本次实验,我学会了使用Ethereal,加强了对ARP协议的理解。了解了传输控制协议(TCP)是因特网上最常用的第四层协议,TCP可以保证数据传输的可靠性。用户数据报协议(UDP)是网络上另外一种很常用的第四层协议。UDP由很多上层协议使用。更加清楚地掌握网络分层的思想,从感性认识飞跃到理性认识。