CN101159573A - 一种利用任播技术实现负载分担的方法、设备及系统 - Google Patents

一种利用任播技术实现负载分担的方法、设备及系统 Download PDF

Info

Publication number
CN101159573A
CN101159573A CNA2007101218865A CN200710121886A CN101159573A CN 101159573 A CN101159573 A CN 101159573A CN A2007101218865 A CNA2007101218865 A CN A2007101218865A CN 200710121886 A CN200710121886 A CN 200710121886A CN 101159573 A CN101159573 A CN 101159573A
Authority
CN
China
Prior art keywords
server
broadcast
appointing
resource situation
anycast group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2007101218865A
Other languages
English (en)
Inventor
黄哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CNA2007101218865A priority Critical patent/CN101159573A/zh
Publication of CN101159573A publication Critical patent/CN101159573A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种利用任播技术实现负载分担的技术方案,将需要进行负载分担的各服务器组成任播组,通过任播技术的邻居发现机制,使转发设备获取服务器的资源状况,由该任播组连接的转发设备充当调度设备,在收到发送任播组的报文时,根据任播邻居表项中记录的各服务器的资源状况,转发收到的报文,实现负载分担。本发明的技术方案,由于依靠对现有任播技术的充分利用、以及改进,来实现本发明的目的,因此,在一定程度上节约了负载分担所需使用的系统开销、在很大程度上节约了系统资源。

Description

一种利用任播技术实现负载分担的方法、设备及系统
技术领域
本发明涉及IPV6任播技术,尤指一种利用任播技术实现负载分担的方法、利用任播技术实现负载分担的转发设备和利用任播技术实现负载分担的系统。
背景技术
负载分担是在由多台服务器组成的一个服务器集合中,采用一定的调度策略将从外部收到的请求按照均衡原则分配到服务器集合中的各服务器上,从而提高服务器集合的处理能力以及处理效率。为了使负载分担达到更好的效果,不少调度策略在进行负载分担时均会根据服务器集合内各服务器当前的资源状况进行负载分担。例如,最小连接调度(Least-ConnectionScheduling)、加权最小连接调度(Weighted Least-Connection Scheduling)、基于局部性的最少链接(Locality-Based Least Connections Scheduling)、带复制的基于局部性最少链接(Locality-Based Least Connections withReplication Scheduling)。
现有技术中实现负载分担的调度算法层次比较高,不仅需要消耗调度设备中的大量资源,还需要相应应用层协议的支持。因此,实现过程复杂、并且需要占用较大的系统开销。
发明内容
有鉴于此,本发明提供了一种利用任播技术实现负载分担的方法,应用本发明所提供的方法能降低负载分担过程的复杂度、以及所需的系统开销。
为达到上述目的,本发明的技术方案是这样实现的:
一种利用任播技术实现负载分担的方法,该方法包括:
将需要进行负载分担的服务器组成任播组,配置任播地址;
每个服务器利用任播邻居公告将自身的资源状况参数发送给转发设备;
转发设备从收到的任播邻居公告中获取资源状况参数;并记录在所述服务器对应任播组的任播邻居表项中;
所述转发设备向所述任播组发送报文时,根据该任播组对应任播邻居表项中记录的资源状况参数,将所述报文转发至任播组内资源状况参数指示有最大可用资源的服务器。
较佳地,所述服务器利用任播邻居公告将自身的资源状况参数发送给转发设备包括:
所述服务器获得自身当前的资源状况参数,将所获取的资源状况参数添加在邻居公告的选项部分生成任播邻居公告,发送给所述转发设备。
较佳地,所述服务器利用任播邻居公告将自身的资源状况参数发送给转发设备包括:
所述服务器在收到所述转发设备发送的邻居请求时、或者所述服务器自身的资源状况发生变化时,执行利用任播邻居公告将自身的资源状况参数发送给转发设备的操作。
较佳地,所述任播邻居表项包括任播地址和该任播地址对应的链路层地址链表;其中,链路层地址链表的表项中包含链路层地址项目和资源状况项目,链路层地址项目中记录目标链路层地址TLLA、资源状况项目记录该TLLA对应的资源状况参数。
较佳地,所述将所获取的资源状况参数记录在所述服务器对应任播组的任播邻居表项中包括:
根据所述任播邻居公告中携带的任播地址找到对应的任播邻居表项,再根据任播邻居公告中携带的TLLA,判断所述任播邻居表项内的链路层地址链表中是否存在相同的链路层地址,如果是,则将所获取的资源状况参数记录在该链路层地址对应表项的资源状况项目内;否则,将所获取的资源状况参数和TLLA作为链路层地址表项记录在所述链路层地址链表中。
较佳地,所述根据任播组对应任播邻居表项中记录的资源状况参数,将所述报文转发至任播组内资源状况参数指示有最大可用资源的服务器包括:
根据所述任播组对应的任播邻居表项中记录的资源状况参数,找到指示可用资源最大的资源状况参数,获得所述资源状况参数对应的TLLA,用该TLLA封装所述报文,转发至该TLLA对应的服务器。
较佳地,当转发设备将传输控制协议/用户数据报协议TCP/UDP报文转发至任播组内的服务器时,进一步包括:针对该TCP/UDP报文建立记录该TCP/UDP报文五元组与所述服务器TLLA的会话表项;
当所述转发设备收到所述TCP/UDP报文时,根据所述会话表项中记录的TLLA,将该TCP/UDP报文发送至所述服务器。
本发明提供了一种利用任播技术实现负载分担的转发设备,应用本发明所提供的服务器能降低负载分担过程的复杂度、以及所需的系统开销。
一种利用任播技术实现负载分担的转发设备,该转发设备包括:处理单元和存储单元;
所述处理单元接收服务器发送的任播邻居公告,获取其中的资源状况参数,并记录在所述存储单元中保存的、该服务器对应任播组的任播邻居表项中;在向所述任播组发送报文时,根据所述存储单元中保存的该任播组对应任播邻居表项中记录的资源状况参数,将所述报文转发至任播组内资源状况参数指示有最大可用资源的服务器;
所述存储单元用于保存任播邻居表项。
较佳地,所述存储单元中保存的任播邻居表项包括任播地址和该任播地址对应的链路层地址链表;其中,链路层地址链表项中包含链路层地址项目和资源状况项目,链路层地址项目中记录目标链路层地址TLLA、资源状况项目记录该TLLA对应的资源状况参数。
较佳地,所述处理单元根据所述存储单元保存所述任播组对应的任播邻居表项,找到其中指示可用资源最大的资源状况参数,获得所述资源状况参数对应的TLLA,用该TLLA封装所述报文,转发至该TLLA对应的服务器。
较佳地,所述处理单元在将TCP/UDP报文转发至任播组内的服务器时,进一步针对该TCP/UDP报文建立记录该TCP/UDP报文五元组与所述服务器TLLA的会话表项,并保存至所述存储单元;在收到所述TCP/UDP报文时,根据所述存储单元中所述会话表项记录的TLLA,将该TCP/UDP报文发送至所述服务器。
本发明提供了一种利用任播技术实现负载分担的系统,本发明所提供系统能降低负载分担过程的复杂度、以及所需的系统开销。
一种利用任播技术实现负载分担的系统,该系统包括:转发设备和多个服务器;
所述服务器配置任播地址,加入任播组;利用任播邻居公告将自身的资源状况参数发送给转发设备;
转发设备从收到的任播邻居公告中获取资源状况参数;并记录在所述服务器对应任播组的任播邻居表项中;向所述任播组发送报文时,根据该任播组对应任播邻居表项中记录的资源状况参数,将所述报文转发至任播组内资源状况参数指示有最大可用资源的服务器。
本发明所提供的技术方案,将需要进行负载分担的各服务器组成任播组,通过任播技术的邻居发现机制,使转发设备获取服务器的资源状况,将所获取的资源状况记录在该任播组对应的任播邻居表项中,由该任播组连接的转发设备充当调度设备,在收到发送任播组的报文时,根据任播邻居表项中记录的各服务器的资源状况,转发收到的报文,实现负载分担。本发明的技术方案,由于依靠对现有任播技术的充分利用、以及改进,来实现本发明的目的,没有增加新的私有协议、或者利用除任播技术之外的其他协议;另外,由于本发明的技术方案是在网络层实现的,而就实现相同的功能,众所周知在应用层会消耗比网络层更多的资源,因此,相对于现有技术来说,在一定程度上节约了负载分担所需使用的系统开销、在很大程度上节约了系统资源。
附图说明
图1为本发明实施例的方法流程图;
图2为本发明实施例中一任播邻居表项的示意图;
图3为本发明实施例中又一任播邻居表项的示意图;
图4为本发明实施例中再一任播邻居表项的示意图;
图5为本发明实施例中的系统结构图;
图6为本发明实施例中的服务器结构图;
图7为本发明实施例中的转发设备结构图。
具体实施方式
为了使用较低的系统开销,实现根据各服务器的资源状况进行负载分担的方案,本发明主要利用了IPV6中的任播技术。任播技术主要依靠IPV6中的新成员:任播地址来实现。在任播技术中,首先将任播地址配置为多个服务器的IP地址,然后,转发设备按照一定的转发策略将发往该任播地址的报文转发至该任播地址对应的其中一个服务器。
在任播技术中,转发设备主要依靠任播地址对应的任播邻居表项,将发送至任播地址的报文转发至任播地址对应的其中一个服务器。因此在本发明的技术方案中,为了实现负载分担,可以为需要进行负载分担的各服务器配置相同的任播地址组成任播组,然后通过建立任播邻居表项的邻居发现机制,使转发设备获取服务器的资源状况,并将所获取的资源状况记录在该任播组对应的任播邻居表项中。由该任播组连接的转发设备充当调度设备,在收到发送任播组的报文时,根据任播邻居表项中记录的各服务器的资源状况,转发收到的报文。
在本发明的技术方案中,由于主要依靠对现有任播技术的充分利用以及改进来实现本发明的目的,而没有增加新的私有协议、或者利用除任播技术之外的其他协议;另外,由于本发明的技术方案是在网络层实现的,而就实现相同的功能,众所周知在应用层会消耗比网络层更多的资源。因此,相对于现有技术来说,在一定程度上节约了负载分担所需使用的系统开销、在很大程度上节约了系统资源。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步的详细说明。
在执行本发明的技术方案之前,可以为各需要进行负载分担的服务器配置任播地址,组成任播组。例如,为各服务器配置为2000::1的任播地址。这里的服务器可以是提供相同服务的服务器。如果后续还有服务器需要加入任播组,为该需要加入的服务器也配置2000::1的任播地址。
参见图1,图1为本发明实施例中的方法流程图。具体流程如下:
在步骤101中,任播组中的服务器利用任播邻居公告将自身的资源状况参数发送给转发设备。
这里,服务器利用任播邻居公告将自身的资源状况参数发送给转发设备的方法可以是:服务器获得自身当前的资源状况参数,将所获取的资源状况参数添加在邻居公告的选项部分生成任播邻居公告。服务器获得自身当前的资源状况参数的具体实现方式可以参考现有技术中,获取自身CPU、内存、可用带宽、以及硬盘资源的方案,在此不再详述。其中,现有邻居公告的格式如下表所示。
    类型     代码   校验和
    |R|S|O|     保留
    目标地址
    选项
表一
其中的选项部分是IPV6协议预留下来,供扩展IPV6功能所使用。因此,本实施例可以利用邻居公告中的选项部分来表示自身当前的资源状况参数。此时,可以在选项部分增加服务器资源状况(SRS,Server Resource States)选项,可以简称为SRS选项。该SRS选项可以采用如下表所示的类型长度值(TLV,Type Length Value)格式。
    类型     长度     资源状况参数
表二
其中,类型字段可以设置为1字节长度,并令其取值128时,表示为SRS选项。长度字段设置为1字节长度,表示整个选项的长度。相应的,资源状况参数可以设置为6字节。不难得出,此时SRS选项的总长度为8字节。此时,可以将长度字段的值设置为1,表示8字节的总长度。其中的资源状况参数可以简单的以服务器的CPU占用率为值也可以是服务器根据自身CPU、硬盘、内存等资源综合得出的值。转发设备以此排列服务器的优先级。其中,可以是数值越大表明服务器可用资源越少、也可以是数值越小表明服务器可用资源越少。
此外,在服务器收到转发设备发送的邻居请求时,或服务器自身的资源状况发生变化时,可以执行生成携带自身资源状况参数的任播邻居公告的操作。
服务器在以下情况会收到转发设备发送的邻居请求。第一种情况是,转发设备从外部网络收到发送至任播地址2000::1的报文,但是自身当前并没有保存与任播地址对应的任播邻居表项,此时,转发设备会向其所连接的服务器以组播的方式发送目标地址为2000::1的邻居请求。此时,配置了任播地址2000::1的服务器,就会生成携带自身资源状况参数的任播邻居公告,向其所连接的转发设备返回生成的任播邻居公告。另外,第二种情况是,在已经记录了任播邻居表项的情况下,转发设备为了实时掌握任播组内各服务器的当前资源状况,以单播的形式定期向任播组内的服务器发送邻居请求。当然,转发设备发送邻居请求的对象,也可以是有选择的发送。例如,仅对可用资源最多的服务器发送邻居请求;或仅对可用资源最少的服务器发送邻居请求。
另外,这里所指的服务器自身的资源状况发生变化,可以是指自身CPU、内存、可用带宽、以及硬盘资源的变化。也可以是指服务器加入当前任播组时,向转发设备发送的任播邻居公告。
在步骤102中,转发设备接收服务器发送的任播邻居公告,获取其中携带的资源状况参数。
在实际应用中,转发设备除了需要转发发往任播地址的报文外,还需要转发发往单播地址的报文。因此,在实施例中,转发设备可以通过判断收到的邻居公告中是否携带SRS选项来确定该邻居公告是否为任播邻居公告。当收到的邻居公告中携带了SRS选项,则确定该邻居公告为任播邻居公告。另外,由于服务器向转发设备发送邻居公告的目的是为了告知转发设备自身的目标链路层地址(TLLA,Target Link Layer Address),因此当转发设备收到的邻居公告中未携带TLLA时,转发设备则可以丢弃该邻居公告,不对该邻居公告进行处理。当然,转发设备确定收到的邻居公告为任播邻居公告的方法还可以采用现有技术中的其他实现方式,在此不再详述。另外,TLLA项目携带在邻居公告的选项部分。
在步骤103中,转发设备将当前所获取的资源状况参数记录在该服务器对应任播组的任播邻居表项中。
本实施例所采用的任播邻居表项包括:任播地址和该任播地址对应的链路层地址链表。每个链路层地址链表项中包含链路层地址和资源状况这两个项目,链路层地址项目中记录TLLA、资源状况项目记录该TLLA对应服务器的资源状况参数。任播地址与该任播地址对应的链路层地址链表之间的关联关系,可以用使用指向链路层地址表项的指针来进行关联。具体情况可参见图2所示。本实施例中并不排除还可以使用现有技术中其他任播邻居表项的结构。
在图2中,以在服务器A、B、C和D上配置任播地址2000::1,组成任播组为例进行说明。在任播地址2000::1对应的链路层地址链表中记录了四个表项,分别对应了服务器A、B、C和D的链路层地址和资源状况参数。这里的链路层地址可以是介质访问控制(MAC)地址或其他形式的链路层地址。其中,用MAC-A这种表示服务器A的MAC地址。
具体将所获取的资源状况参数记录在服务器对应任播组的任播邻居表项中可以采用如下方式。首先根据任播邻居公告中携带的任播地址找到对应的任播邻居表项,再根据任播邻居公告中携带的TLLA,判断任播邻居表项内的链路层地址链表中是否存在相同的链路层地址,如果是,则将所获取的资源状况参数记录在该链路层地址对应表项的资源状况项目内;否则,将所获取的资源状况参数和TLLA作为链路层地址表项记录在链路层地址链表中。
当链路层地址链表中存在相同的链路层地址时,则表明转发设备已经收到过从该服务器发来的任播邻居公告,此时服务器当前发送的任播邻居公告,可能是由转发设备自身定期发送邻居请求而触发的;也可能是该服务器当前的资源发生变化,因此自主向转发设备上报的。由于原来已经收到过该服务器发送的任播邻居公告,因此在该链路层对应表项的资源状况项目内应该已经记录了对应的资源状况参数。因此,这里可以采用更新的方式替换原记录的资源状况参数。例如在如图1所示的任播邻居表项中,如果当前收到的是服务器A的任播邻居公告。由于在链路层地址链表中已经存在了服务器A的相关信息,因此,此时仅需要将A当前的资源状况参数记录至与服务器A对应的链路层地址链表的表项中。假设服务器A当前的资源状况为60,则更新后的任播邻居表项如图3所示。
当链路层地址链表中不存在相同的链路层地址时,则表明转发设备还没有收到过该服务器发送的任播邻居公告。在转发设备当前记录的任播邻居表项为图2所示的情况时,如果转发设备当前收到的是服务器E发送的任播邻居公告,由于服务器E的链路层地址未被记载至链路层地址表项,因此链路层地址链表中不存在相同链路层地址。此时,则需要将该服务器E的链路层地址和任播邻居表项中携带的资源状况参数作为一个表项,添加至任播邻居表项,如图4所示。其中服务器E的资源状况参数为40。
另外,当收到任播邻居公告,将其中携带的信息记录至任播邻居表项时,为了优化后续的查找过程,可以按照资源状况参数的大小,将相应的表项插入合适的位置。例如,如图2、3和4所示的情况。
在步骤104中,转发设备向任播组发送报文时,根据该任播组对应任播邻居表项中记录的资源状况参数,将报文转发至任播组内资源状况参数指示有最大可用资源的服务器。
根据任播组对应的任播邻居表项中记录的资源状况参数,找到指示可用资源最大的资源状况参数,获得资源状况参数对应的TLLA,用该TLLA封装报文,转发至该TLLA对应的服务器。例如,假设当前收到的报文的目的地址为2000::1时,则在转发设备中找到与该任播地址对应的任播邻居表项。如果找到的是如图2所示的表项时,假设当前资源状况参数越小表示可用资源越大,则10对应的服务器B当前可用资源最大,因此转发设备用服务器B的链路层地址封装当前收到的报文,转发至服务器B。当服务器B处理转发设备发送的所发送的报文时,服务器B当前的可用资源就会减少,此时,服务器B由于自身资源状况发生变化,则可以向转发设备发送携带自身当前资源状况参数的任播邻居表项。
另外,当转发设备当前是将传输控制协议/用户数据报协议TCP/UDP报文转发至任播组内的服务器B时,则本实施例的技术方案还进一步包括:针对该TCP/UDP报文建立记录该TCP/UDP报文五元组与服务器TLLA的会话表项。例如下表所示:
  源地址   源端口   目的地址   目的端口   协议号   链路层地址
  2002::1   1024   2002::1   80   6   MACB
表三
当转发设备在收到与该五元组对应的TCP/UDP报文时,则根据如表三所记录的链路层地址,将该TCP/UDP报文发送至服务器。
在本实施例中,可以先建立任播邻居表项的数据结构,然后在收到任播组中的服务器发送的任播邻居公告时,再将任播邻居公告中携带的TLLA以及资源状况参数记录在建立的任播邻居表项中。本实施例中,可以由数据流触发建立任播邻居表项的数据结构,也可以是在转发设备上预先配置任播邻居表项的数据结构。
这里介绍数据流触发建立任播邻居表项的数据结构的情况。转发设备建立任播邻居表项的数据结构可以是在收到报文,发现自身没有记录对该报文目的地址对应的邻居表项,建立邻居表项的数据结构,该数据结构可以参见表四所示。
    IP地址     链路层地址
表四
当发现返回的邻居公告是任播邻居公告时,则再建立链路层地址链表。将链路层地址链表的指针记录在表四的链路层地址项目内。每收到一个任播邻居公告时,则在建立的链路层地址链表中追加表项,即图2、3和4中所示的链路层地址链表表项。在这种情况下,基于节约系统资源的角度考虑,在没有建立任播邻居表项对应的数据结构时,可以将收到的任播邻居公告丢弃。因为此时,转发设备还没有收到外部网络发送的对应任播地址的报文,因此即使记录了相应的内容,也不会产生技术效果。
这里介绍在转发设备上预先配置任播邻居表项的数据结构的情况。上述建立任播邻居表项的情况,可以适用于转发设备不了解自身所连接的服务器是否配置了任播地址的情况。当转发设备预先能够获知其所连接的服务器内存在配置了任播地址的服务器时,则可以预先配置任播邻居表项的数据结构,然后在收到服务器发送的任播邻居公告后,将任播邻居公告中相关的信息记载的任播邻居表项。
在步骤101中,介绍的是任播组中的服务器在自身的资源状况发生变化、以及新加入的服务器需要向转发设备发送任播邻居公告;在本发明的实施例,任播组中的服务器还可以在退出任播组时,向转发设备发送退出公告。当转发设备收到退出公告后,将与该退出公告对应的链路层地址链表中的表项删除。例如,当转发设备当前保存的任播邻居表项如图2所示,在收到服务器B发送的退出公告时,则将服务器B对应的链路层地址链表的表项删除。在本实施例的技术方案中,可以将SRS选项中的资源状况参数取值为全F,即FFFFFFFFFFFF的任播邻居公告作为退出公告;同时,也可以将SRS选项中取值为全0作为退出公告。具体选择何种方式,可以视具体的情况确定。
另外,参见图5,图5为本实施的系统结构图,包括多个服务器和转发设备。其中,在服务器上配置任播地址加入任播组,服务器利用任播邻居公告将自身的资源状况参数发送给转发设备。转发设备接收服务器发送的任播邻居公告,获取其中的资源状况参数,并记录在服务器对应任播组的任播邻居表项中;转发设备向任播组发送报文时,根据该任播组对应任播邻居表项中记录的资源状况参数,将报文转发至任播组内资源状况参数指示有最大可用资源的服务器。在本发明的技术方案中,也可以存在多个任播组。
参见图6,图6为本实施例的服务器的结构图,包括控制单元和收发单元。其中,控制单元配置任播地址,利用任播邻居公告将自身的资源状况参数发送至收发单元。收发单元向转发设备发送从控制单元收到的任播邻居公告。另外,收发单元接收转发设备发送的邻居请求,将邻居请求发送至控制单元;控制单元在收到收发单元发送的邻居请求时,生成携带自身资源状况参数的任播邻居公告,并发送生成的任播邻居公告。
参见图7,图7为本实施例的转发设备的结构图,包括处理单元和存储单元。其中,处理单元接收服务器发送的任播邻居公告,获取其中的资源状况参数,并记录在存储单元中保存的、该服务器对应任播组的任播邻居表项中;在向任播组发送报文时,根据存储单元中保存的该任播组对应任播邻居表项中记录的资源状况参数,将报文转发至任播组内资源状况参数指示有最大可用资源的服务器;存储单元用于保存任播邻居表项。
这里,存储单元中保存的任播邻居表项包括任播地址和该任播地址对应的链路层地址链表;其中,链路层地址链表项中包含链路层地址项目和资源状况项目,链路层地址项目中记录目标链路层地址TLLA、资源状况项目记录该TLLA对应的资源状况参数。处理单元根据存储单元保存任播组对应的任播邻居表项,找到其中指示可用资源最大的资源状况参数,获得资源状况参数对应的TLLA,用该TLLA封装报文,转发至该TLLA对应的服务器。在处理单元在将TCP/UDP报文转发至任播组内的服务器时,进一步针对该TCP/UDP报文建立记录该TCP/UDP报文五元组与服务器TLLA的会话表项,并保存至存储单元;在收到TCP/UDP报文时,根据存储单元中会话表项记录的TLLA,将该TCP/UDP报文发送至服务器。
本发明的技术方案利用IPv6任播技术,能够在服务器集群中实现了根据各服务器的资源状况进行负载分担,实现了节约了系统开销、系统资源的发明目的。本方案实现简单、部署方便,通过服务器向转发设备发送携带自身资源状况参数的任播邻居公告,使转发设备能够根据服务器当前实际的资源状况,进行负载分担。同时,转发设备还可以主动的向服务器发送探测,获取服务器的资源状况。
另外,在本发明的技术,当增加服务器、服务器故障或服务器退出网络时,转发设备可以依靠上述的技术特征自动发现,无需人工干预,扩展性强,适用于各种规格的网络。同时,还可以与现有的调度方法结合使用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种利用任播技术实现负载分担的方法,其特征在于,该方法包括:
将需要进行负载分担的服务器组成任播组,配置任播地址;
每个服务器利用任播邻居公告将自身的资源状况参数发送给转发设备;
转发设备从收到的任播邻居公告中获取资源状况参数;并记录在所述服务器对应任播组的任播邻居表项中;
所述转发设备向所述任播组发送报文时,根据该任播组对应任播邻居表项中记录的资源状况参数,将所述报文转发至任播组内资源状况参数指示有最大可用资源的服务器。
2.根据权利要求1所述的方法,其特征在于,所述服务器利用任播邻居公告将自身的资源状况参数发送给转发设备包括:
所述服务器获得自身当前的资源状况参数,将所获取的资源状况参数添加在邻居公告的选项部分生成任播邻居公告,发送给所述转发设备。
3.根据权利要求1或2所述的方法,其特征在于,所述服务器利用任播邻居公告将自身的资源状况参数发送给转发设备包括:
所述服务器在收到所述转发设备发送的邻居请求时、或者所述服务器自身的资源状况发生变化时,执行利用任播邻居公告将自身的资源状况参数发送给转发设备的操作。
4.根据权利要求1所述的方法,其特征在于,所述任播邻居表项包括任播地址和该任播地址对应的链路层地址链表;其中,链路层地址链表的表项中包含链路层地址项目和资源状况项目,链路层地址项目中记录目标链路层地址TLLA、资源状况项目记录该TLLA对应的资源状况参数。
5.根据权利要求4所述的方法,其特征在于,
所述将所获取的资源状况参数记录在所述服务器对应任播组的任播邻居表项中包括:
根据所述任播邻居公告中携带的任播地址找到对应的任播邻居表项,再根据任播邻居公告中携带的TLLA,判断所述任播邻居表项内的链路层地址链表中是否存在相同的链路层地址,如果是,则将所获取的资源状况参数记录在该链路层地址对应表项的资源状况项目内;否则,将所获取的资源状况参数和TLLA作为链路层地址表项记录在所述链路层地址链表中。
6.根据权利要求4或5所述的方法,其特征在于,所述根据任播组对应任播邻居表项中记录的资源状况参数,将所述报文转发至任播组内资源状况参数指示有最大可用资源的服务器包括:
根据所述任播组对应的任播邻居表项中记录的资源状况参数,找到指示可用资源最大的资源状况参数,获得所述资源状况参数对应的TLLA,用该TLLA封装所述报文,转发至该TLLA对应的服务器。
7.根据权利要求1、2、4或5所述的方法,其特征在于,当转发设备将传输控制协议/用户数据报协议TCP/UDP报文转发至任播组内的服务器时,进一步包括:针对该TCP/UDP报文建立记录该TCP/UDP报文五元组与所述服务器TLLA的会话表项;
当所述转发设备收到所述TCP/UDP报文时,根据所述会话表项中记录的TLLA,将该TCP/UDP报文发送至所述服务器。
8.一种利用任播技术实现负载分担的转发设备,其特征在于,该转发设备包括:处理单元和存储单元;
所述处理单元接收服务器发送的任播邻居公告,获取其中的资源状况参数,并记录在所述存储单元中保存的、该服务器对应任播组的任播邻居表项中;在向所述任播组发送报文时,根据所述存储单元中保存的该任播组对应任播邻居表项中记录的资源状况参数,将所述报文转发至任播组内资源状况参数指示有最大可用资源的服务器;
所述存储单元用于保存任播邻居表项。
9.根据权利要求8所述的转发设备,其特征在于,
所述存储单元中保存的任播邻居表项包括任播地址和该任播地址对应的链路层地址链表;其中,链路层地址链表项中包含链路层地址项目和资源状况项目,链路层地址项目中记录目标链路层地址TLLA、资源状况项目记录该TLLA对应的资源状况参数。
10.根据权利要求8或9所述的转发设备,其特征在于,
所述处理单元根据所述存储单元保存所述任播组对应的任播邻居表项,找到其中指示可用资源最大的资源状况参数,获得所述资源状况参数对应的TLLA,用该TLLA封装所述报文,转发至该TLLA对应的服务器。
11.根据权利要求8或9所述的转发设备,其特征在于,
所述处理单元在将TCP/UDP报文转发至任播组内的服务器时,进一步针对该TCP/UDP报文建立记录该TCP/UDP报文五元组与所述服务器TLLA的会话表项,并保存至所述存储单元;在收到所述TCP/UDP报文时,根据所述存储单元中所述会话表项记录的TLLA,将该TCP/UDP报文发送至所述服务器。
12.一种利用任播技术实现负载分担的系统,其特征在于,该系统包括:转发设备和多个服务器;
所述服务器配置任播地址,加入任播组;利用任播邻居公告将自身的资源状况参数发送给转发设备;
转发设备从收到的任播邻居公告中获取资源状况参数;并记录在所述服务器对应任播组的任播邻居表项中;向所述任播组发送报文时,根据该任播组对应任播邻居表项中记录的资源状况参数,将所述报文转发至任播组内资源状况参数指示有最大可用资源的服务器。
CNA2007101218865A 2007-09-17 2007-09-17 一种利用任播技术实现负载分担的方法、设备及系统 Pending CN101159573A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2007101218865A CN101159573A (zh) 2007-09-17 2007-09-17 一种利用任播技术实现负载分担的方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2007101218865A CN101159573A (zh) 2007-09-17 2007-09-17 一种利用任播技术实现负载分担的方法、设备及系统

Publications (1)

Publication Number Publication Date
CN101159573A true CN101159573A (zh) 2008-04-09

Family

ID=39307506

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101218865A Pending CN101159573A (zh) 2007-09-17 2007-09-17 一种利用任播技术实现负载分担的方法、设备及系统

Country Status (1)

Country Link
CN (1) CN101159573A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010139115A1 (zh) * 2009-06-03 2010-12-09 上海贝尔股份有限公司 多个汇聚节点共同处理移动组播源组播业务的方法及装置
CN102130813A (zh) * 2010-01-15 2011-07-20 华为技术有限公司 伪线建立方法、系统及设备
CN102761618A (zh) * 2012-07-03 2012-10-31 杭州华三通信技术有限公司 实现负载均衡的方法、设备及系统
CN103354525A (zh) * 2013-06-08 2013-10-16 中国科学院计算机网络信息中心 基于OpenFlow实现广域网任播负载均衡的系统和方法
CN103812792A (zh) * 2012-11-15 2014-05-21 上海斐讯数据通信技术有限公司 交换机多端口的协同系统及协同方法
CN104144227A (zh) * 2013-05-10 2014-11-12 中国电信股份有限公司 Ip地址查询方法、系统与全网资源控制器
CN106487823A (zh) * 2015-08-24 2017-03-08 上海斐讯数据通信技术有限公司 一种基于sdn架构的文件传输方法及系统
WO2021068441A1 (zh) * 2019-10-08 2021-04-15 网宿科技股份有限公司 节点流量调度方法、装置、电子设备及存储介质

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8532013B2 (en) 2009-06-03 2013-09-10 Alcatel Lucent Method and apparatus in a plurality of rendezvous points for together processing multicast traffics from mobile multicast source
WO2010139115A1 (zh) * 2009-06-03 2010-12-09 上海贝尔股份有限公司 多个汇聚节点共同处理移动组播源组播业务的方法及装置
CN102130813A (zh) * 2010-01-15 2011-07-20 华为技术有限公司 伪线建立方法、系统及设备
US9912586B2 (en) 2010-01-15 2018-03-06 Huawei Technologies Co., Ltd. Method, system, and device for establishing pseudo wire
US9160655B2 (en) 2010-01-15 2015-10-13 Huawei Technologies Co., Ltd. Method, system, and device for establishing pseudo wire
US9391882B2 (en) 2010-01-15 2016-07-12 Huawei Technologies Co., Ltd. Method, system, and device for establishing pseudo wire
CN102761618A (zh) * 2012-07-03 2012-10-31 杭州华三通信技术有限公司 实现负载均衡的方法、设备及系统
CN103812792B (zh) * 2012-11-15 2018-01-02 上海斐讯数据通信技术有限公司 交换机多端口的协同系统及协同方法
CN103812792A (zh) * 2012-11-15 2014-05-21 上海斐讯数据通信技术有限公司 交换机多端口的协同系统及协同方法
CN104144227A (zh) * 2013-05-10 2014-11-12 中国电信股份有限公司 Ip地址查询方法、系统与全网资源控制器
CN104144227B (zh) * 2013-05-10 2017-11-21 中国电信股份有限公司 Ip地址查询方法、系统与全网资源控制器
CN103354525A (zh) * 2013-06-08 2013-10-16 中国科学院计算机网络信息中心 基于OpenFlow实现广域网任播负载均衡的系统和方法
CN106487823A (zh) * 2015-08-24 2017-03-08 上海斐讯数据通信技术有限公司 一种基于sdn架构的文件传输方法及系统
WO2021068441A1 (zh) * 2019-10-08 2021-04-15 网宿科技股份有限公司 节点流量调度方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN101159573A (zh) 一种利用任播技术实现负载分担的方法、设备及系统
CN101572670B (zh) 一种基于流表的数据包处理方法、装置和网络系统
KR101571376B1 (ko) 구성원 자원에 액세스하는 방법, 그룹 서버 및 구성원 장치
US8549120B2 (en) System and method for location based address assignment in the distribution of traffic in a virtual gateway
US20070286209A1 (en) System and method for handling address resolution protocol requests
CN104243269A (zh) 一种虚拟扩展局域网报文的处理方法及装置
US9191219B2 (en) Network multicast peer discovery methods
CN109936513A (zh) 基于fpga的数据报文处理方法、智能网卡和cdn服务器
CN101459618A (zh) 虚拟机网络的数据包转发方法和装置
KR20140093423A (ko) 컨텐츠 중심 네트워크에서 컨텐츠 제공자가 데이터 패킷을 전송하는 방법 및 그 컨텐츠 제공자
CN103095732A (zh) 信息推送系统和信息推送方法
CN102802227B (zh) 基于基站直通架构的数据处理方法、设备和系统
EP1868354A1 (en) System and method for handling address resolution protocol requests
JP2017500771A (ja) データ・ネットワークにおける分散データ送信
US7203768B2 (en) Managing network traffic using hashing functions
CN101808107B (zh) 一种存储设备与用户二层互通的方法、装置及系统
Hou et al. SeaHTTP: A resource-oriented protocol to extend rest style for Web of Things
CN101018193A (zh) 负载分流的方法和系统及分配备份组虚ip地址的装置
CN103079229B (zh) 接入控制器广播定向发送的方法
US20130145045A1 (en) Systems and methods for managing network address information
JP6493945B2 (ja) 高密度大規模ネットワーク向けのGreen Power(プロキシテーブルのスケーリング)
CN101543017A (zh) 加入对等网络的设备和方法
CN100550898C (zh) 一种基于dhcp中继实现dhcp服务器负载分配的方法
Sharma et al. Performance analysis of flooding and spin in wireless sensor networks
CN114095508A (zh) 一种同交换机下p2p传输的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080409