CN105075216B - 识别原始ip地址以及客户端端口连接 - Google Patents
识别原始ip地址以及客户端端口连接 Download PDFInfo
- Publication number
- CN105075216B CN105075216B CN201480013574.0A CN201480013574A CN105075216B CN 105075216 B CN105075216 B CN 105075216B CN 201480013574 A CN201480013574 A CN 201480013574A CN 105075216 B CN105075216 B CN 105075216B
- Authority
- CN
- China
- Prior art keywords
- xfs
- message
- client
- value
- server
- 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.)
- Active
Links
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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/22—Parsing or analysis of headers
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- 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]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
在一个示例性实施例中提供了一种方法,所述方法包括接收来自客户端、目的地为服务器的消息;将识别所述客户端的X‑Forwarded Source(“XFS”)值嵌入在所接收的消息中;并且将包括所嵌入的XFS值的所接收的消息转发至所述服务器。在一个实施例中,所述消息是传输控制协议(“TCP”)三方握手的确认(“ACK”)消息。所述XFS值可包括所述客户端的源IP地址和与所述客户端相关联的源端口标志符中的至少一者。所接收的消息可响应于由所述客户端从所述服务器接收的传输控制协议(“TCP”)同步确认(“SYN‑ACK”)消息而被发送。此外,所述XFS值可嵌入在所述消息的传输控制协议(“TCP”)头部中。
Description
技术领域
本公开一般涉及经由代理服务器将客户端连接至网络服务器,并且更具体地,涉及用于识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接的技术。
背景技术
负载平衡器或代理服务器通常用在基于网络的服务的客户端与用于提供服务的多个网络服务器之间,以便平衡服务器之间的工作负载。在一个示例中,负载平衡器可监听外部客户端为访问服务而连接的位置处的端口。负载平衡器然后可向一个后台服务器转发请求,后台服务器可直接应答负载平衡器,从而允许负载平衡器在客户端甚至不知道后端服务器的存在的情况下应答客户端。
使用代理服务器/负载平衡器的另一个效果在于:网络服务器看不到实际客户端地址;代理服务器/负载平衡器的IP地址作为原始地址被提供给网络服务器,从而有效地使得代理服务器/负载平衡器成为匿名服务。这使得对检测和防止滥用客户端访问比在客户端的IP地址被提供给网络服务器作为原始地址情况下更加困难。目前,X-Forwarded-For(“XFF”)HTTP头部字段可用于识别通过HTTP代理服务器或负载平衡器连接至网络服务器的客户端的原始IP地址。XFF的可用性取决于代理服务器真实报告原始主机的IP地址。因此,有效使用XFF要求知道代理服务器的可信度,例如,如其保持器可受到信任的服务器的白名单所指示。此外,因为XFF是HTTP头部字段,所以它仅在与HTTP代理服务器/负载平衡器有关时有用。
附图说明
为提供对本公开及其特征和优点的更完整理解,结合附图参照以下说明,在附图中,类似参考数字表示类似部分,其中:
图1是数据通信环境的框图,在数据通信环境中,可实现用于向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接的实施例;
图2根据实施例示出包括X-Forwarded Source(“XFS”)元素的传输控制协议(“TCP”)片段,所述元素用于向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接;
图3根据实施例示出在用于发起TCP连接的三方握手期间交换的消息,三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用;
图4根据实施例示出由代理服务器实现的用于执行TCP三方握手的技术的流程图,TCP三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用;
图5根据实施例示出由网络服务器实现的用于执行TCP三方握手的技术,TCP三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用;并且
图6是根据实施例在向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接时使用的代理服务器和网络服务器的更详细框图。
示例性实施例的详细说明
概述
在一个示例性实施例中提供了一种方法,所述方法包括接收来自客户端、目的地为服务器的消息;将识别所述客户端的X-Forwarded Source(“XFS”)值嵌入在所接收的消息中;并且将包括所嵌入的XFS值的所接收的消息转发至所述服务器。在一个实施例中,所述消息是传输控制协议(“TCP”)三方握手的确认(“ACK”)消息。所述XFS值可包括所述客户端的源IP地址和与所述客户端相关联的源端口标志符中的至少一者。所接收的消息可响应于由所述客户端从所述服务器接收的传输控制协议(“TCP”)同步确认(“SYN-ACK”)消息而被发送。此外,所述XFS值可嵌入在所述消息的传输控制协议(“TCP”)头部中。
示例性实施例
以下说明参考各种实施例。然而,应当理解,本公开不限于具体描述的实施例。相反,不论是否涉及不同实施例,设想以下特征和元件的任何组合以实施和实践本公开。此外,尽管实施例可实现优于其他可能解决方案和/或优于现有技术的优点,但是给定实施例是否实现特定优点并不对本公开进行限制。因此,以下方面、特征、实施例和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求中明确叙述。同样地,对“本公开”的参考不应解释为概括本文公开的任何主题并且不应被认为是所附权利要求书的要素或限制,除非在权利要求中明确叙述。
如将了解,本公开的各方面可具体体现为系统、方法或计算机程序产品。因此,本公开的各方面可采取以下形式:在本文中一般可称为“模块”或“系统”的完全硬件实施例、完全软件实施例(包括固件、常驻软件、微码等)或组合软件和硬件方面的实施例。另外,本公开的各方面可采取计算机程序产品的形式,计算机程序产品具体体现在具有计算机可读程序代码编码在其上的一个或多个非暂态计算机可读介质中。
可利用一个或多个非暂态计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如(但不限于)电子、磁的、光的、电磁、红外或半导体系统、装置或设备,或前述各项的任何合适组合)。计算机可读存储介质的更具体示例(非穷尽清单)将包括以下各项:具有一根或多根电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(“RAM”)、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”或“闪存”)、光纤、便携式光盘只读存储器(“CD-ROM”)、光存储装置、磁存储装置、或前述各项的任何合适组合。在本文件的上下文中,计算机可读存储介质可以是能够包含或存储供指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用的程序的任何有形介质。
用于执行用于本公开各方面的操作的计算机程序代码可以一种或多种编程语言的任何组合来写入,所述编程语言包括如JavaTM、SmalltalkTM或C++等面向对象的编程语言、以及如″C″编程语言或类似编程语言的常规程序化编程语言。
以下参考根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述本公开的各方面。将理解,流程图图示和/或框图中的每个方框以及流程图图示和/或框图中的方框的组合可由计算机程序指令实现。这些计算机程序指令可提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个方框中所指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读介质中,计算机可读介质可引导计算机、其他可编程数据处理装置或其他设备以特定方式运行,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图的一个或多个方框中所指定的功能/动作的指令的制品。
计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程处理装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,使得在计算机或其他可编程处理装置上执行的指令提供用于流程图和/或框图的一个或多个方框中所指定的功能/动作的过程。附图中的流程图和框图示出根据本公开各个实施例的系统、方法和计算机程序产品的可能实现方式的体系架构、功能性和操作。
在此方面,流程图或框图中的每个方框可以表示代码的模块、片段或部分,其包括用于实现所指明的逻辑功能的一个或多个可执行指令。应注意,在一些替代实现方式中,方框中提到的功能可不按照图中所指出的顺序发生。例如,连续示出的两个方框实际上可基本上同时执行,或取决于所包括的功能性,方框有时可以按不同顺序执行。还将注意,框图和/或流程图图示中的每个方框以及框图和/或流程图图示中的方框的组合可由执行所指定功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合实现。
如以下将详细描述,在一个实施例中,提出一种用于识别原始IP地址以及客户端经由代理服务器与网络服务器的端口连接的方法。为此,并且如以下所详细描述,在发起TCP连接期间,由代理服务器将包括客户端的原始IP地址和源端口的X-Forwarded Source(“XFS”)值嵌入在从客户端到服务器的ACK消息的TCP头部中。以此方式,向网络服务器提供客户端的原始IP地址和源端口。
现在参照图1,其中示出包括用于实现本公开特征的多个网络设备的系统10。如图1所示,系统10可包括一个或多个最终用户终端(“EUT”)12,用户可通过所述最终用户终端经由互联网连接16访问内联网14。内联网14可被配置成用作用于向EUT 12提供基于互联网的服务的网站,EUT各自可包括用于与内联网14交互的网络客户端。EUT 12是包括用于发起通信的设备的客户端,设备如计算机、个人数字助理(PDA)、膝上型电脑或电子笔记本、蜂窝电话、IP电话、iPhoneTM、iPadTM、Microsoft SurfaceTM、Google NexusTM,或能够在系统10内发起语音、音频或数据交换的任何其他设备、组件、元件或对象。EUT 12还可以包括到用户的合适接口,如麦克风、显示器、或键盘或其他终端设备。EUT 12还可以包括试图代表另一个实体或元件发起通信的任何设备,如程序、数据库、或能够在系统10内发起语音或数据交换的任何其他组件、设备、元件或对象。另外,EUT 12中的每一个可以是专门设计用于涉及系统10的通信的唯一元件。
在一个实施例中,内联网14包括经由局部网络17互连并可由EUT 12经由代理服务器20访问的多个网络服务器18。面对面EUT 12、网络服务器18位于代理服务器20“后方”。代理服务器20可相对于系统10执行负载平衡应用,以便将由EUT 12产生的工作负载分布在多个服务器18上,从而实现最优资源利用和吞吐量、最小化响应时间、避免使一个或多个服务器超负载。一般地,在提供多个网络服务器时采用负载平衡技术通过冗余增加了系统可靠性。在一个实施例中,代理服务器20专用于为系统10并且特别是内联网14执行负载平衡。
TCP是互联网协议(“IP”)组、也称为TCP/IP组的核心协议。TCP提供八位字节流从在一个计算机上运行的应用程序到在另一个计算机上运行的另一个应用程序的可靠、有序的递送。TCP对应于TCP/IP组的传输层并且在应用程序与IP之间的中间层提供通信服务。具体地,当程序想要使用IP在互联网上发送大部分数据时,应用程序可向TCP发出单个请求,TCP进而处理IP细节(即,将数据分解到IP分组中并发出对应数量的IP请求)。IP分组是八位字节序列并包括识别分组的目的地的头部以及作为所传输数据的本体。由于各种网络问题,IP分组可能丢失、被复制或被无序递送。接收方处的TCP接收器可检测并减轻此类问题,如通过请求重传已丢失分组、删除复制分组、以及重排无序分组。一旦TCP接收器已经重编最初传输的八位字节序列,TCP接收器就将它们传递至应用程序。以此方式,TCP从潜在网络细节提取应用程序的通信。
TCP保证所接收的所有字节将与最初发送的那些相同并且具有相同顺序。被称为肯定确认与重传的技术用于通过要求接收器在其接收数据时回复确认消息保证TCP分组传送的可靠性。另一方面,发送器维持其所发送的每个分组的记录以及跟踪自发送分组开始已过的时间量的对应计时器。如果计时器在接收到确认之前期满,那么将重传分组。
如先前所述,虽然IP处理分组的实际递送,但TCP追踪消息为通过网络进行有效传送和传输而被划分成的单独数据单元(或“片段”)。例如,当在服务器上执行的应用程序发送文件时,服务器的TCP软件层将包括文件的八位字节序列划分成片段并随后将片段单独转发至IP软件层。IP软件层通过添加除了其他项目之外包括目的地IP地址的头部将每个TCP片段封装到IP分组中。当在目的地接收到IP分组之后,目的地应用程序的TCP层确保片段无误并且是按在将它们发送至应用程序之前的正确顺序汇编。
在操作中,TCP接收来自数据流的数据、将数据划分成片段、并添加TCP头部,从而形成由“头部”段和“数据”段组成的TCP片段。TCP头部包括十个必填字段和一个任选扩展字段。头部之后的数据段包括用于应用程序的有效负载数据。TCP片段被封装到IP数据报中。
图2根据实施例示出包括X-Forwarded Source(“XFS”)元素的传输控制协议(“TCP”)片段30,所述元素用于向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接。如图2所示,片段30可包括TCP头部部分31a和数据部分31b。片段可进一步包括源端口号字段32,源端口号字段包括识别发送端口的16位数;以及目的地端口号字段34,目的地端口号字段包括识别目的地端口的16位数。还可提供序列号字段36,其包括根据SYN标志38设定为(1)还是清零(0)而对应于“初始序列号”或“累计序列号”的32位数。如果SYN标志38被设定,那么序列号字段36中的值是初始序列号,并且第一数据字节的序列号和对应ACK中的号是序列号字段中的值加1。如果SYN标志38是清零,那么序列号字段36中的值是当前会话的片段的第一数据字节的累计序列号。
继续参考图2,如果ACK标志40被设定,那么ACK号字段42中所包括的值是接收器期望的、确认接收所有先前字节的下一个序列号。由每个终端发送的ACK确认另一终端的初始序列号(而不是来自另一终端的数据)。头部长度字段44以32位字指示TCP头部的大小。头部的大小是5至15个字或20至60个字节。除了以上所述的ACK标志40和SYN标志38,TCP头部还包括URG标志46、PSH标志48、RST标志50和FIN标志52。如果URG标志46被设定,那么紧急指针字段54中的值是显著的;如果URG标志是清零,那么紧急指针字段中的值并不显著。紧急指针字段54包括16位值,该值指示从指示最后紧急数据字节的序列号偏移。
如果ACK标志40被设定,那么ACK号字段42中的值是显著的;在初始SYN分组之后由客户端发送的所有分组因此都应使得ACK标志被设定。PSH标志48被设定指示应将缓冲数据推送至接收应用程序。RST标志50被设定重设连接。FIN标志52被设定指示不再有来自发送器的数据。应注意,仅从每个终端发送的第一分组应使得SYN标志38被设定。
窗口大小字段56包括指示接收窗口大小的16位值,其指定超过确认字段中的序列号、此片段的发送器当前想要接收的窗口大小单位(例如,以字节为单元)的数量。校验和字段58包括用于对头部和数据进行错误校验的16位值。选项字段60的长度由头部长度字段44中所包括的值确定。选项字段60中的每个选项包括高达三个字段,包括必填1字节的“选项-种类”字段、任选1字节的“选项-长度”字段以及任选可变长度的“选项-数据”字段。选项-种类字段指示选项的类型并且是并非任选的仅有字段;选项-种类字段中所指示的选项种类确定剩下两个字段是否可被设定。选项-长度字段指示选项的总长度,而选项-数据字段包括选项的值,如果适用的话。利用零进行填充可用于确保在32位边界处TCP头部结束并且数据开始。
根据一个实施例的特征,并且如以下将更详细描述的,用于连接的XFS可包括在选项字段60中。XFS可包括4字节的源IP标志符和2字节的源端口标志符。如以下将详细描述的,在客户端与服务器之间的TCP连接的初始化期间、在它们之间进行三方握手过程中,XFS由代理服务器保存在ACK片段的选项字段60中。
TCP使用三方握手在两个网络元件之间建立连接。一般地,在客户端尝试与服务器建立连接之前,服务器将执行“被动打开”,其中服务器绑定至端口并且在端口处监听以打开端口从而用于连接。之后,客户端可经由三方握手发起“主动打开”。首先,客户端向服务器发送同步(“SYN”)消息,其中客户端将TCP片段的序列号设定为随机值X。服务器用同步确认(“SYN-ACK”)消息回应SYN消息,其中确认号被设定为比所接收序列号大一;在这种情况下,即N+1。另外,服务器选择另一个随机值用作分组的序列号(例如,Y)。响应于接收到SYN-ACK消息,客户端向服务器发送确认(“ACK”)消息,其中序列号被设定为所接收的确认值(X+1)并且确认号被设定为所接收的序列号大一(Y+1)。此时,客户端和服务器两者都已经确认并接收到连接的确认。以此方式,在客户端与服务器之间建立了全双工通信。
参照图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′,就建立了连接。
将注意到,尽管XFS可嵌入在SYN消息的TCP片段中,但是因为服务器无需知道客户端的地址,所以如果三方握手不成功,将XFS嵌入在ACK消息的TCP片段中更有效。另外,将XFS嵌入在ACK消息中避免服务器使用SYN信息记录程序来避免未保存SYN分组信息而造成的SYN攻击的问题。
如上所述,与其他通信包对照,XFS有利地嵌入在握手包中,因为当握手成功时,内核将会假设套接为连接成功。因此,XFS信息仅被保存一次,从而降低网络成本和开销。此外,即使数据在通信期间丢失,内核将会保持实际客户端地址而不是代理服务器地址。
图4根据实施例示出由代理服务器实现的用于执行TCP三方握手的技术的流程图,TCP三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用。如图4所示,在步骤90中,代理服务器从客户端接收SYN消息并将其转发至服务器。在步骤92中,代理服务器从服务器接收SYN-ACK消息并将其转发至客户端。在步骤94中,代理服务器从客户端接收ACK消息。在步骤96中,代理服务器创建客户端的XFS,在一个实施例中,XFS可包括4字节的源IP标志符和2字节的源端口标志符。代理服务器将客户端的XFS嵌入在从客户端接收的ACK的TCP头部的选项字段中。在步骤98中,代理服务器将具有嵌入的XFS值的ACK转发至服务器。
图5根据实施例示出由网络服务器实现的用于执行TCP三方握手的技术的流程图,TCP三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用。如图5所示,在步骤100中,服务器经由代理服务器从客户端SYN消息。在步骤102中,服务器利用经由代理服务器向客户端发送的SYN-ACK消息回应SYN消息。在步骤104中,服务器从代理服务器接收具有嵌入的XFS值的ACK消息。在步骤106中,服务器保存嵌入的XFS中所包括的源IP地址和源端口信息。
在一种示例性实现方式中,实施本文所述的实施例所涉及的各种设备可包括用于实现所述功能的软件。例如,参考图5,本文所述实施例的路由器中的每一个(在图5中由路由器130表示)可包括修剪模块132,修剪模块包括具体体现在一种或多种有形介质中的用于促进本文所述的活动的软件。路由器130还可包括用于存储有待用于实现如本文所概括的功能的信息的存储设备134。另外,路由器130可包括能够执行软件或算法(如具体体现在模块132中)以执行本说明书中所论述的功能的处理器136。
图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和端口识别信息,以供用于在需要、有利、希望的情况下执行各种操作。
应注意,在涉及多层代理服务器/负载平衡器的体系架构中,XFS由遇到ACK的代理服务器中的第一个嵌入到ACK的TCP头部中;TCP头部此后由剩余代理服务器维持,以供由如上所述的目的地网络服务器使用。
还应注意,本文所论述的大多数基础设施可配置为任何类型的网络设备的一部分。如本文所使用,术语“网络设备”可涵盖计算机、服务器、网络家电、主机、路由器、交换机、网关、网桥、虚拟设备、负载平衡器、防火墙、处理器、模块,或可操作以在通信环境中交换信息的任何其他合适的设备、组件、元件或对象。此外,网络设备可包括促进其操作的任何合适的硬件、软件、组件、模块、接口或对象。这可以包括允许有效交换数据或信息的适当的算法和通信协议。
在一种实现方式中,这些设备可包括实现(或促成)本文论述的活动的软件。这可包括附图中所示的组件、引擎、逻辑、模块等中任一种的实例的实现方式。另外,这些设备中的每一个可具有促进在此描述的一些操作的内部结构(例如,处理器、存储元件等)。在其他实施例中,活动可在这些设备外部执行,或包括在一些其他设备中以实现预期功能性。可替代地,这些设备可包括可与其他元件协作以便执行本文描述的活动的软件(或往复式软件)。在再其他实施例中,一个或几个设备可包括促进其操作的任何合适的算法、硬件、软件、组件、模块、接口或对象。
注意,在某些示例性实现方式中,本文概括的功能可由编码在一个或多个非暂态有形介质(例如,专用集成电路(“ASIC”)中设置的嵌入逻辑、数字信号处理器(“DSP”)指令、软件(潜在地包括对象代码和源代码))中以便由处理器或其他类似机器等执行的逻辑实施。在这些实例的一些中,存储元件(如可以是附图中所示的若干设备中固有的)可存储用于本文描述的操作的数据。这包括能够存储被执行以进行本文在本说明书中详述的活动的软件、逻辑、代码或处理器指令的存储元件。处理器可执行与实现本文在本说明书中详述的操作的数据相关联的任何类型的指令。在一个示例中,处理器(如可以是本文所示的若干设备中固有的)可将元件或物件(例如,数据)从一种状态或情况转变到另一种状态或情况。在另一个示例中,本文概括的活动可利用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)实现,并且本文识别的元件可以是可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(“FPGA”)、可擦除可编程只读存储(“EPROM”)、电可擦除可编程ROM(“EEPROM”))、或包括数字逻辑、软件、代码、电子指令或其任何合适的组合的ASIC中的某种类型。
本文所示的设备可在适当情况下并且基于具体需要将信息维持在任何合适的存储元件(随机存取存储器(“RAM”)、ROM、EPROM、EEPROM、ASIC等)、软件、硬件中,或维持在任何其他合适的组件、设备、元件或对象中。本文论述的任何存储器项目应被解释为涵盖在广义术语“存储元件”内。类似地,本文在本说明书中描述的潜在处理元件、模块和机器中的任一种应被解释为涵盖在广义术语“处理器”内。每个计算机元件还包括用于在通信环境中接收、传输和/或以其他方式传达数据或信息的合适接口。
注意,在以上提供的示例以及本文提供的众多其他示例的情况下,可以就两个、三个或四个计算机元件描述交互。然而,仅出于清晰和示例的目的而这样做。在某些情况下,通过仅提及有限数量的系统元件可更容易描述给定一组流程的功能性中的一种或多种。应理解,附图所示的系统(及其教导)容易伸缩并可适应大量的组件、以及更复杂/尖端的布置和配置。因此,所提供的示例不应限制所示系统的范围或抑制所示系统的广泛教导,因为所示系统潜在地可应用于无数其他体系架构。
同样重要的是注意,先前流程图中的步骤仅示出可由所示系统执行或在所示系统内执行的可能信令情形和模式中的一些。在适当情况下可删除或移除这些步骤中的一些,或可在不脱离本公开范围的情况下相当大地修改或改变这些步骤。另外,这些操作中的一些已经描述为与一个或多个另外的操作同时或并行执行。然而,这些操作的定时可被相当大地变更。出于示例和论述目的提供先前操作流程。所述系统可提供显著灵活性,因为在不脱离本公开教导的情况下,可提供任何合适的布置、时间排序(chronologies)、配置和定时机制。尽管已经参考具体布置和配置详细描述本公开,但在不脱离本公开的范围的情况下,这些示例性配置和布置可显著改变。
本领域的技术人员可探知众多其他改变、替代、变动、变更和修改,并且本公开旨涵盖落入所附权利要求书的范围内的此类改变、替代、变动、变更和修改。为了帮助美国专利商标局(USPTO)并且另外帮助基于本申请发布的任何专利的任何读者理解在此所附的权利要求书,申请人希望注意,申请人:(a)并不旨在所附权利要求中的任一项援引35 U.S.C第112章第六(6)段(因为其在本申请的申请日已存在),除非字词“用于……装置”或“用于……步骤”明确地用在具体权利要求中;并且(b)并不旨在由本说明书中的任何陈述以未在所附权利要求书中另行反映出的任何方式限制本公开。
Claims (19)
1.一种用于识别原始IP地址以及客户端端口连接的方法,其包括:
接收来自客户端、目的地为服务器的消息;
将识别所述客户端的X-Forwarded Source(“XFS”)值嵌入在所接收的消息中;
将包括所嵌入的XFS值的所接收的消息转发至所述服务器,其中所述XFS值仅被存储一次;
接收包括所嵌入的XFS值的消息;并且
从所接收的消息恢复所述XFS值。
2.根据权利要求1所述的方法,其中所述消息是传输控制协议(“TCP”)三方握手的确认(“ACK”)消息。
3.根据权利要求1所述的方法,其中所述XFS值包括所述客户端的源IP地址。
4.根据权利要求1所述的方法,其中所述XFS值包括与所述客户端相关联的源端口标志符。
5.根据权利要求1所述的方法,其中所接收的消息响应于由所述客户端从所述服务器接收的传输控制协议(“TCP”)同步确认(“SYN-ACK”)消息而被发送。
6.根据权利要求1所述的方法,其中所述XFS值嵌入在所述消息的传输控制协议(“TCP”)头部中。
7.如权利要求1所述的方法,进一步包括:
存储所恢复的XFS值以便由在所述服务器上执行的应用程序使用。
8.一种包括代码的非暂态有形介质,所述代码用于执行并且在由处理器执行时可操作来执行包括以下各项的操作:
接收来自客户端、目的地为服务器的消息;
将识别所述客户端的X-Forwarded Source(“XFS”)值嵌入在所接收的消息中;
将包括所嵌入的XFS值的所接收的消息转发至所述服务器;
接收包括所嵌入的XFS值的消息;并且
从所接收的消息恢复所述XFS值。
9.根据权利要求8所述的介质,其中所述消息是传输控制协议(“TCP”)三方握手的确认(“ACK”)消息。
10.根据权利要求8所述的介质,其中所述XFS值包括所述客户端的源IP地址。
11.根据权利要求8所述的介质,其中所述XFS值包括与所述客户端相关联的源端口标志符。
12.根据权利要求8所述的介质,其中所接收的消息响应于由所述客户端从所述服务器接收的传输控制协议(“TCP”)同步确认(“SYN-ACK”)消息而被发送。
13.根据权利要求8所述的介质,其中所述XFS值嵌入在所述消息的传输控制协议(“TCP”)头部中。
14.一种用于识别原始IP地址以及客户端端口连接的装置,包括:
存储元件,其被配置成存储数据;
处理器,其可操作来执行与所述数据相关联的指令;以及
XFS模块,其被配置成:
接收来自客户端、目的地为服务器的消息;
将识别所述客户端的X-Forwarded Source(“XFS”)值嵌入在所接收的消息中;
将包括所嵌入的XFS值的所接收的消息转发至所述服务器,其中所述XFS值仅被存储一次;
接收包括所嵌入的XFS值的消息;并且
从所接收的消息恢复所述XFS值。
15.根据权利要求14所述的装置,其中所述消息是传输控制协议(“TCP”)三方握手的确认(“ACK”)消息。
16.根据权利要求14所述的装置,其中所述XFS值包括所述客户端的源IP地址。
17.根据权利要求14所述的装置,其中所述XFS值包括与所述客户端相关联的源端口标志符。
18.根据权利要求14所述的装置,其中所接收的消息响应于由所述客户端从所述服务器接收的传输控制协议(“TCP”)同步确认(“SYN-ACK”)消息而被发送。
19.根据权利要求14所述的装置,其中所述XFS值嵌入在所述消息的传输控制协议(“TCP”)头部中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/793,373 | 2013-03-11 | ||
US13/793,373 US20140258465A1 (en) | 2013-03-11 | 2013-03-11 | Identification of originating ip address and client port connection to a web server via a proxy server |
PCT/US2014/016110 WO2014163774A1 (en) | 2013-03-11 | 2014-02-12 | Identification of originating ip address and client port connection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105075216A CN105075216A (zh) | 2015-11-18 |
CN105075216B true CN105075216B (zh) | 2019-06-21 |
Family
ID=50241512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480013574.0A Active CN105075216B (zh) | 2013-03-11 | 2014-02-12 | 识别原始ip地址以及客户端端口连接 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140258465A1 (zh) |
EP (1) | EP2974202B1 (zh) |
CN (1) | CN105075216B (zh) |
WO (1) | WO2014163774A1 (zh) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9912677B2 (en) * | 2005-09-06 | 2018-03-06 | Daniel Chien | Evaluating a questionable network communication |
US9674145B2 (en) * | 2005-09-06 | 2017-06-06 | Daniel Chien | Evaluating a questionable network communication |
US7675854B2 (en) | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US8584199B1 (en) | 2006-10-17 | 2013-11-12 | A10 Networks, Inc. | System and method to apply a packet routing policy to an application session |
US8312507B2 (en) | 2006-10-17 | 2012-11-13 | A10 Networks, Inc. | System and method to apply network traffic policy to an application session |
US8560604B2 (en) | 2009-10-08 | 2013-10-15 | Hola Networks Ltd. | System and method for providing faster and more efficient data communication |
US9960967B2 (en) | 2009-10-21 | 2018-05-01 | A10 Networks, Inc. | Determining an application delivery server based on geo-location information |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
US9609052B2 (en) | 2010-12-02 | 2017-03-28 | A10 Networks, Inc. | Distributing application traffic to servers based on dynamic service response time |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
US9094364B2 (en) | 2011-12-23 | 2015-07-28 | A10 Networks, Inc. | Methods to manage services over a service gateway |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US9118618B2 (en) | 2012-03-29 | 2015-08-25 | A10 Networks, Inc. | Hardware-based packet editor |
US8782221B2 (en) | 2012-07-05 | 2014-07-15 | A10 Networks, Inc. | Method to allocate buffer for TCP proxy session based on dynamic network conditions |
US10002141B2 (en) | 2012-09-25 | 2018-06-19 | A10 Networks, Inc. | Distributed database in software driven networks |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
US9843484B2 (en) | 2012-09-25 | 2017-12-12 | A10 Networks, Inc. | Graceful scaling in software driven networks |
WO2014052099A2 (en) | 2012-09-25 | 2014-04-03 | A10 Networks, Inc. | Load distribution in data networks |
US9338225B2 (en) | 2012-12-06 | 2016-05-10 | A10 Networks, Inc. | Forwarding policies on a virtual service network |
US9531846B2 (en) | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US9900252B2 (en) | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
US9992107B2 (en) | 2013-03-15 | 2018-06-05 | A10 Networks, Inc. | Processing data packets using a policy based network path |
WO2014179753A2 (en) * | 2013-05-03 | 2014-11-06 | A10 Networks, Inc. | Facilitating secure network traffic by an application delivery controller |
US10084791B2 (en) | 2013-08-14 | 2018-09-25 | Daniel Chien | Evaluating a questionable network communication |
US9241044B2 (en) | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
US9686180B2 (en) | 2013-11-05 | 2017-06-20 | Cisco Technology, Inc. | Managing routing information for tunnel endpoints in overlay networks |
US10230770B2 (en) | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
US9942152B2 (en) | 2014-03-25 | 2018-04-10 | A10 Networks, Inc. | Forwarding data packets using a service-based forwarding policy |
US9942162B2 (en) | 2014-03-31 | 2018-04-10 | A10 Networks, Inc. | Active application response delay time |
US9848067B2 (en) * | 2014-04-25 | 2017-12-19 | Cisco Technology, Inc. | Managing sequence values with added headers in computing devices |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US10129122B2 (en) | 2014-06-03 | 2018-11-13 | A10 Networks, Inc. | User defined objects for network devices |
US9992229B2 (en) | 2014-06-03 | 2018-06-05 | A10 Networks, Inc. | Programming a data network device using user defined scripts with licenses |
US9986061B2 (en) | 2014-06-03 | 2018-05-29 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
US10268467B2 (en) | 2014-11-11 | 2019-04-23 | A10 Networks, Inc. | Policy-driven management of application traffic for providing services to cloud-based applications |
US10116493B2 (en) | 2014-11-21 | 2018-10-30 | Cisco Technology, Inc. | Recovering from virtual port channel peer failure |
KR102342144B1 (ko) | 2014-12-01 | 2021-12-22 | 삼성전자주식회사 | 통신 시스템에서 분리된 tcp 연결을 설정하는 방법 및 장치와 이를 위한 핸드 오버 지원 방법 및 장치 |
US11057446B2 (en) | 2015-05-14 | 2021-07-06 | Bright Data Ltd. | System and method for streaming content from multiple servers |
US10581976B2 (en) | 2015-08-12 | 2020-03-03 | A10 Networks, Inc. | Transmission control of protocol state exchange for dynamic stateful service insertion |
US10243791B2 (en) | 2015-08-13 | 2019-03-26 | A10 Networks, Inc. | Automated adjustment of subscriber policies |
US10142163B2 (en) | 2016-03-07 | 2018-11-27 | Cisco Technology, Inc | BFD over VxLAN on vPC uplinks |
US10333828B2 (en) | 2016-05-31 | 2019-06-25 | Cisco Technology, Inc. | Bidirectional multicasting over virtual port channel |
ES2910932T3 (es) * | 2016-07-07 | 2022-05-17 | Nokia Solutions & Networks Oy | Comunicación de tipo máquina que utiliza servicio de mensajes cortos originado en móvil sin número de directorio de abonado internacional de estación móvil |
US11509501B2 (en) | 2016-07-20 | 2022-11-22 | Cisco Technology, Inc. | Automatic port verification and policy application for rogue devices |
CN107770138B (zh) * | 2016-08-22 | 2020-12-25 | 阿里巴巴集团控股有限公司 | 指定ip地址的方法及代理服务器、客户端 |
US10193750B2 (en) | 2016-09-07 | 2019-01-29 | Cisco Technology, Inc. | Managing virtual port channel switch peers from software-defined network controller |
US10542006B2 (en) | 2016-11-22 | 2020-01-21 | Daniel Chien | Network security based on redirection of questionable network access |
US10382436B2 (en) | 2016-11-22 | 2019-08-13 | Daniel Chien | Network security based on device identifiers and network addresses |
CN108400955B (zh) * | 2017-02-06 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 一种网络攻击的防护方法及系统 |
US10547509B2 (en) | 2017-06-19 | 2020-01-28 | Cisco Technology, Inc. | Validation of a virtual port channel (VPC) endpoint in the network fabric |
LT3770773T (lt) | 2017-08-28 | 2024-03-12 | Bright Data Ltd. | Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius |
US11190374B2 (en) | 2017-08-28 | 2021-11-30 | Bright Data Ltd. | System and method for improving content fetching by selecting tunnel devices |
US11188622B2 (en) | 2018-09-28 | 2021-11-30 | Daniel Chien | Systems and methods for computer security |
US10848489B2 (en) | 2018-12-14 | 2020-11-24 | Daniel Chien | Timestamp-based authentication with redirection |
US10826912B2 (en) | 2018-12-14 | 2020-11-03 | Daniel Chien | Timestamp-based authentication |
LT3780547T (lt) | 2019-02-25 | 2023-03-10 | Bright Data Ltd. | Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas |
EP4027618A1 (en) | 2019-04-02 | 2022-07-13 | Bright Data Ltd. | Managing a non-direct url fetching service |
CN110290221B (zh) * | 2019-07-09 | 2021-07-30 | 中星科源(北京)信息技术有限公司 | 一种原始地址传输方法、系统、存储介质和处理器 |
US11284351B2 (en) | 2019-07-30 | 2022-03-22 | Samsung Electronics Co., Ltd. | Electronic device and operating method thereof |
CN110535879A (zh) * | 2019-09-23 | 2019-12-03 | 中星科源(北京)信息技术有限公司 | 一种原始地址传输方法、系统、存储介质和处理器 |
US11552898B2 (en) * | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Managing data throughput in a distributed endpoint network |
US11425042B2 (en) | 2019-09-27 | 2022-08-23 | Amazon Technologies, Inc. | Managing data throughput in a distributed endpoint network |
US11677754B2 (en) | 2019-12-09 | 2023-06-13 | Daniel Chien | Access control systems and methods |
US11509463B2 (en) | 2020-05-31 | 2022-11-22 | Daniel Chien | Timestamp-based shared key generation |
US11438145B2 (en) | 2020-05-31 | 2022-09-06 | Daniel Chien | Shared key generation based on dual clocks |
CN115002213A (zh) * | 2022-06-01 | 2022-09-02 | 上海嘉车信息科技有限公司 | 数据传输方法与框架 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7463590B2 (en) * | 2003-07-25 | 2008-12-09 | Reflex Security, Inc. | System and method for threat detection and response |
US20050144290A1 (en) * | 2003-08-01 | 2005-06-30 | Rizwan Mallal | Arbitrary java logic deployed transparently in a network |
JP5018329B2 (ja) * | 2007-08-10 | 2012-09-05 | 富士通株式会社 | 通信装置を制御するプログラム及び通信装置 |
US8499071B2 (en) * | 2009-05-01 | 2013-07-30 | Ncr Corporation | Application monitoring |
US8200752B2 (en) * | 2009-12-23 | 2012-06-12 | Citrix Systems, Inc. | Systems and methods for policy based transparent client IP insertion |
CN103297552B (zh) * | 2012-03-02 | 2016-05-25 | 百度在线网络技术(北京)有限公司 | 传递客户端IPv4地址及端口至后端服务器的方法及装置 |
-
2013
- 2013-03-11 US US13/793,373 patent/US20140258465A1/en not_active Abandoned
-
2014
- 2014-02-12 CN CN201480013574.0A patent/CN105075216B/zh active Active
- 2014-02-12 WO PCT/US2014/016110 patent/WO2014163774A1/en active Application Filing
- 2014-02-12 EP EP14709451.0A patent/EP2974202B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20140258465A1 (en) | 2014-09-11 |
CN105075216A (zh) | 2015-11-18 |
EP2974202B1 (en) | 2020-12-02 |
WO2014163774A1 (en) | 2014-10-09 |
EP2974202A1 (en) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105075216B (zh) | 识别原始ip地址以及客户端端口连接 | |
JP6858749B2 (ja) | 負荷平衡システムにおいて接続を確立するデバイス及び方法 | |
CN109412946B (zh) | 一种确定回源路径的方法、装置、服务器及可读存储介质 | |
US10158570B2 (en) | Carrying TCP over an ICN network | |
CN104219215B (zh) | 一种tcp连接的建立方法、装置、终端、服务器及系统 | |
CN105376173B (zh) | 一种发送窗口流量控制方法和终端 | |
EP2741463B1 (en) | Data packet transmission method | |
CN106416199B (zh) | 一种透明性能增强代理及其操作方法 | |
WO2016077716A1 (en) | Communication sessions at a coap protocol layer | |
CN107360177B (zh) | 一种基于udp的报文传输方法及装置 | |
US20060069788A1 (en) | Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol | |
EP3235210A1 (en) | Methods and first network node for managing a stream control transmission protocol association | |
CN101621532B (zh) | 一种使用线程池实现超文本传输协议应用的方法 | |
CN111385068B (zh) | 数据传输方法、装置、电子设备及通信系统 | |
US11522979B2 (en) | Transmission control protocol (TCP) acknowledgement (ACK) packet suppression | |
CN108234089A (zh) | 低时延通信 | |
CN111314447B (zh) | 代理服务器及其处理访问请求的方法 | |
CN115348336A (zh) | 异构数据流的通用传输架构 | |
CN106385409B (zh) | 一种tcp报文的处理方法及装置 | |
CN114760266B (zh) | 虚拟地址生成方法、装置和计算机设备 | |
JPWO2017199913A1 (ja) | 送信装置、方法およびプログラム | |
EP3829134A1 (en) | Method for transferring large amounts of data through a telematic network in an efficient and reliable manner and at high-speed | |
WO2017040940A1 (en) | Improved block transfer operation in coap protocol | |
CN116156018A (zh) | 数据的传输方法相关设备 | |
CN115348335A (zh) | 异构数据流的通用传输架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |