一种多家乡主机的链路状态监测及故障排除方法转让专利

申请号 : CN201010222571.1

文献号 : CN101877660B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡博陈山枝袁韬储琴琴胡章丰司琳邹仕洪

申请人 : 北京邮电大学

摘要 :

一种多家乡主机的链路状态监测及故障排除方法,该方法是对主机标识协议HIP进行扩展,引入可达性维护时间参数和可达性维护与地址不可用两种类型的通告参数,以使发起通信的主机与对端主机能分别确定各自的发送定时器的计时数值,并在链路状态监测的初始阶段,使用可达性维护时间参数协商确定各自的地址维护定时器的计时数值;在通信过程中,依赖可达性维护类型的通告参数和双方商定的发送定时器与地址维护定时器的两个计时数值,两端主机对通信链路状态进行监测;发生故障后,两端主机选用不同的工作模式,使用地址不可用类型的通告参数和HIP协议的三次握手更新过程排除故障而恢复通信,从而快速、高效地监测多家乡场景中的链路状态与及时排除故障。

权利要求 :

1.一种多家乡主机的链路状态监测及故障排除方法,其特征在于:对主机标识协议HIP进行扩展,引入可达性维护时间(KEEPALIVE_TIMEOUT)参数和可达性维护(KEEPALIVE)与地址不可用(INVALID_LOCATOR)两种类型的通告参数,以使发起通信的主机与对端主机能分别确定各自的发送定时器的计时数值,并在链路状态监测的初始阶段,使用可达性维护时间参数协商确定各自的地址维护定时器的计时数值;在通信过程中,依赖可达性维护类型的通告参数和双方商定的发送定时器与地址维护定时器的两个计时数值,两端主机对通信链路状态进行监测;发生故障后,两端主机选用不同的工作模式,使用地址不可用类型的通告参数和HIP协议的三次握手更新过程排除故障而恢复通信;所述方法包括下列操作步骤:(A)通信两端主机协商确定链路状态监测参数,完成链路状态监测初始化:两端主机设置各自的发送定时器的计时数值,再协商通告可达性维护时间参数,用于设置各自的地址维护定时器的计时数值;该步骤包括下列操作内容:(A1)发起通信的主机根据自身策略制定其发送定时器的计时数值;该发送定时器是发起通信的主机要求对端主机在计时数值的设定时间内必须做出回复的计时装置;当该主机发送数据包时,就启动发送定时器;如果在发送定时器的设定时间内,该主机未收到对端主机的回复,则认为链路出现故障;

(A2)发起通信的主机向对端主机发送可达性维护时间参数,可达性维护时间参数的数值为该主机的发送定时器的计时数值;该可达性维护时间参数是通过HIP协议的R1、I2或更新(UPDATE)消息进行发送的;

(A3)对端主机收到含有可达性维护时间参数的消息后,根据该可达性维护时间参数的数值设置其地址维护定时器的计时数值;同时,对端主机设定其维护时间间隔的时长,该时长为其地址维护定时器的计时数值的1/3~1/2;该地址维护定时器是对端主机必须在其计时数值的设定时间内向发起通信的主机做出回复的计时装置,当对端主机接收到来自发起通信的主机的数据包时,就启 动地址维护定时器;并在该地址维护定时器的设定时间内,以维护时间间隔的时长为周期,向发起通信的主机发送带有可达性维护类型通告参数的HIP协议通告(NOTIFY)消息,用于维护其当前使用地址的可达性;

(A4)对端主机根据自身策略制定其发送定时器的计时数值;该发送定时器是对端主机要求发起通信的主机在计时数值的设定时间内必须做出回复的计时装置;然后,对端主机向发起通信的主机发送可达性维护时间参数,该可达性维护时间参数的数值是其发送定时器的计时数值;

(A5)发起通信的主机收到含有可达性维护时间参数的消息后,根据该可达性维护时间参数的数值设置其地址维护定时器的计时数值;同时,发起通信的主机设定其维护时间间隔的时长;该地址维护定时器是发起通信的主机必须在其计时数值的设定时间内向对端主机做出回复的计时装置;至此,通信两端主机都完成了发送定时器及地址维护定时器的参数设置,结束链路状态监测初始化流程;

(B)通信过程中,通信两端主机向其对端主机发送数据包,并对当前链路状态进行监测;该步骤包括下列操作内容:

(B1)通信两端的主机在向对端主机发送数据包后,都启动其发送定时器,开始监测该条链路,即等待接收从对端主机返回的数据包;若在发送定时器的设定时间内,主机在该条链路没有收到对端主机发送的消息,则认为该条链路已出现故障,跳转执行步骤(D);否则,顺序执行步骤(B2);

(B2)在发送定时器的设定时间内,主机收到对端主机在当前监测链路上的数据包,则关闭发送定时器;此时,若主机仍有数据包要发送,则返回执行步骤(B1);否则,顺序执行步骤(C);

