使用dns反射来测量网络性能的制作方法

文档序号:7849317阅读:107来源:国知局
专利名称:使用dns反射来测量网络性能的制作方法
使用DNS反射来测量网络性能背景向遍布世界的用户提供各个功能性的联网服务是可用的。这些联网服务通常由位于不同地理区域中的数据中心的服务器计算机提供。联网服务的工作负载可分布在不同数据中心上,使得不同的用户访问这些数据中心中的某一些。然而,确定特定用户要访问多个数据中心中的哪一个可能是有问题的。概述提供本概述以便以简化形式介绍将在以下具体实施方式
中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。根据一个或多个方面,将反射器域名系统(DNS)服务器和收集器DNS服务器包括 在数据中心中。在该反射器DNS服务器处,从本地DNS解析器接收对与域名对应的网络地址的第一 DNS请求。向该本地DNS解析器返回第一响应,该第一响应指向该本地DNS解析器以便从该收集器DNS服务器获取该网络地址。在该收集器DNS服务器处,从该本地DNS解析器接收对与域名对应的网络地址的第二 DNS请求。向该本地DNS解析器返回第二响应,该第二响应包括与该域名对应的网络地址。基于第一请求、第二请求、第一响应、和第二响应中的两个或更多,确定对于该本地DNS解析器与该数据中心之间的通信的一个或多个网络性能测量。附图
简述在全部附图中,使用相同的附图标记来指示相同的特征。图I示出根据一个或多个实施例的实现使用DNS反射来测量网络性能的示例系统。图2示出根据一个或多个实施例的其中本地DNS解析器与数据中心之间的网络性能测量被确定的示例系统。图3是示出根据一个或多个实施例的实现使用DNS反射来测量网络性能的设备的示例过程的流程图。图4示出根据一个或多个实施例的可被配置成实现使用DNS反射来测量网络性能的示例计算设备。详细描述本文讨论了使用DNS反射来测量网络性能。通过将域名系统(DNS)查询反射到数据中心中的多个不同的DNS服务器来解析该DNS查询,该多个不同的DNS服务器中的一个提供该DNS查询中所请求的网络地址。在解析该DNS查询中使用的、对本地DNS解析器与数据中心中的不同DNS服务器之间的通信的一个或多个网络性能测量是在对该DNS查询的解析期间确定的。这些网络性能测量可包括指示该本地DNS解析器与该数据中心之间的通信延迟的往返时间、和/或该本地DNS解析器与该数据中心之间的分组丢失。针对不同的DNS查询所确定的网络性能测量的记录可被维护,并且可被用于确定哪些数据中心要被哪些计算设备访问。
图I示出根据一个或多个实施例的实现使用DNS反射来测量网络性能的示例系统100。系统100包括可与本地DNS解析器104通信的一个或多个(m个)计算设备102。本地DNS解析器104可经由网络108与一个或多个(η个)数据中心106进行通信。网络108可以是各种不同的网络,包括因特网、局域网(LAN)、公共电话网、内联网、其他公共和/或专有网络、它们的组合等等。计算设备102可直接与本地DNS解析器104进行通信,或另选地经由网络(例如,类似于网络108的网络)与本地DNS解析器104进行通信。每个计算设备102都可以是各种不同类型的设备。例如,计算设备102可以是台式计算机、移动站、娱乐装置、以可通信方式耦合到显示设备的机顶盒、电视机、蜂窝或其他无线电话、游戏控制台、汽车计算机等等。因而,计算设备102的范围可以是从具有充足存储器和处理器资源的全资源设备(如个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(如传统机顶盒、手持式游戏控制台)。不同的计算设备102可以是相 同类型的或者可替代地是不同类型的计算设备。每一数据中心106包括一个或多个DNS服务器110以及一个或多个操作服务器112。操作服务器112用于向计算设备102提供一个或多个服务。例如,操作服务器112可提供以下各项中的一个或多个信息服务(例如,主存一个或多个网页)、社交联网服务、电子邮件服务、消息收发服务、图像和/或视频共享服务、文件存储服务、游戏或其他娱乐服务等等。DNS服务器110用于向计算设备102提供操作服务器112的地址,从而允许计算设备102访问并使用操作服务器112所提供的服务。类似于上文对计算设备102的讨论,DNS服务器110和操作服务器112可以是各种不同类型的计算设备,从具有充足存储器和处理器资源的全资源设备到具有有限存储器和/或处理资源的低资源设备。每一数据中心106通常包括多个服务器(例如,数十、数百的量级、或甚至更多的服务器)。应当注意,数据中心106可位于全世界的各个地方。数据中心106通常在物理上位于全世界,以便在地理上更接近于不同的用户组。然而,两个或更多个数据中心106可能彼此在地理上紧邻。多样化地理存在的优点是为任何特定终端用户提供对数据中心的多个选择,并且如果正确地作出,该终端用户将受到来自“最优”数据中心的服务,这产生该终端用户最佳察觉的性能。跨多个数据中心106的操作服务器112共同操作,以便向计算设备102提供一个或多个服务。不同的数据中心106中的操作服务器112可存储复制的数据和/或一起工作,以便向计算设备102提供一个或多个服务。尽管跨多个数据中心106的操作服务器112共同操作,但每一计算设备102通常与一个数据中心106中的操作服务器112进行通信。本文讨论的使用DNS反射来测量网络性能的技术可被用于对特定计算设备102标识哪个数据中心106要被该特定计算设备102访问。本文讨论的使用DNS反射来测量网络性能的技术利用DNS系统。DNS系统允许使用相比于网络地址(诸如网际协议(IP) V4或V6地址)用户通常更容易使用和引用的域名(诸如统一资源定位符(URL))来标识服务。数据中心106中的操作服务器112具有不同的网络地址,但对应于相同域名。类似地,多个数据中心106共同操作以便向计算设备102提供与相同域名对应的一个或多个服务。一个或多个DNS服务器用于将特定域名映射到对应的网络地址,计算设备可使用该网络地址来访问特定操作服务器。这一域名到对应的网络地址的映射也被称为DNS解析。尽管本文的许多讨论涉及URL和IP地址,但可以理解,其他域名和/或网络地址可与文本讨论的使用DNS反射来测量网络性能的技术一起使用。另外,本文讨论的DNS系统是指符合公知DNS协议(例如,如在1987年11月的网络工作组评定要求1035 (NetworkWorking Group Request for Comments 1035)中所讨论的协议)的系统。然而,可以理解,可以结合类似于DNS协议、允许将域名映射到特定网络地址的其他系统来使用本文讨论的使用DNS反射来测量网络性能的技术。本地DNS解析器104从计算设备102接收DNS查询,这些DNS查询作为对特定URL的IP地址的请求。本地DNS解析器104将这些DNS查询转发给一个或多个DNS服务器110。当响应于DNS查询向解析器104返回IP地址时,该IP地址被返回给计算设备102,该DNS查询是从计算设备102接收的。另外,本地DNS解析器104可任选地维护将URL映射到IP地址的高速缓存,从而允许本地DNS解析器104响应于对包括在该高速缓存中的URL的DNS查询来返回该URL的IP地址。本地DNS解析器104可在各种不同的设备中实现,诸如在服 务器或因特网服务供应商(ISP)的其他设备中,在包括计算设备102的局域网上的设备中实现等等。尽管图I中示出单个本地DNS解析器104,但可以理解,在系统100中可包括任何数量的本地DNS解析器104。例如,假设操作服务器112共同工作以提供因特网搜索引擎。使用简单的URL,诸如“WWW. bing.com”能容易地标识出该因特网搜索引擎。为了访问因特网搜索引擎,计算设备102将向本地DNS解析器104提交DNS查询,以请求URL “www. bing. com”的IP地址。本地DNS解析器104进而将DNS查询提交给一个或多个DNS服务器110,以请求URL “www.bing. com”的IP地址。本地DNS解析器104向其发送DNS查询的特定DNS服务器110在下文中更详细地讨论。最终,DNS服务器110向本地DNS解析器104返回URL “www. bing.com”的IP地址。该IP地址是操作服务器112之一的地址,且本地DNS解析器104向从其中接收到DNS查询的计算设备102返回该IP地址。特定操作服务器112 (其IP地址被返回给本地DNS解析器104)可由一个或多个DNS服务器110以不同的方式来选择。例如,可以选择特定操作服务器112作为数据中心106中在提交DNS查询的计算设备102与数据中心106之间具有最小通信延迟的一操作服务器112,作为数据中心106中在提交DNS查询的计算设备102与数据中心106之间具有最小数量的丢失分组的一操作服务器112等等。计算设备102随后可使用其响应于用于访问操作服务器112之一的DNS查询而接收到的IP地址来访问因特网搜索引擎。DNS服务器110中的一个或多个维护本地DNS解析器到IP地址的映射。该映射指示操作服务器112的特定IP地址,该特定IP地址是响应于来自本地DNS解析器104的DNS查询而要返回的。应当注意,该映射通常是本地DNS解析器到操作服务器IP地址的映射,尽管作为替代,该映射可以是计算设备102到操作服务器IP地址的映射。可能发生以下情形DNS服务器接收DNS查询,但将响应于该DNS查询而返回操作服务器的特定IP地址的责任委托给另一 DNS服务器。DNS反射是指委托的具体使用,其中一个DNS服务器以如下方式来控制委托响应作出查询的本地DNS解析器在接收到该响应之后将向第二个期望的DNS服务器发出另一 DNS请求。在系统100的操作期限,确定对本地DNS解析器104与数据中心106的一个或多个DNS服务器110之间的通信的一个或多个网络性能测量。这些网络性能测量作为返回在DNS查询中所提交的URL的IP地址的过程的一部分来确定,这将在下文中更详细地讨论。这些网络性能测量的记录被维护,并且可被用作更新本地DNS解析器到DNS服务器110所维护的IP地址的映射的基础。图2示出根据一个或多个实施例的其中本地DNS解析器与数据中心之间的网络性能测量被确定的示例系统200。系统200包括计算设备202,本地DNS解析器204,顶层DNS服务器206,反射器DNS服务器208,以及收集器DNS服务器210。计算设备202可以是例如图I的计算设备102。本地DNS解析器204可以是例如图I的本地DNS解析器104。顶层DNS服务器206、反射器DNS服务器208、以及收集器DNS服务器210各自可以是例如图I的DNS服务器110。反射器DNS服务器208和收集器DNS服务器210被包括在同一数据中心212 (例如,图I的特定数据中心106)中。顶层DNS服务器206可作为反射器DNS服务器208和收集器DNS服务器210被包括在同一数据中心中,或另选地被包括在不同的数据中心中。
计算设备202向本地DNS解析器204提交DNS查询214,以请求特定URL的IP地址。该特定URL也可被称为查询URL或查询域名。本地DNS解析器204接收DNS查询214,并且将该DNS查询作为DNS查询216提交给顶层DNS服务器206。顶层DNS服务器206是该特定URL的权威性名称服务器(也被称为主名称服务器),并且维护本地DNS解析器到IP地址的映射230。本地DNS解析器204可按各种不同的方式来获取顶层DNS服务器206的IP地址,诸如从顶层DNS服务器206接收对IP地址的指示,根据DNS系统从(例如经由诸如图I的网络108之类的网络所访问的)另一设备获取IP地址等等。响应于DNS查询216,顶层DNS服务器206确定数据中心中的要被返回给计算设备202的操作服务器的IP地址。顶层DNS服务器206通过在映射230中查找本地DNS解析器204来确定该IP地址。该查找可基于本地DNS解析器204的IP地址(该IP地址被包括在DNS查询216中)、本地DNS解析器204的名称或其他标识符等等。映射230包括本地DNS解析器204到特定IP地址的映射,该特定IP地址是数据中心中要被返回给计算设备202的操作服务器的IP地址。顶层DNS服务器206响应于DNS查询216向本地DNS解析器204提供响应218。响应218包括反射器DNS服务器208的标识符以及收集器DNS服务器210的标识符。响应218包括向本地DNS解析器204指示顶层DNS服务器206已经将DNS解析委托给反射器DNS服务器208。响应218还包括要被返回给计算设备202的操作服务器的IP地址,然而,该IP地址以这样的方式被包括在响应218中本地DNS解析器204不理解该IP地址被包括在响应218中。由此,本地DNS解析器204向反射器DNS服务器208请求IP地址,这在下文中将更详细地讨论。 在一个或多个实施例中,响应218包括CNAME,CNAME也被称为别名。CNAME嵌入反射器DNS服务器208和收集器DNS服务器210的IP地址、以及目标IP地址(该目标IP地址是数据中心中如基于映射230所确定的要被返回给计算设备202的操作服务器的IP地址)。反射器DNS服务器208和收集器DNS服务器210也可被称为顶层DNS服务器206的子域(sub-domain)服务器,因为服务器208和210可管理本地DNS解析器到该域中顶层DNS服务器206是权威性名称服务器的那些部分的网络地址的映射。响应218还包括子域服务器名称以及子域IP地址,以指示本地DNS解析器204要向其发送DNS查询220的服务器,该子域服务器名称以及子域IP地址是反射器DNS服务器208的名称和IP地址。例如,响应218 可包括 rand. lax. reflector-collector-target, msrapollo. net的CNAME。在该CNAME中,“反射器(reflector)”是反射器DNS服务器208的IP地址,“收集器(collector)”是收集器DNS服务器210的IP地址,而“目标(target)”是目标IP地址。此外,响应 218 可包括 ns. reflector-collector-target, msrapollo. net 的服务器名称或称NS。该服务器名称是反射器DNS服务器208的名称。响应218还可包括反射器的服务器地址或称NS_ADDRESS。该服务器地址是反射器DNS服务器208的IP地址。本地DNS解析器204接收响应218,并且(基于响应218中的指示)确定该DNS解析已经被委托给反射器DNS服务器208。尽管响应218中嵌入了目标IP地址,但本地DNS解析器204不知道如何解释所嵌入的目标IP地址。因此,响应于接收到响应218,本地DNS 查询220包括要被返回给计算设备202的操作服务器的IP地址以及收集器DNS服务器210的标识符,这两者都是由本地DNS解析器204在响应218中接收到的(例如被嵌入在CNAME中)。因此,尽管响应218内嵌入的是要被返回给计算设备202的操作服务器的IP地址,但本地DNS解析器204将DNS查询220提交给反射器DNS服务器208,因为本地DNS解析器204不知道如何解释所嵌入的目标IP地址。在一个或多个实施例中,响应218包括反射器DNS服务器208的名称和IP地址,以通知本地DNS解析器204要向其提交DNS查询220的DNS服务器。本地DNS解析器204将在响应218中接收到的CNAME包括在DNS查询220中,作为所请求的网络地址的域名。反射器DNS服务器208接收DNS查询220,并且响应于DNS查询220生成响应222,响应222包括反射器DNS服务器208已经将DNS解析委托给收集器DNS服务器210的指示。这也被称为将DNS查询反射到收集器DNS服务器210。响应222还包括要被返回给计算设备202的操作服务器的IP地址(如上所述,该IP地址由顶层DNS服务器206来确定并且被包括在响应218中)。在一个或多个实施例中,响应222包括DNS查询220中接收到的CNAME。响应222还包括子域服务器名称以及子域IP地址,以指示本地DNS解析器204要向其发送DNS查询224的服务器,该子域服务器名称以及子域IP地址是收集器DNS服务器210的名称和IP地址。本地DNS解析器204接收响应222,并且(基于响应222中的指示)确定该DNS解析已经被委托给收集器DNS服务器210。尽管响应222中嵌入了目标IP地址,但本地DNS解析器204不知道如何解释所嵌入的目标IP地址。因此,响应于接收到响应222,本地DNS解析器204向收集器DNS服务器210提交DNS查询224,以请求特定URL的IP地址。DNS查询224包括要被返回给计算设备202的操作服务器的IP地址,该IP地址由本地DNS解析器204在响应222中接收(例如,被嵌入在CNAME中)。因此,尽管响应222内嵌入的是要被返回给计算设备202的操作服务器的IP地址,但本地DNS解析器204将DNS查询224提交给收集器DNS服务器210,因为本地DNS解析器204不知道如何解释所嵌入的目标IP地址。在一个或多个实施例中,响应222包括收集器DNS服务器210的名称和IP地址,以通知本地DNS解析器204要向其提交DNS查询224的DNS服务器。本地DNS解析器204将响应222中接收到的CNAME包括在DNS查询224中,作为所请求的网络地址的域名。收集器DNS服务器210接收DNS查询224,并且响应于DNS查询224生成响应226,响应226包括要被返回给计算设备202的操作服务器的IP地址(如上文讨论的,该IP地址由顶层DNS服务器206来确定并且被包括在响应218和响应222中)。本地DNS解析器204接收响应226,并且作为响应来生成响应228以发送给计算设备202。响应228包括要被返回给计算设备202的操作服务器的IP地址(如上文讨论的,该IP地址由顶层DNS服务器206来确定)。在一个或多个实施例中,收集器DNS服务器210从DNS查询224获取目标IP地址,该目标IP地址被嵌入在DNS查询224中接收到的CNAME中。收集器DNS服务器210将目标IP地址返回给本地DNS解析器204,作为基于映射230所确定的数据中心中要被返回给计算设备202的操作服务器的IP地址。
另外,对本地DNS解析器204与数据中心212之间的通信的一个或多个网络性能测量被确定。这些网络性能测量可以是本地DNS解析器204与数据中心212之间的往返时间(RTT),和/或本地DNS解析器204与数据中心212之间的分组丢失测量。对本地DNS解析器与数据中心212之间的通信的网络性能测量是基于本地DNS解析器204与服务器208和210之间的通信来确定的。本地DNS解析器204与数据中心212之间的通信的往返时间可由收集器DNS服务器210或另选地由另一模块或设备来确定。该往返时间被确定为向本地DNS解析器204发送响应222与收集器DNS服务器210接收到DNS查询224之间已经经过的时间量。另选地,该往返时间可以按其他方式来确定,诸如反射器DNS服务器208接收到DNS查询220与收集器DNS服务器210接收到DNS查询224之间已经经过的时间量。可以理解,各种不同的因素可影响该往返时间,诸如本地DNS解析器204与数据中心212之间的距离,本地DNS解析器204与数据中心212之间的网络中的设备的数量和/或类型,本地DNS解析器204与数据中心212之间的网络带宽,本地DNS解析器204与数据中心212之间的网络上的通信量或拥塞量等等。本地DNS解析器204与数据中心212之间的分组丢失测量可按不同的方式来确定。本地DNS解析器204与DNS服务器(例如服务器206、208和210)之间的通信可通过经由网络(例如图I的网络108)在分组中传递信息来执行。可能发生以下情形经由该网络发送的一个或多个分组没有到达其预期目的地,且由此被称为丢失的分组。一个或多个分组的丢失可按不同的方式来标识。在一个或多个实施例中,分组(包括从反射器DNS服务器208到本地DNS解析器204的响应222)的丢失可被标识。本地DNS解析器204通常在发送DNS查询220的特定时间量内期望对DNS查询220的响应222,该特定时间量通常被称为超时时间段。如果本地DNS解析器204在该超时时间段内没有接收到响应222,则解析器204重新发送DNS查询220。由此,如果反射器DNS服务器208多次接收同一 DNS查询220,则服务器208知道响应222没有被本地DNS解析器204接收。反射器DNS服务器208可假设在服务器208每次接收其先前接收到的同一 DNS查询220时包括响应222的分组被丢失。另外,尽管不同的本地DNS解析器可实现不同的超时时间段,但这些超时时间段通常是固定的时间量,诸如O. 5秒或I秒。这些超时时间段通常比本地DNS解析器204与数据中心212之间的往返时间大得多。由此,超时时间段可容易地与往返时间相区分。反射器DNS服务器208可通过不发送对DNS查询220的响应222来确定本地DNS解析器204所使用的超时时间段。由于没有响应222被发送,本地DNS解析器204将在本地DNS解析器20 4所使用的超时时间段经过之后重新发送DNS查询220。反射器DNS服务器208可将首次发送DNS查询202与重新发送DNS查询220之间经过的时间(例如被舍入至最近的半秒)确定为本地DNS解析器204所使用的超时时间段。在一个或多个实施例中,分组(包括从本地DNS解析器204到收集器DNS服务器210的DNS查询224)的丢失可被标识。收集器DNS服务器210知道在反射器DNS服务器208发送响应222之后期望DNS查询224。如果发送响应222与接收DNS查询224之间的时间量超出阈值量,则收集器DNS服务器210可假设包括DNS查询224的分组被丢失。该时间阈值量可基于本地DNS解析器204使用的超时时间段,这可如上文讨论的那样确定。如果发送响应222与接收DNS查询224之间的时间量超出本地DNS解析器204使用的超时时间段,则收集器DNS服务器210可假设包括DNS查询224的分组被丢失。在一个或多个实施例中,分组(包括从收集器DNS服务器210到本地DNS解析器204的响应226)的丢失可被标识。本地DNS解析器204通常在发送DNS查询224的特定时间量内期望对DNS查询224的响应226,该特定时间量通常被称为超时时间段。该超时时间段可以与本地DNS解析器204在期望对DNS查询220的响应222时所使用的超时时间段相同,或另选地该超时时间段可以是不同的超时时间段。如果本地DNS解析器204在该超时时间段内没有接收到响应226,则解析器204重新发送DNS查询224。由此,如果收集器DNS服务器210多次接收同一 DNS查询224,则服务器210知道响应226没有被本地DNS解析器204接收。收集器DNS服务器210可以假设在服务器210每次接收其先前接收到的同一 DNS查询224时包括响应226的分组被丢失。类似地,可以确定多个分组的丢失。超时时间段对于不同的丢失分组可以不同。例如,在第一分组被丢失之后可使用I秒的第一超时,如果下一分组被丢失则可使用2秒的第二超时,如果下一分组被丢失则可使用3秒的第三超时,以此类推。如上文讨论的,这些不同的超时时间段可被标识(例如,反射器DNS服务器208可通过不发送对接收自本地DNS解析器204的前三个DNS查询220的响应222,来确定本地DNS解析器204使用的超时时间段)。另选地,本地DNS解析器204可包括标识和维护与丢失分组有关的信息的功能性。在这样的情形中,本地DNS解析器204还可展示诸如应用编程接口(API)之类的接口,该接口可被调用(例如,被反射器DNS服务器208和/或收集器DNS服务器210调用)以便从本地DNS解析器204获取与丢失分组有关的信息。与分组的丢失有关的各种信息可被维护。与分组的丢失有关的该信息可包括,例如,分组被丢失的分组丢失比率或频率,分组丢失模式(例如,丢失的分组数量,丢失的连续分组,分组丢失的一天中的时间,分组丢失的星期几等)等等。一个或多个分组的丢失通常由反射器DNS服务器208和/或收集器DNS服务器210来标识,尽管另选地一个或多个分组的丢失可由数据中心212的另一模块或设备来标识。除了标识一个或多个分组的丢失以外,还可标识这样的丢失发生的方向。即,可将从数据中心212发送到本地DNS解析器204的分组的丢失与从本地DNS解析器204发送到数据中心212的分组的丢失分开地标识。与在这样的丢失发生的特定方向上的分组丢失有关的各种信息可被维护。因此,作为DNS解析过程的一部分,可获取对本地DNS解析器与数据中心之间的通信的网络性能测量。对于多个不同的本地DNS解析器中的每一个,可获取本地DNS解析器与多个不同的数据中心之间的网络性能测量。这些所获取的网络性能测量的记录被维护。该记录可按不同的方式来维护,诸如一个或多个直方图。本地DNS解析器与数据中心之间的网络性能测量可被用于确定特定本地DNS解析器到数据中心的特定操作服务器IP地址的映射(如存储在解析器到地址的映射230中)。本地DNS解析器与数据中心之间的网络性能测量可被用于以各种不同的方式来确定特定本地DNS解析器到数据中心的特定操作服务器IP地址的映射。对于特定本地DNS解析器,可以对所获取的、本地DNS解析器与不同的数据中心之间的网络性能测量进行比较或以其他方式进行分析,以便选择一数据中心。所选数据中心中的操作服务器的IP地址 被包括在映射230中。例如,可以选择在数据中心与特定本地DNS解析器之间最小往返时间测量被获取的该数据中心。作为另一示例,可以选择在数据中心与特定本地DNS解析器之间最小数量的丢失分组被获取的该数据中心(或者从数据中心发送到特定本地DNS解析器的最小数量的丢失分组被获取的该数据中心)。另选地,所获取的往返时间测量和/或分组丢失测量可以与各种其他技术或过程一起用于选择数据中心。在一个或多个实施例中,如上文讨论的,解析器到地址的映射230包括可基于网络性能测量随时间而更新的对特定本地DNS解析器的初始映射。对特定本地DNS解析器的初始映射可按各种不同的方式且基于各种不同的准则来获取,诸如地理位置、其他本地DNS解析器被映射到的数据中心、随机选取、其他准则或规则等等。例如,顶层DNS服务器206可通过分析本地DNS解析器204的网络地址中的前缀、并且将操作服务器地址映射到解析器204 (该解析器204被映射到具有相同前缀的另一本地DNS解析器),来标识对本地DNS解析器204的初始映射。例如,如果本地DNS解析器204具有网络地址aaa. bbb. ccc. ddd,而映射230中另一本地DNS解析器具有网络地址aaa. bbb. ccc. eee,那么这两个本地DNS解析器具有带有相同前缀aaa. bbb. ccc的网络地址,并且顶层DNS服务器206将本地DNS解析器204映射到与具有网络地址aaa. bbb. ccc. eee的本地DNS解析器被映射的相同操作服务器地址。在一个或多个实施例中,可响应于本地DNS解析器204提交给顶层DNS服务器206的每一 DNS查询,将本地DNS解析器204反射到反射器DNS服务器208和收集器DNS服务器210。另选地,顶层DNS服务器206可确定仅针对特定DNS查询要将本地DNS解析器204反射到服务器208和210。这些特定DNS查询可按各种不同的方式来标识,诸如基于时间间隔,基于接收DNS查询的频率,基于对于特定本地DNS解析器先前已经反射的DNS查询数量等等。例如,顶层DNS服务器206可确定对于每一本地DNS解析器每小时要向服务器208和210反射一个DNS查询。作为另一示例,顶层DNS服务器206可确定来自本地DNS解析器的每一 DNS查询要被反射到服务器208和210直到阈值数量的DNS查询已被反射,之后,对于本地DNS解析器每小时要向服务器208和210返回一个DNS查询。该阈值数量可以是固定数量(例如,50个DNS查询),或另选地可以是相对数量(例如,与域名对应的数据中心数量的两倍)。另选地,可使用其他技术来获取数据中心212与本地DNS解析器204之间的网络性能测量,而本文讨论的使用DNS反射来测量网络性能的技术在这些其他技术不成功时被使用(或另选地用于确认经由这些其他技术所获取的网络性能测量)。例如,数据中心212中的设备(诸如包括反射器DNS服务器208和收集器DNS服务器210的设备)可使用常规的查验(Ping)请求来获取数据中心212与本地DNS解析器204之间的网络性能测量。可使用与上文讨论的那些技术类似的技术来标识当使用查验请求时的往返时间和/或丢失分组。本文讨论的使用DNS反射来测量网络性能的技术可被用于确认使用查验请求所获取的网络性能测量,或可被用在本地DNS解析器204不对该查验请求作出响应的情况中。作为另一示例,数据中心212中的设备(诸如包括反射器DNS服务器208和收集器DNS服务器210的设备)可通过将DNS查询发送到本地DNS解析器204来获取网络性能测量。该DNS查询可以是对解析各种不同的域名(诸如仅仅是或“.com”)的请求。可使用与上文讨论的那些技术类似的技术来标识当提交这样的DNS查询时的往返时间和/或丢 失分组。本文讨论的使用DNS反射来测量网络性能的技术可被用于确认当提交这样的DNS查询时所获取的网络性能测量,或可被用在当提交这样的DNS查询时本地DNS解析器204不作出响应的情况中。另外,应当注意,可响应于对一个或多个特定域的DNS查询,将本地DNS解析器204反射到反射器DNS服务器208和收集器DNS服务器210。当顶层DNS服务器206接收到对这些一个或多个特定域之一的DNS查询时,本地DNS解析器204被反射到服务器208和210,如上文讨论的。然而,当顶层DNS服务器206接收到对不同域的DNS查询时,服务器206返回所请求的来自映射230的网络地址,而不反射本地DNS解析器204。使顶层DNS服务器206反射仅针对一个或多个特定域的DNS查询支持各种不同的使用场景。例如,可在要被返回给计算设备202的网页中嵌入到特定文件的URL。该特定文件的大小可能是小的,并且甚至不需要被显示成网页的一部分。然而,到该特定文件的URL是DNS查询被反射的一个或多个特定域之一。因此,当计算设备202请求该网页时,该网页的URL被解析,并且网络地址由顶层DNS服务器206返回,而不反射DNS查询。该网页接着可由计算设备202检索并显示,且对特定文件的嵌入URL作为该检索和显示的一部分被标识。然而,该嵌入URL通过反射DNS查询来解析,该DNS查询包括到反射器DNS服务器208和收集器DNS服务器210的URL,如上文讨论的。在图2的示例中,示出了一个数据中心212。然而,如上文讨论的,多个数据中心对应于一特定域名。顶层DNS服务器206可按各种不同的方式来确定本地DNS解析器被反射到的特定数据中心,诸如基于时间间隔,基于DNS查询被反射到特定数据中心的频率,基于先前已经被反射到每一数据中心的DNS查询数量,基于数据中心的地理位置等等。例如,顶层DNS服务器206可确定对于每一本地DNS解析器每小时要向每一数据中心反射一个DNS查询。作为另一示例,顶层DNS服务器206可维护数据中心的有序列表,并且以循环方式标识数据中心,使得每次服务器206确定DNS查询要被反射到特定数据中心时,在该数据中心的有序列表中标识出的下一数据中心被选作该DNS查询要被反射到的数据中心。作为又一示例,顶层DNS服务器206可确定如果对于特定本地DNS解析器被映射到的当前数据中心所获取的网络性能测量超过阈值量,则该特定本地DNS解析器不需要被反射到不在地理上紧邻该当前数据中心的各数据中心。该阈值量可以是固定值(例如,小于O. 2秒的往返时间)或相对值(例如,一往返时间,该往返时间小于至少70%的对映射230中其他映射的操作服务器地址的往返时间)。数据中心的地理邻近性可按各种不同的方式来确定,诸如以英里计的线性距离,位于相同城市中的数据中心,位于相同洲的数据中心等等。例如,如果顶层DNS服务器206确定对于特定本地DNS解析器被映射到的当前数据中心所获取的网络性能测量超过阈值量,且当前数据中心位于北美,则该特定本地DNS解析器不需要被反射到欧洲或澳洲的数据中心。反射器DNS服务器208和收集器DNS服务器210具有两个不同的IP地址,并被本地DNS解析器204视为两个不同的服务器。但是,在一个或多个实施例中,反射器DNS服务器208和收集器DNS服务器210两者可被实现在同一计算设备(例如具有多个网络接口)上,从而允许服务器208和210两者使用同一时钟 。允许服务器208和210使用同一时钟简化了获取网络性能测量,因为来自两个不同设备的时钟无需被同步。另选地,反射器DNS服务器208和收集器DNS服务器210可被实现在两个不同的计算设备上,而这两个不同的计算设备上的时钟彼此同步。应当注意,使用本文讨论的技术获取的网络性能测量是本地DNS解析器与数据中心之间的网络性能测量。类似地,解析器到地址的映射230是本地DNS解析器到数据中心中的操作服务器的网络地址的映射。使用基于由本地DNS解析器所发送的来自特定计算设备的DNS查询所获取的网络性能测量,以便任何附加计算设备也可使用同一本地DNS解析器。因此,使用同一本地DNS解析器的各个计算设备将具有被解析到同一网络地址的各DNS查询。例如,除了计算设备202以外,多个附加计算设备可使用本地DNS解析器204来解析各DNS查询。这些多个附加计算设备中的每一个、以及计算设备202具有被解析到相同网络地址的相同DNS查询。在上文的讨论中,如所讨论的解析器到地址的映射230由顶层DNS服务器206来维护。另选地,映射230可由其他设备来维护,诸如各种数据中心中的反射器DNS服务器、收集器DNS服务器、或其他设备。取决于维护映射230的方式,可跨多个不同设备来同步该映射的副本。例如,各个数据中心中的收集器DNS服务器可维护映射230,且特定收集器DNS服务器对映射230作出的每一改变可被传送到其他收集器DNS服务器。在其中映射230是由除了顶层DNS服务器206以外的设备来维护的实施例中,可以理解,DNS查询216中所请求的网络地址将不由服务器206来确定也不被嵌入服务器206所返回的响应218中。相反,DNS查询216中所请求的网络地址将由另一设备来确定。例如,如果映射230由各个数据中心中的收集器DNS服务器来维护,则收集器DNS服务器210确定网络地址在DNS查询216中被请求,且由此网络地址不被包括在DNS查询220和224中。另外,在上文的讨论中,DNS查询是作为被反射到一个反射器DNS服务器和一个收集器DNS服务器来讨论的。然而,可以理解,本文讨论的使用DNS反射来测量网络性能的技术可被用于将DNS查询反射到数据中心内的多个不同的DNS服务器。例如,可将本地DNS解析器204反射到数据中心212内的多个不同的反射器DNS服务器208,而不是将本地DNS解析器204反射到收集器DNS服务器210。类似于上文关于获取测量的讨论,这些附加反射的网络性能测量可被获取。此外,可以理解,本文讨论的使用DNS反射来测量网络性能的技术可被用于将DNS查询反射到多个不同数据中心内的多个不同反射器和收集器DNS服务器。例如,收集器DNS服务器210可将来自本地DNS解析器204的DNS查询反射到与域名对应的附加数据中心的反射器DNS服务器,而不是返回所请求的网络地址。类似于上文讨论的针对数据中心212所获取的测量,该附加数据中心的网络性能测量可被获取。在对图2的讨论中,反射器DNS服务器208和收集器DNS服务器210作为分开的DNS服务器来讨论。本地DNS解析器204通常被配置以使得在解析器204已经从相同的DNS服务器接收到响应之后不向该DNS服务器重新发送DNS查询。因此,图2中使用了两个不同的DNS服务器208和210。如果本地DNS解析器204要支持在解析器204已经从相同的DNS服务器接收到响应之后向该DNS服务器重新发送DNS查询,则反射器DNS服务器208和收集器DNS服务器210可以是相同的DNS服务器。图3是示出根据一个或多个实施例的实现使用DNS反射来测量网络性能的设备的示例过程300的流程图。过程300可以用软件、固件、硬件、或其组合来实现。过程300被示为一组动作,并且不仅限于所示出的用于执行各种动作的操作的顺序。过程300是用于使用DNS反射来测量网络性能的示例过程;参考不同的附图,本文包括了对使用DNS反射来测量网络性能的其他讨论。 在过程300中,顶层DNS服务器接收对与域名对应的网络地址的DNS查询(动作302)。如上文讨论的,该DNS查询是从本地DNS解析器接收的,且该域名通常被标识成URL。如上文讨论的,所请求的网络地址可以是IP地址或另选地是另一地址。顶层DNS服务器向本地DNS解析器返回将该本地DNS解析器反射到另一服务器的响应以获取网络地址(动作304)。该另一服务器是包括在数据中心中的反射器DNS服务器,该数据中心通常(但不必)是与包括顶层DNS服务器的数据中心不同的数据中心。反射器DNS服务器接收对与域名对应的网络地址的DNS查询(动作306)。在动作306中,该DNS查询是从本地DNS解析器接收的,且在动作306中,接收该DNS查询的反射器DNS服务器是动作304中顶层DNS服务器所指示的反射器DNS服务器。反射器DNS服务器向本地DNS解析器返回将该本地DNS解析器反射到又一服务器的响应,以获取网络地址(动作308)。本地DNS解析器被反射到的该其他服务器是包括在与反射器DNS服务器相同的数据中心中的收集器DNS服务器。另选地,在反射器DNS服务器最终将本地DNS解析器反射到收集器DNS服务器之前,一个或多个反射器DNS服务器可将本地DNS解析器反射到另一反射器DNS服务器。收集器DNS服务器接收对与域名对应的网络地址的DNS查询(动作310)。在动作310中,该DNS查询是从本地DNS解析器接收的,且在动作310中,接收该DNS查询的收集器DNS服务器是动作308中反射器DNS服务器所指示的收集器DNS服务器。收集器DNS服务器向本地DNS解析器返回包括所请求的与域名对应的网络地址的响应(动作312)。如上文讨论的,收集器DNS服务器可按不同的方式来标识网络地址,诸如标识如收集器DNS服务器接收到的DNS查询中所嵌入的网络地址,通过访问网络地址的表或其他记录等等。当收集器DNS服务器返回的响应有效地终止了 DNS反射操作时,动作310中接收到的查询也可被称为最终DNS查询,而动作312中返回的响应也可被称为最终DNS响应。另外,在反射器DNS服务器与收集器DNS服务器两者中的本地DNS解析器之间的通信可被用于确定网络性能测量(动作314)。这些网络性能测量是对本地DNS解析器与包括反射器DNS服务器和收集器DNS服务器两者的数据中心之间的通信的网络性能的测量。在动作314中可标识不同的网络性能测量,诸如上文讨论的往返时间和分组丢失信息。由此,可以看出,文本讨论的使用DNS反射来测量网络性能的技术利用DNS系统基于本地DNS解析器与数据中心之间的实际通信来获取网络性能测量。DNS查询到另一服务器的反射由典型的本地DNS解析器支持,作为其正常操作的一部分,且因此对典型的现有本地DNS解析器无需作出更改以支持文本讨论的使用DNS反射来测量网络性能的技术。此夕卜,本地DNS解析器无需被配置成对附加请求(诸如查验请求)作出响应,而本地DNS解析器原本不会被配置成对这些附加请求作出响应。此外,在DNS解析过程期间采用本文讨论的使用DNS反射来测量网络性能的技术。对于数据中心的操作服务器所维护的数据的请求、和/或对于这些请求的响应通常不受影响。换言之,本文讨论的使用DNS反射来测量网络性能的技术影响当解析DNS查询时哪些服务器被访问,而不影响在从数据中心的操作服务器获取所请求的数据时哪些服务器被访问。 图4示出根据一个或多个实施例的可被配置成实现使用DNS反射来测量网络性能的示例计算设备400。计算设备400可以是例如图I的计算设备102或图2的计算设备202,或可被用于实现图I的本地DNS解析器104、DNS服务器110、和操作服务器112中的任一个,或图2的解析器204、顶层DNS服务器206、反射器DNS服务器208、和收集器DNS服务器210中的任一个。计算设备400包括一个或多个处理器或处理单元402、可包括一个或多个存储器和/或存储组件406的一个或多个计算机可读介质404、一个或多个输入/输出(I/O)设备408、以及允许各组件和设备彼此通信的总线410。计算机可读介质404和/或一个或多个I/O设备408可以作为计算设备400的一部分被包括,或者可另选地可以耦合到计算设备400。总线410表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种不同的总线体系结构中的处理器或局部总线。总线410可包括有线和/或无线总线。存储器/存储组件406表示一个或多个计算机存储介质。组件406可包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等等)。组件406可包括固定介质(例如,RAM、ROM、固定硬盘驱动器等等)以及可移动介质(例如,闪存驱动器、可移动硬盘驱动器、光盘等等)。此处所讨论的技术可以以软件实现,指令由一个或多个处理单元402。可以理解,不同的指令可以存储在计算设备400的不同的组件中,诸如存储在处理单元402中,存储在处理单元402的各种缓存存储器中,存储在设备400的其他高速缓存存储器(未示出)中,存储在其他计算机可读介质上等等。另外,可以理解,指令存储在计算设备400中的位置可以随着时间而变化。一个或多个输入/输出设备408允许用户向计算设备400输入命令和信息,以及允许信息被呈现给用户和/或其他组件或设备。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、话筒、扫描仪等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡等等。此处可以在软件或程序模块的一般上下文中描述各种技术。一般而言,软件包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。这些模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。计算机可读介质可以是可以被计算设备访问的任何可用介质。作为示例而非限制,计算机可读介质可包括“计算机存储介质”和“通信介质”。“计算机存储介质”包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD )或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机访问的任何其他介质。“通信介质”通常用诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。通信介质还包括任何信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介 质,诸如声学、RF、红外线和其他无线介质。上面各项中的任何组合也包括在计算机可读介质的范围内。一般而言,此处所描述的任何功能或技术都可使用软件、固件、硬件(例如,固定逻辑电路)、手动处理或这些实现的组合来实现。如此处所使用的术语“模块”和“组件” 一般代表软件、固件、硬件或其组合。在软件实现的情况下,模块或组件表示当在处理器(例如,一个或多个CPU)上执行时执行指定任务的程序代码。程序代码可以存储在一个或多个计算机可读的存储器设备中,可以参考图4发现关于其进一步的描述。本文描述的使用DNS反射来测量网络性能的技术的各特征是平台无关的,从而意味着这些技术可在具有各种处理器的各种商用计算平台上实现。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1.一种方法,包括 在第一数据中心的第一域名系统(DNS)服务器处,接收来自本地DNS解析器的第一 DNS查询,所述第一 DNS查询请求与查询域名对应的网络地址; 通过将所述本地DNS解析器反射到第二数据中心的一个或多个反射器DNS服务器,对来自所述第一 DNS服务器的所述第一 DNS查询作出响应,所述第一数据中心和所述第二数据中心两者与所述查询域名对应; 在所述一个或多个反射器DNS服务器处,接收一个或多个附加DNS查询; 用与所述查询域名对应的网络地址,对来自收集器DNS服务器的最终DNS查询作出响应;以及 基于所述本地DNS解析器与所述第二数据中心的一个或多个反射器DNS服务器和收集器DNS服务器之间的通信,确定所述本地DNS解析器与所述第二数据中心之间的通信的一个或多个网络性能测量。
2.如权利要求I所述的方法,其特征在于,所述网络地址是与所述查询域名对应的第三数据中心中的服务器的网际协议(IP)地址。
3.如权利要求I所述的方法,其特征在于,所述一个或多个网络性能测量包括所述第二数据中心与所述本地DNS解析器之间的通信的往返时间,所述往返时间被确定成在所述一个或多个反射器DNS服务器中的第一个处接收到的来自所述本地DNS解析器的第一请求与在所述反射器DNS服务器或所述收集器DNS服务器的第二个处接收到的来自所述本地DNS解析器的第二请求之间经过的时间量。
4.如权利要求I所述的方法,其特征在于,所述一个或多个网络性能测量包括所述第二数据中心与所述本地DNS解析器标识出的本地DNS解析器之间的通信的往返时间。
5.如权利要求I所述的方法,其特征在于,所述一个或多个网络性能测量包括所述第二数据中心与所述本地DNS解析器之间的分组丢失比率或分组丢失模式。
6.如权利要求5所述的方法,其特征在于,所述一个或多个网络性能测量包括第一数量和第二数量,所述第一数量是对于从所述第二数据中心中的一个或多个DNS服务器发送到所述本地DNS解析器的分组的分组丢失比率或分组丢失模式的第一测量,而第二数量是对于从所述本地DNS解析器发送到所述第二数据中心中的一个或多个DNS服务器的分组的分组丢失比率或分组丢失模式的第二测量。
7.如权利要求I所述的方法,其特征在于,对来自所述第一DNS服务器的第一 DNS查询作出响应包括生成由所述第一 DNS服务器返回给所述本地DNS解析器的响应,所述响应包括所述一个或多个反射器DNS服务器之一的网络地址、以及与对所述最终DNS查询作出响应中要被包括的查询域名对应的网络地址两者。
8.如权利要求7所述的方法,其特征在于,对所述第一DNS查询作出响应包括将其中嵌入与所述查询域名对应的网络地址的别名包括在所述响应中,其中接收一个或多个附加DNS查询包括接收包括所述别名的一个或多个附加DNS查询,所述方法还包括在所述收集器DNS服务器处获取与来自所述别名的查询域名对应的网络地址。
9.如权利要求I所述的方法,其特征在于,所述一个或多个反射器DNS服务器和所述收集器DNS服务器是在所述第二数据中心中的同一计算设备上实现的,该计算设备具有多个网络接口。
10.如权利要求I所述的方法,其特征在于,所述收集器DNS服务器被包括在所述第二数据中心中。
11.一种计算设备,包括 处理器;以及 一个或多个其上存储有多个指令的计算机可读介质,所述指令由所述处理器执行致使所述处理器 在反射器域名系统(DNS)服务器处,接收对与域名对应的网络地址的第一 DNS请求,所述第一 DNS请求是从本地DNS解析器接收的; 向所述本地DNS解析器返回第一响应,所述第一响应将所述本地DNS解析器反射到收集器DNS服务器; 在所述收集器DNS服务器处,接收对与所述域名对应的网络地址的第二 DNS请求,所述第二 DNS请求是从所述本地DNS解析器接收的; 向所述本地DNS解析器返回第二响应,所述第二响应包括与所述域名对应的网络地址;以及 基于所述第一请求、所述第二请求、所述第一响应、和所述第二响应中的两个或更多个,确定对所述本地DNS解析器与所述数据中心之间的通信的一个或多个网络性能测量。
12.如权利要求11所述的计算设备,其特征在于,所述反射器DNS服务器和所述收集器DNS服务器两者是在具有多个网络接口的同一计算设备中实现的。
13.如权利要求11所述的计算设备,其特征在于,所述第一DNS请求和所述第二 DNS请求两者包括由所述本地DNS解析器从第三DNS服务器获取的别名,其中作为与所述域名对应的网络地址的目标地址被嵌入所述别名中。
14.如权利要求11所述的计算设备,其特征在于,所述反射器DNS服务器和所述收集器DNS服务器两者被包括在同一数据中心中,且所述一个或多个网络性能测量包括所述数据中心与所述本地DNS解析器之间的通信的往返时间,所述往返时间被确定成所述第一请求与所述第二请求之间经过的时间量,其中所述第一请求与所述第二请求是来自所述本地DNS解析器的两个连续请求。
15.如权利要求11所述的计算设备,其特征在于,所述反射器DNS服务器和所述收集器DNS服务器两者被包括在同一数据中心中,且其中所述一个或多个网络性能测量包括与所述数据中心和所述本地DNS解析器之间的分组丢失相关的信息。
全文摘要
顶层域名系统(DNS)服务器接收来自本地DNS解析器的DNS查询,该DNS查询请求与域名对应的网络地址。顶层DNS服务器将本地DNS解析器反射到反射器DNS服务器。反射器DNS服务器将本地DNS解析器反射到收集器DNS服务器,收集器DNS服务器进而将网络地址返回给本地DNS解析器。反射器DNS服务器和收集器DNS服务器两者都在同一数据中心中,且本地DNS解析器与数据中心之间的通信的一个或多个网络性能测量是基于本地DNS解析器与反射器DNS服务器和收集器DNS服务器两者之间的通信来确定的。
文档编号H04L12/26GK102859942SQ201180020741
公开日2013年1月2日 申请日期2011年4月26日 优先权日2010年4月28日
发明者黄诚, N·L·霍特, A·G·格林伯格, 李劲 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1