穿过客户端侧nat防火墙的基于udp的传输协议的低时延服务器侧重定向的制作方法_3

文档序号:9383409阅读:来源:国知局
分组中所使用的分组序列号、或者可用于认证或验证客户端应用115要在第二连接上发送给服务器160的未来消息的消息的校验和或者基于哈希的消息认证码(HMAC)的一些部分。
[0038]在一些方面,如果客户端应用115在从服务器130接收情报消息之前从服务器160接收分组(例如,第二连接消息),则客户端应用115可使第二连接消息的处理排队等候并延迟。例如,在QUIC连接中,以不同的准备⑶ID到达的分组可排队等候。类似地,当在TCP上发起第二连接时,以不与第一连接(例如,与服务器130的连接)相关联的分组序列号到达的分组可排队等候。在一方面,客户端应用115可通过向服务器160发送分组来响应第二连接消息,而非第二连接的分组的初始源IP和端口。在QUIC连接形成示例中,源IP和端口可初始由服务器160伪造,并且将被客户端115忽略。相反,可使用在情报消息中提供的或者在来自服务器160的初始消息内提供的与服务器160相关联的IP和端口地址。在一些方面,第二连接可随着时间迀移以使用它自己的客户端NAT IP和端口地址。例如,在QUIC的情况下,当服务器160从客户端115接收第二连接消息时,可创建新的NAT端口关联,以使得服务器130可开始响应该端口,而非继续共享第一连接到达客户端115所使用的端口。
[0039]服务器160可包括通信模块262、处理器264、数据库266和存储器270。存储器270可存储数据275以及一个或多个软件模块,例如访问模块274。在一个或多个方面,访问模块274可被实现于诸如FPGA的硬件中。总线265可通信地耦合服务器160的各种组件,例如通信模块262、处理器264、数据库266和存储器270。通信模块262可包括可经由网络150通信的收发器,包括无线收发器。
[0040]通信模块262可从服务器130接收向先前尚未与服务器160连接的客户端应用115提供数据资源的请求。通信模块262还可从服务器130接收用于连接到客户端应用115的连接信息。访问模块274可被配置为从数据库266检索信息。数据库236可存储包括所请求的数据资源的各种数据。在一方面,所请求的数据资源可从存储在存储器270中的数据275获得。访问模块274可从存储器270或数据库266检索数据资源,并且将该数据资源提供给通信模块262。通信模块262可使用从服务器130接收的连接信息来将检索到的数据资源发送给客户端115。从服务器130接收的连接信息可包括用于与客户端应用115建立可穿过防火墙120的连接的密钥。
[0041]在一方面,通信模块262可以与服务器130向客户端应用115提供数据资源的情况下基本上相似的安全性来向客户端应用115发送数据资源。通信模块262可从服务器130接收一个或多个服务器-服务器消息,其可包括与服务器130用来建立与服务器160的连接将必须使用的由客户端115发送的消息相似的内容。例如,所述一个或多个服务器-服务器消息可包括由服务器130从客户端115接收的准备数据。在一方面,所述一个或多个服务器-服务器消息可包括服务器130关于服务器130通信给服务器160的源IP和端口地址的所有权的证明。例如,所述证明可足以允许在QUIC协商示例中服务器160充分地信任信道,以使得其可以不需要经由与客户端的往返连接来测试信道。
[0042]通信模块262可从服务器接收构造的分组,其可包括在客户端应用115直接向服务器160发送请求的情况下服务器160将预期从客户端115接收的分组。如上所述,所构造的分组可使用从客户端115接收的密码数据来构造。例如,所构造的分组可包括基于准备数据和/或可匹配客户端IP和端口地址(例如,NAT出站IP和端口地址)的伪造源IP和端口地址的QUIC密码HELLO分组,并且可足以穿过防火墙120。所述一个或多个服务器-服务器消息可包括从服务器160至客户端应用115的初始消息使用伪造源IP地址或伪造源端口地址的请求。作为另一示例,可要求服务器160仅伪造与服务器130相关联的IP地址。这样的限制不强的伪造指令对于一些限制不强的防火墙可能是足够的。
[0043]在一个或多个方面,服务器-服务器消息可使用诸如TCP、SSL、TLS、QUIC、SPDY等的替选协议来发送。服务器-服务器消息可描述伪造之前的伪造分组的内容。例如,可使用已经开放的SPDY连接来从服务器130至服务器160传送消息,并且可包括关于已用在分组中的伪造IP和端口的信息。在一个或多个方面,服务器160可响应伪造分组,就像它们真的由客户端115提供一样。例如,服务器160可进行至在安全的QUIC通信信道上提供所请求的数据资源,而不等待任何其它消息。
[0044]参考服务器130和160,处理器234和264中的每一个可以是通用处理器(例如,中央处理单元(CPU))、图形处理单元(GPU)、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、FPGA、可编程逻辑装置(PLD)、控制器、状态机、门控逻辑、分立的硬件组件或者可执行信息的计算或其它操纵的任何其它合适的实体。存储器240和存储器270可包括随机存取存储器(RAM)、动态RAM(DRAM)、静态Ram(SRAM)、闪速存储器等。
[0045]网络150可包括例如个域网(PAN)、局域网(LAN)、校园网(CAN)、城域网(MAN)、广域网(WAN)、宽带网络(BBN)、互联网等中的任一个或多个。另外,网络150可包括(但不限于)包括总线网络、星形网络、环形网络、网状网络、星形总线网络、树状或分层网络的网络拓扑中的任一个或多个。
[0046]图3是示出依据本主题技术的一个方面的在服务器130和160与客户端115之间的消息流300的示例的顺序图。消息流300可开始于客户端应用115向服务器130发送消息320 (例如,第一连接)以请求数据资源(例如,网页、包括一个或多个音频或视频文件的媒体内容或者包括一个或多个文本和/或图像文件的文档等)。服务器130可通过向服务器160发送消息340以指引服务器160响应客户端115所作出的请求来重定向该请求。
[0047]在重定向请求之前,服务器130可向服务器160发送多个服务器-服务器消息(例如,335)。如上所述,所述服务器-服务器消息可包括与客户端应用115用来建立与服务器160的第二连接将使用的消息相似的内容。服务器-服务器消息335可包括服务器130可从客户端应用115接收的准备数据(例如,325)。如上所述,准备数据可包括用于对代表客户端115发送给服务器160的消息进行加密的密码材料。服务器130可如上所述向客户端115发送一个或多个情报消息(例如,消息332)。所述情报消息可指示由服务器130经由一个或多个服务器-服务器消息335进行的连接发起的细节。
[0048]服务器160可通过经由消息350将所请求的数据资源发送给客户端应用115来响应请求。在一方面,服务器160还可向客户端应用115提供连接信息,客户端应用115可使用所述连接信息来直接联系服务器160。在接收到所请求的数据之后,客户端可建立与服务器160的第二连接(例如,360)。客户端应用115可使用服务器160所提供的连接信息或者情报消息的内容来建立第二连接。如上所述,情报消息的内容可包括连接发起的细节,包括可由客户端应用115用来到达服务器160的实际IP和端口地址。实际上,服务器160可与服务器130相比更靠近客户端装置115,因此节省一些时延。
[0049]可从消息流300看出,用于实现提供服务器130无法提供的数据资源的目的的所需消息传递可限于320、340和350。因此,用于实现上述目的的时延(在现有解决方案中可总计达3往返时间(RTT)以用于连接建立)在应用本主题技术的所公开的方法的情况下可减少至0RTT。换言之,与第一服务器130在互联网上提供响应相比,本主题技术方便了服务以可忽略的延迟向第二服务器的重定向或“切换”。由于世界上的一些地区可例行遭受例如300-400ms RTT,所公开的技术的优点包括显著的时延改善,并且利用所公开的方法可节省大约900-1200ms的延迟时间,从而将延迟时间减小了 3RTT。
[0050]图4是示出依据本主题技术的一个方面的穿过客户端侧NAT防火墙的基于UDP的传输协议的低时延重定向的方法400的示例的流程图。方法400可在图2的服务器130 (例如,第一服务器)处执行,并且开始于操作块410:通过图2的通信模块232接收将数据资源定向至客户端(例如,图2的115)的请求。在操作块420,图2的确定模块246可确定响应该请求的第二服务器(例如,图2的服务器160)。该请求可被重定向至第二服务器。在操作块430,第一服务器(例如,服务器130)可准备好第二服务器连接到客户端并且直接响应该请求。第二服务器可先前尚未连接到客户端。
[0051]图5是示出依据本主题技术的一个方面的穿过客户端侧NAT防火墙的基于UDP的传输协议的低时延服务器侧重定向的方法500的示例的流程图。方法500可在图2的服务器160 (例如,第一服务器)处执行,并且开始于操作块510:在第一服务器处,从第二服务器(例如,图2的服务器130)接收向客户端(例如,图2的客户端应用115)提供数据资源的请求。客户端先前尚未与第一服务器连接。在操作块520处,可从第二服务器接收用于连接到客户端的连接信息。在操作块530处可基于所接收
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1