基于wireshark的HTTP协议分析

上传人:最*** 文档编号:11095602 上传时间:2020-04-18 格式:DOC 页数:20 大小:1.96MB
返回 下载 相关 举报
基于wireshark的HTTP协议分析_第1页
第1页 / 共20页
基于wireshark的HTTP协议分析_第2页
第2页 / 共20页
基于wireshark的HTTP协议分析_第3页
第3页 / 共20页
点击查看更多>>
资源描述
长沙理工大学计算机与通信工程学院计算机网络课程设计报告 学 院 计算机与通信工程 专 业 通信工程 班 级 通信1003班 学 号 201054080333 学生姓名 赵旋 指导教师 熊兵 课程成绩 完成日期 2013年7月11日 课程设计成绩评定院 系 计算机与通信工程 专 业 通信工程 班 级 1003 学 号 201054080333 学生姓名 赵旋 指导教师 熊兵 指导教师对学生在课程设计中的评价评分项目优良中及格不及格学习态度与遵守纪律情况课程设计完成情况课程设计报告的质量 指导教师成绩 指导教师签字 年 月 日课程设计答辩组对学生在课程设计中的评价评分项目优良中及格不及格课程设计完成情况课程设计报告的质量课程设计答辩 答辩组成绩 答辩组长签字 年 月 日课程设计综合成绩 注:课程设计综合成绩指导教师成绩60%答辩组成绩40%课程设计任务书计算机与通信工程 学院 通信工程 专业 课程名称计算机网络时间2013学年第二学期1920周学生姓名赵旋指导老师熊兵题 目基于wireshark的HTTP协议分析主要内容:1、利用wireshark软件进行抓包;2、分析HTTP协议的数据包;3、分析HTTP(Address Resolution Protocol)报文格式;要求:(1) 掌握用wireshark软件的操作。(2)按照要求来写课程设计报告,能够正确分析HTTP协议的内容。应当提交的文件: (1)课程设计报告。 第 16 页 共 20 页 赵旋 基于wireshark的HTTP协议分析 基于Wireshark的HTTP协议分析学生姓名:赵旋 指导老师:熊兵摘 要 本文通过协议分析工具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是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本HTTP 1.1。 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从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请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 (1)请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/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-Version Status-Code Reason-Phrase CRLF其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。1xx:指示信息-表示请求已接收,继续处理。2xx:成功-表示请求已被成功接收、理解、接受。3xx:重定向-要完成请求必须进行更进一步的操作。4xx:客户端错误-请求有语法错误或请求无法实现。5xx:服务器端错误-服务器未能实现合法的请求。常见状态代码、状态描述的说明如下。200 OK:客户端请求成功。400 Bad Request:客户端请求有语法错误,不能被服务器所理解。401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。403 Forbidden:服务器收到请求,但是拒绝提供服务。404 Not Found:请求资源不存在,举个例子:输入了错误的URL。500 Internal Server Error:服务器发生不可预期的错误。503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。2.2 wireshark简介Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark主要应用于网络管理员用来解决网络问题,网络安全工程师用来检测安全隐患,网络管理员用来解决网络问题,用来学习网络协议。Wireshark不是入侵侦测软件(Intrusion DetectionSoftware,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。网络分析也被称为流量分析、协议分析、嗅探、数据包分析或者窃听。网络分析器可以是一个配有专用软件的独立硬件设备,也可以是一种安装在PC机上的软件工具。网络分析器有开源和商用两种,不同之处在于它们所支持的协议种类、用户接口、图表及统计功能,以及数据包的解码的质量。而Wireshark正是一种开源的网络分析器。3 设计步骤3.1 课程设计步骤(1) 启动WireShark。图 3.1 wireshark启动界面(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请求解析www.google.com的IP地址。域名系统DNS解析出谷歌服务器的IP地址为173.194.72.199在这个过程中本机IP 10.10.22.75。然后浏览器与服务器建立TCP连接(服务器端的IP地址为173.194.72.199,端口是80)。然后浏览器发出取文件命令:GET /webhp?hl=zh-CN&sourceid=cnhp HTTP/1.1rn。服务器给出响应把文件(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请求报文,请求服务器发送文本文件。代码分析:GET /webhp?hl=zh-CN&sourceid=cnhp HTTP/1.1rn /请求目标Host: www.google.com.hk /目标所在的主机Connection: keep-alive /激活连接Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 /用户代理,浏览器的类型是chrome浏览器;括号内是相关解释X-Chrome-Variations:CLS1yQEIkbbJAQihtskBCKO2yQEIp7bJAQiptskBCLm2yQEI/IPKAQibhMoBAccept-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.1 200 OKrn /状态行,成功Date: Fri, 05 Jul 2013 04:19:16 GMTrn /响应信息创建的时间Expires: -1rn /设置内容过期时间Cache-Control: private, max-age=0rn Content-Type: text/html; charset=UTF-8rn /内容类型:文本Content-Encoding: gziprn /内容编码Server: gwsrn /服务器X-XSS-Protection: 1; mode=blockrn /X-XSS防护X-Frame-Options: SAMEORIGINrn Transfer-Encoding: chunkedrn /分块传输编码rnHTTP chunked responseLine-based text data: text/html /对所传文本信息(基于html)的描述图3.8 第3个包分析:第二个包中抓到的包中的文本文档中有标记还要继续下载的内容,本地服务器再次发送请求报文向谷歌服务器请求下载文件,由请求行可以看出请求的是一张png格式的图片,应该是谷歌主页的logo。代码分析:GET /textinputassistant/tia.png/1.1rn /请求目标是一张格式为png的图片Host: www.google.com /目标所在的主机Connection: keep-alive /激活连接Accept:*/* User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 /用户代理,浏览器的类型是chrome浏览器;括号内是相关解释X-Chrome-Variations: CLS1yQEIkbbJAQihtskBCKO2yQEIp7bJAQiptskBCLm2yQEI/IPKAQibhMoBAccept-Encoding: gzip,deflate,sdch /可接受编码,文件格式Accept-Language: zh-CN,zh;q=0.8 /语言中文Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3 /告诉服务器,客户端提交的表单可能使用的编码Cookie: /允许站点跟踪用户图3.9 第4个包分析:状态行显示的结果表明谷歌服务器成功接收到本地发送的请求报文,相应的的向本地发出响应报文并把图像文件发送给了本地。响应报文中有关于图片的一些信息记录。代码分析:HTTP/1.1 200 OKrn /状态行,成功Content-Type: image/pngrn /内容类型:图像格式为pngLast-modified: mon,02 Apr 2012 02:13:37 GMTrn /上一次修改时间Date: Fri, 05 Jul 2013 04:19:16 GMTrn /响应信息创建的时间Expires: Thu, 03 Ju1 2014 21:21:50rn /设置内容过期时间 Server: sffern /服务器sffe Content-length: 387rn /内容长度X-XSS-Protection: 1; mode=blockrn /X-XSS防护Portable network Graphics /对所传图片信息的描述下面一并分析第5和第六个包。图3.10 第5个包图3.11 第6个包分析:本地连续向谷歌服务器发送了两个请求报文,是因为在第二个包接收后在网页文本文档中标记的图片,音乐等多媒体文档都有标记在里面,浏览器分析出这些内容后对这些内容进行并行下载。图3.12 第7个包分析:状态行显示的结果表明谷歌服务器成功接收到本地发送的请求报文,204 No Content 没有新文档,浏览器应该继续显示原来的文档。重要代码分析:HTTP/1.1 204 no Contentrn /没有需要更新的内容图3.13 第8个包分析:状态行显示的结果表明谷歌服务器成功接收到本地发送的请求报文,相应的的向本地发出响应报文并把文本文件发送给了本地。响应报文中有关于内容编码、内容类型、上次修改时间、创建日期、以及期限的记录上面包的的分析中都有提到,不再赘述。这个文本文件是基于javascript脚本的,详细内容都有具体给出。重要代码分析:Line-based text data:text/javascript /对所传文本信息(基于javascript脚本)的描述最后,通过HTTP协议向谷歌服务器请求谷歌主页的万维网文档,服务器通过HTTP协议把文档传送给浏览器,浏览器下载完所有内容后把所有内容显示到浏览器上面,从而在浏览器上打开了谷歌网站的主页。4 结束语 经过本次实验的我学会了如何使用WireShark进行基本的数据的抓取,以及对数据包的简单分析,加深了对常用网络协议HTTP的理解,顺便也理解了DNS协议,对TCP和UDP的报文结构有了更多的了解。由于自身能力和时间的限制,对更加细节的流程把握的不是很好,希望能够随着今后对课程体系更深入的学习能有进一步的改进。同时,此次课程设计也让我看到了自己的不足,自己对本专业的相关知识掌握的还很少,还有很多知识都没掌握,还让我认识到解决问题的方法、途径很多做事要开阔自己的思维,看待问题要从多个角度看。最后,感谢熊兵老师的悉心指导和同学的帮助!在熊老师的耐心指导下,我从原理到实践都理解通透。老师严谨求实的治学态度、踏实坚韧的工作精神将使我终生受益。非常感谢老师的知道与教诲。参考文献1 谢希仁计算机网络北京:电子工业出版社,2011:239-246 2 陈鸣译.计算机科学网络自顶向下的方法(第4版),2001-9-63计算机网络管理西安电子科技大学出版社,2009:250-2804 罗小嘉学习用wireshark进行抓包分析 2009
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板表格


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!