网络邻居设备的发现方法及装置与流程

文档序号:12623468阅读:804来源:国知局
网络邻居设备的发现方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种网络邻居设备的发现方法及装置。



背景技术:

在家庭网络环境中,存在着多种组网技术,包括以双绞线为信号传输媒介的以太网技术(IEEE(Institute for Electrical and Electronic Engineers)802.3)、以无线为传输媒介的WiFi技术(IEEE 802.11)、以电力线为传输媒介的HomePlug技术(IEEE 1901)、以有线电视同轴电缆为传输媒介的同轴电缆多媒体联盟(Multimedia over Coax Alliance,简称为MoCA)技术等。这些技术各有其优缺点,例如以太网能提供稳定高速的带宽,但以太网口的位置是固定的,限制了其覆盖范围和设备的移动性;相反,WiFi的覆盖性和移动性好,但是无线信号在空中传输时容易受干扰和冲突影响,带宽不稳定。可见,它们存在一定的互补性。IEEE组织为此提出了1905.1标准,它在逻辑链路控制(Logical Link Control,简称为LLC)层和媒体接入控制(Media Access Control,简称为MAC)层之间引入了一个抽象层,图1是相关技术中IEEE 1905.1标准定义的抽象层在网络协议栈中的位置示意图,如图1所示。支持1905.1的两个相邻设备如果有多个物理网络接口,则可以同时建立多条物理链路,并且各条物理链路可聚合成一条抽象链路,实现负载均衡、链路错误备份等功能,从而提高通信质量。

在IEEE 1905.1标准中,拓扑发现是一个重要的组成部分。它的作用是发现整个网络的拓扑结构,包括网络中存在哪些设备,每个设备上有哪些物理接口,每个设备有哪些相邻的设备,任意两个相邻的设备之间是通过哪几条物理链路连接的等信息。通过拓扑发现过程搜集到这些信息后,就为实现链路聚合,寻找最佳路径等功能提供了可靠的依据。1905.1标准中定义的拓扑发现过程简述如下:

1)每个支持1905.1的设备会周期性地向邻居发送组播的拓扑发现(Topology Discovery)消息,支持1905.1的邻居设备收到此消息后,就能发现它了。

2)每个支持1905.1的设备可以向网络中的另外一个支持1905.1的设备(不管是不是邻居)发送单播的拓扑查询(Topology Query)消息,另外一个设备收到此消息后要回复拓扑响应(Topology Response)消息,其中包含该设备自身的接口列表和它的邻居列表。重复这个查询/响应过程,网络中的任一设备都可以发现整个网络的拓扑结构。

3)当某个支持1905.1的设备发现自己的接口或者邻居列表有变化时,可以主动发送一个拓扑通知(Topology Notifiation)消息,此消息会被网络中所有支持1905.1的设备转发。然后收到此消息的设备就可以向源设备发送拓扑查询消息,获取新的信息。

4)通过发送IEEE 802.1网桥发现(bridge discovery)消息,可以探测出两个1905.1设备间是否存在传统的不支持1905.1的网桥设备。因为传统的网桥设备不会转发IEEE 802.1 bridge discovery消息,但是会转发IEEE 1905.1的Topology Discovery消息。这样同时发送这两个消息,再根据支持1905.1的邻居设备是否能收到这两个消息,就能判断出是否存在传统的网桥设备。

在相关技术中,在家庭网络中将会出现既有支持1905.1的设备,又有不支持1905.1的设备,二者混合组网的形式。尤其是电脑、手机等用户终端设备,可能大多数都不会支持1905.1。通过1905.1标准中定义的拓扑发现过程,只能发现支持1905.1标准的邻居设备;虽然在拓扑响应消息中,既包含了支持1905.1的邻居设备(标准中称为1905.1 neighbor device)的列表,也包含了不支持1905.1的邻居设备(标准中称为non-1905 neighbor device)的列表,但是在标准中并没有描述每个设备如何发现不支持1905.1的邻居设备。

针对相关技术中,设备如何发现不支持通信标准的邻居设备问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明提供了一种网络邻居设备的发现方法及装置,以至少解决相关技术中设备如何发现不支持通信标准的邻居设备问题。

根据本发明的一个方面,提供了一种网络邻居设备的发现方法,第一设备从地址表中获取所述第一设备所属网络中与第二设备对应的媒体接入控制MAC地址,其中,所述地址表是所述网络中各个设备在接收或转发报文过程中,学习所述报文的源地址与本地接口的对应关系建立的,其中,所述源地址包括MAC地址;

在所述MAC地址不属于所述网络中支持第一通信标准的设备的地址情况下,所述第一设备确认所述MAC地址对应的第二设备为不支持所述第一通信标准的邻居设备。

进一步地,在所述MAC地址不属于所述网络中支持第一通信标准的设备的地址,所述第一设备确认所述MAC地址对应的第二设备为不支持所述第一通信标准的邻居设备包括:

所述第一设备检查网络拓扑表中是否有所述MAC地址对应的设备或者接口,其中,所述网络拓扑表是通过所述网络中所述各个设备间的拓扑发现、拓扑查询及拓扑响应的过程获取的;

在所述MAC地址没有在所述网络拓扑表中的情况下,所述第一设备确认所述MAC地址对应的第二设备为不支持所述第一通信标准的邻居设备。

进一步地,所述第一设备确认所述MAC地址对应的第二设备为不支持所述第一通 信标准的邻居设备之后,还包括:

在支持所述第一通信标准的第三设备判定所述第二设备为不支持所述第一通信标准的邻居设备的情况下,根据所述第一设备与所述第二设备的第一连接关系,以及所述第三设备与第二设备的第二连接关系是否有交集,确定所述第二设备是否直接连接所述第一设备。

进一步地,所述第一设备确认所述MAC地址对应的第二设备为不支持所述第一通信标准的邻居设备之后,所述源地址包括IP地址的情况下,还包括:

所述第一设备根据所述IP地址发送探测报文给所述第二设备,所述第一设备根据所述第二设备是否响应,确定所述第二设备是否直接连接所述第一设备。

进一步地,在所述发送探测报文中携带预设标记位,其中,该预设标记位用于指示在支持所述第一通信标准的所有设备在收到所述探测报文时禁止转发,并且该预设标志不影响不支持所述第一通信标准的所述第二设备响应所述探测报文。

进一步地,所述第一设备发送探测报文给所述第二设备之前,还包括:

所述第一设备向所述第一设备的支持所述第一通信标准的所有邻居设备发送控制信息,所述控制信息用于指示所述第一设备将在预定时间范围内给所述第二设备发送所述探测报文,所述第一设备的支持所述第一通信标准的所有邻居设备在所述预定时间范围内收到所述探测报文不转发,所述控制消息不影响不支持所述第一通信标准的所述第二设备响应所述探测报文。

进一步地,所述网络拓扑表包括:

支持第一通信标准的设备,不支持第一通信标准的设备,设备的物理接口,支持第一通信标准的邻居设备,不支持第一通信标准的邻居设备。

进一步地,所述第一通信标准包括:电气和电子工程师协会IEEE的1905.1标准。

根据本发明的另一个方面,还提供了一种网络邻居设备的发现装置,包括:

获取模块,用于第一设备从地址表中获取所述第一设备所属网络中与第二设备对应的媒体接入控制MAC地址,其中,所述地址表是所述网络中各个设备在接收或转发报文过程中,学习所述报文的源地址与本地接口的对应关系建立的,其中,所述源地址包括MAC地址;

第一发现模块,用于在所述MAC地址不属于所述网络中支持第一通信标准的设备的地址情况下,所述第一设备确认所述MAC地址对应的第二设备为不支持所述第一通信标准的邻居设备。

进一步地,所述第一发现模块包括:

检查单元,用于所述第一设备检查网络拓扑表中是否有所述MAC地址对应的设备或者接口,其中,所述网络拓扑表是通过所述网络中所述各个设备间的拓扑发现、拓扑查询及拓扑响应的过程中获取的;

确认单元,用于在所述MAC地址没有在所述网络拓扑表中的情况下,所述第一设备确认所述MAC地址对应的第二设备为不支持所述第一通信标准的邻居设备。

进一步地,所述装置还包括:

第二发现模块,用于在支持所述第一通信标准的第三设备判定所述第二设备为不支持所述第一通信标准的邻居设备的情况下,根据所述第一设备与所述第二设备的第一连接关系,以及所述第三设备与第二设备的第二连接关系是否有交集,确定所述第二设备是否直接连接所述第一设备。