(C)通信两端主机分别维护各自当前使用地址的可达性;该步骤包括下列操作内容:

(C1)主机在当前监测链路上收到数据包后,关闭发送定时器,同时启动其地址维护定时器,该地址维护定时器的计时数值为可达性维护时间参数值;此时,若主机没有数据包要发送,则顺序执行步骤(C2);否则,跳转执行步 骤(C3);

(C2)主机以维护时间间隔的时长为周期,发送带有可达性维护类型通告参数的HIP协议通告消息,该操作要持续执行到地址维护定时器的计时超时,或在当前链路上收到数据包为止;

(C3)主机要发送新的数据包时,关闭地址维护定时器,返回执行步骤(B);

(D)发生故障后,检测到链路状态出错的一端通信主机发起排除故障、恢复通信的操作流程;该步骤包括下列操作内容:

(D1)因发送定时器的计时超时,主机发起重新选择可用地址而排除故障的操作:根据当前的工作模式,主机选择下述两种模式排除故障;若选用主动模式排除故障,则顺序执行步骤(D2);若选用被动模式排除故障,则跳转执行步骤(D3);

(D2)主机选用主动模式排除故障,即主机尝试更改自身使用的地址;具体操作内容如下:

(D21)主机查看自己当前是否有其他的可用地址,若有,则顺序执行步骤(D22);否则,选用被动模式排除故障,跳转执行步骤(D3);

(D22)主机向对端主机发送更新消息,该更新消息携带有标识一个新的优先使用地址的地址参数;发出该更新消息后,主机等待接收从对端主机返回的确认消息;若主机接收到从对端主机返回的确认消息,则顺序执行步骤(D23);否则,跳转执行步骤(D24);

(D23)主机接收到从对端主机返回的确认消息,表明对端主机已确认当前的地址更改,则两端主机按照HIP协议规定的三次握手更新过程完成剩余的地址更新步骤;更新地址后,两端主机采用新的地址进行通信,结束排除故障流程;

(D24)若在设定时间内,主机未收到任何从对端主机发来的回复,则表明步骤(D22)中尝试的新地址无法使用;此时,主机选择下述两种方式:重新选择一个地址作为优先地址,继续选用主动模式排除故障,即发送新的更新消息,则返回执行步骤(D21);或者选用被动模式排除故障,则顺序执行步骤(D3);

(D3)主机选用被动模式排除故障,即主机将该链路出错信息通告对端主 机,由对端主机更改其使用的地址;具体操作内容如下:(D31)主机查看当前的对端主机地址集中是否有处于激活状态的地址,若有,则顺序执行步骤(D32);否则,选用主动模式排除故障,返回执行步骤(D2);

(D32)主机从对端主机地址集中选取一个处于激活状态的地址,向对端主机发送带有地址不可用类型通告参数的通告消息,告知其当前链路已出现故障;发出该消息后,主机开始等待接收从对端主机返回的确认消息;若对端主机收到该通告消息,则顺序执行步骤(D33);否则,跳转执行步骤(D34);

(D33)对端主机选用主动模式排除故障,即对端主机执行步骤(D2)操作,发起通信恢复流程;其中,对端主机默认选取以前收到的通告消息中的源地址与目的地址对为新的可用地址对,或者根据自身策略,重新选择地址对;

(D34)主机继续选用被动模式排除故障,则准备从对端主机地址集中重新选取另一个处于激活状态的地址,即返回执行步骤(D31);或者,主机放弃被动模式而选用主动模式排除故障,则返回执行步骤(D2)。

2.根据权利要求1所述的方法,其特征在于:所述发起通信的主机与对端主机都是多家乡主机,或者其中一端是多家乡主机。

3.根据权利要求1所述的方法,其特征在于,所述可达性维护时间(KEEPALIVE_TIMEOUT)参数格式包括下列字段:Type参数类型为10,Length参数长度,Reserved保留字段和Keepalive Timeout地址维护定时器的计时参数,其数值与消息发送端的发送定时器的计时数值相等;

所述可达性维护(KEEPALIVE)类型通告参数格式包括下列字段:Type参数类型为832,Length参数长度,Reserved保留字段和Notify Message Type通告消息类型;根据HIP协议规定,可达性维护类型通告参数的HIP协议通告消息类型值应在16384~65535之间;

所述地址不可用(INVALD_LOCATOR)类型通告参数格式包括下列字段:Type参数类型为832,Length参数长度,Reserved保留字段,Notify Message Type通告消息类型和NOTIFICATION DATA通告数据;根据HIP协议规定,地址不 可用类型通告参数的通告消息类型值应在0~16383之间,通告数据字段用于标识当前无法使用的地址。

说明书 :

一种多家乡主机的链路状态监测及故障排除方法

技术领域

[0001] 本发明涉及一种多家乡主机的链路状态监测及故障排除方法,该方法是基于主机标识协议HIP扩展相关参数和包括其它相应操作而实现的,属于计算机网络的技术领域。

