毕业设计(论文)-局域网的数据包监听及数据分析.doc

上传人:韩长文 文档编号:3947199 上传时间:2019-10-10 格式:DOC 页数:39 大小:648.50KB
返回 下载 相关 举报
毕业设计(论文)-局域网的数据包监听及数据分析.doc_第1页
第1页 / 共39页
毕业设计(论文)-局域网的数据包监听及数据分析.doc_第2页
第2页 / 共39页
毕业设计(论文)-局域网的数据包监听及数据分析.doc_第3页
第3页 / 共39页
毕业设计(论文)-局域网的数据包监听及数据分析.doc_第4页
第4页 / 共39页
毕业设计(论文)-局域网的数据包监听及数据分析.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《毕业设计(论文)-局域网的数据包监听及数据分析.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-局域网的数据包监听及数据分析.doc(39页珍藏版)》请在三一文库上搜索。

1、河南工业职业技术学院毕业设计任务书类别: 三年制高职 专 业:计算机网络技术 班 级: 网络 姓 名: 毕业设计题目: 局域网的数据包监听及数据分析 指导教师及联系方式: 负责人签字: 年 月 日设计任务及要求: 1、认真学习sinffer的使用方法。 2、使用sinffer抓出ftp、http、mail等服务工作数据包。 3、分析收集到的数据包的结构,描述出上述协议的工作过程,写出分析报告 4、用java语言编写文件传送的应用程序 应完成的硬件或软件实验: 1、分析ftp、http、mail的数据包的结构 2、 java语言编写文件传送的应用程序 应交出的设计文件及实物(包括设计论文、程序清

2、单或磁盘、实验装置或产品等): 1、设计论文 2、文件传送的应用程序 指导教师(签字): 年 月 日摘要Internet 是20世纪最伟大的发明之一,它将全世界数以万计的计算机设备连接成一个巨大的网络,并使它们能在彼此之间迅速方便的传输信息,整个世界好像突然变小了,改变整个世界的不只是Internet本身,还有无法计数的构筑在其上的TCP/IP协议簇的体系结构及各层组成协议的工作机制。通过电子邮件,信件的往来不再需要几天甚至几周了,WWW通过Web页面容合了文本,图像,声音,和视频等多种信息,给人类带来了丰富多彩的网络世界。文件的共享已不再困难,FTP的出现,促进文件的共享;间接或隐式地使用远

3、程计算机;使不同的文件存储系统对用户来讲是透明的,因此本文主要阐述了目前网络所使用的网络应用Email ,HTTP,FTP等协议工作原理,做了简单的介绍,并对最广泛的监听工具sniffer做了简单的概述。【关键词】 网络协议 Sniffer_pro 协议分析 HTTP FTP 引 言 目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天。目前号称搞网的人非常多,许多人就是从一把夹线钳,一个测线器联网开始接触网络的,如果只是联网玩玩,知道几个Ping之类的命令就行了,如果想在

4、网络上有更多的发展不管是黑道还是红道,必须要把TCP/IP协议搞的非常明白。 正如Internet的核心TCP/IP协议的目标所指出的,任何人都可以方便地使用Internet,并在其上开发出新的应用。当然,要开发基于Internet上的应用必须先知道它是如何工作的,即它是如何将各种各样不同的设备连接起来的,如何将数据从一个计算机设备传输到另一个的过程,是如何支持各种各样的应用软件的。当然,如果你的 工作不需要知道这些,如果你对此不感兴趣,那就无所谓了,但如果想对网络有更深的了解,那就必须对网络协议的工作原理有更加深刻的认识,和了解。这样将对你的职业生涯有更大的帮助,司机虽然不用生产自己开店汽车

5、,但一个好司机应该知道汽车的工作原理。同样网络软件开发人员不用自己设计通讯网络的软件,但应该知道网络协议的工作原理和机制,这样才能开发正确,稳定,高效的网络软件。地址邮件是Internet上的最早的应用之一,由于电子邮件与传统的邮件相比具有传输速度快速,风雨无阻的优点,同时又不像电话那样需要通信双方同时在场,因此,电子邮件应用出现后发展迅速,目前已成为Internet上最流行的应用之一。WWW因为采用了图像用户界面,在Web页面中融合了文本,图像,声音,和视频等多媒体信息,给网络带来了丰富多彩的网络生活,因此,受到了广泛的欢迎。FTP文件传输协议因为具有:促进文件的共享;鼓励间接地或隐式的来使