进一步地,所述源地址包括IP地址的情况下,所述装置还包括:

第三发现模块,用于所述第一设备根据所述IP地址发送探测报文给所述第二设备,所述第一设备根据所述第二设备是否响应,确定所述第二设备是否直接连接所述第一设备。

进一步地,所述第三发现模块包括:

标记单元,用于在所述探测报文中携带预设标记位,其中,该预设标记位用于指示在支持所述第一通信标准的所有设备在收到所述探测报文时禁止转发,并且该预设标志不影响不支持所述第一通信标准的所述第二设备响应所述探测报文。

进一步地,所述第三发现模块包括:

控制单元,用于所述第一设备向所述第一设备的支持所述第一通信标准的所有邻居设备发送控制信息,所述控制信息用于指示所述第一设备将在预定时间范围内给所述第二设备发送所述探测报文,所述第一设备的支持第一通信标准的所有邻居设备在所述预定时间范围内收到所述探测报文时不转发,所述控制消息不影响不支持所述第一通信标准的所述第二设备响应所述探测报文。

通过本发明,第一设备从地址表中获取该第一设备所属网络中与第二设备对应的媒体接入控制MAC地址,其中,该地址表是该网络中各个设备在接收或转发报文过程中,学习该报文的源地址与本地接口的对应关系建立的,其中,该源地址包括MAC地址,在该MAC地址不属于该网络中支持第一通信标准的设备的地址情况下,该第一设备确认该MAC地址对应的第二设备为不支持该第一通信标准的邻居设备,解决了设备如何发现不支持通信标准的邻居设备问题,实现了网络设备能发现不支持通信标准的邻居设备。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是相关技术中IEEE 1905.1标准定义的抽象层在网络协议栈中的位置示意图;

图2是根据本发明实施例的一种网络邻居设备的发现方法的流程图;

图3是根据本发明实施例的一种网络邻居设备的发现装置的结构框图;

图4是根据本发明优选实施例的1905.1的设备中各模块的关系示意图;

图5是根据本发明优选实施例的一种典型家庭组网情况的示意图;

图6是根据本发明优选实施例的非1905.1邻居设备判定模块的主要操作流程图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

在本实施例中提供了一种网络邻居设备的发现方法,图2是根据本发明实施例的一种网络邻居设备的发现方法的流程图,如图2所示,该流程包括如下步骤:

步骤S202,第一设备从地址表中获取该第一设备所属网络中与第二设备对应的媒体接入控制MAC地址,其中,该地址表是该网络中各个设备在接收或转发报文过程中,学习该报文的源地址与本地接口的对应关系建立的,其中,该源地址包括MAC地址;

步骤S204,在该MAC地址不属于该网络中支持第一通信标准的设备的地址情况下,该第一设备确认该MAC地址对应的第二设备为不支持该第一通信标准的邻居设备。

通过上述步骤,第一设备从地址表中获取该第一设备所属网络中与第二设备对应的媒体接入控制MAC地址,在该MAC地址不属于该网络中支持第一通信标准的设备的地址情况下,该第一设备确认该MAC地址对应的第二设备为不支持该第一通信标准的邻居设备,解决了设备如何发现不支持通信标准的邻居设备问题,实现了网络设备能发现不支持通信标准的邻居设备。

在本实施例中,确认该MAC地址不属于该网络中支持第一通信标准的设备的地址的方式有很多种,其中,该第一设备可以检查网络拓扑表中是否有该MAC地址对应的设备或者接口,其中,该网络拓扑表是通过该网络中该各个设备间的拓扑发现、拓扑查询及拓扑响应的过程中获取的,在该MAC地址没有在该网络拓扑表中的情况下,该第一设备确认该MAC地址对应的第二设备为不支持该第一通信标准的邻居设备。

在本实施例中,确定第二设备为不支持该第一通信标准的邻居设备后,在该各个设备中的支持该第一通信标准的第三设备判定该第二设备为不支持该第一通信标准的邻居设备的情况下,根据该第一设备与该第二设备的第一连接关系,以及该第三设备与第二设备的第二连接关系是否有交集,确定该第二设备是否直接连接该第一设备。