背景技术

[0002] 多家乡主机是指在网络中拥有多个位置标识的主机。例如,一台多家乡主机可以通过以太网接口和无线局域网两类接口接入网络,并可以同时使用这两个网络接口的IP地址进行通信。这种情况被称为主机多家乡。此外,多家乡主机还可以只使用一个网络接口接入网络,但是,该接口由多个网络服务提供商为其提供网络服务。该多家乡主机在该接口上可同时使用多个IP地址进行通信。这种情况被称为站点多家乡。
[0003] 多家乡主机的最大优势是:相对于普通主机,其在网络通信方面拥有更好的链路容错能力。当多家乡主机的一条通信链路出现故障时,还可以使用另一条链路继续进行通信。多家乡主机链路容错能力的实现,需要依赖于相应的链路状态监测和故障排除机制。即需要确定:何时认为当前链路已经发生故障,需要使用其他链路进行通信;再以何种方式使用备选链路恢复原来的通信。
[0004] 传统的互联网中,主要包含IP地址与DNS域名两个命名空间。正是因为存在这两个命名空间,所有基于互联网的应用服务才能得以顺利开展和部署。但是,近年来,随着网络规模的不断膨胀,用户需求的不断提升和应用种类的不断丰富,传统命名空间的不足之处逐渐显现出来。人们发现:即使对IP地址和DNS进行优化修改,也无法从根本上改变传统互联网负载过重的问题。因此,IETF成立了HIP(Host Identity Protocol)工作组,其目的是通过引入一个新的命名空间——主机标识命名空间(Host Identity namespace),来弥补由IP地址和DNS域名组成的传统命名空间的不足。引入的主机标识命名空间能够解决传统互联网体系结构中传输层与网络层紧密耦合的缺陷,更好地提供对多家乡、移动性等服务的支持。
[0005] HIP协议是由IETF提出的一种基于身份标识与位置标识相分离的新型网络结构,参见图1,介绍HIP协议的网络架构:它是在传输层与网络层之间插入一个新的协议层——主机标识层(Host Identity Layer),位于主机标识层之上的各协议层,改用新的身份标识符替代原有的IP地址来表明主机的身份属性。这样,IP地址只负责数据包的转发而不再负责标识主机身份。HIP协议能够提供一种安全可靠的多家乡和移动性支持。
[0006] 参见图2,介绍HIP协议规定的通信双方的基本交换过程。HIP协议规定,通信双方在发送数据前,先要经过一个包含四次握手的HIP基本交换过程(HIP BaseExchange)来建立连接,并在这个过程中建立双方的安全关联SA(SecurityAssociation),实现安全的网络传输。该基本交换过程包括下述操作内容:
[0007] (1)通信发起方主机首先向对端主机发送I1消息,触发交换过程,该I1消息中包含了双方的身份标识。
[0008] (2)对端主机收到I1消息后向发起方主机回复R1消息,该R1消息中包含一个需要发起方解决的谜题(puzzle),该谜题的复杂度取决于通信双方的信任程度。发起方主机只有在解答谜题后,才能继续进行基本交换。此外,该R1消息还包含对端主机的签名和Diffie-Hellman密钥交换算法的参数。
[0009] (3)发起方主机收到对端主机回复的R1消息后,先要解答响应方发送的谜题,并通过I2消息将答案送至响应方,同时附上发起方的签名和Diffie-Hellman密钥交换算法的参数。
[0010] (4)对端主机收到I2消息后,检查谜题答案,包含错误谜题答案的I2消息将被丢弃,同时拒绝与发起方主机进行通信;若谜题答案正确,则对端主机计算Diffie-Hellman参数,并向发起方主机回复R2消息,创建安全关联。这样就完成了HIP基本交换过程,双方均建立起安全关联,后续通信数据则由ESP(Encapsulating Security Payload)承载和封装。
[0011] HIP协议对于在网络中拥有多个位置标识、即拥有多个IP地址的多家乡主机的管理,可以分为多地址连接的建立和多地址使用两个部分。
[0012] HIP协议定义了如何为多家乡主机建立多地址连接的过程。多家乡主机在与对端主机建立HIP基本交换过程时,根据多家乡主机所扮演的具体角色,可以在R1或者I2消息中向对端节点通告其具有多个地址的属性。HIP协议定义了一种地址(LOCATOR)参数,主机可以通过地址参数向对端主机通告其地址信息。因此,在HIP基本交换过程中,如果多家乡主机向对端主机通告其多家乡属性,只需在R1或者I2消息中添加地址参数,罗列所有地址即可。除了上述建立多地址连接方法以外,HIP协议还定义了一种在通信过程中添加新地址连接的方法。这是一个三次握手更新地址的过程,具体流程参见图3所示:多家乡主机向对端主机发送更新(UPDATE)消息,在该消息中携带地址参数以通告其新地址;对端主机收到更新消息后,重新建立相应的安全关联,同时验证新地址的可达性。三次握手完成后,新的地址连接也随之建立。
[0013] 每台HIP主机都存有一个地址集,该地址集中包含有与对端主机建立的地址连接信息。多家乡主机对应的地址集中包含有多个地址的信息。多家乡主机需要指定其中的一个地址为优先使用(Perferred)地址,多家乡主机优先使用该地址进行通信。此外,HIP协议将所有的地址分为三种状态,分别为:未验证(UNVERIFIED)状态、激活(ACTIVE)状态和弃用(DEPRECATED)状态。处于激活状态的地址表明已完成可达性验证,可直接使用;处于未验证状态的地址表明尚未进行可达性验证,只有完成验证后才可使用;弃用状态的地址表明该地址已过期。对于所有处于未验证状态的地址,HIP协议要求主机都要验证其可达性。此外,对于当前已处于激活状态的地址,主机也可以再次验证其可达性,以继续维持其激活状态。HIP协议对地址集的这种管理机制,确保了多家乡主机对应的地址集中至少包含一个处于激活状态的地址和若干个处于未验证状态或弃用状态的地址。在后续的通信过程里,主机对未验证状态地址验证可达性,使其变为激活状态。这样,在多家乡场景中,地址集中往往会有不止一个处于激活状态的地址。
[0014] 然而,多家乡功能的实现除了需要多地址连接的建立机制外,还需要相应的多地址使用机制。多地址使用场景中的链路容错是多家乡主机的最大优点之一,其实现则需要依赖于链路状态的监测和故障排除机制。即需要确定:何时认为当前链路已发生故障,从而选用其他链路完成通信;再以何种方式使用备选链路恢复原来的通信。
[0015] 但是,目前的HIP协议对于上述两部分内容都未做出明确规定。其主要缺陷体现在以下两方面:
[0016] (1)依据现有HIP协议的描述,多家乡主机在与对端主机建立了多地址连接后,使用其中的一条链路进行通信。当该链路出现故障时,主机只有通过上层协议提供的监测机制,才能感知故障的存在。因此,整个链路故障的感知过程时延较大,无法快速实现多家乡主机的链路容错功能;
[0017] (2)依据现有HIP协议的描述,当多家乡主机感知链路故障时,会向对端主机重新发起一个三次握手更新过程,以请求使用新的地址对进行通信;也就是,多家乡主机总是优先尝试更改其自身使用的地址。然而,在现实通信场景中,链路出现的故障错综复杂,故障可能出现在通信两端主机中的任意一方。因此,在链路发生故障的情况下,现有HIP协议缺乏灵活的通信恢复机制。
[0018] 虽然HIP协议的网络架构能够支持多家乡功能,并保证通信安全;但是,现有的HIP协议只是明确了多家乡主机与对端主机建立多个地址连接的机制。对于当前通信链路状态如何进行监测,并在链路出现故障时,如何选取替换链路来排除故障等方面,都未提出相应的技术策略或措施。因此,HIP协议无法有效地实现多家乡主机的链路容错功能。
[0019] 目前,BFD(Bidirectional Forwarding Detection)协议提供了一种在两台通信主机之间进行链路监测的机制。使用该机制的两端主机首先要创建一个BFD会话。在通信过程中,主机在传输路径上彼此周期性地发送BFD数据包。如果一台主机长时间没有收到对端主机发送的BFD数据包,就会认为传输路径出现故障。为了减少链路资源的占用,主机之间也可以选择依据设定策略发送BFD数据包。此外,使用BFD进行链路检测的主机之间还需要协商发送BFD数据包的速率,以确定链路监测的频率;而且,发包频率数值可根据不同情况实时修改。
[0020] REAP(REAchability)协议是一种基于Shim6协议的链路监测机制,其实现过程与BFD协议类似。REAP协议依赖于发送定时器Send Timer与地址维护定时器Keepalive Timer和维护消息Keepalive Message来实现链路失败的检测:当主机向对端主机发出数据包时,启动发送定时器,当发送定时器超时后,如果没有收到任何来自对端主机的数据包,则表明通信链路出现了故障。当主机收到由对端主机发送来的数据包时,且没有数据包要发送时,启动地址维护定时器,并以维护时间间隔Keepalive Interval的时长周期性地发送地址维护消息,以维护其当前使用地址的可达性。REAP协议是BFD协议的一种羽量级实现。在REAP中,作为一种BFD消息,地址维护消息用于向对端主机通告当前使用地址的可达性,并且,只在链路空闲时发送地址维护消息。这样,无论链路处于通信状态还是空闲状态,对端主机都应该能够接收到数据包。因此,只要发生了发送定时器的计时超时,主机就认定链路出现了故障。
[0021] Reap4hip协议也是在HIP多家乡中提供链路状态监测和故障排除的一种技术方案。它是将REAP协议中的发送定时器、地址维护定时器和维护消息都引入HIP协议进行链路状态监测。此外,它在HIP协议中定义了一种探测(Probe)消息。当链路发生故障后,主机之间使用所有可用地址相互发送探测消息,直到找到新的可用地址对为止。
[0022] 然而,Reap4hip协议在实现过程中,并未考虑到其与现有HIP协议的兼容性问题,且在进行故障排除时所采用的方法会占用过多主机资源和网络资源。其缺陷主要体现在:
[0023] (1)Reap4hip中定义的维护消息和探测消息都是作为一种新的HIP消息,而不是作为HIP协议的参数来使用。因此,在Reap4hip的实现过程中,需要修改当前HIP协议的实现流程,引入新的信令消息和处理流程。这种实现方法与现有HIP协议势必会在兼容性上存在问题;
[0024] (2)Reaphip协议中定义的探测消息的格式过长,且探测过程要尝试所有可用的地址对,直到重新恢复通信。这种故障排除的方法往往需要占用大量的主机资源和网络资源。
[0025] 因此,作为HIP协议的改进方案,Reap4hip协议虽然提供了多家乡主机链路状态监测及故障排除的方法,但是,它在方案的效率性、兼容性和易用性上均存在不足之处。
[0026] 总之,上述现有技术的缺陷是:一方面,现有HIP协议只定义了多家乡主机建立多地址连接的过程,没有定义如何使用多地址的过程,因此无法有效地实现链路容错能力。另一方面,现有的HIP协议的改进方案Reap4hip将针对Shim6协议提出的REAP机制引入HIP协议,然而其实现所依赖的维护消息和探测消息都难以与现有HIP协议相兼容,且其实现机制会加重主机和网络的负担。

