发明内容
本发明实施例提出两种识别最后一跳交换机的方法,使最后一跳交换机能够识别出自身身份。
本发明实施例还提出两种交换机和一种组播设备,使最后一跳交换机能够识别出自身身份。
本发明的技术方案是这样实现的:
一种识别最后一跳交换机的方法,包括:
交换机接收组播路径建立过程中发送的IGMP Membership Report报文,判断所述IGMP Membership Report报文中是否包含最后一跳交换机IP选项;
如果不包含,则判定自身为最后一跳交换机,记录所述判定的结果;在所述IGMP Membership Report报文中增加最后一跳交换机IP选项,转发至上游节点;
如果包含,则判定自身不是最后一跳交换机,将所述IGMP MembershipReport报文转发至上游节点。
一种交换机,包括:
接收模块,用于接收组播路径建立过程中发送的IGMP Membership Report报文;
识别模块,用于判断所述接收模块所接收的IGMP Membership Report报文中是否包含最后一跳交换机IP选项;如果不包含,则判定自身为最后一跳交换机,记录所述判定的结果,在所述IGMP Membership Report报文中增加最后一跳交换机IP选项,转发至上游节点;如果包含,则判定自身不是最后一跳交换机,将所述IGMP Membership Report报文转发至上游节点。
一种识别最后一跳交换机的方法,包括:
交换机接收组播路径建立过程中发送的IGMP Membership Report报文,判断所述IGMP Membership Report报文中是否包含最后一跳交换机IP选项;
如果包含,则判定自身为最后一跳交换机,记录所述判定的结果;删除所述IGMP Membership Report报文的所述最后一跳交换机IP选项,转发至上游节点;
如果不包含,则判定自身不是最后一跳交换机,将所述IGMPMembership Report报文转发至上游节点。
一种交换机,包括:
接收模块,用于接收组播路径建立过程中发送的IGMP Membership Report报文;
识别模块,用于判断所述接收模块所接收的IGMP Membership Report报文中是否包含最后一跳交换机IP选项;如果包含,则判定自身为最后一跳交换机,记录所述判定的结果,删除所述IGMP Membership Report报文中的所述最后一跳交换机IP选项,转发至上游节点;如果不包含,则判定自身不是最后一跳交换机,将所述IGMP Membership Report报文转发至上游节点。
可见,本发明实施例提出的识别最后一跳交换机的方法及交换机,通过在组播路径建立过程中发送的IGMP Membership Report报文中添加最后一跳交换机IP选项,使得最后一跳交换机能够识别自身的身份。
具体实施方式
本发明实施例提出识别最后一跳交换机的方法,使最后一跳交换机能够识别出自身的身份。参见图4,图4为本发明一个实施例的方法流程图。包括以下步骤:
步骤401:交换机接收IGMP Membership Report报文。
步骤402:判断接收的IGMP Membership Report报文中是否包含最后一跳交换机IP选项,如果不包含,则执行步骤403;否则,执行步骤404。
步骤403:判定自身为最后一跳交换机,记录该判定结果;在该IGMPMembership Report报文中增加最后一跳交换机IP选项,转发至上游节点。
步骤404:判定自身不是最后一跳交换机,将所述该Membership Report报文转发至上游节点。
在上述实施例中,通过判断在组播路径建立过程中传输的IGMPMembership Report报文中是否包含最后一跳交换机IP选项,来实现交换机对自身身份的识别。该最后一跳交换机IP选项可以复用现有技术中已有的IP路径跟踪(Traceroute)选项,该IP Traceroute选项的长度为12字节,参见图5,图5为现有技术IP Traceroute选项的结构示意图。其中,IP Traceroute选项包括:
F字段(表示是否复制到分片中)=0(表示“否”);
C字段(表示该IP选项的分类)=2(表示“调试&测量”);
序号(Number)字段(表示该IP选项的序号)=18;
长度(Length)字段(表示该IP选项的长度,单位为字节)=12;
值(Value)字段(表示该IP选项携带的值)。
本发明实施例定义的最后一跳交换机IP选项可以复用上述已有的IPTraceroute选项,最后一跳交换机IP选项的长度可以定为4字节。参见图6,图6为本发明实施例最后一跳交换机IP选项的结构示意图。其中,最后一跳交换机IP选项包括:
F字段(表示是否复制到分片中)=0(表示“否”);
C字段(表示该IP选项的分类)=2(表示“调试&测量”);
序号(Number)字段(表示该IP选项的序号)=18;
长度(Length)字段(表示该IP选项的长度,单位为字节)=4;
值(Value)字段(表示该IP选项携带的值)=1(最后一跳交换机标识)
本发明实施例中的最后一跳交换机IP选项的Number字段与现有技术中已有的IP Traceroute选项的Number字段相同。
当然,本发明实施例并不限制最后一跳交换机IP选项复用现有的IPTraceroute选项,也可以复用现有的其它IP选项、或者定义新的IP选项;并且不限制最后一跳交换机IP选项的长度及取值等。比如,上述最后一跳交换机IP选项的值(Value)字段可以取值为0、或0到65535之间的任意值;或者,上述长度(Length)字段可以取值为8。只要定义出一种最后一跳交换机IP选项,使得最后一跳交换机收到携带该最后一跳交换机IP选项的报文后,能够识别出自身的身份即可。本领域技术人员容易想到其他结构的最后一跳交换机IP选项,在此不再一一赘述。
现有技术中,组播路径建立时,是通过目的主机向上游节点发送IGMP成员报告(IGMP Membership Report)报文,每个节点将收到的IGMPMembership Report报文向上游转发,直至第一跳路由器或本二层域内组播源,从而建立起组播路径的。并且,IGMP Membership Report报文中可以包含不同种类的IP选项。本发明实施例可以利用现有技术已有的IGMPMembership Report报文,将上述定义的最后一跳交换机IP选项携带在IGMPMembership Report报文,从而实现最后一跳交换机对自身身份的识别。具体方式如下:
实施例一:
以图1中所述的路径结构为例进行说明。组播路径建立时,主机PC4向与其直接相连的交换机S8发送IGMP Membership Report报文,为对现有技术的改动最小,本发明实施例不对目的主机作任何改动,因而该报文中没有包含最后一跳交换机IP选项。
S8收到IGMP Membership Report报文,判断出IGMP Membership Report报文中没有包含最后一跳交换机IP选项,因而判定自身为最后一跳交换机,并记录该判定结果;S8在IGMP Membership Report报文中添加最后一跳交换机IP选项,转发至上游节点,即交换机S6。
S6收到IGMP Membership Report报文,判断出IGMP Membership Report报文中包含有最后一跳交换机IP选项,因而判定自身不是最后一跳交换机,直接将IGMP Membership Report报文向上转发至S4。
S4的处理方式与S6的处理方式相同,逐次向上,直到组播路径建立完成。
经过上述过程,使得最后一跳交换机识别出自身的身份。
上述过程后,在组播路径跟踪过程中,当交换机收到IGMP TracerouteQuery报文后,由于已经识别了自身身份,就能够判断是继续下传IGMPTraceroute Query报文、还是发起二层组播路径跟踪。具体方式为:交换机接收IGMP Traceroute Query报文,判断是否记录有自身为最后一跳交换机的判定结果,如果有,则发起二层组播跟踪,即向上游节点发送IGMPTraceroute Request报文;如果没有,则向下游节点发送IGMP TracerouteQuery报文。
实施例二:
以图1中所述的路径结构为例进行说明。组播路径建立时,目的主机PC4向与其直接相连的交换机S8发送IGMP Membership Report报文,该报文中包含最后一跳交换机IP选项。
S8收到IGMP Membership Report报文,判断出IGMP Membership Report报文中包含最后一跳交换机IP选项,因而判定自身为最后一跳交换机,并记录该判定结果;S8删除IGMP Membership Report报文中的最后一跳交换机IP选项,转发至上游节点,即交换机S6。
S6收到IGMP Membership Report报文,判断出IGMP Membership Report报文中不包含最后一跳交换机IP选项,因而判定自身不是最后一跳交换机,直接将IGMP Membership Report报文向上转发至S4。
S4的处理方式与S6的处理方式相同,逐次向上,直到组播路径建立完成。
经过上述过程,使得最后一跳交换机识别出自身的身份。
上述过程后,在组播路径跟踪过程中,当交换机收到IGMP TracerouteQuery报文后,由于已经识别了自身身份,就能够判断是继续下传IGMPTraceroute Query报文、还是发起二层组播路径跟踪。具体的实现方式与实施例一的方式相同,不再赘述。
本发明实施例还提出一种交换机,包括:
接收模块,用于接收IGMP Membership Report报文;
识别模块,用于判断所述接收模块所接收的IGMP Membership Report报文中是否包含最后一跳交换机IP选项;如果不包含,则判定自身为最后一跳交换机,记录所述判定结果;在所述IGMP Membership Report报文中增加最后一跳交换机IP选项,转发至上游节点;如果包含,则判定自身不是最后一跳交换机,直接将所述IGMP Membership Report报文转发至上游节点。
上述交换机可以进一步包括:
组播路径跟踪处理模块,用于接收IGMP Traceroute Query报文,判断上述识别模块是否记录有该交换机为最后一跳交换机的判定结果,如果有,则发起二层组播路径跟踪;如果没有,则向下游节点发送IGMP TracerouteQuery报文。
其中,识别模块可以包括:
判断模块,用于判断接收模块所接收的IGMP Membership Report报文中是否包含最后一跳交换机IP选项,如果不包含,则判定所述交换机为最后一跳交换机;
记录模块,用于在判断模块判定所述交换机为最后一跳交换机后,记录所述判定结果;
报文处理模块,用于当判断模块判断出IGMP Membership Report报文中不包含最后一跳交换机IP选项时,在所述IGMP Membership Report报文中增加最后一跳交换机IP选项,转发至上游节点;当判断模块判断出IGMPMembership Report报文中包含最后一跳交换机IP选项时,将所述IGMPMembership Report报文转发至上游节点。
本发明实施例还提出另一种交换机,包括:
接收模块,用于接收IGMP Membership Report报文;
识别模块,用于判断所述接收模块所接收的IGMP Membership Report报文中是否包含最后一跳交换机IP选项;如果包含,则判定自身为最后一跳交换机,记录所述判定结果,删除所述IGMP Membership Report报文中的所述最后一跳交换机IP选项,转发至上游节点;如果不包含,则判定自身不是最后一跳交换机,将所述IGMP Membership Report报文转发至上游节点。
上述交换机可以进一步包括:
组播路径跟踪处理模块,用于接收IGMP Traceroute Query报文,判断上述识别模块是否记录有该交换机为最后一跳交换机的判定结果,如果有,则发起二层组播路径跟踪;如果没有,则向下游节点发送IGMP Traceroute Query报文。
上述识别模块可以包括:
判断模块,用于判断接收模块所接收的IGMP Membership Report报文中是否包含最后一跳交换机IP选项,如果包含,则判定所述交换机为最后一跳交换机;
记录模块,用于在判断模块判定所述交换机为最后一跳交换机后,记录所述判定结果;
报文处理模块,用于当判断模块判断出IGMP Membership Report报文中包含最后一跳交换机IP选项时,删除所述IGMP Membership Report报文中的所述最后一跳交换机IP选项,转发至上游节点;当判断模块判断出IGMPMembership Report报文中不包含最后一跳交换机IP选项时,将所述IGMPMembership Report报文转发至上游节点。
一种组播设备,包括:
报文生成模块,用于生成包含最后一跳交换机IP选项的IGMP MembershipReport报文;
发送模块,用于发送所述报文生成模块所生成的IGMP Membership Report报文。
上述最后一跳交换机IP选项的序号字段与IP Traceroute选项的序号字段相同。
可见,本发明实施例提出的方法、交换机及组播设备,使交换机通过判断在组播路径建立过程中传输的IGMP Membership Report报文中是否包含最后一跳交换机IP选项,判定自身是否为最后一跳交换机,从而使最后一跳交换机能够识别出自身的身份。进一步地,在识别出最后一跳交换机后,能够在组播路径跟踪过程中,实现由最后一跳交换机发起二层组播路径跟踪。
综上所述,以上仅为对本发明精神的展示,而非用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。