在本实施例中,该源地址包括IP地址的情况下,该第一设备根据该IP地址发送探测报文给该第二设备,该第一设备根据该第二设备是否响应,确定该第二设备是否直接连接该第一设备。其中,可以在发送的探测报文中携带有预设标记位,其中,该预设标记位用于指示在支持该第一通信标准的所有设备在收到该探测报文时禁止转发,并且该预设标记位不影响不支持该第一通信标准的该第二设备响应该探测报文。也可以在该第一设备发送探测报文给该第二设备之前,该第一设备向该第一设备的支持第一通信标准的所有邻居设备发送控制信息,该控制信息用于指示该第一设备将在预定时间范围内给该第二设备发送该探测报文,支持第一通信标准的所有邻居设备在预定时间范围内收到该探测报文不转发,该控制消息不影响不支持该第一通信标准的该第二设备响应该探测报文。

在本发明的实施例中,该网络拓扑表包括:支持第一通信标准的设备,不支持第一通信标准的设备,设备的物理接口,支持第一通信标准的邻居设备,不支持第一通信标准的邻居设备。

在本发明的实施例中,该第一通信标准包括:电气和电子工程师协会IEEE的1905.1标准。

在本实施例中还提供了一种网络邻居设备的发现装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是根据本发明实施例的一种网络邻居设备的发现装置的结构框图,如图3所示,该装置包括:

获取模块32,用于第一设备从地址表中获取该第一设备所属网络中与第二设备对应的媒体接入控制MAC地址,其中,该地址表是该网络中各个设备在接收或转发报文过程中,学习该报文的源地址与本地接口的对应关系建立的,其中,该源地址包括MAC地址;

第一发现模块34,用于在该MAC地址不属于该网络中支持第一通信标准的设备的地址情况下,该第一设备确认该MAC地址对应的第二设备为不支持该第一通信标准的邻居设备。

通过上述装置,第一设备从地址表中获取该第一设备所属网络中与第二设备对应的 媒体接入控制MAC地址,在该MAC地址不属于该网络中支持第一通信标准的设备的地址情况下,该第一设备确认该MAC地址对应的第二设备为不支持该第一通信标准的邻居设备,解决了设备如何发现不支持通信标准的邻居设备问题,实现了网络设备能发现不支持通信标准的邻居设备。

在本实施例中,在该第一发现模块34包括:

检查单元,用于该第一设备检查网络拓扑表中是否有该MAC地址对应的设备或者接口,其中,该网络拓扑表是通过该网络中该各个设备间的拓扑发现、拓扑查询及拓扑响应的过程中获取的;

确认单元,用于在该MAC地址没有在该网络拓扑表中的情况下,该第一设备确认该MAC地址对应的第二设备为不支持该第一通信标准的邻居设备。

在本实施例中,该装置还包括:

第二发现模块,用于在支持该第一通信标准的第三设备判定该第二设备为不支持该第一通信标准的邻居设备的情况下,根据该第一设备与该第二设备的第一连接关系,以及该第三设备与第二设备的第二连接关系是否有交集,确定该第二设备是否直接连接该第一设备。

在本实施例中,该源地址包括IP地址的情况下,该装置还包括:

第三发现模块,用于该第一设备根据该IP地址发送探测报文给该第二设备,该第一设备根据该第二设备是否响应,确定该第二设备是否直接连接该第一设备。该第三发现模块包括:标记单元,用于在该该探测报文中携带预设标记位,其中,该预设标记位用于指示在支持该第一通信标准的所有设备在收到该探测报文时禁止转发,并且该预设标记位不影响不支持该第一通信标准的该第二设备响应该探测报文。

该第三发现模块还可以包括:控制单元,用于该第一设备向该第一设备的支持该第一通信标准的所有邻居设备发送控制信息,该控制信息用于指示该第一设备将在预定时间范围内给该第二设备发送该探测报文,该第一设备的支持第一通信标准的所有邻居设备在该预定时间范围内收到该探测报文不转发,该控制消息不影响不支持该第一通信标准的该第二设备响应该探测报文。

下面结合优选实施例和实施方式对本发明进行详细说明。

