一种TCP连接的建立方法、装置、终端、服务器及系统制造方法及图纸

技术编号:10790574 阅读:85 留言:0更新日期:2014-12-17 19:32
本发明专利技术涉及一种TCP连接的建立方法,包括:截获该客户端发出的用于请求建立与服务器之间的传输控制协议TCP连接的同步SYN包;根据该SYN包,模拟服务器的代理机制构造一同步确认SYNACK包,将该SYNACK包返回至该客户端,使客户端根据该SYNACK包发送一确认ACK包至该服务器,从而与该服务器建立TCP连接。本发明专利技术还提供一种TCP连接的建立装置、终端、服务器及系统。利用本发明专利技术可以减少TCP连接建立过程中客户端与服务器之间握手交互的次数,提高建立TCP连接的速度,并降低服务器的内存消耗。

【技术实现步骤摘要】
一种TCP连接的建立方法、装置、终端、服务器及系统
本专利技术具体实施例涉及网络通信
,特别涉及一种传输控制协议TCP连接的建立方法、装置、终端、服务器及系统。
技术介绍
如图1所示,传输控制协议(TransmissionControlProtocol,TCP)规定的TCP连接建立过程的三次握手(Three-wayHandshake)包括:第一步,客户端发送一个请求建立TCP连接的同步(Synchronize,SYN)包给服务器,该SYN包中TCP首部的SYN标志位被置1,并且该SYN包携带有一个序列号(sequencenumber)x;第二步,服务器在接收到该SYN包后,将响应一个同步确认(SYNACK)包给客户端,表示客户端的请求被接受,该SYNACK包中TCP首部的SYN标志位和ACK标志位都被置1,并且该SYNACK包中携带有一个确认号(acknowledgenumber)y以及一个序列号z;第三步,客户端接收到该SYNACK包后,检查该SYNACK包中的该确认号y是否等于x+1,若是,则发送一个确认(Acknowledge,ACK)包给服务器,该ACK包中TCP首部的ACK标志位被置1,且该ACK包携带有一个确认号q。该ACK包还可以附带待发送的数据,例如基于HTTP(Hypertexttransferprotocol,超文本传输协议)的请求(Request)数据。服务器接收到该ACK包后,若检查到该确认号q等于z+1,则TCP连接建立成功,服务器接收并响应该数据。上述的三次握手的过程需要客户端与服务器进行多次交互,经过一定的往返时间(Round-tripTime,简称RTT)的延迟才能成功建立TCP连接。因此,建立TCP连接的速度将受到RTT延迟的影响。若TCP连接建立的速度较迟缓,会使服务器对客户端发送数据的响应也较迟缓。客户端需要等待一个RTT延迟才能在该ACK包中附带数据发送至服务器,并且再等待一个RTT延迟才能接收到服务器对该数据的响应。为了减少RTT延迟,加速TCP连接的建立,Linux系统下的TCPFastOpen(简称TFO)选项支持在服务器与客户端通过三次握手已经建立过一次TCP连接的情况下,若该TFO选项被开启,则当服务器再次接收到客户端发送的要求与服务器建立TCP连接的SYN包时,若验证该客户端已经与服务器成功建立过TCP连接,则可以直接建立与客户端的TCP连接,以及接收该SYN包附带的数据并响应。然而,该TFO选项还是要在客户端与服务器通过三次握手的交互过程预先建立过TCP连接的基础上才能应用。此外,上述的三次握手过程需要在服务器中开辟一个较大的内存空间用于存储服务器在每接收到一个SYN包后产生的半连接状态的条目。随着服务器接收到SYN包的数量不断增加,将会大量消耗服务器的内存资源。
技术实现思路
有鉴于此,有必要提供一种TCP连接的建立方法、装置、终端、服务器及系统,可以减少TCP连接建立过程中客户端与服务器之间握手交互的次数,提高建立TCP连接的速度,并降低服务器的内存消耗。一种TCP连接的建立方法,包括以下步骤:截获客户端发出的用于请求建立与服务器之间的传输控制协议TCP连接的同步SYN包;根据该SYN包,模拟服务器的代理机制构造一同步确认SYNACK包,将该SYNACK包返回至该客户端,使客户端根据该SYNACK包发送一确认ACK包至该服务器,从而与该服务器建立TCP连接。一种TCP连接的建立装置,包括:截获模块,用于截获客户端发出的用于请求建立与服务器之间的传输控制协议TCP连接的同步SYN包;构造模块,用于根据该SYN包,模拟服务器的代理机制构造一同步确认SYNACK包,将该SYNACK包返回至该客户端,使客户端根据该SYNACK包发送一确认ACK包至该服务器,从而与该服务器建立TCP连接。一种终端,包括如上所述的TCP连接的建立装置。一种系统,包括至少一个服务器和至少一个如前述的终端。一种服务器,包括如上所述的TCP连接的建立装置。一种系统,包括至少一个终端,至少一个服务器,所述至少一个终端和所述至少一个服务器通过至少一个如前述的服务器连接。相较于现有技术,本专利技术TCP连接的建立方法、装置、终端、服务器及系统,通过截获客户端发送的SYN包,并模拟服务器向客户端返回SYNACK包,从而建立客户端与服务器之间的TCP连接,可以减少TCP连接建立过程中客户端与服务器之间握手交互的次数,提高建立TCP连接的速度,并降低服务器的内存消耗。为让本专利技术的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明图1为建立TCP连接的三次握手的过程示意图。图2为本专利技术第一实施例提供的TCP连接的建立方法应用时的环境示意图。图3为本专利技术第一实施例提供的TCP连接的建立方法的流程图。图4为本专利技术第二实施例提供的TCP连接的建立装置的框图。图5为客户端与服务器通过图4中的TCP连接的建立装置建立TCP连接的交互过程示意图。图6为本专利技术第三实施例提供的一种终端的框图。图7为本专利技术第四实施例提供的一种系统的框图。图8为本专利技术第五实施例提供的一种服务器的框图。图9为本专利技术第六实施例提供的一种系统的框图。具体实施方式为更进一步阐述本专利技术为实现预定专利技术目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本专利技术的具体实施方式、结构、特征及其功效,详细说明如后。参阅图2所示,为本专利技术第一实施例提供的TCP(TransmissionControlProtocol,传输控制协议)连接的建立方法应用时的环境示意图。在本实施例中,该TCP连接的建立方法用于在服务器2与终端1中的客户端10之间通过网络3建立TCP连接。该终端1的具体实例包括但并不限于台式计算机、便携式计算机、智能手机、平板电脑或者其他类似的运算装置。网络3可为任意的网络连接方式,例如互联网(Internet)、移动互联网(如电信运营商提供的2G、3G网络)、局域网(有线或者无线)等。参阅图3所示,本专利技术第一实施例提供一种TCP连接的建立方法,该TCP连接的建立方法包括以下步骤:步骤S1,截获该客户端10发出的用于请求建立与服务器2之间的传输控制协议TCP连接的同步SYN包;步骤S2,根据该SYN包,模拟服务器2的代理机制构造一同步确认SYNACK包,将该SYNACK包返回至该客户端10,使客户端10根据该SYNACK包发送一确认ACK包至该服务器2,从而与该服务器2建立TCP连接。按照上述的TCP连接的建立方法,通过截获客户端10发送的SYN包,并模拟服务器2向客户端10返回SYNACK包,从而建立客户端10与服务器2之间的TCP连接,可以减少TCP连接建立过程中客户端10与服务器2之间握手交互的次数,提高建立TCP连接的速度,并降低服务器的内存消耗。在一些实例中,上述方法的各步骤的实现细节如下:步骤S1所述的SYN包中TCP首部的SYN标志位被置1,表示请求与服务器2建立TCP连接。此外,该SYN包还携带有一个序列号(sequencenumber)x。该SYN包中的序列号x可以由客户端10按照一定的规律计算得到,或者随机产生,例如该x=1234567。步骤S2所述的服务本文档来自技高网
...

