一种组播路径跟踪方法和系统的制作方法

文档序号:7762269阅读:470来源:国知局
专利名称:一种组播路径跟踪方法和系统的制作方法
技术领域
本发明涉及网络通讯领域,尤其涉及组播路径跟踪方法和系统。
背景技术
组播trace (组播追踪,称为Mtrace)是实现组播路径跟踪的一种故障诊断工具, 提供除了路径追踪之外的报文速率和报文丢失等其他信息。通过组播trace可以1)可追 踪组播报文从某个组播源到某个目的地(即组播接收者)所走的路径;2)可以定位报文丢 失问题(如拥塞);3)可定位配置问题(如TTL门限);4)尽可能减少报文发送(如不会导 致泛洪或报文数量急剧增加)。对于一棵已知的组播分发树而言,我们很难跟踪从组播源到一个组播目的节点的 转发路径,因为我们并不知道所查找的目的节点在组播树的哪个分支上。但是沿着组播树 从目的节点追溯到源节点相对容易一些,因为大多数的组播协议都可获知转发节点的上一 跳节点,这样我们就可以得到从一个组播目的节点到组播源的包含所有转发路由器的直接 路径。欲进行组播trace的节点(称为查询源或客户端,可以在组播分发树上也可以 不在组播分发树上)发送路由跟踪查询报文(组播trace Query报文)到所选组播目的 节点的最后一跳组播路由器,即与组播接收者相连的末跳组播路由器,该路由器将查询报 文转换为请求(Request)报文,再将自己的接口地址和报文统计信息封装成请求数据块 (Request Data Block),添加到请求报文的尾部,再将形成的请求报文用单播方式转发给 他所认为的前一跳路由器(处于末跳的上游)。就这样每一跳路由器都在报文尾部添加数 据块,并将其发给前一跳路由器(处于本跳的上游)。最后,第一跳路由器将此报文转换应 答报文将其发送给查询源。通过这样逐跳的转发过程,逆向追踪出从组播路由的转发路径。 如图1所示。当请求报文到达首跳路由器(组播源所在的网络与之相连)时,首跳路由器将请 求(request)报文转换为响应(Response)报文,并将完整的响应报文发送给响应目的地 址。如果组播转发路径发生异常,响应也有可能在到达首跳路由器之前返回给响应目的地 址,如不存在组播路由等。组播trace使用路由器中任何可用的信息试图确定组播转发路 径的前跳。不同种类的组播路由协议维护的协议状态数量不同,组播trace尽可能利用这 些协议提供可用的信息。例如见图1,整个网络中运行组播协议,路由器R5发起组播trace,向最后一跳路 由器R4发送组播trace query报文到路由器R4,R4收到组播trace query报文后,添加包 含R4组播信息的数据块(request data block),并将组播trace query报文转化为组播 trace request报文,接着沿着组播分发树逆向方向,向上一跳路由器R3发送,R3收到组播 trace request报文后,将包含R3组播信息的数据添加到报文,并发送到它的前一跳路由 器R2,同样R2收到组播trace query报文后,也将包含R2组播信息的数据添加到报文,并 发送到它的前一跳路由器Rl,Rl在收到组播trace request报文后,发现有直连的组播源与自己相连,则认为到了首跳路由器,然后Rl添加包含Rl组播信息的数据块到报文中,并 将报文转化为组播trace response报文,并把response报文发给R5,这样就完成了一次组 播路径的跟踪。在客户端R5对response报文进行解析,就可以跟踪组播的转发路径。但在实际组播路径跟踪过程中,以上述方式跟踪组播路径后,却得到常常得出组 播分发树有故障的结论,但实际上该组播分发树并不存在故障。

