基于wireshark的HTTP协议分析Word下载.docx

上传人:b****4 文档编号:8216496 上传时间:2023-05-10 格式:DOCX 页数:16 大小:1.55MB
下载 相关 举报
基于wireshark的HTTP协议分析Word下载.docx_第1页
第1页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第2页
第2页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第3页
第3页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第4页
第4页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第5页
第5页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第6页
第6页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第7页
第7页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第8页
第8页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第9页
第9页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第10页
第10页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第11页
第11页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第12页
第12页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第13页
第13页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第14页
第14页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第15页
第15页 / 共16页
基于wireshark的HTTP协议分析Word下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于wireshark的HTTP协议分析Word下载.docx

《基于wireshark的HTTP协议分析Word下载.docx》由会员分享,可在线阅读,更多相关《基于wireshark的HTTP协议分析Word下载.docx(16页珍藏版)》请在冰点文库上搜索。

基于wireshark的HTTP协议分析Word下载.docx

课程名称

计算机网络

时间

2013学年第二学期19~20周

学生姓名

赵旋

指导老师

熊兵

题目

主要内容:

1、利用wireshark软件进行抓包;

2、分析HTTP协议的数据包;

3、分析HTTP(AddressResolutionProtocol)报文格式;

要求:

(1)掌握用wireshark软件的操作。

(2)按照要求来写课程设计报告,能够正确分析HTTP协议的内容。

应当提交的文件:

(1)课程设计报告。

学生姓名:

赵旋指导老师:

摘要本文通过协议分析工具Wireshark软件作为HTTP协议的设计平台,通过对连接网页时用Wireshark进行抓取协议,再过滤得到HTTP协议。

并分析HTTP协议从而了解HTTP协议的数据包。

通过此次课设了解并且学会使用Wireshark软件,学会如何利用Wireshark进行捕获抓包、过滤对协议进行分析,而且进一步掌握HTTP协议。

关键词Wireshark;

数据包;

HTTP协议

1引言

经过计算机网络基础前面时间的学习,使我们对网络应用层的协议有了一定的了解。

协议就像一门语言,需要定义语法、语意和语序(时序、同步)。

语法即为协议的具体格式;

语意定义了具体格式中具体指代,比如说,空一行后的数据表示为数据字段;

就目前说掌握的只是而言,我对语序的理解还不是很清楚,这里就不加赘述。

下面将主要从应用层的协议出发,利用我们所学习过的知识,对不同的应用请求响应过程进行分析,探究在不同网络工作环境下网络协议的变化。

1.1课程设计目的

(1)熟悉并掌握WireShark的基本操作,了解网络协议实体间的交互以及报文交换。

(2)通过对WireShark抓包实例进行分析,进一步加深对常用网络协议的理

解,如DNS和HTTP协议。

(3)培养理论联系实践的科学研究精神。

1.2实验方法

(1)利用Wireshark软件抓取本地PC的数据包,观察其主要使用的网络协议。

(2)根据所获数据包的内容分析相关协议,从而加深对HTTP网络协议的理解。

2基本原理

2.1协议简介

HTTP是HyperTextTransferProtocol(超文本传输协议)的缩写。

它的发展是万维网协会(WorldWideWebConsortium)和Internet工作小组IETF(InternetEngineeringTaskForce)合作的结果,(他们)最终发布了一系列的RFC,RFC1945定义了HTTP/1.0版本。

其中最著名的就是RFC2616。

RFC2616定义了今天普遍使用的一个版本——HTTP1.1。

HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。

它可以使浏览器更加高效,使网络传输减少。

它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。

HTTP是一个无状态的协议。

HTTP协议的主要特点可概括如下:

(1)支持客户/服务器模式。

(2)简单快速:

客户向服务器请求服务时,只需传送请求方法和路径。

请求方法常用的有GET、HEAD、POST。

每种方法规定了客户与服务器联系的类型不同。

由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

(3)灵活:

HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

(4)无连接:

无连接的含义是限制每次连接只处理一个请求。

服务器处理完客户的请求,并收到客户的应答后,即断开连接。

