一种网络连接方法及装置与流程

文档序号:12068294阅读:256来源:国知局
一种网络连接方法及装置与流程

本发明涉及电子技术领域,尤其涉及一种网络连接方法及装置。



背景技术:

由于移动网络的复杂特性,手机客户端经常会在各种不同的地理环境中进入弱网络状态下,而弱网络状态下手机的网络通信成功率很低。移动互联网应用大多使用TCP协议,TCP协议是针对有线网络设计的传输层协议,TCP协议并不适应移动网络的特征,通常移动应用开发选择TCP协议。

超时与重传是TCP协议最核心的部分,在不稳定的移动网络中,超时重传的设计尤为重要。在连接建立的过程中,由于网络本身的不可靠特性,不可避免的需要重传机制来保障可靠服务。在大多数BSD(Berkeley Software Distribution,套接字)实现中,若主动连接方没有收到SYN(synchronous,握手信号)的回应,则在第6秒发送第2个SYN进行重试,再间隔24秒后,发送第3个SYN进行重试,在第75秒还没有收到回应,则connect调用返回ETIMEOUT,因此在不能立刻确认失败的情况下,需要75秒的时间才能获得结果。如果并不是用户网络不可用,而是某台服务器坏掉、端口禁用、网络不稳定等因素,那75秒的时间只能尝试1个IP&Port对是不可接受的。例如,对于Android的connect超时重传,可以将超时间隔依次设置为(1,2,4,8,16),第5次重试后32秒返回ETIMEOUT,总共需要63秒;对于iOS的connect超时重传,可以将超时间隔依次设置为(1,1,1,1,1,2,4,8,16,32),总共需要67s。

在现有技术方案中,存在两种超时重传网络连接方式:(1)串行连接,针对每个资源按序的进行连接尝试。当存在多个(IP,Port)资源时,串行连接的策略遍历的效率偏低,又由于移动互联网具有不稳定的特征,超时时间设置过短,会导致在弱网络的情况下,connect总是失败,导致不可用,因此串行连接方式连接速率慢。(2)并发连接,同时发起对N个(IP,Port)的连接调用,不仅可以最快发现可用的连接,而且还可以发现connect最快的(IP,Port)配置。但是,在并发连接的策略下服务器需要提供的连接能力是串行连接的N倍,对服务器连接资源是极大的浪费。同时,并发连接会引起连接资源的竞争,从而影响网络正常用户体验。



技术实现要素:

本发明实施例提供一种网络连接方法及装置。可以解决现有技术方案中资源消耗大、网络连接速率低的技术问题。

本发明第一方面提供了一种网络连接方法,包括:

用户终端向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时;

所述用户终端当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求。

其中,所述向提供所述网络资源的第二服务器发送第二连接请求之后,还包括:

在发送所述第二连接请求的时间点开始计时;

当在预设的第二间隔时间内未接收到所述第二服务器返回的第二连接响应且处于等待所述第二连接响应的工作状态时,向提供所述网络资源的第三服务器发送第三连接请求。

其中,所述用户终端向提供网络资源的第一服务器发送第一连接请求之前,还包括:

分别针对所述第一连接请求设置第一连接超时间隔、针对所述第二连接请求设置第二连接超时间隔,其中,所述第一连接超时间隔大于所述第一间隔时间,所述第二连接超时间隔大于所述第二间隔时间。

其中,所述向提供所述网络资源的第二服务器发送第二连接请求之后,还包括:

当接收到所述第一服务器发送的所述第一连接响应且接收到所述第二服务器发送的第二连接响应时,确定所述用户终端与所述第一服务器之间的网络服务质量、以及所述用户终端与所述第二服务器之间的网络服务质量;

选择最优的所述网络服务质量对应的所述第一服务器或所述第二服务器进行网络连接。

其中,所述向提供所述网络资源的第二服务器发送第二连接请求之后,还包括:

当接收到针对所述第一连接请求返回的连接超时响应且接收到所述第二服务器返回的第二连接响应时,建立与所述第二服务器的网络连接。

其中,所述向提供所述网络资源的第二服务器发送第二连接请求包括:

通过更改网络地址向提供所述网络资源的第二服务器发送第二连接请求,其中,所述网络地址包括IP地址和端口号。

相应地,本发明第二方面提供了一种网络连接装置,包括:

第一发送模块,用于向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时;

第二发送模块,用于当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求。

其中,所述装置还包括:

