一种检测网络质量的方法和系统的制作方法

xiaoxiao2020-10-23  11

一种检测网络质量的方法和系统的制作方法
【技术领域】
[0001]本发明涉及TCP网络数据传输的数据通信领域,尤其涉及一种检测网络质量的方法和系统。
【背景技术】
[0002]当服务器对外服务时,虽然通过访问日志可以得知请求响应时间,但数据在网络中的传输情况并不被应用程序所感知,无法对客户真正体验感做出合理准确的客观评估。
[0003]目前,对于TCP协议的网络,一般通过在客户端检测数据包之间的传输时间差测量网络质量指标,然后通过对这些网络质量指标分析,实现对网络问题的分析、排错、改善网络传输效果等,从而解决了服务器日志信息不全无法对客户真正体验感做出合理准确的客观评估的问题。
[0004]但是,上述网络质量检测均是在客户端进行的,必须通过探测取得客户端数据才能得知服务端的服务质量,导致服务端只能被动等待客户端探测结果才能得知服务质量。

【发明内容】

[0005]本发明的目的在于提供一种检测网络质量的方法和系统,从而解决现有技术中存在的前述问题。
[0006]为了实现上述目的,本发明采用的技术方案如下:
[0007]一种检测网络质量的方法,包括在服务端测量服务端首包时间的方法,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据后,向客户端发送准备好的数据报文,服务端收到第一个准备好的数据报文的有效确认后,测量并输出服务端首包时间,所述服务端首包时间为t5-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t5为服务端收到第一个准备好的数据报文的有效确认的时间点;所述有效确认按照如下方法进行判断:
[0008]服务端向客户端发送准备好的数据报文,如果序号为N,数据有效载荷长度为L,则期望序号为N+L;如果客户端回复的ACK报文累计确认序号大于等于N+L,则为有效确认,否则为无效确认。
[0009]进一步地,还包括在服务端测量服务端内容下载时间的方法,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据后,向客户端发送准备好的数据报文,服务端收到最后一个准备好的数据报文的有效确认后,测量并输出服务端内容下载时间,所述服务端内容下载时间为t6-t5,其中,t5为服务端收到第一个准备好的数据报文的有效确认的时间点,t6为服务端收到最后一个准备好的数据报文的有效确认的时间点。
[0010]进一步地,还包括在客户端测量客户端首包时间的方法按照如下方法在客户端测量:客户端与服务端建立连接后,客户端向服务端发送第一个含有有效载荷的数据,收到服务端第一个有效载荷的数据,且报文ACK累计确认号大于等于客户端向服务端发送的第一个含有有效载荷数据的期望序号后,测量并输出客户端首包时间T4-T3,其中,T3为客户端向服务端发送第一个含有有效载荷数据报文的时间点,T4为客户端收到服务端第一个有效载荷数据报文,且报文ACK累计确认序号大于等于客户端向服务端发送的第一个含有有效载荷数据报文期望序号时的时间点。
[0011]进一步地,还包括在服务端测量服务端服务器响应时间的方法,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据,向客户端发送准备好的数据报文后,测量并输出服务端服务器响应时间为t4-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t4为服务端向客户端发送准备好的数据报文的起始时间点。
[0012]进一步地,还包括在服务端测量服务端建连时间的方法,包括如下步骤:客户端向服务端发送第一序号的SYN请求,服务端收到SYN请求后,向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK后,测量并输出服务端建连时间为t2-tl,其中,tl为客户端向服务端发送第一序号的SYN请求的时间点,t2为服务端向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK的时间点。
[0013]进一步地,还包括在客户端测量客户端服务器响应时间的方法,具体为,客户端首包时间与客户端建连时间之差。
[0014]进一步地,还包括在客户端测量客户端建连时间的方法,包括如下步骤:客户端向服务端发送第一序号的SYN请求,服务端收到SYN请求后,向客户端发送SYN/ACK确认,客户端收到服务端发送的SYN/ACK确认后,测量并输出客户端建连时间T2-T1,其中,Tl为客户端向服务端发送第一序号的SYN请求的时间点,T2为客户端收到服务端发送的SYN/ACK确认的时间点。
[0015]进一步地,还包括在客户端测量客户端内容下载时间,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据,服务端收到客户端发送的数据后,向客户端发送有效邻接序号的有效数据流的含有TCP有效载荷数据报文,客户端收到服务端发送的最后一个有效邻接序号的有效数据流的含有TCP有效载荷数据报文后,测量并输出客户端内容下载时间T5-T4,其中,T4为客户端收到服务端的首包时间的时间点,T5为客户端收到服务端最后一个含有TCP有效载荷数据报文的时间点。
[0016]一种检测网络质量的系统,包括客户端和服务端,所述客户端包括SYN请求发送单元、SYN/ACK确认接收单元、数据包发送单元、数据报文接收单元、数据报文确认发送单元、客户端服务器响应时间计算单元、客户端首包时间计算单元、客户端建连时间计算单元和客户端内容下载时间计算单元,
[0017]其中,
[0018]客户端服务器响应时间计算单元用于计算客户端服务器响应时间,所述客户端服务器响应时间为客户端首包时间与客户端建连时间之差;
[0019]客户端首包时间计算单元用于计算客户端首包时间,所述客户端首包时间为T4-T3,其中,T3为客户端向服务端发送第一个含有有效载荷数据报文的时间点,T4为客户端收到服务端第一个有效载荷数据报文,且报文ACK累计确认序号大于等于客户端向服务端发送的第一个含有有效载荷数据报文期望序号时的时间点;
[0020]客户端建连时间计算单元用于计算客户端建连时间,所述客户端建连时间为T2-T1,其中,Tl为客户端向服务端发送第一序号的SYN请求的时间点,T2为客户端收到服务端发送的SYN/ACK确认的时间点;
[0021]客户端内容下载时间计算单元用于计算客户端内容下载时间,客户端内容下载时间为T5-T4,其中,T4为客户端收到服务端的首包时间的时间点,T5为客户端收到服务端最后一个含有TCP有效载荷数据报文的时间点;
[0022]所述服务端包括SYN请求接收单元、SYN/ACK确认发送单元、数据包接收单元、数据报文发送单元、数据报文确认接收单元、服务端首包时间计算单元、服务端内容下载时间计算单元、服务端服务器响应时间计算单元和服务端建连时间计算单元,其中,
[0023]服务端首包时间计算单元用于计算服务端首包时间,所述服务端首包时间为t5-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t5为服务端收到第一个准备好的数据报文的有效确认的时间点;其中,有效确认按照如下方法进行判断:月艮务端向客户端发送准备好的数据报文,如果序号为N,数据有效载荷长度为L,则期望序号为N+L;如果客户端回复的ACK报文累计确认序号大于等于N+L,则为有效确认,否则为无效确认;
[0024]服务端内容下载时间计算单元用于计算服务端内容下载时间,所述服务端内容下载时间为t6-t5,其中,t5为服务端收到第一个准备好的数据报文的有效确认的时间点,t6为服务端收到最后一个准备好的数据报文的有效确认的时间点;
[0025]服务端服务器响应时间计算单元用于计算服务端服务器响应时间,所述服务端服务器响应时间为t4-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t4为服务端向客户端发送准备好的数据报文的起始时间点;
[0026]服务端建连时间计算单元用于计算服务端建连时间,所述服务端建连时间为t2-tl,其中,tl为客户端向服务端发送第一序号的SYN请求的时间点,t2为服务端向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK的时间点。
[0027]本发明的有益效果是:本发明实施例提供的检测网络质量的方法和系统,打破了传统的在客户端测量的观念,通过在服务端确定各关键数据包的发送或接受时间点,测量数据传输中的关键数据包的时间差,实现了通过探测服务端数据得知服务质量,解决了传统观念中,只能在客户端测量关键数据包的时间差,服务端只能被动等待客户端探测结果才能得知服务质量的问题,进而服 务端利用测量得到的各关键数据包的时间差,对客户真正体验感做出合理准确的客观评估。
【附图说明】
[0028]图1是本发明实施例一提供的在服务端进行数据探测的示意图;
[0029]图2是本发明实施例一提供的在客户端进行数据探测的示意图;
[0030]图3是本发明实施例二提供的检测网络质量的系统结构示意图。
【具体实施方式】
[0031]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明,并不用于限定本发明。
[0032]实施例一
[0033]如图1所示,本发明实施例提供了一种检测网络质量的方法,包括在服务端测量服务端首包时间的方法,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据后,向客户端发送准备好的数据报文,月艮务端收到第一个准备好的数据报文的有效确认后,测量并输出服务端首包时间,所述服务端首包时间为t5-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t5为服务端收到第一个准备好的数据报文的有效确认的时间点;所述有效确认按照如下方法进行判断:
[0034]服务端向客户端发送准备好的数据报文,如果序号为N,数据有效载荷长度为L,则期望序号为N+L;如果客户端回复的ACK报文累计确认序号大于等于N+L,则为有效确认,否则为无效确认。
[0035]其中,在判断确认是否为有效确认时,由于考虑到网络数据乱序或丢包的问题,有可能客户端确认了一部分序号,或者确认了收包之后的序号但累计确认不到N+L,那么客户端回复的ACK不能视为首包的有效反馈,不能记为t5时间点。
[0036]客户端与服务端建立连接后,客户端向服务端发送数据包(如图1中的REQUEST),服务器收到客户端请求数据(如图1中的接收REQUEST的时间点t3)后,向客户端发送准备好的数据报文(如图1中的DATA1,发送时间点为t4),客户端收到该数据报文后,向服务端发送该数据报文的确认,(如图1中的DATA1ACKED,接收时间点为t5),则服务端收到准备好的第一个数据报文的有效确认(累计ACK确认序号大于或等于已发送首包的期望序号)的时间点是t5,则首包时间为t5-t3。本实施例中,以客户端完整收到报文、TCP重组后显性通知服务器作为时间点的判定标准,使用首个数据块的用户确认报文作为首个数据块传输截止的时间点,可以确保客户端收到首包。
[0037]而在传统的测量方法中,首包时间都是在客户端实现的,本领域技术人员没有动机想到可以在服务器端做首包的测量,也没有动机想到使用本实施例中提供的通过成功确认的时间点作为判定首包传输成功的截止时间。因此,本发明实施例提供的方法,不仅能够保证客户端能够收到完整报文,也为网络测量提供了新的思路,即在服务端测量首包时间,打破了传统的必须在客户端测量首包时间的观念,解决了服务端只能被动等待客户端探测数据才能得知服务质量的问题。进而通过使用服务端首包时间对服务端的服务质量进行正确的评估。
[0038]本发明实施例提供的检测网络质量的方法,除了可以在服务端检测服务端首包时间外,还可以在服务端检测内容下载时间,其中,测量服务端内容下载时间的方法,可以包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据后,向客户端发送准备好的数据报文,服务端收到最后一个准备好的数据报文的有效确认后,测量并输出服务端内容下载时间,所述服务端内容下载时间为t6-t5,其中,t5为服务端收到第一个准备好的数据报文的有效确认的时间点,t6为服务端收到最后一个准备好的数据报文的有效确认的时间点。
[0039]本实施例中,将服务端收到第一个准备好的数据报文的有效确认至收到最后一个准备好的数据报文的有效确认的时延,做为内容下载时间。
[0040]上述确定服务端收到最后一个准备好的数据报文的有效确认的时间点的方法,与传统网络质量测量方法中最后数据块截止时间点的确定方法不同,传统测量方法中,一般都是在客户端进行,本领域技术人员没有动机想到在服务端测量内容下载时间,本领域技术人员更没有动机将最后数据报文的有效确认判定为最后数据块截止传输的时间点。
[0041]而本实施例中,采用上述方法选取最后数据块,判定最后数据块传输介质的时间点,以及在服务端测量内容下载时间,可以保证网络中传输的数据均是有效的,而且,可以根据服务端测量得到的内容下载时间,直接对服务质量进行评估,而无需等待客户端的检测数据。
[0042]本发明实施例提供的检测网络质量的方法,除了可以在服务端检测服务端首包时间外,还可以在客户端测量客户端首包时间,从而将服务端首包时间和客户端首包时间同时作为关键参数,评估网络质量。
[0043]其中,测量客户端首包时间的方法,可以包括如下步骤:
[0044]客户端与服务端建立连接后,客户端向服务端发送第一个含有有效载荷的数据,收到服务端第一个有效载荷的数据,且报文ACK累计确认号大于等于客户端向服务端发送的第一个含有有效载荷数据的期望序号后,测量并输出客户端首包时间T4-T3,其中,T3为客户端向服务端发送第一个含有有效载荷数据报文的时间点,T4为客户端收到服务端第一个有效载荷数据报文,且报文ACK累计确认序号大于等于客户端向服务端发送的第一个含有有效载荷数据报文期望序号时的时间点。
[0045]因为网络的一些丢包、乱序特性,有可能导致服务器一次性发出序号为3、4、5的三个序号报文,但因为网络丢包、乱序,有可能客户端收到的报文顺序为4、5、3的序号顺序,因此客户端以且仅以收到之前期望邻接序号为“3”的报文为判断首包的依据,因此选择T4为第一个含有TCP有效载荷数据报文的时间点,而现有技术中不存在使用期望邻接序号作为首包的判定标准的相关内容,所以,本实施例提供的方法,与现有技术中测量客户端首包时间的方法相比,得到的首包时间更加准确,更能够反映用户的真实体验。
[0046]本发明实施例提供的检测网络质量的方法,除了可以在服务端检测服务端首包时间外,还可以在服务端检测服务器响应时间,从而将服务端首包时间和服务器响应时间同时作为关键参数,评估网络质量。
[0047]其中,测量服务端服务器响应时间的方法,可以包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据,向客户端发送准备好的数据报文后,测量并输出服务端服务器响应时间为t4-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t4为服务端向客户端发送准备好的数据报文的起始时间点。
[0048]采用上述方法,实现了在服务端测量服务器响应时间的目的,而现有技术中,均是在客户端测量服务器响应时间,因此,本实施例提供的方法打破了现有技术的传统观念,为数据传输过程中服务器响应时间的测定提供了新的思路和方法。
[0049]而且,采用上述方法在服务端测量服务器响应时间,解决了现有技术中必须等待客户端的数据探测才能对服务质量进行评估的问题。
[0050]本发明实施例提供的检测网络质量的方法,除了可以在服务端检测服务端首包时间外,还可以在服务端测量服务端建连时间,从而将服务端首包时间和服务端建连时间同时作为关键参数,评估网络质量。
[0051]其中,测量服务端建连时间的方法,可以包括如下步骤:客户端向服务端发送第一序号的SYN请求,服务端收到SYN请求后,向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK后,测量并输出服务端建连时间为t2-tl,其中,tl为客户端向服务端发送第一序号的SYN请求的时间点,t2为服务端向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK的时间点。
[0052]如图1所示,服务器收到客户端的第一个SYN请求的时间点是11,发送SYN/ACK给客户端并收到客户端的有效累计确认ACK的时间点是t2,则建连时间为t2-tI。在服务端使用累计有效确认ACK的目的是为了确保客户端收到并正确回应了 ACK报文。这里使用有效累计ACK的时间点与第一个客户端的SYN请求时间点作为判定建连时间的标准。
[0053]在上述方法中,采用t2和tl之间的时差作为建连时间,体现的并不是TCP的往返时延,而是数据传输过程中的真实用户体验感。
[0054]因此,采用本实施例提供的方法测量建连时间,可以与首包时间一起,作为关键参数评估网络质量,且由于上述方法得到的建连时间能够体现数据传输过程中的真实用户体验感,所 以,可以更加准确的评估网络服务质量,有助于更好的改进服务质量。
[0055]与现有技术中,均通过在客户端测量建连时间的思想相比,本实施例中,通过在服务端确定请求报文的起始时间和截止时间,实现了在服务端建连时间的测量,因此,本实施例提供的方法打破了传统的观念,为数据传输过程中建连时间的测量提供了新的思路和方法。
[0056]本发明实施例提供的检测网络质量的方法,除了可以在服务端检测服务端首包时间外,还可以在客户端测量客户端服务器响应时间,从而将服务端首包时间和客户端服务器响应时间同时作为关键参数,评估网络质量,提高评估的准确性。
[0057]如图2所示,测量客户端服务器响应时间的方法,具体可以为,客户端首包时间与客户端建连时间之差。
[0058]本实施例中,所述客户端建连时间可以按照如下方法测量:客户端向服务端发送第一序号的SYN请求,服务端收到SYN请求后,向客户端发送SYN/ACK确认,客户端收到服务端发送的SYN/ACK确认后,测量并输出客户端建连时间T2-T1,其中,Tl为客户端向服务端发送第一序号的SYN请求的时间点,T2为客户端收到服务端发送的SYN/ACK确认的时间点。
[0059]数据流追踪系统会根据哈希四元组的源IP地址、目的IP地址、源端口、目的端口来识别数据是否是同一个流,同时根据TCP协议的发送序号和应答序号的取值范围判定是否为有效流报文。TCP的发送序号的取值范围是O到2的32次方。若序号累加增量小于等于TCP窗口大小,则视为有效数据流。
[0060]客户端发出的第一个SYN报文的时间点是Tl,收到对端有效数据流SYN/ACK报文的时间点是T2,建连时间表示一个TCP报文往返时延。一般情况下服务端的TCP协议栈在收到SYN报文后会第一时间回复SYN/ACK报文,在期间无论客户端发出的SYN到服务端过程丢包,还是服务端回复的SYN/ACK到客户端丢包,都会触发彼此的超时重传机制。对于客户端而言,在网络没有丢包的情况下,建连时间与TCP往返时延一致,但此处以“第一个发送的SYN”和“第一个收到的服务端的SYN/ACK”作为时间起始标记,记为建连时间,则建连时间为T2-T1,建连时间与TCP往返时延有着本质的区别,往返时延表示网络性能指标,而建连时间则表示网络服务质量的。
[0061]本发明实施例提供的检测网络质量的方法,除了可以在服务端检测服务端首包时间外,还可以在客户端测量客户端内容下载时间,从而将服务端首包时间和客户端内容下载时间同时作为关键参数,评估网络质量,提高评估的准确性。
[0062]其中,测量客户端内容下载时间,可以包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据,服务端收到客户端发送的数据后,向客户端发送有效邻接序号的有效数据流的含有TCP有效载荷数据报文,客户端收到服务端发送的最后一个有效邻接序号的有效数据流的含有TCP有效载荷数据报文后,测量并输出客户端内容下载时间T5-T4其中,T4为客户端收到服务端的首包时间的时间点,T5为客户端收到服务端最后一个含有TCP有效载荷数据报文的时间点。
[0063]本实施例中,将客户端收到服务端的首包时间的时间点作为内容下载的起始点,将客户端收到服务端最后一个含有TCP有效载荷数据报文的时间点作为内容下载的截止点。本实施例提供的方法,与现有技术相比,打破了传统观念。而采用上述判断标准选择最后数据块传输的截止时间点,可以更好的体现用户体验。
[0064]实施例二
[0065]如图3所示,本实施例提供了一种检测网络质量的系统,
[0066]包括客户端和服务端,所述客户端包括SYN请求发送单元、SYN/ACK确认接收单元、数据包发送单元、数据报文接收单元、数据报文确认发送单元、客户端服务器响应时间计算单元、客户端首包时间计算单元、客户端建连时间计算单元和客户端内容下载时间计算单元,
[0067]其中,
[0068]客户端服务器响应时间计算单元用于计算客户端服务器响应时间,所述客户端服务器响应时间为客户端首包时间与客户端建连时间之差;
[0069]客户端首包时间计算单元用于计算客户端首包时间,所述客户端首包时间为T4-T3,其中,T3为客户端向服务端发送第一个含有有效载荷数据报文的时间点,T4为客户端收到服务端第一个有效载荷数据报文,且报文ACK累计确认序号大于等于客户端向服务端发送的第一个含有有效载荷数据报文期望序号时的时间点;
[0070]客户端建连时间计算单元用于计算客户端建连时间,所述客户端建连时间为T2-T1,其中,Tl为客户端向服务端发送第一序号的SYN请求的时间点,T2为客户端收到服务端发送的SYN/ACK确认的时间点;
[0071]客户端内容下载时间计算单元用于计算客户端内容下载时间,客户端内容下载时间为T5-T4,其中,T4为客户端收到服务端的首包时间的时间点,T5为客户端收到服务端最后一个含有TCP有效载荷数据报文的时间点;
[0072]所述服务端包括SYN请求接收单元、SYN/ACK确认发送单元、数据包接收单元、数据报文发送单元、数据报文确认接收单元、服务端首包时间计算单元、服务端内容下载时间计算单元、服务端服务器响应时间计算单元和服务端建连时间计算单元,其中,
[0073]服务端首包时间计算单元用于计算服务端首包时间,所述服务端首包时间为t5-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t5为服务端收到第一个准备好的数据报文的有效确认的时间点;其中,有效确认按照如下方法进行判断:月艮务端向客户端发送准备好的数据报文,如果序号为N,数据有效载荷长度为L,则期望序号为N+L;如果客户端回复的ACK报文累计确认序号大于等于N+L,则为有效确认,否则为无效确认;
[0074]服务端内容下载时间计算单元用于计算服务端内容下载时间,所述服务端内容下载时间为t6-t5,其中,t5为服务端收到第一个准备好的数据报文的有效确认的时间点,t6为服务端收到最后一个准备好的数据报文的有效确认的时间点;
[0075]服务端服务器响应时间计算单元用于计算服务端服务器响应时间,所述服务端服务器响应时间为t4-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t4为服务端向客户端发送准备好的数据报文的起始时间点;
[0076]服务端建连时间计算单元用于计算服务端建连时间,所述服务端建连时间为t2-tl,其中,tl为客户端向服务端发送第一序号的SYN请求的时间点,t2为服务端向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK的时间点。
[0077]本实施例提供的系统与现有技术中的系统不同,其中关键数据的发送和接收的起始点和截止点不同,选择的具体时间点和利用其测量服务端建连时间、服务端服务器响应时间、服务端首包时间和服务端内容下载时间的方法及有益效果,以及测量客户端建连时间、客户端服务器响应时间、客户端首包时间和客户端内容下载时间的方法及有益效果,在实施例一中进行了详细的阐述,在此不再赘述。
[0078]通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明实施例提供的检测网络质量的方法和系统,打破了传统的在客户端测量的观念,通过在服务端确定各关键数据包的发送或接受时间点,测量数据传输中的关键数据包的时间差,实现了通过探测服务端数据得知服务质量,解决了传统观念中,只能在客户端测量关键数据包的时间差,服务端只能被动等待客户端探测结果才能得知服务质量的问题,进而服务端利用测量得到的各关键数据包的时间差,对客户真正体验感做出合理准确的客观评估。
[0079]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0080]本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。
[0081]上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
[0082]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或 者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0083]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
【主权项】
1.一种检测网络质量的方法,其特征在于,包括在服务端测量服务端首包时间的方法,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据后,向客户端发送准备好的数据报文,服务端收到第一个准备好的数据报文的有效确认后,测量并输出服务端首包时间,所述服务端首包时间为t5-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t5为服务端收到第一个准备好的数据报文的有效确认的时间点;所述有效确认按照如下方法进行判断: 服务端向客户端发送准备好的数据报文,如果序号为N,数据有效载荷长度为L,则期望序号为N+L;如果客户端回复的ACK报文累计确认序号大于等于N+L,则为有效确认,否则为无效确认。2.根据权利要求1所述的检测网络质量的方法,其特征在于,还包括在服务端测量服务端内容下载时间的方法,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据后,向客户端发送准备好的数据报文,服务端收到最后一个准备好的数据报文的有效确认后,测量并输出服务端内容下载时间,所述服务端内容下载时间为t6-t5,其中,t5为服务端收到第一个准备好的数据报文的有效确认的时间点,t6为服务端收到最后一个准备好的数据报文的有效确认的时间点。3.根据权利要求1所述的检测网络质量的方法,其特征在于,还包括在客户端测量客户端首包时间的方法按照如下方法在客户端测量:客户端与服务端建立连接后,客户端向服务端发送第一个含有有效载荷的数据,收到服务端第一个有效载荷的数据,且报文ACK累计确认号大于等于客户端向服务端发送的第一个含有有效载荷数据的期望序号后,测量并输出客户端首包时间T4-T3,其中,T3为客户端向服务端发送第一个含有有效载荷数据报文的时间点,T4为客户端收到服务端第一个有效载荷数据报文,且报文ACK累计确认序号大于等于客户端向服务端发送的第一个含有有效载荷数据报文期望序号时的时间点。4.根据权利要求1所述的检测网络质量的方法,其特征在于,还包括在服务端测量服务端服务器响应时间的方法,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据包,服务端收到客户端发送的第一序号的数据,向客户端发送准备好的数据报文后,测量并输出服务端服务器响应时间为t4-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t4为服务端向客户端发送准备好的数据报文的起始时间点。5.根据权利要求1所述的检测网络质量的方法,其特征在于,还包括在服务端测量服务端建连时间的方法,包括如下步骤:客户端向服务端发送第一序号的SYN请求,服务端收到SYN请求后,向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK后,测量并输出服务端建连时间为t2-tl,其中,tl为客户端向服务端发送第一序号的SYN请求的时间点,t2为服务端向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK的时间点。6.根据权利要求1所述的检测网络质量的方法,其特征在于,还包括在客户端测量客户端服务器响应时间的方法,具体为,客户端首包时间与客户端建连时间之差。7.根据权利要求1所述的检测网络质量的方法,其特征在于,还包括在客户端测量客户端建连时间的方法,包括如下步骤:客户端向服务端发送第一序号的SYN请求,服务端收到SYN请求后,向客户端发送SYN/ACK确认,客户端收到服务端发送的SYN/ACK确认后,测量并输出客户端建连时间T2-T1,其中,Tl为客户端向服务端发送第一序号的SYN请求的时间点,T2为客户端收到服务端发送的SYN/ACK确认的时间点。8.根据权利要求1所述的检测网络质量的方法,其特征在于,还包括在客户端测量客户端内容下载时间,包括如下步骤:客户端与服务端建立连接后,客户端向服务端发送数据,服务端收到客户端发送的数据后,向客户端发送有效邻接序号的有效数据流的含有TCP有效载荷数据报文,客户端收到服务端发送的最后一个有效邻接序号的有效数据流的含有TCP有效载荷数据报文后,测量并输出客户端内容下载时间T5-T4,其中,T4为客户端收到服务端的首包时间的时间点,T5为客户端收到服务端最后一个含有TCP有效载荷数据报文的时间点。9.一种检测网络质量的系统,其特征在于,包括客户端和服务端,所述客户端包括SYN请求发送单元、SYN/ACK确认接收单元、数据包发送单元、数据报文接收单元、数据报文确认发送单元、客户端服务器响应时间计算单元、客户端首包时间计算单元、客户端建连时间计算单元和客户端内容下载时间计算单元, 其中, 客户端服务器响应时间计算单元用于计算客户端服务器响应时间,所述客户端服务器响应时间为客户端首包时间与客户端建连时间之差; 客户端首包时间计算单元用于计算客户端首包时间,所述客户端首包时间为T4-T3,其中,T3为客户端向服务端发送第一个含有有效载荷数据报文的时间点,T4为客户端收到服务端第一个有效载荷数据报文,且报文ACK累计确认序号大于等于客户端向服务端发送的第一个含有有效载荷数据报文期望序号时的时间点; 客户端建连时间计算单元用于计算客户端建连时间,所述客户端建连时间为T2-TI,其中,Tl为客户端向服务端发送第一序号的SYN请求的时间点,T2为客户端收到服务端发送的SYN/ACK确认的时间点; 客户端内容下载时间计算单元用于计算客户端内容下载时间,客户端内容下载时间为T5-T4,其中,T4为客户端收到服务端的首包时间的时间点,T5为客户端收到服务端最后一个含有TCP有效载荷数据报文的时间点; 所述服务端包括SYN请求接收单元、SYN/ACK确认发送单元、数据包接收单元、数据报文发送单元、数据报文确认接收单元、服务端首包时间计算单元、服务端内容下载时间计算单元、服务端服务器响应时间计算单元和服务端建连时间计算单元,其中, 服务端首包时间计算单元用于计算服务端首包时间,所述服务端首包时间为t5-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t5为服务端收到第一个准备好的数据报文的有效确认的时间点;其中,有效确认按照如下方法进行判断:服务端向客户端发送准备好的数据报文,如果序号为N,数据有效载荷长度为L,则期望序号为N+L ;如果客户端回复的ACK报文累计确认序号大于等于N+L,则为有效确认,否则为无效确认;服务端内容下载时间计算单元用于计算服务端内容下载时间,所述服务端内容下载时间为t6-t5,其中,t5为服务端收到第一个准备好的数据报文的有效确认的时间点,t6为服务端收到最后一个准备好的数据报文的有效确认的时间点; 服务端服务器响应时间计算单元用于计算服务端服务器响应时间,所述服务端服务器响应时间为t4-t3,其中,t3为服务端收到客户端发送的第一序号的数据的时间点,t4为服务端向客户端发送准备好的数据报文的起始时间点; 服务端建连时间计算单元用于计算服务端建连时间,所述服务端建连时间为t2-tl,其中,tl为客户端向服务端发送第一序号的SYN请求的时间点,t2为服务端向客户端发送SYN/ACK确认并收到客户端的有效累计确认ACK的时间点。
【专利摘要】本发明公开了一种检测网络质量的方法和系统,涉及TCP网络数据传输的数据通信领域。本发明实施例提供的检测网络质量的方法和系统,打破了传统的在客户端测量的观念,通过在服务端确定各关键数据包的发送或接受时间点,测量数据传输中的关键数据包的时间差,实现了通过探测服务端数据得知服务质量,解决了传统观念中,只能在客户端测量关键数据包的时间差,服务端只能被动等待客户端探测结果才能得知服务质量的问题,进而服务端利用测量得到的各关键数据包的时间差,对客户真正体验感做出合理准确的客观评估。
【IPC分类】H04L12/26
【公开号】CN104901851
【申请号】CN201510346042
【发明人】白金, 郝冲
【申请人】北京快网科技有限公司
【公开日】2015年9月9日
【申请日】2015年6月19日

最新回复(0)