发明内容
本发明要解决的技术问题是提供一种组播路径跟踪方法和系统,提高组播路径跟 踪的准确率,防止组播分发树的故障误判断。为解决上述技术问题,本发明提供了一种组播路径跟踪方法,包括在组播跟踪过程中,查询源发起组播跟踪查询;收到所述组播跟踪查询报文的第一路由器将所述查询报文转换为请求(request) 报文后向组播分发树的上游路由器发送,直到发送至组播分发树的首跳路由器;组播分发树的首跳路由器收到请求(request)报文后,将所述request报文转换 为响应(response)报文,判断本跳路由器是否有到所述查询源的单播路由,如果有,则将 所述response报文发送给所述查询源,如果没有,则进一步判断本跳路由器如果有到所述 第一路由器的单播路由,则将所述response报文发送给所述第一路由器,由所述第一路由 器将所述response报文发送给查询源。进一步地,所述组播分发树的首跳路由器判断本跳路由器如果没有到所述第一路 由器的单播路由,则向下游路由器组播发送所述response报文。进一步地,下游路由器收到所述response报文后,判断本跳路由器是否有到所述 查询源的单播路由,如果有,则将所述response报文发送给所述查询源,如果没有,则进一 步判断本跳路由器是否有到所述第一路由器的单播路由,如果有,则将所述response报文 发送给所述第一路由器,由所述第一路由器将所述response报文发送给查询源,如果有没 有,则继续向下游路由器组播发送所述response报文,下游路由器重复执行上述步骤。进一步地,所述向下游路由器组播发送所述response报文的步骤包括从接收到 request报文的端口向本组播组内的所有与本路由器有单播路由的组播成员以组播方式发 送 response 艮文。进一步地,在向下游路由器组播发送所述response报文前,先判断是否有下游路 由器,如果有,则发送,如果没有,则丢弃所述response报文。为解决上述技术问题,本发明还提供了一种组播路径跟踪系统,包括查询子系统,位于查询源,用于在组播跟踪过程中,发起组播跟踪查询;请求报文传输子系统,位于收到所述组播跟踪查询报文的第一路由器,用于将所 述查询报文转换为请求(request)报文后向组播分发树的上游路由器发送,直到发送至组 播分发树的首跳路由器;响应报文传输子系统,位于组播分发树的首跳路由器,用于收到请求(request) 报文后,将所述request报文转换为响应(response)报文,判断本跳路由器是否有到所述 查询源的单播路由,如果有,则将所述response报文发送给所述查询源,如果没有,则进一 步判断本跳路由器如果有到所述第一路由器的单播路由,则将所述response报文发送给
5收到所述组播跟踪查询报文的第一路由器,由所述第一路由器将所述response报文发送 给查询源。进一步地,所述响应报文传输子系统,还用于判断本跳路由器如果没有到所述第 一路由器的单播路由,则向下游路由器组播发送所述response报文。进一步地,所述系统还包括报文转发子系统,位于下游路由器中,用于收到所 述response报文后,判断本跳路由器是否有到所述查询源的单播路由,如果有,则将所述 response报文发送给所述查询源,如果没有,则进一步判断本跳路由器是否有到所述第一 路由器的单播路由,如果有,则将所述response报文发送给所述第一路由器,由所述第一 路由器将所述response报文发送给查询源,如果有没有,则继续向下游路由器组播发送所 述 response 艮文。进一步地,所述向下游路由器组播发送所述response报文是指从接收到 request报文的端口向本组播组内的所有与本路由器有单播路由的组播成员以组播方式发 送 response 艮文。进一步地,所述报文转发子系统或所述响应报文传输子系统,还用于在向下游路 由器组播发送所述response报文前,先判断是否有下游路由器,如果有,则发送,如果没 有,则丢弃所述response报文。采用本发明所述方法和装置,与现有技术相比,能够使得组播trace查询客户端 及时收到响应报文,减少了组播trace失败的可能性,提高组播路径跟踪的准确率、可靠性 和成功率。


