掌桥专利:专业的专利平台
掌桥专利
首页

一种TCP连接的建立方法、装置、设备及系统

文献发布时间:2023-06-19 09:46:20


一种TCP连接的建立方法、装置、设备及系统

技术领域

本申请涉及计算机技术领域,特别涉及一种TCP连接的建立方法、装置、设备、系统及可读存储介质。

背景技术

在TCP协议(Transmission Control Protocol,传输控制协议)中,为了建立TCP连接,通信双方必须从对方了解TCP Options中的关键信息。目前的实现方案是在中间代理设备上人工配置服务端基本信息,效率较低。

发明内容

本申请的目的是提供一种TCP连接的建立方法、装置、设备、系统及可读存储介质,用以解决中间代理设备上的服务端基本信息需要人工配置,导致效率低下的问题。其具体方案如下:

第一方面,本申请提供了一种TCP连接的建立方法,应用于代理设备,包括:

向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地;

接收客户端发送的连接请求,根据所述连接请求确定客户端的基本选项信息;

对所述服务端的基本选项信息和所述客户端的基本选项信息进行协商,得到协商结果;

将所述协商结果发送至客户端,以实现TCP连接的建立。

优选的,所述基本选项信息包括以下任意一项或多项:是否支持Timestamp、是否支持SACK、是否支持Window Scale、Window Scale大小、MSS大小。

优选的,所述代理设备为反向代理设备。

优选的,在所述向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地之后,还包括:

周期性地向服务端发送获取请求,得到服务端的基本选项信息,利用该基本选项信息更新保存在本地的基本选项信息。

第二方面,本申请提供了一种TCP连接的建立装置,应用于代理设备,包括:

获取模块:用于向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地;

接收模块:用于接收客户端发送的连接请求,根据所述连接请求确定客户端的基本选项信息;

协商模块:用于对所述服务端的基本选项信息和所述客户端的基本选项信息进行协商,得到协商结果;

发送模块:用于将所述协商结果发送至客户端,以实现TCP连接的建立。

优选的,还包括:

更新模块:用于周期性地向服务端发送获取请求,得到服务端的基本选项信息,利用该基本选项信息更新保存在本地的基本选项信息。

第三方面,本申请提供了一种TCP连接的建立设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序,以实现如上所述的TCP连接的建立方法。

第四方面,本申请提供了一种TCP连接的建立系统,包括:客户端、代理设备和服务端;

其中,所述代理设备用于向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地;

客户端用于向所述代理设备发送连接请求,所述代理设备用于根据所述连接请求确定客户端的基本选项信息;对所述服务端的基本选项信息和所述客户端的基本选项信息进行协商,得到协商结果;将所述协商结果发送至客户端,以实现TCP连接的建立。

第五方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的TCP连接的建立方法。

本申请所提供的一种TCP连接的建立方法,应用于代理设备,包括:向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地;接收客户端发送的连接请求,根据连接请求确定客户端的基本选项信息;对服务端的基本选项信息和客户端的基本选项信息进行协商,得到协商结果;将协商结果发送至客户端,以实现TCP连接的建立。

可见,在客户端请求建立TCP连接之前,代理设备能够自动从服务端获取基本选项信息并进行保存,在客户端请求建立TCP连接时,代理设备依据提前获得的服务端的基本选项信息与客户端的相应信息进行协商,避免用户在代理设备进行手动配置,提升TCP连接建立效率。

此外,本申请还提供了一种TCP连接的建立装置、设备、系统及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。

附图说明

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

图1为本申请所提供的一种TCP连接的建立方法实施例一的实现流程图;

图2为本申请所提供的一种TCP连接的建立方法实施例二的实现过程时序图;

图3为本申请所提供的一种TCP连接的建立装置实施例的功能框图;

图4为本申请所提供的一种TCP连接的建立设备实施例的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在TCP协议中,为了建立连接TCP连接,通信双方必须从对方了解TCP Options(options是TCP头部的最后一个选项字段,是可变长的可选信息)中的关键信息。目前的实现方案是在中间代理设备上手动配置服务端基本信息,不够自动化。

针对该问题,本申请提供了一种TCP连接的建立方法、装置、设备、系统及可读存储介质,使得代理设备能够自动从服务端获取基本选项信息,避免在代理设备手动配置服务端选项信息,实现自动化配置,提升处理效率。

下面对本申请提供的一种TCP连接的建立方法实施例一进行介绍,参见图1,实施例一应用于代理设备,包括:

S101、向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地;

S102、接收客户端发送的连接请求,根据所述连接请求确定客户端的基本选项信息;

S103、对所述服务端的基本选项信息和所述客户端的基本选项信息进行协商,得到协商结果;

S104、将所述协商结果发送至客户端,以实现TCP连接的建立。

本实施例中,基本选项信息包括以下任意一项或多项:是否支持Timestamp、是否支持SACK(Selective Acknowledgment)、是否支持Window Scale、Window Scale大小、MSS大小(maximum segment size)。

其中,Timestamp即时间戳选项。TCP连接初始化时,通信双方使用该选项来协商是否支持时间戳。该选项提供了较为准确的计算通信双方之间的回路时间的方法,从而为TCP流量控制提供重要信息。

是否支持SACK为选择性确认选项,用在连接初始化时,表示是否支持SACK技术。它使TCP模块只重新发送丢失的TCP报文段,不用发送所有未被确认的TCP报文段。

