一种(s,g)表项的管理方法和设备的制作方法

文档序号:7813315阅读:407来源:国知局
一种(s,g)表项的管理方法和设备的制作方法
【专利摘要】本发明公开了一种(S,G)表项的管理方法和设备,该方法包括:第一网络设备建立剪枝邻居列表,并在所述剪枝邻居列表中维护所有入接口状态为Pruned状态的网络设备的信息;所述第一网络设备在需要删除(S,G)表项时,判断所述剪枝邻居列表中是否存在入接口状态为Pruned状态的网络设备的信息;如果存在,则所述第一网络设备拒绝删除所述(S,G)表项;如果不存在,则所述第一网络设备允许删除所述(S,G)表项。本发明实施例中,可以保证上游网络设备的(S,G)表项的保持时间比下游网络设备的(S,G)表项的保持时间更长,从而提高整网链路的性能。
【专利说明】一种(S,G)表项的管理方法和设备

【技术领域】
[0001]本发明涉及通信【技术领域】,尤其是一种(S,G)表项的管理方法和设备。

【背景技术】
[0002]PIM-DM(Protocol Independent Multicast-Dense Mode,协议无关组播-密集模式)通过泛洪-剪枝机制来维护组播转发树。在泛洪阶段,组播源S向组播组G发送组播报文,组播源对应的DR(Designated Router,指定路由器)在收到组播报文后,创建(S,G)表项,并通过出接口发送组播报文,由收到组播报文的网络设备(如路由器)创建(S,G)表项,并通过出接口发送组播报文。其中,(S,G)表项的入接口为组播报文的接收接口,出接口为入接口外的有直连接收者或P頂邻居的接口。基于上述处理,PM-DM网络中的所有网络设备均会维护(S,G)表项。在剪枝阶段,网络设备(下游网络设备)在收到组播报文后,如果本地没有对应的接收者,则通过(S,G)表项的入接口发送Prune (剪枝)报文,并将入接口的状态设置为P(Pruned)状态。网络设备(上游网络设备)在收到Prune报文之后,将Prune报文的接收接口从(S,G)表项的出接口中删除,在后续转发组播报文时,出接口将不包括Prune报文的接收接口,即组播报文不会被转发给Prune报文对应的下游网络设备。
[0003]为了防止网络设备对每份组播报文都回应Prune报文,从而导致需要发送大量Prune报文的问题,网络设备(下游网络设备)在通过(S,G)表项的入接口第一次发送Prune报文之后,在(S,G)表项中为该入接口设置PLT(Prune Limit Timer,剪枝抑制定时器),在PLT未超时期间,即使网络设备(下游网络设备)收到组播报文,也不会再通过(S,G)表项的入接口发送Prune报文。
[0004]现有技术中,为了在各网络设备上维护(S,G)表项,组播源对应的DR会周期性的泛洪SRM(State Refresh Message,状态刷新报文),该SRM中携带了(S, G)信息,由收到SRM的网络设备更新(S,G)表项的老化时间。
[0005]在上述方式下,上游网络设备向下游网络设备发送SRM之后,如果上游网络设备的(S,G)表项被删除,而下游网络设备的(S,G)表项没有被删除(即下游网络设备收到SRM后更新(S,G)表项的老化时间),且下游网络设备在(S,G)表项中为入接口设置的PLT仍然存在,则会导致以下问题:
[0006]上游网络设备再次收到组播报文后,创建(S,G)表项,该(S,G)表项的出接口包括下游网络设备对应的接口,且上游网络设备会通过出接口发送组播报文。下游网络设备在收到组播报文后,应该向上游网络设备发送Prune报文,但是由于(S,G)表项中为入接口设置的PLT仍然存在,因此导致下游网络设备不会向上游网络设备发送Prune报文,即上游网络设备将一直向下游网络设备发送组播报文,一直到PLT超时,从而导致链路带宽被长时间占用。


【发明内容】