【技术保护点】
一种TCP连接的建立方法,其特征在于,该方法包括以下步骤:截获客户端发出的用于请求建立与服务器之间的传输控制协议TCP连接的同步SYN包;根据该SYN包,模拟服务器的代理机制构造一同步确认SYNACK包,将该SYNACK包返回至该客户端,使客户端根据该SYNACK包发送一确认ACK包至该服务器,从而与该服务器建立TCP连接。

【技术特征摘要】
1.一种TCP连接的建立方法,其特征在于,该方法包括以下步骤:截获客户端发出的用于请求建立与服务器之间的传输控制协议TCP连接的同步SYN包;根据该SYN包,模拟服务器的代理机制构造一同步确认SYNACK包,将该SYNACK包返回至该客户端,使客户端根据该SYNACK包发送一确认ACK包至该服务器,从而与该服务器建立TCP连接;其中,所述ACK包携带有一确认号q;所述服务器接收到该ACK包后,将根据该确认号q通过所述代理机制验证该ACK包是否合法,若该ACK包合法,则与该客户端建立TCP连接;所述服务器验证该ACK包是否合法的步骤包括:通过所述代理机制使用的预定算法生成一个数值;判断该确认号q减1后与该数值是否相等,若是,则验证该ACK包合法。2.如权利要求1所述的TCP连接的建立方法,其特征在于,所述服务器的代理机制为syn-cookies机制。3.如权利要求1所述的TCP连接的建立方法,其特征在于,所述SYN包携带有一序列号x。4.如权利要求3所述的TCP连接的建立方法,其特征在于,所述模拟服务器的代理机制构造一同步确认SYNACK包的步骤包括:通过对该序列号x加1生成一确认号y,并使用所述预定算法生成一序列号a,然后生成携带该确认号y和序列号a的该SYNACK包。5.如权利要求4所述的TCP连接的建立方法,其特征在于,所述客户端接收到该SYNACK包后,将先根据该确认号y验证该SYNACK包是否合法,若该SYNACK包合法,再向服务器发送该ACK包。6.如权利要求1所述的TCP连接的建立方法,其特征在于,所述客户端将该ACK包与待发送数据共同发送至服务器。7.一种TCP连接的建立装置,其特征在于,该装置包括:截获模块,用于截获客户端发出的用于请求建立与服务器之间的传输控制协议TCP连接的同步SYN包;构造模块,用于根据该SYN包,模拟服务器的代理机制构造一同步确认SYNACK包,将该SYN...

【专利技术属性】
技术研发人员:余子军刘贤彬
申请(专利权)人:深圳市腾讯计算机系统有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1