一种计算客户端和中间层之间的网络传递速度的方法

文档序号:7868820阅读:235来源:国知局
专利名称:一种计算客户端和中间层之间的网络传递速度的方法
技术领域
本发明涉及一种计算客户端和中间层之间企业管理软件的网络传递速度的方法。
背景技术
目前在企业中采用计算机进行管理,可以大大提高管理的效率,同时也降低了管理成本及提高了时效,目前一般的企业管理软件是三层结构,数据库,中间层(业务层),客户端(表现层)。客户端通过特定的协议和中间层交互,这些交互往往成为软件的性能瓶颈,特别是大型企业如果在管理中有大量的数据要传输,则可能会造成企业中局域网的堵塞,因此如果能够对客户端和中间层之间的网络传递速度进行有效地检测,得到实际的数据传递速度,可以对于企业的计算机管理中的网络设置作出正确的设计。以避免客户端和中间层的数据交互成为软件的性能瓶颈。但是目前的计算客户端和中间层之间的网络传递速度的方法,往往是采用下载文件或网络测速工具进行模拟测速,而网速具有波动性,特别是多台设备多种应用共享同一网络带宽时,另外应用程序不同时段同时上线用户数不同, 使用功能不同,使用强度不同,数据包大小不同,很难准确模拟,无法准确测出网络速度,因此亟待发明出新的计算客户端和中间层之间的网络传递速度的方法,以解决目前存在的计算客户端和中间层之间的网络传递速度无法准确计算的问题。