[0007]本发明实施例提供一种(S,G)表项的管理方法,所述方法包括以下步骤:第一网络设备建立剪枝邻居列表,并在所述剪枝邻居列表中维护所有入接口状态为剪枝Pruned状态的网络设备的信息;所述第一网络设备在需要删除(S,G)表项时,判断所述剪枝邻居列表中是否存在入接口状态为Pruned状态的网络设备的信息;如果存在,则所述第一网络设备拒绝删除所述(S,G)表项;如果不存在,则所述第一网络设备允许删除所述(S,G)表项。
[0008]所述第一网络设备在所述剪枝邻居列表中维护所有入接口状态为Pruned状态的网络设备的信息,具体包括:所述第一网络设备在接收到来自第二网络设备的Pruned报文时,确定所述第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中;所述第一网络设备在接收到来自第二网络设备的Prune Canel报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息;所述第一网络设备在接收到来自第二网络设备的Graft报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息。
[0009]所述方法进一步包括:所述第一网络设备为所述(S,G)表项生成第一随机值,在第一状态刷新报文中添加所述第一随机值,并发送所述第一状态刷新报文;由第二网络设备在收到所述第一状态刷新报文之后,存储所述第一随机值;所述第一网络设备在删除所述(S,G)表项,并重新生成(S,G)表项后,为重新生成的(S,G)表项生成第二随机值,在第二状态刷新报文中添加所述第二随机值,并发送所述第二状态刷新报文;由第二网络设备在收到所述第二状态刷新报文之后,比较第二状态刷新报文中携带的第二随机值与本地存储的第一随机值,如果第二随机值与第一随机值不同,则第二网络设备在获知入接口状态为Pruned状态时,向第一网络设备发送Pruned报文。
[0010]本发明实施例提供一种(S,G)表项的管理方法,所述方法包括以下步骤:第二网络设备确定入接口状态为剪枝Pruned状态或者不为Pruned状态;所述第二网络设备将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备,由第一网络设备利用入接口状态为Pruned状态或者不为Pruned状态的信息,在剪枝邻居列表中维护入接口状态为Pruned状态的网络设备的信息,并在所述剪枝邻居列表中存在入接口状态为Pruned状态的网络设备的信息时,拒绝删除(S,G)表项,在所述剪枝邻居列表中不存在入接口状态为Pruned状态的网络设备的信息时,允许删除(S,G)表项。
[0011]所述第二网络设备确定入接口状态为Pruned状态或者不为Pruned状态,并将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备的过程,具体包括:所述第二网络设备在本地没有对应的接收者时,确定入接口状态为Pruned状态,并向第一网络设备发送Pruned报文,由第一网络设备在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中;所述第二网络设备在(S,G)表项老化时,确定入接口状态不为Pruned状态,并向第一网络设备发送Prune取消Canel报文,由第一网络设备在接收到来自第二网络设备的Prune Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从剪枝邻居列表中删除第二网络设备的信息;所述第二网络设备在入接口状态由Pruned状态转换为确认等待AckPending状态时,确定入接口状态不为Pruned状态,并向第一网络设备发送嫁接Graft报文,由所述第一网络设备在接收到来自所述第二网络设备的Graft报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息。
[0012]所述方法进一步包括:所述第二网络设备接收来自第一网络设备的第一状态刷新报文,并从所述第一状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第一随机值,并在所述第二网络设备本地存储所述第一随机值;所述第二网络设备接收来自第一网络设备的第二状态刷新报文,并从所述第二状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第二随机值;所述第二网络设备比较所述第二随机值与所述第一随机值,如果所述第二随机值与所述第一随机值不同,则所述第二网络设备在获知本第二网络设备的入接口状态为Pruned状态时,向所述第一网络设备发送Pruned报文。
[0013]本发明实施例提供一种网络设备,作为第一网络设备应用于包括所述第一网络设备和第二网络设备的系统中,所述第一网络设备具体包括:维护模块,用于建立剪枝邻居列表,并在所述剪枝邻居列表中维护所有入接口状态为剪枝Pruned状态的网络设备的信息;判断模块,用于在需要删除(S,G)表项时,判断所述剪枝邻居列表中是否存在入接口状态为Pruned状态的网络设备的信息;处理模块,用于当存在入接口状态为Pruned状态的网络设备的信息时,则拒绝删除所述(S,G)表项;当不存在入接口状态为Pruned状态的网络设备的信息时,则允许删除所述(S,G)表项。
[0014]所述维护模块,具体用于在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,将所述第二网络设备的信息添加到所述剪枝邻居列表中;在接收到来自第二网络设备的Prune取消Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除第二网络设备的信息;在接收到来自第二网络设备的嫁接Graft报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,从所述剪枝邻居列表中删除所述第二网络设备的信肩、O
[0015]还包括:生成模块,用于为所述(S,G)表项生成第一随机值,并在第一状态刷新报文中添加所述第一随机值;以及,在删除所述(S,G)表项,并重新生成(S,G)表项之后,为所述重新生成的(S,G)表项生成第二随机值,并在第二状态刷新报文中添加所述第二随机值;
[0016]发送模块,用于发送第一状态刷新报文,由第二网络设备在收到第一状态刷新报文之后,存储所述第一随机值;以及,发送第二状态刷新报文,由第二网络设备在收到第二状态刷新报文之后,比较第二状态刷新报文中携带的第二随机值与本地存储的第一随机值,如果第二随机值与第一随机值不同,则在获知入接口状态为Pruned状态时,向第一网络设备发送Pruned报文。
[0017]本发明实施例提供一种网络设备,作为第二网络设备应用于包括第一网络设备和所述第二网络设备的系统中,所述第二网络设备具体包括:
[0018]确定模块,用于确定入接口状态为剪枝Pruned状态或者不为Pruned状态;
[0019]发送模块,用于将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备,由所述第一网络设备利用入接口状态为Pruned状态或者不为Pruned状态的信息,在剪枝邻居列表中维护入接口状态为Pruned状态的网络设备的信息,并在所述剪枝邻居列表中存在入接口状态为Pruned状态的网络设备的信息时,拒绝删除(S,G)表项,在所述剪枝邻居列表中不存在入接口状态为Pruned状态的网络设备的信息时,允许删除(S,G)表项。
[0020]所述确定模块,具体用于在所述第二网络设备本地没有对应的接收者时,则确定入接口状态为Pruned状态;或者,在(S,G)表项老化时,则确定入接口状态不为Pruned状态;或者,在入接口状态由Pruned状态转换为确认等待AckPending状态时,则确定入接口状态不为Pruned状态;
[0021]所述发送模块,具体用于在所述第二网络设备没有对应的接收者时,则向第一网络设备发送Pruned报文,由第一网络设备在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中;或者,在(S,G)表项老化时,则向第一网络设备发送Prune取消Canel报文,由第一网络设备在接收到来自第二网络设备的Prune Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从剪枝邻居列表中删除第二网络设备的信息;或者,在入接口状态由Pruned状态转换为AckPending状态时,则向第一网络设备发送Graft报文,由所述第一网络设备在接收到来自所述第二网络设备的Graft报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息。
[0022]还包括:处理模块,用于接收来自第一网络设备的第一状态刷新报文,并从所述第一状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第一随机值,并在所述第二网络设备本地存储所述第一随机值;以及,接收来自第一网络设备的第二状态刷新报文,并从所述第二状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第二随机值;
[0023]所述发送模块,进一步用于比较所述第二随机值与所述第一随机值,如果所述第二随机值与所述第一随机值不同,则在获知所述第二网络设备的入接口状态为Pruned状态时,向所述第一网络设备发送Pruned报文。
[0024]基于上述技术方案,本发明实施例中,通过在剪枝邻居列表中维护所有入接口状态为Pruned状态的网络设备的信息,并在需要删除(S,G)表项时,如果剪枝邻居列表中存在入接口状态为Pruned状态的网络设备的信息,则拒绝删除(S,G)表项,从而保证上游网络设备的(S,G)表项的保持时间比下游网络设备的(S,G)表项的保持时间更长。当数据流中断后再次转发时,由于上游网络设备的(S,G)表项的保持时间比下游网络设备的(S,G)表项的保持时间更长,因此不会出现上游网络设备的(S,G)表项被删除,而下游网络设备的(S,G)表项没有被删除,且下游网络设备在(S,G)表项中为入接口设置的PLT仍然存在的情况。基于此,可以避免上游网络设备一直向下游网络设备发送组播报文,直到PLT超时所导致的链路带宽被长时间占用问题,极大的减小中间链路泛洪、剪枝震荡,并提高整网链路的性能。