第三发送模块,用于在发送所述第二连接请求的时间点开始计时;当在预设的第二间隔时间内未接收到所述第二服务器返回的第二连接响应且处于等待所述第二连接响应的工作状态时,向提供所述网络资源的第三服务器发送第三连接请求。

其中,所述装置还包括:

时间设置模块,用于分别针对所述第一连接请求设置第一连接超时间隔、针对所述第二连接请求设置第二连接超时间隔,其中,所述第一连接超时间隔大于所述第一间隔时间,所述第二间隔时间大于所述第二间隔时间。

其中,所述装置还包括:

网络选择模块,用于当接收到所述第一服务器发送的所述第一连接响应且接收到所述第二服务器发送的第二连接响应时,确定所述用户终端与所述第一服务器之间的网络服务质量、以及所述用户终端与所述第二服务器之间的网络服务质量;

选择最优的所述网络服务质量对应的所述第一服务器或所述第二服务器进行网络连接。

其中,所述装置还包括:

网络建立模块,用于当接收到针对所述第一连接请求返回的连接超时响应且接收到所述第二服务器返回的第二连接响应时,建立与所述第二服务器的网络连接。

其中,所述第二发送模块具体用于:

通过更改网络地址向提供所述第二服务器发送第二连接请求,其中,所述网络地址包括IP地址和端口号。

相应地,本发明第三方面提供了一种网络连接装置,包括接口电路、存储器以及处理器,其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,用于执行以下操作:

向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时;

当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求。

实施本发明实施例,首先向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时,然后当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求,从而不仅减少了资源消耗,而且提高了网络连接速率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提出的一种网络连接方法的第一实施例的流程示意图;

图2是本发明实施例提供的一种复合网络连接的示意图;

图3是本发明提出的一种网络连接方法的第二实施例的流程示意图;

图4是本发明实施例提供的一种网络连接装置的结构示意图;

图5是本发明实施例提供的另一种网络连接装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1是本发明提出的一种网络连接方法的第一实施例的流程示意图。如图所示,本发明实施例中的方法包括:

S101,用户终端向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时。

可选的,在用户终端向提供网络资源的第一服务器发送第一连接请求之前,分别针对所述第一连接请求设置第一连接超时间隔、针对所述第二连接请求设置第二连接超时间隔,其中,所述第一连接超时间隔大于所述第一间隔时间,所述第二连接超时间隔大于所述第二间隔时间。

具体实现中,在实际的连接超时设置上,可以根据不同的系统特征,结合应用接受的用户体验范围,可以将connect的调用超时设置为不同的值,也可以设置为相同的值。例如,在IOS系统中,可以将connect调用的连接超时间隔设置为10s,在10s内IOS会自动进行6次的重发。而在Android系统中,系统在第9秒发起第2次重发,再经过12秒第3次重发。

S102,所述用户终端当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求。

具体实现中,可以通过更改网络地址向提供所述网络资源的第二服务器发送第二连接请求,其中,所述网络地址包括IP地址和端口号。

可选的,在发送所述第二连接请求的时间点开始计时;当在预设的第二间隔时间内未接收到所述第二服务器返回的第二连接响应且处于等待所述第二连接响应的工作状态时,向提供所述网络资源的第三服务器发送第三连接请求。

例如,如图2所示,用户终端通过(ip1,port1)向提供网络资源的服务器1发送连接请求,而设置的连接超时间隔为12秒,当连接请求发出去4秒之后,用户终端仍处于等待连接响应的工作状态,由于没有收到服务器1返回的连接响应,用户终端通过(ip2,port2)向提供网络资源的服务器2发送连接请求,依次类推,直至发起了5组IP&Port的连接调用。此时相当于使用了复合连接的伪并发方式,依次向服务器1、服务器2、服务器3、服务器4和服务器5请求建立网络连接。

在发明实施例中,首先向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时,然后当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求,从而不仅减少了资源消耗,而且提高了网络连接速率。

请参考图3,图3是本发明提出的一种网络连接方法的第二实施例的流程示意图。如图所示,本发明实施例中的方法包括:

S301,用户终端向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时。

可选的,在用户终端向提供网络资源的第一服务器发送第一连接请求之前,分别针对所述第一连接请求设置第一连接超时间隔、针对所述第二连接请求设置第二连接超时间隔,其中,所述第一连接超时间隔大于所述第一间隔时间,所述第二连接超时间隔大于所述第二间隔时间。