6、用远程计算机;使得不同主机的不同文件存储系统对用户来讲是透明的;高效可靠的传输数据,也受到了Internet用户的喜爱。学习过TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了。本论文将介绍利用协议分析工具学习TCP/IP协议簇中最常用的Email,FTP,HTTP等协议,在学习的过程中能直观的看到数据的具体传输过程,及工作原理。 第一章 Internet 概述1.1 Internet的定义在英语中“Inter”的含义是“互动的”,“net”是指“网络”。简单而言,Internet是指一个由计算机构成的交互网络。它是全球数万个计算机网络,数千台计算机连接起来,包

7、含了难以计数的信息资源,向全世界提供信息服务。它的出现,是世界由工业化走向信息化的必然和象征。从网络通信角度来看,Internet是一个以TCP/IP网络协议连接各个国家,各个地区,各个机构的计算机网络的数据通信网。从信息角度来看,Internet是一个集各个部门,各个领域的各种信息资源为一体,供网上用户共享的信息资源网。1.2 Internet 协议 Internet的是实质是实现异种网络的互联,它充分利用各种通信子网的数据传输能力,通过在依赖于通信子网的通信模块和应用程序之间插入新的协议软件来保证应用程序之间的互操作性。因特网协议簇称为 TCP/IP 协议簇。其中包含了为数重多的协议,应用

8、层的 Telnet, FTP, HTTP, SMTP,DNS等协议,传输层TCP, UDP协议,网络层的IP, ARP,RARP,ICMP,IGMP等协议。 1.2 Internet 应用现状与发展趋势 从目前的情况来看,Internet市场仍具有巨大的发展潜力,未来其应用将涵盖从办公室共享信息到市场营销,服务等广泛领域。另外,Internet带来的电子贸易正改变着现今商业活动的传统模式,其提供的方便而广泛的互联必将对未来社会的各个方面带来的影响。 随着世界各国信息高速公路计划的实施,Internet主干网的通信速度将大幅度提高;有线,无线等多种通信方式将更加广泛,有效地融为一体;intern