Window Scale,即窗口扩大因子选项。TCP连接初始化时,通信双方使用是否支持Window Scale的选项来协商接收通告窗口的扩大因子。

MSS大小,是指能被接收的最大报文段长度。TCP连接初始化时,通信双方使用该选项来协商最大报文段长度,表示在本连接的每个TCP分节中愿意接受的最大数据量。一般情况下,发送端TCP使用接收端的MSS值作为所发送分节的最大大小。

本实施例中,代理设备可以为正向代理设备,也可以为反向代理设备。当选用反向代理设备时,还需要通过负载均衡确定客户端连接至的服务端。

可以理解的是,代理设备从服务端获取基本选项信息之后,服务端上的基本选项信息可能发生变化,此时需要将服务端的基本选项信息同步至代理设备。具体同步方式可以如下:周期性地向服务端发送获取请求,得到服务端的基本选项信息,利用该基本选项信息更新保存在本地的基本选项信息。

本实施例所提供一种TCP连接的建立方法,应用于代理设备,包括:向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地;接收客户端发送的连接请求,根据连接请求确定客户端的基本选项信息;对服务端的基本选项信息和客户端的基本选项信息进行协商,得到协商结果;将协商结果发送至客户端,以实现TCP连接的建立。

可见,代理设备在与客户端建立TCP连接前,能够自动探测得知服务器的基本选项信息,保存这些信息。在客户端发起TCP连接建立请求时,代理设备依据提前获得的服务器选项信息与客户端的相应信息进行协商,实现快速响应,增加连接效率。

下面开始详细介绍本申请提供的一种TCP连接的建立方法实施例二,参见图2,实施例二的实施过程如下:

时间节点1:代理设备向服务端发送SYN报文,其中夹带TCP option信息(是否支持Timestamp、是否支持SACK、是否支持Window Scale、Window Scale大小、MSS大小等)的询问信息。

时间节点2:服务端收到代理设备的SYN报文。

时间节点3:服务端回应代理设备的SYN报文,向其发送SYN/ACK报文,其中夹带着自身的TCP option信息。

时间节点4:中间设备收到时间节点3服务端响应的SYN/ACK报文,解析出TCPoption信息,并保存这些信息。

时间节点5:客户端向代理设备发送TCP连接请求SYN报文,在SYN报文中会携带TCPoption信息,用于和代理设备协商出相关TCP option。

时间节点6:代理设备收到客户端SYN请求报文,解析请求报文中的TCP option信息。

时间节点7:代理设备结合时间节点4中保存的服务端支持的TCP option信息和时间节点6中解析到的客户端发来的TCP option信息,得出最终的协商结果并把这些协商后的TCP option信息通过SYN/ACK报文响应给客户端。

可见,上述过程不需要用户手动配置TCP option信息,且代理设备做到事前(客户端发送请求SYN之前)与服务端协商,当客户端SYN请求到达中间设备后快速响应,显著提升了连接效率。

下面对本申请实施例提供的一种TCP连接的建立装置进行介绍,下文描述的TCP连接的建立装置与上文描述的TCP连接的建立方法可相互对应参照。

如图3所示,本实施例的TCP连接的建立装置,应用于代理设备,包括:

获取模块301:用于向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地;

接收模块302:用于接收客户端发送的连接请求,根据所述连接请求确定客户端的基本选项信息;

协商模块303:用于对所述服务端的基本选项信息和所述客户端的基本选项信息进行协商,得到协商结果;

发送模块304:用于将所述协商结果发送至客户端,以实现TCP连接的建立。

在一些具体的实施例中,所述基本选项信息包括以下任意一项或多项:是否支持Timestamp、是否支持SACK、是否支持Window Scale、Window Scale大小、MSS大小。

在一些具体的实施例中,上述代理设备为反向代理设备。

在一些具体的实施例中,还包括:

更新模块:用于周期性地向服务端发送获取请求,得到服务端的基本选项信息,利用该基本选项信息更新保存在本地的基本选项信息。

本实施例的TCP连接的建立装置用于实现前述的TCP连接的建立方法,因此该装置中的具体实施方式可见前文中的TCP连接的建立装置方法实施例部分,例如,获取模块301、接收模块302、协商模块303、发送模块304,分别用于实现上述TCP连接的建立方法中步骤S101,S102,S103,S104。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。

另外,由于本实施例的TCP连接的建立装置用于实现前述的TCP连接的建立方法,因此其作用与上述方法的作用相对应,这里不再赘述。

此外,本申请还提供了一种TCP连接的建立设备,如图4所示,包括:

存储器100:用于存储计算机程序;

处理器200:用于执行所述计算机程序,以实现如上文所述的TCP连接的建立方法。

本申请还提供了一种TCP连接的建立系统,包括:客户端、代理设备和服务端;

其中,所述代理设备用于向服务端发送获取请求,得到服务端的基本选项信息,并保存在本地;

客户端用于向所述代理设备发送连接请求,所述代理设备用于根据所述连接请求确定客户端的基本选项信息;对所述服务端的基本选项信息和所述客户端的基本选项信息进行协商,得到协商结果;将所述协商结果发送至客户端,以实现TCP连接的建立。

最后,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的TCP连接的建立方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

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

相关技术
  • 一种TCP连接的建立方法、装置、设备及系统
  • 一种TCP连接的建立方法、装置及网络设备
技术分类

06120112295218