收藏 分销(赏)

新版应用层网络合同分析.doc

上传人:w****g 文档编号:3040483 上传时间:2024-06-13 格式:DOC 页数:13 大小:444KB
下载 相关 举报
新版应用层网络合同分析.doc_第1页
第1页 / 共13页
新版应用层网络合同分析.doc_第2页
第2页 / 共13页
新版应用层网络合同分析.doc_第3页
第3页 / 共13页
新版应用层网络合同分析.doc_第4页
第4页 / 共13页
新版应用层网络合同分析.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、HTTP网页访问的协议分析在协议模型中,应用层是用户与计算机进行实际通信的地方,只有当立即就要访问网络时,才会事实上用到这一层。例如,我们可以从系统中卸载掉任何联网组件,如TCP/IP、网卡(NIC)等,仍可以使用IE来浏览本地的HTML文档。可假如我们试图浏览必须使用HTTP的文档,或者用FTP下载一个文献,事情就没那么容易了。此时,IE将尝试访问应用层来响应这一类请求。因此,应用层也可被看作是实际应用程序和下一层(OSI模型中为表达层,TCP/IP模型中为传输层)之间的接口,它通过某种方式把应用程序的有关信息送到协议栈的下面各层。应用层协议则是实现用户和系统之间接口的工具,用户可通过这些协

2、议方便地访问网络资源,实现信息共享,HTTP则是其中一种。HTTP(超文本传输协议)是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。HTTP是基于请求/响应方式的。它的运作方式很简朴:一个客户机与服务器建立连接后,发送一个请求给服务器,服务器接到请求后,给予相应的响应报文。其中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期

3、间,即在某个连接中的客户在另一个连接中也许作为服务器。因此,当网络中的任一台拥有可被访问的页面的计算机被其它计算机访问时,它便是服务器,而当它访问其它浏览非本地的HTTP文档时,它便是客户端。因此,我们可以在局域网中搭建简朴的环境来观测分析访问HTTP的工作流程。最简朴的情况也许是在用户和服务器之间通过一个单独的连接来完毕,如图1-1:图1-1根据图连接好以及配好相应IP后,测试网络互通。而后,在server上建立HTTP服务器。一方面在控制面板添加删除程序添加删除Windows组件中查看Internet信息服务(IIS)是否装上,若没有则安装,若安装好,则可以进入管理工具Internet服务

4、管理器,在默认WEB站点下建立自己的站点及目录。而后,在client浏览器地址栏中键入http:/31.0.0.1便可浏览位于server端默认站点目录下网页。在此过程中,我们通过Ethereal所抓的数据包如下:1、数据链路层:Frame 14 (334 bytes on wire, 334 bytes captured)表达第14个帧,传输334个字节,捕获334个字节,包中的Frame Number: 14Packet Length: 334 bytesCapture Length: 334 bytes也指明该帧是第14帧,传输334字节,捕获334字节。Protocols in fra

5、me: eth:ip:tcp:http 可看出所封装的层结构:应用层用的是HTTP协议,传输层用的是TCP协议,网络层用的是IP协议。 Coloring Rule String Name: HTTPColoring Rule String: http | tcp.port = = 80 从这里我们可以知道,HTTP相应的TCP端标语为80。在TCP和UDP中,都采用了16bit端标语来辨认应用程序。其中,低于1024的端标语被称为众所周知的端标语,它们由RFC3232所定义,大于等于1024的端标语被上层用来建立与其他主机的会话,并且在TCP数据段中被TCP用来作为源方和目的方的地址,具体将在

6、下面传输层中分析。2、以太网帧:从以太网帧中,我们可以看到,目的的MAC地址为:00: 16: d3: ee: 0e: 3f ,源MAC地址为:00: 01: 02: 28: 1a: 34。Multicast: This is a UNICAT frame 表达是单播帧。Type:IP(0x0800)表达帧中封装了IP分组,若Type为0x0806表达帧中封装了ARP分组,这两种帧的分组会被取出,并交付给相应的子程序。3、IP包:Internet Protocol, Src: 31.0.0.2 (31.0.0.2), Dst: 31.0.0.1(31.0.0.1) 可了解目地IP和源IP,此包

7、是client端向server发送的http请求报文,所以,目地IP是31.0.0.1,源IP是31.0.0.2。Version: 4 表达版本4。IPv6的版本号为6。Header length: 20 bytes 首部长为20字节。它是以4B为单位进行计数的,该字段是可变的,当没有选项时,首部长为20B,相应当字段值为5;当有选项时,该字段最大值为15,相应60B的首部长度。Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 表达服务类型。不同的应用有不同的服务质量规定,该字段则是体现网络层的IP分组有不同

8、的服务类型,但在大多数的TCP/IP实现中并不支持服务类型,因此这些位置都为0,路由器也会忽略该字段。Total Length: 320 表达IP数据包的总长度为 320字节。Identification: 0x0432(1074)标记位,在系统范围内,每发出一个IP包,其值自动增长1。Flags: 0x04 (Dont Fragment) 表达没有分段。保存位:1位不分段(DF,Dont Fragment):1位更多段(MF,More Fragments):1位Fragment offset: 0 表达分段偏移为0。Time to live: 128 生命周期值,当每通过1个路由器,其值自动

