网络测速方法及系统的利记博彩app
【专利摘要】本发明提供了一种网络测速方法,用于测定客户端与服务器之间的网络连接速度,该方法包括以下步骤:在客户端上创建Socket连接,并通过Socket连接向服务器发送连接服务器的80端口的请求,该请求被服务器自动允许后,客户端通过基于TCP/IP协议的三次握手机制与服务器通信连接;客户端向服务器发送测试数据包,并于此刻开始计时;客户端根据是否有接收到自服务器返回的反馈数据包及接收到反馈数据包时的计时时长,输出相应的测速结果。本发明还提供了一种网络测速系统。实施本发明的网络测速方法和系统,具有测试成功率高、不易失效的优点。
【专利说明】网络测速方法及系统
【技术领域】
[0001]本发明涉及网络监测领域,更具体地说,涉及一种网络测速方法及系统。
【背景技术】
[0002]随着网络信息化的不断加快,提升网站的用户体验已成为重中之重。有很多因素都可以直接影响着网站的用户体验,例如平台、应用、内部网络、互联网、用户终端的差异等。在用户终端方面,通过提高探测终端配置、统一浏览器类型和版本等方式基本可以基本解决由于用户终端差异导致的网络测速异常;而在网络方面,由于网络运营商众多,传输线路和互通情况复杂,经常导致网络响应超时。因此,有必要对各种网络连接的速度进行测速。
[0003]传统的网络测速方法通常使用ping命令实现网络测速,但这种网络测速方法在处理以下情况时有颇多不足:
[0004]出于安全考虑,网络服务提供商大多设置了服务器防火墙,从而禁止了外部用户使用Ping命令如来进行网络测速,这极大的影响了 ping命令测试的使用。另外,由于在进行测试网络速度时,需要频繁地进行Ping命令测试,这种测速方法很可能会被网络攻击测速策略认定为恶意攻击,导致客户端地址被入黑名单,导致使用Ping命令测速失效。
[0005]其他一些测速命令如tracert命令等往往也有上述不足。
【发明内容】
[0006]本发明要解决的技术问题在于,针对现有技术中的测速方法中在客户端被列入黑名单或的或服务器禁止Ping命令时无法测速的问题,提供一种网络测速方法和系统,在客户端被列入黑名单或的或服务器禁止Ping命令时,仍可测定客户端与服务器之间的网络连接速度。
[0007]本发明解决上述技术问题的技术方案是:提供一种网络测速方法,用于测定客户端与服务器之间的网络连接速度,该方法包括以下步骤:
[0008]S1:在所述客户端上创建Socket连接,并通过所述Socket连接向所述服务器发送连接所述服务器的80端口的请求,所述请求被所述服务器自动允许后,所述客户端通过基于TCP/IP协议的三次握手机制与所述服务器通信连接;
[0009]S2:所述客户端向所述服务器发送测试数据包,并于此刻开始计时;
[0010]S3:所述客户端根据是否有接收到自所述服务器返回的反馈数据包及接收到所述反馈数据包时的计时时长,输出相应的测速结果。
[0011]在根据本发明所述的网络测速方法的所述步骤S3中:
[0012]在一预定计时时长Tl内,判断所述客户端是否接收到自所述服务器返回的反馈数据包:当所述判断结果为是时,输出测速结果为所述反馈数据包返回到所述客户端时的计时时长T0;当所述判断结果为否时,输出测速结果为超时。
[0013]本发明还提供了一种网络测速系统,用于测定客户端与服务器之间的网络连接速度,该系统包括:
[0014]通信单元,用于在所述客户端上创建Socket连接,并通过所述Socket连接向所述服务器发送占用所述服务器的80端口的请求;并在所述请求被所述服务器自动允许后,所述客户端通过基于TCP/IP协议的三次握手机制与所述服务器通信连接;
[0015]数据接收单元,用于接收自所述服务器返回的反馈数据包;
[0016]数据发送单元,用于在所述客户端与所述服务器通信连接后向所述服务器发送测试数据包;
[0017]计时单元,用于在所述数据发送单元向所述服务器发送测试数据包时开始计时;
[0018]输出单元,用于根据是否有接收到自所述服务器返回的反馈数据包及接收到所述反馈数据包时的计时时长,输出相应的测速结果。
[0019]在根据本发明所述的网络测速系统中,所述输出单元用于判断在一预定计时时长Tl内,所述客户端是否接收到自所述服务器返回的反馈数据包:当所述判断果为是时,输出测速结果为T0,其中,所述TO为所述反馈数据包返回到所述客户端时的计时时长;当所述判断结果为否时,输出测速结果为超时。
[0020]由于ping命令是基于网络层IP协议的ICMP子协议,不存在端口号,因此如果服务器开启了防火墙,则可以禁止ICMP包,即禁止ping命令。本发明采用Socket进行网络测速,基于TCP/IP协议栈,在传输层是基于TCP协议,网络层是基于IP协议,通过URL地址和80端口号进行网络测速。即使服务器开启了防火墙,也不会禁止80端口,因为网站的访问都是基于80端口的,如果禁止,则网站就无法访问了。因此实施本发明的网络测速方法和系统,具有测试成功率高、不易失效的优点。
【专利附图】
【附图说明】
[0021]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0022]图1是本发明的一较佳实施例提供的网络测速方法的流程图;
[0023]图2是本发明的一较佳实施例提供的网络测速系统的结构性框图。
【具体实施方式】
[0024]为了使本发明的目的更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
[0025]在现有的网络测速技术中,ping命令是一个常用的命令。测试ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文原封不动地传回给发送者。
[0026]ping命令执行后显示出被测试系统主机名和相应IP地址、返回给当前主机的ICMP报文顺序号和往返时间等。ICMP (Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方。ICMP协议是IP层的一个协议,但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据报的数据发送前需要两级封装:首先添加ICMP报头形成ICMP报文,再添加IP报头形成IP数据报。由于IP层协议是一种点对点的协议,而非端对端的协议,它提供无连接的数据报服务,没有端口的概念,因此很少使用bind O和connectO函数,若有使用也只是用于设置IP地址。执行ping命令时,发送数据使用SendtoO函数,接收数据使用recvfromO函数。
[0027]其原理为:由于网络服务器有唯一确定的IP地址,当给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。但是,当服务器禁止Ping命令或将客户端地址列入黑名单时,Ping命令则失效,无法对服务器进行测速。
[0028]图1示出本发明的一较佳实施例的网络测速方法的流程图。如图1所示,在本方法开始后,首先进行步骤S1:在客户端I上创建Socket连接,并通过Socket连接向服务器2发送连接服务器2的80端口的请求,请求被服务器2自动允许后,客户端I通过基于TCP/IP协议的三次握手机制与服务器2通信连接;
[0029]具体来说,首先,在客户端I上通过调用SocketO函数以创建一个So cket连接,如 connect (sd, (sockaddr*)&sinRemote, sizeof(sockaddr_i η));
[0030]然后,客户端I将服务器2URL地址和80端口绑定给该Socket连接,如可以调用其bind O函数绑定所要测试的服务器2的IP地址和其80端口所对应的端口号;客户端I通过绑定了 URL和端口号的该Socket连接向服务器2发送连接请求,如调用其connect()函数向该服务器2的80端口发送连接请求;服务器2—直处于监听来自客户端I的连接请求直到客户端I真正发出请求后,其自动地允许该请求,并通过TCP/IP的三次握手机制与客户端I通信连接。
[0031 ] 一般地,由于服务器2的访问都是基于80端口实现访问的,其80端口处于常开状态,即其在接收到连接请求时会自动激活80端口。因此,只要可以访问,该服务器2都会被该连接请求激活并与客户端I联机。
[0032]接着进行步骤S2:客户端I向服务器2持续发送测试数据包,并于此刻开始计时。如调用函数sendstatus=send(sd, sendy, size, 0)进行测试数据包的发送。其中,每次发送之间可相隔一段时间,或无间隔。
[0033]80端口是为HTTP (HyperText Transport Protocol)即超文本传输协议开放的,此为网络传输使用最多的协议,主要用于万维网传输信息的协议。
[0034]然后进行步骤S3:在一预定计时时长Tl内,判断客户端I是否接收到自服务器2返回的反馈数据包:当判断结果为是时,输出测速结果为反馈数据包返回到客户端I时的计时时长TO ;当判断结果为否时,输出测速结果为超时。服务器2接收到客户端I的请求数据后处理客户端I请求,处理完请求后返回处理数据给客户端I。如果发送的数据不能正常返回,socket则一直发送数据直到超时后退出测试数据包的发送。
[0035]具体地,首先判断客户端I是否接收到自该服务器2返回的反馈数据包。并根据该判断结果进行下一步骤:当有接收到反馈数据包时,停止发送测试数据包,并记录接收到该反馈数据包时的计时时长T0,然后输出单元15根据该计时时长输出TO的监测结果;当没有接收到反馈数据包时,再进一步判断是计时时长是否大于预定时长Tl,若计时时长大于预定时长Tl,则说明在预定时长Tl仍然无反馈数据包返回,因而根据该判断结果输出超时的监测结果;若计时时长不大于预定时长Tl,则返回上述判断是否有接收到反馈数据包的步骤。
[0036]从客户端I发送请求数据到接收到响应数据的响应时长可使用表达式 response_time= ((double) ((response_timer2.QuadPart-response_timer1.QuadPart) * (double) 1000.0/ (double) cpu_frequency.QuadPart)),以获得测速结果。
[0037]当输出监测结果后,整个测速流程结束。当然地,还可以多次地测速以取平均值,以减小测速的误差,还可以对网络连接速度的实时监测。
[0038]图2示出本发明的一较佳实施例的网络测速系统的结构性框图。如图2所示,本发明的网络测速系统包括通信单元11,数据接收单元12、数据发送单元13、计时单元14和输出单元15。
[0039]其中,用于在所述客户端I上创建Socket连接,并通过所述Socket连接向所述服务器2发送占用所述服务器2的80端口的请求;并在所述请求被所述服务器2自动允许后,所述客户端I通过基于TCP/IP协议的三次握手机制与所述服务器2通信连接;
[0040]数据接收单元12,用于接收自服务器2返回的反馈数据包;
[0041]数据发送单元13,在客户端I与服务器2通信连接后向服务器2发送测试数据包;
[0042]计时单元14,用于在数据发送单元13向服务器2发送测试数据包时开始计时;
[0043]输出单元15,用于根据是否有接收到自所述服务器2返回的反馈数据包及接收到所述反馈数据包时的计时时长,输出相应的测速结果。
[0044]客户端I与服务器2通信连接之间的后,客户端I可通过通信单元11与服务器2进行通信,包括将数据发送单元13发送的测试数据包传出和将自服务器2返回的反馈数据包通过通信单元11输入后由数据接收单元12接收。
[0045]输出单元15判断数据接收单元12是否有接收到自服务器2返回的反馈数据包的同时,读取计时时长并将计时时长与预定时长Tl的大小关系,输出测速结果。当判断结果为是时,输出测速结果为T0,其中,TO为反馈数据包返回到客户端I时的计时时长;当判断结果为否时,输出测速结果为超时。
[0046]本发明采用Socket进行网络测速,基于TCP/IP协议栈,在传输层是基于TCP协议,网络层是基于IP协议,通过URL地址和80端口号进行网络测速。即使服务器2开启了防火墙,也不会禁止80端口,因为网站的访问都是基于80端口的,如果禁止,则网站就无法访问。因此实施本发明的网络测速方法和系统,具有测试成功率高、不易失效的优点。
[0047]以上仅为本发明的较佳实施例而已,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种网络测速方法,用于测定客户端(I)与服务器(2)之间的网络连接速度,其特征在于,该方法包括以下步骤: 51:在所述客户端(I)上创建Socket连接,并通过所述Socket连接向所述服务器(2)发送连接所述服务器(2 )的80端口的请求,所述请求被所述服务器(2 )自动允许后,所述客户端(I)通过基于TCP/IP协议的三次握手机制与所述服务器(2)通信连接; 52:所述客户端(I)向所述服务器(2)发送测试数据包,并于此刻开始计时; 53:所述客户端(I)根据是否有接收到自所述服务器(2)返回的反馈数据包及接收到所述反馈数据包时的计时时长,输出相应的测速结果。
2.根据权利要求1所述的网络测速方法,其特征在于,在所述步骤S3中: 在一预定计时时长Tl内,判断所述客户端(I)是否接收到自所述服务器(2)返回的反馈数据包:当所述判断结果为是时,输出测速结果为所述反馈数据包返回到所述客户端(1)时的计时时长T0;当所述判断结果为否时,输出测速结果为超时。
3.—种网络测速系统,用于测定客户端(I)与服务器(2)之间的网络连接速度,其特征在于,该系统包括: 通信单元(11),用于在所述客户端(I)上创建Socket连接,并通过所述Socket连接向所述服务器(2)发送占用所述服务器(2)的80端口的请求;并在所述请求被所述服务器(2)自动允许后,所述客户端(I)通过基于TCP/IP协议的三次握手机制与所述服务器(2)通信连接; 数据接收单元(12),用于接收自所述服务器(2)返回的反馈数据包; 数据发送单元(13),用于在所述客户端(I)与所述服务器(2)通信连接后向所述服务器(2)发送测试数据包; 计时单元(14),用于在所述数据发送单元(13)向所述服务器(2)发送测试数据包时开始计时; 输出单元(15),用于根据是否有接收到自所述服务器(2)返回的反馈数据包及接收到所述反馈数据包时的计时时长,输出相应的测速结果。
4.根据权利要求3所述的网络测速系统,其特征在于: 所述输出单元(15)用于判断在一预定计时时长Tl内,所述客户端(I)是否接收到自所述服务器(2)返回的反馈数据包:当所述判断果为是时,输出测速结果为T0,其中,所述TO为所述反馈数据包返回到所述客户端(I)时的计时时长;当所述判断结果为否时,输出测速结果为超时。
【文档编号】H04L12/26GK103763156SQ201410042827
【公开日】2014年4月30日 申请日期:2014年1月28日 优先权日:2014年1月28日
【发明者】林建湖, 王联勤, 董培, 胡敏, 曾智勇, 臧永飞, 金正星, 万宇涛 申请人:中国移动(深圳)有限公司