识别原始ip地址以及客户端端口连接的制作方法_3

文档序号:9355677阅读:来源:国知局
处TCP头部结束并且数据开始。
[0034]根据一个实施例的特征,并且如以下将更详细描述的,用于连接的XFS可包括在选项字段60中。XFS可包括4字节的源IP标志符和2字节的源端口标志符。如以下将详细描述的,在客户端与服务器之间的TCP连接的初始化期间、在它们之间进行三方握手过程中,XFS由代理服务器保存在ACK片段的选项字段60中。
[0035]TCP使用三方握手在两个网络元件之间建立连接。一般地,在客户端尝试与服务器建立连接之前,服务器将执行“被动打开”,其中服务器绑定至端口并且在端口处监听以打开端口从而用于连接。之后,客户端可经由三方握手发起“主动打开”。首先,客户端向服务器发送同步(“SYN”)消息,其中客户端将TCP片段的序列号设定为随机值X。服务器用同步确认(“SYN-ACK”)消息回应SYN消息,其中确认号被设定为比所接收序列号大一;在这种情况下,即N+1。另外,服务器选择另一个随机值用作分组的序列号(例如,Y)。响应于接收到SYN-ACK消息,客户端向服务器发送确认(“ACK”)消息,其中序列号被设定为所接收的确认值(X+1)并且确认号被设定为所接收的序列号大一(Y+1)。此时,客户端和服务器两者都已经确认并接收到连接的确认。以此方式,在客户端与服务器之间建立了全双工通
?目O
[0036]参照图3,在操作中,当客户端70尝试打开到服务器72的TCP连接时,客户端和服务器经由代理服务器73交换一系列消息,如图3所示。如图3所示,客户端70通过经由代理服务器73向服务器72发送SYN消息74来请求连接至服务器。服务器72通过经由代理服务器73向客户端70发送SYN-ACK消息76来回应并确认所接收的请求。客户端70用其自己的ACK消息78回应SYN-ACK消息。应意识到,根据本文描述的实施例,代理服务器73将XFS嵌入在其向服务器72转发的ACK消息的TCP片段中,从而创建ACK消息78'。一旦服务器72接收到ACK消息78',就建立了连接。
[0037]将注意到,尽管XFS可嵌入在SYN消息的TCP片段中,但是因为服务器无需知道客户端的地址,所以如果三方握手不成功,将XFS嵌入在ACK消息的TCP片段中更有效。另外,将XFS嵌入在ACK消息中避免服务器使用SYN信息记录程序来避免未保存SYN分组信息而造成的SYN攻击的问题。
[0038]如上所述,与其他通信包对照,XFS有利地嵌入在握手包中,因为当握手成功时,内核将会假设套接为连接成功。因此,XFS信息仅被保存一次,从而降低网络成本和开销。此夕卜,即使数据在通信期间丢失,内核将会保持实际客户端地址而不是代理服务器地址。
[0039]图4根据实施例示出由代理服务器实现的用于执行TCP三方握手的技术的流程图,TCP三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用。如图4所示,在步骤90中,代理服务器从客户端接收SYN消息并将其转发至服务器。在步骤92中,代理服务器从服务器接收SYN-ACK消息并将其转发至客户端。在步骤94中,代理服务器从客户端接收ACK消息。在步骤96中,代理服务器创建客户端的XFS,在一个实施例中,XFS可包括4字节的源IP标志符和2字节的源端口标志符。代理服务器将客户端的XFS嵌入在从客户端接收的ACK的TCP头部的选项字段中。在步骤98中,代理服务器将具有嵌入的XFS值的ACK转发至服务器。
[0040]图5根据实施例示出由网络服务器实现的用于执行TCP三方握手的技术的流程图,TCP三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用。如图5所示,在步骤100中,服务器经由代理服务器从客户端SYN消息。在步骤102中,服务器利用经由代理服务器向客户端发送的SYN-ACK消息回应SYN消息。在步骤104中,服务器从代理服务器接收具有嵌入的XFS值的ACK消息。在步骤106中,服务器保存嵌入的XFS中所包括的源IP地址和源端口信息。
[0041]在一种示例性实现方式中,实施本文所述的实施例所涉及的各种设备可包括用于实现所述功能的软件。例如,参考图5,本文所述实施例的路由器中的每一个(在图5中由路由器130表示)可包括修剪模块132,修剪模块包括具体体现在一种或多种有形介质中的用于促进本文所述的活动的软件。路由器130还可包括用于存储有待用于实现如本文所概括的功能的信息的存储设备134。另外,路由器130可包括能够执行软件或算法(如具体体现在模块132中)以执行本说明书中所论述的功能的处理器136。
[0042]图6是根据实施例在向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接时使用的代理服务器和网络服务器的更详细框图。如图6所示,在一个实施例中,代理服务器120可包括XFS插入模块122,XFS插入模块包括具体体现在一种或多种有形介质中的用于促进本文所述的活动的软件。代理服务器120还可包括用于存储有待用于实现如本文所概括的功能的信息的存储设备124。另外,代理服务器120可包括能够执行软件或算法(如具体体现在模块122中)以执行如本说明书中所论述的功能的处理器126。类似地,网络服务器130可包括XFS恢复模块132,XFS恢复模块包括具体体现在一种或多种有形介质中的用于促进本文所述的活动的软件。模块132可驻留在网络服务器130的内核133中。网络服务器130还可包括用于存储有待用于实现如本文所概括的功能的信息的存储设备134。另外,网络服务器130可包括能够执行软件或算法(如具体体现在模块132中)以执行本说明书中所论述的功能的处理器136。在图6中由应用程序138表示的在网络服务器130上执行的一个或多个应用程序可访问由模块132恢复并存储在网络服务器130上(例如,在内核133中)的源IP和端口识别信息,以供用于在需要、有利、希望的情况下执行各种操作。
[0043]应注意,在涉及多层代理服务器/负载平衡器的体系架构中,XFS由遇到ACK的代理服务器中的第一个嵌入到ACK的TCP头部中;TCP头部此后由剩余代理服务器维持,以供由如上所述的目的地网络服务器使用。
[0044]还应注意,本文所论述的大多数基础设施可配置为任何类型的网络设备的一部分。如本文所使用,术语“网络设备”可涵盖计算机、服务器、网络家电、主机、路由器、交换机、网关、网桥、虚拟设备、负载平衡器、防火墙、处理器、模块,或可操作以在通信环境中交换信息的任何其他合适的设备、组件、元件或对象。此外,网络设备可包括促进其操作的任何合适的硬件、软件、组件、模块、接口或对象。这可以包括允许有效交换数据或信息的适当的算法和通信协议。
[0045]在一种实现方式中,这些设备可包括实现(或促成)本文论述的活动的软件。这可包括附图中所示的组件、引擎、逻辑、模块等中任一种的实例的实现方式。另外,这些设备中的每一个可具有促进在此描述的一些操作的内部结构(例如,处理器、存储元件等)。在其他实施例中,活动可在这些设备外部执行,或包括在一些其他设备中以实现预期功能性。可替代地,这些设备可包括可与其他元件协作以便执行本文描述的活动的软件(或往复式软件)ο在再其他实施例中,一个或几个设备可包括促进其操作的任何合适的算法、硬件、软件、组件、模块、接口或对象。
[0046]注意,在某些示例性实现方式中,本文概括的功能可由编码在一个或多个非暂态有形介质(例如,专用集成电路(“ASIC”)中设置的嵌入逻辑、数字信号处理器(“DSP”)指令、软件(潜在地包括对象代码和源代码))中以便由处理器或其他类似机器等执行的逻辑实施。在这些实例的一些中,存储元件(
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1