9、et的商业应用的范围也将不断扩大;Internet的覆盖范围,用户入网数以令人难以令人难以置信的速度发展;网络资源急剧膨胀。总之,人类社会必将更加依赖Internet,人们的生活方式将因此而发生根本的改变。第二章 TCP/IP协议TCP/IP(Transmission Control Protocol /Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。2.1 TCP/IP协议的发展背景1975年,两个网络之

10、间的TCP/IP通信在斯坦福和伦敦大学(UCL)之间进行了测试。1977年11月,三个网络之间的TCP/IP测试在美国、英国和挪威之间进行。在1978年到1983年间,其他一些TCP/IP原型在多个研究中心之间开发出来。ARPANET完全转换到TCP/IP在1983年1月1日发生。1997年,为了褒奖对因特网发展作出突出贡献的科学家,并对TCP/IP协议作出充分肯定,美国授予为因特网发明和定义TCP/IP协议的文顿瑟夫和卡恩“国家技术金奖”。这无疑使人们认识到TCP/IP协议的重要性。2.2 TCP/IP协议的定义TCP/IP 是供已连接因特网的计算机进行通信的通信协议。定义了电子设备(比如计

11、算机)如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP是一个两层的程序。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。网络上的网关计算机根据信息的地址来进行路由选择。即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。 TCP/IP通信是点对点的。TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络

12、。 许多用户熟悉使用TCP/IP协议的高层应用协议。包括万维网的超文本传输协议(HTTP),文件传输协议(FTP),远程网络访问协议(Telnet)和简单邮件传输协议(SMTP)。这些协议通常和TCP/IP协议打包在一起。 使用模拟电话调制解调器连接网络的个人电脑通常是使用串行线路接口协议(SLIP)和点对点协议(P2P)。这些协议压缩IP包后通过拨号电话线发送到对方的调制解调器中。 有TCP/IP协议相关的协议还包括用户数据报协议(UDP),它代替TCP/IP协议来达到特殊的目的。其他协议是网络主机用来交换路由信息的,包括Internet控制信息协议(ICMP),内部网关协议(IGP),外部

13、网关协议(EGP),边界网关协议(BGP)。2.3 TCP/IP协议的参考模型TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了

14、节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。在源主机上,应用层将一

15、串应用数据流传送给传输层。传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。传输层检查顺序号,判断是否是正确的TCP分组,然后检

16、查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。第三章sniffer简介 3.1sniffer软件简介 Sniffer软件是NAI公司推出的功能强大的协议分析软件。本文针对用Sniffer Pro网络分析器进行故障解决。利用Sniffer Pro 网络分析器的强大功能和特征,解决网络问题,将介绍一套合理的故障解决方法。与Netxray比较,Sniffer支持的协议更丰富,例如PPPOE协议等在Netx

17、ray并不支持,在Sniffer上能够进行快速解码分析。Netxray不能在Windows 2000和Windows XP上正常运行,Sniffer Pro 4.6可以运行在各种Windows平台上。Sniffer软件比较大,运行时需要的计算机内存比较大,否则运行比较慢,这也是它与Netxray相比的一个缺点。3.2 Sniffer 工作原理 首先,要知道SNIFFER要捕获的东西必须是要物理信号能收到的报文信息。显然只要通知网卡接收其收到的所有包(一般叫作杂收promiscuous模式:指网络上的所有设备都对总线上传送的数据进行侦听,并不仅仅是它们自己的数据。),在共享HUB下就能接收到这个

18、网段的所有包,但是交换HUB下就只能是自己的包加上广播包。 要想在交换HUB下接收别人的包,那就要让其发往你的机器所在口。交换HUB记住一个口的MAC是通过接收来自这个口的数据后并记住其源MAC,就像一个机器的IP与MAC对应的ARP列表,交换HUB维护一个物理口(就是HUB上的网线插口,这之后提到的所有HUB口都是指网线插口)与MAC的表,所以可以欺骗交换HUB的。可以发一个包设置源MAC是你想接收的机器的MAC,那么交换HUB就把你机器的网线插的物理口与那个MAC对应起来了,以后发给那个MAC的包就发往你的网线插口了,也就是你的网卡可以SNIFFER到了。注意这物理口与MAC的表与机器的A

19、RP表一样是动态刷新的,那机器发包后交换HUB就又记住他的口了,所以实际上是两个在争,这只能应用在只要收听少量包就可以的场合。内部网基于IP的通信可以用ARP欺骗别人机器让其发送给你的机器,如果要想不影响原来两方的通信,可以欺骗两方,让其都发给你的机器再由你的机器转发,相当于做中间人,这用ARP加上编程很容易实现。并且现在很多设备支持远程管理,有很多交换HUB可以设置一个口监听别的口,不过这就要管理权限了。利用这一点,可以将一台计算机的网络连接设置为接受所有以太网总线上的数据,从而实现sniffer。Sniffer就是一种能将本地网卡状态设成杂收状态的软件,当网卡处于这种“杂收”方式时,该网卡

20、具备“广播地址”,它对遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。(绝大多数的网卡具备置成杂收方式的能力)可见,sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:sniffer是极其安静的,它是一种消极的安全攻击。嗅探器在功能和设计方面有很多不同。有些只能分析一种协议,而另一些可能能够分析几百种协议。一般情况下,大多数的嗅探器至少能够分析下面的协议:标准以太网、TCP/IP、IPX、DECNet。 3.3 sniffer的主要功能v

21、 捕获网络流量进行详细分析v 利用专家分析系统诊断问题v 实时监控网络活动 v 收集网络利用率和错误等 3.4功能简介专家分析专家分分析系统提供了一个只能的分析平台,对网络上的流量进行了一些分析对于分析出的诊断结果可以查看在线帮助获得。在下图中显示出在网络中WINS查询失败的次数及TCP重传的次数统计等内容,可以方便了解网络中高层协议出现故障的可能点。对于某项统计分析可以通过用鼠标双击此条记录可以查看详细统计信息且对于每一项都可以通过查看帮助来了解起产生的原因。解码分析对捕获报文进行解码的显示,通常分为三部分,目前大部分此类软件结构都采用这种结构显示。对于解码主要要求分析人员对协议比较熟悉,这

22、样才能看懂解析出来的报文。使用该软件是很简单的事情,要能够利用软件解码分析来解决问题关键是要对各种层次的协议了解的比较透彻。工具软件只是提供一个辅助的手段。因涉及的内容太多,这里不对协议进行过多讲解,请参阅其他相关资料。对于MAC地址,Snffier软件进行了头部的替换,如00e0fc开头的就替换成Huawei,这样有利于了解网络上各种相关设备的制造厂商信息。功能是按照过滤器设置的过滤规则进行数据的捕获或显示。在菜单上的位置分别为 Capture-Define Filter和Display-Define Filter。过滤器可以根据物理地址或IP地址和协议选择进行组合筛选。统计分析对于Matr

23、ix,Host Table,Portocol Dist. Statistics等提供了丰富的按照地址,协议等内容做了丰富的组合统计,比较简单,可以通过操作很快掌握这里就不再详细介绍了。2.4 设置捕获条件基本捕获条件基本的捕获条件有两种:1、链路层捕获,按源MAC和目的MAC地址进行捕获,输入方式为十六进制连续输入,如:00E0FC123456。2、IP层捕获,按源IP和目的IP进行捕获。输入方式为点间隔方式,如:10.107.1.1。如果选择IP层捕获条件则ARP等报文将被过滤掉。高级捕获条件在“Advance”页面下,你可以编辑你的协议捕获条件,高级捕获条件编辑图在协议选择树中你可以选择你

24、需要捕获的协议条件,如果什么都不选,则表示忽略该条件,捕获所有协议。在捕获帧长度条件下,你可以捕获,等于、小于、大于某个值的报文。在错误帧是否捕获栏,你可以选择当网络上有如下错误时是否捕获。在保存过滤规则条件按钮“Profiles”,你可以将你当前设置的过滤规则,进行保存,在捕获主面板中,你可以选择你保存的捕获条件。任意捕获条件在Data Pattern下,你可以编辑任意捕获条件,如下图:用这种方法可以实现复杂的报文过滤,但很多时候是得不偿失,有时截获的报文本就不多,还不如自己看看来得快。 第四章 EMAIL协议 4.1 Email 简介 邮件服务是Internet上最常用的服务之一,它提供了

25、与操作系统平台无关的通信服务,使用邮件服务,用户可通过电子邮件在网络之间交换数据信息。邮件传输包括将邮件从发送者客户端发往邮件服务器,以及接收者从邮件服务器将邮件取回到接收者客户端。 4.2 SMTP和POP3 在TCP/IP协议簇中,一般使用SMTP协议发送邮件,POP3协议接收邮件。SMTP,全称Simple Message Transfer Protocol,中文名为简单邮件传输协议,工作在TCP/IP层次的应用层。SMTP采用Client/Server工作模式,默认使用TCP 25端口,提供可靠的邮件发送服务。POP3,全称Post Office Protocol 3,中文名为第三版邮

26、局协议,工作在TCP/IP层次的应用层。POP3采用Client/Server工作模式,默认使用TCP 110端口,提供可靠的邮件接收服务。 4.3 实验环境 我们使用sniffer网络分析软件捕获并分析一个使用SMTP协议的发送邮件过程,客户端主机名为“xuanxuan”,客户端用户代理使用Foxmail 6.5 ,邮件发送者676624157QQ.com,邮件接收者。在sniffer网络分析软件中开始数据捕获,在Foxmail中使用676624157QQ.com向发送一封邮件,邮件原始信息如图4-1所示。发送完成后即可在sniffer网络分析软件对刚才的邮件发送操作进行分析。 图4-1(原

27、始邮件) 图4-2 (邮件发送数据包) 4.4 STMP数据包分析图4-2所示的是sniffer网络抓包软件对上面发送邮件操作的报文跟踪,详细信息如下: 1. 第1、2个数据包是本地主机向域名服务器请求域名解析的一个过程,本地的IP是192.168.1.31,域名服务器的IP是202.102.224.68。2. 第3、4、5个数据包是TCP连接的三次握手数据包,连接的双方是本机192.168.1.31与域名SMTPQQ.com对应的IP地址58.251.149.147。 3. 从第6个数据包开始,服务端已经准备好邮件接收的准备,客户端开始通过TCP协议连接POP3服务器,并与POP3服务器进行

28、命令的交互。4. 第7到18个数据包是发件方问候收件方,使用的是HELO命令,后面所跟的参数是发件方的服务器地址这里的是xuanxuan表示本地标识(如第7行),客户端发送此命令与SMTP服务器建立连接,将发送者邮件地址发送给SMTP服务器 ,第18行表示收件方和发件方已经建立连接成功。5. 第19到21个数据包是表明开始传送邮件,MAIL这个命令后面所跟的参数是发件方的邮箱地址这里的是676624157QQ.com(如第19行),它的作用还有当邮件无法到达时,发送失败通知。第21行表明邮件的地址已经通过收件方服务器的认证。6. 第22-24个数据包是告诉收件方的邮箱地址。当有多个收件地址的时

29、候需要多次使用该命令,这里如(如图4-2第22行)第24个数据包表明SMTP.QQ.COM服务器同意转发该地址()。7. 第25-27个数据包是表明发送方发送的数据的过程,当遇到.行表明数据传输结束(如图4-2第27个数据包)。8. 第28个数据包的结够如图4-3,它传送到内容是邮件的一些基本信息(发送时间:2010.11.12 - 9:33:35 发件方地址: 主题内容:是一些加了密的编码 MIME版本:1.0版 图第8行是mime使用的是 multiparty/alternative内容类型 图4-39. 第30个数据包的结构如图4-4,它定义一些邮件正文的一些属性编码信息和一些加通过编码

30、的数据。 图4-410. 第33个数据包标志着整个邮件发送已经结束。4.5 SMTP邮件接收邮件 图4-5(邮件接收过程)图4-5所示的是sniffer网络分析系统对上面接收邮件操作包的跟踪,以下是具体包的分析:1. 第1、2个数据包是本地主机向域名服务器请求域名解析的一个过程 ,本地的IP是192.168.1.31,域名服务器的IP是202.102.224.68。2. 第3、4、5个数据包是TCP连接的三次握手数据包,连接的双方是本机192.168.1.31与域名pop3.163.idns.yeah,.net建立连接。3. 第6个数据包表示pop3.163.idns.yeah,net服务器向

31、本机发送一个连接确认消息,表示连接成功。4. 第7,8,9,10,11个数据包是本机192.168.1.31 使用user命令,将用户帐号dpeixuan发送给服务器,第8,9个数据包是pop3服务器返回确认数据包,第10个数据包是本机发送的pass命令携带的是密码,第11个数据包是pop3服务器,根据本机发送的账户和密码,返回的确认数据包,表示本机可以访问本地主机指定的邮箱信息。 5. 第12个数据包是本机向POP3服务器发送STAT命令,请求POP3服务器返回邮箱的统计信息,第13个数据包是POP3服务器接收到本机的STAT命令返回的,相关数据信息。6. 第14个数据包是本机向POP3服务

32、器发送UIDL命令要求POP3返回邮件的唯一标识符,第15.16.个数据包是POP3服务器返回的邮件的唯一标识,17是POP3返回的确认数据包。7. 第18个数据包是本机发送的LIST命令,要求POP服务器返回邮件的数量和每个邮件的大小。第19个数据包是POP3服务器返回的本机请求的信息,本邮箱共有63封邮件,和各个邮件的大小。图4-68. 第20个数据包是本机向服务器发送RETR命令,要求服务器返回RETR 命令所标识的第68封邮件,第21数据包是服务器返回的确认数据包,表示服务器已经接收命令,第22个数据包是显示的是第68封邮件的基本描述信息,第23个数据包是本机发送的确认数据包,第24和

33、25个数据包是邮件明码显示的内容,如图4-6所示,第26.27个数据包是本机向服务器发送的确认数据包,和QUIT命令当POP3服务器接收的此命令后会断开和客户机的连接。4.6 分析结论以上简单介绍了SMTP和POP3协议,并使用sniffer网络分析分析系统,跟踪分析了一个基于SMTP/POP3协议的邮件收发操作。据此,用户在遇到不能正常收发邮件(使用SMTP/POP3协议)的问题时,即可结合上述的SMTP/POP3相关知识,使用网络检测分析软件(这儿是sniffer网络分析系统)对邮件接收和邮件发送的报文进行跟踪分析,以完成对此类故障的快速排查。 第五章 HTTP协议5.1 HTTP协议概述

34、 HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何

35、其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。5.2 HTTP协议的工作模式HTTP协议是基于请求响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是

36、在用户代理(UA)和源服务器(O)之间通过一个单独的连接来完成。当一个或多个中介出现在请求响应链中时,情况就变得复杂一些。中介由三种:代理(Proxy)、网关(Gateway)和通道(Tunnel)。一个代理根据URI的绝对格式来接受请求,重写全部或部分消息,通过URI的标识把已格式化过的请求发送到服务器。网关是一个接收代理,作为一些其它服务器的上层,并且如果必须的话,可以把请求翻译给下层的服务器协议。 5.3 HTTP协议的特点 从上述HTTP协议的工作模式可以看出HTTP协议具有如下主要特点:(1) 支持客户/服务器模式(2) 简捷快速:客户机向服务器请求时,只需传送请求方法和路径。请求方

37、法常用的有GET,HEAD,POST。每种方法规定了客户机和服务器联系的类型不同。由于HTTP协议的简单使得HTTP服务器的程序规模小,因而通信速度很快。(3) 灵活:无连接的含义是限制每次连接至处理一个请求。服务器处理完客户机的请求,并收到客户机的应答后,即断开连接。(4) 无连接(5) 无状态5.4 HTTP协议通信过程 当我们在浏览器的地址栏输入“”然后按回车,这之后发生了什么事,我们直接看到的是打开了对应的网页,那么内部客户端和服务端是如何通信的呢?下面就详细介绍一下HTTP工作的过程 1、URL自动解析 HTTP URL包含了用于查找某个资源的足够信息,基本格式如下:HTTP:/ho

38、st“:”portabs_path,其中HTTP表示桶盖HTTP协议来定位网络资源;host表示合法的主机域名或IP地址,port指定一个端口号,缺省80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。 2、获取IP,建立TCP连接 浏览器地址栏中输入HTTP:/ 当获取IP之后,就开始与所请求的Tcp建立三次握手连接,连接建立后,就向服务器发出HTTP请求。3、客户端浏览器向服务器发出HTTP请求 一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令,接着以头信息的形

39、式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。4、Web服务器应答,并向浏览器发送数据 客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK 应答的第一部分是协议的版本号和应答状态码,正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。 Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据 5、Web服务器关闭TCP连接 一般情况下,一旦Web服务器

40、向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码 Connection:keep-alive  TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。 图5-15.5实验环境 本实用是使用与浏览器访问百度的过程,图5-1是用sniffer抓包工具抓获得本机192.168.1.31访问过程中捕获的数据包下面我们来详细分析HTTP的请求和响应信息的数据包内容和工作过程。图5-25.6数据包详细分析图5-2是第一个数据包的内容如: 1 GET / HTT

41、P/1.12Accept:fapplication/xml.application/xhtml+xml.text/html;/客户端可识别的内容类型列表。 3 Accept-Language: zh-cn 客户端所能解释的语言:简体中文5 Accept-Encoding: gzip, deflate 客户端可以解释的类型6 User-Agent: Mozilla/5.0客户端浏览器型号7 Host: http:/ 提交请求页面8 Connection: Keep-Alive TCP连接保持打开9Accept-Charset请求报头域用于指定客户端接受的字符集10 请求方法URI协议/版本:以上

42、代码第1行“GET”表示请求方法,“HTTP/1.1代表协议和协议的版本,HTTP请求可以使用多种请求方法,最常用的为GET和POST方法请求头:2-9行,包含许多有关客户端环境和请求正文的有用信息。 空行 :10行 请求头和请求正文之间是一个空行,这个行非常重要,表示请求头已经结束,接下来是正文,这个行非常重要,它表示请求头已经结束,接下来是请求正文。请求正文中可以包含客户提交的查询字符串信息,如用户名和密码等。这里没有。 这里有一点值得说明的是:请求方法中的GET和POST方法;GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简

43、单的编码,同时它将作为URL的一部分向Web服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上,同时这个URL长度还有限制,不允许超过1k。POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。HTTP协议服务器响应数据包图5-3图5-3的第3个数据包它是一个响应数据包具体内容如下: 1HTTP/1.1 200 OK2Cache-Control: private, max-age=0

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1