【专利附图】

【附图说明】
[0025]图1是本发明实施例中提出的应用场景示意图;
[0026]图2是本发明实施例中提供的一种(S,G)表项的管理方法流程示意图;
[0027]图3是本发明实施例中提出的一种状态刷新报文的结构示意图;
[0028]图4是本发明实施例中提供的一种第一网络设备的结构示意图;
[0029]图5是本发明实施例中提供的一种第二网络设备的结构示意图。

【具体实施方式】
[0030]针对现有技术中存在的问题,本发明实施例提供一种(S, G)表项的管理方法,该方法应用于包括第一网络设备和第二网络设备的PIM-DM网络中。第一网络设备与第二网络设备连接,第一网络设备是第二网络设备的上游网络设备,第二网络设备是第一网络设备的下游网络设备。与下游网络设备相比,上游网络设备更靠近组播源方向;与上游网络设备相比,下游网络设备更靠近接收者方向。因此,对于组播源方向发出的报文,先经过上游网络设备,由上游网络设备将该报文发送给下游网络设备;对于接收者方向发出的报文,先经过下游网络设备,由下游网络设备将该报文发送给上游网络设备。
[0031]以图1为本发明实施例的应用场景示意图,对于路由器A和路由器B来说,路由器A为第一网络设备(即上游网络设备),路由器B为第二网络设备(即下游网络设备)。进一步的,对于路由器B和路由器C来说,路由器B为第一网络设备(即上游网络设备),路由器C为第二网络设备(即下游网络设备)。进一步的,对于路由器B和路由器D来说,路由器B为第一网络设备(即上游网络设备),路由器D为第二网络设备(即下游网络设备)。
[0032]为了方便描述,如图1所示,以路由器B为第一网络设备(上游网络设备),路由器C和路由器D为第二网络设备(即下游网络设备)为例进行说明。
[0033]如图2所示,该(S,G)表项的管理方法具体可以包括以下步骤:
[0034]步骤201,第二网络设备(下游网络设备)确定入接口状态为Pruned状态或者不为Pruned状态,并将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备(上游网络设备)。其中,第二网络设备确定的入接口状态为第二网络设备上与第一网络设备连接接口对应的入接口状态。
[0035]步骤202,第一网络设备(即上游网络设备)建立剪枝邻居列表,并在该剪枝邻居列表中维护所有入接口状态为Pruned状态的网络设备的信息。
[0036]第二网络设备将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备后,第一网络设备利用入接口状态为Pruned状态或者不为Pruned状态的信息,在剪枝邻居列表中维护入接口状态为Pruned状态的网络设备的信息。当第二网络设备将入接口状态为Pruned状态的信息通知给第一网络设备时,第一网络设备在剪枝邻居列表中维护第二网络设备的信息,如第二网络设备的设备标识、MAC (Media Access ControlAddress,媒体访问控制)地址等。当第二网络设备将入接口状态不为Pruned状态的信息通知给第一网络设备时,第一网络设备不在剪枝邻居列表中维护第二网络设备的信息。
[0037]本发明实施例中,第二网络设备确定入接口状态为Pruned状态或者不为Pruned状态,并将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备的过程,以及,第一网络设备在剪枝邻居列表中维护所有入接口状态为Pruned状态的网络设备的信息的过程,具体包括但不限于:
[0038]情况一、第二网络设备在本地没有对应的接收者时,确定入接口状态为Pruned状态,并向第一网络设备发送Pruned报文。第一网络设备在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将第二网络设备的信息添加到剪枝邻居列表中。
[0039]具体的,在剪枝阶段中,第二网络设备在收到组播报文后,如果本地没有对应的接收者,则确定入接口状态(即(S,G)表项的入接口的入接口状态)为Pruned状态,并通过(S,G)表项的入接口向第一网络设备发送Prune报文,并将入接口的入接口状态设置为P (Pruned)状态。第一网络设备在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将第二网络设备的信息添加到剪枝邻居列表中。
[0040]情况二、第二网络设备在(S,G)表项老化时,确定入接口状态不为Pruned状态,并向第一网络设备发送Prune Canel (取消)报文。第一网络设备在接收到来自第二网络设备的Prune Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,从剪枝邻居列表中删除第二网络设备的信息。
[0041]具体的,为了在各网络设备上维护(S,G)表项,组播源对应的DR会周期性的泛洪SRM,该SRM中携带了(S,G)信息,由收到SRM的网络设备更新(S,G)表项的老化时间。基于此,如果第二网络设备在预设时间内未收到SRM,则相应的(S,G)表项将会由于老化时间超时而被删除,且在(S,G)表项老化超时而被删除之后,第二网络设备确定入接口状态不为Pruned状态,并向第一网络设备发送Prune Canel报文。第一网络设备在接收到来自第二网络设备的Prune Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从剪枝邻居列表中删除第二网络设备的信息。
[0042]情况三、第二网络设备在入接口状态由Pruned状态转换为AckPending(确认等待)状态时,确定入接口状态不为Pruned状态(即由Pruned状态转换为不为Pruned状态),并向第一网络设备发送Graft (嫁接)报文。第一网络设备在接收到来自第二网络设备的Graft报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,从剪枝邻居列表中删除第二网络设备的信息。
[0043]步骤203,第一网络设备在需要删除(S,G)表项时,判断剪枝邻居列表中是否存在入接口状态为Pruned状态的网络设备的信息;如果存在,则表示有第二网络设备(下游网络设备)仍然存在(S,G)表项,执行步骤204;如果不存在,则表示所有第二网络设备均不存在(S,G)表项,执行步骤205。
[0044]步骤204,第一网络设备拒绝删除(S,G)表项。
[0045]步骤205,第一网络设备允许删除(S,G)表项。
[0046]基于上述技术方案,本发明实施例中,通过在剪枝邻居列表中维护所有入接口状态为Pruned状态的网络设备的信息,并在需要删除(S,G)表项时,如果剪枝邻居列表中存在入接口状态为Pruned状态的网络设备的信息,则拒绝删除(S,G)表项,从而保证上游网络设备的(S,G)表项的保持时间比下游网络设备的(S,G)表项的保持时间更长。当数据流中断后再次转发时,由于上游网络设备的(S,G)表项的保持时间比下游网络设备的(S,G)表项的保持时间更长,因此不会出现上游网络设备的(S,G)表项被删除,而下游网络设备的(S,G)表项没有被删除,且下游网络设备在(S,G)表项中为入接口设置的PLT仍然存在的情况。基于此,可以避免上游网络设备一直向下游网络设备发送组播报文,直到PLT超时所导致的链路带宽被长时间占用问题,极大的减小中间链路泛洪、剪枝震荡,并提高整网链路的性能。
[0047]本发明实施例中,第一网络设备为(S, G)表项生成第一随机值,并在第一状态刷新报文中添加该第一随机值,并向第二网络设备发送携带了该第一随机值的第一状态刷新报文。第二网络设备接收来自第一网络设备的第一状态刷新报文,并从第一状态刷新报文中解析出第一网络设备为(S,G)表项生成的第一随机值,并在第二网络设备本地存储该第一随机值。
[0048]第一网络设备在删除(S,G)表项,并重新生成(S,G)表项之后,为重新生成的(S,G)表项生成第二随机值,并在第二状态刷新报文中添加该第二随机值,并向第二网络设备发送携带了该第二随机值的第二状态刷新报文。第二网络设备接收来自第一网络设备的第二状态刷新报文,并从该第二状态刷新报文中解析出第一网络设备为重新生成的(S,G)表项生成的第二随机值。其中,第一网络设备删除的(S,G)表项与第一网络设备重新生成的(S,G)表项具有相同的(S,G)信息,即具有相同的源地址和组地址。
[0049]第二网络设备在接收到第二状态刷新报文之后,当第二状态刷新报文中携带的(S,G)信息与第二网络设备本地存储的第一随机值对应的(S,G)信息相同时,第二网络设备比较第二状态刷新报文中携带的第二随机值与第二网络设备本地存储的第一随机值,如果第二随机值与第一随机值不同,则第二网络设备在获知本第二网络设备的入接口状态为Pruned状态时,不管PLT是否正在运行,第二网络设备均直接向第一网络设备发送Pruned报文。
[0050]如图3所示,为一种状态刷新报文的结构示意图,第一网络设备可以利用状态刷新报文中的Reserved(预留)字段,来携带(S,G)表项对应的随机值(第一随机值或者第二随机值)。其中,当第一网络设备第一次为某个(S,G)表项转发状态刷新报文时,则生成一个随机值(第一随机值),在之后为该(S,G)表项转发的每一份状态刷新报文中,都会携带有该第一随机值。如果该(S,G)表项被删除,且第一网络设备又重新生成了具有相同(S,G)信息的(S,G)表项,则当第一网络设备第一次为重新生成的(S,G)表项转发状态刷新报文时,则生成一个随机值(第二随机值),在之后为该(S,G)表项转发的每一份状态刷新报文中,都会携带有该第二随机值。
[0051]基于上述技术方案,本发明实施例中,通过在第一网络设备和第二网络设备之间进行协商,当第一网络设备基于新建的(S,G)表项,向第二网络设备发送状态刷新报文(SRM)时,第二网络设备在收到状态刷新报文后,即使(S,G)表项中为入接口设置的PLT仍然存在,如果第二网络设备本地没有对应的接收者,也会通过(S,G)表项的入接口向第一网络设备发送Prune报文,从而避免第一网络设备一直向第二网络设备发送组播报文,一直到PLT超时,从而导致链路带宽被长时间占用的问题,可以提升链路带宽性能。
[0052]基于与上述方法同样的发明构思,本发明实施例中还提供了一种网络设备,作为第一网络设备(上游网络设备)应用于包括所述第一网络设备和第二网络设备的系统中,如图4所示,所述第一网络设备具体包括:
[0053]维护模块11,用于建立剪枝邻居列表,并在所述剪枝邻居列表中维护所有入接口状态为剪枝Pruned状态的网络设备的信息;
[0054]判断模块12,用于在需要删除(S,G)表项时,判断所述剪枝邻居列表中是否存在入接口状态为Pruned状态的网络设备的信息;
[0055]处理模块13,用于当存在入接口状态为Pruned状态的网络设备的信息时,则拒绝删除所述(S,G)表项;当不存在入接口状态为Pruned状态的网络设备的信息时,则允许删除所述(S,G)表项。
[0056]所述维护模块11,具体用于在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中;在接收到来自第二网络设备的Prune Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息;在接收到来自第二网络设备的Graft报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息。
[0057]所述网络设备还包括:
[0058]生成模块14,用于为所述(S, G)表项生成第一随机值,并在第一状态刷新报文中添加所述第一随机值;以及,在删除所述(S,G)表项,并重新生成(S,G)表项之后,为所述重新生成的(S,G)表项生成第二随机值,并在第二状态刷新报文中添加所述第二随机值;
[0059]发送模块15,用于发送第一状态刷新报文,由第二网络设备在收到第一状态刷新报文之后,存储所述第一随机值;以及,发送第二状态刷新报文,由第二网络设备在收到第二状态刷新报文之后,比较第二状态刷新报文中携带的第二随机值与本地存储的第一随机值,如果第二随机值与第一随机值不同,则在获知入接口状态为Pruned状态时,向第一网络设备发送Pruned报文。
[0060]其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0061]基于与上述方法同样的发明构思,本发明实施例中还提供了一种网络设备,作为第二网络设备(下游网络设备)应用于包括第一网络设备和所述第二网络设备的系统中,如图5所示,所述第二网络设备具体包括:
[0062]确定模块21,用于确定入接口状态为Pruned状态或者不为Pruned状态;发送模块22,用于将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备,由所述第一网络设备利用入接口状态为Pruned状态或者不为Pruned状态的信息,在剪枝邻居列表中维护入接口状态为Pruned状态的网络设备的信息,并在所述剪枝邻居列表中存在入接口状态为Pruned状态的网络设备的信息时,拒绝删除(S,G)表项,在所述剪枝邻居列表中不存在入接口状态为Pruned状态的网络设备的信息时,允许删除(S,G)表项。
[0063]所述确定模块21,具体用于在所述第二网络设备本地没有对应的接收者时,则确定入接口状态为Pruned状态;或者,在(S,G)表项老化时,则确定入接口状态不为Pruned状态;或者,在入接口状态由Pruned状态转换为确认等待AckPending状态时,则确定入接口状态不为Pruned状态;
[0064]所述发送模块22,具体用于在所述第二网络设备本地没有对应的接收者时,向第一网络设备发送Pruned报文,由第一网络设备在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中;或者,在(S,G)表项老化时,向第一网络设备发送PruneCanel报文,由第一网络设备在接收到来自第二网络设备的Prune Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从剪枝邻居列表中删除第二网络设备的信息;或者,在入接口状态由Pruned状态转换为AckPending状态时,向第一网络设备发送Graft报文,由所述第一网络设备在接收到来自所述第二网络设备的Graft报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息。
[0065]所述网络设备还包括:
[0066]处理模块23,用于接收来自第一网络设备的第一状态刷新报文,并从所述第一状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第一随机值,并在所述第二网络设备本地存储所述第一随机值;以及,接收来自第一网络设备的第二状态刷新报文,并从所述第二状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第二随机值;
[0067]所述发送模块22,进一步用于比较所述第二随机值与所述第一随机值,如果所述第二随机值与所述第一随机值不同,则在获知所述第二网络设备的入接口状态为Pruned状态时,向所述第一网络设备发送Pruned报文。
[0068]其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0069]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
【权利要求】
1.一种(S,G)表项的管理方法,其特征在于,所述方法包括以下步骤: 第一网络设备建立剪枝邻居列表,并在所述剪枝邻居列表中维护所有入接口状态为剪枝Pruned状态的网络设备的信息; 所述第一网络设备在需要删除(S,G)表项时,判断所述剪枝邻居列表中是否存在入接口状态为Pruned状态的网络设备的信息; 如果存在,则所述第一网络设备拒绝删除所述(S,G)表项; 如果不存在,则所述第一网络设备允许删除所述(S,G)表项。
2.如权利要求1所述的方法,其特征在于,所述第一网络设备在所述剪枝邻居列表中维护所有入接口状态为Pruned状态的网络设备的信息,包括: 所述第一网络设备在接收到来自第二网络设备的Pruned报文时,确定所述第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中; 所述第一网络设备在接收到来自第二网络设备的Prune取消Canel报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息; 所述第一网络设备在接收到来自第二网络设备的嫁接Graft报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息。
3.如权利要求1所述的方法,其特征在于,所述方法进一步包括: 所述第一网络设备为所述(S,G)表项生成第一随机值,在第一状态刷新报文中添加所述第一随机值,并发送所述第一状态刷新报文;由第二网络设备在收到所述第一状态刷新报文之后,存储所述第一随机值; 所述第一网络设备在删除所述(S,G)表项,并重新生成(S,G)表项后,为重新生成的(S,G)表项生成第二随机值,在第二状态刷新报文中添加所述第二随机值,并发送所述第二状态刷新报文;由第二网络设备在收到所述第二状态刷新报文之后,比较第二状态刷新报文中携带的第二随机值与本地存储的第一随机值,如果第二随机值与第一随机值不同,则第二网络设备在获知入接口状态为Pruned状态时,向第一网络设备发送Pruned报文。
4.一种(S,G)表项的管理方法,其特征在于,所述方法包括以下步骤: 第二网络设备确定入接口状态为剪枝Pruned状态或者不为Pruned状态; 所述第二网络设备将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备,由第一网络设备利用入接口状态为Pruned状态或者不为Pruned状态的信息,在剪枝邻居列表中维护入接口状态为Pruned状态的网络设备的信息,并在所述剪枝邻居列表中存在入接口状态为Pruned状态的网络设备的信息时,拒绝删除(S,G)表项,在所述剪枝邻居列表中不存在入接口状态为Pruned状态的网络设备的信息时,允许删除(S,G)表项。
5.如权利要求4所述的方法,其特征在于,所述第二网络设备确定入接口状态为Pruned状态或者不为Pruned状态,并将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备的过程,具体包括: 所述第二网络设备在没有对应的接收者时,确定入接口状态为Pruned状态,并向第一网络设备发送Pruned报文,由第一网络设备在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中; 所述第二网络设备在(S,G)表项老化时,确定入接口状态不为Pruned状态,并向第一网络设备发送Prune取消Canel报文,由第一网络设备在接收到来自第二网络设备的PruneCanel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,从剪枝邻居列表中删除第二网络设备的信息; 所述第二网络设备在入接口状态由Pruned状态转换为确认等待AckPending状态时,确定入接口状态不为Pruned状态,并向第一网络设备发送嫁接Graft报文,由所述第一网络设备在接收到来自所述第二网络设备的Graft报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信肩、O
6.如权利要求4所述的方法,其特征在于,所述方法进一步包括: 所述第二网络设备接收来自第一网络设备的第一状态刷新报文,并从所述第一状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第一随机值,并在所述第二网络设备本地存储所述第一随机值;所述第二网络设备接收来自第一网络设备的第二状态刷新报文,并从所述第二状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第二随机值; 所述第二网络设备比较所述第二随机值与所述第一随机值,如果所述第二随机值与所述第一随机值不同,则所述第二网络设备在获知本第二网络设备的入接口状态为Pruned状态时,向所述第一网络设备发送Pruned报文。
7.—种网络设备,作为第一网络设备应用于包括所述第一网络设备和第二网络设备的系统中,其特征在于,所述第一网络设备具体包括: 维护模块,用于建立剪枝邻居列表,并在所述剪枝邻居列表中维护所有入接口状态为剪枝Pruned状态的网络设备的信息; 判断模块,用于在需要删除(S,G)表项时,判断所述剪枝邻居列表中是否存在入接口状态为Pruned状态的网络设备的信息; 处理模块,用于当存在入接口状态为Pruned状态的网络设备的信息时,则拒绝删除所述(S,G)表项;当不存在入接口状态为Pruned状态的网络设备的信息时,则允许删除所述(S,G)表项。
8.如权利要求7所述的网络设备,其特征在于,所述维护模块,具体用于在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中;在接收到来自第二网络设备的Prune取消Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息;在接收到来自第二网络设备的嫁接Graft报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从所述剪枝邻居列表中删除所述第二网络设备的信息。
9.如权利要求7所述的网络设备,其特征在于,还包括: 生成模块,用于为所述(S,G)表项生成第一随机值,并在第一状态刷新报文中添加所述第一随机值;以及,在删除所述(S,G)表项,并重新生成(S,G)表项之后,为所述重新生成的(S,G)表项生成第二随机值,并在第二状态刷新报文中添加所述第二随机值; 发送模块,用于发送第一状态刷新报文,由第二网络设备在收到第一状态刷新报文之后,存储所述第一随机值;以及,发送第二状态刷新报文,由第二网络设备在收到第二状态刷新报文之后,比较第二状态刷新报文中携带的第二随机值与本地存储的第一随机值,如果第二随机值与第一随机值不同,则在获知入接口状态为Pruned状态时,向第一网络设备发送Pruned报文。
10.一种网络设备,作为第二网络设备应用于包括第一网络设备和所述第二网络设备的系统中,其特征在于,所述第二网络设备具体包括: 确定模块,用于确定入接口状态为剪枝Pruned状态或者不为Pruned状态; 发送模块,用于将入接口状态为Pruned状态或者不为Pruned状态的信息通知给第一网络设备,由所述第一网络设备利用入接口状态为Pruned状态或者不为Pruned状态的信息,在剪枝邻居列表中维护入接口状态为Pruned状态的网络设备的信息,并在所述剪枝邻居列表中存在入接口状态为Pruned状态的网络设备的信息时,拒绝删除(S,G)表项,在所述剪枝邻居列表中不存在入接口状态为Pruned状态的网络设备的信息时,允许删除(S,G)表项。
11.如权利要求10所述的网络设备,其特征在于, 所述确定模块,具体用于在所述第二网络设备本地没有对应的接收者时,则确定入接口状态为Pruned状态;或者,在(S,G)表项老化时,则确定入接口状态不为Pruned状态;或者,在入接口状态由Pruned状态转换为确认等待AckPending状态时,则确定入接口状态不为Pruned状态; 所述发送模块,具体用于在所述第二网络设备没有对应的接收者时,则向第一网络设备发送Pruned报文,由第一网络设备在接收到来自第二网络设备的Pruned报文时,确定第二网络设备是入接口状态为Pruned状态的网络设备,并将所述第二网络设备的信息添加到所述剪枝邻居列表中;或者,在(S,G)表项老化时,则向第一网络设备发送Prune取消Canel报文,由第一网络设备在接收到来自第二网络设备的Prune Canel报文时,确定第二网络设备是入接口状态不为Pruned状态的网络设备,并从剪枝邻居列表中删除第二网络设备的信息;或者,在入接口状态由Pruned状态转换为AckPending状态时,则向第一网络设备发送嫁接Graft报文,由第一网络设备在接收到来自所述第二网络设备的Graft报文时,确定所述第二网络设备是入接口状态不为Pruned状态的网络设备,从所述剪枝邻居列表中删除所述第二网络设备的信息。
12.如权利要求10所述的网络设备,其特征在于,还包括: 处理模块,用于接收来自第一网络设备的第一状态刷新报文,并从所述第一状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第一随机值,并在所述第二网络设备本地存储所述第一随机值;以及,接收来自第一网络设备的第二状态刷新报文,并从所述第二状态刷新报文中解析出所述第一网络设备为(S,G)表项生成的第二随机值; 所述发送模块,进一步用于比较所述第二随机值与所述第一随机值,如果所述第二随机值与所述第一随机值不同,则在获知所述第二网络设备的入接口状态为Pruned状态时,向所述第一网络设备发送Pruned报文。
【文档编号】H04L12/24GK104243325SQ201410446527
【公开日】2014年12月24日 申请日期:2014年9月3日 优先权日:2014年9月3日
【发明者】贾国隽, 周维 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1