具体实施方式
现在参考附图,图1描述了可实现本发明的数据处理系统的网络的图示。网络数据处理系统100是可实现本发明的计算机的网络。网络数据处理系统100包含网络102,其是用于提供网络数据处理系统100内连接在一起的各种设备和计算机之间的通信链路的媒体。网络102可包括连接,诸如有线、无线通信链路、或者光缆。
在所描述示例中,服务器104与存储单元106一起连接于网络102。此外,客户108、110和112连接于网络102。这些客户108、110和112可以是例如个人计算机或网络计算机。在所描述示例中,服务器104提供数据(诸如引导文件、操作系统图像和应用)给客户108-112。客户108、110和112是服务器104的客户。网络数据处理系统100可包括额外的服务器、客户和其它未示出的设备。在所描述示例中,网络数据处理系统100是具有网络102的因特网,其表示世界范围内使用传输控制协议/因特网协议(TCP/IP)的协议组彼此通信的网络和网关的集合。在因特网的核心是主节点或主机计算机之间的高速数据通信链路的主干,其由路由数据和消息的数千个商业、政府、教育和其它计算机系统组成。当然,网络数据处理系统100还可被实现为多种不同类型的网络,例如,内联网、局域网(LAN)或广域网(WAN)。图1是为了作为示例,而并未作为对本发明在体系结构上的限制。
参考图2,根据本发明优选实施例描述了可被实现为服务器(诸如图1中的服务器104)的数据处理系统的框图。数据处理系统200可以是包括连接到系统总线206的多个处理器202和204的对称多处理器(SMP)系统。可替代地,可以使用单处理器系统。同样连接到系统总线206的是存储器控制器/高速缓存208,其提供到本地存储器209的接口。I/O总线桥210连接到系统总线206,并且提供到I/O总线212的接口。存储器控制器/高速缓存208和I/O总线桥210可以如所示被集成。
连接到I/O总线212的外围组件互连(PCI)总线桥214提供到PCI本地总线216的接口。多个调制解调器可以连接到PCI本地总线216。典型的PCI总线实现将支持四个PCI扩展槽或内插连接器。可通过连接到PCI本地总线216的调制解调器218和网络适配器220提供通过内插连接器到图1中的客户108-112的通信链路。
额外的PCI总线桥222和224提供用于额外PCI本地总线226和228的接口,通过其可以支持额外的调制解调器或网络适配器。以此方式,数据处理系统200允许到多个网络计算机的连接。存储器映像式图形适配器230和硬盘232也可以如所示被直接或间接连接到I/O总线212。
本领域普通技术人员将理解,图2中描述的硬件可以变化。例如,除了所描述的硬件外或者作为所描述硬件的替代,还可以使用其它外围设备,诸如光盘驱动器等。所描述的示例不意味着对本发明在体系结构上的限制。
例如,图2中描述的数据处理系统可以是作为纽约Armonk的国际商业机器公司的产品的IBM eServer pSeries系统,其运行高级交互执行(AIX)操作系统或LINUX操作系统。
现在参考图3,描述了可实现本发明的数据处理系统的框图。数据处理系统300是客户计算机的示例。数据处理系统300使用外围组件互连(PCI)本地总线体系结构。尽管所描述的示例使用PCI总线,但是也可以使用诸如加速图形端口(AGP)和工业标准体系结构(ISA)的其它总线体系结构。处理器302和主存储器304通过PCI桥308连接到PCI本地总线306。PCI桥308还可以包括用于处理器302的高速缓冲存储器和集成存储器控制器。通过直接组件互连或通过内插板可以实现到PCI本地总线306的额外连接。在所描述的示例中,局域网(LAN)适配器310、小型计算机系统接口(SCSI)主机总线适配器312和扩展总线接口314通过直接组件连接被连接到PCI本地总线306。相反,音频适配器316、图形适配器318和音频/视频适配器319通过插入到扩展槽中的内插板连接到PCI本地总线306。扩展总线接口314提供了用于键盘与鼠标适配器320、调制解调器322和附加存储器324的连接。SCSI主机总线适配器312提供用于硬盘驱动器326、磁带驱动器328和CD-ROM驱动器330的连接。典型PCI本地总线实现将支持三个或四个PCI扩展槽或内插连接器。
操作系统运行在处理器302上,并且被用来协调和提供对图3中的数据处理系统300内各种组件的控制。操作系统可以是可购买到的操作系统,诸如可从Microsoft公司购买到的Windows XP。面向对象编程系统(诸如Java)可以和操作系统一道运行,并且提供从数据处理系统300上运行的Java程序或应用对操作系统的调用。“JAVA”是Sun Microsystems公司的商标。用于操作系统、面向对象编程系统和应用或程序的指令位于存储设备(诸如硬盘驱动器326)中,并且可以被装入主存储器304中以由处理器302执行。
本领域普通技术人员将理解,图3中描述的硬件可以根据实现而变化。除了图3中所描述的硬件外或者作为所描述硬件的替代,可以使用其它内部硬件或外围设备,诸如闪速只读存储器(ROM)、等效非易失性存储器或光盘驱动器等。此外,本发明的过程可被应用于多处理器数据处理系统。
作为另一示例,数据处理系统300可以是被配置无需依靠某类网络通信接口而可以引导的独立系统。作为另一示例,数据处理系统300可以是个人数字助理(PDA)设备,其配置有ROM和/或闪速ROM,以便提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。
图3中所描述的示例和上述示例并不意味着体系结构上的限制。例如,数据处理系统300除了采取PDA的形式之外还可以是笔记本计算机或手持计算机。数据处理系统300还可以是信息站或Web设备。
本发明提供了一种用于在域名系统(DNS)服务器中给把域名翻译为因特网协议地址的请求按优先级排序的方法、装置和计算机指令。首先,在域名服务器中接收请求。接着,基于发送请求的源把请求按优先级排序。最后,根据分配给请求的优先级来处理请求。
图4是例示了根据本发明优选实施例的与DNS服务器交互的源数据处理系统的不同组的框图。DNS服务器400可以是服务器数据处理系统,诸如图1中的服务器104或图2中的数据处理系统200。源组A402、源组B404和源组C406可以各自包含多个服务器和客户数据处理系统,诸如图1中的服务器104、图2中的数据处理系统200、图1中的客户108、110和112、以及图3中的数据处理系统300。DNS服务器400可经由网络(诸如图1中的网络102或因特网)来连接到源组A402、源组B404和源组C406中的每个数据处理系统。每个源组中的每个数据处理系统还可以是网络的一部分。
DNS服务器400处理来自源组A402、源组B404和源组C406的每一源组中的多种源数据处理系统的请求。每个请求都是把字母数字域名(诸如mydomain.com)翻译为因特网协议地址(诸如123.45.67.890)的请求。DNS服务器400包含:域名和相应因特网协议地址的大型数据库、执行翻译的适当软件和硬件、以及把经翻译的因特网协议地址传输回请求源数据处理系统的适当软件和硬件。
在例示性实施例中,应该向来自源组A 402的请求给出比来自源组B404的请求更高的优先级。随后,将向来自源组B404的请求给出比来自源组C406的请求更高的优先级。例如,源组A402可以是其它DNS服务器,源组B404可以是已给出了预先选择的优先级的数据处理系统,而源组C406可以是进行DNS服务器400的请求的任何其它数据处理系统。
DNS服务器400包括包含关于多种源数据处理系统的数据的数据库。DNS服务器400可使用数据库给翻译域名的请求分配优先级。例如,DNS服务器400可包括允许DNS服务器400识别请求是否来自源组A402、源组B404和源组C406中的数据处理系统的数据库。接着DNS服务器400将相应地给该请求分配优先级。
尽管图4示出了根据特定类型的数据处理系统的以特定优先级安排的三个源组,但是许多其它实施例也是可能的。例如,可使用更多或更少的源组。源组可包括具有预先选择的优先级别的所有数据处理系统,而不是包括特定类型的数据处理系统的系统。可根据许多其它类型的选择因素来把数据处理系统分配给源组,所述选择因素诸如:地理位置、在某个时段中对DNS服务器做出的请求的总数、请求是否是一批类似请求中的一部分以及其它因素。
在其它示例中,可使用其它方法来分配DNS请求的优先级。例如,可以对特定源、由客户分配的源、或由客户分配的源组给出优先级。此外,不需要由源组分配优先级。例如,DNS服务器可包含允许DNS服务器标识源数据处理系统的类型或源数据处理系统的身份以及相应地对请求按优先级排序的软件和数据库。
在另一例示性实施例中,基于请求中包含的信息来执行按优先级排序。例如,请求可包括关联于组成请求的数据包的标志。该标志可包含关于请求优先级的信息。DNS服务器400包括解释标志中的数据的适当算法。接着DNS服务器基于标志中包含的数据给请求分配优先级。DNS服务器400根据所分配的优先级来处理请求。
在此例示性实施例中,客户数据处理系统当发送请求时添加标志或提供标志数据。因此,需要来自源的某种合作。在另一例示性实施例中,客户数据处理系统应该是可信的数据处理系统,以便防止DNS服务器上的洪流攻击。可信的数据处理系统是DNS服务器400被编程将其识别为可信的数据处理系统。
以此方式,客户数据处理系统能够分配请求的优先级。因此,客户数据处理系统可给某些请求分配高优先级,并给其它请求分配低优先级。例如,如果客户数据处理系统需要即时域名翻译来处理商业事务,则客户数据处理系统把指明该过程具有高优先级的数据包括在标志中。另一方面,如果客户数据处理系统正在处理收集大量IP地址的命令,而完成命令的时间不是问题,那么对于翻译的每个请求可包含将请求置于较低优先级的标志。
此外,可以结合用于给域名翻译请求分配优先级的方法。例如,DNS服务器400可包含适于识别标志中包含的关联于进入请求的信息的算法。此外,该算法可进一步适于使得DNS服务器400识别发送请求的源数据处理系统,并相应地给请求按优先级排序。该算法可用任何特定方式根据具有标志的请求和被识别为来自不同源数据处理系统的请求来给请求按优先级排序。
无论使用哪种方法来给对于域名翻译的进入请求按优先级排序,DNS服务器都可使用调度算法来确保请求根据适当优先级被处理。例如,请求可被排队到一组队列之一中。高优先级的请求被分配给第一队列,而较低优先级的请求相应地被分配给其它队列。接着DNS服务器首先处理第一队列中的请求,其次处理第二队列中的请求,依此类推,直到所有请求都被处理完为止。DNS服务器还可消耗定量的资源来同时处理每个队列,使得所有队列从DNS服务器接收某种关注。不过,如果DNS服务器没有足够资源来处理对于域名翻译的所有进入请求,则具有较高优先级的队列从DNS服务器接收更多资源。
例如,DNS服务器可包括根据加权系统来调度请求的算法。每个进入请求根据标志信息、源的因特网协议地址或二者,接收1、2或3的权。权3请求被分配给接收最高优先级的队列,权1请求被分配给接收最低优先权的队列,而权2请求被分配给接收的优先权高于权1请求但低于权3请求的队列。在此情形中,DNS服务器处理来自权3队列的三个包,接着处理来自权2请求的两个请求,并接着处理来自权1队列的一个请求。因此,3/6(或1/2)的DNS服务器资源被用来处理权3队列,2/6(或1/3)的DNS服务器资源被用来处理权2队列,而1/6的DNS服务器资源被用来处理权1队列。
尽管以上示例示出了权1、2和3的三个队列,但也可使用任意数量的队列系统。例如,可使用权1、2和4的三个优先级队列,以便处理器使用4/7的处理器资源在权4队列上,2/7的处理器资源在权2队列上,以及1/7的资源在权1队列上。此外,可使用更多或更少权的队列。
图5是例示了根据本发明优选实施例的生成具有优先级标志的DNS请求的方法的流程图。该过程开始于源或客户数据处理系统把标志添加到对于域名翻译的请求(步骤500)。添加标志包括把附加数据添加到请求数据包和把格式数据填入请求数据包,如下面进一步描述的。接着客户数据处理系统把DNS请求传输到DNS服务器(步骤502)。接着客户数据处理系统等待来自DNS服务器的响应(步骤504)。做出客户数据处理系统是否已接收到响应的判定(步骤506)。如果尚未接收到响应,则过程返回步骤504,而客户数据处理系统继续等待响应。如果已接收到响应,则过程终止,客户数据处理系统按照需要来处理响应。返回步骤504,如果超过了预定时间量,则过程可提前终止,以防止过程无限循环。
在例示性实施例中,标志可以是组成对于把域名翻译为因特网协议地址的请求的数据包的任何部分。例如,出于此原因可以使用DNS请求的第四个八位组中的三比特长的通常不使用的“Z”字段。在此情形中,标志允许DNS服务器具有最多八个级别的优先级。此外,DNS数据包的其它部分可被用于分配更多或更少级别的优先级。
在另一例示性实施例中,标志被添加到组成对于翻译域名的请求的数据包。在此情形中,标志可包括预先选择数量的级别的优先级。
图6是例示了根据本发明优选实施例的在DNS服务器中基于优先级处理对于域名翻译的请求的方法的流程图。过程开始于DNS服务器从客户数据处理系统接收对于翻译域名的请求(步骤600)。DNS服务器根据标志中包含的数据对请求按优先级排序(步骤602)。接着DNS服务器根据在步骤602期间确定的优先级处理请求(步骤604),而此后过程终止。最后,DNS服务器把响应传输到客户(步骤606)。响应包括对应于DNS服务器所接收的域名的IP地址。
图7是例示了根据本发明优选实施例的生成DNS请求的方法的流程图。过程开始于源或客户数据处理系统把翻译域名的请求传输到域名系统(DNS)服务器(步骤700)。接着客户数据处理系统等待来自DNS服务器的响应(步骤702)。做出客户数据处理系统是否已接收到响应的判定(步骤704)。如果尚未接收到响应,则过程返回步骤702,并且客户数据处理系统继续等待响应。如果已接收到响应,则过程终止,而客户数据处理系统按照需要来处理响应。返回步骤702,如果超过了预定时间量,则过程可提前终止,以防止过程无限循环。
图8是例示了根据本发明优选实施例的在DNS服务器中基于优先级处理对于域名翻译的请求的方法的流程图。过程开始于DNS服务器接收把域名翻译为IP地址的请求(步骤800)。接着DNS服务器基于源数据处理系统的特性或类型对请求按优先级排序(步骤802)。例如,DNS服务器可维持一个映射表,所述映射表被用于基于源数据处理系统的因特网协议地址来查找请求的优先级。在另一示例中,DNS服务器基于来自特定客户的优选的一个或多个源或者源的其它特性来对请求按优先级排序。接着DNS服务器根据在步骤802期间建立的优先级处理请求(步骤804)。在处理请求之后,DNS服务器把响应传输到源或客户数据处理系统(步骤806)。响应包括与所传输的域名相关联的IP地址。此后过程终止。
本发明的机制具有优于当前可用的用于处理对于域名翻译的请求的系统和方法的若干优点。例如,来自网络中的重要机器或过程的DNS请求具有有保障的服务级别。此外,DNS服务器不易受到洪流攻击。此外,取决于资源限制可以使用基于标志或基于源的区分。
此处描述的基于标志的方法具有下述优点,即DNS服务器中使用的机制把请求路由到相应的优先级队列是相对简单的。仅需要简单的标志查找。另一优点在于,优先级分配的粒度可以处于独立过程的级别,而不是整个机器的级别。因此,基于标志的方法是高效的。
此处描述的基于源的方法具有下述优点,即在源端不需要改变。请求域名翻译的源数据处理系统将正常运行。所需的唯一改变在DNS服务器中,DNS服务器将使用算法给域名翻译请求按优先级排序,如上所述。因此,基于源的方法更易于实现,尤其是在非常大型的网络(诸如因特网)上,尽管基于源的方法没有基于标志的方法那样高效。
尽管此处描述的方法和设备被用于在DNS服务器中给把域名翻译为IP地址的请求按优先级排序,但是此处描述的方法和设备也可被用于在不同类型的网络上给服务器的请求按优先级排序。例如,如果局域网(LAN)服务器接收到翻译网络上的设备名的请求,则可把标志附加于该请求。LAN服务器根据标志中包含的信息来按优先级排序何时处理请求,如上所述。同样地,LAN服务器可基于做出请求的客户计算机的身份、做出请求的用户的身份或任何其它参数来给请求按优先级排序。此外,上述的方法和设备可被用于在数据处理环境中给组成数据处理系统的其它种类的请求按优先级排序,所述请求诸如打印文件、处理文件或执行程序的请求。
重要地是要注意,尽管已在完全运行的数据处理系统的环境中描述了本发明,但是本领域普通技术人员将理解,本发明的过程能够以指令的计算机可读媒体的形式和多种形式被分布,本发明等同地应用而不管实际用来实施该分布的承载信号的媒体的具体类型。计算机可读媒体的示例包括可记录类型的媒体(诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM)和传输类型的媒体(诸如数字和模拟通信链路、使用例如射频和光波传输的传输形式的有线或无线通信链路)。计算机可读媒体可采用已编码格式的形式,所述已编码格式被解码用于在具体数据处理系统中的实际使用。
已出于例示和描述的目的呈现了本发明的描述,其并非是穷尽性的或把本发明限于所公开的形式。许多修改和变体对于本领域普通技术人员将会显而易见。所选择和描述的实施例是为了最佳地解释本发明的原理、实际应用,以及使本领域普通技术人员能够理解本发明具有适于所预期具体使用的各种修改的各种实施例。