实现区域连续代理服务的制作方法
未命名
10-09
阅读:112
评论:0
1.本实施例总地涉及通过跨不同地理区域建立代理服务器来优化代理服务的操作过程的方法和系统,除其他方面外,本实施例在用户接近代理服务以进行数据检索时去中心化并减少远程。
背景技术:
2.随着我们的社会越来越依赖因特网,并且随着许多企业家在线进行其业务,对代理服务器的兴趣已显著增加。除了在线匿名之外,现代代理服务器还为其用户提供了多种功能。
3.根据定义,代理服务器是接受用户的请求并将这些请求转发给其他代理服务器、源服务器或从其高速缓存中为请求提供服务的中介服务器。简单来说,代理服务器充当用户的设备和他们想要访问的网站之间的网关。代理服务器改变用户的ip地址,以便不会向目的地服务器透露用户的实际ip地址。在联网术语中,ip地址代表因特网协议地址,它是指派给连接到使用因特网协议进行通信的网络的每个设备的数字标签。在更一般的意义上,ip地址充当在线地址,因为设备使用ip来定位和相互通信。使用代理服务器增加隐私,并允许用户访问通常可能无法访问的网站。代理服务器易于使用,并且许多跨国企业也优选代理服务器用于其在线工作。
4.许多组织采用代理服务器来保持更好的网络性能。代理服务器可以缓存常见的web资源——因此,当用户请求特定的web资源时,代理服务器将检查它是否具有该web资源的最新副本,然后向用户发送缓存的副本。这可以在一定程度上帮助减少时延并提高整体网络性能。这里,时延特别是指在网络内发生的延迟。简单来说,时延是用户动作与网站对该动作的响应或应用之间的时间——例如,用户单击指向网页的链接时和浏览器显示该网页时之间的延迟。
5.代理可以根据所提供的功能或所使用的服务器而分为不同的类型。代理还可以分为住宅因特网协议(ip)代理、数据中心ip代理和移动ip代理。住宅ip地址是在由指派给私人客户的来自拥有方专门指定的范围内的地址。通常住宅代理是链接到物理设备(例如,移动电话或台式计算机)的ip地址,但是商业上,住宅ip地址的块可以由另一家公司直接从拥有代理服务提供商处批量购买。住宅ip地址范围的真正拥有者,即因特网服务提供商(isp),在公共数据库中注册住宅ip地址,这允许网站确定设备的因特网提供商、网络和位置。数据中心ip代理是指派有数据中心ip的代理服务器。数据中心ip是公司拥有的ip,而不是个人拥有的ip。数据中心代理实际上是不在自然人的家中的ip地址。相反,数据中心代理与辅助公司相关联。移动ip代理可以被认为是住宅代理类别的子集。移动ip代理本质上是从移动运营商获得的一个ip地址。移动ip代理使用移动数据,与使用宽带isp或家庭wi-fi的住宅代理相对比。
6.同样,出口节点代理,或简称出口节点,是代理,通过这些代理,来自用户(或入口节点)的请求到达因特网。可以有多个代理用于执行用户的请求,但出口节点代理是联系目
标并将信息从目标转发到队列以到达用户的最终代理。在当前实施例中,代理和出口节点可以用作同义词。当前实施例不仅限于出口节点,因为相同的技术可以用于代理。然而,在当前描述中使用了术语“出口节点”来澄清出口节点和代理之间的技术差异。通常,出口节点设备在代理服务提供商基础设施的外部,通常属于私人客户,例如智能电话、计算机、电视或其他启用因特网的电子设备。
7.现代代理服务器不仅仅是转发web请求。代理服务器充当防火墙和web过滤器,提供共享的网络连接,并缓存数据以加速常见请求。代理服务器可以提供高水平的隐私。代理服务器还可以用于控制员工和儿童的因特网使用情况(例如,组织和家长设置代理服务器来控制和监控他们的员工或孩子如何使用因特网)或提高浏览速度并节省带宽。通过使用户能够通过(远程)代理服务器请求内容而不是直接访问内容,代理可以用于绕过某些因特网限制(例如防火墙)。代理服务器通常用于绕过基于地理ip的内容限制。如果有人想从例如美国网页获取内容,但他们无法从其本国访问,则他们可以通过位于美国(并具有美国ip地址)的代理服务器提出请求。使用代理服务,用户的流量似乎来自美国ip地址。代理也可以用于web抓取、数据挖掘和其他类似任务。
8.代理服务器的分类也是基于特定代理可能运行于的协议来完成的。例如,http代理、socks代理和ftp代理是一些基于协议的代理类别。术语http代表超文本传输协议,即因特网上任何数据交换的基础。多年来,http已经演进和扩展,使其成为因特网不可分割的一部分。http允许通过因特网进行文件传输,实质上发起客户端/用户和服务器之间的通信。http仍然是万维网的一个关键方面,因为http使得能够通过因特网传输音频、视频、图像和其他文件。http是广泛采用的协议,目前有两个不同的版本——http/2和最新的一个——http/3。
9.http代理可以充当高性能代理内容过滤器。与其他代理类似,http代理作为客户端浏览器和目的地web服务器之间的中介。http代理可以通过web流量压缩、缓存来自因特网的文件和网页来节省大量带宽。这里,带宽是指在特定量时间内可以在网络内从一个点传输到另一个点的数据量。通常,带宽被表示为比特率,以每秒比特数(bps)测量。对于需要访问广告量大的网站的公司来说,http代理是一个可行的选择。另外,http代理允许许多用户同时使用连接,使http代理对于具有大量员工的公司有用。简而言之,http代理可以理解为http隧道,即网络访问受限的设备之间的网络链路。
10.同样,socks是指允许一个设备通过第三设备向另一个设备发送数据的因特网协议。换句话说,此设备将被称为socks服务器或socks代理。具体来说,socks代理创建与防火墙后面的任何其他服务器的连接,并在客户端和实际服务器之间交换网络分组。在禁止tcp连接并且只能通过udp访问数据的地方通常需要socks代理。socks代理是允许以特定方式连接到因特网的工具。socks5是socks协议的最新版本。socks5与其更老版本之间的差异在于其提高的安全性和支持udp流量的能力。
11.socks代理通常用于实时呼叫或流传输。流传输网站通常使用udp来发送数据,目前,socks是可以处理udp会话的主要代理类型。为了使用socks代理,用户的设备必须具有处理socks协议的能力,并且必须能够操作和维护socks代理服务器。socks代理的主要问题是该协议没有标准的隧道加密。由于socks请求以明文携带数据,因此对于可能发生“嗅探”的情况不建议使用socks代理。
12.类似于http和socks,术语ftp是指用于在因特网上移动文件的协议之一。术语ftp代表文件传输协议。在ftp中,控制连接用于在ftp客户端和ftp服务器之间发送命令。然而,文件传输发生在称为数据连接的单独连接上。ftp代理可以为将文件上传到另一服务器提供增强的安全性。此外,ftp代理通常提供缓存功能和加密方法,使传输过程安全并免受黑客攻击。除了在安全的环境中继流量外,ftp服务器还跟踪所有ftp流量。
13.在此将适当的是阐明网络设备如何使用因特网协议交换数据。当用户连接到因特网时,无论用户使用有线还是无线技术,用户都以几个简单的步骤与web服务器建立连接。该网络通信是由一组作为因特网协议套件而已知的协议实现的。该套件中最重要的协议之一是传输控制协议(tcp)。它决定网络设备如何交换数据。传输控制协议或者说tcp是用于在计算机网络中的不同设备之间交换数据的标准。多年来,虽然协议的核心结构保持不变,但已经做出了若干改进和扩展。tcp的当前版本允许共享计算机网络中的两个端点建立连接,这使得能够进行数据的双向传输。检测到任何数据丢失并自动校正;因此,tcp被认为是可靠的协议。tcp协议几乎总是基于因特网协议(ip),并且该连接是大多数公共和本地网络和网络服务的基础。
14.如前所述,tcp允许双向传输信息。通过tcp进行通信的计算机系统可以同时发送和接收数据,类似于电话交谈。该协议使用段(分组)作为数据传输的基本单位。除了有效载荷之外,段还可以包含控制信息,并且限制为1500字节。这里,有效载荷是指正在传输的实际数据。此外,字节是指计算机存储和处理中的信息的基本单位。另外,一个字节由8个相邻的二进制数位(位)组成,每个二进制数位包括0或1。总体而言,tcp负责建立和终止端到端连接以及传输数据。
15.tcp被包括万维网(www)、电子邮件、流媒体、点对点文件共享在内的许多因特网应用广泛使用。由于网络拥塞或不可预测的网络行为,ip分组可能被丢失、复制或乱序传递。tcp检测到这些问题,请求重新传输丢失的数据,重新排列乱序数据,甚至帮助使网络拥塞最小化。如果数据仍未送达,则源被通知该故障。一旦tcp接收器已经重新组合最初传输的数据分组的序列,这些分组然后就被传递到接收应用程序。tcp针对准确传递而不是及时传递进行了优化,并且在等待乱序消息或重新传输丢失消息时可导致相对长的延迟(秒级)。最后,tcp是可靠的流传递服务,它保证接收到的所有字节都与发送的字节相同且顺序相同。由于许多网络的分组传输不可靠,因此tcp使用一种作为重传肯定确认而已知的技术来实现这一点。
16.tcp分组是复杂的构造,其中tcp协议包含了多种机制来确保数据分组的连接状态、可靠性和流控制:a)流:tcp数据被组织为字节流,很像一个文件。b)可靠的传输:使用序列号来协调已经发送和接收的数据。如果确定数据已丢失,则tcp将安排重新传输。c)网络适配:tcp将动态学习网络的延迟特性并调整其操作以使吞吐量最大化,而不使网络过载。d)流控制:tcp管理数据缓冲区并协调流量,因此其缓冲区将永远不溢出。快速发送者将定期停止,以跟上较慢的接收者。e)往返时间估计:tcp持续监视数据分组的交换,估计接收确认需要多长时间,并且如果该时间被超过则自动重传。
17.初始化连接,两个端点相互建立多个操作参数,定义参与者如何交换数据、控制连接状态、缓解质量问题、在需要会话管理变化时用信号通知彼此。为了实现这一点,tcp连接利用多种方法,例如tcp分组的报头中的tcp标志或1位布尔字段。标志用于指示连接的特定
状态或提供一些附加有用信息,如故障排除目的或控制特定连接。有几个最常见的标志用于管理tcp会话的状态:a)syn—(同步)发起连接;b)fin—(最终)干净地终止连接;c)ack—确认接收到的数据。在tcp分组中还使用了其他标志,诸如rst(复位)、psh(推送)、urg(紧急)。tcp分组可以设置多个标志。tcp几乎总是以全双工模式运行(两个独立的字节流以相反的方向行进)。只有在连接的开始和结束期间,将在一个方向上并且不在另一个方向上传输数据。
18.当发送tcp主机想要建立连接时,它向接收tcp端点发送设置了syn标志的分组。接收tcp返回设置有标志syn+ack的分组,以确认成功接收到该段。通信会话的发起者然后发送另一个ack段并继续发送数据。控制信息的该交换被称为3次握手。
19.对于在两个tcp端点之间有效通信至关重要的参数是在3次握手期间协商和建立的。当会话建立良好时,一些参数动态地变化,以更好地适应实时网络通信会话的不断变化的状况。与为所提出的本发明实现的功能增强建立上下文最相关的是tcp窗口大小、往返超时(rtt)和最大段大小(mss),它们与理解本增强工作的方式最相关。这里,rtt或者说往返超时是指将第一分组发送到目的地所花费的总时间,加上接收响应分组所花费的时间。
20.术语“tcp窗口大小”、或“tcp接收器窗口大小(rwnd)”,只是对以下情况的通知:接收设备在任何时间点愿意接收多少数据(以字节为单位),即发送者在没有得到确认的情况下可以发送多少数据。接收设备可以使用该值来控制数据的流,或者作为流控制机制。rwnd首先在会话初始化期间被传送,并且被动态地更新以适应连接的状态。连接的双方都保持其自己的rwnd。
21.另外,tcp对由选项种类字段标识的可选报头字段有规定。某些选项可能仅在设置syn时发送,而其他选项可能在建立的tcp会话期间出现。它们的功能是为当前tcp会话设置可选参数,微调协议的操作。mss或者说最大段大小是“选项”区域内的参数,它定义了除了技术报头之外在tcp段内可以传输多少实际数据。如前所述,mss建立发生在初始3路握手期间,并且是两个tcp端点交换其期望的mss并且都选择较小的mss的结果。
22.总结一下,tcp(传输控制协议)的功能是控制数据的传输是可靠的。然而,拥塞控制是tcp的关键特征之一。当发送方用大量分组使网络溢出时,可能发生网络拥塞。在网络拥塞期间,网络将无法正确处理流量,这将导致服务质量下降。拥塞的典型症状是过度的分组延迟、分组丢失和重传。tcp拥塞控制确保发送方不使网络溢出。此外,tcp拥塞控制确保沿着路由路径的网络设备不变得溢出。不足的链路带宽、设计或配置不当的网络基础设施是拥塞的一些常见原因。
23.多年来,有几种算法被开发来实现tcp拥塞控制,并且带宽瓶颈和往返时间(bbr)就是一种这样的算法。直到最近,因特网主要使用基于丢失的拥塞控制,仅依靠丢失分组的指示作为减慢发送速率的信号。然而,bbr使用时延而不是丢失分组作为确定发送速率的主要因素。bbr的主要优点是更好的吞吐量和降低的时延。吞吐量的提高在诸如跨大西洋传输之类的长路由路径上尤为明显。改进的时延主要是在最后一英里路径上经历的。这里,术语“最后一英里路径”是指电信网络的最后一段。
24.带宽瓶颈往返时间(bbr)算法使用网络递送最近一组出站数据分组的最大带宽和往返时间来开发网络的模型。分组递送的每个累积或选择性确认产生速率样本,该速率样本记录在数据分组的传输和对该分组的确认之间的时间间隔内递送的数据量。
25.随着网络接口控制器的性能从每秒兆比特发展到每秒千兆比特,与缓冲膨胀而不是分组丢失相关联的时延成为最大吞吐量的更可靠的标志,使得诸如bbr之类的基于模型的拥塞控制算法成为更流行的基于丢失的算法的更可靠的替代方案。在共享网络中,缓冲膨胀是一种现象,由此分组的缓冲导致高时延和抖动,并降低整体网络吞吐量。
26.在tcp数据传输中,bbr算法计算rtt和瓶颈容量的连续估计。rtt是某个时间窗口内所有rtt测量结果中的最小值,描述为“几十秒到几分钟”。瓶颈容量是到接收器的最大数据递送速率。rtt和瓶颈容量的这些估计值是独立管理的,因为两者都可以改变而不一定影响另一个。进一步地,对于每个发送的分组,bbr标记数据分组是否是传输流的一部分或者传输流是否已经暂停,在这种情况下数据被标记为“应用受限”。此外,要发送的分组以估计的瓶颈速率定步(pace),旨在避免当网络在瓶颈点处执行速率调整时否则将遇到的网络排队。简而言之,bbr确保发送方以预期在整个路径内不遇到排队的速率将分组传递到网络中。
27.除了传输协议之外,dns是互联网基础设施的另一个重要组成部分。dns是域名服务的首字母缩写并且是使得因特网用户能够被定向到目标资源的标准协议。将域名解析为数字ip地址对于定位和识别目标网站、服务器或设备以及底层网络协议至关重要。
28.dns解析由也称为递归解析器的dns解析器进行,dns解析器是设计为接收来自web浏览器和其他应用程序的dns查询的服务器。dns查询或dns请求是从用户的设备发送到dns服务器的对信息的需求,在大多数情况下,dns请求是为了请求与域名相关联的ip地址而发送的。解析器接收域名并将其定向到根服务器,并接收顶级域名(tld)服务器的详细信息。通过tld域名服务器,根服务器接收权威名称服务器的详细信息,并请求与所需域名匹配的ip地址,在它接收到所请求的ip地址时解析dns查询。尽管如此,dns服务器可以被配置为将用户查询(请求)重定向到代表实际目标服务器的代理服务器。这是通过将目标服务器的实际ip地址替换为代理服务器的ip地址来完成的。这些通常由代理服务提供商进行,以增强其服务并提高安全性。除了配置dns服务器之外,防火墙还可以用于重新路由用户请求并将其重定向到代理服务器。替代的dns服务是任播dns,这是一种流量路由方法,用于快速递送在多个节点上通告个体ip地址的网站内容。基于诸如服务器的容量和健康以及服务器与网站访问者之间的距离之类的因素,将用户请求定向到特定节点。
29.回到代理服务器将适合在这里进一步阐明代理服务器的用例之一。代理在数据收集/搜集过程中可以非常有用。web数据收集/搜集也称为web抓取。由于web抓取通常由自动化应用程序(作为web爬虫或web爬行器而已知)进行,因此web抓取可以容易地被许多标准网站检测和阻止。然而,如果web爬虫使用代理服务,则web抓取活动可以容易地被掩盖,使得显著降低被禁止访问网站的概率。此外,web爬虫和web爬行器可以使用代理来绕过地理限制并访问数据,而不考虑其地理位置。
30.代理提供商可以控制代理的质量,并选择结束代理以代表客户端到达目标web资源。如果同一个代理用于过多的请求,则该代理可能被因特网服务提供商或网页禁止,并且将无法使用这样的代理来进行后续请求。如果在短时间内有过多的请求从一个ip地址进入,那么web服务器可能返回错误消息,并可能在预先设置的一段时间内不允许来自该代理的请求。为了防止错误或不允许的请求,服务提供商不时地检查代理,并从代理池中移除损坏的代理(不再向客户端提供此类代理)。服务提供商可以根据几个不同的理由检查代理:
代理是否在线,延迟时间是多少,代理使用什么因特网连接(wi-fi,移动数据等)。代理的检查在调度的时间间隔内执行,以确保用户可以使用代理服务有效地使用特定代理。
31.然而,存在一般与代理和代理服务相关联的重大挑战。此外,并非每个代理提供商都可以为用户提供可靠且高效的代理服务。诸如时延和低网络吞吐量之类的网络问题是每个代理提供商面临的主要挑战。在网络方面,时延是延迟的度量。时延通常被测量为往返延迟——信息到达其目的地并重新返回所花费的时间。同样,术语“网络吞吐量”指的是在任何给定时间从源传输的数据量。网络拥塞是低吞吐量水平的关键贡献因素。
32.更高的时延是服务器与用户之间的显著地理距离和“跳”数的直接结果。网络术语中的跳是指分组(一部分数据)从其源到其目的地通过的网络接口的数量。代理服务中的时延的一个重要原因是地理上遥远。用户选择的位置可以显著影响代理在处理用户的请求时的速度。最佳位置是离用户更近并且也靠近目标站点的位置。用户与代理提供商的中央基础设施之间的距离也可以对时延有贡献。例如,如果特定代理提供商在用户的区域中缺乏存在(例如通过全球分布的基础设施),则用户将很可能遭受显著时延。正确的位置选择可以帮助使时延最小化。因此,通过选择靠近用户和目标的代理,可以显著降低时延。
33.除其他方面外,当前实施例提供了用于使代理提供商和用户在降低时延和增加网络吞吐量时受益的全局扩展基础设施的手段。目前描述的实施例在其他方面也增加了从网络进行数据收集和提取的成功率。
技术实现要素:
34.本文描述的几个方面针对与代理服务提供商有关的方法和系统,其可将多个计算组件组合成可扩展的、高效的且全球分布的基础设施,其例如可以为接近代理服务的用户提供改善时延和网络性能的手段。
35.为了提高代理服务的质量,一种允许用户将代理请求发送到地理上最接近的代理基础设施之一以降低时延并提高网络性能的解决方案。所提出的解决方案在一个方面提供了识别和选择位置在地理上接近代理基础设施的出口节点的元数据以服务于用户请求的系统和方法。另外,代理基础设施直接将用户请求转发给所选择的出口节点所连接到的相应代理超级节点。在另一个方面,代理超级节点可以选择和识别位于用户所请求的特定地理位置的出口节点的元数据。此外,代理基础设施可以直接将用户请求转发给所选择的出口节点所连接到的相应代理超级节点。重要的是在此提到,代理基础设施从其内部数据库中选择出口节点的元数据。选择出口节点的元数据并将用户请求从地理上最接近用户的代理基础设施转发到相应的代理超级节点可以显著减少跳数并降低时延。该解决方案还提供了测试、定期收集和存储多个出口节点的元数据的方法和系统。
附图说明
36.图1示出了对组件的示例性架构描述的框图。
37.图2a至2d示出了用户设备通过地理上最接近的代理基础设施向目标发送请求的示例性流程图。
38.图3a和3b示出了代理超级节点向中央管理单元报告关于出口节点的相关信息的示例性流程图。
39.图4是示出代理超级节点向中央管理单元报告出口节点的断开连接的示例性流程图。
40.图5是示出存储库单元从中央管理单元收集元数据的示例性流程图。
41.图6示出了一种计算系统,其中计算机可读介质可以提供用于执行本文公开的方法和过程中的任一种的指令。
具体实施方式
42.一些通用术语描述可能是有帮助的并且为了方便而被包括在本文中并且旨在以尽可能广泛的解释来解释。在描述中未强制限定的元素应当具有如本领域技术人员将理解的含义。
43.用户设备102——可以是任何合适的计算设备,包括但不限于智能电话、平板计算设备、个人计算设备、膝上型计算设备、游戏设备、车辆信息娱乐设备、智能电器(例如,智能冰箱或智能电视之类)、云服务器、大型机、笔记本、台式机、工作站、移动设备或用于连接到代理服务器的任何其他电子设备。此外,应当注意的是,术语“用户”是为了简洁起见而使用的,并且可以指与订户账户相关联的各种实体中的任何一个,诸如例如请求和使用代理服务从web获得相关信息(例如,刮取、流传输等)的个人、组织、组织内的组织角色、组织内的组。
44.dns提供商104——提供dns服务的一方,硬件和软件的组合,使得能够解析由用户设备102进行的域名查询。dns提供商104还可以位于云或第三方提供商上。dns服务是将域名转换成相应的ip地址的过程。重要的是注意,dns提供商104基于用户设备102和用户设备104正试图连接到的代理网关108两者的地理位置来响应dns查询。dns提供商104通过提供存在于同一地理区域内的最靠近用户设备102的代理网关108的ip地址来解析dns查询。
45.代理基础设施106——包含代理网关108、代理信使110、用户数据库112、存储库单元114的代理服务器,存储库单元114进而包含处理单元116和池数据库118。可以有位于跨全球的各个地理位置的代理基础设施106的多个实例。
46.代理网关108——代理,通过提供进入代理提供商网络106的接口来向用户设备102或多个用户设备102提供对代理服务的访问的网关。代理网关108可以是软件和硬件的组合并且可包括高速缓存服务。代理网关108为用户设备102提供进入代理基础设施106的入口点。代理网关108处理接收和转发请求并经由网络130将响应发回给用户设备102。代理网关108是代理基础设施106的组成部分。
47.代理信使110——代理服务器(计算机系统或系统或应用程序)和能够执行若干复杂功能的代理基础设施106的组成部分。代理信使110从代理网关108接收用户设备102的请求,并检查这些请求以寻找任何用户定义的用于出口节点选择的偏好。代理信使110负责从存储库单元114请求满足用户定义的偏好的一个或多个出口节点的元数据。此外,代理信使可以从存储库单元114接收所选择的一个或多个出口节点的元数据。代理信使110还负责将用户设备102的请求发送到所选择的出口节点所连接到的相应代理超级节点120。此外,如果用户设备102的请求不包含用户定义的用于出口节点地理位置的偏好,那么代理信使110从存储库单元114请求与代理基础设施106在地理上接近的一个或多个出口节点的元数据。在一些实施例中,代理信使110和代理网关108可以作为具有不同名称的单个元素而共同定
位;然而,整体功能保持不变。
48.用户数据库112——数据库,包含用户设备102的验证凭证的结构化存储。用户数据库112在表(命名的列和多行)中存储数据,其中存在关于多个用户设备102的验证凭证的信息。凭证可以包括但不限于用户名、用户标识、密码、哈希标识、序列号、pin。用户数据库112可以是任何物理存储设备或基于云的存储。如上所述,在一些实施例中,用户数据库112和代理信使110可以共同定位到单个元素中;然而,整体功能是不变的。用户数据库112是代理基础设施106的组成部分。
49.存储库单元114——计算系统、代理和代理基础设施106的组成部分。存储库单元114包括被配置为从中央管理单元122收集、分类和存储出口节点的元数据的元素。此外,存储库单元114可以通过识别、选择出口节点的元数据并将出口节点的元数据发送到代理信使110来响应来自代理信使110的请求。处理单元116和池数据库118是构成存储库单元114的元素。
50.处理单元116——计算系统和存储库单元114的组成部分,负责从中央管理单元122收集出口节点的元数据。另外,处理单元116可以基于出口节点的属性(例如,位置、时延、电池寿命等)将所收集的出口节点的元数据分类为类别,并将分类后的元数据存储在池数据库118中。处理单元116可以从池数据库118识别和选择适合从代理信使110接收到的请求的出口节点的元数据。此外,处理单元116通过从池数据库118中提取识别出的出口节点的元数据并将其提供给代理信使110来响应来自代理信使110的请求。人们必须理解,处理单元116以规则的时间间隔动态地从中央管理单元122收集出口节点的元数据。另外,处理单元116可以对存储在池数据库118中的出口节点的元数据进行连续修正。
51.池数据库118——存储库单元114的组成部分,结构化的存储单元,其包含被分类为几个类别(诸如位置、时延、电池寿命等)的出口节点的元数据。在一些实施例中,池数据库118可以构成在处理单元114内但仍是存储库单元114的一部分,并且整体功能不变。
52.代理超级节点120——负责接收来自代理信使110的请求并将其转发给出口节点的代理的示例性实例。另外,代理超级节点120可以从出口节点接收针对前述请求的响应并且可以将这些响应转发给代理信使110。代理超级节点120保持与地理上接近存在的出口节点的连接。人们必须理解,可以有代理超级节点120的多个实例分布在不同的地理位置上。代理超级节点120可以动态地测试出口节点并以规则的时间间隔向中央管理单元122报告出口节点的元数据。
53.中央管理单元122——能够执行从多个代理超级节点120实时接收出口节点的元数据的复杂功能的处理单元。此外,中央管理单元122存储与不同代理超级节点120连接的多个出口节点的元数据,将所有元数据保持在单个存储中。此外,中央管理单元122可以从处理单元116接收请求并通过向处理单元116提供出口节点的必要元数据来响应该请求。在当前公开中存在一个主要的中央管理单元122;然而,可以存在执行相同功能的多个中央管理单元112。
54.区域dns服务器124——dns服务提供商,专门用于解析来自试图最初即第一次与代理超级节点120连接的出口节点的dns查询。区域dns服务器124通过提供在地理上最靠近做出请求的出口节点的代理超级节点120的ip地址来解析来自出口节点的dns查询。区域dns服务器124是硬件和软件的组合;然而,区域dns服务器124可以位于云上。
55.出口节点126——用于到达目标128的代理的示例性实例。简单来说,出口节点126是流量到达目标128之前的最后一个网关。几个代理服务器可以用于执行用户的请求(例如代理超级节点120和代理信使110)。然而,出口节点126是与目标联系并从目标检索信息的最终代理。出口节点126可以例如是膝上型计算机、移动电话、平板计算机或智能设备。进一步地,出口节点126还可以是能够进行网络连接但不主要用于联网的设备,诸如连接的家用电器、智能家庭安全系统、自主农业设备、可穿戴健康监测器、智能工厂设备、无线库存跟踪器、生物计量网络安全扫描仪、集装箱等。此外,出口节点126可以位于不同的地理位置。
56.目标128——通过因特网或其它网络服务于任何种类的媒体内容、资源、信息、服务的服务器的示例性实例。目标128可以例如是可具有定义的网络协议端口的特定ip地址、域名和/或主机名,其表示服务于通过行业标准协议可访问的内容的远程系统处的资源地址。目标128可以是包含通过目标地址请求的内容的物理或云服务器。
57.网络130——是允许节点共享和访问资源的数字电信网络。网络的示例:局域网(lan)、广域网(wan)、校园局域网(can)、城域网(man)、家庭局域网(han)、内联网、外联网、互联网络、因特网。在当前公开中,因特网是与方法的功能最相关的网络。
58.元数据——详述单个出口节点126的属性的一组信息。出口节点126的属性可包括但不限于:地理位置、ip地址、响应时间/时延、到达的跳数、电池寿命、可达性、可用性状态、到达特定目标的能力、操作平台/系统配置、出口节点126所连接到的特定代理超级节点120的ip地址。上面提到的大多数属性是由代理超级节点120通过以规则间隔测试出口节点126来收集的。
59.图1是示出用户设备102的示例性总体结构,其可以是连接到网络130的任何计算设备(例如,个人计算机、移动电话、平板计算机)、dns提供商104、代理基础设施106、代理超级节点120、中央管理单元122、区域dns服务器124、出口节点126和目标128,网络130可以是任何数字电信网络(例如,因特网)。代理基础设施106包含代理网关106、代理信使108、用户数据库112和存储库单元114。另外,存储库单元114包含处理单元116和用户数据库118。虽然图1中所示的元素实现了示例性实施例,但其他实施例中的一些元素可以具有不同的标题或可以组合成单个元素而不是两个单独的元素(例如处理单元116和池数据库118可以作为单个元素。同样,代理信使110和代理网关108可以作为单个元素共同定位。)。然而,元素的功能和元素之间的信息流通常不受到此类组合或合并的影响。因此,如图所示的图1应被解释为仅是示例性的,而不是对其他特征的限制性或排除性,包括在本公开的其他领域中讨论的特征。此外,可以存在代理基础设施106、代理超级节点120、出口节点126位于跨全球的不同地理位置的多个实例;然而在图1中,仅示出了前述元素的一个实例。代理基础设施106、中央管理单元122和代理超级节点120是向用户设备102提供代理服务所必需的基本元素。
60.在代理基础设施106内,代理网关108和代理信使110可以彼此通信,同时代理信使110可以访问用户数据库112。代理信使110和处理单元116可以彼此通信,同时处理单元116可以访问池数据库118。另外,在代理基础设施106中,代理网关108可以与外部元素即用户设备102进行通信。代理信使110可以与外部元素即代理超级节点120进行通信。类似地,存在于存储库单元114内的处理单元116可以与外部元素即中央管理单元112进行通信。
61.在图1中,用户设备102最初经由网络130向dns提供商104发送dns查询。dns提供商
104通过向用户设备102提供属于地理上最接近的代理基础设施106之一的ip地址来解析该dns查询。随后,用户设备102经由网络130向代理基础设施106发送对从目标128进行数据提取的请求。替代常规dns解析方法,dns提供商104还可以实施任播路由方法,以将用户设备102引导到地理上最接近的代理基础设施106之一。具体而言,来自用户设备102的请求由存在于代理基础设施106中的代理网关108接收。这里,人们必须理解,代理网关108为用户设备102提供进入代理基础设施106的入口点。代理网关108处理接收和转发请求并经由网络130将响应发回给用户设备102。此外,来自用户设备102的请求可以包含用户验证所必的认证凭证,并且可包括用户定义的用于出口节点选择的偏好。
62.在从用户设备102接收到对数据提取的请求时,代理网关108将该请求转发给代理信使110。紧接在接收到来自代理网关108的请求之后,代理信使110通过对照用户数据库112验证在请求中提供的认证凭证来执行用户验证。一旦凭证被验证,代理信使110就检查请求以识别在选择出口节点时必须满足的任何用户定义的偏好。具体而言,代理信使110检查请求以寻找任何期望的出口节点位置。如果用户设备102不提供任何用户定义的针对出口节点地理位置的偏好,则代理信使110向存储库单元114请求在地理上接近代理基础设施106的出口节点的元数据。
63.来自代理信使110的对元数据的请求由存在于存储库单元114中的处理单元116接收。在接收到对出口节点的元数据的请求时,处理单元116访问池数据库118以识别和选择在地理上接近代理基础设施106的出口节点的元数据。此后,处理单元116提取所选择的出口节点(由出口节点126表示)的元数据并将元数据发回给代理信使110。处理单元116所发送的元数据包含所选择的出口节点和所选择的出口节点所连接的特定代理超级节点120的ip地址信息。
64.在从处理单元116接收到元数据时,代理信使110朝向代理超级节点120发送对数据提取的请求和所选择的出口节点126的ip地址。在接收到来自代理信使110的请求之后,代理超级节点120指示出口节点126建立与预期目标128的连接。相应地,出口节点126建立与目标128的连接。在下一步骤中,代理超级节点120将对数据提取的请求发送到出口节点120,出口节点120然后将该请求转发给目标128。
65.在另一个实施例中,用户设备102可以提供用户定义的针对出口节点地理位置的偏好。在检查请求之后,代理信使110向存储库单元114请求位于满足用户定义的偏好的特定地理位置的出口节点的元数据。来自代理信使110的对元数据的请求由存在于存储库单元114中的处理单元116接收。在接收到对出口节点的元数据的请求时,处理单元116访问池数据库118以识别和选择位于特定地理位置的出口节点的元数据。此后,处理单元116提取所选择的出口节点(也由出口节点126表示)的元数据并将元数据发回给代理信使110。处理单元116所发送的元数据包含所选择的出口节点和所选择的出口节点到的特定代理超级节点120的ip地址信息。在该实例中,代理超级节点120可以是位置在地理上接近于所选择的出口节点并且可在地理上远离代理基础设施106。
66.在接收到来自处理单元116的元数据时,代理信使110朝向特定代理超级节点120发送对数据提取的请求和所选择的出口节点126的ip地址。在接收到来自代理信使110的请求之后,代理超级节点120指示出口节点126建立与预期目标128的连接。相应地,出口节点126建立与目标128的连接。此后,代理超级节点120将对数据提取的请求发送到出口节点
120,出口节点120然后将该请求转发给目标128。
67.因此,通过上述实施例,在地理上更接近用户设备102的代理基础设施106可以通过处理单元116从其内部池数据库118中识别、选择位于远程地理位置的出口节点的元数据。另外,在地理上更接近用户设备102的代理基础设施106可以将对数据提取的请求发送到所选择的出口节点所连接到的特定代理超级节点120(位于任何远程地理位置)。
68.在另一个方面,图1示出当新连接的出口节点126或多个出口节点126向区域dns服务器124作出dns查询时发生的通信。此连接是出于将出口节点与在地理上更接近出口节点的代理超级节点120连接的目的而完成的。区域dns服务器124通过提供与做出请求的出口节点126在地理上接近的代理超级节点120的ip地址来解析dns查询。替代常规dns解析方法,区域dns服务器124还可以采用任播方法将出口节点126引导到与做出请求的出口节点126在地理上接近的代理超级节点120。随后,出口节点126朝向代理超级节点120请求连接,代理超级节点120继而确认连接,从而建立与出口节点126的连接。人们在这里必须理解,代理超级节点120可以接受并保持与地理上接近的出口节点的多个实例的连接。在建立连接之后,代理超级节点120定期测试出口节点126或多个出口节点126以收集关于出口节点126或多个出口节点126的若干属性的信息。代理超级节点120定期向中央管理单元122报告所收集的关于出口节点126或多个出口节点126的信息。而且,代理超级节点120可以向中央管理单元122报告新连接的出口节点或先前连接的出口节点的断开连接。
69.在又一个方面,图1呈现代理基础设施106经由网络130定期地从中央管理单元122收集多个出口节点的元数据。具体而言,处理单元116访问中央管理单元122以收集多个出口节点的元数据,而不管出口节点的位置如何。处理单元116基于出口节点的属性将多个出口节点的元数据分类为若干类别,包括但不限于地理位置、到达特定目标的能力、时延/响应时间。处理单元116将分类后的元数据存储在池数据库118中。此外,处理单元116可以通过对池数据库118进行必要的修正来连续地更新出口节点的元数据。
70.此外,在另一个方面,图1采用了高效的tcp拥塞控制算法(诸如bbr之类)之一,它大大降低了时延并提高了网络吞吐量。bbr代表带宽瓶颈和往返时间。在当前实施例中,bbr算法优化如何在tcp连接中传输网络分组。更具体而言,bbr算法可以控制tcp连接中的数据量和数据传输速度。在当前实施例中,bbr使得能够在更短的时间内传输或换句话说分发更多数据而没有分组丢失,因此导致最佳网络吞吐量和最小化的时延。与在拥塞发生时不检测拥塞的其他tcp拥塞控制算法不同,bbr在拥塞发生之前阻止网络拥塞。
71.图2a表示示出用户设备102通过地理上最接近的代理基础设施106(未示出)向目标128发送请求的示例性流程图。在步骤201中,用户设备102通过经由网络130向dns提供商104发送dns查询来开始,以获得代理基础设施106的ip地址并且一般而言访问由代理基础设施106提供的代理服务。
72.在步骤203中,在接收到来自用户设备102的dns查询之后,dns提供商104通过提供在地理上最接近用户设备102的代理基础设施106的ip地址来解析dns查询。如前所述,dns提供商104基于用户设备102和用户设备104正试图连接到的代理基础设施106两者的地理位置来响应dns查询。例如,dns提供商104确保向位于加拿大的用户设备102提供与位于加拿大的该特定用户设备102在地理上最接近的代理基础设施106的ip地址。
73.在步骤205中,在接收到地理上最接近的代理基础设施106的ip地址之后,用户设
备102从目标128向代理基础设施106发送对数据提取的请求。更具体而言,请求被发送到在本示例性实施例中存在于代理基础设施106内的代理网关108。在这里须回想,代理网关108是用户设备102进入代理基础设施106的入口点。用户设备所发送的请求包含用户验证所需的认证凭证。凭证可以包括但不限于用户名、密码、哈希标识、序列号、pin。此外,请求可以在包括但不限于http、udp、socks5的任何标准网络协议上发送。重要的是注意,用户设备102所发送的请求可以包含用户定义的针对出口节点选择的偏好,例如,期望的出口节点位置。
74.在步骤207中,在从用户设备102接收到请求之后,代理网关108将该请求转发给在本示例性实施例中存在于代理基础设施106内的代理信使110。因此,在步骤209中,在接收到请求时,代理信使110验证包含在请求中的凭证。具体而言,代理信使110访问用户数据库112并且对照存在于用户数据库112中的数据来验证凭证。通过验证凭证,代理信使110验证用户。验证过程可涉及但不限于验证由用户设备102提供的用户id和密码或pin的组合。验证凭证是必不可少的,因为它使得代理基础设施106能够通过仅允许经验证的用户设备102访问其安全服务来保持其网络安全。
75.图2b是图2a的示例性流程图的延续。在步骤211中,在验证凭证和用户验证之后,代理信使110检查请求以识别在选择出口节点126时必须满足的任何用户定义的偏好。具体而言,代理信使110检查请求以寻找任何期望的出口节点位置。如果请求不包含任何用户定义的对出口节点126地理位置的偏好,则在那种情况下,代理信使110向存在于存储库单元114(未示出)内的处理单元116请求在地理上接近代理基础设施106的出口节点126的元数据。相应地,在步骤213中,代理信使110向存在于存储库单元内的处理单元116请求在地理上接近代理基础设施106的出口节点126的元数据。
76.在步骤215中,在从代理信使110接收对元数据的请求之后,处理单元116通过访问池数据库118来识别和选择与代理基础设施106在地理上接近的出口节点126的元数据。因此,在步骤217中,处理单元116从池数据库118中提取所选择的出口节点126的元数据。在步骤219中,处理单元116将所选择的出口节点126的元数据发送到代理信使110。处理单元116所发送的元数据包含所选择的出口节点和所选择的出口节点所连接到的特定代理超级节点120的ip地址信息。
77.在步骤221中,在接收到所选择的出口节点126的元数据之后,代理信使110向代理超级节点120发送对数据提取的请求和所选择的出口节点126的ip地址。在将对数据提取的请求发送到代理超级节点120之前,代理信使110可以在http通信的情况下通过请求实现分块传输编码方法。分块传输编码是http的一个特征,并且是一种数据传输机制。在分块传输编码中,数据流被分成一系列不重叠的“块”。块被彼此独立地发送和接收。对于在任何给定时间参与数据传输的双方来说,不需要了解当前正在处理的块之外的数据流。分块传输编码允许代理信使110保持持久连接以传输动态生成的内容。而且,分块传输编码允许代理信使110发送大量数据并优化数据传输。此外,通过分块实现的持久连接有助于避免时延问题,因为它消除了为每个事务创建新连接的开销。在网络术语中,开销是指用于执行特定任务的超额(excess)或间接计算时间、存储器、带宽或其他所需资源的任何组合。
78.接下来,在步骤223中,在接收到对数据提取的请求和所选择的出口节点126的ip地址之后,代理超级节点120指示出口节点126建立到目标128的连接。
79.图2c是图2a和2b的示例性流程图的延续。在步骤225中,出口节点126发起与目标128的连接,并且随后在步骤227中,目标128确认与出口节点126的连接,从而在出口节点126和目标128之间建立连接。出口节点126和目标128之间的连接可以通过包括但不限于tcp/ip、udp、socks5的标准通信协议中的任一种而发生。因此,步骤225和227可以包括基于前述协议建立连接所需的所有必要步骤。
80.在步骤229中,在出口节点126建立与目标128的连接之后,代理超级节点120将对数据提取的请求发送到出口节点126,出口节点126在步骤231中将该请求转发给目标128。
81.图2d是图2a、2b和2c的示例性流程图的延续。在步骤233中,目标128发送对由出口节点126转发的请求的相关响应,并且在步骤235中,出口节点126将该响应从目标128转发给代理超级节点120。这里重要的是提到,出口节点126可以在http通信的情况下在接收到的响应上实现分块编码传输方法。在步骤237中,在从出口节点126接收到响应之后,代理超级节点120将该响应转发给在本示例性实施例中存在于代理基础设施内的代理信使110。在步骤239中,代理信使110将响应转发给代理网关108,代理网关108然后在步骤241中将响应转发给用户设备102。
82.如前所述,来自用户设备102的请求可以包含用户定义的对出口节点选择特别是对出口节点地理位置的偏好。因此,如果在步骤205中由用户设备102发送到存在于代理基础设施106内的代理网关108的请求包含用户定义的对出口节点地理位置的偏好。则在那种情况下,步骤207、209、211保持不变;然而,在步骤213中,代理信使110向存在于存储库单元114内的处理单元116请求位于满足用户定义的偏好的特定地理位置的出口节点126的元数据。连续地,在步骤215中,在接收到来自代理信使110的对元数据的请求之后,处理单元116通过访问池数据库118来识别和选择位于满足用户定义的偏好的特定地理位置的出口节点126的元数据。随后,在步骤217中,处理单元116从池数据库118中提取所选择的出口节点126的元数据。此后,从219到239的相继步骤保持不变。
83.图3a是示出代理超级节点120向中央管理单元122报告出口节点126的相关信息的示例性流程图。在步骤301中,出口节点126最初向区域dns服务器124发送dns查询,请求代理超级节点120的ip地址。在步骤303中,区域dns服务器124通过提供与出口节点126在地理上接近的代理超级节点120的ip地址来解析dns查询。
84.在步骤305中,在接收到地理接近的代理超级节点120的ip地址之后,出口节点126请求与代理超级节点120的连接。在步骤307中,代理超级节点120通过确认连接进行响应,从而建立与出口节点126的连接。在步骤309中,在建立连接之后,出口节点126向代理超级节点120发送平台消息。该平台消息可以包括诸如但不限于操作系统配置、硬件id、序列号、计算机硬件id(chid)、通用唯一标识符和关于电池水平的信息之类的信息。连续地,在步骤311中,代理超级节点120从出口节点126接收平台消息并将其转发给中央管理单元122,从而报告新连接的出口节点126。出口节点126和代理超级节点120之间的连接可以通过包括但不限于tcp/ip、udp、socks5的标准通信协议中的任一种而发生。因此,步骤305和307可以包括基于前述协议建立连接所需的所有必要步骤。
85.图3b是图3a的示例性流程图的延续。在步骤313中,代理超级节点120前进到测试出口节点126。代理超级节点120可以通过发送基准http请求来测试出口节点126。基准http请求可以是经由网络130(未示出)到达任何特定目标的请求(例如,ip地址、主机名),并且
由代理超级节点120动态地决定和发起。基准http请求由代理超级节点120发送以收集和分析出口节点126的若干属性,诸如例如时延、到达特定目标的能力、可用性状态之类。
86.在步骤315中,出口节点126响应由代理超级节点120进行的测试。在http基准请求的情况下,出口节点126通过从特定目标(如在基准http请求中提到的)检索必要数据并将其发回给代理超级节点120来响应基准http请求。通过发送基准http请求的对出口节点126的测试可以提供关于出口节点126的属性的信息,诸如响应时间/时延、到达特定目标(例如,流传输站点、电子零售站点)的能力、可用性状态之类。
87.在步骤317中,代理超级节点120前进到向出口节点126发送ping测试。更具体而言,代理超级节点120向出口节点126发送ping消息。在联网中,ping测试是评估特定主机的网络实用工具;在该示例性实施例中,它是出口节点126。此外,ping测试辅助代理超级节点120收集关于代理超级节点120和出口节点126之间的跳数的信息。ping测试还可以提供关于代理超级节点120和出口节点126之间的连通性和响应时间的信息。代理超级节点120所发送的ping消息使用因特网控制消息协议(icmp)数据分组。这里,icmp是指因特网协议(ip)内的支持协议之一,并用于在网络设备之间发送消息和操作信息。然而,icmp通常不用于常规数据通信;icmp而是被用作诊断工具。在该示例性实施例中,icmp ping消息可以包含多达64个数据字节和8个字节的协议读取器信息。
88.在步骤319中,出口节点126立即响应ping消息。在ping测试中,响应通常被称为pong消息。响应将简单地返回由代理超级节点120发送的ping消息。称为pong的响应消息使用icmp分组来返回回复。必须注意,代理超级节点120继续以规则间隔测试和发送ping消息,以便收集关于出口节点126的属性的信息,这包括但不限于响应时间/时延、到达特定目标的能力、跳数、可用性状态。关于出口节点126的若干属性的集体信息被称为元数据。连续地,在测试之后,在步骤321中,代理超级节点120向中央管理单元122报告所收集的关于出口节点126的若干属性的信息。
89.图4是示出代理超级节点120向中央管理单元122报告出口节点126与所述代理超级节点120断开连接的示例性流程图。出口节点126可以出于诸如例如低电池水平、系统故障之类的许多原因而与代理超级节点120断开连接。因此,在步骤401中,出口节点126与代理超级节点120断开连接,从而终止与代理超级节点126的通信。连续地,在步骤403中,代理超级节点120向中央管理单元122报告出口节点126的断开连接。
90.图5是示出从中央管理单元122收集元数据的示例性流程图。在步骤501中,在该示例性实施例中被示出为存在于存储库单元114内的处理单元116从中央管理单元122访问和收集元数据。中央管理单元122向处理单元116提供多个出口节点126的元数据。在这里须回想,元数据是指关于出口节点126的若干属性的信息,诸如响应时间、跳数、可达性、可用性状态、到达特定目标的能力、ip地址和地理位置之类。在步骤503中,处理单元116基于出口节点126的若干属性(诸如例如响应、到达特定目标的能力、位置、ip地址之类)将收集的元数据分类成类别。
91.在步骤505中,处理单元116将出口节点126的分类后的元数据存储在池数据库118中。如果存在对元数据的改变(例如,如果出口节点126断开连接或时延增加),则处理单元116对池数据库118做出必要的修正。处理单元116可以从池数据库118中移除一个出口节点126或多个出口节点126的元数据。这里必须提到的是,处理单元116可以定期多次从中央管
理单元122访问和收集出口节点126的元数据。而且,处理单元116可以对池数据库118进行必要的修正,从而更新池数据库118中的元数据。
92.作为设计选择的问题,本文的实施例可以以多种方式组合。因此,本文的特征和方面不旨在限于任何特定实施例。另外,实施例可以采用硬件、固件、软件和/或其组合的形式。在一个实施例中,这样的软件包括但不限于固件、驻留软件、微码等。图6图示了计算系统600,其中计算机可读介质606可提供用于执行本文公开的方法和过程中的任一者的指令。
93.另外,本文的实施例的一些方面可以采取可从计算机可读介质606访问的计算机程序产品的形式,以提供供计算机或任何指令执行系统使用或与计算机或任何指令执行系统连接的程序代码。出于本描述的目的,计算机可读介质606可以是可以有形地存储供指令执行系统、装置或设备使用或与指令执行系统、装置或设备连接的程序代码的任何装置,包括计算系统600。
94.计算机可读介质606可以是任何有形的电子、磁、光、电磁、红外或半导体系统(或装置或设备)。计算机可读介质606的一些示例包括固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、磁盘和光盘。光盘的一些示例包括只读紧凑盘(cd-rom)、读/写紧凑盘(cd-r/w)和数字通用盘(dvd)。
95.计算系统600可以包括通过系统总线610直接或间接耦合到存储器608的一个或多个处理器602。存储器608可以包括在程序代码的实际执行期间使用的本地存储器、大容量存储和/或高速缓冲存储器,其提供至少一些程序代码的临时存储以便减少在执行期间从大容量存储中检索代码的次数。
96.输入/输出(i/o)设备604(包括但不限于键盘、显示器、指示设备、i/o接口等。)可以直接或通过介入i/o控制器耦合到计算系统600。网络适配器还可以耦合到计算系统600以使计算系统600能够通过介入的私有或公共网络诸如通过主机系统接口612、打印机和/或存储设备耦合到其他数据处理系统。调制解调器、电缆调制解调器和以太网卡只是网络适配器类型的示例。
97.本公开提出了一种使用最近的可用代理服务器从web服务器进行数据提取和收集的方法和系统,其包括:由在地理上最接近用户设备的代理基础设施处的代理网关接收用户请求;由代理基础设施处的代理网关将用户请求转发到代理信使;由代理基础设施处的代理信使针对出口节点的地理位置检查用户请求;由代理基础设施处的代理信使从存储库单元请求出口节点的元数据以实现用户请求;由代理基础设施处的存储库单元从池数据库中选择出口节点以实现用户请求;由代理基础设施处的代理信使将用户请求和所选择的出口节点的因特网协议(ip)地址发送到代理超级节点;由代理超级节点指示所选择的出口节点建立与目标的连接;由代理超级节点将用户请求发送到所选择的出口节点;由所选择的出口节点将用户请求转发给目标。
98.在所提出的方法中,通过以下操作将用户请求的内容从目标返回给用户设备:由所选择的出口节点从目标接收对用户请求的响应;由所选择的出口节点将从目标接收到的响应转发给代理超级节点;由代理超级节点将从目标接收到的响应转发给代理信使;由代理信使将从目标接收到的响应转发给代理网关;由代理网关将从目标接收到的响应转发给用户设备。
99.代理基础设施处的存储库单元从中央管理单元收集多个出口节点的元数据,而不管它们的位置如何。池数据库中的出口节点基于出口节点属性而被分类到类别,包括:地理位置、到达特定目标的能力、或时延/响应时间。代理超级节点保持与地理上接近的多个出口节点的连接,并且出口节点通过向区域域名系统(dns)服务器进行dns查询来连接到代理超级节点。
100.在所提出的方法中,在接受用户请求之前,代理基础设施处的代理信使执行包括在用户数据库中检查关于用户的数据的用户验证动作。来自用户设备的请求包含用户验证所需的认证凭证。
101.在该方法中,用户设备通过从dns提供商请求地理上最接近的代理基础设施的因特网协议(ip)地址来连接到地理上最接近的代理基础设施。用户请求包含用户定义的偏好,这些用户定义的偏好包括:出口节点的地理位置、到达特定目标的能力、操作系统平台或系统配置设置。
102.在该方法中,代理信使从存储库单元请求出口节点的元数据,以在地理上最接近代理基础设施处实现用户请求,其中该用户请求缺少地理位置,并且其中存储库单元根据代理信使要求来识别、选择出口节点的元数据并将其提交给代理信使。
103.在另一个实施例中,代理信使从存储库单元请求出口节点的元数据,以在地理上最接近目标处实现用户请求,并且其中存储库单元识别并选择位置最接近目标的出口节点的元数据,其中目标的地理位置是从用户请求的参数中推导出来的。
104.在另一个实施例中,代理信使从存储库单元请求出口节点的元数据以实现用户请求,其中用户请求指示特定的出口节点地理位置,并且其中存储库单元根据满足用户定义的偏好的代理信使要求来识别、选择出口节点的元数据并将其提交给代理信使。
105.如权利要求1所述的方法,其中,由存储库单元发送的出口节点的元数据包含所选择的出口节点和所选择的出口节点所连接到的代理超级节点的ip地址信息。代理超级节点定期向中央管理单元报告收集到的关于出口节点的信息。出口节点连接到地理上最接近该出口节点的代理超级节点。
106.尽管已经描述了几个实施例,但是本领域的普通技术人员将理解,可以进行各种修改和改变而不背离本文详述的实施例的范围。因此,说明书和附图将以说明性而非限制性的意义看待,并且所有这样的修改旨在被包括在本教导的范围内。益处、优点、问题的解决方案以及可能导致任何益处、优点或解决方案发生或变得更加明显的任何一个或多个元素将不被解释为任何或所有权利要求的关键、必需或必要的特征或元素。本发明通过所附的权利要求来定义,包括在本技术未决期间所作的任何修改以及所发布的那些权利要求的所有等价物。
107.而且,在本文件中,诸如第一和第二之类的关系术语可仅用于将一个实体或动作与另一个实体或动作区分开,而不一定要求或暗示此类实体或动作之间的任何实际的此类关系或次序。术语“包含”、“具有”、“拥有”、“包括”、“含有”或其任何其他变型旨在涵盖非排他性的包含,使得包含、具有、包括、含有元素列表的过程、方法、物品或装置不仅包括那些元素而是可包括未明确列出或者这样的过程、方法、物品或装置所固有的其他元素。前面有“包含
…
一”、“具有
…
一”、“包括
…
一”、“含有
…
一”的元素在没有附加约束的情况下不排除在包含、具有、包括和/或含有该元素的过程、方法、物品和/或装置中存在另外的相同元素。
术语“一”和“一个”被定义为一个或多个,除非本文另有明确说明。术语“近似”、“大约”或其任何其它版本被定义为接近如本领域普通技术人员所理解的。以某种方式“配置”的设备或结构至少以该方式配置,但也可以以未列出的方式配置。对于元素的指示,可以使用单数或复数形式,但其不限制本公开的范围并且相同的教导可以适用于多个对象,即使在当前申请中对象以其单数形式被提及。
108.提供本公开以允许读者快速确定本技术公开的性质。它是在以下理解下提交的:它将不被用来解释或限制权利要求的范围或含义。此外,在前面的详细描述中,展示了在各种实施例中出于精简公开的目的而将多个特征分组在一起。本公开的方法不应被解释为反映所要求保护的实施例需要比在每个权利要求中明确提及的更多特征的意图。而是,如以下权利要求所反映的,本发明的主题在于少于单个公开的实施例的所有特征。
技术特征:
1.一种使用最近的可用代理服务器从web服务器进行数据提取和收集的方法,包括:由在地理上最接近用户设备的代理基础设施处的代理网关接收用户请求;由所述代理基础设施处的所述代理网关将所述用户请求转发到代理信使;由所述代理基础设施处的所述代理信使针对出口节点的地理位置检查所述用户请求;由所述代理基础设施处的所述代理信使从存储库单元请求出口节点的元数据以实现所述用户请求;由所述代理基础设施处的所述存储库单元从池数据库中选择出口节点以实现所述用户请求;由所述代理基础设施处的所述代理信使将所述用户请求和所选择的出口节点的因特网协议(ip)地址发送到代理超级节点;由所述代理超级节点指示所选择的出口节点建立与目标的连接;由所述代理超级节点将所述用户请求发送到所选择的出口节点;由所选择的出口节点将所述用户请求转发给所述目标。2.如权利要求1所述的方法,其中,通过以下操作将所述用户请求的内容从所述目标返回给用户设备:由所选择的出口节点从所述目标接收对所述用户请求的响应;由所选择的出口节点将从所述目标接收到的响应转发给所述代理超级节点;由所述代理超级节点将从所述目标接收到的响应转发给所述代理信使;由所述代理信使将从所述目标接收到的响应转发给所述代理网关;由所述代理网关将从所述目标接收到的响应转发给所述用户设备。3.如权利要求1所述的方法,其中,所述代理基础设施处的存储库单元从中央管理单元收集多个出口节点的元数据,而不管它们的位置如何。4.如权利要求1所述的方法,其中,所述池数据库中的出口节点基于出口节点属性而被分类到类别,包括:地理位置、到达特定目标的能力、或时延/响应时间。5.如权利要求1所述的方法,其中,所述代理超级节点保持与地理上接近的多个出口节点的连接。6.如权利要求5所述的方法,其中,出口节点通过向区域域名系统(dns)服务器进行dns查询来连接到所述代理超级节点。7.如权利要求1所述的方法,其中,在接受所述用户请求之前,所述代理基础设施处的所述代理信使执行包括在用户数据库中检查关于用户的数据的用户验证动作。8.如权利要求7所述的方法,其中,来自所述用户设备的请求包含用户验证所需的认证凭证。9.如权利要求1所述的方法,其中,所述用户设备通过从dns提供商请求地理上最接近的代理基础设施的因特网协议(ip)地址来连接到地理上最接近的代理基础设施。10.如权利要求1所述的方法,其中,所述用户请求包含用户定义的偏好,所述用户定义的偏好包括:出口节点的地理位置、到达特定目标的能力、操作系统平台或系统配置设置。11.一种使用最近的可用代理服务器从web服务器进行数据提取和收集的方法,包括:由在地理上最接近用户设备的代理基础设施处的代理网关接收用户请求;由所述代理基础设施处的所述代理网关将所述用户请求转发到代理信使;
由所述代理基础设施处的所述代理信使针对出口节点的地理位置检查所述用户请求;由所述代理基础设施处的所述代理信使从存储库单元请求所述出口节点的元数据以实现所述用户请求;由所述代理基础设施处的所述存储库单元从池数据库中选择出口节点以实现所述用户请求;由所述代理基础设施处的所述代理信使将所述用户请求和所选择的出口节点的因特网协议(ip)地址发送到代理超级节点;由所述代理超级节点指示所选择的出口节点建立与目标的连接;由所述代理超级节点将所述用户请求发送到所选择的出口节点;由所选择的出口节将所述用户请求转发给所述目标;其中为实现所述用户请求而选择的出口节点在地理上最接近所述代理基础设施,其中所述用户请求缺少地理位置偏好,并且其中所述存储库单元根据代理信使要求来识别、选择出口节点的元数据并将出口节点的元数据提交给所述代理信使。12.如权利要求1所述的方法,其中,为实现所述用户请求而选择的出口节点在地理上最接近所述目标,并且其中所述存储库单元识别并选择位置最接近所述目标的出口节点的元数据,其中所述目标的地理位置是从所述用户请求的参数中推导出来的。13.如权利要求1所述的方法,其中,所述用户请求指示特定出口节点地理位置,并且其中所述存储库单元根据满足用户定义的偏好的代理信使要求来识别、选择出口节点的元数据并将出口节点的元数据提交给所述代理信使。14.如权利要求1所述的方法,其中,由所述存储库单元发送的出口节点的元数据包含所选择的出口节点和所选择的出口节点所连接到的代理超级节点的ip地址信息。15.如权利要求1所述的方法,其中,所述代理超级节点定期向中央管理单元报告收集到的关于出口节点的信息。16.如权利要求1所述的方法,其中,所述出口节点连接到在地理上最接近所述出口节点的代理超级节点。17.一种使用最近的可用代理服务器从web服务器进行数据提取和收集的系统,包括:在地理上最接近用户设备的代理基础设施处的代理网关,能操作用于接收用户请求,以将所述用户请求转发给代理信使;所述代理信使,能操作用于针对出口节点的地理位置检查所述用户请求,从存储库单元请求出口节点的元数据以实现所述用户请求;所述存储库单元,能操作用于选择所述出口节点中的出口节点以实现所述用户请求;所述代理信使,能操作用于将所述用户请求和所选择的出口节点的因特网协议(ip)地址发送到代理超级节点;所述代理超级节点,能操作用于指示所选择的出口节点建立与目标的连接,并将所述用户请求发送到所选择的出口节点;所选择的出口节点,能操作用于将所述用户请求转发给所述目标。18.如权利要求17所述的系统,其中,通过以下操作将所述用户请求的内容从所述目标返回给用户设备:由所选择的出口节点从所述目标接收对所述用户请求的响应;
由所选择的出口节点将从所述目标接收到的响应转发给所述代理超级节点;由所述代理超级节点将从所述目标接收到的响应转发给所述代理信使;由所述代理信使将从所述目标接收到的响应转发给所述代理网关;由所述代理网关将从所述目标接收到的响应转发给所述用户设备。19.如权利要求17所述的系统,其中,所述代理基础设施处的所述存储库单元从中央管理单元收集多个出口节点的元数据,而不管它们的位置如何。20.如权利要求17所述的系统,其中,池数据库中的出口节点基于出口节点属性而被分类到类别,包括:地理位置、到达特定目标的能力、或时延/响应时间。
技术总结
用于通过位于不同地理位置的代理基础设施高效地实现可扩展的、高效的去中心化代理服务的系统和方法。在一个方面,系统和方法使得来自任何地理位置的用户能够向地理上最接近的代理基础设施发送请求。所描述的一个示例性方法允许代理基础设施在其内部数据库中收集、分类和存储出口节点的元数据。在另一个方面,本文描述的系统和方法使代理基础设施能够从其内部数据库中选择出口节点的元数据,并将来自用户设备的请求转发给所选择的出口节点所连接到的相应的代理服务器或代理超级节点。连接到的相应的代理服务器或代理超级节点。连接到的相应的代理服务器或代理超级节点。
技术研发人员:皮考斯卡斯 K
受保护的技术使用者:奥科西拉博斯私人有限责任公司
技术研发日:2021.11.04
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:导热性有机硅组合物的制作方法 下一篇:侵入检测装置以及侵入检测方法与流程