9、减1。Protocol: TCP (0x06) 负载协议,表达IP数据包负载的协议。Header checksum: 0xb783 correct 首部校验和,只对分组的首部进行校验,而不对分组的数据进行校验。Source: 31.0.0.2 ( 31.0.0.2 ) 表达源IP地址。Destination: 31.0.0.1 ( 31.0.0.1 ) 表达目的IP地址。4、TCP报文:在HTTP工作开始之前,Web浏览器一方面要通过网络与Web服务器建立连接,该连接是通过TCP来完毕的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP

10、/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才干,才干进行更层协议的连接,因此,一方面要建立TCP连接,一般TCP连接的端标语是80。通过数据包,我们也可清楚地了解到TCP连接的建立:(1)SYN报文:该报文由client发起,Sequence number :0 表达客户端向服务器端发送数据时的第一个数据字节的序号就是0。Client建立的源端标语为1102,请求的是http服务(目的端口为80)。Flags:0x0002(SYN) 该标志位表达了这是一个SYN报文,可看到SYN位置1,而ACK位置0,这表白这是一个tcp连接请求。(2)SYN+ACK报

11、文:此报文为服server批准接受连接时,向client发回的报文,用于回应client的建立连接的请求。Sequenen number: 0 表达server向client发送数据时第一个数据字节的序号为0。Tcp的通信的全双工的,在每个方向上的编号是独立的。Acknowledgement number:1为确认号字段,表白server下一个要接受的报文段中第一个数据字节的编号。该报文段的标志位变成了Flags:0x00012(SYN,ACK),表达这是一个SYN+ACK报文,可看到SYN位置1, ACK位置1,这表白服务器端接受连接,则使用SYN位和ACK位作为应答来回应客户端的连接请求。

12、(3)ACK报文:这是由client发送的确认报文,Sequence number :1 表达客户端向服务器端发送数据时的数据字节的序号为1(其值为客户端向服务器端发送数据时的第一个数据字节的序号+1),Acknowledgement number:1为确认号字段,表白client下一个要接受的报文段中第一个数据字节的编号。此报文段的标志位为Flags:0x00010(ACK),表达这是一个ACK报文,可看到SYN位置0,而ACK位置1,客户端使用ACK标志和确认号字段来确认收到了服务器端的SYN+ACK报文。通过这3个报文的互换,完毕了TCP连接的建立。(4)client请求http的报文:

13、Source port: 1102 ( 1102 ) 表达源主机所建立的源端标语为1102。Destination port: http ( 80 ) 表达目的端标语为80,即接受方主机本次连接建立HTTP连接。源主机是从102465535中指定的源端标语,80是被定义为http服务的端标语,TCP不像在数据链路层和网络层中的协议那样,它和它的上层协议不使用硬件的和逻辑的地址来区别发送方的主机地址,它们使用端标语来实现。Sequenen number: 1 序列号为1。上一报文中,客户端的Acknowledgement number也表白将接受第一个数据字节编号为1。Next sequenen

14、 number: 281 要发送的下一序列号为:281。Header length: 20 bytes 首部长20B,它与IP首部长度同样是可变的,都取决于可选项。Flags: 0x0018 ( PSH, ACK )Acknowledgment: set 确认位,用来指示确认号有效,当它置0时,说明该报文不包含确认信息,确认号字段值则被忽略。Push:set 表达请求推送,要立即将报文交给接受应用进程,而不再等到整个缓存满后才向上交付。Window size:65535 指明窗口大小,其范围为065535,当其大小为0时,表达收到了涉及确认号减1在内的所有数据,但当前接受方缓存已满,不能再接受

15、,希望发送方不再发送数据了。而发送方也必需要等到收到窗口大小非0的确认报文后,才干继续发送。5、HTTP报文:(1)请求报文:GET/HTTP/1.1rn 表达是请求http服务的报文,http的版本为HTTP1.1。至今,HTTP有三个版本:0.9、1.0、1.1,0.9只接受GET一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息;1.0这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中;1.1当前版本,持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式在同时发送

16、多个请求,以便减少线路负载,提高传输速度,除此之外,它尚有一个明显的改善错误告知的管理。在http的响应报文中,200多表达正常,300多表达请求重定向到其它的URL,400多表达客户端出现差错,500多表达服务器端出现差错。GET是表达向服务器请求一个文献,可GET仅仅是HTTP众多方法中的一种,它尚有POST:向服务器发送数据让服务器进行解决;PU和:向服务器发送数据并存储在服务器内部;HEAD:检查一个对象是否存在;DELET:表达从服务器上删除一个文献;CONNET:表达对通道提供支;TRACE:跟踪到服务器的途径;OPTIONS:查询Web服务器的性能。Accept: applica