本优选实施例提出了一种发现网络邻居设备的方法,尤其适用于在混合网络中发现不支持1905.1的邻居设备,并准确地定位它在网络中的位置,能对IEEE 1905.1标准描述的拓扑发现过程起到有益的补充作用。该优选实施例的方法包括:

1.每个支持1905.1的设备在接收和转发报文时,学习报文的源地址与本地接口间的对应关系,建立一张地址表。当某个MAC地址存在于此地址表,但它并不是网络中 某个已发现的支持1905.1的设备的地址时,可初步判定其为本设备的一个非1905.1的邻居设备。

2.如果网络中有多个1905.1设备声明同一个设备是它们的非1905.1的邻居设备,则根据各1905.1设备间的连接关系,以及各自与此非1905.1的设备的连接关系,判定此非1905.1的设备所处的位置。

3.如果还不能做出判定,则向非1905.1的设备发送探测请求报文,并且通过在探测报文中插入预先约定好的内容,或者预先通知邻居1905.1设备的方式,使得邻居1905.1设备收到此探测报文后都不转发。这样就可以通过是否收到探测应答报文,判断此非1905.1的设备是否与本设备直接相连。

图4是根据本发明优选实施例的1905.1的设备中各模块的关系示意图,如图4所示,本优选实施例提出的方法,需要在支持1905.1的设备中实现以下模块:

1905.1拓扑发现模块,实现IEEE 1905.1标准中规定的拓扑发现功能。

地址学习模块,在接收报文时,学习报文的源地址与本地接口间的对应关系,建立一张地址表。

非1905.1邻居设备判定模块,当有多个1905.1设备公告同一个设备是它们的非1905.1的邻居设备时,由此模块根据1905.1拓扑发现模块搜集到的信息做出判定。如果不能做出判定,则触发非1905.1邻居设备探测模块发送探测报文,并根据探测结果,再做出判定。

非1905.1邻居设备探测模块,向指定的非1905.1设备发送探测报文。通过在探测报文中插入预先约定好的内容,或者预先通知邻居1905.1设备,使得邻居1905.1设备收到此探测报文后都不转发。

地址学习模块与上述实施例中的获取模块22部分功能和作用相同,非1905.1邻居设备判定模块与上述实施例中的第一发现模块24,第二发现模块的部分功能和作用相同,非1905.1邻居设备探测模块与上述实施例中的第三发现模块的部分功能和作用相同。

本优选实施例提出的方法不需要对不支持1905.1的设备作任何修改。本优选实施例提出的发现网络邻居设备的方法和装置是在地址学习的基础上,结合已获取的拓扑信息进行判断,并进一步通过发送探测报文进行确认,从而克服了简单的地址学习方式判断不准确的缺点。特别是在当有网络中有支持1905.1的网桥设备时,本发明提出的方法能准确地定位出不支持1905.1的设备是在网桥之前还是之后,从而可以确定到该设备的最优路径。这点在后面的具体实施方式中有详细的描述。

图5是根据本发明优选实施例的一种典型家庭组网情况的示意图,如图5所示,用矩形代表支持1905.1的设备,用椭圆形代表不支持1905.1的设备。其中设备A和设备B都是支持1905的,A是一个家庭网关,局域网(Local Area Network,简称为LAN) 侧有PLC(Power Line Communication)、WiFi和ETH(EtherNet)接口;B是一个有PLC接口的无线扩展器,工作在网桥模式;它们之间通过PLC和WiFi这两条物理链路相连。设备C和D都是不支持1905.1的用户终端设备(如电脑、手机),设备C是通过ETH直接连到A,而设备D是通过WiFi连接到B上。注意,设备A和B之间的WiFi链路与设备B和D之间的WiFi链路通常是工作在同一频率,但并不是同一条链路,图中标记为WiFi-1和WiFi-2。设备E是一个通过电力线上网的设备,不支持1905.1。

设备A和B都实现了本优选实施例提出的发现不支持1905.1的邻居设备的方法,都包含了图5所示的各模块。图5中还显示了各模块间的关系,在下面的具体实施过程中会有详细的描述。