发明内容
本发明的目的是解决现有技术中采用模拟测速方法来计算客户端和中间层之间的网络传递速度所存在的准确性问题,提供一种计算客户端和中间层之间的网络传递速度的方法。本发明设计一种计算客户端和中间层之间的网络传递速度的方法,其特征在于由下列步骤组成
(1)客户端产生请求将请求打包成中间层可以理解的数据包,
(2)客户端将数据包发给中间层,在数据包头上增加字段ClientSendTime,记录客户端的发送时间,增加字段ClientSize,记录包的大小,
(3)中间层收到客户端的数据包,在数据包头上增加字段ServerRecvTime,记录中间层的接收时间,
(4)中间层解释数据包,处理生成新的结果,将新的结果打成新数据包,在新数据包头上记录字段 ClientSendTime, ClientSize, ServerRecvTime,增加字段 ServerSendTime,记录中间层发送时间,增加字段ServerSize,记录中间层生成的新包大小,
(5)中间层将新数据包发给客户端,
(6)客户端收到中间层生成的新数据包,增加字段ClientRecvTime,记录客户端收到的时间,另外从新数据包头取得ClientSendTime, ClientSize, ServerRecvTime,ServerSendTime, ServerSize 的值,
(7)客户端解释新的数据包,在界面给用户响应,
(8)得到客户端和中间层之间的网络传递速度为(ClientSize+ ServerSize)/ (ServerRecvTime - ClientSendTime +ClientRecvTime - ServerSendTime),其中ServerRecvTime - ClientSendTime为客户端和中间层两个不同的物理机器的固定时差。本发明的优点是(I)计算传递速度时考虑服务器的开销,(2)允许中间层和客户端存在不可估计的时差,(3)具体实现和编程语言无关和底级协议无关,底层协议可采用http、https、socket 等。
具体实施例方式下面结合实施例对本发明作详细说明,
(1)客户端产生请求将请求打包成中间层可以理解的数据包,
(2)客户端将数据包发给中间层,在数据包头上增加字段ClientSendTime,记录客户端的发送时间,增加字段ClientSize,记录包的大小,
(3)中间层收到客户端的数据包,在数据包头上增加字段ServerRecvTime,记录中间层的接收时间,
(4)中间层解释数据包,处理生成新的结果,将新的结果打成新数据包,在新数据包头上记录字段 ClientSendTime, ClientSize, ServerRecvTime,增加字段 ServerSendTime,记录中间层发送时间,增加字段ServerSize,记录中间层生成的新包大小,
(5)中间层将新数据包发给客户端,
(6)客户端收到中间层生成的新数据包,增加字段ClientRecvTime,记录客户端收到的时间,另外从新数据包头取得ClientSendTime, ClientSize, ServerRecvTime,ServerSendTime, ServerSize 的值,
(7)客户端解释新的数据包,在界面给用户响应,
(8)得到客户端和中间层之间的网络传递速度为(ClientSize+ ServerSize)/ (ServerRecvTime - ClientSendTime +ClientRecvTime - ServerSendTime),其中ServerRecvTime - ClientSendTime为客户端和中间层两个不同的物理机器的固定时差。上海博科资讯股份有限公司的Yigo平台产品中实现了以上方法,
下面列举一个真实调用的例子,其六个值分别如下
ClientSendTime 1355210038111,
ClientSize 348,
ServerRecvTime: 1355210040158,
ServerSendTime 355210040236,
ServerSize 4627,
ClientRecvTime 1355210038239,
size单位为byte, time单位为ms,以1970年某一时刻作为参照的值,
如果不考虑时差,ClientRecvTime - ServerSendTime居然是负数,也就是说服务端传递到客户端所花时间为负数,显然不合理。根据本方法可计算出网络传输速度=(ClientSize + ServerSize) / (ServerRecvTime - ClientSendTime + ClientRecvTime - ServerSendTime)=
(348 + 4627) / (1355210040158 - 1355210038111 + 1355210038239 -1355210040236) = 4975 / 51 = 97. 5byte/ms。
当然多次调用累计更能说明问题,如下数据是一个真实项目所记录的部分数据,远程访问221次,发送数据92. 54KB,接收数据1266. 016KB,网络传输用时1. 881s,网络传输速度705. 324KB/s,中间层用时6. 202s。 这些数据说明,客户端和服务器的221次交互中,共传输了约1358KB数据,网络传输速度700多KB/s,应该说网络环境非常好。
权利要求
1. 一种计算客户端和中间层之间的网络传递速度的方法,其特征在于由下列步骤组成 (1)客户端产生请求将请求打包成中间层可以理解的数据包, (2)客户端将数据包发给中间层,在数据包头上增加字段ClientSendTime,记录客户端的发送时间,增加字段ClientSize,记录包的大小, (3)中间层收到客户端的数据包,在数据包头上增加字段ServerRecvTime,记录中间层的接收时间, (4)中间层解释数据包,处理生成新的结果,将新的结果打成新数据包,在新数据包头上记录字段 ClientSendTime, ClientSize, ServerRecvTime,增加字段 ServerSendTime,记录中间层发送时间,增加字段ServerSize,记录中间层生成的新包大小, (5)中间层将新数据包发给客户端, (6)客户端收到中间层生成的新数据包,增加字段ClientRecvTime,记录客户端收到的时间,另外从新数据包头取得ClientSendTime, ClientSize, ServerRecvTime,ServerSendTime, ServerSize 的值, (7)客户端解释新的数据包,在界面给用户响应, (8)得到客户端和中间层之间的网络传递速度为(ClientSize+ ServerSize)/ (ServerRecvTime - ClientSendTime +ClientRecvTime - ServerSendTime),其中ServerRecvTime - ClientSendTime为客户端和中间层两个不同的物理机器的固定时差。
全文摘要
本发明涉及一种计算客户端和中间层之间的网络传递速度的方法。其特征在于由下列步骤组成客户端将数据包发给中间层,在数据包头上增加字段记录客户端的发送时间,增加字段记录包的大小,中间层收到客户端的数据包,在数据包头上增加字段记录中间层的接收时间,中间层将新的结果打成新数据包,在新数据包头上增加字段,记录中间层发送时间,增加字段记录中间层生成的新包大小,中间层将新数据包发给客户端,客户端收到中间层的新数据包,从新数据包头取得各个值,客户端解释新的数据包,(8)客户端解释新的数据包,经过计算得到客户端和中间层之间的网络传递速度,本发明的优点是考虑服务器的开销,允许中间层和客户端存在时差,实现和编程语言无关和底级协议无关底层协议。
文档编号H04L12/26GK103001830SQ201210550940
公开日2013年3月27日 申请日期2012年12月18日 优先权日2012年12月18日
发明者蒋正华, 王元和, 周小伟 申请人:上海博科资讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1