具体实现中,在实际的连接超时设置上,可以根据不同的系统特征,结合应用接受的用户体验范围,可以将connect的调用超时设置为不同的值,也可以设置为相同的值。例如,在IOS系统中,可以将connect调用的连接超时间隔设置为10s,在10s内IOS会自动进行6次的重发。而在Android系统中,系统在第9秒发起第2次重发,再经过12秒第3次重发。

S302,所述用户终端当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求。

具体实现中,可以通过更改网络地址向提供所述网络资源的第二服务器发送第二连接请求,其中,所述网络地址包括IP地址和端口号。

可选的,在发送所述第二连接请求的时间点开始计时;当在预设的第二间隔时间内未接收到所述第二服务器返回的第二连接响应且处于等待所述第二连接响应的工作状态时,向提供所述网络资源的第三服务器发送第三连接请求。

例如,如图2所示,用户终端通过(ip1,port1)向提供网络资源的服务器1发送连接请求,而设置的连接超时间隔为12秒,当连接请求发出去4秒之后,用户终端仍处于等待连接响应的工作状态,由于没有收到服务器1返回的连接响应,用户终端通过(ip2,port2)向提供网络资源的服务器2发送连接请求,依次类推,直至发起了5组IP&Port的连接调用。此时相当于使用了复合连接的伪并发方式,依次向服务器1、服务器2、服务器3、服务器4和服务器5请求建立网络连接。

S303,当接收到所述第一服务器发送的所述第一连接响应且接收到所述第二服务器发送的第二连接响应时,确定所述用户终端与所述第一服务器之间的网络服务质量、以及所述用户终端与所述第二服务器之间的网络服务质量。

S304,选择最优的所述网络服务质量对应的所述第一服务器或所述第二服务器进行网络连接。

例如,如图2所示,服务器1、服务器2、服务器3分别返回连接响应,因此用户终端可以选择服务器1、服务器2或服务器3建立网络连接,可以分别确定用户终端与服务器1的网络服务质量、用户终端与服务器2的网络服务质量、用户终端与服务器3的网络服务质量,选择最优网络服务质量对应的服务器3建立网络连接。

可选的,当接收到针对所述第一连接请求返回的连接超时响应且接收到所述第二服务器返回的第二连接响应时,建立与所述第二服务器的网络连接。

例如,如图2所示,用户终端分别向服务器4和服务器5发送连接请求之后,在连接超时间隔12秒内没有收到服务器4和服务器5返回的连接响应,但之前收到服务器1、服务器2或服务器3返回的连接响应,则只需要从服务器1、服务器2或服务器3选取服务器建立网络连接。

在发明实施例中,首先向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时,然后当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求,从而不仅减少了资源消耗,而且提高了网络连接速率。

请参考图4,图4是本发明提出的一种网络连接装置的结构示意图。如图所示,本发明实施例中的装置包括:

第一发送模块401,用于向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时。

第二发送模块402,用于当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求。

具体实现中,可以通过更改网络地址向提供所述网络资源的第二服务器发送第二连接请求,其中,所述网络地址包括IP地址和端口号。

可选的,如图4所示,本发明实施例中的装置还包括:

第三发送模块403,用于在发送所述第二连接请求的时间点开始计时;当在预设的第二间隔时间内未接收到所述第二服务器返回的第二连接响应且处于等待所述第二连接响应的工作状态时,向提供所述网络资源的第三服务器发送第三连接请求。

例如,如图2所示,用户终端通过(ip1,port1)向提供网络资源的服务器1发送连接请求,而设置的连接超时间隔为12秒,当连接请求发出去4秒之后,用户终端仍处于等待连接响应的工作状态,由于没有收到服务器1返回的连接响应,用户终端通过(ip2,port2)向提供网络资源的服务器2发送连接请求,依次类推,直至发起了5组IP&Port的连接调用。此时相当于使用了复合连接的伪并发方式,依次向服务器1、服务器2、服务器3、服务器4和服务器5请求建立网络连接。

可选的,如图4所示,本发明实施例中的装置还包括:

时间设置模块404,用于分别针对所述第一连接请求设置第一连接超时间隔、针对所述第二连接请求设置第二连接超时间隔,其中,所述第一连接超时间隔大于所述第一间隔时间,所述第二间隔时间大于所述第二间隔时间。

具体实现中,在实际的连接超时设置上,可以根据不同的系统特征,结合应用接受的用户体验范围,可以将connect的调用超时设置为不同的值,也可以设置为相同的值。例如,在IOS系统中,可以将connect调用的连接超时间隔设置为10s,在10s内IOS会自动进行6次的重发。而在Android系统中,系统在第9秒发起第2次重发,再经过12秒第3次重发。

