app服务器没有响应时间,应用响应时间(ART)

应用响应时间(ART)

作者:易隐者 发布于:2012-9-13 18:38 Thursday

分类:网络分析

在实际的业务应用操作中,客户端向服务器的操作主要分为两类,一类为客户端向服务器上传数据,如HTTP应用中的“post”操作,另一类为客户端从服务器取数据,如HTTP应用中的“get”操作。应用程序对这两个操作的处理机制不同,因此有必要把应用响应时间按照客户端的这两类操作进行划分,下面分别针对服务器端的这两种响应时间进行阐述。

“get”操作应用响应时间

“Get”操作主要是指客户端向服务器端发送取数据的请求。应用程序对“Get”操作的响应时间主要是指服务器收到get请求数据包至服务器响应第一个带有应用层数据的数据包的时间间隔。其响应时间的计算如下图所示:

228360f8b7ee0146561548f9396437e6.png

Get操作应用响应时间计算示意图(一)

应用程序在处理客户端请求的时候会消耗一定的时间,并不一定能够及时响应请求的数据,为了不让客户端等待过长的时间(时间过长,很可能导致客户端重传数据),服务器很可能首先对客户端的TCP数据段进行响应(Delay ACK)。在上面的图示中,第二个包是TCP层的响应,其应用层的数据的长度len=0,第三个包包含有应用层数据,其数据长度len=n,因此,该应用响应时间就是T3-T1。而下图中,应用程序很快的响应了客户端的请求,第二个包中就已经包含有应用层数据,其长度为len=n,其应用响应时间的计算就是从第二个数据包开始,为T2-T1。

6c8b7a992a3c1df2158697f2548fdc06.png

Get操作应用响应时间计算示意图(二)

我们再看一下实际应用中的get操作应用响应时间的计算。下图为web应用中某“get”操作的数据交互过程:

f3dce5a187d51bbb5bc40734736aef5d.png

web应用中GET 操作的交互过程

在上图中,我们可以看到,当客户端向服务器发送取数据的get请求后,服务器的传输层首先针对客户端的TCP数据段进行了响应,其应用层数据长度为0,接下来第三个数据报是服务器应用程序对客户端get请求的响应,其包含应用数据。在这个过程中,“get”操作应用响应时间就是第三个数据包与第一个数据包的时间间隔,在该例子中为0.08149秒。

“Post”操作应用响应时间

“post”操作主要是指客户端向服务器上传数据的操作。“Post”操作应用响应时间主要指服务器端接收到客户的post操作数据包与服务端处理完这些数据后对客户端做出相应响应的时间。关于这种应用响应时间计算的方法请参见本博客中的《关于client push操作应用响应时间的计算方式的讨论》一文。这篇文章较为详细的描述了客户端向服务器递交数据时的服务器应用响应时间测量的方法。

在实际的应用中,存在两种常见的应用场景,一种是服务器端在收到客户端的数据,应用进程处理完毕后,需要向客户端发送响应数据;另外一种情况是服务器端接收并处理来自客户端的数据,但是应用进程并不会发送响应数据给客户端。下面我们分别针对这两种类型的应用进行描述。

1,有应用层响应数据的

当客户端向服务器发送“post”操作数据后,应用层如果有应用数据的响应,那么计算应用响应时间的方法与计算“get”操作应用响应时间的方法一致。就是指服务器收到post请求数据包至服务器响应第一个带有应用层数据的数据包的时间间隔。下图展现的就是一个针对客户端的 “post”操作,应用进程产生应用层响应数据的交互过程:

824f2878d2be2fde3e41ed2d5270c0ca.png

有应用层响应数据的“post”操作交互过程

在这个“post”操作数据交互过程中,我们可以分析出应用响应时间为12.847148秒。

2,无应用层响应数据

在客户端向服务器发送数据时,如果服务器端应用进程没有应用数据响应,那么服务端仅仅只在TCP层面响应客户端数据的ACK,如下图所示的应用层数据交互的过程:

277da736bbddb57ccdbfeb39110ea97a.png

无应用响应数据的“post”操作数据交互

既然无应用数据响应,那么就说明站在网络数据交互的角度,无法测量应用程序的响应时间,即使测量了,也无法真正反映应用程序的响应时间,在实际应用中,我们就没有测量的必要了。

您对本文的评分:

当前平均分: 9.7(13 次打分)

发表评论:

昵称

邮件地址 (选填)

个人主页 (选填)

a13ce127d8636155ed898fb2ef5a79da.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值