采用这种方式可以节省传输时间。

(5)无状态:

HTTP协议是无状态协议。

无状态是指协议对于事务处理没有记忆能力。

缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。

HTTP有两类报文:

请求报文和响应报文。

1、请求报文

图2.1请求报文结构

一个HTTP请求报文由请求行(requestline)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

(1)请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。

例如,GET/index.htmlHTTP/1.1。

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

这里介绍最常用的GET方法和POST方法。

GET:

当客户端要从服务器中读取文档时,使用GET方法。

GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。

使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?

”)代表URL的结尾与请求参数的开始,传递参数长度受限制。

例如,/index.jsp?

id=100&

op=bind。

POST:

当客户端给服务器提供信息较多时可以使用POST方法。

POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据。

(2)请求头部

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:

”分隔。

请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

User-Agent:

产生请求的浏览器类型。

Accept:

客户端可识别的内容类型列表。

Host:

请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

(3)空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

(4)请求数据

请求数据不在GET方法中使用,而是在POST方法中使用。

POST方法适用于需要客户填写表单的场合。

与请求数据相关的最常使用的请求头是Content-Type和Content-Length。

2、HTTP响应报文

图2.2响应报文结构

HTTP响应也由三个部分组成,分别是:

状态行、消息报头、响应正文。

状态行格式如下:

HTTP-VersionStatus-CodeReason-PhraseCRLF

其中,HTTP-Version表示服务器HTTP协议的版本;

Status-Code表示服务器发回的响应状态代码;

Reason-Phrase表示状态代码的文本描述。

状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

1xx:

指示信息--表示请求已接收,继续处理。

2xx:

成功--表示请求已被成功接收、理解、接受。

3xx:

重定向--要完成请求必须进行更进一步的操作。

4xx:

客户端错误--请求有语法错误或请求无法实现。

5xx:

服务器端错误--服务器未能实现合法的请求。

常见状态代码、状态描述的说明如下。

200OK:

客户端请求成功。

400BadRequest:

客户端请求有语法错误,不能被服务器所理解。

401Unauthorized:

请求XX,这个状态代码必须和WWW-Authenticate报头域一起使用。

403Forbidden:

服务器收到请求,但是拒绝提供服务。

404NotFound:

请求资源不存在,举个例子:

输入了错误的URL。

500InternalServerError:

服务器发生不可预期的错误。

503ServerUnavailable:

服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

2.2wireshark简介

Wireshark(前称Ethereal)是一个网络封包分析软件。

网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

Wireshark主要应用于网络管理员用来解决网络问题,网络安全工程师用来检测安全隐患,网络管理员用来解决网络问题,用来学习网络协议。

Wireshark不是入侵侦测软件(IntrusionDetectionSoftware,IDS)。

对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。

然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。

Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。

网络分析也被称为流量分析、协议分析、嗅探、数据包分析或者窃听。

网络分析器可以是一个配有专用软件的独立硬件设备,也可以是一种安装在PC机上的软件工具。

网络分析器有开源和商用两种,不同之处在于它们所支持的协议种类、用户接口、图表及统计功能,以及数据包的解码的质量。

而Wireshark正是一种开源的网络分析器。

3设计步骤

3.1课程设计步骤

(1)启动WireShark。

图3.1wireshark启动界面

(2)启动PC上的chrome浏览器。

图3.2启动chrome浏览器

(3)开始分组捕获:

选择“抓包”下拉菜单中的“抓包参数选择”命令,在

WireShark:

“抓包选项”窗口中可以设置分组捕获的选项。

图3.3选项

(4)在这次实验中,使用窗口中显示的默认值。

选择“抓包”下拉菜单中的

“网络接口”命令,显示计算机中所安装的网络接口(即网卡)。

我们需要选择电脑真实的网卡,点击后显示本机的IP地址。

(5)随后,点击“开始”则进行分组捕获,所有由选定网卡发送和接收的分

组都将被捕获。

图3.4抓包选项设置

(6)待捕获一段时间,关闭浏览器,选择主窗口中有的“stop”按钮,可以

