用于选择最低延迟路径的系统和方法_2

文档序号:8947740阅读:来源:国知局
页面的请求(302HTTP/1.1重定向的使用向接收浏览器指示原始请求的页面已经暂时被移动到指定的页面)。在本示例中,服务器在接收到具有‘路径’属性的URL时通过考虑到关于最低延迟路径的该新信息而选择的路径向客户端发送所有数据(步骤114)。服务器通过特定返回路径使数据到达客户端的机制在本申请的范围之外,但是一个示例是服务器使用诸如MPLS或GRE的隧道协议来将分组导向去往客户端的出口路径。出口路径是通过互联网或其他网络从服务器的本地网络和互联网或其他网络(诸如路由器)之间的出口点到客户端设备运行的路径。本发明的实施例的该方法利用标准TCP功能以用于处理不要求客户端侧TCP改变的“复制的”分组。实施例还可以透明地与诸如防火墙和透明代理以及现今可用的许多web浏览器的客户端侧装备一同工作。
[0030]应当理解,本发明的实施例不限于使用HTTP重定向来确定具有低延迟的网络路径。在接近相同的分组中使用HTTP重定向引入轻微延迟,因为其要求第二次浏览器请求。为了避免这一点,在另一实施例中,取代HTTP重定向,可以采用HTTP cookie。例如,在另一实施例中,触发器被设定在HTTP cookie中,并且复制的帧是HTTP cookie的一部分。使用这样的HTTP cookie去除了伴随使用HTTP重定向的延迟。另外,尽管为了便于解释本文中的描述是基于HTTP的,但是提供类似的API的其他协议也在本发明的范围内。
[0031]根据本发明的实施例,上述通过多个网络路径来向客户端发送接近相同的分组可以利用分组复制器。分组复制器可以是运行在与托管服务器的设备分离的计算设备上的可执行过程或可以是托管服务器的相同的计算设备。由实施例利用的分组复制器可以接收由服务器针对于“复制”的分组。针对于复制的分组是要发送的具有正确的长度、TCP序列号和确认号的特定分组。分组复制器可以复制分组并修改内容以指示客户端告知服务器哪个路径正在使用。分组复制器还可以修改TCP校验和。其他值可以保持不被更改。分组复制器还可以负责确保分组通过指定的出口点被发出。
[0032]发送到客户端的所有复制的接近相同的分组可以从分组复制器立即顺序地几乎同时地被发送以便去除延迟的影响。例如,在IG以太网段上,其中128字节“复制”分组(包括以太网开销)被背靠背发送,在一个接近相同的分组的开始和下一个接近相同的分组的开始之间可以是1.024微妙差。连续发送的十帧将因此在第一帧的开始和最后一帧的开始之间具有1us差。由于网络路径之间的延迟差通常被观察为是大约lO-lOOms,分组的序列中的延迟通常将不太被关注,因为其低于网络路径延迟1000倍到10000倍。在一个实施例中,分组复制器还可以被放置为(基于网络拓扑结构)距出口点与服务器相比近似等距。利用该配置,通过最终选择的网络路径从服务器到客户端/用户延迟的延迟将与在最初做出延迟确定时通过该路径将接近相同的分组从分组复制器发送到客户端/用户时经历的那些延迟近似相同。
[0033]图2描绘了通过由本发明的实施例利用的分组复制器执行的示范性步骤序列。该序列以分组复制器从服务器接收用于“复制”的分组开始(步骤202)。分组复制器可以复制分组(步骤204)并且然后修改复制的分组的内容以包括标识通过其发送分组的路径的路径指令或属性以及TCP校验和(步骤206)。备选地,将会理解,取代于首先复制并且然后修改分组,新分组可以代之以在其分别被构建时被修改。在对分组内容的修改之后,分组由分组复制器或另一过程通过服务器属于的本地网络的可用出口点被转发至客户端(步骤
208) ο
[0034]图3描绘了适合于实践本发明的实施例的示范性网络环境300。如所描绘的,存在提供从本地网络到互联网380和客户端设备350的路径的四个出口点371、372、373和374。将会理解,出口点371-374的数目是说明性的。还描绘的是托管网络服务器310的计算设备305。计算设备305和客户端设备350包括一个或多个处理器和一个或多个网络接口。web服务器310与(位于单独的计算设备上的)复制器320通信。在本发明的实施例中,客户端设备350上的应用352 (诸如web浏览器)可以发起与网络服务器310的连接。可以使用通过常规网络路由协议建立的正常网络路径在计算设备305和客户端设备350之间建立TCP连接360。如以上讨论的,在接收到针对特定类型的内容的请求时,本发明的实施例中的web服务器310可以决定找到到客户端设备350的最低延迟路径。如本文中描述的,web服务器将专门精心制作的分组发送到分组复制器320。然后,分组复制器320执行以上讨论的“复制”过程,其中,仅仅更改内容中的路径指令和TCP校验和,并且将产生的接近相同的分组在互联网380上通过出口点371-374转发出去并去往客户端设备350。客户端设备350在其他接近相同的分组之前接收接近相同的分组中的一个分组。客户端设备350通过向服务器通知在其上传输第一个到达的分组的路径的标识来响应对分组内容的接收。例如,第一个到达的分组可以经由包括出口点#1的网络路径到达。在接收到来自客户端设备的路径的标识时,web服务器310可以将原始请求的内容经由路径391发送到出口点#1 (371)并且发送到客户端设备350。应当指出,到特定出口点的客户端连接的重新路由也能够透明地发生于TCP会话本身,并且不一定要求拆除现有TCP会话。
[0035]在某些情形下,从分组复制器发送到客户端的所有分组可能丢失。因此,当在这种情况时,web服务器的TCP栈将不接收将任何分组标识为第一个递送的确认。取决于实施方式,服务器可以然后通过再次向复制器发送分组或仅仅通过直接向客户端发出分组来重新尝试发送分组。
[0036]尽管图3描绘了其中分组复制器320和web服务器310位于单独的设备上的环境,但是在本发明的范围内其他配置是可能的。例如,图4描绘了适合于实践本发明的实施例的示范性备选网络环境400。在图4中,计算设备410托管web服务器412和分组复制模块414两者。在客户端设备450和计算设备410之间建立TCP连接460,并且客户端设备450上的应用请求对内容的递送。响应于该请求,web服务器412准备专门的分组并且将其转发到分组复制模块414。分组复制模块414生成之前讨论的接近相同的分组并经由出口点471、472、473和474以及互联网380将其发送到客户端设备450。在客户端设备上处理第一个到达的接近相同的分组,并且向web服务器412通知哪个路径递送了第一个接近相同的分组。利用该信息,web服务器412确定通过哪个网络路径来向客户端设备450发送所请求的内容。利用其中相同的计算设备托管web服务器412和分组复制模块414两者的该配置,消除了尝试确保在网络拓扑结构中分组复制器和网络服务器距离出口点等距的需要。
[0037]在另一实施例中,定制的TCP栈可以由应用服务器代之以采用来执行本文中讨论的分组复制器的重新写入和复制功能。
[0038]不是自动地选择到客户端的具有最低延迟的路径,在实施例中,收集的延迟信息可以结合之前收集的信息和其他标准一起被利用。例如,如果一些分组在从分组复制器到客户端的网络中丢失,则可以选择非最低延迟路径。解决这样的分组丢失的故障恢复可以包括web服务器定期检查来发现客户端优选哪个出口或者通过其切换到不是当前使用的最低延迟路径。延迟响应还可以被加权以从最后的X个样本中挑出最低延迟路径。
[0039]网络状况改变和“最低延迟”路径不一定是具有最高带宽的路径。网络可以经历暂时拥塞或暂时网络事件可以使一个路径在某个时刻具有高延迟并且几分钟后具有较低延迟。尽管本发明的实施例实现了在测量时对最低延迟路径的动态定位,但是实施例还允许延迟测量针对客户端被重复以便核实原始选择的最低延迟路径继续作为当前具有最低延迟的路径。在一个实施例中,针对客户端选择的路径可以被记录并随时间被跟踪。基于可适应的标准,即使在针对客户端/用户的最近测量结果已经报告从不同出口输出的较低延迟路径,可以选择针对该客户端/用户的“最好”路径。
[0040]图5描绘了根据实施例的用于利用所存储的关于网络路径延迟的信息的示范性步骤序列。该序列以web服务器接收针对内容的请求开始(步骤502)。将以上描述的接近相同的分组通过多个路径发送到客户端(步骤504),以及从客户端接收响应并且确定最低延迟路径(步骤506)。存储关于最
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1