发明内容

[0027] 有鉴于此,本发明的目的是提供一个基于主机标识协议HIP的多家乡主机的链路状态监测及故障排除方法,该方法能够有效地监测链路状态,并在链路出现故障的同时,提供一种灵活、高效的排除故障方法,使得通信两端主机能够快速恢复连接而继续通信。本发明方法较好地解决了多家乡主机的链路状态监测及故障排除的难题,能够为多家乡主机有效地提供链路容错功能:既解决了HIP协议面临的多地址使用问题,同时又兼容现有的HIP协议,且操作步骤简单、实现容易,结合原有HIP协议的特点,能够为多家乡主机提供一种安全、高效的管理机制。
[0028] 为了达到上述发明目的,本发明提供了一种多家乡主机的链路状态监测及故障排除方法,其特征在于:对主机标识协议HIP进行扩展,引入可达性维护时间(KEEPALIVE_TIMEOUT)参数和可达性维护(KEEPALIVE)与地址不可用(INVALID_LOCATOR)两种类型的通告参数,以使发起通信的主机与对端主机能分别确定各自的发送定时器的计时数值,并在链路状态监测的初始阶段,使用可达性维护时间参数协商确定各自的地址维护定时器的计时数值;在通信过程中,依赖可达性维护类型的通告参数和双方商定的发送定时器与地址维护定时器的两个计时数值,两端主机对通信链路状态进行监测;发生故障后,两端主机选用不同的工作模式,使用地址不可用类型的通告参数和HIP协议的三次握手更新过程排除故障而恢复通信,从而快速、高效地监测多家乡场景中的链路状态与及时排除故障。
[0029] 本发明是一种多家乡主机链路的状态监测及故障排除方法,该方法是基于HIP协议实现的:在链路状态监测的初始阶段,通信两端主机先协商确定链路状态监测参数,分别确定各自的发送定时器和地址维护定时器的计时数值;在通信进行阶段,两端主机依赖可达性维护类型的通告参数和双方商定的发送定时器与地址维护定时器的两个计时数值对通信链路状态进行监测;当链路出现故障时,首先发现故障的一端主机通过选用主动或被动的两种工作模式,使用地址不可用类型的通告参数和HIP协议的三次握手更新过程排除故障而恢复通信。本发明很好地解决了当前HIP协议多家乡场景中,通信两端主机无法有效地感知当前通信链路状态并排除故障、即实现链路容错功能的缺陷;而且,本发明方法与现有HIP协议互相兼容,还不会加重主机和网络的负担。本发明方法的整个实现过程操作步骤简单、容易;充分利用HIP协议的原有特点,能够为多家乡主机提供一种安全、高效的管理机制。

