CN113596068A - 建立tcp连接的方法、装置和服务器 - Google Patents
建立tcp连接的方法、装置和服务器 Download PDFInfo
- Publication number
- CN113596068A CN113596068A CN202010369814.8A CN202010369814A CN113596068A CN 113596068 A CN113596068 A CN 113596068A CN 202010369814 A CN202010369814 A CN 202010369814A CN 113596068 A CN113596068 A CN 113596068A
- Authority
- CN
- China
- Prior art keywords
- client
- address
- server
- communication
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000004891 communication Methods 0.000 claims abstract description 183
- 230000004044 response Effects 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种建立TCP连接的方法、装置和服务器,如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中的连接请求中携带有客户端的客户端地址;获取预先保存的与客户端地址对应的通信时延;同时启动预设定时器,根据通信时延设置定时器的超时值;基于该超时值,与客户端建立TCP连接。该方式中,通过预先存的服务端地址与对应的客户端地址的通信时延,设置启动的定时器的超时值,在网络状态较差的情况下,避免了超时值越来越大导致服务端等待客户端回复的时间就越来越长的情况,提高了客户端与服务端之间建立TCP连接的速度。
Description
技术领域
本发明涉及网络技术领域,尤其是涉及一种建立TCP连接的方法、装置和服务器。
背景技术
客户端与服务端建立TCP连接时,首先由客户端向服务端发送SYN信号,服务端收到该SYN信号后,向客户端发送SYN信号和ACK信号,同时客户端启动定时器并设置该定时器的超时值,该超时值通常根据RTT经验值设置。如果该定时器到达该超时值时,还没有收到客户端返回的ACK信号,此时服务端重复向客户端发送SYN信号和ACK信号,并再次启动定时器并设置该定时器的超时值,该超时值通常根据上一次超时值的指数值设置。在网络状态较差的情况下,服务端需要发送多次SYN信号和ACK信号,此时超时值呈指数增长的方式递增,超时值越来越大,导致服务端等待客户端回复的时间就越来越长,进而导致客户端与服务端之间建立连接的速度较慢。
发明内容
有鉴于此,本发明的目的在于提供一种建立TCP连接的方法、装置和服务器,以提高客户端与服务端之间建立连接的速度。
第一方面,本发明实施例提供了一种建立TCP连接的方法,该方法包括:如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中,连接请求中携带有客户端的客户端地址;获取预先保存的与客户端地址对应的通信时延;启动预设定时器,根据通信时延设置定时器的超时值;基于超时值,与客户端建立TCP连接。
进一步的,获取预先保存的与客户端地址对应的通信时延的步骤,包括:从预先建立的数据库中,获取与客户端地址对应的通信时延;其中,数据库通过下述方式建立:获取与客户端地址对应的客户端的历史通信记录,从历史通信记录中提取通信时延,将提取出的通信时延与客户端地址对应保存至数据库中。
进一步的,从预先建立的数据库中,获取与客户端地址对应的通信时延的步骤,包括:如果从数据库中获取不到与客户端地址对应的通信时延,确定客户端地址所属的第一区域范围;从数据库中获取第一区域范围内的客户端地址对应的通信时延,将该通信时延确定为客户端的客户端地址对应的通信时延。
进一步的,数据库中还保存有:历史通信记录中的,与客户端地址对应的客户端进行通信的服务端的服务端地址;服务端地址、客户端地址和通信时延对应保存;从预先建立的数据库中,获取与客户端地址对应的通信时延的步骤,包括:获取接收到连接请求的服务端的服务端地址;从预先建立的数据库中,获取与客户端地址和服务端地址对应的通信时延,将该通信时延确定为客户端的客户端地址对应的通信时延。
进一步的,从预先建立的数据库中,获取与客户端地址和服务端地址对应的通信时延的步骤,包括:如果从数据库中获取不到与客户端地址和服务端地址对应的通信时延,确定客户端地址所属的第二区域范围;从数据库中获取与服务端地址和第二区域范围内的客户端地址对应的通信时延;如果从数据库中获取不到与服务端地址和第二区域范围内的客户端地址对应的通信时延,确定服务端地址所属的第三区域范围;从数据库中获取与第二区域范围内的客户端地址、和第三区域范围内的服务端地址对应的通信时延。
进一步的,该方法还包括:如果获取到与客户端地址对应的客户端的更新的历史通信记录,从更新的历史通信记录中提取更新的通信时延;如果更新的通信时延,小于数据库中记录的客户端地址对应的通信时延,将更新的通信时延与客户端地址对应保存至数据库中。
进一步的,基于超时值,与客户端建立TCP连接的步骤,包括:当定时器的计时时长小于超时值时,接收到客户端返回的响应信号,确定与客户端建立TCP连接成功;如果定时器的计时时长到达超时值时,没有接收到客户端返回的响应信号,继续执行向客户端发送连接请求对应的应答信号的步骤,直至接收到客户端返回的响应信号,或者满足预设条件;其中,预设条件包括:接收到连接请求之后,发送应答信号的次数到达预设的次数阈值,或者当前时间与第一次发送应答信号的时间间隔满足预设的时间阈值。
第二方面,本发明实施例提供了一种建立TCP连接的装置,该装置包括:信号发送模块,用于如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中,连接请求中携带有客户端的客户端地址;时延获取模块,用于获取预先保存的与客户端地址对应的通信时延;超时值设置模块,用于启动预设定时器,根据通信时延设置定时器的超时值;TCP连接模块,用于基于超时值,与客户端建立TCP连接。
第三方面,本发明实施例提供了一种服务器,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面任一实施方式的建立TCP连接的方法。
第四方面,本发明实施例提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面任一实施方式的建立TCP连接的方法。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种建立TCP连接的方法、装置和服务器,如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中的连接请求中携带有客户端的客户端地址;获取预先保存的与客户端地址对应的通信时延;同时启动预设定时器,根据通信时延设置定时器的超时值;基于该超时值,与客户端建立TCP连接。该方式中,通过预先存的服务端地址与对应的客户端地址的通信时延,设置启动的定时器的超时值,在网络状态较差的情况下,避免了超时值越来越大导致服务端等待客户端回复的时间就越来越长的情况,提高了客户端与服务端之间建立TCP连接的速度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种建立TCP连接的方法流程图;
图2为本发明实施例提供的另一种建立TCP连接的方法流程图;
图3为本发明实施例提供的一种获取通信时延的方法流程图;
图4为本发明实施例提供的另一种获取通信时延的方法流程图;
图5为本发明实施例提供的另一种获取通信时延的方法流程图;
图6为本发明实施例提供的另一种建立TCP连接的方法流程图;
图7为本发明实施例提供的一种建立TCP连接的装置结构示意图;
图8为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,客户端与服务端建立TCP(Transmission Control Protocol,传输控制协议)连接时,首先由客户端向服务端发送SYN(Synchronize Sequence Numbers,同步序列编号)信号,服务端收到该SYN信号后,向客户端发送SYN信号和ACK(Acknowledge character,确认字符)信号,同时客户端启动定时器并设置该定时器的超时值,该超时值通常根据RTT(Round-Trip Time,往返时延)经验值设置。如果该定时器到达该超时值时,还没有收到客户端返回的ACK信号,此时服务端重复向客户端发送SYN信号和ACK信号,并再次启动定时器并设置该定时器的超时值,该超时值通常根据上一次超时值的指数值设置。在网络状态较差的情况下,服务端需要发送多次SYN信号和ACK信号,此时超时值呈指数增长的方式递增,超时值越来越大,导致服务端等待客户端回复的时间就越来越长,进而导致客户端与服务端之间建立连接的速度较慢。
基于此,本发明实施例提供的一种建立TCP连接的方法、装置和服务器,该技术可以应用于各个计算机、手机等客户端的网络连接中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种建立TCP连接的方法进行详细介绍。
首先,本发明实施例提供了一种建立TCP连接的方法,如图1所示,该方法包括如下步骤:
步骤S102,如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中,连接请求中携带有客户端的客户端地址;
上述客户端可以是计算机、手机等移动终端设备,上述服务端可以是服务器等设备。上述连接请求可以是客户端发送的SYN信号,上述应答信号可以是服务端发送的SYN信号和ACK信号,以通知客户端确认收到连接请求信号。上述客户端的客户端地址可以是客户端的IP(Internet Protocol,网际互连协议)地址。具体的,在建立TCP连接时,首先客户端向服务端发送连接请求SYN信号,同时包括客户端的IP地址,服务端接收到SYN信号后,必须确认客户端的SYN信号,同时服务端也发送一个应答信号,其中包括SYN信号和ACK信号。
步骤S104,获取预先保存的与客户端地址对应的通信时延;
上述通信时延可以是RTT(Round-Trip Time,往返时延),在计算机网络中它也是一个重要的性能指标,表示从服务端发送数据开始,到服务端接收到来自客户端的确认信号,总共经历的时延。由于连接请求中携带有客户端的客户端地址,因此之前服务端与客户端之间通信连接时,计算得到的RTT,都具有对应的连接的服务端地址和客户端地址,因此可以通过计算得到的RTT设置预先保存的通信时延。
步骤S106,启动预设定时器,根据通信时延设置定时器的超时值;
通常在服务端发送SYN信号和ACK信号的同时,启动预设定时器,上述预设定时器可以记录从服务端发送信号到接收到信号之间的时间。上述超时值可以根据计算得到的RTT,也就是通信时延设置。
步骤S108,基于超时值,与客户端建立TCP连接。
具体的,启动预设定时器后,若计时器的计时时间超过了超时值,服务端会再次发送应答信号至客户端,直到与客户端连接建立TCP连接;另外服务端经过多次信号发送、定时器超时,其连接次数超过预设值,或者定时器累计的计时时间超过预设时间,则服务端与客户端连接失败。
本发明实施例提供了一种建立TCP连接的方法,如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中的连接请求中携带有客户端的客户端地址;获取预先保存的与客户端地址对应的通信时延;同时启动预设定时器,根据通信时延设置定时器的超时值;基于该超时值,与客户端建立TCP连接。该方式中,通过预先存的服务端地址与对应的客户端地址的通信时延,设置启动的定时器的超时值,在网络状态较差的情况下,避免了超时值越来越大导致服务端等待客户端回复的时间就越来越长的情况,提高了客户端与服务端之间建立TCP连接的速度。
本发明实施例提供了另一种建立TCP连接的方法,该方法在上述实施例方法的基础上实现;本实施例重点描述获取预先保存的与客户端地址对应的通信时延的步骤的具体实现过程(通过步骤S204实现),如图2所示,该方法包括如下步骤:
步骤S202,如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中,连接请求中携带有客户端的客户端地址;
步骤S204,从预先建立的数据库中,获取与客户端地址对应的通信时延;
上述预先建立的数据库中,可以保存有多个服务端地址和多个客户端地址建立连接时对应的多个通信时延;
其中,数据库通过下述方式建立:获取与客户端地址对应的客户端的历史通信记录,从历史通信记录中提取通信时延,将提取出的通信时延与客户端地址对应保存至数据库中;
由于连接请求中携带有客户端的客户端地址,因此可以通过该客户端地址,获得其历史通信记录,比如,近一个月内与服务端的通信记录;上述通信记录中可以包括与一个或者多个服务端建立连接时的通信时延等信息。可以在该历史通信记录中提取与当前服务端建立连接时的通信时延,并将提取出的通信时延与该客户端地址对应保存至数据库中。
针对上述步骤S204,参见图3所示的一种获取通信时延的方法流程图,从预先建立的数据库中,获取与客户端地址对应的通信时延的步骤的具体实现过程,该方法包括如下步骤:
步骤S301,如果从数据库中获取不到与客户端地址对应的通信时延,确定客户端地址所属的第一区域范围;
上述客户端地址所属的第一区域范围可以是,该客户端地址所在地域附近的IP地址,比如,可以是该客户端地址所在区域,一百米的范围内其他客户端的IP地址。
步骤S302,从数据库中获取第一区域范围内的客户端地址对应的通信时延,将该通信时延确定为客户端的客户端地址对应的通信时延。
如果通过第一区域范围获取得到客户端地址对应的通信时延,可以将该通信时延确定为客户端的客户端地址对应的通信时延;同时,还可以将该通信时延与客户端地址对应保存至数据库中,以满足数据库的丰富性和实时性。
进一步的,上述数据库中还保存有:历史通信记录中的,与客户端地址对应的客户端进行通信的服务端的服务端地址;服务端地址、客户端地址和通信时延对应保存;参见图4所示的另一种获取通信时延的方法流程图,从预先建立的数据库中,获取与客户端地址对应的通信时延的步骤的具体实现过程,该方法包括如下步骤:
步骤S401,获取接收到连接请求的服务端的服务端地址;
步骤S402,从预先建立的数据库中,获取与客户端地址和服务端地址对应的通信时延,将该通信时延确定为客户端的客户端地址对应的通信时延。
通信时延表示的是服务端与客户端建立连接是的时延,所以数据库中保存的通信时延不仅需要有与之对应的客户端地址,还可以有与之对应的服务端地址;具体的,可以直接获取接收到连接请求的服务端的服务器地址,然后从预先建立的数据库中,获取与客户端地址和获取到的服务端地址对应的通信时延,将该通信时延确定为客户端的客户端地址对应的通信时延。
针对上述步骤S402,参见图5所示的另一种获取通信时延的方法流程图,从预先建立的数据库中,获取与客户端地址和服务端地址对应的通信时延的步骤具体实现过程,如图5所示,该方法包括如下步骤:
步骤S501,如果从数据库中获取不到与客户端地址和服务端地址对应的通信时延,确定客户端地址所属的第二区域范围;
上述客户端地址所属的第二区域范围可以是,该客户端地址所在地域附近的其他IP地址,比如,可以是该客户端地址所在区域,一百米的范围内其他客户端的IP地址。
步骤S502,从数据库中获取与服务端地址和第二区域范围内的客户端地址对应的通信时延;
获取到第二区域范围内其他客户端地址后,可以在数据库中查找与服务端地址和第二区域范围内的客户端地址对应的通信时延。
步骤S503,如果从数据库中获取不到与服务端地址和第二区域范围内的客户端地址对应的通信时延,确定服务端地址所属的第三区域范围;
上述服务端地址所属的第三区域范围可以是,该服务端地址所在地域附近的其他IP地址,比如,可以是该服务端地址所在区域,一百米的范围内其他服务端的IP地址。
步骤S504,从数据库中获取与第二区域范围内的客户端地址、和第三区域范围内的服务端地址对应的通信时延。
获取到第二区域范围内其他客户端地址、和第三区域范围内的其他服务端的IP地址后,可以从数据库中获取与之对应的通信时延。
步骤S206,启动预设定时器,根据通信时延设置定时器的超时值;
步骤S208,基于超时值,与客户端建立TCP连接。
另外,上述方法还包括数据库更新的步骤的实现过程,包括:
如果获取到与客户端地址对应的客户端的更新的历史通信记录,从更新的历史通信记录中提取更新的通信时延;
如果更新的通信时延,小于数据库中记录的客户端地址对应的通信时延,将更新的通信时延与客户端地址对应保存至数据库中。
通常同一个客户端可能会与同一个服务端存在多次的通信记录,如果同一个客户端与服务端的通信延时已经保存在数据库中,之后该客户端与服务端又进行了通信连接,此时会将该次的通信时延更新至历史记录中。同时,将更新的通信时延与之前保存至数据库中的历史通信时延进行比较,如果更新的通信时延,小于数据库中记录的客户端地址对应的通信时延,将更新的通信时延与客户端地址对应保存至数据库中,以保证数据库的实时性。另外,如果更新的通信时延,大于数据库中记录的客户端地址对应的通信时延,则不作任何处理。
该方式中,通过客户端的历史通信记录,提取对应的通信时延;根据客户端地址、服务端地址以及与之对应的通信时延,建立了数据库;通过配置的方式,获取数据库中的与正在建立连接的客户端地址和服务端地址对应的通信时延,以设置启动的定时器的超时值,在网络状态较差的情况下,避免了超时值越来越大导致服务端等待客户端回复的时间就越来越长的情况,提高了客户端与服务端之间建立TCP连接的速度。
本发明实施例提供了另一种建立TCP连接的方法,该方法在上述实施例方法的基础上实现;本实施例重点描述基于超时值,与客户端建立TCP连接的步骤的具体实现过程(具体通过步骤S608-S610实现),如图6所示,该方法包括如下步骤:
步骤S602,如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中,连接请求中携带有客户端的客户端地址;
步骤S604,获取预先保存的与客户端地址对应的通信时延;
步骤S606,启动预设定时器,根据通信时延设置定时器的超时值;
步骤S608,当定时器的计时时长小于超时值时,接收到客户端返回的响应信号,确定与客户端建立TCP连接成功;
在服务端向客户端发送连接请求对应的应答信号的同时,启动预设定时器,在收到客户端发送的确认连接的信号之前,定时器一直在计时,当定时器的计时时长小于超时值的情况下,服务端接收到客户端发送的确认连接的信号,定时器会停止计时,同时确定与客户端建立TCP连接成功。
步骤S610,如果定时器的计时时长到达超时值时,没有接收到客户端返回的响应信号,继续执行向客户端发送连接请求对应的应答信号的步骤,直至接收到客户端返回的响应信号,或者满足预设条件;
如果定时器的计时时长到达超时值的情况下,服务端没有接收到客户端发送的确认连接的信号,计时器会停止计时;然后服务端会继续向客户端发送连接请求对应的应答信号,同时再次启动定时器,直到服务端接收到客户端返回的响应信号,则停止计时。或者,在服务端一直没有接收到客户端返回的响应信号的情况下,满足预设条件后,则停止连接,并显示连接失败。
其中,预设条件包括:接收到连接请求之后,发送应答信号的次数到达预设的次数阈值,或者当前时间与第一次发送应答信号的时间间隔满足预设的时间阈值。
上述次数阈值和时间阈值,可以根据具体的客户端的历史通信记录设置,比如,次数阈值可以是10、15等;时间阈值可以是1分钟、5分钟等。具体的,服务端接收到连接请求之后,向客户端发送应答信号,并启动定时器开始计时,如果计时时长到达超时值时,服务端没有接收到客户端发送的确认连接的信号,服务端则会再次向客户端发送应答信号,直到发送应答信号的次数到达预设的次数阈值,则停止连接,并显示连接失败。或者,如果计时时长到达超时值时,服务端没有接收到客户端发送的确认连接的信号,服务端则会再次向客户端发送应答信号,并再次启动定时器开始计时,直到当前时间与第一次发送应答信号的时间间隔满足预设的时间阈值,则停止连接,并显示连接失败。
该方式中,通过将定时器的计时时长与超时值进行对比,在计时时长小于超时值的情况下,直接建立连接;在计时时长大于超时值的情况下,再次启动定时器,并设置预设条件,及时终止连接,在网络状态较差的情况下,避免了超时值越来越大导致服务端等待客户端回复的时间就越来越长的情况,提高了客户端与服务端之间建立TCP连接的速度。
对应上述的建立TCP连接的方法实施例,本发明实施例还提供了一种建立TCP连接的装置结构示意图,如图7所示,该装置包括:
信号发送模块71,用于如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中,连接请求中携带有客户端的客户端地址;
时延获取模块72,用于获取预先保存的与客户端地址对应的通信时延;
超时值设置模块73,用于启动预设定时器,根据通信时延设置定时器的超时值;
TCP连接模块74,用于基于超时值,与客户端建立TCP连接。
进一步的,上述时延获取模块用于:从预先建立的数据库中,获取与客户端地址对应的通信时延;其中,数据库通过下述方式建立:获取与客户端地址对应的客户端的历史通信记录,从历史通信记录中提取通信时延,将提取出的通信时延与客户端地址对应保存至数据库中。
进一步的,上述时延获取模块用于:如果从数据库中获取不到与客户端地址对应的通信时延,确定客户端地址所属的第一区域范围;从数据库中获取第一区域范围内的客户端地址对应的通信时延,将该通信时延确定为客户端的客户端地址对应的通信时延。
进一步的,上述数据库中还保存有:历史通信记录中的,与客户端地址对应的客户端进行通信的服务端的服务端地址;服务端地址、客户端地址和通信时延对应保存;
进一步的,上述时延获取模块用于:获取接收到连接请求的服务端的服务端地址;从预先建立的数据库中,获取与客户端地址和服务端地址对应的通信时延,将该通信时延确定为客户端的客户端地址对应的通信时延。
进一步的,上述时延获取模块用于:如果从数据库中获取不到与客户端地址和服务端地址对应的通信时延,确定客户端地址所属的第二区域范围;从数据库中获取与服务端地址和第二区域范围内的客户端地址对应的通信时延;如果从数据库中获取不到与服务端地址和第二区域范围内的客户端地址对应的通信时延,确定服务端地址所属的第三区域范围;从数据库中获取与第二区域范围内的客户端地址、和第三区域范围内的服务端地址对应的通信时延。
进一步的,上述装置还包括数据库更新模块,用于如果获取到与客户端地址对应的客户端的更新的历史通信记录,从更新的历史通信记录中提取更新的通信时延;如果更新的通信时延,小于数据库中记录的客户端地址对应的通信时延,将更新的通信时延与客户端地址对应保存至数据库中。
进一步的,上述TCP连接模块用于:当定时器的计时时长小于超时值时,接收到客户端返回的响应信号,确定与客户端建立TCP连接成功;如果定时器的计时时长到达超时值时,没有接收到客户端返回的响应信号,继续执行向客户端发送连接请求对应的应答信号的步骤,直至接收到客户端返回的响应信号,或者满足预设条件;其中,预设条件包括:接收到连接请求之后,发送应答信号的次数到达预设的次数阈值,或者当前时间与第一次发送应答信号的时间间隔满足预设的时间阈值。
本发明实施例提供了一种建立TCP连接的装置,如果接收到来自客户端的连接请求,向客户端发送连接请求对应的应答信号;其中的连接请求中携带有客户端的客户端地址;获取预先保存的与客户端地址对应的通信时延;同时启动预设定时器,根据通信时延设置定时器的超时值;基于该超时值,与客户端建立TCP连接。该方式中,通过预先存的服务端地址与对应的客户端地址的通信时延,设置启动的定时器的超时值,在网络状态较差的情况下,避免了超时值越来越大导致服务端等待客户端回复的时间就越来越长的情况,提高了客户端与服务端之间建立TCP连接的速度。
本发明实施例提供的建立TCP连接的装置,与上述实施例提供的建立TCP连接的方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例还提供了一种服务器,参见图8所示,该服务器包括处理器80和存储器81,该存储器81存储有能够被处理器80执行的机器可执行指令,该处理器80执行机器可执行指令以实现上述建立TCP连接的方法。
进一步地,图8所示的服务器还包括总线82和通信接口83,处理器80、通信接口83和存储器81通过总线82连接。
其中,存储器81可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口83(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线82可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器80可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器80中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器80可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器81,处理器80读取存储器81中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述建立TCP连接的方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的建立TCP连接的方法、装置和服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种建立TCP连接的方法,其特征在于,所述方法包括:
如果接收到来自客户端的连接请求,向所述客户端发送所述连接请求对应的应答信号;其中,所述连接请求中携带有所述客户端的客户端地址;
获取预先保存的与所述客户端地址对应的通信时延;
启动预设定时器,根据所述通信时延设置所述定时器的超时值;
基于所述超时值,与所述客户端建立TCP连接。
2.根据权利要求1所述的方法,其特征在于,获取预先保存的与所述客户端地址对应的通信时延的步骤,包括:
从预先建立的数据库中,获取与所述客户端地址对应的通信时延;
其中,所述数据库通过下述方式建立:获取与所述客户端地址对应的客户端的历史通信记录,从所述历史通信记录中提取通信时延,将提取出的所述通信时延与所述客户端地址对应保存至所述数据库中。
3.根据权利要求2所述的方法,其特征在于,从预先建立的数据库中,获取与所述客户端地址对应的通信时延的步骤,包括:
如果从所述数据库中获取不到与所述客户端地址对应的通信时延,确定所述客户端地址所属的第一区域范围;
从所述数据库中获取所述第一区域范围内的客户端地址对应的通信时延,将该通信时延确定为所述客户端的客户端地址对应的通信时延。
4.根据权利要求2所述的方法,其特征在于,所述数据库中还保存有:所述历史通信记录中的,与所述客户端地址对应的客户端进行通信的服务端的服务端地址;所述服务端地址、所述客户端地址和所述通信时延对应保存;
所述从预先建立的数据库中,获取与所述客户端地址对应的通信时延的步骤,包括:
获取接收到所述连接请求的服务端的服务端地址;
从预先建立的数据库中,获取与所述客户端地址和所述服务端地址对应的通信时延,将该通信时延确定为所述客户端的客户端地址对应的通信时延。
5.根据权利要求4所述的方法,其特征在于,从预先建立的数据库中,获取与所述客户端地址和所述服务端地址对应的通信时延的步骤,包括:
如果从所述数据库中获取不到与所述客户端地址和所述服务端地址对应的通信时延,确定所述客户端地址所属的第二区域范围;
从所述数据库中获取与所述服务端地址和所述第二区域范围内的客户端地址对应的通信时延;
如果从所述数据库中获取不到与所述服务端地址和所述第二区域范围内的客户端地址对应的通信时延,确定所述服务端地址所属的第三区域范围;
从所述数据库中获取与所述第二区域范围内的客户端地址、和所述第三区域范围内的服务端地址对应的通信时延。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果获取到与所述客户端地址对应的客户端的更新的历史通信记录,从所述更新的历史通信记录中提取更新的通信时延;
如果所述更新的通信时延,小于所述数据库中记录的所述客户端地址对应的通信时延,将所述更新的通信时延与所述客户端地址对应保存至所述数据库中。
7.根据权利要求1所述的方法,其特征在于,基于所述超时值,与所述客户端建立TCP连接的步骤,包括:
当所述定时器的计时时长小于所述超时值时,接收到所述客户端返回的响应信号,确定与所述客户端建立TCP连接成功;
如果所述定时器的计时时长到达所述超时值时,没有接收到所述客户端返回的响应信号,继续执行向所述客户端发送所述连接请求对应的应答信号的步骤,直至接收到所述客户端返回的响应信号,或者满足预设条件;
其中,所述预设条件包括:接收到所述连接请求之后,发送所述应答信号的次数到达预设的次数阈值,或者当前时间与第一次发送所述应答信号的时间间隔满足预设的时间阈值。
8.一种建立TCP连接的装置,其特征在于,所述装置包括:
信号发送模块,用于如果接收到来自客户端的连接请求,向所述客户端发送所述连接请求对应的应答信号;其中,所述连接请求中携带有所述客户端的客户端地址;
时延获取模块,用于获取预先保存的与所述客户端地址对应的通信时延;
超时值设置模块,用于启动预设定时器,根据所述通信时延设置所述定时器的超时值;
TCP连接模块,用于基于所述超时值,与所述客户端建立TCP连接。
9.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至7任一项所述的建立TCP连接的方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至7任一项所述的建立TCP连接的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010369814.8A CN113596068B (zh) | 2020-04-30 | 2020-04-30 | 建立tcp连接的方法、装置和服务器 |
PCT/CN2021/083415 WO2021218520A1 (zh) | 2020-04-30 | 2021-03-26 | 建立tcp连接的方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010369814.8A CN113596068B (zh) | 2020-04-30 | 2020-04-30 | 建立tcp连接的方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113596068A true CN113596068A (zh) | 2021-11-02 |
CN113596068B CN113596068B (zh) | 2022-06-14 |
Family
ID=78237760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010369814.8A Active CN113596068B (zh) | 2020-04-30 | 2020-04-30 | 建立tcp连接的方法、装置和服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113596068B (zh) |
WO (1) | WO2021218520A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114039884B (zh) * | 2021-12-15 | 2023-08-08 | 中国建设银行股份有限公司 | 一种网络链路异常处理方法及装置 |
CN115208521B (zh) * | 2022-08-22 | 2023-07-04 | 北京钢铁侠科技有限公司 | 一种会话层客户端与服务端通讯保障及工作流管控方法 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070008884A1 (en) * | 2003-10-08 | 2007-01-11 | Bob Tang | Immediate ready implementation of virtually congestion free guarantedd service capable network |
US20090046717A1 (en) * | 2007-08-15 | 2009-02-19 | Qing Li | Methods to improve transmission control protocol (tcp) performance over large bandwidth long delay links |
US20090323543A1 (en) * | 2008-06-30 | 2009-12-31 | Canon Kabushiki Kaisha | Communication apparatus and method of calculating round trip time |
CN102523314A (zh) * | 2010-12-16 | 2012-06-27 | 微软公司 | 识别高效的目标服务器 |
CN102664958A (zh) * | 2012-04-27 | 2012-09-12 | 中山大学 | 一种透明计算*** |
CN103763743A (zh) * | 2012-08-07 | 2014-04-30 | 英特尔移动通信有限责任公司 | 用于基于服务质量的应用的速率适配的方法和装置 |
CN104184546A (zh) * | 2013-05-27 | 2014-12-03 | 百度在线网络技术(北京)有限公司 | 一种移动通信网络中减少报文重传的方法及*** |
CN104243090A (zh) * | 2013-06-19 | 2014-12-24 | ***通信集团公司 | 一种基于无线信道反馈的发送速率调整方法和设备 |
US20150012792A1 (en) * | 2013-07-03 | 2015-01-08 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for providing a transmission control protocol minimum retransmission timer |
CN104506383A (zh) * | 2014-12-22 | 2015-04-08 | 深圳市博瑞得科技有限公司 | 衡量服务器在tcp传输中对数据处理效率的方法及*** |
CN105933242A (zh) * | 2016-04-12 | 2016-09-07 | 北京大学深圳研究生院 | 一种提高数据中心tcp响应速度的方法及*** |
CN106713454A (zh) * | 2016-12-22 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种网络连接方法及装置 |
CN109032830A (zh) * | 2018-07-25 | 2018-12-18 | 广东浪潮大数据研究有限公司 | 一种分布式存储***的故障恢复方法、***及相关组件 |
CN110493820A (zh) * | 2019-09-24 | 2019-11-22 | 辰芯科技有限公司 | 一种传输时延评估方法、装置、通信节点和存储介质 |
CN110839017A (zh) * | 2019-10-21 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 代理ip地址识别方法、装置、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6816910B1 (en) * | 2000-02-17 | 2004-11-09 | Netzentry, Inc. | Method and apparatus for limiting network connection resources |
JP3931988B2 (ja) * | 2004-08-26 | 2007-06-20 | 日本電気株式会社 | ネットワーク品質計測方法、及び計測装置 |
US7992208B2 (en) * | 2005-09-19 | 2011-08-02 | University Of Maryland | Detection of nonconforming network traffic flow aggregates for mitigating distributed denial of service attacks |
US20070299965A1 (en) * | 2006-06-22 | 2007-12-27 | Jason Nieh | Management of client perceived page view response time |
WO2014168524A1 (en) * | 2013-04-08 | 2014-10-16 | Telefonaktiebolaget L M Ericsson (Publ) | Controlling establishment of multiple tcp connections |
CN106034073B (zh) * | 2015-03-20 | 2019-01-18 | 网宿科技股份有限公司 | 一种基于内容分发网络的多路径传输优化的方法 |
-
2020
- 2020-04-30 CN CN202010369814.8A patent/CN113596068B/zh active Active
-
2021
- 2021-03-26 WO PCT/CN2021/083415 patent/WO2021218520A1/zh active Application Filing
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070008884A1 (en) * | 2003-10-08 | 2007-01-11 | Bob Tang | Immediate ready implementation of virtually congestion free guarantedd service capable network |
US20090046717A1 (en) * | 2007-08-15 | 2009-02-19 | Qing Li | Methods to improve transmission control protocol (tcp) performance over large bandwidth long delay links |
US20090323543A1 (en) * | 2008-06-30 | 2009-12-31 | Canon Kabushiki Kaisha | Communication apparatus and method of calculating round trip time |
CN102523314A (zh) * | 2010-12-16 | 2012-06-27 | 微软公司 | 识别高效的目标服务器 |
CN102664958A (zh) * | 2012-04-27 | 2012-09-12 | 中山大学 | 一种透明计算*** |
CN103763743A (zh) * | 2012-08-07 | 2014-04-30 | 英特尔移动通信有限责任公司 | 用于基于服务质量的应用的速率适配的方法和装置 |
CN104184546A (zh) * | 2013-05-27 | 2014-12-03 | 百度在线网络技术(北京)有限公司 | 一种移动通信网络中减少报文重传的方法及*** |
CN104243090A (zh) * | 2013-06-19 | 2014-12-24 | ***通信集团公司 | 一种基于无线信道反馈的发送速率调整方法和设备 |
US20150012792A1 (en) * | 2013-07-03 | 2015-01-08 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for providing a transmission control protocol minimum retransmission timer |
CN104506383A (zh) * | 2014-12-22 | 2015-04-08 | 深圳市博瑞得科技有限公司 | 衡量服务器在tcp传输中对数据处理效率的方法及*** |
CN105933242A (zh) * | 2016-04-12 | 2016-09-07 | 北京大学深圳研究生院 | 一种提高数据中心tcp响应速度的方法及*** |
CN106713454A (zh) * | 2016-12-22 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种网络连接方法及装置 |
CN109032830A (zh) * | 2018-07-25 | 2018-12-18 | 广东浪潮大数据研究有限公司 | 一种分布式存储***的故障恢复方法、***及相关组件 |
CN110493820A (zh) * | 2019-09-24 | 2019-11-22 | 辰芯科技有限公司 | 一种传输时延评估方法、装置、通信节点和存储介质 |
CN110839017A (zh) * | 2019-10-21 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 代理ip地址识别方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
陆摩西: ""SCTP协议关键技术研究及其实现"", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021218520A1 (zh) | 2021-11-04 |
CN113596068B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113596068B (zh) | 建立tcp连接的方法、装置和服务器 | |
CN107534930B (zh) | 一种Wi-Fi热点的推荐方法、终端及图形用户界面 | |
CN108471369B (zh) | 一种网络拨号方法、装置及存储介质 | |
CN106685847B (zh) | 一种报文处理方法、装置及设备 | |
CN113708895B (zh) | 数据传输方法、装置及电子设备 | |
CN108234087B (zh) | 数据传输方法及发送端 | |
CN110933142A (zh) | 一种icfs集群网卡监控方法、装置和设备及介质 | |
CN112152828B (zh) | 一种游戏加速方法、装置、vpn终端及存储介质 | |
CN105681385A (zh) | 信息推送方法及装置 | |
CN116170870B (zh) | 网络注册方法、装置、存储介质及电子设备 | |
CN114301676A (zh) | 一种电力监控***的无损化资产探测方法 | |
EP3264851A1 (en) | Data transmission method and device for data service | |
CN111818582B (zh) | 数据传输方法、装置及电子设备 | |
CN107786607B (zh) | 一种消息重传方法、消息重传服务器及用户设备 | |
CN116599953A (zh) | 一种文件上传的方法、装置、***、设备及可读存储介质 | |
CN111181890B (zh) | 同步信号的方法、装置和服务器 | |
CN112019391B (zh) | 终端网络设置方法、装置、***及存储介质 | |
CN110099001B (zh) | 双向转发检测时间参数协商方法、装置及电子设备 | |
CN115438119A (zh) | 选举主副本的方法、装置和电子设备 | |
EP3975533A1 (en) | Method, terminal, and system for acquiring terminal state, and computer readable storage medium | |
CN113852694A (zh) | 一种用于多端接入客户***的消息推送***及推送方法 | |
CN110972140A (zh) | 电信4g移动网络中信息处理的方法和装置 | |
CN108834116B (zh) | 蓝牙配对方法、电子设备及存储介质 | |
CN113179247B (zh) | 拒绝服务攻击防护方法、电子装置和存储介质 | |
WO2018132966A1 (zh) | 探测老化时延的方法、装置、数据中心和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |