具有多个分布式回归代理的移动IPv6网络及其负载平衡方法 【技术领域】
本发明涉及移动IPv6通讯技术,更具体地,涉及到一种具有多个分布式回归代理的移动IPv6网络以及其多个回归代理的负载平衡方法。它主要是在移动IPv6中利用注册移动节点的信息和流量信息来分担回归代理的流量负载。
背景技术
近来很多研究工作都是如何把无线通讯和互联网结合起来。D.B.Johnson,C.Perkins,和J.Arkko在IETF推出移动IPv6(Mobilitysupport in IPv6<Draft-ietf-mobileip-ipv6-23>,2003)标准被认为是实现集成无线通讯和有线网络无缝通讯的一个重要技术。在移动IPv6中,当移动节点离开回归网络的时候,应该有一个回归代理来维护移动节点的注册信息。这个回归代理代表移动节点截取发送给注册移动节点的IP数据包,并打包发送给移动节点。当它所服务的移动节点数明显增加的时候,数据包就会在回归代理处排队,这就会导致很长的延时和注册过程。在一定的流量情况下,比如在有很多移动节点的支持多媒体应用的移动IPv6网络中,回归代理由于要承担很多封装隧道数据包,因此就成为流量的瓶颈,一般情况下会导致延迟,严重的情况下会导致回归代理瘫痪。
在移动IPv4中,虽然已经有一些提出的方法来解决上述问题。但是,他们研究的目的只是使用他们分析模型的数值结果而不是联系实际的移动IPv6的实现技术,因此有很大的局限性和限制,同时这些结果对不重要参数的改变也不是很敏感,这些方法也无法提前预防流量负载瓶颈现象的发生。
所有上述方法都忽略了事先预防流量负载瓶颈地发生,以及如何和IETF(International Engineering Technology Force)移动IP标准结合起来实现(也就是说,这些方法只是一些分析模型,并且远离实际情况),最后他们很少有考虑移动IPv6的情况。
【发明内容】
本发明的目的就是要提供了一种具有多个分布式回归代理的移动IPv6网络及其多个回归代理的负载平衡方法。
按照本发明的一种具有多个分布式回归代理的移动IPv6网络,它包括多个移动子网和互联网,所述多个移动子网通过互联网互相联接;其特征在于:每个移动子网包括:一个接入路由器、多个移动节点以及多个回归代理;所述回归代理是按分布式拓扑结构排列的;所述回归代理之间依靠互相间进行流量负载信息(表)的广播而互相交换信息;并且,每个回归代理都有一个流量负载表,并以此为根据来进行负载平衡操作。
按照上述的具有多个分布式回归代理的移动IPv6网络,其进一步的特征在于:所述流量负载表记录着回归网络中所有回归代理的流量负载程度,它包括回归代理地址、流量负载和注册的移动节点数的信息。各回归代理时刻监视其流量负载和注册的移动节点数。每个回归代理将定期广播流量负载消息给其他的回归代理,该流量负载消息和回归代理中的流量负载表表项一致;一旦收到从其他回归代理中广播的流量负载消息,回归代理及时更新自己的流量负载表。在每个回归代理中,当注册一个移动节点时,其中相应的计时器就开始计时,而且,本次注册的绑定时间被存入绑定更新缓冲区;当计时器超过所述绑定时间后,即相应的移动节点的计时器到期,则对该移动节点进行回归代理的重新设置。在确定重新分配回归代理时,通过使用在移动IPv6中定义的动态回归代理地址发现机制DHAAD,回归代理主动发送ICMP响应消息包给该移动节点,上述的ICMP响应消息包与标准的ICMP响应数据包不相同,这个ICMP响应消息包可只包含新选择的回归代理信息,而不包含回归代理的列表信息。当移动节点接收上述ICMP响应消息后,上述移动节点比较新的回归代理和其旧的回归代理,如果新的回归代理与旧的回归代理不同,移动节点将修改其的回归代理,同时发送绑定更新请求消息给这个新回归代理。根据Ipv6协议,所述广播的流量负载消息是基于IETF邻居发现协议中的未请求的路由器广播消息的,即通过设置一个新的选项-流量负载,而将该流量负载消息嵌入到未请求的路由器广播消息中的选项位中。
按照本发明的一种多个回归代理的负载平衡方法,其特征在于:它包括如下步骤:步骤S1:判断其负载是否大于阈值?如果判断结果为“是”,则执行步骤S2,如果判断结果为“否”,则执行步骤S3;步骤S2:判断是否有“轻”回归代理?如果判断结果为“是”,则执行步骤S4,如果判断结果为“否”,则执行步骤S5;步骤S3: 判断在所有“轻”回归代理中其注册移动节点数是否处于前10%?如果判断结果为“是”,则执行步骤S8,如果判断结果为“否”,则执行步骤S7;步骤S4:在所有“轻”回归代理中随机选择一个,并返回;步骤S5:判断其是否在非“轻”回归代理中处于前10%?如果判断结果为“是”,则执行步骤S6,如果判断结果为“否”,则执行步骤S7;步骤S6:在非“轻”回归代理中随机选择一个后10%的回归代理,并返回;步骤S7:不进行回归代理的切换操作,并返回;步骤S8:在所有“轻”回归代理中随机选择一个后10%的回归代理,并返回。
【附图说明】
通过参考附图对最佳实施例的详细描述,本发明的上述目的和优点将变的更清楚,其中:
图1是按照本发明的具有多个分布式回归代理的移动IPv6网络的示意图,其中显示了三角路由通信情况。
图2是按照本发明的具有多个分布式回归代理的移动IPv6网络的示意图,其中显示了多个回归代理之间进行流量负载广播的情况。
图3是一个例子,它显示了图2所示网络中所述分布式回归代理拓扑结构和流量负载表。
图4是按照本发明的多个回归代理的负载平衡方法的流程图。
图5是对按照本发明的多个回归代理的负载平衡方法进行测试的仿真结果。
【具体实施方式】
图1是按照本发明的具有多个分布式回归代理的移动IPv6网络的示意图。其中,在该移动IPv6网络中,多个移动子网(1、2和3)通过互联网(5)互相联接。假设,移动子网(1)是移动节点(8)的本地移动子网,则移动子网(1)就是移动节点(8)的回归网络。通常,一个移动子网包括一个接入路由器、一个代理服务器和多个移动节点。而按照本发明的移动IPv6网络,每个移动子网都包括一个接入路由器、多个代理服务器和多个移动节点。例如,在回归网络(8)中,有多个回归代理(HA1、HA2、…n)。这些回归代理(HA1、HA2、…n)是按分布式拓扑结构排列的,即它们之间是互相平等的。当移动节点(8)刚离开回归网络(8)的时候,呼叫移动节点(8)的通讯节点(4)与该移动节点(8)之间经过回归网络(8)由三角路由进行通讯。
图2是按照本发明的具有多个分布式回归代理的移动IPv6网络的示意图,其中显示了多个回归代理之间进行流量负载广播的情况。由于上述回归代理(HA1、HA2、…n)是按分布式拓扑结构排列的,为了合理有效地进行负载分配,这些回归代理(HA1、HA2、…n)之间必须有机地联接起来,而形成一个高效、互相协调的有机体。为此,各个回归代理之间互相进行流量负载信息(表)的广播,即互相交换信息,各个回归代理可根据这些流量负载信息来进行负载平衡操作。
为了获得和维护流量信息,每个回归代理维护一个所谓的流量负载表(参见图3)。流量表记录着回归网络中所有回归代理的流量程度。
图3是显示了一个流量负载表的实际例子。其中,回归代理的回归代理IP地址信息,回归代理的负载,和注册在回归代理上的移动节点的数目都是流量负载表的表项。该表显示了某一时刻,各个回归代理(HA1-HAn)的负载和注册的移动节点数。
下面将详细说明流量负载表中的各个表项:
1.代理地址
回归代理地址是回归代理的IP地址。
2.队列尺寸
流量负载指示回归代理的缓冲区尺寸。当回归代理的缓冲区尺寸低于阀值,缓冲区的尺寸认为是“轻”的。
3.回归代理上注册的移动节点数目。
回归代理应该监视队列尺寸和注册的移动节点数。每个回归代理将定期广播流量负载广播消息给回归网络中的所有其他回归代理。流量负载广播消息和流量负载表有着相同的表项。
根据Ipv6协议,这个广播消息基于IETF邻居发现协议中的未请求的路由器广播消息。通过设置一个新的选项-称为流量负载-可以嵌入到未请求的路由器广播消息中的选项位中,这个选项位如下所示:
队列大小(1个字节):路由器TLT中的队列大小的大概参数;
注册的移动节点数(1个字节):如果超过256个移动节点在其上面注册,该位将是路由器TLT中的一个大概的参数。
未请求路由器广播消息应该以根据IETF RFC 2461中定义的时间间隔参数[MinRtrAdvInterval,MaxRtrAdvInterval]区间进行广播。为了让流量信息及时得到更新,带有流量负载信息的未请求的路由广播消息Unsolicited Router Advertisement message应该定义在时间区间[MinRtrAdvInterval,MinRtrAdvInterval+IntervalTLTExtention]进行发送比较合适。
其中IntervalTLTExtention=2*MinRtrAdvInterval。
一旦从其他回归代理中收到流量负载广播消息,回归代理应该记录这些信息到流量负载表中。回归代理在流量负载表按降序排列流量负载信息,回归代理表中主要以降序排列,流量负载是“轻”的除外。对于“轻”的回归代理,流量负载表根据所注册的移动节点数以降序排列。
在本发明中,队列尺寸将用来决定重新设置回归代理,注册的移动节点数可以用来防止流量负载瓶颈的形成。
图4是按照本发明的多个回归代理的负载平衡方法的流程图。按照该方法来确定是否选择新回归代理,从而达到负载平衡的目的。
下面将详细叙述按照本发明的多个回归代理的负载平衡方法,即在按照本发明的具有多个分布式回归代理的移动IPv6网络中,多个回归代理之间如何进行负载平衡。
按照本发明的多个回归代理的负载平衡方法主要解决多个回归代理之间的负载平衡分配的问题,通过考虑隧道流量信息和每个回归代理上注册的移动节点数信息来考虑如何解决和预防流量瓶颈问题发生。本发明所提方法通过嵌入移动IPv6标准中定义的DHAAD得以实现。它可以提前防止流量负载瓶颈的发生。
因为按照本发明的具有多个分布式回归代理的移动IPv6网络中,多个回归代理是分布式排列的,因此,所有的回归代理都可以决定是否发生切换。而在现有技术中,只有中央调度系统才能做决定是否能切换,因此它们不适合回归代理的引用。由于中央调度系统要处理所有的移动节点的信息,随着移动节点数目的大大的增加,它很可能就成为流量的瓶颈。
在按照本发明的具有多个分布式回归代理的移动IPv6网络中,回归网络有多个移动IPv6的回归代理和多个移动节点组成。当移动节点呆在回归网络的时候,回归代理并不执行任何回归代理的任务。在初始化回归网络时,回归网络中回归代理的注册移动节点数可以被平均设置,也可以不被平均设置。是否平均设置回归代理与否将既不会影响到最初的流量负载,也不会影响所提负载平衡方法的性能。
在每个回归代理中,计时器和绑定更新(binding update)缓冲区联合起来。当注册一个移动节点时,计时器就开始计时,而且,本次注册的绑定时间被存入绑定更新缓冲区。当计时器超过所述绑定时间后,即相应的移动节点的计时器到期,则对该移动节点进行回归代理的重新设置。回归代理按照本发明的多个回归代理的负载平衡方法来进行上述的回归代理的重新设置,即回归代理从流量负载列表中重新选择一个新的回归代理。如果一个新的回归代理设置给上述到期的移动节点,回归代理主动发送ICMP响应消息包给该移动节点,而不需要移动节点发送ICMP请求消息。上述的ICMP响应消息包与标准的ICMP响应数据包不相同,这个ICMP响应消息包可只包含新选择的回归代理,而不必包含回归代理的列表,因此减少了网络中的数据传输量。一旦接收到这个ICMP消息,上述到期的移动节点比较这个收到的回归代理和其旧的回归代理。如果在上述ICMP响应消息包里指示的回归代理与旧的回归代理不同,移动节点将修改其的回归代理,同时发送绑定更新请求消息给这个新回归代理。通过使用DHAAD中定义的ICMP消息,本发明可以与IETF MobileIPv6标准一起实现,而不用对协议做任何修改。
对于移动节点来说,修改新回归代理的频率是回归代理越区切换次数和负载平衡性能之间的一个折衷。回归代理不应该频繁的给注册的移动节点选择一个新的回归代理。因为回归的切换会给移动节点的正常的流量通讯带来额外的流量控制和延迟,所以只有很忙的移动节点,或者有潜力将很忙的节点才进行回归代理的切换。
如果要选择新的回归代理,这个回归代理应该是在流量负载表中最闲置的。在流量负载表中有两个域可以用来进行回归代理的选择算法。一个是队列大小,它用来指示现在流量负载。另一个是注册的移动节点数,这用来表明未来流量负载的潜力。回归代理应该防止有过多的注册移动节点数,这样可以防止未来隧道流量负载瓶颈的形成。
参见图4,按照本发明的多个回归代理的负载平衡方法具体实现如下:
一旦某个移动节点相对应的计时器超过绑定时间,该移动节点相对应的回归代理即进行下列步骤的操作。
步骤S1:判断其负载是否大于阈值?如果判断结果为“是”,则执行步骤S2,如果判断结果为“否”,则执行步骤S3;
步骤S2:判断是否有“轻”回归代理?如果判断结果为“是”,则执行步骤S4,如果判断结果为“否”,则执行步骤S5;
步骤S3:判断在所有“轻”回归代理中其注册移动节点数是否处于前10%?如果判断结果为“是”,则执行步骤S8,如果判断结果为“否”,则执行步骤S7;
步骤S4:在所有“轻”回归代理中随机选择一个,并返回。
步骤S5:判断其是否在非“轻”回归代理中处于前10%?如果判断结果为“是”,则执行步骤S6,如果判断结果为“否”,则执行步骤S7;
步骤S6:在非“轻”回归代理中随机选择一个后10%的回归代理,并返回;
步骤S7:不进行回归代理的切换操作,并返回;
步骤S8:在所有“轻”回归代理中随机选择一个后10%的回归代理,并返回。
上面详细描述了按照本发明的具有多个分布式回归代理的移动IPv6网络以及其多个回归代理的负载平衡方法。值得注意的是:在回归代理重新选择算法中,只有最忙的回归代理可以给他注册的移动节点选择新的回归代理。因此新的回归代理的重新设置不是经常发生。当移动节点从一个网络移到另一个网络的时候,在IETF Mobile IPv6中,移动节点要回归代理在通信节点绑定注册以前为其承担隧道数据流量的工作。因此一个有很多注册节点的回归代理有可能会有大量的三角路由隧道数据。本发明的方法可以让回归代理在还没有造成大量的流量堵塞的情况下就进行回归代理重新选择的操作,以至于可以事先防止将来流量负载瓶颈现象的发生。
本发明的仿真结果表明,本发明可以显著减少流量延迟和缓冲区要求在三角路由隧道传送数据的时候。图5表明了每个回归代理在有与没有流量负载平衡方法下的过程队列的队列大小。结果表明当回归代理已经达到饱和的流量的情况下,本发明可以根据队列尺寸的大小和注册移动节点数目,利用多个回归代理来分担这些流量负载。