当设备上任一个由1905抽象接口涵盖的物理接口在接收报文时,地址学习模块会记录报文的源地址与本地接口间的对应关系,建立一张地址表。注意,不仅要记录源MAC地址,还要记录源IP地址,因为后面在进行探测时会用到IP地址。地址表中条目内容是<MAC地址,IP地址,本地接口>,其中本地接口是最后一次接收报文使用的接口。以图5所示网络拓扑为例,设备A学习到的地址表中包括如下条目:

<设备B的MAC地址,设备B的IP地址,PLC或WiFi-1>

<设备C的MAC地址,设备C的IP地址,ETH>

<设备D的MAC地址,设备D的IP地址,PLC或WiFi-1>

<设备E的MAC地址,设备E的IP地址,PLC>

设备B学习到的地址表中包括如下条目:

<设备A的MAC地址,设备A的IP地址,PLC或WiFi-1>

<设备C的MAC地址,设备C的IP地址,PLC或WiFi-1>

<设备D的MAC地址,设备D的IP地址,WiFi-2>

<设备E的MAC地址,设备E的IP地址,PLC>

注意,设备B是工作在网桥模式,而设备A的LAN侧也是一个网桥,所以设备A和B都可能会学习到设备C和D的地址。

1905.1拓扑发现模块主要是实现1905.1标准规定的拓扑发现过程。它通过处理拓扑发现、拓扑查询、拓扑响应消息,建立一张1905.1网络拓扑表,包括网络中有哪些支持1905.1的设备,每个设备有哪些物理接口,有哪些支持1905.1的邻居,有哪些不支持1905.1的邻居。

当地址学习模块建立的地址表有任何变化时,包括新增、删除、修改条目,地址学习模块都会通知非1905.1邻居设备判定模块。而1905.1拓扑发现模块建立的1905.1网 络拓扑表有任何变化时,也会通知非1905.1邻居设备判定模块。

图6是根据本发明优选实施例的非1905.1邻居设备判定模块的主要操作流程图,如图6所示,它会综合地址表和1905.1网络拓扑表中的内容,做出判定。包括如下步骤:

步骤1,读取地址表中的一个条目,获取到MAC地址

步骤2,检查1905.1网络拓扑表,如果此MAC地址是某个支持1905.1的设备的AL MAC(1905.1抽象层定义的MAC地址)或者是设备上某个物理接口的地址,则跳过下面的步骤。

步骤3,检查此MAC地址是否在某个1905.1设备公告的非1905.1邻居设备列表中。如果不在,则可初步判定它是本设备的一个非1905.1邻居设备,跳过第4步。

步骤4,根据各1905.1设备间的连接关系,以及各自与指定MAC地址的非1905.1邻居设备的连接关系,判断该MAC地址是否为本设备直接可达的非1905.1邻居设备。

步骤5,如果还不能做出判定,或者想进一步确认,则通知非1905.1邻居设备探测模块,执行探测操作。根据探测结果做出最终判定。

以图5中设备A上的非1905.1邻居设备判定模块为例。对于设备B的MAC地址,在步骤1时就可做出判断。对于设备C的地址,如果在设备B发送的1905.1拓扑响应消息中的非1905.1邻居列表里面没有包含它,则第2步中就可以做出判定它是设备A的一个非1905.1邻居设备。否则,设备B应该是公告设备C是连接在它的PLC或WiFi-1接口,记此接口集合为为Iflist_bc(包含PLC或WiFi-1);而本设备A是学习到设备C是连接到ETH接口上,记为Iflist_ac(包含ETH);而设备A与设备B之间是通过PLC和WiFi-1接口相连的,记为Iflist_ab(包含PLC和WiFi-1)。假定设备C是在设备A和B中间,那么Iflist_ac与Iflist_ab、Iflist_bc与Iflist_ab都应该是有交集的,而现在Iflist_ac与Iflist_ab之间没有交集,说明设备C不应该在设备A与设备B之间。进一步,由于Iflist_bc是Iflist_ab的子集,而Iflist_ac不是Iflist_ab的子集,可以判定设备C是直接连接到设备A的ETH口,而不是直接连接在设备B的某个接口下。对于设备D的地址,如果在设备B发送的非1905.1邻居列表里面没有包含它,则在第2步会误判它是设备A的一个非1905.1邻居设备,不过后面会通过发送探测报文纠正。如果在设备B发送的非1905.1邻居列表已经包含了设备D,则采用同样的判断方法,可以判断D是直接连接在B的WiFi-2接口。对于设备E,按同样方法,可以判断出它是连接在A和B之间,且是在PLC链路上。

非1905.1邻居设备探测模块通过发送探测报文,检测某个非1905.1邻居设备是否为本设备直接可达的,换句话说,中间是否存在其它1905.1设备。核心是各1905.1邻居设备不能转发此探测报文。要实现这一点,有两种方式。方式一是在在探测报文中插入预先约定好的内容。以探测报文是Ping请求为例,可以在控制报文协议(Internet Control Message Protocol,简称为ICMP)的data区中携带的特定的数据,例如“It's a probe for a non-1905 neighbor device”。各个1905.1设备检测到携带此数据的Ping请求后都不转发。而非1905.1目的设备收到此Ping请求还会正常响应,因为它并不关心Ping请求中携带的数据是什么。还可以采用ARP请求作探测报文,将ARP头部中包含的发送者MAC地址或IP地址设置成特定的值。还可以采用其它类型的探测报文,只需保证在报文中包含特殊的值后,非1905.1的普通终端设备仍能正常对其进行响应。

方式二是在发送探测报文前,通过扩展的1905.1控制消息,通知各邻居1905.1设备,在一定时间内,对本设备发送的特定类型的探测报文都不转发。1905.1标准中定义的Vendor specific类型的消息,可实现此扩展功能。应该使用邻居组播的形式,让每个邻居都收到此扩展消息。此方式不需要在探测报文中包含特别的数据,更通用。

非1905.1邻居设备探测模块在发送探测报文之后,根据是否收到应答,判断目的设备是否直接可达。以图5中的网络拓扑为例,设备A发往设备C和E的探测报文,都能收到应答,所以设备C和E是设备A直接可达的;而发往设备D的探测报文在经过设备B时,被设备B丢弃了,到不了设备D,不能收到应答,所以设备D不是设备A直接可达的。

非1905.1邻居设备探测模块将探测结果返回给非1905.1邻居设备判定模块。而非1905.1邻居设备判定模块将最终的判定结果写到1905.1网络拓扑表中,标明本设备的各个非1905.1邻居设备是否直接可达。对于不能直接可达的邻居设备,1905.1拓扑发现模块应该更新本设备发送的拓扑响应消息,将它从非1905.1邻居设备列表中去掉。

在这种混合网络中,发现不支持1905.1的设备,并准确地定位出它在网络中的位置,对于寻找最优路径来说,是很重要的。特别是当网络中有工作在网桥模式的支持1905.1的设备时,采用简单的地址学习方式,往往不能准确地定位出不支持1905.1的设备在网络中的位置,导致不能将报文按最优的路径发送给它。

采用上述方法,可以发现网络中的非1905.1设备,并准确地确定其位置,特别是在网络中有工作在网桥模式的1905.1设备的情况下。这样有什么好处呢?还是以图3为例,如果采用简单的地址学习方式,设备A很可能会判定设备D是通过PLC或WiFi-1链路直接连接到它的设备。由于设备D是不支持1905.1的,设备A通常会选择通过其中一条链路向设备D发送报文。而如果设备A准确地判断出设备D是直接连接在设备B的WiFi-2,那么它就知道可以同时使用PLC和WiFi-1链路向设备D发送报文,因为设备B支持1905.1,会进行链路聚合。这样显然会提高流量转发的效率。另外,当网络中工作在网桥模式的1905.1设备的数量大于等于3个,仅仅根据地址学习的结果转发报文,很容易形成环路;而准确地定位出设备的位置后,就可以计算出到各设备的最优路径,避免环路。而且,准确地定位出各设备在网络拓扑中的位置后,也为实现一些更高级的、基于位置的功能打下了基础。

本优选实施例提出的方法能发现网络中存在的非1905.1设备,并准确地定位出它们的位置,从而可以计算出到各设备的最优传输路径,克服了简单地根据地址学习结果转发报文的缺陷。需要指出的是,虽然上面列出的实施例都是描述如何发现非1905.1的邻居设备,但本发明提出的方法并不局限于1905.1网络。任何熟悉本技术领域的技术人员在本发明所揭露的的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行上述实施例方法步骤的程序代码:

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例的方法步骤。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上该仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1