用于执行传输控制协议握手的设备和方法技术

技术编号:13676973 阅读:38 留言:0更新日期:2016-09-08 03:23
通过让发起者设备(210)使用终止者设备(230)的IP地址作为源地址将SYN(m)发送到服务器(220)来分配TCP握手。发起者设备接着可以忘记SYN(m)的任何TCP状态。服务器(230)根据正常TCP握手用SYN‑ACK(m+1,n)进行响应,但该响应去往终止者设备(230),该终止者设备(230)接收(S310)该消息,重建(S320)TCP握手,好像其已发送过初始SYN消息一样,以及发送(S330)ACK(n+1)到服务器(220)。该TCP握手方法可以用于避免在例如设备监测中分配资源。

【技术实现步骤摘要】

本公开一般涉及计算机系统,并且具体地涉及在这样的系统中执行TCP/IP握手。
技术介绍
这部分旨在向读者介绍技术的各个方面,其可以与下面描述和/或请求保护的本公开的各个方面有关。相信此讨论有助于为读者提供背景信息,以促进对本公开的各个方面的更好理解。因此,应当理解,要从这个角度来阅读这些陈述,而并非作为对现有技术的承认。在描述中,词语“客户端”可以用于指代TCP客户端,即发送SYN消息和ACK消息的设备,并且词语“服务器”可以用于指代TCP服务器,即接收SYN消息的设备。因而,应当认识到,这种“客户端”在术语的更一般使用中可以是服务器(诸如web服务器),并且以对应方式,“服务器”也可以是客户端,诸如web客户端。根据上下文来看,将要如何理解这些术语是清楚的。TCP/IP是非常熟知的通信协议。为了在两个设备之间创建TCP/IP连接,这两个设备执行图1所示的TCP握手。第一设备(被称为客户端)将包括第一设备的IP地址和第一整数m的SYN(m)消息发送到第二设备(被称为服务器)。如果服务器接受请求,则该服务器使用SYN-ACK(m+1,n)消息向所接收的IP地址进行响应,该SYN-ACK(m+1,n)消息包括第二整数n和第一整数m加1,即m+1。在发送SYN消息之后,客户端对所发送的SYN消息保存记录,并且等待预定时间;如果在时间耗尽之前客户端尚未接收到对应SYN-ACK消息,则该客户端停止等待。当从服务器接收到SYN-ACK消息时,客户端检查该SYN-ACK消息包括m+1。如果是这种情况,则客户端通过向服务器发送ACK(n+1)消息来确认接收,所述ACK(n+1)消息包括第二整数n加1,即n+1。服务器最后验证ACK消息包括n+1。假设服务器验证是成功的,在此之后,已成功完成握手。在某些情形下,例如当客户端试图与多个服务器并行执行握手时,握手期间设备不得不保持资源分配可能是个问题。对于每个发出或接收的SYN,TCP堆栈初始化一个传输控制块(TCB)记录,每个记录需要几百个字节。在三路握手期间,关于网络速度没有进行先验的假设。因此,TCB记录可能长时间幸存,消耗了资源。更糟的是,当将SYN发送到未连接或未响应的设备时,TCP堆栈将对应TCB维持一些时间(超时持续时间),从而浪费了资源。将认识到,期望有一种至少部分克服与TCP握手有关的问题的解决方案。本公开提供了这种解决方案。
技术实现思路
在第一方面,本原理针对一种用于执行TCP握手的设备。该设备包括:接口,其被配置为在至少一个外部设备与该设备的处理器之间传输消息;和处理器,其被配置为从接口接收SYN-ACK消息,所述设备对于所述SYN-ACK消息并未发送过对应SYN消息,所述SYN-ACK消息包括源地址;生成与SYN-ACK消息对应的ACK消息;以及向接口发送ACK消息以传输到源地址。第一方面的各个实施例包括:·处理器被配置为访问存储所传输的SYN消息的记录的TCP堆栈,以及通过好像设备已发送过对应SYN消息一样地修补TCP堆栈并且通过创建与对应SYN消息对应的记录,由此好像设备已发送过对应SYN消息一样地重建TCP握手。有利的是,每个记录包括SYN消息的序列号,处理器进一步被配置为通过从SYN-ACK消息中对应的整数中减去1来获得对应SYN消息的序列号。·该设备还包括防火墙,所述防火墙被配置为截取SYN-ACK消息并且向处理器通知该截取,处理器进一步被配置为生成向源地址发送的对应SYN消息并且更新TCP堆栈,以及防火墙进一步被配置为截取处理器所生成的对应SYN消息,然后仅将SYN-ACK消息转发到处理器。·处理器进一步被配置为将对于数据的请求发送到服务器,该请求包括第一整数,从服务器接收数据,以及使用第一整数以及随SYN-ACK
消息一起接收的第二整数,验证该SYN-ACK消息与该请求相关。在第二方面,本原理针对一种用于执行TCP握手的方法。设备的处理器接收设备尚未为其发送过对应SYN消息的SYN-ACK消息,该SYN-ACK消息包括源地址,以及生成并且发送对应于SYN-ACK消息的ACK消息到该源地址。第二方面的各个实施例包括:·该方法还包括:访问存储所传输的SYN消息的记录的TCP堆栈,以及通过好像设备已发送过对应SYN消息一样地修补TCP堆栈并且通过创建与对应SYN消息对应的记录,由此好像设备已发送过对应SYN消息一样地重建TCP握手。有利的是,每个记录包括SYN消息的序列号,处理器进一步被配置为通过从SYN-ACK消息中对应的整数中减去1来获得对应SYN消息的序列号。·该设备还包括防火墙,所述防火墙被配置为截取SYN-ACK消息并且向处理器通知该截取,处理器进一步被配置为生成向源地址发送的对应SYN消息并且更新TCP堆栈,以及防火墙进一步被配置为截取处理器所生成的对应SYN消息,然后仅将SYN-ACK消息转发到处理器。·处理器进一步被配置为将对于数据的请求发送到服务器,该请求包括第一整数,从服务器接收数据,以及使用第一整数以及随SYN-ACK消息一起接收的第二整数,验证该SYN-ACK消息与该请求相关。在第三个方面,本原理针对一种包括处理器的服务器,所述处理器被配置为从客户端接收对于数据的请求,该数据包括第一部分和第二部分并且该请求包括客户端的地址,发送第一部分到客户端,发送TCP握手的SYN消息到被配置为将第二部分提供给客户端的另一设备,该SYN消息包括作为源地址的客户端的地址。第三方面的实施例包括:该请求包括整数,该处理器还被配置为随SYN消息一起将该整数发送到另一设备。在第四方面,本原理针对一种方法,包括在服务器的处理器处:从客户端接收对于数据的请求,该数据包括第一部分和第二部分并且该请求包括客户端的地址,将第一部分发送到客户端,以及将TCP握手的SYN消息发送到被配置为将第二部分提供给客户端的另一设备,该SYN消息包括作为源地
址的客户端的地址。第四方面的实施例包括:该请求包括整数,并且其中该处理器进一步随SYN消息一起将该整数发送到另一设备。附图说明现在将通过非限制性举例的方式参照附图来描述本原理的优选特征,附图中:图1示出了根据现有技术的TCP握手;图2示出了实施本原理的系统;以及图3示出了根据本原理的在设备处执行TCP握手的方法。具体实施方式图2示出了实施本原理的系统200。该系统200包括发起者设备210、至少一个服务器设备220和至少一个终止者设备230。虽然仅对一些设备进行说明,但是这些设备210、220、230中的每个设备包括:至少一个硬件处理单元(“处理器”)211、231,存储器212、232,以及至少一个通信接口(I/O)213、233,所述至少一个通信接口(I/O)被配置为与其它设备传送消息至/自处理器。终止者设备230还可以包括防火墙234,所述防火墙可能在处理器231中或在单独的处理器(未示出)中实施。技术人员将认识到,为了清楚起见,所示出的设备非常简化,并且真实设备另外将包括诸如内部连接和电源之类的特征。正如所描述的,该处理器被配置为运行(可能至少部分地存储在存储器中的)指令,以便处置消息、执行计算等。非瞬时性存储介质(未示出)存储指令,当处理器运行该指令时,在本文档来自技高网
...

【技术保护点】
一种用于执行TCP握手的设备(230),所述设备包括:接口(233),其被配置为在至少一个外部设备(220)与所述设备(230)中的处理器之间传输消息;以及处理器(231),其被配置为:从接口(233)接收SYN‑ACK消息(250),所述设备对于所述SYN‑ACK消息并未发送过对应SYN消息(240),所述SYN‑ACK消息包括源地址;生成与所述SYN‑ACK消息(250)对应的ACK消息(260);以及将所述ACK消息(260)发送到接口(233),以便传输到源地址。

【技术特征摘要】
2015.02.20 EP 15305261.81.一种用于执行TCP握手的设备(230),所述设备包括:接口(233),其被配置为在至少一个外部设备(220)与所述设备(230)中的处理器之间传输消息;以及处理器(231),其被配置为:从接口(233)接收SYN-ACK消息(250),所述设备对于所述SYN-ACK消息并未发送过对应SYN消息(240),所述SYN-ACK消息包括源地址;生成与所述SYN-ACK消息(250)对应的ACK消息(260);以及将所述ACK消息(260)发送到接口(233),以便传输到源地址。2.如权利要求1所述的设备,其中处理器进一步被配置为:访问存储所传输的SYN消息的记录的TCP堆栈;以及通过好像所述设备已发送过对应SYN消息一样地修补TCP堆栈并且通过创建与对应SYN消息对应的记录,由此好像所述设备(230)已发送过对应SYN消息(240)一样地重建TCP握手。3.如权利要求2所述的设备,其中每个记录包括SYN消息的序列号,并且其中处理器进一步被配置为:通过从SYN-ACK消息中的对应整数中减去1来获得对应SYN消息的序列号。4.如权利要求1所述的设备,还包括防火墙(234),所述防火墙被配置为截取SYN-ACK消息(250)并且向处理器通知所述截取,其中处理器进一步被配置为生成向源地址发送的对应SYN消息(240)并且更新TCP堆栈,并且其中防火墙进一步被配置为截取由处理器生成的对应SYN消息并且然后仅将SYN-ACK消息(250)转发到处理器。5.如权利要求1所述的设备,其中处理器进一步被配置为:向服务器发送对于数据的请求,所述请求包括第一整数;从服务器接收数据;以及使用第一整数以及随SYN-ACK消息一起接收的第二整数,验证所述SYN-ACK消息与所述请求相关。6.一种用于在设备(230)处执行TCP握手的方法,所述方法包括:由设备的处理器(231)接收(S310)SYN-ACK消息(250),所述设备
\t对于所述SYN-ACK消息并未发送过对应SYN消息(240),所述SYN-ACK消息包括源地址;由处理器生成并且发送(S330)与SYN-ACK消息(250)对应的ACK消息(260)...

【专利技术属性】
技术研发人员:O·希恩C·诺伊曼
申请(专利权)人:汤姆逊许可公司
类型:发明
国别省市:法国;FR

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

1