可选的,如图4所示,本发明实施例中的装置还包括:

网络选择模块405,用于当接收到所述第一服务器发送的所述第一连接响应且接收到所述第二服务器发送的第二连接响应时,确定所述用户终端与所述第一服务器之间的网络服务质量、以及所述用户终端与所述第二服务器之间的网络服务质量;选择最优的所述网络服务质量对应的所述第一服务器或所述第二服务器进行网络连接。

例如,如图2所示,用户终端通过(ip1,port1)向提供网络资源的服务器1发送连接请求,而设置的连接超时间隔为12秒,当连接请求发出去4秒之后,用户终端仍处于等待连接响应的工作状态,由于没有收到服务器1返回的连接响应,用户终端通过(ip2,port2)向提供网络资源的服务器2发送连接请求,依次类推,直至发起了5组IP&Port的连接调用。此时相当于使用了复合连接的伪并发方式,依次向服务器1、服务器2、服务器3、服务器4和服务器5请求建立网络连接。

例如,如图2所示,服务器1、服务器2、服务器3分别返回连接响应,因此用户终端可以选择服务器1、服务器2或服务器3建立网络连接,可以分别确定用户终端与服务器1的网络服务质量、用户终端与服务器2的网络服务质量、用户终端与服务器3的网络服务质量,选择最优网络服务质量对应的服务器3建立网络连接。

可选的,如图4所示,本发明实施例中的装置还包括:

网络建立模块406,用于当接收到针对所述第一连接请求返回的连接超时响应且接收到所述第二服务器返回的第二连接响应时,建立与所述第二服务器的网络连接。

例如,如图2所示,用户终端分别向服务器4和服务器5发送连接请求之后,在连接超时间隔12秒内没有收到服务器4和服务器5返回的连接响应,但之前收到服务器1、服务器2或服务器3返回的连接响应,则只需要从服务器1、服务器2或服务器3选取服务器建立网络连接。

在发明实施例中,首先向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时,然后当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求,从而不仅减少了资源消耗,而且提高了网络连接速率。

请参考图5,图5是本发明实施例提出的另一种网络连接装置的结构示意图。如图所示,该装置可以包括:至少一个处理器501,例如CPU,至少一个通信接口502,至少一个存储器503,至少一个总线505。其中,总线505用于实现这些组件之间的连接通信。其中,本发明实施例中装置的通信接口502是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他节点设备进行信令或数据的通信。存储器503可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器503可选的还可以是至少一个位于远离前述处理器501的存储装置。存储器503中存储一组程序代码,且处理器501用于调用存储器中存储的程序代码,用于执行以下操作:

向提供网络资源的第一服务器发送第一连接请求,并在发送所述第一连接请求的时间点开始计时;

当在预设的第一间隔时间内未接收到所述第一服务器返回的第一连接响应且处于等待所述第一连接响应的工作状态时,向提供所述网络资源的第二服务器发送第二连接请求。

其中,处理器501还用于执行如下操作步骤:

在发送所述第二连接请求的时间点开始计时;

当在预设的第二间隔时间内未接收到所述第二服务器返回的第二连接响应且处于等待所述第二连接响应的工作状态时,向提供所述网络资源的第三服务器发送第三连接请求。

其中,处理器501还用于执行如下操作步骤:

分别针对所述第一连接请求设置第一连接超时间隔、针对所述第二连接请求设置第二连接超时间隔,其中,所述第一连接超时间隔大于所述第一间隔时间,所述第二连接超时间隔大于所述第二间隔时间。

其中,处理器501还用于执行如下操作步骤:

当接收到所述第一服务器发送的所述第一连接响应且接收到所述第二服务器发送的第二连接响应时,确定所述用户终端与所述第一服务器之间的网络服务质量、以及所述用户终端与所述第二服务器之间的网络服务质量;

选择最优的所述网络服务质量对应的所述第一服务器或所述第二服务器进行网络连接。

其中,处理器501还用于执行如下操作步骤:

当接收到针对所述第一连接请求返回的连接超时响应且接收到所述第二服务器返回的第二连接响应时,建立与所述第二服务器的网络连接。

其中,处理器501还用于执行如下操作步骤:

通过更改网络地址向提供所述网络资源的第二服务器发送第二连接请求,其中,所述网络地址包括IP地址和端口号。

需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。

以上对本发明实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1