图1是组播路径跟踪的组网图;图2是出现问题时的组播路径跟踪的组网图;图3是本发明实施的路由跟踪路径图;图4是本发明的目的路由器收到单播response报文的流程图;图5是本发明的中间路由器收到组播response报文的流程图。
具体实施例方式经过研究发现当组播trace request报文向组播路径分发树中的前一跳路由 器转发时,因到达首跳路由器或者其他原因,而不能继续转发下去,这时候要将组播trace request报文转为response报文发往响应地址,即查询客户端,但是这个时候却有可能因 为到客户端没有单播路由,而将response报文丢弃,客户端因收不到response报文,导致 组播trace操作超时。此时便会出现误认为该组播分发树有故障的情况,但其实该组播分 发树是通的,并无故障。例如,在图2中,在R5上发起组播trace,经过一系列的过程,最后实际的第一跳 Rl发送响应报文给R5时,而此时Rl到R5并没有单播路由存在,因此这个时候Rl会将这个 response报文丢弃,造成R5接收响应报文超时。而直接导致R5错误的认为组播分发树是 不通的。但是此时组播路径分发树是不存在任何故障的。本发明的发明构思是
6
在组播跟踪过程中,查询源发起组播跟踪查询,收到所述组播跟踪查询报文的第 一路由器将所述查询报文转换为请求(request)报文后向组播分发树的上游路由器发送, 直到发送至组播分发树的首跳路由器;组播分发树的首跳路由器收到请求(request)报文后,将所述request报文转换 为响应(response)报文,判断本跳路由器是否有到所述查询源的单播路由,如果有,则将 所述response报文发送给所述查询源,如果没有,则进一步判断本跳路由器如果有到所述 第一路由器的单播路由,则将所述response报文发送给所述第一路由器,由所述第一路由 器将所述response报文发送给查询源。上述查询源可以在组播分发树上也可以不在组播分发树上。优选地,所述组播分发树的首跳路由器判断本跳路由器如果没有到所述第一路由 器的单播路由,则向下游路由器组播发送所述response报文。下游路由器收到所述response报文后,判断本跳路由器是否有到所述查询源的 单播路由,如果有,则将所述response报文发送给所述查询源,如果没有,则进一步判断本 跳路由器是否有到所述第一路由器的单播路由,如果有,则将所述response报文发送给所 述第一路由器,由所述第一路由器将所述response报文发送给查询源,如果有没有,则继 续向下游路由器组播发送所述response报文,下游路由器重复执行上述步骤。直到将报文 发送至查询源或者发送至第一路由器,或者丢弃。优选地,所述“向下游路由器组播发送所述response报文”的步骤包括从接收到 request报文的端口向本组播组内的所有与本路由器有单播路由的组播成员以组播方式发 送 response 艮文。在向下游路由器组播发送所述response报文前,先判断是否有下游路由器,如果 有,则发送,如果没有,则丢弃所述response报文。通过上述方法,可以大大降低组播分发树被误判故障的几率,大大提高组播路径 跟踪的成功率。为了使本发明的目的、技术方案和优势更加清楚,下面结合附图对技术方案的实 施作进一步的详细描述本发明解决在特殊组网环境(即如图2中,Rl不存在到R5路由的组网环境)下, 虽然组播路径是通的,但是response报文无法发送到组播查询客户端(即response目的 地址)的问题。通过直接定位到最后一跳以及每一跳对组播response报文的转发,确保查 询客户端能够收到response报文,及时做出正确的响应,避免组播路由跟踪的失败。如图2所示,在组播查询客户端上输入命令以及目的IP地址、源IP地址以及组地 址,该组播查询客户端向目的IP单播发送组播查询报文。组播目的节点的最后一跳路由器 收到query报文后将其转化为request报文,并添加相应的数据块,向上层路由器发送,每 一跳路由器收到request报文后都会在request报文中增加自己相关的内容,并向组播路 径的前一跳即上层路由器转发,直到到达首跳路由器。组播查询客户端也可向除末跳路由外的其他路由器发起查询,如向R3发起查询。图3是首跳路由器在此过程中的动作,具体包括以下步骤步骤101 首跳路由器要将完成路由追踪的request报文转换为response报文;步骤102 该路由器根据报文中的response地址,即查询源R5的地址,判断是否
7有到R5的地址的单播路由,如果有,则执行步骤104,如果没有,则执行步骤103 ;步骤103 根据报文中的destination(目的)地址,即接收query报文的R4的 地址,判断是否有到R4的地址的单播路由,如果有,则执行步骤104,如果没有,则执行步骤 105 ;步骤104 向该地址单播发送response报文,结束;步骤105 根据response报文中的组地址(表示该报文属于哪个组播组)查组播 路由,沿着该组的组播路径进行组播发送,结束。优选地,将组播报文从收到组播trace request报文的接口发送出去,减少报文发 送数量,避免洪泛。例如在图2中,Rl是组播分发树上的首跳路由器,当Rl收到request报文的时候, 将其转化为response报文,查单播路由,发现没有到response地址R5的路由,接着查到 destination地址R4的路由,存在到R4的路由就单播到R4,如果到R4路由也不存在,则会 沿着组播分发树的方向(R0- > Rl- > R2- > R3- > R4)组播发送response报文。对于有到R4地址的单播路由的情况,R4就会收到response报文,并根据是否有 到R5的路由决定对报文是转发还是丢弃。图4是最后一跳路由器在此过程中的动作,具体包括以下步骤步骤201 最后一跳路由器收到response报文;步骤202 判断报文中的response地址是否是本路由器某个接口的IP地址,即判 断该response报文是否是发送给自己的,如果是,执行步骤203,如果不是,执行步骤204 ;步骤203 根据报文的标识接收该response报文,结束;如果R4是查询源,则流程结束;如果R4不是查询源,则R4将该报文发送至查询 源。步骤204 根据报文中的response地址查到response地址的单播路由,判断是否 存在该路由,如果是,执行步骤205,如果不是,执行步骤206 ;步骤205 向response地址转发response报文,结束;步骤206 将这个报文丢弃,结束。例如在图2中,作为最后一跳的路由器R4收到response报文后,发现自己不是真 正的查询客户端,就会查询单播路由向真正的查询客户端R5转发,但是此时如果不存在到 R5的单播路由,且也没有下游路由器可以发送组播报文,就会把这个报文丢弃。当R5到R4 的路由为手动配置的静态路由时,则可能存在R4没有到R5路由的情况。对于中间路由器收到单播的response只做转发就可以了 ;而收到组播的 response报文要进行处理。图5是中间路由器的动作,具体包括以下步骤步骤301 路由器收到组播response报文;步骤302 判断报文中的response地址是否是本路由器某个接口的IP地址,即判 断该组播response报文是否是发送给自己的,如果是,执行步骤304,如果不是,执行步骤 303 ;步骤303 根据报文中的response地址,查到response地址的路由,判断是否存 在单播路由,如果是,执行步骤305,如果不存在,执行步骤306 ;
8
步骤304 本路由器即为查询客户端,对这个response报文进行接收处理,结束;步骤305 单播发送response报文到response地址,结束;步骤306 判断是否有组播路由,如果有,则沿着组播路径分发树转发response报 文,如果没有,将报文丢弃,结束。例如图2所示假设在Rl找不到response地址以及destination地址的路由, Rl就会把response报文组播发送到R2,R2按照图5的处理步骤逐一判断,如果有到R5的 单播路由,就直接向R5发送单播response报文,如果没有,则再判断是否有到R4的单路路 由,如果有到R4的单路路由,则通过R3转发至R4,R3此时仅转发不作处理,如果没有到R4 的单路路由,则继续向下游转发组播response报文。本实施方式采用了在首跳路由器判断是否有到response地址的路由,对 response报文采用不同的转发方式。采用上述方法对response报文的转发,从而可以减少 response报文的丢包率,提高了 response报文能够正确送到查询客户端的成功率,确保查 询客户端能够及时准确的收到响应报文。实现上述方法的组播路径跟踪系统,包括查询子系统、请求报文传输子系统和响 应报文传输子系统,其中查询子系统,位于查询源,用于在组播跟踪过程中,发起组播跟踪查询;请求报文传输子系统,位于收到所述组播跟踪查询报文的第一路由器,用于将所 述查询报文转换为请求(request)报文后向组播分发树的上游路由器发送,直到发送至组 播分发树的首跳路由器;响应报文传输子系统,位于组播分发树的首跳路由器,用于收到请求(request) 报文后,将所述request报文转换为响应(response)报文,判断本跳路由器是否有到所述 查询源的单播路由,如果有,则将所述response报文发送给所述查询源,如果没有,则进一 步判断本跳路由器如果有到所述第一路由器的单播路由,则将所述response报文发送给 收到所述组播跟踪查询报文的第一路由器,由所述第一路由器将所述response报文发送 给查询源。优选地,所述响应报文传输子系统,还用于判断本跳路由器如果没有到所述第一 路由器的单播路由,则向下游路由器组播发送所述response报文。优选地,所述系统还包括报文转发子系统,位于下游路由器中,用于收到所述 response报文后,判断本跳路由器是否有到所述查询源的单播路由,如果有,则将所述 response报文发送给所述查询源,如果没有,则进一步判断本跳路由器是否有到所述第一 路由器的单播路由,如果有,则将所述response报文发送给所述第一路由器,由所述第一 路由器将所述response报文发送给查询源,如果有没有,则继续向下游路由器组播发送所 述 response 艮文。优选地,所述向下游路由器组播发送所述response报文是指从接收到request 报文的端口向本组播组内的所有与本路由器有单播路由的组播成员以组播方式发送 response 艮文。优选地,所述报文转发子系统或所述响应报文传输子系统,还用于在向下游路由 器组播发送所述response报文前,先判断是否有下游路由器,如果有,则发送,如果没有, 则丢弃所述response报文。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成,所述程序可以存储于计算机可读存储介质中,如路由器以及路由器的flash 或硬盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。 相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模 块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种组播路径跟踪方法,包括在组播跟踪过程中,查询源发起组播跟踪查询;收到所述组播跟踪查询报文的第一路由器将所述查询报文转换为请求(request)报文后向组播分发树的上游路由器发送,直到发送至组播分发树的首跳路由器;组播分发树的首跳路由器收到请求(request)报文后,将所述request报文转换为响应(response)报文,判断本跳路由器是否有到所述查询源的单播路由,如果有,则将所述response报文发送给所述查询源,如果没有,则进一步判断本跳路由器如果有到所述第一路由器的单播路由,则将所述response报文发送给所述第一路由器,由所述第一路由器将所述response报文发送给查询源。
2.如权利要求1所述的方法,其特征在于所述组播分发树的首跳路由器判断本跳路由器如果没有到所述第一路由器的单播路 由,则向下游路由器组播发送所述response报文。
3.如权利要求2所述的方法,其特征在于下游路由器收到所述response报文后,判断本跳路由器是否有到所述查询源的单播 路由,如果有,则将所述response报文发送给所述查询源,如果没有,则进一步判断本跳路 由器是否有到所述第一路由器的单播路由,如果有,则将所述response报文发送给所述第 一路由器,由所述第一路由器将所述response报文发送给查询源,如果有没有,则继续向 下游路由器组播发送所述response报文,下游路由器重复执行上述步骤。
4.如权利要求2或3所述的方法,其特征在于所述向下游路由器组播发送所述response报文的步骤包括从接收到request报文的端口向本组播组内的所有与本路由器有单播路由的组播成 员以组播方式发送response报文。
5.如权利要求2或3所述的方法,其特征在于在向下游路由器组播发送所述response报文前,先判断是否有下游路由器,如果有, 则发送,如果没有,则丢弃所述response报文。
6.一种组播路径跟踪系统,包括查询子系统,位于查询源,用于在组播跟踪过程中,发起组播跟踪查询;请求报文传输子系统,位于收到所述组播跟踪查询报文的第一路由器,用于将所述查 询报文转换为请求(request)报文后向组播分发树的上游路由器发送,直到发送至组播分 发树的首跳路由器;响应报文传输子系统,位于组播分发树的首跳路由器,用于收到请求(request)报文 后,将所述request报文转换为响应(response)报文,判断本跳路由器是否有到所述查询 源的单播路由,如果有,则将所述response报文发送给所述查询源,如果没有,则进一步判 断本跳路由器如果有到所述第一路由器的单播路由,则将所述response报文发送给收到 所述组播跟踪查询报文的第一路由器,由所述第一路由器将所述response报文发送给查 询源。
7.如权利要求6所述的系统,其特征在于所述响应报文传输子系统,还用于判断本跳路由器如果没有到所述第一路由器的单播 路由,则向下游路由器组播发送所述response报文。
8.如权利要求7所述的系统,其特征在于所述系统还包括报文转发子系统,位于下游路由器中,用于收到所述response报 文后,判断本跳路由器是否有到所述查询源的单播路由,如果有,则将所述response报文 发送给所述查询源,如果没有,则进一步判断本跳路由器是否有到所述第一路由器的单播 路由,如果有,则将所述response报文发送给所述第一路由器,由所述第一路由器将所述 response报文发送给查询源,如果有没有,则继续向下游路由器组播发送所述response报 文。
9.如权利要求7或8所述的系统,其特征在于所述向下游路由器组播发送所述response报文是指从接收到request报文的端口向本组播组内的所有与本路由器有单播路由的组播成 员以组播方式发送response报文。
10.如权利要求7或8所述的系统,其特征在于所述报文转发子系统或所述响应报文传输子系统,还用于在向下游路由器组播发送 所述response报文前,先判断是否有下游路由器,如果有,则发送,如果没有,则丢弃所述 response 艮文。
全文摘要
本发明公开了一种组播路径跟踪方法和系统,提高组播路径跟踪的准确率,防止组播分发树的故障误判断。所述方法包括在组播跟踪过程中,查询源发起组播跟踪查询;收到所述组播跟踪查询报文的第一路由器将所述查询报文转换为请求报文后向组播分发树的上游路由器发送,直到发送至组播分发树的首跳路由器;组播分发树的首跳路由器收到请求报文后,将所述请求报文转换为响应报文,判断本跳路由器是否有到所述查询源的单播路由,如果有,则将所述响应报文发送给所述查询源,如果没有,则进一步判断本跳路由器如果有到所述第一路由器的单播路由,则将所述响应报文发送给所述第一路由器,由所述第一路由器将所述响应报文发送给查询源。
文档编号H04L12/56GK101980473SQ20101050931
公开日2011年2月23日 申请日期2010年10月9日 优先权日2010年10月9日
发明者孙仕康, 李永亮 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1