17、tion/x-shockwave-flash, image/gif, image/-xbitmap, image/jpeg, image/pjpeg,*/*rn 表达客户可以接受的媒体格式Accept-Language: zh-cnrn 表达客户可以解决的字符集:简体中文Accept-Encoding:gzip, deflatern 表达客户可以解决的编码方案。HTTP协议上的GZIP编码是一种用来改善WEB应用程序性能的技术。大流量的WEB站点经常使用GZIP压缩技术来让用户感受更快的速度。User-Agent: Mozilla/4.0 ( compatible; MSIE 6.0; win

18、dows NT 5.1; SV1)rn 包含HTTP客户端运营的浏览器类型。Host:31.0.0.1rn Connection:Keep-Alivern 表达此HTTP连接的类型为Keep-Alive。在HTTP/1.1 协议中,所有的请求头,除Host外,其余都是可选的。服务器端接受到客户端请求的数据后,服务器便会向客户回送请求,将HTML文献发给客户端。但由于考虑到大数据易犯错,并且传输时会一直占用带宽,重传时也会导致大量的带宽浪费,以及设备的缓存容量等问题,TCP便将传输的数据分段在较小的范围内并做好相应标记,以提高传输效率。在以太网中,数据包的大小在64-1518字节之间,假如客户端

19、请求的页面大于1518字节,则会将请求的页面分段传送给客户端被分段的数据及控制信息都由TCP控制。我们可以看到,在HTTP请求报文之后,有10个TCP报文,它们是服务器端向客户端发送的被分段的包含HTML数据应答报文及客户端接受到后的确认报文。我们将列举其中的三个作为说明,以下是服务器回送用户规定的html文献的第一个数据包和第二个数据包的内容:Sequence number:1 序列号 在TCP连接过程中,服务器端向客户端发送的批准连接中序列号为0,所以此序列号为1 。Next Sequence number:1461 表达服务器端发送的下一个序列号为1461。Ackonwledgement

20、 number:281 表达服务器端下一个要接受的报文段中第一个数据字节的编号为281。Sequence number:1461 表达服务器端向客户端发送的序列号,与上一报文中Next Sequence number:1461吻合。Next sequence number:2921 表达服务器端发送的下一个序列号为2921。 客户端确认接受到的数据:Sequence number:281 表达序列号为281,这与服务器端将要接受的的报文段中第一个数据字节的编号为281相吻合。Acknowledgement number:2921 表达客户端下一个要接受的报文段的中第一个字节的序列号为2921,

21、这与服务器端发送的下一个序列号2921相吻合。Ack位置1 确认接受到的信息。由于使用了选择性确认机制,所以服务器端只需要发送接受到确认报文中标志的下一个报文便可。除此之外,我们还将注意到,期间每个服务器端发TCP报文中都有如下重组字段:Reassembled PDU in frame: 25 表达在第25帧(包含响应报文的帧)中重组分段信息。(2)响应报文:一方面我们看到了分块的重组信息,第15、16、18、20、21、23、25帧中的数据被重组到了第25帧中。另一方面我们来重点关注下HTTP的响应部分:HTTP/1.1 200 okrn 表达的是URI(Uniform Resource I

22、dentifier,统一资源标记符)及其版本,“200 OK”是HTTP响应的状态码,表达客户端请示的页面存在,且状态正常。Date:Thu,14 May 2023 06:07:40 GMTrn 表达连接服务的时间。Server:Microsoft-IIS/6.0rn 指明服务器名和版本号。X-Powered-By:ASP.NETrn 表达当前请求页面的脚本类型为ASP。Content-Length: 9018rn 显示此HTTP连接的内容的长度。Content-Type: text/htmlrn 显示此HTTP连接的内容类型。Set-Cookie: ASPSESSIONIDQSTATDTR=

23、LEOLDINBPNHLDKENBKMBDLLC; path=/rn 表达此HTTP连接的Cookie信息。Line-based text data:text/html Web服务器传送给客户端浏览器的HTML代码。当客户端接受完信息后,会向服务器端发起终止连接,服务器端再响应终止。TCP连接的通信方式是全双工的,所以每个方向必须单独地进行关闭。只有当两个方向上的连接都被释放时,TCP连接才被完全释放。但连接的释放不是必须由客户端发起,有时也会由服务器端发起。从以上数据分析,我们已经可以大体看出http应用服务的整个工作流程和数据流的走向。HTTP客户端发起一个请求,建立一个到服务器指定端口(

24、默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如HTTP/1.1 200 OK,和(响应的)消息,消息的消息体也许是请求的文献、错误消息、或者其它一些信息。 HTTP是基于TCP传输的对于HTTP服务是至关重要的,一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正能在一定限度上更高效率的保证了数据的传输。例如在以太网中,数据包的大小在64-1518字节之间,假如客户端请求的页面大于1518字节,则会将请求的页面分段传送给客户端,客户端浏览器接受到Web服务器传送给自己的HTML代码后,便开始读取数据并将其显示为网页。在关闭HTTP服务时,客户肯服务器都可以通过关闭套接字来结束TCP/IP对话。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > 合同范本

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服