附图说明

[0030] 图1是HIP协议的网络架构示意图。
[0031] 图2是HIP协议的基本交换过程示意图。
[0032] 图3是HIP协议的多家乡主机连接地址三次握手更新过程的示意图。
[0033] 图4(A)、(B)分别是HIP协议的可达性维护时间(KEEPALIVE_TIMEOUT)参数的格式图及其字段说明表。
[0034] 图5(A)、(B)分别是HIP协议的可达性维护(KEEPALIVE)类型通告参数的格式图及其字段说明表。
[0035] 图6(A)、(B)分别是HIP协议的地址不可用(INVALD_LOCATOR)类型通告参数的格式图及其字段说明表。
[0036] 图7是本发明基于HIP的多家乡主机的链路状态监测及故障排除方法的操作流程图。

具体实施方式

[0037] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细描述。
[0038] 本发明基于主机标识协议HIP的多家乡主机的链路状态监测及故障排除方法的创新关键技术有两项:链路状态监测和故障排除。其中,链路状态监测机制又分为:链路监测和地址可达性维护两方面技术。下面分别介绍之:
[0039] 链路监测是通信主机为当前会话基于主机标识层建立发送定时器和设定其计时数值,并用可达性维护时间(KEEPALIVE_TIMEOUT)参数将其发送定时器的计时数值通告对端主机。发送定时器是通信主机要求对端主机在计时数值的设定时间内必须做出回复的计时装置;当主机发送数据包时,就启动发送定时器;如果在发送定时器的设定时间内,该主机未收到对端主机的回复,则认为链路出现故障而进入故障排除流程。
[0040] 地址可达性维护是通信主机为当前会话基于主机标识层建立地址维护定时器和接收带有可达性维护时间参数的消息,再根据可达性维护时间参数的数值设定其地址维护定时器的计时数值,以便在地址维护定时器的计时时间内,主机以维护时间间隔的时长为周期,向对端主机发送带有可达性维护(KEEPALIVE)类型通告参数的HIP协议通告(NOTIFY)消息,用于维护其当前使用地址的可达性。通常,维护时间间隔的时长设为地址维护定时器的计时数值的1/3~1/2。地址维护定时器是通信主机在其计时数值的设定时间内必须向对端主机做出回复的计时装置。在当前无数据包发送时,主机要发送带有可达性维护(KEEPALIVE)类型通告参数的通告消息,用于维护其当前使用地址的可达性。当主机接收到来自对端主机的数据包后,启动地址维护定时器;当主机要向对端主机发送数据包或地址维护定时器超时的时候,就关闭地址维护定时器。
[0041] 因此,只在链路空闲时发送标识为可达性维护类型的通告消息。这样,对于对端主机,无论链路处于通信状态还是空闲状态,在当前链路上应该都能接收到数据包。因此,只要发生了发送定时器超时,主机则认定对应链路出现了故障。
[0042] 链路发生故障后,检测到故障的一端主机通常采用以下两种方式进行故障排除与通信恢复的流程:
[0043] 主动模式:处于主动模式的主机在检测到故障后,向对端主机发送HIP协议更新(UPDATE)消息。该更新消息中携带有地址(LOCATOR)参数,标识一个新的优先使用(Preferred)地址。对端主机收到该更新消息后,将地址参数中指定的优先使用地址设为新的目的地址。然后,两端主机按照图3所示的HIP协议三次握手更新过程完成其余的更新步骤。完成更新后,通信两端主机将使用新的地址对进行通信。
[0044] 主动模式中,主机发送更新消息的目的是为了在当前链路已发生故障的情况下,寻找一个新的可用的地址。在更新消息发送后的一段时间内,若发送方主机未收到任何来自对端主机的回复消息时,则表明以前尝试的新地址无法使用。此时,发送方主机可选择进入被动模式,或者重新选择一个地址作为优先地址,继续以主动模式工作而发送新的更新消息。若主机在对自身所有的地址都进行了尝试后,仍未找到可用的地址,则主机进入被动模式。
[0045] 被动模式:主机处于被动模式时,就从以前已经获知的对端主机地址集中选取一个处于激活状态的地址作为目的地址发送地址不可用(INVALID_LOCATOR)类型通告参数的通告消息,以表明当前链路出现故障。若当前对端主机地址集中没有处于激活状态的地址,则主机进入主动模式。
[0046] 若对端主机接收到该通告消息,则对端主机进入主动模式,以主动模式发起通信恢复过程。对端主机可默认选取之前收到的通告消息中的源地址/目的地址对为新的可用地址对,也可根据自身策略而重新选择地址对。
[0047] 通告消息的发送方若在一段时间内没有收到来自对端主机的回复,则可选择进入主动模式,或从对端主机地址集中重新选取一个处于激活状态的地址,继续以被动模式工作。若主机在尝试了对端主机的所有地址后仍,仍未找到可用的地址,则主机进入主动模式。
[0048] 主机优先进入哪一种模式和主机如何在两种工作模式之间进行切换,都是由使用者根据需求自行设定。两种工作模式的区别主要是在链路发生故障后,主机优先尝试改变自身使用的地址还是优先让对端主机改变使用的地址。无论两种工作模式以何种方式组合,通信两端主机总能找到一条新的可用的链路,继续原来的通信过程。
[0049] 为了实现上述两个关键技术,本发明扩展了现有的HIP协议,添加了新的参数;主要有两种共三个:
[0050] A、可达性维护时间(KEEPALIVE_TIMEOUT)参数:可达性维护时间参数可携带在HIP协议R1、I2或更新消息中,用以向对端主机通告本次通信应以何种时间频率对链路状态进行监测。对端主机根据可达性维护时间参数中的信息,设定其地址维护定时器的计时数值。可达性维护时间参数的格式和说明参见图4所示,它包括下列字段:Type参数类型为10,Length参数长度,Reserved保留字段和Keepalive Timeout地址维护定时器的计时参数,其数值与消息发送端的发送定时器的计时数值相等。
[0051] B、通告(NOTIFICATION)参数:HIP协议中,主机使用通告消息向对端主机通告相关消息。通告消息中使用通告(NOTIFICATION)参数表明通告的类型和内容。本发明定义了可达性维护(KEEPALIVE)类型与地址不可用(INVALD_LOCATOR)类型两个通告参数。
[0052] 主机使用可达性维护(KEEPALIVE)类型的通告参数来实现维护当前使用地址的可达性。可达性维护类型的通告参数格式和说明参见图5所示,它包括下列字段:Type参数类型为832,Length参数长度,Reserved保留字段和NotifyMessage Type通告消息类型。根据HIP协议规定,可达性维护类型通告参数的通告消息类型值应在16384~65535之间。
在没有数据包需要发送的情况下,主机要向对端主机发送标识为可达性维护类型的通告消息,以表示当前链路通信正常。对端主机收到标识为可达性维护类型的通告消息后,关闭发送定时器。
[0053] 主机使用地址不可用(INVALD_LOCATOR)类型的通告参数告知对端主机当前链路出现故障。地址不可用类型的通告参数格式和说明参见图6所示,它包括下列字段:Type参数类型为832,Length参数长度,Reserved保留字段,Notify Message Type通告消息类型和NOTIFICATION DATA通告数据。根据HIP协议规定,地址不可用类型通告参数的通告消息类型值应在0~16383之间,通告数据字段用于标识当前无法使用的地址。
[0054] 本发明是一种多家乡主机的链路状态监测及故障排除方法,该方法对主机标识协议HIP进行扩展,引入可达性维护时间(KEEPALIVE_TIMEOUT)参数和可达性维护(KEEPALIVE)与地址不可用(INVALID_LOCATOR)两种类型的通告参数,以使发起通信的主机与对端主机能分别确定各自的发送定时器的计时数值,并在链路状态监测的初始阶段,使用可达性维护时间参数双方协商确定各自的地址维护定时器的计时数值;在会话进行过程中,依赖可达性维护类型的通告参数和双方商定的发送定时器与地址维护定时器的两个计时数值,两端主机对通信链路状态进行监测;发生故障后,两端主机通过选用不同的工作模式,使用地址不可用类型的通告参数和HIP协议的三次握手更新过程排除故障而恢复通信,从而快速、高效地监测多家乡场景中的链路状态与及时排除故障。其中两端主机都是多家乡主机,或者至少其中一端是多家乡主机。
[0055] 参见图7,介绍本发明方法的下述四个具体操作步骤:
[0056] 步骤A、通信两端主机协商确定链路状态监测参数,完成链路状态监测初始化:两端主机设置各自的发送定时器的计时数值,再协商通告可达性维护时间参数,用于设置各自的地址维护定时器的计时数值。
[0057] 该步骤A包括下列操作内容:
[0058] (A1)发起通信的主机根据自身策略制定其发送定时器的计时数值;该发送定时器是发起通信的主机要求对端主机在计时数值的设定时间内必须做出回复的计时装置;当该主机发送数据包时,就启动发送定时器;如果在发送定时器的设定时间内,该主机未收到对端主机的回复,则认为链路出现故障;
[0059] (A2)发起通信的主机向对端主机发送可达性维护时间参数,可达性维护时间参数的数值为该主机的发送定时器的计时数值;该可达性维护时间参数是通过HIP协议的R1、I2或更新消息进行发送的;
[0060] (A3)对端主机收到含有可达性维护时间参数的消息后,根据该可达性维护时间参数的数值设置其地址维护定时器的计时数值;同时,对端主机设定其维护时间间隔的时长,该时长为其地址维护定时器的计时数值的1/3~1/2;该地址维护定时器是对端主机必须在其计时数值的设定时间内向发起通信的主机做出回复的计时装置,当对端主机接收到来自发起通信的主机的数据包时,就启动地址维护定时器;并在该地址维护定时器的设定时间内,以维护时间间隔的时长为周期,向发起通信的主机发送带有可达性维护类型通告参数的通告消息,用于维护其当前使用地址的可达性;
[0061] (A4)对端主机根据自身策略制定其发送定时器的计时数值;该发送定时器是对端主机要求发起通信的主机在计时数值的设定时间内必须做出回复的计时装置;然后,对端主机向发起通信的主机发送可达性维护时间参数,该可达性维护时间参数的数值是其发送定时器的计时数值;
[0062] (A5)发起通信的主机收到含有可达性维护时间参数的消息后,根据该可达性维护时间参数的数值设置其地址维护定时器的计时数值;同时,发起通信的主机设定其维护时间间隔的时长;该地址维护定时器是发起通信的主机必须在其计时数值的设定时间内向对端主机做出回复的计时装置;至此,通信两端主机都完成了发送定时器及地址维护定时器的参数设置,结束链路状态监测初始化流程。
[0063] 步骤B、通信过程中,通信两端主机向其对端主机发送数据包,并对当前链路状态进行监测;
[0064] 该步骤B包括下列操作内容:
[0065] (B1)通信两端的主机在向对端主机发送数据包后,都启动其发送定时器,开始监测该条链路,即等待接收从对端主机返回的数据包;若在发送定时器的设定时间内,主机在该条链路没有收到对端主机发送的消息,则认为该条链路已出现故障,跳转执行步骤(D);否则,顺序执行步骤(B2);
[0066] (B2)在发送定时器的设定时间内,主机收到对端主机在当前监测链路上的数据包,则关闭发送定时器;此时,若主机仍有数据包要发送,则返回执行步骤(B1);否则,顺序执行步骤(C)。
[0067] 步骤C、通信两端主机分别维护各自当前使用地址的可达性;
[0068] 所述步骤(C)进一步包括下列操作内容:
[0069] (C1)主机在当前监测链路上收到数据包后,关闭发送定时器,同时启动其地址维护定时器,该地址维护定时器的计时数值(Keepalive Timeout)为可达性维护时间参数值;此时,若主机没有数据包要发送,则顺序执行步骤(C2);否则,跳转执行步骤(C3);
[0070] (C2)主机以维护时间间隔的时长为周期,发送带有可达性维护类型通告参数的通告消息,该操作要持续执行到地址维护定时器的计时超时,或在当前链路上收到数据包为止;
[0071] (C3)主机要发送新的数据包时,关闭地址维护定时器,返回执行步骤(B)。
[0072] 步骤D、发生故障后,检测到链路状态出错的一端通信主机发起排除故障、恢复通信的操作流程。
[0073] 该步骤D包括下列操作内容:
[0074] (D1)因发送定时器的计时超时,主机发起重新选择可用地址而排除故障的操作:根据当前的工作模式,主机选择下述两种模式排除故障;若选用主动模式排除故障,则顺序执行步骤(D2);若选用被动模式排除故障,则跳转执行步骤(D3);
[0075] (D2)主机选用主动模式排除故障,即主机尝试更改自身使用的地址,具体操作内容如下:
[0076] (D21)主机查看自己当前是否有其他的可用地址,若有,则顺序执行步骤(D22);否则,选用被动模式排除故障,跳转执行步骤(D3);
[0077] (D22)主机向对端主机发送更新消息,该更新消息携带有标识一个新的优先使用地址的地址参数;发出该更新消息后,主机等待接收从对端主机返回的确认消息;若主机接收到从对端主机返回的确认消息,则顺序执行步骤(D23);否则,跳转执行步骤(D24);
[0078] (D23)主机接收到从对端主机返回的确认消息,表明对端主机已确认当前的地址更改,则两端主机按照HIP协议规定的三次握手更新过程完成剩余的地址更新步骤;更新地址后,两端主机采用新的地址进行通信,结束排除故障流程;
[0079] (D24)若在设定时间内,主机未收到任何从对端主机发来的回复,则表明步骤(D22)中尝试的新地址无法使用;此时,主机选择下述两种方式:重新选择一个地址作为优先地址,继续选用主动模式排除故障,即发送新的更新消息,则返回执行步骤(D21);或者选用被动模式排除故障,则顺序执行步骤(D3)。
[0080] (D3)主机选用被动模式排除故障,即主机将该链路出错信息通告对端主机,由对端主机更改其使用的地址;其具体操作内容如下:
[0081] (D31)主机查看当前的对端主机地址集中是否有处于激活状态的地址,若有,则顺序执行步骤(D32);否则,选用主动模式排除故障,返回执行步骤(D2);
[0082] (D32)主机从对端主机地址集中选取一个处于激活状态的地址,向对端主机发送带有地址不可用类型通告参数的通告消息,告知其当前链路已出现故障;发出该消息后,主机开始等待接收从对端主机返回的确认消息;若对端主机收到该通告消息,则顺序执行步骤(D33);否则,跳转执行步骤(D34);
[0083] (D33)对端主机选用主动模式排除故障,即对端主机执行步骤(D2)操作,发起通信恢复流程;其中,对端主机默认选取以前收到的通告消息中的源地址与目的地址对为新的可用地址对,或者根据自身策略,重新选择地址对;
[0084] (D34)主机继续选用被动模式排除故障,则准备从对端主机地址集中重新选取另一个处于激活状态的地址,即返回执行步骤(D31);或者,主机放弃被动模式而选用主动模式排除故障,则返回执行步骤(D2)。
[0085] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。