扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:zdnet安全频道 来源:论坛整理 2008年10月16日
关键字: 网页
一、 网页访问介绍
在网络管理工作中,网络管理人员经常会遇到局域网内主机之间访问速度正常,而通过浏览器访问网页(通常所讲的上网)速度慢的情况。要弄清并解决此类问题,需要对网页的加载过程进行详细分析。
标准的网页访问(HTTP)使用TCP 80端口,并通过C/S模式进行工作。
客户端向HTTP服务器发送一个TCP连接的SYN请求(1),HTTP服务器在收到此请求后使用一个SYN/ACK的数据包对客户端进行响应(2),而客户端在收到此响应后再次向HTTP服务器发送一个ACK数据包进行确认(3),此时,TCP连接成功建立。在连接建立后,客户端立即使用请求方法(通常为GET或POST)向服务器请求数据(4),一般情况下HTTP服务器会向客户端回应其相应的HTTP报头和数据(5),但在某些情况下(脚本比较复杂,需耗费大量时间执行)开始的时候只能返回HTTP的报头,而数据(6、7、N)可能会在相隔一段时间后再单独地分组进行传输,当数据传输完后,客户端发送FIN数据包关闭连接。
对应图1中的标识,1-2的时间表示客户端和服务器之间路由所用的时间,4-5的时间为服务器的响应时间、5-N(此时5只返回了HTTP报头)所用的时间为服务器上脚本程序所用的时间。科来网络分析系统5.0中,对于每个数据包都可查看相对时间(设定某个数据包为基准)和时间差,在遇到访问网页速度慢的情况时,捕获HTTP的访问并查看相应的时间,即可确定访问速度慢的原因并排查故障。
二、 查找访问网页慢的原因
内部网中访问http://www.chinaitlab.com/速度很慢,我们使用科来网络分析系统对访问该网页的数据包进行跟踪分析,以找出原因。
1. 1-3的三个数据包是客户端与HTTP服务器的三次握手数据包,所用的时间是2367毫秒左右,其中HTTP服务器返回给客户端的SYN/ACK数据包的时间差较大,为2367毫秒左右;
2. 第4个数据包是客户端向HTTP服务器发起GET请求,HTTP服务器在第6个数据包对它进行响应,所用的时间是1641毫秒;
3. 从第7个数据包到结束,HTTP服务器端开始向客户端传送请求的数据,所用的时间是71183毫秒,即71秒左右;
从上面的分析可知,客户端访问http://www.chinaitlab.com/速度慢的原因主要有两点:
1. 客户端与HTTP服务器距离太远。客户端与HTTP服务器三次握手的时间太长,表示两者这间的路由太多,数据包传送时的路径太远,引起速度慢。
2. HTTP服务器脚本响应时间太长。可能是请求的页面中存在过多的脚本或图片等信息,造成响应的时间长,引起速度慢。
通过上面对访问http://www.chinaitlab.com/的抓包分析,我们便快速地找到了访问网页慢的原因。对于提供对外Web服务的管理人员,通过这种方法,可以有效检测出自己网站的访问速度,并及时对需要调整的参数进行优化,以使网站提供最佳的访问。
注意:在传送一个网页时,Web服务器会同时打开多个TCP连接,如每一张图片都单独使用一个TCP连接进行传送。所以图2中出现了多次的三次握手数据包是正常的,这是因为服务器使用了多个TCP连接打开客户端请求的页面。 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。