一种互联网中的测速方法和装置制造方法

文档序号:7979607阅读:197来源:国知局
一种互联网中的测速方法和装置制造方法
【专利摘要】本发明实施例公开了一种互联网中的测速方法和装置。该方法包括:第一通信端向第二通信端发起TCP连接,记录建立TCP连接阶段的数据包交互时间,其中:记录一次数据交互中第一通信端的第一数据包到达第二通信端时的第一时间,记录该次数据交互中所述第一通信端回应于所述第二通信端对所述第一数据包的回应的第二数据包的第三数据包到达所述第二通信端时的第二时间,通过所述第一时间和所述第二时间,对所述第一通信端和所述第二通信端之间的网络连接进行测速。应用本发明,能够提高测速方法或装置的通用性、并降低对现有客户端和服务器的改造成本。
【专利说明】一种互联网中的测速方法和装置
【技术领域】
[0001 ] 本发明涉及计算机【技术领域】,尤其涉及一种互联网中的测速方法和装置。
【背景技术】
[0002]在互联网服务中,为了准确地掌握用户的访问体验,往往需要对用户访问进行测速。目前常用的测速方法有以下两种:
[0003]其一,客户端测速方法:客户端测量某个动作所需要的时间,并主动上报给服务器,服务器收集各个客户端上报的数据,然后进行综合分析,得到服务器的访问速度。
[0004]其二,服务器端测速方法:服务器根据自身业务特点,对用户的业务请求时间进行收集和综合分析,得到服务器的访问速度。例如,HTTP服务器可以测量用户下载某个文件所用的时间,据此得到HTTP服务器的访问速度;邮件服务器可以测量用户读取一封邮件所用的时间,据此得到邮件服务器的访问速度。
[0005]可见,目前互联网的测速方法存在以下缺陷:
[0006]客户端的测速方法需要对客户端进行改造,例如,需要在客户端中增加完成测速和上报功能的模块,由于互联网中存在着海量的客户端,要对海量的客户端进行改造,其改造成本较高。
[0007]目前服务器端的测速方法需要对具体的业务应用模块进行改动,即在业务应用模块中,根据业务类型特点,嵌入进行测速的模块,这使得服务器端的测速模块依赖于服务器上所运行的业务类型,适用于一种业务类型的测速模块常常不能用于另一种业务类型的测速,测速方法和模块的通用性较差,不够灵活,并且由于需要对服务器上的不同业务应用模块分别进行改造,因此改造成本也较高。

【发明内容】

[0008]有鉴于此,本发明提供了一种互联网中的测速方法和装置,以便提高测速方法或装置的通用性、并降低对现有客户端和服务器的改造成本。
[0009]本发明的技术方案具体是这样实现的:
[0010]一种互联网中的测速方法,该方法包括:
[0011]第一通信端向第二通信端发起TCP连接,记录建立TCP连接阶段的数据包交互时间,其中:
[0012]记录一次数据交互中第一通信端的第一数据包到达第二通信端时的第一时间,
[0013]记录该次数据交互中所述第一通信端回应于所述第二通信端对所述第一数据包的回应的第二数据包的第三数据包到达所述第二通信端时的第二时间,
[0014]通过所述第一时间和所述第二时间,对所述第一通信端和所述第二通信端之间的网络连接进行测速。
[0015]一种互联网中的测速装置,该测速装置包括TCP连接信息收集模块和测速模块;
[0016]所述TCP连接信息收集模块,用于在第一通信端向第二通信端发起TCP连接时,记录建立TCP连接阶段的数据包交互时间,其中,记录一次数据交互中第一通信端的第一数据包到达第二通信端时的第一时间,记录该次数据交互中所述第一通信端回应于所述第二通信端对所述第一数据包的回应的第二数据包的第三数据包到达所述第二通信端时的第ニ时间;
[0017]所述测速模块,用于通过所述第一时间和所述第二时间,对所述第一通信端和所述第二通信端之间的网络连接进行测速。
[0018]由上述技术方案可见,本发明中,在需要对第一通信端和第二通信端之间的网络通信进行测速时,第一通信端向第二通信端发起TCP连接,通过对第一通信端与第二通信端之间建立TCP连接阶段的数据包的交互时间进行记录,利用TCP连接报文的交互时间进行测速,因此,对于能够支持TCP连接操作的任意客户端和服务器都能够适用,通用性较強,并且,由于本发明对TCP连接过程本身并不作改动,只是记录TCP连接报文的交互时间信息,利用TCP连接报文的交互时间信息进行测速,因此,不需要对客户端进行改动,并且也不需要对服务器侧具体的业务应用模块进行改动,因此,也能够降低对现有客户端和服务器的改造成本。
【专利附图】

【附图说明】
[0019]图1是建立TCP连接阶段的报文交互示意图。
[0020]图2是本发明提供的互联网中的测速装置结构图。
【具体实施方式】
[0021 ] 本发明中,第一通信端向第二通信端发起TCP连接,记录TCP连接阶段的数据包交互时间,根据记录的数据包交互时间进行测速,其中,第一通信端可以是客户端或服务器,第二通信端可以是服务器或通信端,下面以第一通信端是客户端,第二通信端是服务器为例,对本发明进行示例性说明。
[0022]本发明通过对客户端与服务器之间的TCP连接报文交互时间进行记录,利用TCP连接报文的交互时间进行测速。
[0023]其中,本发明根据TCP连接阶段的不同,可以分别利用不同的TCP连接报文交互时间进行测速。其中,TCP连接阶段包括建立TCP连接的阶段、成功建立TCP连接后交互数据报文的阶段和关闭TCP连接阶段,下面分别对每种阶段下的测速方法进行详细介绍。
[0024]在建立TCP连接的阶段,TCP连接链路上的网元设备记录报文交互时间,根据建立TCP连接阶段的报文接收或发送时间进行测速。
[0025]图1是建立TCP连接阶段的报文交互示意图。
[0026]如图1所示,在典型的TCP网络应用中,客户端与服务器建立TCP连接的过程包括:
[0027]步骤101,客户端向服务器发送SYN数据包。
[0028]步骤102,服务器收到客户端发送的SYN数据包后,立即向客户端回复针对该SYN数据包的ACK响应,即向该客户端回复SYN+ACK响应。
[0029]步骤103,客户端收到服务器的SYN+ACK响应后,立即向客户端返回ACK数据包,即返回针对该SYN+ACK响应的ACK响应。[0030]本发明正是利用建立TCP连接阶段的三次握手时间来作为用户测速数据。
[0031]具体地,TCP连接链路上的网元设备记录接收到客户端发送的SYN数据包的第一时间,TCP连接链路上的网元设备还记录接收到客户端针对服务器回复的ACK响应而进ー步向该服务器返回的ACK响应的第二时间,其中,所述服务器回复的ACK响应是服务器针对所述SYN数据包回复的ACK响应;TCP连接链路上的网元设备根据第一时间和第二时间进行测速。TCP连接链路上的网元设备具体可以将所述第二时间与所述第一时间之差,确定为所述第一通信端与所述第二通信端之间一次网络通信的耗时。
[0032]由于在建立TCP连接阶段,服务器在收到客户端的SYN数据包时,立即针对该SYN数据包回复ACK响应,并且,客户端在收到服务器的ACK响应后,也针对该ACK响应立即向服务器返回ACK响应,由于服务器和客户端是立即回复ACK响应的,从收到TCP报文到反馈ACK响应之间没有间隔,因此,利用所述第一时间和所述第二时间进行测速的准确性较高。
[0033]在成功建立TCP连接后的数据报文交互阶段,TCP连接链路上的网元设备记录成功建立TCP连接后交互数据报文的时间,根据TCP连接过程中交互数据报文的时间进行测速,具体包括:
[0034]TCP连接链路上的网元设备根据数据包的编号和客户端针对数据包回复的ACK响应的编号,确定数据包与客户端针对该数据包回复的ACK响应之间的对应关系,记录所述网元设备接收到服务器发送的数据包的第三时间和接收到客户端针对该数据包回复的ACK响应的第四时间,TCP连接链路上的网元设备根据第三时间和第四时间进行测速。
[0035]在关闭TCP连接的阶段,TCP连接链路上的网元设备记录关闭TCP连接阶段的报文交互时间,根据关闭TCP连接阶段的报文交互时间进行测速,具体包括:
[0036]TCP连接链路上的网元设备根据关闭TCP连接阶段服务器发送的FIN报文的编号和客户端针对FIN报文回复的ACK响应的编号,确定FIN报文与客户端针对该FIN报文回复的ACK响应之间的对应关系,记录所述网元设备接收到服务器发送的FIN报文的第五时间和接收到客户端针对该FIN报文回复的ACK响应的第六时间,TCP连接链路上的网元设备根据第五时间和第六时间进行测速。
[0037]其中,TCP连接链路上的网元设备可以利用独立于业务应用进程以外的单独进程记录客户端与服务器之间的TCP连接报文交互时间,井根据记录的时间进行测速,从而避免了测速对业务应用模块的影响,无需对业务应用模块进行改动。
[0038]其中,本发明所述TCP连接链路上的网元设备,可以是与客户端建立TCP连接的服务器,也可以是所述客户端与所述服务器之间的TCP连接链路上的中间节点设备,例如,可以是网关设备、路由器等,优选地,本发明所述TCP连接链路上的网元设备是与客户端建立TCP连接的所述服务器。
[0039]根据本发明提供的上述方法,本发明还提供了相应的测速装置,具体请參见图2。
[0040]图2是本发明提供的互联网中的测速装置结构图。
[0041]如图2所示,该测速装置包括TCP连接信息收集模块201和测速模块202。
[0042]TCP连接信息收集模块201,用于在第一通信端向第二通信端发起TCP连接时,记录建立TCP连接阶段的数据包交互时间,其中,记录一次数据交互中第一通信端的第一数据包到达第二通信端时的第一时间,记录该次数据交互中所述第一通信端回应于所述第二通信端对所述第一数据包的回应的第二数据包的第三数据包到达所述第二通信端时的第二时间。
[0043]测速模块202,用于通过所述第一时间和所述第二时间,对所述第一通信端和所述第二通信端之间的网络连接进行测速。
[0044]测速模块202,具体可以用于将所述第二时间与所述第一时间之差,确定为所述第一通信端与所述第二通信端之间一次网络通信的耗时。
[0045]其中,所述第一通信端可以是客户端或者服务器,所述第二通信端可以是服务器或者客户端。
[0046]其中,所述第一数据包可以是SYN数据包,所述第二数据包可以是SYN+ACK数据包,所述第三数据包可以是ACK数据包。
[0047]其中,TCP连接信息收集模块201和测速模块202可以位于独立于业务应用进程以外的单独进程中。
[0048]所述单独进程可以运行在第二通信端上或者第一通信端与第二通信端之间的通信链路的任意中间节点上。
[0049]TCP连接信息收集模块201,可以用于记录建立TCP连接阶段的报文交互时间,或者,记录成功建立TCP连接后交互数据报文的时间,或者,记录关闭TCP连接阶段的报文交互时间。
[0050]测速模块202,用于根据建立TCP连接阶段的报文交互时间进行测速,或者根据TCP连接过程中交互数据报文的时间进行测速,或者根据关闭TCP连接阶段的报文交互时间进行测速。
[0051]TCP连接信息收集模块201,具体可以用于记录该测速装置所在网元设备接收到客户端发送的SYN数据包的第一时间,还记录该测速装置所在网元设备接收到客户端针对服务器回复的ACK响应而进一步向该服务器返回的ACK响应的第二时间,其中,所述服务器回复的ACK响应是服务器针对所述SYN数据包回复的ACK响应。
[0052]测速模块202,具体可以用于根据第一时间和第二时间进行测速。
[0053]或者,TCP连接信息收集模块201,具体可以用于根据数据包的编号和客户端针对数据包回复的ACK响应的编号,确定数据包与客户端针对该数据包回复的ACK响应之间的对应关系,记录该测速装置所在网元设备接收到服务器发送的数据包的第三时间和接收到客户端针对该数据包回复的ACK响应的第四时间。
[0054]测速模块202,具体可以用于根据第三时间和第四时间进行测速。
[0055]或者,TCP连接信息收集模块201,具体可以用于根据关闭TCP连接阶段服务器发送的FIN报文的编号和客户端针对FIN报文回复的ACK响应的编号,确定FIN报文与客户端针对该FIN报文回复的ACK响应之间的对应关系,记录该测速装置所在网元设备接收到服务器发送的FIN报文的第五时间和接收到客户端针对该FIN报文回复的ACK响应的第六时间。
[0056]测速模块202,具体可以用于根据第五时间和第六时间进行测速。
[0057]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.ー种互联网中的测速方法,其特征在于,该方法包括: 第一通信端向第二通信端发起TCP连接,记录建立TCP连接阶段的数据包交互时间,其中: 记录一次数据交互中第一通信端的第一数据包到达第二通信端时的第一时间, 记录该次数据交互中所述第一通信端回应于所述第二通信端对所述第一数据包的回应的第二数据包的第三数据包到达所述第二通信端时的第二时间, 通过所述第一时间和所述第二时间,对所述第一通信端和所述第二通信端之间的网络连接进行测速。
2.根据权利要求1所述的测速方法,其特征在于,所述第二时间与所述第一时间之差,为所述第一通信端与所述第二通信端之间一次网络通信的耗时。
3.根据权利要求1所述的测速方法,其特征在于,所述第一通信端是客户端或者服务器,所述第二通信端是服务器或者客户端。
4.根据权利要求1所述的测速方法,其特征在于,所述第一数据包是SYN数据包,所述第二数据包是SYN+ACK数据包,所述第三数据包是ACK数据包。
5.根据权利要求1-4任一项所述的测速方法,其特征在干, 利用独立于业务应用进程以外的単独进程记录所述第一和第二时间,井根据记录的时间进行测速。
6.根据权利要求5所述的测速方法,其特征在干,所述单独进程运行在第二通信端上或者第一通信端与第二通信端之间的通信链路的任意中间节点上。
7.—种互联网中的测速装置,其特征在于,该测速装置包括TCP连接信息收集模块和测速模块; 所述TCP连接信息收集模块,用于在第一通信端向第二通信端发起TCP连接吋,记录建立TCP连接阶段的数据包交互时间,其中,记录一次数据交互中第一通信端的第一数据包到达第二通信端时的第一时间,记录该次数据交互中所述第一通信端回应于所述第二通信端对所述第一数据包的回应的第二数据包的第三数据包到达所述第二通信端时的第二时间; 所述测速模块,用于通过所述第一时间和所述第二时间,对所述第一通信端和所述第二通信端之间的网络连接进行测速。
8.根据权利要求7所述的测速装置,其特征在干, 所述测速模块,用于将所述第二时间与所述第一时间之差,确定为所述第一通信端与所述第二通信端之间一次网络通信的耗时。
9.根据权利要求7所述的测速装置,其特征在干, 所述第一通信端是客户端或者服务器,所述第二通信端是服务器或者客户端。
10.根据权利要求7所述的测速装置,其特征在干, 所述第一数据包是SYN数据包,所述第二数据包是SYN+ACK数据包,所述第三数据包是ACK数据包。
11.根据权利要求7-10任ー权利要求所述的测速装置,其特征在干, 所述TCP连接信息收集模块和所述测速模块位于独立于业务应用进程以外的单独进程中。
12.根据权利要求11所述的测速装置,其特征在于, 所述单独进程运行在第二通信端上或者第一通信端与第二通信端之间的通信链路的任意中间节 点上。
【文档编号】H04L12/26GK103475530SQ201210183974
【公开日】2013年12月25日 申请日期:2012年6月6日 优先权日:2012年6月6日
【发明者】刘贤彬, 肖志强, 余子军 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1