著录项信息
专利名称 | 基于全球网络定位的全局负载均衡方法 |
申请号 | CN200310100387.X | 申请日期 | 2003-10-14 |
法律状态 | 权利终止 | 申报国家 | 暂无 |
公开/公告日 | 2004-09-15 | 公开/公告号 | CN1529460 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/24 | IPC分类号 | H04L12/24;H04L12/56;H04L29/02查看分类表>
|
申请人 | 北京邮电大学 | 申请人地址 | 北京市海淀区西土城路***
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京邮电大学 | 当前权利人 | 北京邮电大学 |
发明人 | 林宇;柯怡;王文东;程时端;卢美莲 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 夏宪富 |
摘要
一种基于全球网络定位的全局负载均衡方法,其特征在于:DNS服务器根据DNS查询报文中Web客户的GNP坐标和所要解析的域名对应的具有不同IP地址的各个镜像Web服务器的GNP坐标,计算该Web客户与各个服务器的GNP距离,再根据该距离进行全局负载均衡处理,将距离该Web客户最近或相对较近的服务器的IP地址作为DNS查询结果返回给该Web客户。为此需要修改现有的DNS查询报文格式和现有的DNS服务器软件。该方法是对现在最常用的基于DNS服务器轮循的全局负载均衡方法的改进和优化,能够保证所选择的镜像服务器与发出请求的Web客户的距离最近或相对较近,提高Web请求的响应速度和web页面的传输速度,减少不必要的网络流量,提高web系统的服务质量。本发明具有很好的应用前景。
1、一种基于全球网络定位的全局负载均衡方法,其特征在于:DNS服务 器根据DNS查询报文中Web客户的GNP坐标和所要解析的域名对应的具有不 同IP地址的各个镜像Web服务器的GNP坐标,计算该Web客户与各个服务器 的GNP距离,再根据该距离进行全局负载均衡处理,在距离该Web客户最近 的多个服务器的IP地址中选择一个IP地址作为DNS查询结果返回给该Web 客户。
2、根据权利要求1所述的全局负载均衡方法,其特征在于:该方法操作之 前进一步包括下列步骤:
A、修改现有的DNS查询报文格式,即在该DNS查询报文中加入准备发 出http请求的Web客户的GNP坐标;DNS服务器返回的查询结果响应报文, 不需做任何改动;
B、修改现有的DNS服务器软件,使之能够识别含有GNP坐标的DNS查 询报文和在数据库中找到每个域名所对应的各个服务器的IP地址及其GNP坐 标,完成基于GNP的全局负载均衡算法的初始化。
3、根据权利要求2所述的全局负载均衡方法,其特征在于:所述步骤A 进一步包括下列操作步骤:
A1、修改查询报文首部的定义:在标志字段增加opcode字段的值,即在 现有opcode字段定义0为标准查询、1为反向查询和2为服务器状态请求的基 础上,增加数值3为支持GNP坐标的DNS查询;
A2、在DNS查询报文中加入GNP坐标。
4、根据权利要求3所述的全局负载均衡方法,其特征在于:所述步骤A2 在DNS查询报文中加入GNP坐标的操作步骤为下述两种方法之一:
修改查询报文的问题部分:在支持GNP坐标的DNS查询报文中,除了原 有的域名的IP地址查询字段外,增加一个问题字段,并在该问题字段中写入本 主机的GNP坐标,其查询类型为Coordinate,类型值为25,表示Web客户的 GNP坐标信息,查询类为5,指GNP坐标;再在查询名内存储本主机的GNP 坐标,即按GNP坐标的格式CH S给出本主机的坐标,该式表示在N维坐标空间 S下的主机H的GNP坐标,其中N为当前GNP坐标的维数;同时将报文首部 的问题数修改为2,即将原有的问题数增加1;或
修改和定义额外信息字段:定义支持GNP坐标的DNS查询报文的额外信息 字段格式采用资源记录RR格式;其中域名为0,表示没有常规意义上的域名; 定义类型为Coordinate,类型值为25,表示Web客户的GNP坐标信息;类的值为 5,指的是GNP坐标;资源数据长度说明资源数据的数量,当该资源是GNP坐标 时,即类型字段为25时,则按GNP坐标的格式CH S给出本机的坐标,该式表示 在N维坐标空间S下的主机H的GNP坐标,其中N为当前GNP坐标的维数。
5、根据权利要求2所述的全局负载均衡方法,其特征在于:所述步骤B 进一步包括下列操作步骤:
B1、DNS服务器识别支持GNP坐标的DNS查询报文:DNS服务器读出 DNS请求报文首部标志字段中的opcode字段为3,即识别该报文为支持GNP 坐标的DNS查询报文,再在第二个问题域中读出发出查询请求的Web客户的 GNP坐标;或根据额外资源记录数,在其后的额外资源域中读出发出查询请求 的Web客户的GNP坐标;
B2、修改DNS服务器的数据库:在原有DNS数据库的基础上,将每个域 名所对应的各个镜像Web服务器的GNP坐标与其IP地址一起存储记录;DNS 服务器在更新数据时,同时更新各个IP地址对应的GNP坐标,以便在DNS服 务器进行域名解析时,得到对应于同一个域名的各个服务器的IP地址和GNP 坐标。
6、根据权利要求1所述的全局负载均衡方法,其特征在于:该方法包括下 列操作步骤:
(1)当Web客户要发出http请求时,如果此前在本主机内没有保存本主 机在空间S的GNP坐标CH S,则Web客户需要根据各路标Landmark和本主机 的距离,按照GNP算法计算本主机在空间S的GNP坐标,并保存该GNP坐标;
(2)Web客户按照修改后的DNS查询报文格式发出含有本主机GNP坐标 信息的DNS查询请求;
(3)当DNS服务器收到Web客户发出的带有GNP坐标信息的域名解析 请求后,如果该DNS服务器不支持基于GNP的全局负载均衡方法,则按普通 DNS服务器的负载均衡方法,轮循选择一个服务器的IP地址返回;如果该DNS 服务器支持基于GNP的全局负载均衡方法,则根据GNP负载均衡算法选择一 个响应该Web客户的服务器的IP地址作为该Web客户的域名解析请求结果返 回;
(4)DNS服务器按照普通DNS响应报文的格式将查询结果返回给Web 客户,以便Web客户用收到的IP地址连接Web服务器,并下载Web页面。
7、根据权利要求6所述的全局负载均衡方法,其特征在于:所述步骤(3) 中,当DNS服务器支持基于GNP的全局负载均衡方法时,进一步包括下列操 作步骤:
(31)从DNS查询报文中取出该Web客户的GNP坐标,找到所要解析的 域名对应的IP地址列表后,按照GNP算法计算该Web客户到各个IP地址所对 应的服务器的GNP距离;
(32)在与发出DNS请求的Web客户GNP距离最近的多个服务器的IP 地址中选择一个IP地址;
(33)将所选IP地址作为DNS查询报文的响应结果写入DNS响应报文, 并返回给Web客户。
8、根据权利要求7所述的全局负载均衡方法,其特征在于:所述步骤(31) 中按照GNP算法计算Web客户到各个IP地址所对应的服务器的GNP距离的 算法公式是:
式中假设N维坐标空间S下的主机H1与主机H2的GNP坐标分别为:CH1 S =(x1, x2,...,xN), CH2 S=(y1,y2,...,yN)。
9、根据权利要求7所述的全局负载均衡方法,其特征在于:所述步骤(32) 中,在与发出DNS请求的Web客户GNP距离最近的多个服务器的IP地址中 选择一个IP地址的方法有下述两种:
选择与该Web客户的GNP距离最近的IP地址对应的服务器作为响应该 Web客户的服务器;或
先选择与该Web客户的GNP距离最近的多个IP地址,即按照距离排序最 小的若干个IP地址,再在该若干个IP地址中随机选择一个,将其对应的服务 器作为响应该Web客户的服务器。
10、根据权利要求8所述的全局负载均衡方法,其特征在于:所述选择与 Web客户的GNP距离最近的IP地址对应的镜像服务器Sj作为响应该客户Web 请求的服务器的计算公式为:j∈{1..n},且dH,Sj=mini∈{1..n}{dH,Si};即j取1,2,..., n中的一个,dH,Sj是dH,S1,dH,S2,...,dH,Sn中最小的一个;其中H为Web客户, n为与所解析的域名对应的具有不同IP地址的Web服务器的总数;
所述先选择与该Web客户的GNP距离最近的多个IP地址,再在该多个IP 地址中随机选择一个作为响应该Web客户的服务器的步骤中选择与Web客户 距离最近的多个Web服务器的数量m的计算公式为:式中为向 上取整,即为取大于等于n/2的最小整数;其中n为与所解析的域名对应 的具有不同IP地址的Web服务器的总数。
技术领域
本发明涉及一种基于全球网络定位GNP(Global Network Positioning)的全 局负载均衡方法,确切地说,涉及一种主要解决在一个域名对应着多个具有不 同IP地址的镜像Web服务器时,如何更好地选择由哪个服务器响应Web客户 请求的问题;属于负载均衡技术领域。
背景技术
参见图1,Web客户1(通常称为浏览器)与Web服务器2使用一个或多 个传输控制协议(TCP,Transmission Control Protocol)连接进行通信。Web浏 览时,客户端与服务器在TCP连接上采用超文本传输协议(HTTP,Hypertext Transfer Protocol)进行通信。Web客户发出http请求,Web服务器对客户端请 求进行响应,向Web客户提供Web的内容和某种形式的数据。
参见图2,当客户需要和远端Web系统通信,如一个用户连接Web站点,在 实际和远端Web系统开始通信前,必须将Web域名转换为IP地址,这个转换由域 名服务器(DNS,Domain Name Server)来完成,因此在客户机配置中至少需 要指定一个域名服务器DNS。当Web客户向它的一个DNS服务器发出查询请求, 即一个客户端1(如浏览器)程序,产生一个统一资源定位(URL,Uniform Resource Locator,)解析请求,例如http://www.bupt.edu.cn,以DNS查询报文的 形式交给本地DNS服务器2时,该本地DNS服务器2会尽可能把该域名(即 www.bupt.edu.cn)解析成IP地址。本地DNS服务器2接受了客户机的查询时,客 户机1通常处于等待状态;该本地域名服务器2就在其域名数据库中查找所查询 域名对应的IP地址,或从比它层次级别更高的DNS服务器3得到与接收到的查询 相匹配的域名对应的IP地址。也就是说,如果客户机1所查询的域名解析结果就 在该本地域名服务器2的缓存中,可以直接得到结果;如果答案不在该本地域名 服务器2的缓存,该域名服务器2必须到其它域名服务器3查找,还可以将查询发 送到根服务器,并根据根服务器值引导所查询域的授权服务器。一旦该本地服 务器2从授权服务器得到答案,它就将答案保存在它的缓存中,并将答案提供给 客户。DNS服务器将查询结果以DNS响应报文的形式返回给客户,以便客户使 用收到的IP地址连接Web服务器并下载Web页面。DNS定义了一个用于查询和响 应的报文格式。下表是这个报文的总体格式。该报文由12字节长的首部和4个长 度可变的字段组成。
在DNS的报文首部里,标识字段由客户程序设置并由服务器返回结果。客 户程序通过它来确定响应与查询是否匹配。16bit的标志字段被划分为若干子字 段,如下表所示。
QR opcode AA TC RD RA (zero) rcode
1 4 1 1 1 1 3 4
其中QR是1bit字段:0表示查询报文,1表示响应报文。opcode是一个4bit 字段:通常值为0,表示标准查询,其它值为1和2,为1时,表示反向查询(即 通过IP地址查找对应的域名);为2时,表示服务器状态请求。AA是1bit标志, 表示授权回答(authoritative answer),说明该域名服务器是授权于该域的。TC 是1bit字段,表示可截断的(truncated)。使用用户数据报协议(UDP,User Datagram Protocol)时,它表示当应答的总长度超过512字节时,只返回前512 个字节。RD是1bit字段,表示期望递归(recursion desired)。该比特可以设置在 一个查询中,并在响应中返回。该标志告诉域名服务器必须处理这个查询,称 为递归查询。如果该比特位为0,且被请求的域名服务器没有授权回答,它就返 回一个能解答该查询的其他域名服务器列表,称为迭代查询。RA是1bit字段, 表示可用递归。如果域名服务器支持递归查询,则在响应中将该比特设置为1。 除了某些根服务器,大多数域名服务器都提供递归查询。随后的3bit字段必须为 0。rcode是一个4bit的返回码字段。通常的值为0,表示没有差错;数值为3,表 示名字差错。名字差错只有从一个授权域名服务器上返回,它表示在查询中指 定的域名不存在。随后的4个16bit字段说明最后4个变长字段中包含的条目数。 对于查询报文,问题数通常是1,而其他3项则均为0。对于应答报文,回答数至 少是1,剩下的两项可以是0或非0。
在DNS查询报文中的查询问题部分中的每个问题的格式如下表所示,通常 只有一个问题。
其中查询名是要查找的IP地址或域名,它是一个或多个标识符的序列。每 个标识符以首字节的计数值来说明随后标识符的字节长度,每个查询名都以最 后字节为0结束,长度为0的标识符是根标识符。这里的计数字节的值是0~63 的数,即标识符的最大长度仅为63。因为计数字节的最高两个比特为1,即值 192~255被用于压缩格式。该字段无需以整32bit边界结束,即无需填充字节。
参见图3,该图说明了如何存储域名www.bupt.edu.cn。它是四个标识符的序 列,每个标识符都以首字节的计数值(分别为3、4、3、2)来说明随后标识符 的字节长度,并以最后字节为0结束该查询名。
每个查询问题有一个查询类型,每个响应(也称资源记录)也有一个类型, 总共大约有20个不同的类型值。下表显示了其中的一些查询类型值,表中显示 的类型值中只有两个用于查询类型:A和PTR。最常用的查询类型是A,表示期 望获得查询名的IP地址。另一个查询类型是PTR,表示请求获得一个IP地址对 应的域名。
名字 数值 描述 A NS CNAME PTR HINPO MX 1 2 5 12 13 15 IP地址 名字服务器 规范名称 指针记录 主机信息 邮件交换记录 AXFR 或ANY 252 255 对区域转换的请求 对所有记录的请求
查询类通常是1,指互联网地址。某些站点也支持其他非IP地址。
在DNS响应报文中的资源记录部分中最后的三个字段:回答字段、授权字 段和额外信息字段,均采用如下表所示的称为资源记录(RR,Resource Record) 的格式。
其中域名是记录中资源数据对应的名字。它的格式和图3所示的查询名字段 格式相同。类型说明资源记录的类型码。它的值和前面介绍的查询类型值是一 样的。类通常为1,指互联网数据。生存时间字段是客户程序保留该资源记录的 秒数。资源记录通常的生存时间值为2天。资源数据长度说明资源数据的数量。 该数据的格式依赖于类型字段的值。对于类型1(A记录)资源数据是4字节的IP 地址。
在互联网应用中有很多场合需要估计网络距离,如还回时延(round-trip delay);又如:对应一个Web站点(如Yahoo)有多个映像服务器(S1...Sn) 可以同时为Web客户提供服务,当一台主机H要连接到该Web站点时,希望 选择连接距离该主机最近的一个映像服务器,以保证web页面传输速度,提高 http请求的响应速度,进而提高Web服务质量。这时,就需要估计网络中该主 机H与各个映像服务器之间的距离。由此可见,估计网络中端到端主机间的距 离是很有必要的。
目前,GNP(Global Network Positioning)是估计端到端网络距离比较有效 的方法,其算法的思路是:根据网络结点之间的距离信息,将各个网络结点映 射到一个N维坐标系,使各个网络结点在这个N维坐标系中的距离(即GNP 距离)尽可能接近于各个网络结点之间的实际距离(比如可以采用结点间的还 回时延作为实际距离)。这样,就可以通过计算网络结点之间的GNP距离来估 计网络结点之间的实际距离。图4就是把网络中的四个结点放入一个三维坐标 系示意图。
下面简要说明GNP算法估计网络中各个结点间距离的计算步骤:
首先在网络中找出一些结点作为路标(Landmark),把这些路标放入一个N 维坐标系,使得这些路标的坐标间的距离与它们之间的实际距离(如还回时延) 的差最小,再计算出这些路标在N维坐标系中的坐标。图5就是在GNP算法 中,将网络中三个结点L1、L2、L3作为路标放入二维坐标系的操作示意图。
然后,将需要测量距离的普通主机放入N维坐标系。根据它们与这些路标 之间的实际距离,计算它们在该坐标系中的坐标。图6是GNP算法中参照图5中 的路标L1、L2、L3将另一台普通主机放入二维坐标系的操作示意图。
这样,GNP算法就可以把网络上的任一结点放入N维坐标系。之后,就可 以利用两台主机的GNP坐标直接计算它们之间的GNP距离,并作为它们之间网 络距离的估计值。实验证明,直接通过GNP坐标计算得到的两台主机间的GNP 距离确实能够比较准确地反映网络中两台主机间的实际距离。如果N维坐标空 间S下的两台主机H1与主机H2的GNP坐标分别为:CH1 S=(x1,x2,...,xN), CH2 S=(y1,y2,...,yN),则它们之间的GNP距离的计算公式为:
现在,由于Internet业务量的快速增长,Web服务器的访问者数量呈快速增 加的发展态势,例如Yahoo每天会收到数百万次的访问请求,Web服务器必须具 备提供大量并发访问服务的能力。对于提供大负载Web服务的服务器来讲, CPU、I/O等处理能力会很快成为制约访问量的瓶颈,简单地提高单台服务器的 硬件性能并不能真正解决问题,因为单台服务器的性能总是有限的。尤其是网 络请求具有突发性,可能出现某一段时间内网络访问量急剧上升的现象,从而 造成网络瓶颈。因此,必须采用多台服务器提供网络服务,并将网络请求尽量 均衡地分配给这些服务器分担,才能提供处理大量并发请求的能力。
在负载均衡的条件下,多台服务器的地位是平等的,都可以独立为Web客 户提供服务而无须其它服务器的辅助,因此这些服务器通常称为镜像服务器。 然后通过某种负载均衡技术,将外部发送来的多个请求均匀分配到各台服务器 上,而接收到请求的服务器都独立响应客户机的请求。由于建立内容完全一致 的Web服务器并不复杂,因此负载均衡技术就成为建立一个高负载Web站点的 关键技术之一。
从其应用的地理结构上,负载均衡有两种,分为本地负载均衡(Local Load Balance):对本地的服务器群作负载均衡,以及全局负载均衡(Global Load Balance):对分别放置在不同的地理位置、有不同网络结构的服务器群进行负 载均衡。其中全局负载均衡具有能实现地理位置无关性,远距离为用户提供完 全的透明服务等优点;它不仅能够避免服务器、数据中心等的单点失效,也能 避免由于网络故障引起的单点失效,还可以解决网络拥塞问题,提高服务器响 应速度,达到更好的访问质量。全局负载均衡技术主要用于在多个区域拥有自 己服务器的站点(比如Yahoo),也可用于子公司地址分散、站点分布广、希望 通过企业内联网Intranet来达到资源统一合理分配目的的大公司。
目前,实现全局负载均衡最常用的技术是DNS服务器(Round Robin DNS) 轮循负载均衡技术。因为基于Web服务器软件的负载均衡需要改动其软件,经 常得不偿失;而DNS轮循负载均衡技术是在Web服务器软件之外,即在DNS 系统中实现负载均衡,这样就无需修改现有Web服务器软件。DNS负载均衡技 术是通过DNS服务器中的随机名字解析来实现的,也就是在DNS服务器中为 同一个域名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将 以DNS文件中域名记录的IP地址按顺序返回不同的解析结果,将客户端的访 问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负 载均衡的目的。这种DNS负载均衡的算法是轮循均衡:将每一次来自网络的请 求轮流分配给n个服务器。这种DNS负载均衡算法的优点是简单易行,Web 服务器可以位于互联网的任意位置上。该技术已经成功应用在包括Yahoo在内 的许多知名的全球Web站点上。
但是,这种基于简单轮循机制的DNS负载均衡技术功能比较简单,存在不 少缺点,特别突出的问题是服务器分配可能不合理。因为http服务传输的web 页面数据量较小,如果服务器离Web客户越近,越能保证web页面传输的速度, 即保证响应http请求的速度和保证Web服务的质量。然而,DNS负载均衡采 用的是简单轮循的方式,不能保证 例如,有些互联网服务提供商(ISP,Internet Service Provider)可能在美洲、欧洲、亚洲都有自己的应用服务器。采用DNS 轮循负载均衡方式,可能会让亚洲用户访问美洲的服务器,而美洲用户访问亚 洲的服务器。这样不仅降低了系统对用户的反应速度,降低系统的服务质量; 还引起不必要的跨洋网络流量,增加了ISP的通信成本。
发明内容
本发明的目的是提供一种基于全球网络定位GNP的全局负载均衡方法,该 方法是对现在最常用的基于DNS服务器轮循的全局负载均衡方法的改进和优 化,能够保证所选择的镜像服务器与发出请求的Web客户的距离最近或相对较 近,提高Web请求的响应速度和web页面的传输速度,进而减少不必要的网络 流量,提高Web系统的服务质量。
本发明的目的是这样实现的:一种基于全球网络定位的全局负载均衡方法, 其特征在于:DNS服务器根据DNS查询报文中Web客户的GNP坐标和所要解 析的域名对应的具有不同IP地址的各个镜像Web服务器的GNP坐标,计算该 Web客户与各个服务器的GNP距离,再根据该距离进行全局负载均衡处理,在 距离该Web客户最近的多个服务器的IP地址中选择一个IP地址作为DNS查询 结果返回给该Web客户。
该方法操作之前进一步包括下列步骤:
A、修改现有的DNS查询报文格式,即在该DNS查询报文中加入准备发 出http请求的Web客户的GNP坐标;DNS服务器返回的查询结果响应报文, 不需做任何改动;
B、修改现有的DNS服务器软件,使之能够识别含有GNP坐标的DNS查 询报文和在数据库中找到每个域名所对应的各个服务器的IP地址及其GNP坐 标,完成基于GNP的全局负载均衡算法的初始化。
所述步骤A进一步包括下列操作步骤:
A1、修改查询报文首部的定义:在标志字段增加opcode字段的值,即在 现有opcode字段定义0为标准查询、1为反向查询和2为服务器状态请求的基 础上,增加数值3为支持GNP坐标的DNS查询;
A2、在DNS查询报文中加入GNP坐标。
所述步骤A2在DNS查询报文中加入GNP坐标的操作步骤为下述两种方 法之一:
修改查询报文的问题部分:在支持GNP坐标的DNS查询报文中,除了原 有的域名的IP地址查询字段外,增加一个问题字段,并在该问题字段中写入本 主机的GNP坐标,其查询类型为Coordinate,类型值为25,表示Web客户的 GNP坐标信息,查询类为5,指GNP坐标;再在查询名内存储本主机的GNP 坐标,即按GNP坐标的格式CH S给出本主机的坐标,该式表示在N维坐标空间 S下的主机H的GNP坐标,其中N为当前GNP坐标的维数;同时将报文首部 的问题数修改为2,即将原有的问题数增加1;或
修改和定义额外信息字段:定义支持GNP坐标的DNS查询报文的额外信息 字段格式采用资源记录RR(Resource Record)格式;其中域名为0,表示没有 常规意义上的域名;定义类型为Coordinate,类型值为25,表示Web客户的GNP 坐标信息;类的值为5,指的是GNP坐标;资源数据长度说明资源数据的数量, 当该资源是GNP坐标时,即类型字段为25时,则按GNP坐标的格式CH S给出本 机的坐标,该式表示在N维坐标空间S下的主机H的GNP坐标,其中N为当前GNP 坐标的维数。
所述步骤B进一步包括下列操作步骤:
B1、DNS服务器识别支持GNP坐标的DNS查询报文:DNS服务器读出 DNS请求报文首部标志字段中的opcode字段为3,即识别该报文为支持GNP 坐标的DNS查询报文,再在第二个问题域中读出发出查询请求的Web客户的 GNP坐标;或根据额外资源记录数,在其后的额外资源域中读出发出查询请求 的Web客户的GNP坐标;
B2、修改DNS服务器的数据库:在原有DNS数据库的基础上,将每个域 名所对应的各个镜像Web服务器的GNP坐标与其IP地址一起存储记录;DNS 服务器在更新数据时,同时更新各个IP地址对应的GNP坐标,以便在DNS服 务器进行域名解析时,得到对应于同一个域名的各个服务器的IP地址和GNP 坐标。
该方法包括下列操作步骤:
(1)当Web客户要发出http请求时,如果此前在本主机内没有保存本主 机在空间S的GNP坐标CH S,则Web客户需要根据各路标Landmark和本主机 的距离,按照GNP算法计算本主机在空间S的GNP坐标,并保存该GNP坐标;
(2)Web客户按照修改后的DNS查询报文格式发出含有本主机GNP坐标 信息的DNS查询请求;
(3)当DNS服务器收到Web客户发出的带有GNP坐标信息的域名解析 请求后,如果该DNS服务器不支持基于GNP的全局负载均衡方法,则按普通 DNS服务器的负载均衡方法,轮循选择一个服务器的IP地址返回;如果该DNS 服务器支持基于GNP的全局负载均衡方法,则根据GNP负载均衡算法选择一 个响应该Web客户的服务器的IP地址作为该Web客户的域名解析请求结果返 回;
(4)DNS服务器按照普通DNS响应报文的格式将查询结果返回给Web 客户,以便Web客户用收到的IP地址连接Web服务器,并下载Web页面。
所述步骤(3)中,当DNS服务器支持基于GNP的全局负载均衡方法时, 进一步包括下列操作步骤:
(31)从DNS查询报文中取出该Web客户的GNP坐标,找到所要解析的 域名对应的IP地址列表后,按照GNP算法计算该Web客户到各个IP地址所对 应的服务器的GNP距离;
(32)在与发出DNS请求的Web客户GNP距离最近的多个服务器的IP 地址中选择一个IP地址;
(33)将所选IP地址作为DNS查询报文的响应结果写入DNS响应报文, 并返回给Web客户。
所述步骤(31)中按照GNP算法计算Web客户到各个IP地址所对应的服 务器的GNP距离的算法公式是:
式中假设N维坐标空间S下的主机H1与主机H2的GNP坐标分别为:CH1 S =(x1,x2,...,xN),CH2 S=(y1,y2,...,yN)。
所述步骤(32)中,在与发出DNS请求的Web客户GNP距离最近的多个 服务器的IP地址中选择一个IP地址的方法有下述两种:
选择与该Web客户的GNP距离最近的IP地址对应的服务器作为响应该 Web客户的服务器;或
先选择与该Web客户的GNP距离最近的多个IP地址,即按照距离排序最 小的若干个IP地址,再在该若干个IP地址中随机选择一个,将其对应的服务 器作为响应该Web客户的服务器。
所述选择与Web客户的GNP距离最近的IP地址对应的镜像服务器Sj作为 响应该客户Web请求的服务器的计算公式为:j∈{1..n},且 dH,Sj=mini∈{1..n}{dH,Si};即j取1,2,...,n中的一个,dH,Sj是dH,s1,dH,S2,..., dH,Sn中最小的一个;其中H为Web客户,n为与所解析域名对应的具有不同IP 地址的Web服务器的总数;
所述先选择与该Web客户的GNP距离最近的多个IP地址,再在该多个IP 地址中随机选择一个作为响应该Web客户的服务器的步骤中选择与Web客户 距离最近的多个Web服务器的数量m的计算公式为:式中为向 上取整,即为取大于等于n/2的最小整数;其中n为与所解析的域名对应 的具有不同IP地址的Web服务器的总数。
本发明基于全球网络定位GNP的全局负载均衡方法不是简单地轮循指定 一个服务器,而是考虑Web服务器与Web客户的相对位置因素进行负载均衡, 能够保证所选择的IP地址对应的服务器与发出请求的Web客户的距离最近或 相对较近,进而减少不必要的网络流量,保证http请求的响应速度,也保证了 Web服务的传输速度和质量,提高Web系统的服务质量。
本发明这种考虑距离因素的基于GNP的全局负载均衡方法还可以与其它 负载均衡算法相结合,应用于其它几种全局负载均衡技术。因此,本发明具有 很好的应用前景。
附图说明
图1是Web服务器向Web客户提供服务的连接示意图。
图2是DNS服务器向Web客户提供域名解析服务的过程示意图。
图3是在本发明DNS查询报文中举例域名www.bupt.edu.cn的存储记录方 式示意图。
图4是GNP算法中把网络中的四个结点放入一个三维坐标系示意图。
图5(A)、(B)分别是作为路标的三个结点L1、L2、L3在网络中的相对位 置图及将其放入二维坐标系的GNP算法操作示意图。
图6(A)、(B)分别是另一台普通主机与图5所示的三个路标L1、L2、L3 在网络中的相对位置图及将该主机放入二维坐标系的GNP算法操作示意图。
图7是本发明DNS服务器基于GNP的全局负载均衡方法的操作步骤示意 图。
图8是图7中的DNS服务器收到Web客户的域名解析请求后进行基于GNP 的全局负载均衡算法操作的处理流程方框图。
具体实施方式
本发明是一种基于全球网络定位GNP的全局负载均衡方法,也是对现有 DNS轮循负载均衡方法的改进,即将原来的轮循均衡算法改进为基于GNP的 全局负载均衡算法。该方法是由DNS服务器根据DNS查询报文中的Web客户 的GNP坐标和所要解析的域名对应的具有不同IP地址的各个镜像服务器的 GNP坐标,计算该Web客户与各个服务器的GNP距离,再根据该距离进行全 局负载均衡处理,将距离该Web客户最近或相对较近的服务器的IP地址作为 DNS查询结果返回给该Web客户。由于基于GNP算法求出的GNP距离能很好 地反映两台主机在网络上的距离(如还回时延round-trip delay),以GNP距离 为依据选择的Web服务器能够保证所选服务器与该Web客户网络距离最近或 相对较近。为此,本发明首先需要修改现有的DNS报文格式以及DNS服务器 软件,以便能够完成对基于GNP的全局负载均衡的支持。
由于要使DNS服务器在解析域名后选择与Web客户GNP距离最近或相对 较近的Web服务器对应的IP地址,本发明首先要在原有DNS查询报文的基础 上作一定的修改,即本发明在DNS查询报文中加入准备发出http请求的Web 客户的GNP坐标和修改报文首部的定义,DNS服务器返回的查询结果响应报 文不需做任何改动。
其中对查询报文首部定义的修改只是在标志字段增加opcode字段的值,即 在现有opcode字段定义0为标准查询、1为反向查询和2为服务器状态请求的 基础上,增加数值3为支持GNP坐标的DNS查询报文。标志字段中的其它字 段定义不变。下表是DNS报文首部中的标志字段的组成结构。
QR opcode AA TC RD RA (zero) rcode
1 4 1 1 1 1 3 4
对于在DNS查询报文中加入GNP坐标可以有两种方案:
一种是修改查询报文的问题部分:如果是普通DNS查询报文,通常只有一 个问题。如果是支持GNP坐标的DNS查询报文,除了原有的域名的IP地址查 询字段外,需要增加一个问题字段(如下表所示),并在该问题字段中写入本主 机的GNP坐标;其查询类型为Coordinate,类型值为25,表示Web客户的GNP 坐标信息,查询类为5,指GNP坐标。再在查询名内存储本主机的GNP坐标, 即按GNP坐标的格式CH S给出本主机的坐标,该式表示在N维坐标空间S下的 主机H的GNP坐标;例如五维空间中的GNP坐标为:5-3.01374721.120157 93.054810-6.04485212.845207,其中第一个数N是正整数,表示维数;N可 以为5、或7、或9、...;后面N个4字节浮点数为各个维坐标的值。同时要将 报文首部的问题数修改为2,即将原有问题数增加1。
另一种是修改和定义额外信息字段:通常的DNS查询报文的额外资源记录 数一般为0,表示没有额外信息字段,为了加入GNP坐标信息,本发明定义支 持GNP坐标的DNS查询报文的额外信息字段的格式如下表所示:采用资源记 录RR格式;其中域名为0,表示没有常规意义上的域名;定义类型为Coordinate, 其类型值为25,表示Web客户的GNP坐标信息;类的值为5,指的是GNP坐 标;资源数据长度说明资源数据的数量,如果该资源是GNP坐标,即类型字段 为25时,则按GNP坐标的格式CH S给出本机的坐标,该式表示在N维坐标空 间S下的主机H的GNP坐标。例如:五维空间中的坐标为:5-3.013747 21.120157 93.054810-6.044852 12.845207,其中第一个数N是正整数,表示 维数,N可以为5、或7、或9、...;后面N个4字节浮点数为各个维坐标的值。
此外,还要修改现有的DNS服务器软件,使之能够支持基于GNP的全局 负载均衡。具体做法是通过读出DNS请求报文首部标志字段中的opcode字段 为3,识别为支持GNP坐标的DNS查询报文,再在第二个问题域中读出发出 查询请求的Web客户的GNP坐标,或根据额外资源记录数,在其后的额外资 源域中读出发出查询请求的Web客户的GNP坐标;还要修改DNS服务器的数 据库,以完成基于GNP的全局负载均衡算法的初始化。即在原有DNS数据库 的基础上,将每个域名所对应的各镜像Web服务器的GNP坐标与其IP地址一 起记录;DNS服务器在更新数据时,要同时更新各个IP地址对应的GNP坐标。 这样,当DNS服务器进行域名解析时,能够得到对应于同一个域名的各个服务 器的IP地址和GNP坐标。
本发明基于全球网络定位GNP的全局负载均衡方法的过程概述是:在某一 Web客户要发送http请求之前,进行域名解析时,DNS服务器先用GNP算法 求出该Web客户到所要解析域名的各个IP地址对应的Web服务器的GNP距离, 再根据该GNP距离及基于GNP的全局负载均衡算法选择一个镜像Web服务器, 将其IP地址返回给Web客户。图7简明地表述了该处理过程。
参见图7,下面详细描述该处理过程。
(1)当Web客户要发出http请求时,如果以前在本主机内没有保留本主 机在空间S的GNP坐标CH S,则需要按GNP的方法根据各个路标Landmark和 本主机的距离(比如用还回时延表示该距离),计算本主机的GNP坐标,并保 存该GNP坐标。
(2)按照修改后的DNS查询报文格式发出DNS查询请求,即在DNS查 询报文中的标志字段设置opcode字段值为3和加入本主机的GNP坐标信息。
(3)当DNS服务器收到该Web客户的域名解析请求后,如果该DNS服 务器不支持基于GNP的全局负载均衡方法,则按普通DNS服务器的负载均衡 方法,轮循选择一个服务器的IP地址返回;如果该DNS服务器支持基于GNP 的全局负载均衡方法,则从DNS查询报文中取出Web客户的GNP坐标。因为 DNS服务器中保留了与所要解析的域名对应的多个IP地址IPS1、IPS2、...、IPSn (分别对应于镜像服务器S1、S2、...、Sn),以及其对应的GNP坐标CS1 S、CS2 S、...、 CSn S,根据这些服务器的GNP坐标和Web客户的GNP坐标,DNS服务器计算 出该Web客户与各个Web服务器之间的GNP距离dH,S1、dH,S2、...、dH,Sn,其 中计算两个结点之间的GNP距离的公式为: 式中该两 个结点是N维坐标空间S下的两个主机H1和H2,其GNP坐标分别为:CH1 S =(x1,x2,...,xN)和CH2 S=(y1,y2,...,yN)。
(4)DNS服务器选择某一个镜像服务器的IP地址作为Web客户域名解析 查询的结果。可以有两种选择方式,一种是选择与该Web客户GNP距离最近 的镜像服务器Sj作为响应该客户Web请求的服务器:j ∈{1..n},且 dH,Sj=mini∈{1..n}{dH,Si};即j取1,2,...,n中的一个,dH,Sj是dH,S1,dH,S2,..., dH,Sn中最小的一个;其中H为Web客户,n为与所解析域名对应的具有不同IP 地址的Web服务器的总数。但是,直接采用上述方式,有可能出现http请求分 配不当,即有大量同一区域的Web客户请求都按距离最近的原则分配到同一个 Web服务器,造成某个Web服务器负载较大,使得各个Web服务器负载差距 较大。此时建议选用另一种选择方式,即采用GNP距离最近与随机选择相结合 的办法:先选择与Web客户距离最近的多个Web服务器,例如m个;按照 (为向上取整,即为取大于等于n/2的最小整数,其中n 为与所解析的域名对应的具有不同IP地址的Web服务器的总数)的计算公式, 再在这m个Web服务器中随机选择一台作为响应该Web客户的服务器,将其 IP地址作为DNS服务器的域名解析结果返回给Web客户。
(5)DNS服务器按照普通DNS响应报文的格式将查询结果返回给Web 客户,以便Web客户用收到的IP地址连接Web服务器,并下载Web页面。
参见图8,该图是图7中的DNS服务器收到Web客户发出的带有GNP坐 标的域名解析请求后进行基于GNP的全局负载均衡算法操作的处理流程方框 图。也就是上述步骤(3)~(5)的操作流程图,这里不再赘述。
因为Web服务的响应速度是衡量其服务质量的一个重要指标,要求响应 http请求的Web服务器与该Web客户的距离最近或相对较近,进而保证http 请求的响应速度最快,是保证Web服务质量的关键之一。所以本发明在全局负 载均衡算法中,考虑到响应http请求的Web服务器与该Web客户之间的距离 确实很有必要,而且,本发明基于GNP的全局负载均衡算法中对距离因素的考 虑可以与其它负载均衡算法相结合,进而应用于其它几种全局负载均衡技术。 例如,可以类似地将GNP坐标加入http请求消息的头部,当利用http重定向 技术进行负载均衡时,可以从http消息头部中取出GNP坐标,并结合其它负载 均衡的算法(如考虑负载等其它因素的负载均衡算法)选择一个离Web客户相 对较近的Web服务器响应http请求。
法律信息
- 2012-12-12
未缴年费专利权终止
IPC(主分类): H04L 12/24
专利号: ZL 200310100387.X
申请日: 2003.10.14
授权公告日: 2009.01.28
- 2009-01-28
- 2004-11-17
- 2004-09-15
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2011-05-25 | 2011-05-25 | | |
2 | | 2011-05-25 | 2011-05-25 | | |