姜瑞娟,薛晓瑾,刘艺兰,潘耘
(中国传媒大学计算机学院,北京 100024)
基于OPNET的HTTP性能仿真研究
姜瑞娟,薛晓瑾,刘艺兰,潘耘
(中国传媒大学计算机学院,北京 100024)
摘要:本文以研究HTTP性能为目标,基于OPNET仿真平台创建HTTP网络仿真模型,并进行了仿真实验。仿真中,针对HTTP的不同性能设计了不同的场景,通过对比各场景的仿真结果,分析了HTTP的不同性能对Web应用产生的影响。
关键词:HTTP;Web应用;OPNET
1引言
HTTP(Hyper Text Transfer Protocol)是在1990年开始使用的超文本传输协议,HTTP/0.9、HTTP/1.0是公布比较早的版本,目前最新版本是HTTP/1.1[1]。HTTP协议是客户端浏览器或者其他程序与Web服务器之间的应用层通信协议,此协议指定了客户端可以向服务器发送什么样的消息,并且得到什么样的回应消息。HTTP协议采用请求/响应模式,工作在TCP(Transmission Control Protocol)协议之上。通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口的TCP连接。连接建立后,HTTP服务器则在指定好的端口监听客户端发送过来的请求。一旦收到请求,服务器就会处理该请求,并向客户端发送响应消息,从而完成客户端与服务器的信息交换。
不同版本的HTTP(本文主要研究HTTP/1.0和HTTP/1.1)在性能方面存在很大差异,同一版本不同配置的HTTP(带有流水线的HTTP/1.1和不带流水线的HTTP/1.1)也有性能上的差异,它们都会对Web应用产生不同的影响。
本文基于OPNET对HTTP性能进行研究。OPNET(Optimal Network Engineering Tools)是一款仿真软件,由美国的OPNET Technology开发[2-4]。它可以对现实生活中的网络进行仿真,也能对现实网络的性能进行评估。OPNET采用了层次化的建模机制,自顶向下分别是网络层、节点层和进程层[5],比较全面地反映了实际网络的特性。OPNET软件具有方便操作的图形用户界面,用户只需通过简单的拖放动作和单击动作就可以构建出各种网络配置并对其性能进行测试。OPNET软件中包含了大量的模型库,可以对现有的大多数硬件设备和通信协议进行仿真。OPNET中丰富的仿真模型,为我们仿真研究复杂的计算机网络提供了极大的方便。
2HTTP协议
HTTP/1.0协议很重要的一个特点是支持非持久连接,规定浏览器与服务器只保持短暂的连接。浏览器每次发出请求前都需要与服务器建立一个TCP连接,服务器处理完请求后就会断开TCP连接,即一个TCP连接只处理一个请求,如图1所示。因此,当访问一个嵌入多个图像的网页时,访问过程将包含多次请求和响应,每一对请求和响应都需要独立建立一个TCP连接,所以一次访问中会建立多个TCP连接,如图2所示。虽然HTTP/1.0的非持久连接方式节省了单个对象的传输时间[6],但客户端和服务器端每次建立和关闭连接的过程却耗费了大量时间。此外HTTP/1.0还存在一些其他缺点,如不支持Host请求头字段、存在带宽浪费现象、只定义了16个状态响应码以及对错误或警告的提示不够具体等等。
图1 HTTP/1.0下的客户端与服务器信息交换过程
图2 HTTP/1.0下的网页请求过程
HTTP/1.1协议在继承HTTP/1.0优点的基础上,也对其性能的不足进行了改进,如添加了更多的方法、增加了状态响应码、支持Host请求头字段等,但HTTP/1.1支持持久连接是与HTTP/1.0最大的不同之处。所谓持久连接,就是客户端与服务器建立TCP连接,在服务器处理完一个请求之后,并不是马上关闭连接,而是在传输完多个请求和响应之后,才关闭连接,这样将明显减少建立连接和关闭连接所消耗的时间。HTTP/1.1默认情况下使用流水线技术,把各内联对象的多个请求组合成单条消息,客户端可以连续发送多个请求,而无需等待上一次请求结果的返回,这也减少了整个访问过程所需要的时间,如图3所示。
图3 带有流水线的HTTP/1.1下的客户端与服务器信息交换过程
在不带流水线的HTTP中,客户端每次只能向服务器发送一个请求,必须在收到这个请求的响应之后才能发送下一个请求,如图4所示。在一个往返时间(RTT,Round-Trip Time)内,我们只发送了一个请求,而且在服务器向客户端做出响应之后,服务器便开始等待客户端发出下一个请求,但是下一个请求并不能马上到达,所以会造成资源的浪费。在带流水线的HTTP中,客户端可以依次发送多个请求,不必等待收到上一个请求的响应[7],服务器收到这些请求后,会按照请求的先后到达顺序依次对这些请求做出响应,如图3所示,而且在带流水线的持久连接中服务器空等请求的时间比较少,这就提高了网络的利用率。
图4 不带流水线的HTTP/1.1下的客户端与服务器信息交换过程
3基于OPNET的HTTP应用仿真实验设计
本文使用OPNET 17.5仿真软件对HTTP性能问题进行仿真研究,仿真内容为客户端通过互联网浏览网页。实验中,一个客户端节点会周期性地向Web服务器发送请求,以实现对请求网页的检索和浏览。在OPNET中,把每个被请求的网页建模为一个文本对象(即HTML文件)和几个内嵌于文本对象的其他对象(如图像)的一个组合体。HTTP应用的仿真原理大致如下:首先,客户端与服务器建立TCP连接,然后客户端会向服务器发送一个HTTP请求来索要网页;服务器收到客户端发来的请求后,将请求进行处理,并向客户端发送它请求的网页。在客户端对网页进行解析的过程中,如果这个网页包含有多个内嵌对象,那么客户端会后续地向服务器发出对这些对象的请求。
本文共设计三个实验场景,各场景的Web应用配置如表1所示,每个场景的网络拓扑都由3个客户端节点、1个Web服务器节点和1个IP云节点构成,如图5所示。选择页面响应时间、对象响应时间作为统计量。
表1 Web应用配置表
图5 网络拓扑图
客户端请求对象数目的不同使得对象响应时间也不同。图6给出了在文本对象中嵌入不同数目图像对象的情况下,不同性能的HTTP所对应的对象响应时间。
图6 不同性能HTTP对象响应时间比较
由图6可知,在请求数量较少的情况下,不同性能的HTTP对应的对象响应时间差距不大;随着请求数量的不断增加,对象响应时间的差距逐渐体现出来。本实验中,我们将文本对象中嵌入7幅大型图像(总共8个对象)来模拟现实网络的Web应用。
4实验结果分析
场景1中对象响应时间与页面响应时间的统计结果如图7所示。
图7 对象响应时间与页面响应时间对比
客户端向服务器发出一个对象请求,服务器收到请求并向客户端做出响应,这个往返时间就是对象响应时间。一般情况下,一个网页通常包含多个对象,所以当客户端收到服务器返回的所有请求的响应时,才算完成了整个页面的响应。因此如图7所示,页面响应时间明显大于对象响应时间。
场景1、场景2和场景3中的对象响应时间统计结果如图8所示。
图8 对象响应时间仿真结果对比
带流水线的HTTP/1.1一次可以向服务器发送多个对象请求,因为服务器要同时处理多个请求,所以对象响应时间就会被相应拉长,而不带流水线的HTTP/1.1一次只处理一个请求,所以前者的对象响应时间大于后者。
虽然HTTP/1.0为每个请求建立TCP连接需要一定的时间,但在请求数量较多的情况下,HTTP/1.1的流水线机制使服务器需要额外耗费更长的时间来处理这些请求,所以后者被拉长的对象响应时间大于前者。
相对于不支持持久连接的HTTP/1.0,支持持久连接的不带流水线的HTTP/1.1重用已经打开的TCP连接,省去了为每个请求建立TCP连接的时间,所以它的对象响应时间小于前者。
场景1、场景2和场景3中页面响应时间统计结果如图9所示。
图9 页面响应时间仿真结果对比
因为在不带流水线的HTTP/1.1中,客户端每次只能向服务器发送一个请求,要等收到这个请求的响应之后才能发送下一个请求,而带有流水线的HTTP/1.1无需等到服务器返回的响应就可以连续发送请求,从而节省了请求等待时间。所以,前者的页面响应时间大于后者。
一般情况下,HTTP/1.0使用并行TCP连接,最大并行连接数为4,相比于每次只能发送一个请求的不带流水线的HTTP/1.1,减少了整个页面的响应时间。
HTTP/1.1支持持久连接,比起非持久连接的HTTP/1.0,减少了不必要的TCP连接建立时间,而且带流水线的HTTP/1.1一次发送的对象请求数目大于HTTP/1.0并行连接下的最多请求数目。所以,前者的页面响应时间小于后者。
5总结
本文基于OPNET,实现了对HTTP协议应用的仿真,通过比较不同场景下的对象响应时间和页面响应时间,了解到HTTP的不同性能会对Web应用产生不同的影响,并基于HTTP的实现机制对仿真结果进行了分析。本文所做的研究仅包括HTTP/1.0和HTTP/1.1两个版本,也有学者对正在制定中的HTTP/2.0[8]进行了研究,HTTP/2.0作为HTTP/1.1发布后的首个更新版本,它的异步并发、增量传输和关键内容优先等机制为我们进一步研究HTTP性能提供了新的方向。
参考文献
[1]查志琴,李慧.HTTP协议的发展对Web服务器性能的影响[J].常州工学院学报,2003,02:49-52.
[2]宋文苑,樊水康,张日飞.OPNET网络仿真与建模方法[J].电脑开发与应用,2007,09:51-52,55.
[3]周慧.OPNET网络仿真及其应用研究[D].武汉科技大学,2009.
[4]张剑.基于OPNET仿真建模方法研究[D].武汉理工大学,2005.
[5]王娟,王亚民.OPNET的关键技术研究[J].实验科学与技术,2007,03:66-68,79.
[6]徐健,王涛.HTTP/1.1的分析[J].西南师范大学学报(自然科学版),2004,02:315-319.
[7]肖戈林.HTTP协议技术探析[J].江西通信科技,2001,01:17-24.
[8]范菁菁.HTTP/2.0关键技术及标准化进展[J].电信网技术,2014,06:60-63.
(责任编辑:马玉凤)
Simulation Study of HTTP Performance Based on OPNET
JIANG Rui-juan,XUE Xiao-jin,LIU Yi-lan,PAN Yun
(School of Computer Science,Communication University of China,Beijing 100024)
Abstract:To study the HTTP performance,based on OPNET simulation platform,we do simulations with some HTTP network simulation models.In the simulation,we design different scenarios according to different performances of HTTP.By comparing the simulation results of each scenario,we analyze the influence of different performance of HTTP to Web applications.
Keywords:HTTP;web applications;OPNET
作者简介:姜瑞娟(1988-),女(汉族),山东临沂人,中国传媒大学计算机学院研究生.E-mail:jiangruijuan@cuc.edu.cn
基金项目:中国传媒大学2014年教学改革项目
收稿日期:2015-03-12
中图分类号:TP393
文献标识码:A
文章编号:1673-4793(2015)05-0050-05