CN108886533B - 加速与主机服务器的连接 - Google Patents
加速与主机服务器的连接 Download PDFInfo
- Publication number
- CN108886533B CN108886533B CN201680079831.XA CN201680079831A CN108886533B CN 108886533 B CN108886533 B CN 108886533B CN 201680079831 A CN201680079831 A CN 201680079831A CN 108886533 B CN108886533 B CN 108886533B
- Authority
- CN
- China
- Prior art keywords
- connection
- connection request
- host server
- client device
- network
- 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
Images
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
-
- 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/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
Abstract
在预期客户端装置建立通过网络与远程主机服务的连接时,预连接模块代表客户端装置生成连接请求(在此称为“预连接请求”),并将预连接请求发送到远程主机服务器。远程服务器以连接响应(本文称为“预连接响应”)进行响应,其与用于生成稍后的连接请求的信息一起预置在网络的客户端侧,所述稍后的连接请求实质上与预连接请求相同。然后,当客户端装置稍后试图建立与远程主机服务器的连接时,客户端装置确定其在本地存储中是否具有用于生成对远程主机服务器的连接请求的生成信息。如果是的话,客户端装置则使用生成信息来生成与预连接请求实质上相同的连接请求。在网络的客户端侧的截取器截取连接请求并确定对应的预连接响应是否在本地存储。如果是的话,截取器发送本地存储的预连接响应作为对可以丢弃的所截取请求的完整响应。
Description
背景技术
在现代网络系统中,本地装置(例如个人计算机上的网络浏览器)经常执行涉及从各种不同源提取许多资源的网络事务。这可涉及与多个不同的远程主机服务器建立持续连接,然后从中下载资源。通常,建立与远程主机服务器的持续连接涉及握手(handshake),其至少包括来自本地装置的初始请求和来自主机服务器的遵从性响应。用于与网络事务期间从中提取资源的所有远程主机服务器建立持续连接的多个连接请求和响应在完成网络事务时可以增加到其他延迟。结果可能是完成网络事务的整体累积延迟比大多数用户想要的要大。本发明的实施例通过在本地装置执行网络事务时从预期连接到的远程主机服务器引出预连接响应来解决上述问题。然后将预连接响应预置在网络的客户端侧。之后,随着客户端装置执行网络事务并发起与主机服务器的实际握手连接过程,可以截取客户端装置生成的连接请求,并且将预置的响应提供给客户端装置,由此节省跨过网络的至少两次行程。本发明的一些实施例提供了这些和/或其他优点。
发明内容
在一些实施例中,加速了涉及握手的通过网络的持续连接的设置,所述握手至少包括客户端装置的连接请求和远程主机服务器随后的遵从性响应。
在确定客户端装置将来可能寻求与特定主机服务器的连接之后,可以代表客户端装置生成预连接请求并将其发送到主机服务器。预连接请求可以模仿客户端装置的连接请求,使得主机服务器生成遵从性连接响应。然后,主机服务器的连接响应(在本文中通常称为“预连接响应”)可以与指示如何生成预连接请求的生成信息一起预置在网络的客户端侧。
稍后,当客户端装置确定发起与主机服务器的实际连接握手时,客户端装置首先检查客户端侧高速缓存以获得用于生成对主机服务器的连接请求的生成信息。如果客户端装置找到这样的生成信息,客户端装置则使用生成信息来生成连接请求,所述连接请求因此应该与之前用于引出预连接响应的预连接请求实质上相同。如果客户端装置找不到对应的生成信息,客户端装置则根据握手过程的适用协议生成连接请求。无论连接请求如何生成,客户端装置都会将连接请求发送到主机服务器。在网络的客户端侧的截取器截取连接请求并检查客户端侧高速缓存以获得对应的预连接响应。如果截取器发现这样的预连接响应,截取器则将预连接响应发送到客户端装置。由于预连接响应先前由主机服务器响应于与所截取的连接请求实质上相同的预连接请求而生成,因此预连接请求应该被客户端装置接受为对连接请求的遵从性响应,使客户端装置继续进行握手过程以建立与主机服务器的连接。如果截取器找不到对应的预连接响应,截取器则将所截取的连接请求通过网络转发给远程主机服务器。
附图说明
图1示出了根据本发明的一些实施例的示例性网络系统,其中可以从远程主机服务器中引出预连接响应并将其预置在网络的客户端侧。
图2示出了计算装置的例子。
图3是根据本发明的一些实施例的方法的示例,该方法用于从主机服务器引出预连接响应,并将预连接响应与指示如何引出预连接响应的信息一起预置在网络的客户端侧。
图4A、4B和5示出了根据本发明的一些实施例的图3的方法的第一示例。
图6A、6B、6C和7示出了根据本发明一些实施例的图3的方法的第二示例。
图8示出了根据本发明的一些实施例的方法的示例,客户端装置通过该方法利用本地存储的生成信息(如果可用)来生成寻址到远程主机服务器的连接请求。
图9示出了根据本发明的一些实施例的方法的示例,通过该方法截取图8的连接请求,并以来自主机服务器的预连接响应(如果可用)对其进行响应。
图10示出了根据本发明的一些实施例的图8和9的方法的操作的示例。
具体实施方式
本说明书描述了本发明的各种实施例的示例性实施例和应用。然而,本发明不限于示例性实施例和应用或者示例性实施例和应用操作或如本文所述的方式。此外,附图可以示出简化或局部视图,并且附图中的元件的尺寸可能为了清楚而被放大或以其他方式不成比例。另外,本文使用了术语“在……上”、“附接到”或“耦合到”,一个对象(例如材料、层、基底等)可以是“在……上”、“附接到”或“耦合到”另一个对象,而不管该一个对象是直接在另一个对象上,附接到另一个对象,还是耦合到另一个对象,或者在该一个对象和该另一个对象之间是否存在一个或多个中间对象。此外,如果提供有方向的话,方向(例如上方、下方、顶部、底部、侧面、上、下、之下、之上、较上、较下、水平、垂直、“x”、“y”、“z”等)是相对,并且仅通过示例的方式提供,并且是为了便于说明和讨论而不是限制。此外,在提及元素列表(例如元素a、b、c)时,这样的引用旨在包括列出的元素中的任何一个单独列出的元素,少于所有列出的元素的任何组合,以及/或所有列出的元素的组合。
如本文所用,“基本上”意指足以达到预期目的。术语“一个”(ones)意味着不止一个。
如本文所用,“网络资源”包括视觉(例如文本、图像、视频等)对象、音频对象、一个或多个指令的集合(例如,以超文本编码的页面、诸如级联样式表(CSS)的用于显示和/或播放网络资源的样式表,诸如JavaScript文件的脚本文件等),或由网络上的一个装置根据其他装置之一的请求使其对其他装置可用和/或提供给其他装置的网络服务。“网络资源”有时简称为“资源”。
如本文所用,“持续连接”是指网络上的装置之间的连接,一旦建立,则一直保持,直至被其中一个装置终止,或者由于在预定非使用时段之后超时而被终止。因此,持续连接可以在客户端装置和主机服务器之间数据、消息等的多次交换保持存在。两个网络装置之间的网络套接字连接是持续连接的示例。用于在网络上建立装置之间的持续连接的已知协议包括超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)。一些连接协议(例如HTTPS)允许客户端装置建立与主机服务器的安全连接。安全连接协议包括安全套接层(SSL)和传输层安全(TLS)协议。ClientHello消息是用于建立安全连接的已知连接请求的示例,而ServerHello是对应的连接响应的示例。
在许多网络系统中,客户端装置(例如,运行网络浏览器的个人计算装置)通过握手协议与远程主机服务器建立持续连接。通常,客户端装置通过在网络上向主机服务器发送连接请求,然后等待来自主机服务器的连接响应,从而开始握手。仅在接收到连接响应并且其遵从握手协议的情况下,客户端装置才会继续进行握手。一旦握手过程完成并且建立了持续连接,客户端装置便可以从主机服务器获得网络资源、服务等。
在现代网络中,执行网络事务的客户端装置经常从许多不同主机服务器请求资源、服务等。为了完成网络事务,客户端装置因此通常必须与许多不同的主机服务器建立连接并且然后从其请求资源、服务等。这可导致通过网络传输许多消息,并导致完成网络事务时延迟不会不显著。事实上,仅仅与每个主机服务器建立连接可以包含延迟的不会不显著的部分。
本发明的一些实施例试图通过加速建立与主机服务器的连接的过程来减少这种延迟。当预先知道客户端装置将会或甚至将来可能尝试建立与特定主机服务器的连接(例如,作为网络事务的一部分)时,本发明的一些实施例向主机服务器模仿连接请求(以下称为“预连接请求”),其从主机服务器引出连接响应(下文称为“预连接响应”)。然后,预连接响应与指示如何生成预连接请求的信息一起预置在网络的本地装置侧。然后,当客户端装置开始建立与主机服务器的实际连接的过程时,客户端装置可以首先确定其是否本地存储有指示如何生成对主机服务器的预连接请求的信息(在下文中该信息称为“生成信息”)。如果是的话,客户端装置则使用生成信息来生成与预连接请求实质上相同的连接请求。如果不是的话,客户端装置则根据适用的握手协议生成连接请求。在网络的客户端侧的截取器截取连接请求,并对于每个所截取的连接请求确定对应的预连接响应是否本地存储在网络的客户端侧。如果是的话,截取器则提供本地存储的预连接响应作为对现在可以丢弃的所截取的连接请求的响应。如果不是的话,截取器则将连接请求转发给连接请求被寻址到的主机服务器。
在本地存储来自所截取的连接请求被寻址到的主机服务器的预连接响应的那些情况下,将本地存储的预连接响应提供给客户端装置可以加速建立连接的过程,至少节省了对应于通过网络往返的时间。也就是说,至少节省了以下各项的总和:客户端装置的实际连接请求通过网络到达主机服务器的时间、主机服务器生成连接响应的时间,以及连接响应通过网络返回到客户端装置的时间。本发明的实施例可以提供这些和其他优点,当客户端装置和主机服务器之间的网络具有相对高的等待时间时(例如当网络包括一个或多个卫星链路时),这可以是特别有利的。然而,本发明不限于在包括卫星链路或任何高等待时间链路的网络上使用。
图1示出了根据本发明的一些实施例的系统100的示例的高层次框图描绘。如图所示,系统100可以包括一个或多个客户端装置102(示出了两个,但可以存在更少或更多)以及一个或多个远程主机服务器150(示出了三个,但可以存在更多或更少)所连接的网络140。网络140可以具有客户端装置102和主机服务器150之间的一个或多个通信链路142。在一些实施例中,客户端装置102在这样的通信链路142或网络140的一侧(在本文中有时称为“客户端侧”)上,而主机服务器150在通信链路142或网络140的相对侧(在本文中有时称为“服务器侧”)上。在一些实施例中,通信链路142是相对高等待时间的链路,例如卫星链路。然而,通信链路142不一定是高等待时间的,并且本发明不限于在卫星链路上操作。
客户端装置102可以是计算装置,例如台式或膝上型个人计算机、智能蜂窝电话、平板装置等。如此,客户端装置102可以包括这些装置的任何典型硬件和软件模块。在图1中,客户端装置102a被描绘为包括多个应用120、生成信息高速缓存122、客户端侧预连接模块124、截取器126和预响应高速缓存128。
每个应用120可以是例如软件模块,例如人们预期在任何上述计算装置上的软件模块。装置102上的一个或多个应用120可以包括通过预安排的握手过程建立与远程主机服务器150的持续连接的能力,所述握手过程至少包括客户端装置102的连接请求和主机服务器150的连接响应,其中连接请求和连接响应遵从预安排的握手协议。因此,从客户端装置102接收到连接请求时,主机服务器150确定连接请求是否遵从握手协议。如果是的话,主机服务器150则生成连接响应并将其发回给客户端装置102。仅当客户端装置102确定连接响应遵从协议并且以其他方式可接受时,客户端装置102才继续握手中的任何剩余步骤。仅在完成握手协议中的所有步骤之后,才在装置102和远程主机服务器150之间建立持续连接。
通常包括与远程主机服务器150建立持续连接的能力的应用120的示例包括执行涉及客户端装置从多个不同主机服务器提取资源或服务的网络事务的应用。例如,应用120可以与一个或多个(例如全部)主机服务器150建立持续连接,从中提取初始父资源和随后的附加资源作为执行网络事务的一部分。网络浏览器是这种应用120的示例,而请求并呈现网页(这是父资源的示例)是这种网络事务的示例。媒体播放器是这种应用120的另一个示例,而请求和使用媒体清单(这是父资源的另一示例)是网络事务的另一个示例。
如将看到的,预响应高速缓存128、客户端侧预连接模块124、截取器126和生成信息高速缓存122可以与服务器侧预连接模块152一起工作,并且在一些实施例中与提示服务154一起工作,以从一个或多个主机服务器150引出预连接响应,并将预连接响应预置在网络140的客户端侧,使得当客户端装置102稍后生成指向同一主机服务器150的实际连接请求时,以先前由主机服务器150生成的预连接响应的形式的有效连接响应已经被高速缓存在网络140的客户端侧。
在图1中,预响应高速缓存128、客户端侧预连接模块124、截取器126和生成信息高速缓存122被示为客户端装置102a的模块。在其他实施例中,这些模块中的一个或多个可以替代地位于独立的计算装置中,例如客户端装置102a所连接到的客户端代理装置130。例如,在一些实施例中,预连接模块124、截取器126和/或预响应高速缓存128可以位于客户端代理装置130中,所述客户端代理装置130与客户端装置102a分离,但仍然位于网络140的客户端侧。虽然未示出,但客户端装置102b可以如客户端装置102a那样配置。
网络140可以包括互连计算装置的单个网络、多个互连的单个网络等。例如,网络140可以包括一个或多个局域网(LAN)、广域网(WAN)等。组成网络140的各个网络可以是公共的和/或专用的。全部或部分网络140可以是全球网络(也就是公共互联网)的一部分。在一些实施例中,网络140可以是公共互联网。
网络140可以是包括诸如路由器、交换机、网桥等的多个互连装置的分组交换网络。这样,网络140可以通过将数据包从一个装置通过网络140路由到另一个装置,将一个装置(例如客户端装置102a)互连到另一个装置(例如主机服务器150a)。此外,可以使用已知的网络协议来创建网络装置(例如客户端装置102a和150a)之间的持续连接。例如,可以通过一个装置(例如客户端装置102a或102b、主机服务器150a至c,和/或托管服务器侧预连接模块152和提示服务154的装置或多个装置)的套接字和这些装置的另一个的套接字之间的网络140建立连接。无论如何,可以根据包括用于设立和建立持续连接的对应握手过程的要求的网络协议来建立连接。这种协议的示例包括超文本传输协议(HTTP)或超文本传输安全协议(HTTPS)。在一些实施例中,可以根据诸如安全套接层(SSL)或传输层安全(TLS)协议的安全连接协议来建立连接。在一些实施例中,安全连接可以是数据传输通道。
主机服务器150可以通过网络140存储网络资源、服务等并将其提供给其他实体(例如客户端装置102)。主机服务器150的示例包括网页服务器、媒体服务器、电子邮件服务器、文件传输协议(FTP)服务器等。主机服务器150可能提供的资源或服务的示例包括网页、图像、音频文件、视频文件、文本文件、流式内容等。
提示服务154可以被配置为提供可用于加速网络事务的执行的服务。在一些实施例中,每次订阅提示服务154的装置(例如客户端装置102b)完成网络事务时,提示服务154收集关于网络事务的信息并且生成提示,该提示随后可被另一订阅装置(例如客户端装置102a)使用来更有效地并且因此通常在更短的时间内执行相同的网络事务。服务器侧预连接模块152可被配置为从提示服务154接收针对特定网络事务的提示并预连接提示中标识的主机服务器150。因此,这些提示可以包括对客户端装置102在执行网络事务时可能或将需要连接的主机服务器150的标识。
虽然未在图1中示出,但服务器侧预连接模块152和提示服务154可以停留在一个计算装置或多个计算装置上。例如,服务器侧预连接模块152可以停留在代理服务器(图1中未示出)上,并且提示服务154可以停留在提示服务器(图1中未示出)上。图4A和4B中示出了前述的示例。在其他示例中,服务器侧预连接模块152和提示服务154可以停留在同一计算装置上(图1中未示出)。图6A至6C示出了示例。无论如何,服务器侧预连接模块152和提示服务154可以位于通信链路142的服务器侧。
当客户端装置102a的应用120已经或预期开始执行其将连接到一个或多个主机服务器150的网络事务时,服务器侧预连接模块152可以从提示服务154接收标识这些主机服务器的提示。当服务侧预连接模块152在提示中遇到对这种主机服务器(例如150c)的标识或以其他方式检测到指示客户端装置102a将尝试连接到主机服务器150c的可能性的事件时,服务器侧预连接模块152可以从主机服务器150c引出预连接响应,其足以成为对来自客户端装置102a的未来连接请求的完整有效响应。服务器侧预连接模块152可以通过生成遵从用于建立持续连接的握手协议的预连接请求来做到这点。也就是说,服务器侧预连接模块152可以生成连接请求,该连接请求以相关特性模仿将由客户端装置102a生成的连接请求。然后,当主机服务器150c以连接响应作出响应时,服务器侧预连接模块152可以发送连接响应(有时在本文中被称为“所引出的预连接响应”或简单地称为“预连接响应”)到客户端装置102a(例如预连接模块124),其可以例如在预响应高速缓存128中本地存储所引出的预连接响应。
服务器侧预连接模块152可以通过例如得知客户端装置102和主机服务器150使用的一个或多个握手协议来生成遵从性预连接请求。作为另一个示例,用于生成预连接请求的信息可以在提示中。
预连接请求可以包括将客户端装置102a标识为请求装置的标识符,并且预连接请求可以被寻址到主机服务器150c。在一些实施例中,预连接请求还包括随机生成的值。例如,为了遵从用于建立安全连接的一些握手协议,预连接请求可以包括随机生成数。可以包括随机数的连接请求中的字段的用于建立安全连接的协议的示例包括遵从SSL或TLS的协议。ClientHello消息是可以包括随机生成数的连接请求的示例。
至少当预连接请求包括随机生成值时,服务器侧预连接模块152不仅向客户端侧预连接模块124发送从主机服务器150c中引出的预连接响应,还发送生成信息,其包含足够让客户端装置102a稍后生成与用于引出预连接响应的预连接请求实质上相同的连接请求的信息。这样的信息可以至少包括预连接请求中包含的随机值。现在已经接收到从主机服务器150c引出的预连接响应和指示如何生成预连接请求的生成信息,客户端侧预连接模块124便将该信息分别本地存储在预响应高速缓存128和生成信息高速缓存122中。
随后,当应用120遇到对建立与主机服务器150的连接的需要时(例如在执行网络事务时),应用120通过生成连接请求并将其发送给主机服务器(例如150c)来发起握手过程。在一些实施例中,应用120可以首先确定先前存储在生成信息高速缓存122中的生成信息是否对应于主机服务器150c。如果连接握手协议调用连接请求中的随机值,并且关于生成预连接请求的信息被本地存储在生成信息高速缓存122中,应用120则可以生成具有与在预连接请求中使用的相同的随机值的连接请求。如果在生成信息高速缓存122中没有对应于主机服务器150c的生成信息,应用120则像平常那样生成连接请求。无论生成连接请求的方式如何,应用120都将连接请求发送到对应的主机服务器150c。
截取器126截取来自应用120的连接请求,并确定每个连接请求是否对应于预响应高速缓存128中的预连接响应。如果是的话,截取器126则以高速缓存的预连接响应来响应所截取的连接请求。因为高速缓存的预连接响应是先前从主机服务器150c引出的有效响应,所以只要满足到其他要求,应用120将接受高速缓存的预连接响应作为来自主机服务器150c的有效响应,并且将继续握手过程,例如通过向主机服务器150c发回附加响应。由于高速缓存的预连接响应因此是对应用120的连接请求的有效响应,所以截取器126可以丢弃所截取的连接请求。另一方面,如果截取器126在预响应高速缓存128中没有找到对应于所截取的连接请求的预连接响应,截取器126则将所截取的连接请求转发到对应的主机服务器150c,其可以然后根据握手协议以连接响应进行响应。
图2示出了适合在图1的系统100中使用的示例性计算装置200。客户端装置102和/或主机服务器150中的任何一个或多个可以包括与图2的计算装置200相同或相似的计算装置。类似地,如果客户端代理130被包括在系统100中,则客户端代理130可以在像装置200那样的计算装置上操作。类似地,提示服务154和服务器侧预连接模块152可以在一个或多个不同的计算装置(例如200)上操作。
如图所示,计算装置200包括处理器210、存储器220、网络接口230、显示器240,以及一个或多个用户输入装置250。这些部件中的每一个都通过一个或多个通信总线260与其他部件通信。图2中示出的计算装置200仅仅是一个示例,并且许多变化是可能的。例如,尽管图2中的示例包括用户输入装置250和显示器240,但是这样的部件是可选的,并且在一些示例中可能不存在,例如在一些示例中用作服务器,例如主机服务器150和提示服务140和/或服务器侧预连接模块152位于的一个或多个服务器。
合适的网络接口230可以使用无线以太网,包括802.11a、g、b或n标准。在一个示例中,网络接口230可以使用射频(RF)、蓝牙、CDMA、TDMA、FDMA、GSM、Wi-Fi、卫星或其他蜂窝或无线技术进行通信。在其他示例中,网络接口230可以通过有线连接进行通信,并且可以与一个或多个网络(例如以太网、令牌环、USB、火线1394、光纤等)进行通信。
存储器220和处理器210可以是使得计算机可读指令(例如软件、微码、固件等)作为非瞬态信号被存储在存储器220中的任何配置。这样的指令可以使处理器210执行一个或多个功能、方法等。例如,这样的指令可以使处理器210执行图3的方法300、图8的方法800和/或图10的方法1000中的任一个的全部或一部分。可选地,计算装置200的任何配置或实例可以包括使得计算装置200执行前述方法的全部或任何部分的硬连线逻辑(未示出)。作为另一替代方案,计算装置200的任何配置或实例可包括存储在存储器220中的可由处理器210执行的计算机可读指令和使计算装置200执行前述方法的全部或任何部分的硬连线逻辑(未示出)的组合。
如上所述,每个客户端装置102、客户端代理130(如果存在)以及服务器侧预连接模块152和提示服务154在其上操作的一个或多个计算装置可以包括一个或多个计算装置,如装置200。因此,每个应用120、客户端侧预连接模块124、截取器126、服务器侧预连接模块152和/或提示服务154可以包括硬连线逻辑(未示出)和/或存储在存储器220中的非瞬态计算机可读指令,该非瞬态计算机可读指令可以由诸如200的一个或多个计算装置中的处理器210执行。类似地,预响应高速缓存128和生成信息高速缓存122可以是存储器220或者一个或多个像200的计算装置的类似存储器(未示出)的一部分。
图3示出了用于将客户端装置(例如102a)预连接到主机服务器(例如,150c)的方法300的示例,其中通过从主机服务器150c引出预连接响应,并将预连接响应预置在网络140的客户端侧。如将参照图8的方法800和图10的方法1000所看到的那样,预置的预连接响应可以是对客户端装置102a稍后对主机服务器150c的实际连接请求的完整且有效的响应。
为了便于说明和讨论,方法300被描述为在图1的系统100上执行,其中客户端装置102a被预期发起与主机服务器150c的未来连接握手。提供并讨论了分别在图4A至5和6A至7中示出的方法300的操作的两个示例。然而,方法300不限于在系统100上执行,方法300也不限于客户端装置102a被预期发起与主机服务器150c的连接。方法300也不限于图4A至7所示的例子。
在框308,遇到了一个或多个标识符,这些标识符指示客户端装置102a在将来的某个时间点将发起与主机服务器150c的连接握手的可能性、概率或确定性。这样的指标符可以采取许多可能的形式中的任何一种,并且可以出现在几种可能情况中的任何一种情况下。
例如,如框302至306所示,可以在客户端装置102将要或预期执行的网络事务的提示中找到指示符。
在框302,系统100中发生事件,该事件触发对提示服务154请求特定网络事务的提示的请求。事件可以是指示客户端装置102a具有、可能或大概将发起网络事务的任何事件。
以下是可以触发客户端装置102a对提示服务154明确请求特定网络事务的提示的事件的示例。装置102a的用户使用应用120之一(例如网络浏览器),选择特定网页或资源的统一资源定位符(URL)。作为另一示例,触发可以是指示用户将选择特定网页或资源的URL的概率的动作。这种动作的示例是用户输入装置的光标悬停在客户端装置102a上的URL的可选择显示上。另一个示例是因为用户的浏览历史记录而表明用户选择URL的可能性的动作。例如,浏览历史记录可以指示用户通常在开启客户端装置102a,启动其中一个应用120等之后或不久之后选择URL。在前述示例中,呈现或以其他方式执行由URL标识的一个或多个资源是客户端装置102a预期执行的网络事务的示例。
可以触发另一个系统100装置从提示服务154请求提示的事件的示例包括以下事件。客户端装置102a对域名系统(DNS)服务器的请求。代理服务器402可以检测到DNS请求,然后向提示服务154发送与DNS请求相关联的网络事务的提示请求。作为另一示例,即使客户端装置102a自身未被配置为从提示服务154请求提示,代理服务器402也可以检测客户端装置102a向主机服务器150a请求特定URL或资源的请求,然后代理服务器402可以从提示服务154请求与对应于所请求的URL或资源的网络事务相关联的提示。
在框304,响应于在框302检测到的触发,将与特定网络事务相关联的提示的请求发送到提示服务154。对提示的请求可以源自包括客户端装置102a、客户端代理130、预连接模块152等的多个可能源中的任何一个。
在框306,假设提示服务154具有网络事务的提示,提示服务154发送该提示。提示服务154可以将提示发送给包括客户端装置102a、客户端代理130、服务器侧预连接模块152等的多个可能实体中的任何实体。如将看到的,在框320,可以将提示转发到客户端装置102a,如图所示,这可以在从提示服务154接收到提示之后的过程300期间的任何时间执行。
除了其他方面,提示可以标识预期客户端装置102a作为执行网络事务的一部分连接的主机服务器。因此处理提示文件和遇到对主机服务器的这种标识是框308中遇到连接指示符的一个示例。作为示例,框308可以包括客户端装置102a本身,指示它可以或将会建立与主机服务器150c的未来连接。例如,客户端装置102a可以向服务器侧预连接模块152发送预连接消息,这因此可以是在框308可以遇到连接指示符的另一示例。
回到框308,注意到框308可以由包括服务器侧预连接模块152的多个可能实体执行。替代地,框308的全部或部分可以由客户端代理130或客户端装置102a(例如客户端侧预连接模块124、应用120之一等)执行。
现在对于在框308遇到的每个连接指示符执行框310至318。现在针对客户端装置102a将尝试建立与主机服务器150c的未来连接的指示符的示例来讨论那些框。
在框310,生成了遵从握手协议的预连接请求以发起与主机服务器150的连接。例如,代表客户端装置102a生成预连接请求,并将其寻址到主机服务器150c。可以说预连接请求模仿实际连接请求,因为这样的请求将由客户端装置102a生成。
可以通过根据客户端装置102与主机服务器150之间的预先约定的握手协议生成遵从初始连接请求的要求的预连接请求来执行框310。如上所述,一些协议要求在初始连接请求中包含随机值(例如随机生成数)。ClientHello是遵从SSL或TLS协议的初始连接请求的示例,并且ClientHello通常包含用于随机生成数的字段。框310因此可以包括生成随机数并且将该随机数包括在预连接请求中。
在框312,将关于生成预连接请求的信息提供给客户端装置102a的客户端侧预连接模块124,其可以将生成信息存储在高速缓存122中。替代地,可以将生成信息提供给应用120,其将生成信息存储在生成信息高速缓存122中。无论如何,如将会看到的,客户端装置102a可以使用该信息来生成与预连接请求实质上相同的稍后的实际连接请求。
生成信息可以采用多种形式中的任何一种。例如,如果预连接请求包括一个或多个随机值字段,生成信息则可以是所生成的随机值并且包括在框310生成的预连接请求中。因此,如果在框310生成的预连接请求是ClientHello消息,生成信息则可以包括包含在ClientHello消息中的随机数。在一些实施例中,生成信息可以是预连接请求本身的一部分或全部。
在框312,生成信息可以以任何数量的可能方式被发送到客户端装置102a。例如,如果在框308遇到的连接指示符在所请求提示中被找到作为块302至306的一部分,则可以将生成信息添加到从提示服务154接收到的提示(参见框306)。因此,在这样的实施例中,框312因此可以作为在框320处向客户端设备102a发送提示的一部分来完成。作为另一示例,可以将生成信息直接发送到客户端装置102a(或代理客户端130),而不是在提示中作为框320的一部分。无论如何,可以将生成信息高速缓存在客户端装置102a的生成信息高速缓存122中。
在框314,将在框310生成的预连接请求发送到对应的主机服务器150c。如上所述,预连接请求与由客户端装置102a生成的连接请求实质上相同。因此,预连接请求模仿来自客户端装置102a的实际连接请求。当主机服务器150c接收到预连接请求时,它以预连接响应进行响应,该预连接响应与响应于来自客户端装置102a的实际连接请求而生成的连接响应实质上相同。例如,如果在框310生成的预连接请求是遵从SSL/TLS协议的ClientHello消息,作为框316的一部分由主机服务器150c生成的预连接响应则是遵从同一协议的ServerHello消息。
在框316,从主机服务器150c接收预连接响应,并且在框318可以将块316的预连接响应预置在网络140的客户端侧。例如,可以通过将在框316接收到的预连接响应发送到客户端侧预连接模块124来执行框318,所述客户端侧预连接模块124可以将预连接响应本地存储在客户端装置102a的预响应高速缓存128中。
在一些实施例中,框308至318可以由服务器侧预连接模块152执行。在其他实施例中,框308至318中的一个或多个可以由系统100的另一个实体部分或全部执行,例如客户端装置102a的客户端侧预连接模块124、客户端装置102a中的一个或多个应用120等。
此时,方法300代表客户端装置102a生成遵从握手协议的预连接请求以与主机服务器150c建立连接。主机服务器150c已经将预连接请求作为来自客户端装置102a的连接请求处理,并使用同样遵从握手协议的预连接响应来进行响应。已经在网络140的客户端侧存储了来自主机服务器150c的预连接响应和足以使客户端装置102a稍后生成实际连接请求的信息,所述实际连接请求与预连接请求实质上相同。如上所述,可以为作为框308的一部分遇到的每个连接指示符重复框310至318,其可以在客户端装置102a从多个服务器150引出并预置预连接响应。
如在讨论图8和图10的方法800和1000时将看到的,当客户端装置102a稍后试图发起与主机服务器150c的实际连接时,客户端装置102a可以使用本地存储的预连接请求生成信息来生成与预连接请求实质上相同的实际连接请求。然后,本地存储的预连接响应可以是对实际连接请求的完整响应,从而避免了实际请求通过网络(包括链路142)到达主机服务器150c,主机服务器150c生成连接响应,以及连接响应通过网络到达客户端装置102a的需要,并因此节省了时间。
在转到图8和10的方法800和1000之前,讨论了图300的方法300的操作在图4A至5和图6A至7中分别所示的两个示例。
图4A至5示出了方法300的操作的第一示例,其中系统100被配置有代理服务器402上的预连接模块152和不同的提示服务器404上的提示服务154。在第一示例中,代理服务器402可以“窥探”去往和来自提示服务器404和/或网络140上其他装置(例如一个或多个主机服务器150)的通信。
如图4A和5所示,在第一示例中,代理服务器402中的预连接模块152遇到连接指示符410(图3的框308),其指示客户端装置102a被预期发起与主机服务器150c的未来连接握手。连接指示符140可以是以上参照框308讨论的任何示例。也如图4A和图5所示,服务器侧预连接模块152通过生成预连接请求420(图3的框310和314的示例)并将其发送到主机服务器150c来进行响应。而且,如图所示,服务器侧预连接模块152向客户端装置102a提供指示如何生成预连接请求420的生成信息422(框312的示例),其可以本地存储在客户端装置102a的生成信息高速缓存122中。
如图4B和5所示,主机服务器150c以由服务器侧预连接模块152接收的预连接响应430(框316的示例)作出响应,并将其发送到客户端装置102a的预连接模块124,其中预连接响应430可以被存储在预响应高速缓存128中(框318的示例)。
如图5最佳所示,已经以预连接请求420从主机服务器150c引出了预连接响应430。预连接响应430已经存储在客户端装置102a本地的预响应高速缓存128中,并且指示如何生成与预连接请求420实质上相同的连接请求的信息422已经被存储在客户端装置102a本地的生成信息高速缓存122中。
图6A至7说明了方法300的操作的第二示例,其中系统100在同一服务器装置602上配置有预连接模块152和提示服务154。在前述配置中,客户端装置102和提示服务器602之间的通信可以被加密。
如图6A和7所示,在第二示例中,客户端装置102a通过从主机服务器(例如150a)请求632父资源(例如网页)来发起网络事务。几乎同时,客户端装置102a可以向提示服务154发送对网络事务的提示的请求612。提示服务154通过向预连接模块152提供所请求的提示614来进行响应。(以上是框302至306的方法300的操作的示例。)
如上所述,除了其他元素,提示614可以包括对客户端装置102a被预期与之建立连接作为网络事务的一部分的主机服务器的标识。在第二示例中,预连接模块152在提示614中找到客户端装置102a被预期尝试建立与主机服务器150c的未来连接的指示。(这是图3的框308的示例。)如图6B和7所示,预连接模块152因此代表客户端装置102a向主机服务器150c生成预连接请求620。预连接模块152还将指示如何生成预连接请求620的生成信息622插入到提示614中,并且预连接模块152将具有插入的生成信息622的提示614发送到客户端装置102a(这是图3中框310、312和320的示例)。同样如图6B和7所示,预连接模块152将预连接请求620发送到主机服务器150c(图3的框314的示例)。如图6C和图7所示,主机服务器150c以预连接响应630作出响应,该预连接响应630被转发到客户端装置102a,其中它可以被存储在预响应高速缓存128中(图3的框316和318的示例)。同时,主机服务器150a通过将父资源634发送到客户端装置102a来响应于父资源的请求632(参见图6A)。
如图7中最佳所见,已经以预连接请求620从主机服务器150c引出了预连接响应630。预连接响应630已经存储在网络140的客户端侧的预响应高速缓存128中,并且指示如何生成与预连接请求620实质上相同的连接请求的信息622已经被存储在网络140的客户端侧的生成信息高速缓存122中。
如上所述,图8和图9示出了方法800和900的示例,客户端装置102a(和/或客户端代理130,如果其包括在系统100中的话)通过所述方法利用来自主机服务器150的预置的预连接响应来加速建立与主机服务器的连接。为了便于说明和讨论,方法800和900被描述为在图1的系统100上执行,其中客户端装置102a利用通过方法300预置的预连接请求来加速建立与主机服务器150c的连接。在图9中继续图4A至5和6A至7中所示的两个例子,示出了图4A至5的例子1和图6A至7的例子2的方法800和900的操作。然而,方法800和方法900都不限于在系统100上执行。同样,方法800和900都不限于客户端装置102a建立与主机服务器150c的连接。方法800和900也不限于图9所示的示例。
如框802所示,事件触发客户端装置102a发起握手过程以建立与主机服务器150c的实际连接。框802中的触发事件可以是导致客户端装置102a寻求与主机服务器150c的持续连接的任何事件。例如,作为执行图3的框302中所述的网络事务(例如呈现网页,播放在清单中标识的媒体对象的片段等)的一部分,客户端装置102a可能遇到指令,该指令直接或间接地导致客户端装置102a发起与主机服务器150c的连接。一示例是从主机服务器150c提取资源的指令。这种指令可以采用URL的形式。
在框804,方法800确定对主机服务器150c的连接请求的生成信息是否本地存储在客户端装置102a。例如,方法800可以确定对主机服务器150c的预连接请求的生成信息是否被存储在客户端装置102a的生成信息高速缓存122中。任何这样的生成信息已经被提供给客户端装置102a作为图3的框312的一部分。
如果框804的所述确定为「是」的话,方法800则在框806分支到框808,其中方法800利用生成信息来生成对主机服务器150c的连接请求。如上所述,生成信息足以生成与先前在图3的框310中生成并用于从主机服务器150c引出预连接响应的预连接请求实质上相同的连接请求。同样,如所指出的,如果握手协议在连接请求中包括随机值字段,生成信息则包含先前使用的随机生成值,其在框808用于生成具有相同随机生成值的连接请求。
如果框804的所述确定为「否」,方法800则在框806分支到框810,其中方法800根据相关连接协议的握手要求而生成对主机服务器150c的连接请求。
方法800从框808或框810进行到框812,其中方法800将在框808或810生成的连接请求发送到主机服务器150c。方法900的方框902截取连接请求,并在方框904确定是否存在与所截取的连接请求相对应的本地存储的预连接响应。例如,方法900可以确定存储在预响应高速缓存128中的预连接响应是否对应于所截取的连接请求。
方法900可以以多种方式中的任何一种将所截取的连接请求与存储在预响应高速缓存128中的预连接响应进行匹配。例如,方法900可以将在框902截取的连接请求的全部或一部分(例如随机值)与存储在预响应高速缓存128中的预提取响应的对应部分进行比较。例如,方法900可以将所截取的连接请求中的字段中的一个或多个值与预响应高速缓存128中的预连接响应中的对应或互补字段中的值进行比较。例如,如果以下一个或多个是真确的,方法900则可以在方框804确定所截取的连接请求对应于高速缓存的预连接响应:所截取的连接请求的目的地网络(例如互联网协议(IP))地址与预响应高速缓存128中的预连接响应的源网络(例如IP)地址相匹配,所截取的连接请求的目的地套接字号与预响应高速缓存128中的源套接字号相匹配等。
如果方法900在框904找到与所截取的连接请求相对应的高速缓存的预连接响应,方法900则在框906分支到框908,其中方法900向客户端装置102a提供对应的预连接响应作为对所截取的连接请求的完整且完全遵从的连接响应。因此,在框912,方法900可以丢弃所截取的连接请求。
然而,如果方法900在方框904未找到对应的高速缓存的预连接响应,方法900则在框906分支到框910,其中方法900将所截取的连接响应转发给主机服务器150c。虽然图中未示出,但主机服务器150c将接收连接请求并以连接响应进行响应。
回到图8的方法800,在框814,方法800在框812接收对发送到主机服务器150c的连接请求的响应。因此,在框814接收到的响应是方法900在框908提供的高速缓存的预连接响应,或是主机服务器150c响应于在图9的框910被转发到主机服务器150c的所截取连接请求而生成的连接响应。
在框816,方法800确定所接收的连接响应是否有效并且遵从相关的握手协议。如果框816的所述确定为「是」的话,方法800则在框820继续进行连接握手过程,并且假定握手过程中的任何附加步骤成功,完成握手并且因此建立与主机服务器150c的持续连接。如果框816的所述确定为「否」,方法800则在框822中断握手过程。结果,没有与主机服务器150c建立连接。
图10参照图4A至7中所示和上面讨论的第一和第二示例示出了方法800和900的操作。如以上所讨论的以及在图5和7中所示出的,方法300在第一示例和第二示例中的操作将来自主机服务器150c的预连接响应(实例1中的430和实例2中的630)预置在客户端装置102a的预响应高速缓存128或客户端代理130中,并且在客户端装置102a的生成信息高速缓存122中存储了指示如何生成引出预连接响应的预连接请求的生成信息(示例2中的422和示例2中的622)。
在图10中,示出了触发客户端装置102a发起与主机服务器150c的连接握手的事件1002。在示例1中,事件1002未被指定,但可以是会导致客户端装置102a尝试建立与主机服务器150c的连接的任何事件。在示例2中,事件1002是客户端装置102a在父资源634(见图6C和7)中遇到从主机服务器150c提取资源的指令(例如URL)。无论如何,图10中的事件1002是图8的框802的示例。
在图8的框804,在示例1中,方法800在生成信息高速缓存122中找到关于对主机150c的预提取请求422的生成信息。在示例2中,方法800找到对主机150c的预提取请求622的生成信息。因此,在示例1和2中,方法800分支到框808,其中方法800使用生成信息422或622来生成与预连接请求422(示例1)或预连接请求622(例子2)实质上相同的连接请求1004。在框812,方法800将连接请求1004发送到主机服务器150c。图9的方法900然后在框902截取连接请求。在框904,方法900在预连接响应高速缓存128中找到示例1中的对应预连接响应430或示例2中的630并且分支到框908,其中方法900向客户端装置102a提供预连接响应430/630,作为对在框912被丢弃的所截取的连接请求1004的完整响应。
尽管在本说明书中已经描述了特定实施例和应用,但是这些实施例和应用仅是示例性的,并且许多变化是可能的。除了任何之前指出的修改之外,本领域技术人员可以在不脱离本说明书的精神和范围的情况下,设计出许多其他变型和替代布置,而所附权利要求书旨在覆盖这些修改和布置。因此,尽管上面已经结合目前被认为是最实际和优选的方面的具体细节描述了信息,但是许多修改(包括但不限于形式、功能、操作和使用的方式)对于本领域的普通技术人员而言是显而易见的,而不脱离这里阐述的原理和概念。而且,如本文所用,示例仅旨在说明,而不应被解释为以任何方式进行限制。
Claims (38)
1.一种加速设置通过客户端装置和远程主机服务器之间的网络的持续连接的方法,其中建立连接需要客户端装置的连接请求和远程主机服务器的对应的连接响应,所述方法包括:
在预连接模块处从提示服务接收针对客户端装置预期执行的网络事务的提示,其中所述提示包括用于生成预连接请求的信息;
由预连接模块代表客户端装置生成预连接请求;
向远程主机服务器发送预连接请求;
在预连接模块从远程主机服务器接收响应于预连接请求的预连接响应;和
发送预连接响应以便被预置在网络的客户端侧。
2.根据权利要求1所述的方法,其中预连接请求模仿客户端装置的实际连接请求。
3.根据权利要求2所述的方法,其中:
预连接请求包括将客户端装置标识为请求者的标识符,并且
预连接响应被寻址到客户端装置。
4.根据权利要求1所述的方法,其中预连接请求是与远程主机服务器安全连接的请求。
5.根据权利要求1所述的方法,其中在预连接模块接收由客户端装置生成的与远程主机服务器连接的实际连接请求之前执行所述预置。
6.根据权利要求1至5中任一项所述的方法,其中网络包括客户端装置和远程主机服务器之间的卫星链路。
7.根据权利要求1至5中任一项所述的方法,其中生成预连接请求是响应于触发而执行的,所述触发指示客户端装置被预期执行包括从远程主机服务器提取资源的网络事务。
8.根据权利要求7所述的方法,其中:
客户端装置包括网络浏览器,
网络事务包括网络浏览器呈现网页,以及
网页包括从远程主机服务器提取资源的指令。
9.权利要求8所述的方法,其中:
网页存储在位于网络的服务器侧的网络服务器上,并且
主机服务器与网络服务器不同。
10.一种加速设置通过客户端装置和远程主机服务器之间的网络的持续连接的方法,其中建立连接需要客户端装置的连接请求和远程主机服务器的对应的连接响应,所述方法包括:
由在网络的客户端侧的截取器模块截取由客户端装置针对与远程主机服务器连接所生成的用以通过网络建立持续连接的连接请求;
由截取器模块确定来自远程主机服务器的用以建立持续连接的预连接响应是否存储在网络的客户端侧并且对应于所截取的连接请求;和
响应于确定来自远程主机服务器的预连接响应被存储在网络的客户端侧并且对应于所截取的连接请求,向客户端装置提供预连接响应作为对所截取的连接请求的完整响应,并且丢弃所截取的连接请求。
11.根据权利要求10所述的方法,还包括:响应于确定来自远程主机服务器的预连接响应未被存储在网络的客户端侧或者不对应于所截取的连接请求,通过网络将所截取的连接请求转发到远程主机服务器。
12.根据权利要求10所述的方法,其中如果所述预连接响应的源和所截取的连接请求的目的地都是远程主机服务器,则所述确定是肯定的。
13.根据权利要求10所述的方法,其中如果是以下情况,则所述确定是肯定的:
预连接响应的源网络地址和所截取的连接请求的目的地网络地址为远程主机服务器的网络地址;和
与预连接响应的源网络地址相关联的套接字匹配与所截取的连接请求中的目的地网络地址相关联的套接字。
14.根据权利要求10至13中任一项所述的方法,还包括:
由客户端装置生成连接请求;和
由客户端装置发送寻址到远程主机服务器的连接请求。
15.根据权利要求10至13中任一项所述的方法,其中连接请求是与远程主机服务器安全连接的请求。
16.根据权利要求10至13中任一项所述的方法,其中网络包括客户端装置和远程主机服务器之间的卫星链路。
17.根据权利要求10至13中任一项所述的方法,其中:
客户端装置包括网络浏览器,
连接请求是来自呈现网页的网页浏览器,并且
网页包括从远程主机服务器提取资源的指令。
18.根据权利要求17所述的方法,其中:
网页存储在位于网络的主机服务器侧的网络服务器上,并且
远程主机服务器与网络服务器不同。
19.一种用于加速设置通过客户端装置和远程主机服务器之间的网络的持续连接的设备,其中建立连接需要客户端装置的连接请求和远程主机服务器的对应的连接响应,所述设备包括:
处理器电路;和
存储有指令的非瞬态数字存储,所述指令使处理器电路:
从提示服务接收针对客户端装置预期执行的网络事务的提示,其中所述提示包括用于生成预连接请求的信息;
代表客户端装置生成预连接请求;
向远程主机服务器发送预连接请求;
从远程主机服务器接收响应于预连接请求的预连接响应;和
发送预连接响应以便被预置在网络的客户端侧。
20.根据权利要求19所述的设备,其中预连接请求模仿客户端装置的实际连接请求。
21.根据权利要求20所述的设备,其中:
预连接请求包括将客户端装置标识为请求者的标识符,并且
预连接响应被寻址到客户端装置。
22.根据权利要求19所述的设备,其中预连接请求是与远程主机服务器安全连接的请求。
23.根据权利要求19所述的设备,其中在接收由客户端装置生成的与远程主机服务器连接的实际连接请求之前执行所述预置。
24.根据权利要求19至23中任一项所述的设备,其中网络包括客户端装置和远程主机服务器之间的卫星链路。
25.根据权利要求19至23中任一项所述的设备,其中生成预连接请求是响应于触发而执行的,所述触发指示客户端装置被预期执行包括从远程主机服务器提取资源的网络事务。
26.根据权利要求25所述的设备,其中:
客户端装置包括网络浏览器,
网络事务包括网络浏览器呈现网页,并且
网页包括从远程主机服务器提取资源的指令。
27.根据权利要求26所述的设备,其中:
网页存储在位于网络的服务器侧的网络服务器上,并且
主机服务器与网络服务器不同。
28.一种设置在通信网络的客户端侧的设备,用于加速设置通过客户端装置和远程主机服务器之间的网络的持续连接,其中建立连接需要客户端装置的连接请求和远程主机服务器的对应的连接响应,所述设备包括:
处理器电路;和
存储有指令的非瞬态数字存储,所述指令使处理器电路:
截取由客户端装置针对与远程主机服务器连接所生成的用以通过网络建立持续连接的连接请求;
确定来自远程主机服务器的用以建立持续连接的预连接响应是否存储在网络的客户端侧并且对应于所截取的连接请求;和
响应于确定来自远程主机服务器的预连接响应被存储在网络的客户端侧并且对应于所截取的连接请求,向客户端装置提供预连接响应作为对所截取的连接请求的完整响应,并且丢弃所截取的连接请求。
29.根据权利要求28所述的设备,其中所述非瞬态数字存储还存储有指令,该指令使处理器电路:响应于确定来自远程主机服务器的预连接响应未被存储在网络的客户端侧或者不对应于所截取的连接请求,通过网络将所截取的连接请求转发到远程主机服务器。
30.根据权利要求28所述的设备,其中如果所述预连接响应的源和所截取的连接请求的目的地都是远程主机服务器,则对于来自远程主机服务器的预连接响应是否存储在网络的客户端侧并且对应于所截取的连接请求的确定是肯定的。
31.根据权利要求28所述的设备,如果是以下情况,则对于来自远程主机服务器的预连接响应是否存储在网络的客户端侧并且对应于所截取的连接请求的确定是肯定的:
预连接响应的源网络地址和所截取的连接请求的目的地网络地址为远程主机服务器的网络地址;和
与预连接响应的源网络地址相关联的套接字匹配与所截取的连接请求中的目的地网络地址相关联的套接字。
32.根据权利要求28至31中任一项所述的设备,其中方法还包括:
由客户端装置生成连接请求;和
由客户端装置发送寻址到远程主机服务器的连接请求。
33.根据权利要求28至31中任一项所述的设备,其中连接请求是与远程主机服务器安全连接的请求。
34.根据权利要求28至31中任一项所述的设备,其中网络包括客户端装置和远程主机服务器之间的卫星链路。
35.根据权利要求28至31中任一项所述的设备,其中:
客户端装置包括网络浏览器,
连接请求是来自呈现网页的网页浏览器,并且
网页包括从远程主机服务器提取资源的指令。
36.根据权利要求35所述的设备,其中:
网页存储在位于网络的主机服务器侧的网络服务器上,并且
远程主机服务器与网络服务器不同。
37.一种存储一个或多个程序的非瞬态计算机可读存储介质,所述一个或多个程序包括指令,当所述指令由电子设备的一个或多个处理器执行时使所述电子设备执行根据权利要求1-9中任一项所述的方法。
38.一种存储一个或多个程序的非瞬态计算机可读存储介质,所述一个或多个程序包括指令,当所述指令由电子设备的一个或多个处理器执行时使所述电子设备执行根据权利要求10-18中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562263241P | 2015-12-04 | 2015-12-04 | |
US62/263,241 | 2015-12-04 | ||
PCT/US2016/064778 WO2017096269A1 (en) | 2015-12-04 | 2016-12-02 | Accelerating connections to a host server |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108886533A CN108886533A (zh) | 2018-11-23 |
CN108886533B true CN108886533B (zh) | 2021-05-18 |
Family
ID=57610410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680079831.XA Active CN108886533B (zh) | 2015-12-04 | 2016-12-02 | 加速与主机服务器的连接 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11870836B2 (zh) |
EP (3) | EP4243381A3 (zh) |
CN (1) | CN108886533B (zh) |
AU (1) | AU2016364922B2 (zh) |
CA (2) | CA3116663C (zh) |
MX (1) | MX2023003802A (zh) |
WO (1) | WO2017096269A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2016364922B2 (en) | 2015-12-04 | 2019-10-10 | Viasat, Inc. | Accelerating connections to a host server |
US10462265B2 (en) * | 2017-02-17 | 2019-10-29 | Plex, Inc. | On-demand startup of offline servers and connection routing |
US10447811B2 (en) * | 2017-07-18 | 2019-10-15 | Citrix Systems, Inc. | Cloud to on-premises debug service routing |
CN109257747B (zh) * | 2018-11-19 | 2021-10-22 | Tcl移动通信科技(宁波)有限公司 | 移动终端wifi连接处理方法、移动终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993591B1 (en) * | 1998-09-30 | 2006-01-31 | Lucent Technologies Inc. | Method and apparatus for prefetching internet resources based on estimated round trip time |
CN101908071A (zh) * | 2010-08-10 | 2010-12-08 | 厦门市美亚柏科信息股份有限公司 | 一种提高搜索引擎搜索效率的方法及其系统 |
CN102438045A (zh) * | 2011-12-07 | 2012-05-02 | 深圳市深信服电子科技有限公司 | Web页面的预取方法、系统以及访问web页面的方法 |
CN102591963A (zh) * | 2011-12-30 | 2012-07-18 | 奇智软件(北京)有限公司 | 网页内容加载控制方法及装置 |
US9083583B1 (en) * | 2011-07-01 | 2015-07-14 | Google Inc. | Latency reduction via adaptive speculative preconnection |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485609A (en) | 1994-05-20 | 1996-01-16 | Brown University Research Foundation | Online background predictors and prefetchers for locality management |
ATE282922T1 (de) | 1997-08-06 | 2004-12-15 | Tachyon Inc | Verteiltes system und verfahren zum objektvorabholen |
US6085193A (en) | 1997-09-29 | 2000-07-04 | International Business Machines Corporation | Method and system for dynamically prefetching information via a server hierarchy |
US6085226A (en) * | 1998-01-15 | 2000-07-04 | Microsoft Corporation | Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models |
US6055569A (en) | 1998-01-27 | 2000-04-25 | Go Ahead Software Inc. | Accelerating web access by predicting user action |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
JP2000285006A (ja) | 1999-03-31 | 2000-10-13 | Toshiba Corp | 情報取得制御装置及び情報取得制御方法 |
US6721780B1 (en) | 1999-11-09 | 2004-04-13 | Fireclick, Inc. | Predictive pre-download of network objects |
US20010047517A1 (en) | 2000-02-10 | 2001-11-29 | Charilaos Christopoulos | Method and apparatus for intelligent transcoding of multimedia data |
US6947440B2 (en) * | 2000-02-15 | 2005-09-20 | Gilat Satellite Networks, Ltd. | System and method for internet page acceleration including multicast transmissions |
US6622168B1 (en) | 2000-04-10 | 2003-09-16 | Chutney Technologies, Inc. | Dynamic page generation acceleration using component-level caching |
US7058691B1 (en) | 2000-06-12 | 2006-06-06 | Trustees Of Princeton University | System for wireless push and pull based services |
US7113935B2 (en) | 2000-12-06 | 2006-09-26 | Epicrealm Operating Inc. | Method and system for adaptive prefetching |
US7716332B1 (en) | 2001-06-20 | 2010-05-11 | At&T Intellectual Property I, L.P. | System and method for server-based predictive caching of back-end system data |
US7418494B2 (en) | 2002-07-25 | 2008-08-26 | Intellectual Ventures Holding 40 Llc | Method and system for background replication of data objects |
US7331038B1 (en) | 2003-07-02 | 2008-02-12 | Amazon.Com, Inc. | Predictive prefetching to improve parallelization of document generation subtasks |
US8224964B1 (en) | 2004-06-30 | 2012-07-17 | Google Inc. | System and method of accessing a document efficiently through multi-tier web caching |
US7747749B1 (en) * | 2006-05-05 | 2010-06-29 | Google Inc. | Systems and methods of efficiently preloading documents to client devices |
KR100881668B1 (ko) | 2006-11-09 | 2009-02-06 | 삼성전자주식회사 | 웹 페이지 프리페치 장치 및 방법 |
US20080307037A1 (en) * | 2007-06-07 | 2008-12-11 | Yahoo! Inc. | Client Notification Mechanism Over HTTP |
US20100146415A1 (en) * | 2007-07-12 | 2010-06-10 | Viasat, Inc. | Dns prefetch |
US20090112975A1 (en) | 2007-10-31 | 2009-04-30 | Microsoft Corporation | Pre-fetching in distributed computing environments |
US8966011B2 (en) * | 2007-12-28 | 2015-02-24 | Echostar Technologies L.L.C. | Performance enhancing proxy |
US9418171B2 (en) | 2008-03-04 | 2016-08-16 | Apple Inc. | Acceleration of rendering of web-based content |
US9906620B2 (en) | 2008-05-05 | 2018-02-27 | Radware, Ltd. | Extensible, asynchronous, centralized analysis and optimization of server responses to client requests |
US7975025B1 (en) * | 2008-07-08 | 2011-07-05 | F5 Networks, Inc. | Smart prefetching of data over a network |
US9171097B2 (en) | 2009-03-31 | 2015-10-27 | Qualcomm Incorporated | Memoizing web-browsing computation with DOM-based isomorphism |
US9549039B2 (en) | 2010-05-28 | 2017-01-17 | Radware Ltd. | Accelerating HTTP responses in a client/server environment |
US20110029899A1 (en) * | 2009-08-03 | 2011-02-03 | FasterWeb, Ltd. | Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading |
US8078691B2 (en) | 2009-08-26 | 2011-12-13 | Microsoft Corporation | Web page load time prediction and simulation |
US10296653B2 (en) | 2010-09-07 | 2019-05-21 | F5 Networks, Inc. | Systems and methods for accelerating web page loading |
US8478843B1 (en) | 2011-03-01 | 2013-07-02 | IMDB. COM, Inc. | Templates with static parameter caching |
US8510237B2 (en) | 2011-03-15 | 2013-08-13 | Qualcomm Incorporated | Machine learning method to identify independent tasks for parallel layout in web browsers |
US9912718B1 (en) | 2011-04-11 | 2018-03-06 | Viasat, Inc. | Progressive prefetching |
US9146909B2 (en) | 2011-07-27 | 2015-09-29 | Qualcomm Incorporated | Web browsing enhanced by cloud computing |
US8341245B1 (en) | 2011-09-26 | 2012-12-25 | Google Inc. | Content-facilitated speculative preparation and rendering |
US8903946B1 (en) * | 2011-10-25 | 2014-12-02 | Google Inc. | Reduction in redirect navigation latency via speculative preconnection |
US9135364B1 (en) | 2011-11-10 | 2015-09-15 | Google Inc. | Delivery of web pages with markup for speed |
US9325806B2 (en) | 2012-02-24 | 2016-04-26 | Qualcomm Incorporated | Cooperative loading of webpages based on shared meta information |
US9239862B2 (en) | 2012-05-01 | 2016-01-19 | Qualcomm Incorporated | Web acceleration based on hints derived from crowd sourcing |
US9747386B1 (en) | 2012-08-10 | 2017-08-29 | Amazon Technologies, Inc. | User-perceived performance through browser hints |
US10375192B1 (en) * | 2013-03-15 | 2019-08-06 | Viasat, Inc. | Faster web browsing using HTTP over an aggregated TCP transport |
US9843631B2 (en) * | 2013-06-26 | 2017-12-12 | Amazon Technologies, Inc. | Producer system selection |
US20150156194A1 (en) | 2013-12-04 | 2015-06-04 | Symantec Corporation | Certificate status delivery through a local endpoint |
US11176223B1 (en) | 2014-10-21 | 2021-11-16 | Amazon Technologies, Inc. | Page rendering by an intermediary system that uses a truncated library |
AU2016364922B2 (en) | 2015-12-04 | 2019-10-10 | Viasat, Inc. | Accelerating connections to a host server |
-
2016
- 2016-12-02 AU AU2016364922A patent/AU2016364922B2/en active Active
- 2016-12-02 US US15/777,478 patent/US11870836B2/en active Active
- 2016-12-02 EP EP23183337.7A patent/EP4243381A3/en active Pending
- 2016-12-02 WO PCT/US2016/064778 patent/WO2017096269A1/en active Application Filing
- 2016-12-02 CA CA3116663A patent/CA3116663C/en active Active
- 2016-12-02 CN CN201680079831.XA patent/CN108886533B/zh active Active
- 2016-12-02 EP EP16816816.9A patent/EP3384660B1/en active Active
- 2016-12-02 CA CA3006514A patent/CA3006514C/en active Active
- 2016-12-02 EP EP21153965.5A patent/EP3860093B1/en active Active
-
2018
- 2018-05-31 MX MX2023003802A patent/MX2023003802A/es unknown
-
2023
- 2023-11-06 US US18/387,275 patent/US20240073274A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993591B1 (en) * | 1998-09-30 | 2006-01-31 | Lucent Technologies Inc. | Method and apparatus for prefetching internet resources based on estimated round trip time |
CN101908071A (zh) * | 2010-08-10 | 2010-12-08 | 厦门市美亚柏科信息股份有限公司 | 一种提高搜索引擎搜索效率的方法及其系统 |
US9083583B1 (en) * | 2011-07-01 | 2015-07-14 | Google Inc. | Latency reduction via adaptive speculative preconnection |
CN102438045A (zh) * | 2011-12-07 | 2012-05-02 | 深圳市深信服电子科技有限公司 | Web页面的预取方法、系统以及访问web页面的方法 |
CN102591963A (zh) * | 2011-12-30 | 2012-07-18 | 奇智软件(北京)有限公司 | 网页内容加载控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017096269A1 (en) | 2017-06-08 |
CN108886533A (zh) | 2018-11-23 |
EP3860093A1 (en) | 2021-08-04 |
EP3384660B1 (en) | 2021-11-24 |
US11870836B2 (en) | 2024-01-09 |
EP3384660A1 (en) | 2018-10-10 |
CA3116663A1 (en) | 2017-06-08 |
MX2023003802A (es) | 2023-04-10 |
AU2016364922A1 (en) | 2018-06-07 |
EP4243381A3 (en) | 2023-11-15 |
CA3116663C (en) | 2024-03-05 |
CA3006514C (en) | 2021-06-15 |
US20180367645A1 (en) | 2018-12-20 |
US20240073274A1 (en) | 2024-02-29 |
EP3860093B1 (en) | 2023-08-16 |
EP4243381A2 (en) | 2023-09-13 |
CA3006514A1 (en) | 2017-06-08 |
AU2016364922B2 (en) | 2019-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240073274A1 (en) | Accelerating connections to a host server | |
US11140162B2 (en) | Response method and system in virtual network computing authentication, and proxy server | |
US11290487B2 (en) | Method and apparatus for reducing latency of network protocols | |
US20160234307A1 (en) | Data transmission method, device, and system | |
US9699177B2 (en) | Secure transfer of web application client persistent state information into a new domain | |
CN109302437B (zh) | 一种重定向网站的方法和装置 | |
US9736246B1 (en) | Cross-device synchronization system for account-level information | |
US9900368B2 (en) | Method for optimising downloading of data | |
CN112165449B (zh) | web应用实时权限的控制方法、电子装置和存储介质 | |
US20180337895A1 (en) | Method for Privacy Protection | |
WO2018036415A1 (zh) | 一种认证代理方法、装置和设备 | |
CN109698832B (zh) | 快速提供Portal认证、快速弹出Portal认证页面的方法及相关设备 | |
US10530765B2 (en) | Securing connections to unsecure internet resources | |
CN113285920B (zh) | 业务访问方法、装置、设备及存储介质 | |
WO2022271523A1 (en) | Systems and methods for autonomous program detection | |
US20180091461A1 (en) | Method and device for securing network communications using self-erasing messages | |
CN113766186A (zh) | 网络摄像机配置界面的跳转方法、装置、系统和电子装置 | |
EP3029911A1 (en) | Method, system and device for delivering a web application to a client | |
CN114051022A (zh) | Http请求处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |