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

文档序号:9355677阅读:531来源:国知局
识别原始ip地址以及客户端端口连接的制作方法
【技术领域】
[0001]本公开一般涉及经由代理服务器将客户端连接至网络服务器,并且更具体地,涉及用于识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接的技术。
【背景技术】
[0002]负载平衡器或代理服务器通常用在基于网络的服务的客户端与用于提供服务的多个网络服务器之间,以便平衡服务器之间的工作负载。在一个示例中,负载平衡器可监听外部客户端为访问服务而连接的位置处的端口。负载平衡器然后可向一个后台服务器转发请求,后台服务器可直接应答负载平衡器,从而允许负载平衡器在客户端甚至不知道后端服务器的存在的情况下应答客户端。
[0003]使用代理服务器/负载平衡器的另一个效果在于:网络服务器看不到实际客户端地址;代理服务器/负载平衡器的IP地址作为原始地址被提供给网络服务器,从而有效地使得代理服务器/负载平衡器成为匿名服务。这使得对检测和防止滥用客户端访问比在客户端的IP地址被提供给网络服务器作为原始地址情况下更加困难。目前,X-Forwarded-For ( “XFF”) HTTP头部字段可用于识别通过HTTP代理服务器或负载平衡器连接至网络服务器的客户端的原始IP地址。XFF的可用性取决于代理服务器真实报告原始主机的IP地址。因此,有效使用XFF要求知道代理服务器的可信度,例如,如其保持器可受到信任的服务器的白名单所指示。此外,因为XFF是HTTP头部字段,所以它仅在与HTTP代理服务器/负载平衡器有关时有用。
【附图说明】
[0004]为提供对本公开及其特征和优点的更完整理解,结合附图参照以下说明,在附图中,类似参考数字表示类似部分,其中:
[0005]图1是数据通信环境的框图,在数据通信环境中,可实现用于向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接的实施例;
[0006]图2根据实施例示出包括X-Forwarded Source ( “XFS”)元素的传输控制协议(“TCP”)片段,所述元素用于向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接;
[0007]图3根据实施例示出在用于发起TCP连接的三方握手期间交换的消息,三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用;
[0008]图4根据实施例示出由代理服务器实现的用于执行TCP三方握手的技术的流程图,TCP三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用;
[0009]图5根据实施例示出由网络服务器实现的用于执行TCP三方握手的技术,TCP三方握手结合向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接使用;并且
[0010]图6是根据实施例在向网络服务器识别原始IP地址以及经由代理服务器连接至网络服务器的客户端的端口连接时使用的代理服务器和网络服务器的更详细框图。
[0011]示例性实施例的详细说明
[0012]臟
[0013]在一个示例性实施例中提供了一种方法,所述方法包括接收来自客户端、目的地为服务器的消息;将识别所述客户端的X-Forwarded Source (“XFS”)值嵌入在所接收的消息中;并且将包括所嵌入的XFS值的所接收的消息转发至所述服务器。在一个实施例中,所述消息是传输控制协议(“TCP”)三方握手的确认(“ACK”)消息。所述XFS值可包括所述客户端的源IP地址和与所述客户端相关联的源端口标志符中的至少一者。所接收的消息可响应于由所述客户端从所述服务器接收的传输控制协议(“TCP”)同步确认(“SYN-ACK”)消息而被发送。此外,所述XFS值可嵌入在所述消息的传输控制协议(“TCP”)头部中。
[0014]示例件实施例
[0015]以下说明参考各种实施例。然而,应当理解,本公开不限于具体描述的实施例。相反,不论是否涉及不同实施例,设想以下特征和元件的任何组合以实施和实践本公开。此夕卜,尽管实施例可实现优于其他可能解决方案和/或优于现有技术的优点,但是给定实施例是否实现特定优点并不对本公开进行限制。因此,以下方面、特征、实施例和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求中明确叙述。同样地,对“本公开”的参考不应解释为概括本文公开的任何主题并且不应被认为是所附权利要求书的要素或限制,除非在权利要求中明确叙述。
[0016]如将了解,本公开的各方面可具体体现为系统、方法或计算机程序产品。因此,本公开的各方面可采取以下形式:在本文中一般可称为“模块”或“系统”的完全硬件实施例、完全软件实施例(包括固件、常驻软件、微码等)或组合软件和硬件方面的实施例。另外,本公开的各方面可采取计算机程序产品的形式,计算机程序产品具体体现在具有计算机可读程序代码编码在其上的一个或多个非暂态计算机可读介质中。
[0017]可利用一个或多个非暂态计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如(但不限于)电子、磁的、光的、电磁、红外或半导体系统、装置或设备,或前述各项的任何合适组合)。计算机可读存储介质的更具体示例(非穷尽清单)将包括以下各项:具有一根或多根电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(“RAM”)、只读存储器(“R0M”)、可擦除可编程只读存储器(“EPR0M”或“闪存”)、光纤、便携式光盘只读存储器(“⑶-R0M”)、光存储装置、磁存储装置、或前述各项的任何合适组合。在本文件的上下文中,计算机可读存储介质可以是能够包含或存储供指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用的程序的任何有形介质。
[0018]用于执行用于本公开各方面的操作的计算机程序代码可以一种或多种编程语言的任何组合来写入,所述编程语言包括如Java?、Smalltalk?或C++等面向对象的编程语言、以及如"C"编程语言或类似编程语言的常规程序化编程语言。
[0019]以下参考根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述本公开的各方面。将理解,流程图图示和/或框图中的每个方框以及流程图图示和/或框图中的方框的组合可由计算机程序指令实现。这些计算机程序指令可提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个方框中所指定的功能/动作的装置。
[0020]这些计算机程序指令还可以存储在计算机可读介质中,计算机可读介质可引导计算机、其他可编程数据处理装置或其他设备以特定方式运行,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图的一个或多个方框中所指定的功能/动作的指令的制品。
[0021]计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程处理装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,使得在计算机或其他可编程处理装置上执行的指令提供用于流程图和/或框图的一个或多个方框中所指定的功能/动作的过程。附图中的流程图和框图示出根据本公开各个实施例的系统、方法和计算机程序产品的可能实现方式的体系架构、功能性和操作。
[0022]在此方面,流程图或框图中的每个方框可以表示代码的模块、片段或部分,其包括用于实现所指明的逻辑功能的一个或多个可执行指令。应注意,在一些
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1