停止分组的捕获。

图3.5结束按钮

3.2抓包并分析过程

这次实验通过分析打开谷歌主页来分析http协议的作用。

在filter中输入http进行筛选。

wireshark所抓的含有http请求报文的帧:

图3.6打开谷歌主页抓到的HTTP包

对打开谷歌网页这个事务进行分析:

在浏览器中输入谷歌主页地址,敲击回车的过程中,浏览器向DNS请求解析的IP地址。

域名系统DNS解析出谷歌服务器的IP地址为173.194.72.199在这个过程中本机IP10.10.22.75。

然后浏览器与服务器建立TCP连接(服务器端的IP地址为173.194.72.199,端口是80)。

然后浏览器发出取文件命令:

GET/webhp?

hl=zh-CN&

sourceid=cnhpHTTP/1.1\r\n。

服务器给出响应把文件(text/html)发送给浏览器,浏览器显示text/html中的所有文本。

浏览器下载网页文本内容,网页文本中标记着图片、CSS文件和Flash等等。

在这次课程设计中谷歌主页还包括谷歌logo图片和其他一些内容,浏览器分析出这些内容后开4个线程对这些内容进行下载,分别向服务器发送请求报文,服务器接收到内容后根据HTTP协议发送响应报文。

所有的内容下载完毕时候浏览器会显示全部内容,一个完整的谷歌主页就这样打开了。

3.3分析HTTP报文

下面是根据时间顺序给抓到的包编号为1到8。

图3.6第1个包

分析:

本地PC机(IP地址为10.10.22.75)中的浏览器向谷歌的服务器(IP地址为173.194.72.199)请求服务时,先和校园网代理服务器建立TCP连接,并向代理服务器发出HTTP请求报文,请求服务器发送文本文件。

代码分析:

sourceid=cnhpHTTP/1.1\r\n//请求目标

.hk//目标所在的主机

Connection:

keep-alive//激活连接

text/html,application/xhtml+xml,application/xml;

q=0.9,*/*;

q=0.8

Mozilla/5.0(WindowsNT6.1;

WOW64)AppleWebKit/537.31(KHTML,likeGecko)Chrome/26.0.1410.64Safari/537.31//用户代理,浏览器的类型是chrome浏览器;

括号内是相关解释

X-Chrome-Variations:

CLS1yQEIkbbJAQihtskBCKO2yQEIp7bJAQiptskBCLm2yQEI/IPKAQibhMoB

Accept-Encoding:

gzip,deflate,sdch//可接受编码,文件格式

Accept-Language:

zh-CN,zh;

q=0.8//语言中文

Accept-Charset:

GBK,utf-8;

q=0.7,*;

q=0.3//告诉服务器,客户端提交的表单可能使用的编码

Cookie:

NID=67=FFrU7T8-DNJkzwhsGzijolp09lzBgCLKCRzVNkZRrfsoTT2-aTJFjxZ9dWgebP_mDb_DAt6tYahSqydnDLk0gW5vP47JC7Xhj-183NqQxUGUnb3dZHh71-WeAabsKurvndnGPPa3MdY;

PREF=ID=1c5991ad66b47581:

U=4e3bc9a43161a8a2:

FF=2:

LD=zh-CN:

NW=1:

TM=1330947425:

LM=1372979082:

S=zO71aH_kzkhNciIQ//允许站点跟踪用户,cookieID是1c5991ad66b47581

图3.7第2个包

由状态栏的200代码可知,谷歌服务器(IP地址为173.194.72.199)成功接收到我们本地发送的请求报文,向IP地址为10.10.22.75的本地发送响应报文,把文件发送给浏览器。

根据报文内容可以知道更多的关于文档的信息。

HTTP/1.1200OK\r\n//状态行,成功

Date:

Fri,05Jul201304:

19:

16GMT\r\n//响应信息创建的时间

Expires:

-1\r\n//设置内容过期时间

Cache-Control:

private,max-age=0\r\n

Content-Type:

text/html;

charset=UTF-8\r\n//内容类型:

文本

Content-Encoding:

gzip\r\n//内容编码

Server:

gws\r\n//服务器

X-XSS-Protection:

1;

mode=block\r\n//X-XSS防护

X-Frame-Options:

SAMEORIGIN\r\n

Transfer-Encoding:

chunked\r\n//分块传输编码

\r\n

HTTPchunkedresponse

Line-basedtextdata:

text/html//对所传文本信息(基于html)的描述

图3.8第3个包

第二个包中抓到的包中的文本文档中有标记还要继续下载的内容,本地服务器再次发送请求报文向谷歌服务器请求下载文件,由请求行可以看出请求的是一张png格式的图片,应该是谷歌主页的logo。

GET/textinputassistant/tia.png/1.1\r\n//请求目标是一张格式为png的图片

//目标所在的主机

*/*

CLS1yQEIkbbJAQihtskBCKO2yQEIp7bJAQiptskBCLm2yQEI/IPKAQibhMoB

//允许站点跟踪用户

图3.9第4个包

状态行显示的结果表明谷歌服务器成功接收到本地发送的请求报文,相应的的向本地发出响应报文并把图像文件发送给了本地。

响应报文中有关于图片的一些信息记录。

image/png\r\n//内容类型:

图像格式为png

Last-modified:

mon,02Apr201202:

13:

37GMT\r\n//上一次修改时间

Thu,03Ju1201421:

21:

50\r\n//设置内容过期时间

sffe\r\n//服务器sffe

Content-length:

387\r\n//内容长度

PortablenetworkGraphics//对所传图片信息的描述

下面一并分析第5和第六个包。

图3.10第5个包

图3.11第6个包

本地连续向谷歌服务器发送了两个请求报文,是因为在第二个包接收后在网页文本文档中标记的图片,音乐等多媒体文档都有标记在里面,浏览器分析出这些内容后对这些内容进行并行下载。

图3.12第7个包

状态行显示的结果表明谷歌服务器成功接收到本地发送的请求报文,204NoContent没有新文档,浏览器应该继续显示原来的文档。

重要代码分析:

HTTP/1.1204noContent\r\n//没有需要更新的内容

图3.13第8个包

状态行显示的结果表明谷歌服务器成功接收到本地发送的请求报文,相应的的向本地发出响应报文并把文本文件发送给了本地。

响应报文中有关于内容编码、内容类型、上次修改时间、创建日期、以及期限的记录上面包的的分析中都有提到,不再赘述。

这个文本文件是基于javascript脚本的,详细内容都有具体给出。

text/javascript//对所传文本信息(基于javascript脚本)的描述

最后,通过HTTP协议向谷歌服务器请求谷歌主页的万维网文档,服务器通过HTTP协议把文档传送给浏览器,浏览器下载完所有内容后把所有内容显示到浏览器上面,从而在浏览器上打开了谷歌网站的主页。

4结束语

经过本次实验的我学会了如何使用WireShark进行基本的数据的抓取,以及对数据包的简单分析,加深了对常用网络协议HTTP的理解,顺便也理解了DNS协议,对TCP和UDP的报文结构有了更多的了解。

由于自身能力和时间的限制,对更加细节的流程把握的不是很好,希望能够随着今后对课程体系更深入的学习能有进一步的改进。

同时,此次课程设计也让我看到了自己的不足,自己对本专业的相关知识掌握的还很少,还有很多知识都没掌握,还让我认识到解决问题的方法、途径很多做事要开阔自己的思维,看待问题要从多个角度看。

最后,感谢熊兵老师的悉心指导和同学的帮助!

在熊老师的耐心指导下,我从原理到实践都理解通透。

老师严谨求实的治学态度、踏实坚韧的工作精神将使我终生受益。

非常感谢老师的知道与教诲。

参考文献

[1]谢希仁.计算机网络.北京:

电子工业出版社, 

2011:

239-246

[2]陈鸣译.计算机科学网络自顶向下的方法(第4版),2001-9-6

[3]计算机网络管理.西安电子科技大学出版社,2009:

250-280

[4]罗小嘉.学习用wireshark进行抓包分析.2009

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2