CN105959216B - 一种单向串行总线网络的通信方法、装置及系统 - Google Patents
一种单向串行总线网络的通信方法、装置及系统 Download PDFInfo
- Publication number
- CN105959216B CN105959216B CN201610460619.XA CN201610460619A CN105959216B CN 105959216 B CN105959216 B CN 105959216B CN 201610460619 A CN201610460619 A CN 201610460619A CN 105959216 B CN105959216 B CN 105959216B
- Authority
- CN
- China
- Prior art keywords
- destination
- equipment
- address
- data
- destination address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000006854 communication Effects 0.000 title claims abstract description 33
- 238000004891 communication Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种单向串行总线网络的通信方法、装置及系统,所述单向串行总线网络包括一级设备、至少一个二级设备、至少一个三级设备;其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网,包括:所述二级设备接收数据报文,所述数据报文中携带有节点信息;并根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文。如此,本发明实施例能够解决单向串行总线网络中每个数据报文都将跑遍该单向串行总线网络中的所有节点设备的问题,从而避免了单向串行总线网络中无效数据报文的转发。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种单向串行总线网络的通信方法、装置及系统。
背景技术
目前,RS485等单向串行总线应用于远程工业控制、远程智能抄仪表等系统;上述系统通常以单向环网套接单向环网的方式构建单向串行总线网络,该单向串行总线网络通常包括:集中器、至少一个采集器、智能仪表;其中,集中器通过单向串行总线与采集器构成单向环网,该单向环网为该串行总线网络组成骨干网,每个采集器再分别通过单向串行总线与若干智能仪表构成单向环子网。上述组网方式中,由于受到RS485单向串行总线的单向限制,采集器及智能仪表仅支持接收透传工作模式,在该接收透传工作模式下对接收的数据报文进行处理,同时将该数据报文传送到发送端口,由此可见,在接收透传工作模式下,每个节点设备将接收的数据报文传送给中央处理器CPU处理,同时直接透明转发,相当于单向串行总线上每个节点设备都同时收到了相同的数据报文,因此,现有单向串行总线网络中,单向环子网和骨干网不能隔离、阻断,该单向串行总线网络中的每个数据报文都将跑遍该单向串行总线网络中的所有节点设备,无效转发较多,大量无效转发的数据报文占用了大量的网络信道资源,从而极大地降低了网络资源的利用率。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种单向串行总线网络的通信方法、装置及系统,能够避免了单向串行总线网络中无效数据报文的转发。
为实现上述目的及其他相关目的,本发明实施例提供一种单向串行总线网络的通信方法,所述单向串行总线网络包括一级设备、至少一个二级设备、至少一个三级设备;其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网,该方法包括:
所述二级设备接收数据报文,所述数据报文中携带有节点信息;
所述二级设备根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文。
优选地,所述二级设备上针对本地单向环子网存储有数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括入端口、目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括入端口、目的设备ID、与所述目的设备ID对应的出端口;
所述二级设备根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文,包括:
所述二级设备确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
优选地,所述根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文,包括:
在所述数据转发表中所述入端口对应的目的地址中查询所述目的地址,或者,在所述数据转发表中所述入端口对应的目的设备ID中查询所述目的设备ID;
查询到所述目的地址或所述目的设备ID时,进一步查询所述目的地址或所述目的设备ID对应的出端口;
若所述入端口连接到所述单向环网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;当所述目的地址为单播地址或所述目的设备ID为单播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若所述入端口连接到本地单向环子网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,丢弃所述数据报文;
未查询到所述目的地址或目的设备ID时,将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
优选地,所述二级设备上针对本地单向环网存储有数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括目的设备ID、与所述目的设备ID对应的出端口;
所述二级设备根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文,包括:
所述二级设备确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,当所述目的地址为广播地址或所述目的设备ID为广播ID时,确定接收数据报文的入端口是否连接到所述单向环网;
若是,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;否则丢弃所述数据报文;
当所述目的地址为单播地址或所述目的设备ID为单播ID时,根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
优选地,根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文,包括:
若在所述数据转发表中查询到所述目的地址或所述目的设备ID,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若在所述数据转发表中未查询到所述目的地址或所述目的设备ID,则将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
优选地,所述方法还包括:
所述二级设备接收所述一级设备发送的第一拓扑学习指令报文;
所述二级设备读取所述第一拓扑学习指令报文中二级设备的节点数,将所述节点数加1后更新所述节点数,并将更新的节点数、自身地址或自身设备ID添加到所述第一拓扑学习指令报文中;
所述二级设备在自身为中间二级设备时,将添加完成后的第一拓扑学习指令报文转发给自身的下一跳二级设备;在自身为最后一跳二级设备时,将添加完成后的第一拓扑学习指令报文返回给所述一级设备。
优选地,所述方法还包括:
所述二级设备发送第二拓扑学习指令报文,所述第二拓扑学习指令报文用于指示与自身构成的单向环子网内的三级设备读取所述第二拓扑学习指令报文中三级设备的节点数,将所述节点数加1后更新所述节点数,将更新的节点数、自身地址或自身设备ID添加到所述第二拓扑学习指令报文中,并在自身为中间三级设备时将添加完成后的第二拓扑学习指令报文转发给自身的下一跳三级设备;在自身为最后一跳三级设备时将添加完成后的第二拓扑学习指令报文返回给所述二级设备;
所述二级设备接收返回的第二拓扑学习指令报文,根据返回的第二拓扑学习指令报文中的节点数、设备地址或设备ID确定所述单向环子网的拓扑结构,并根据所述单向环子网的拓扑结构更新所述数据转发表。
根据上述方法,本发明实施例提供了一种单向串行总线网络的通信装置,应用于包括一级设备、二级设备及三级设备的单向串行总线网络中的二级设备,其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网,该装置包括:接收模块、确定模块、发送模块;其中,
所述接收模块,用于接收数据报文,所述数据报文中携带有节点信息;
所述确定模块,用于根据所述节点信息确定所述数据报文的转发路径,并指示所述发送模块通过确定的转发路径转发所述数据报文;
所述发送模块,用于根据所述确定模块的指示通过确定的转发路径转发所述数据报文。
优选地,所述二级设备上针对本地单向环子网存储有数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括入端口、目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括入端口、目的设备ID、与所述目的设备ID对应的出端口;
所述确定模块,具体用于确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
优选地,所述确定模块,具体用于在所述数据转发表中所述入端口对应的目的地址中查询所述目的地址,或者,在所述数据转发表中所述入端口对应的目的设备ID中查询所述目的设备ID;
查询到所述目的地址或所述目的设备ID时,进一步查询所述目的地址或所述目的设备ID对应的出端口;
若所述入端口连接到所述单向环网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;当所述目的地址为单播地址或所述目的设备ID为单播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若所述入端口连接到本地单向环子网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,丢弃所述数据报文;
未查询到所述目的地址或目的设备ID时,将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
优选地,所述二级设备上针对本地单向环网存储有数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括目的设备ID、与所述目的设备ID对应的出端口;
所述确定模块,具体用于确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,当所述目的地址为广播地址或所述目的设备ID为广播ID时,确定接收数据报文的入端口是否连接到所述单向环网;
若是,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;否则丢弃所述数据报文;
当所述目的地址为单播地址或所述目的设备ID为单播ID时,根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
优选地,所述确定模块具体用于:
若在所述数据转发表中查询到所述目的地址或所述目的设备ID,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若在所述数据转发表中未查询到所述目的地址或所述目的设备ID,则将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
优选地,所述接收模块,还用于接收一级设备发送的第一拓扑学习指令报文;
所述装置还包括:
更新模块,用于读取所述第一拓扑学习指令报文中二级设备的节点数,将所述节点数加1后更新所述节点数,并将更新的节点数、自身地址或自身设备ID添加到所述第一拓扑学习指令报文中;
所述发送模块,还用于在自身为中间二级设备时,将添加完成后的第一拓扑学习指令报文转发给自身的下一跳二级设备;在自身为最后一跳二级设备时,将添加完成后的第一拓扑学习指令报文返回给所述一级设备。
优选地,所述发送模块,还用于发送第二拓扑学习指令报文,所述第二拓扑学习指令报文用于指示与自身构成的单向环子网内的三级设备读取所述第二拓扑学习指令报文中三级设备的节点数,将所述节点数加1后更新所述节点数,将更新的节点数、自身地址或自身设备ID添加到所述第二拓扑学习指令报文中,并在自身为中间三级设备时将添加完成的第二拓扑学习指令报文转发给自身的下一跳三级设备;在自身为最后一跳三级设备时将添加完成的第二拓扑学习指令报文返回给所述二级设备;
所述确定模块,还用于在所述接收模块接收到返回的第二拓扑学习指令报文时,根据返回的第二拓扑学习指令报文中的节点数、设备地址或设备ID确定所述单向环子网的拓扑结构,并根据所述单向环子网的拓扑结构更新所述数据转发表。
根据上述方法,本发明实施例还提供了一种单向串行总线网络的通信系统,该系统包括:一级设备、至少一个二级设备、至少一个三级设备,所述二级设备包括上述的单向串行总线网络的通信装置;其中,所述一级设备通过单向串行总线与至少一个所述二级设备构成单向环网,每个所述二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网。
本发明提供的一种单向串行总线网络的通信方法、装置及系统,所述单向串行总线网络包括一级设备、至少一个二级设备、至少一个三级设备;其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网,包括:所述二级设备接收数据报文,所述数据报文中携带有节点信息;根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文。如此,本发明实施例中,二级设备根据数据报文中携带的节点信息,对单向环子网和单向环网之间的数据报文进行转发控制,解决了单向串行总线网络中每个数据报文都将跑遍该单向串行总线网络中的所有节点设备的问题,从而避免了单向串行总线网络中无效数据报文的转发,进而提高了网络的资源利用率。
附图说明
图1显示为本发明的单向串行总线网络的通信方法的流程示意图;
图2显示为本发明的单向串行总线网络的通信方法的流程示意图;
图3显示为本发明的单向串行总线网络的通信方法的流程示意图;
图4显示为本发明的单向串行总线网络的通信装置的组成结构示意图;
图5显示为本发明的单向串行总线网络的通信系统的组成结构示意图。
具体实施方式
本发明实施例应用于单向串行总线网络,所述单向串行总线网络包括一级设备、至少一个二级设备、至少一个三级设备;其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网;在实际应用中,所述一级设备可以采用集中器实现,所述二级设备可以采用采集器实现,所述三级设备可以采用智能仪表实现,例如,智能电表、智能热表、智能水表、智能气表等仪表。基于上述单向串行总线网络架构,本发明实施例提供的单向串行总线网络的通信过程如下:
所述一级设备、所述二级设备的上一级设备或三级设备向所述二级设备发送数据报文,所述数据报文中携带有节点信息;
所述二级设备接收所述数据报文,根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文。
本发明实施例中,二级设备根据数据报文中携带的节点信息,实现对一级设备、该二级设备的上一跳二级设备或三级设备发送的数据报文的转发控制,由此隔离单向环子网和单向环网之间的数据报文通信,解决了每个数据报文都将跑遍该单向串行总线网络中的所有节点设备的问题,从而避免了单向串行总线网络中无效数据报文的转发,进而提高了网络的资源利用率。
下面结合附图及具体实施例对本发明做进一步详细的说明。
如图1所示,本发明实施例提供的单向串行总线网络的通信流程,应用于二级设备,具体实现步骤包括:
步骤S100:所述二级设备接收数据报文,所述数据报文中携带有节点信息。
这里,所述单向串行总线网络包括一级设备、至少一个二级设备、至少一个三级设备;其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网;所述单向串行总线网络中,一级设备作为所述单向环网的主节点设备;二级设备作为该单向环网的从节点设备,以及作为与自身构成的单向环子网的主节点设备;三级设备作为该单向环子网的从节点设备。
这里,该数据报文由一级设备、自身的上一跳二级设备或三级设备发送。
这里,所述节点信息包括目的地址或目的设备身份标识(ID);
其中,设备ID为网络内唯一标识设备的标号,设备ID分为三种类型:类型一、指向本地单向环子网内单个设备的单播ID,类型二、指向不在本地单向环子网内设备的单播ID,类型三、指向多个或全部设备的广播ID;由于设备ID与设备地址相关联,相应的,目的地址也分为单播地址和广播地址。
步骤S101:所述二级设备根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文。
这里,所述二级设备根据所述节点信息查询数据转发表,确定所述数据报文的转发路径具体采用以下两种方式:
方式一、所述二级设备上针对本地单向环子网存储有数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括入端口、目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括入端口、目的设备ID、与所述目的设备ID对应的出端口;
所述二级设备首先确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
下面对如何根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文,进行具体说明:
在所述数据转发表中所述入端口对应的目的地址中查询所述目的地址,或者,在所述数据转发表中所述入端口对应的目的设备ID中查询所述目的设备ID;
查询到所述目的地址或所述目的设备ID时,进一步查询所述目的地址或所述目的设备ID对应的出端口;
其中,若所述入端口连接到单向环网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,将所述数据报文通过对应的出端口转发给与自身构成的单向环子网内的三级设备以及自身的下一跳二级设备;当所述目的地址为单播地址或所述目的设备ID为单播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若所述入端口连接到本地单向环子网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,丢弃所述数据报文;
未查询到所述目的地址或目的设备ID时,将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
本发明实施例中,若所述入端口连接到单向环网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,在所述数据转发表中预先设置对应的出端口为连接本地单向环子网的出端口,以及连接单向环网的出端口,因此,可以将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;当所述目的地址为单播地址或所述目的设备ID为单播ID,且所述目的地址或所述目的设备ID为本地单向环子网中三级设备的地址或ID时,在所述数据转发表中预先设置所述目的地址或所述目的设备ID,并设置对应的出端口为连接本地单向环子网的出端口,因此,可以将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;当所述目的地址为单播地址或所述目的设备ID为单播ID,且所述目的地址或所述目的设备ID不为本地单向环子网中三级设备的地址或ID时,在所述数据转发表中并不设置所述目的地址或目的设备ID,采用默认的出端口转发,该默认的出端口为连接单向环网的端口。
本发明实施例中,若所述入端口连接到本地单向环子网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,在所述数据转发表中设置对应的出端口为特殊端口,在所述二级设备查询到对应的出端口为特殊端口时停止转发并丢弃所述数据报文;当所述目的地址为单播地址或所述目的设备ID为单播ID时,所述目的地址或所述目的设备ID为单向环网中设备的地址或ID,所述目的地址或所述目的设备ID并不为本地单向环子网中设备的地址或ID,因此,在所述数据转发表中并不设置所述目的地址或目的设备ID,由此将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
需要说明的是:所述二级设备通过单向串行总线与至少一个三级设备构成的单向环子网为所述二级设备的本地单向环子网。
为了更清楚地对本发明实施例进行说明,下面以具体实施例对所述单向串行总线网络的通信流程进行描述。
实施例一
若所述节点信息包括目的地址,则配置如表1所示的数据转发表项:
表1
其中,二级设备配置至少两个独立工作的串行端口,可以从任意端口接收或发送报文,也可以在端口之间转发报文;端口1配置为连接到单向环网的入端口;端口2配置为连接到本地单向环子网的入端口;端口3配置为连接本地单向环子网的出端口;端口4配置为连接单向环网的出端口,为默认的出端口;特殊端口为1111端口。
其中,若所述入端口为端口1,则当所述目的地址为广播地址时,在所述数据转发表1中预先设置对应的出端口为端口3以及端口4;当所述目的地址为单播地址,且所述目的地址为本地单向环子网中三级设备的地址时,在所述数据转发表1中预先设置所述目的地址,并设置对应的出端口为端口3;当所述目的地址为单播地址,且所述目的地址不为本地单向环子网中三级设备的地址时,在所述数据转发表1中并不设置所述目的地址,且对应的出端口为默认的出端口。若所述入端口为端口2,则当所述目的地址为广播地址时,在所述数据转发表1中预先设置对应的出端口为特殊端口;当所述目的地址为单播地址时,所述目的地址为单向环网中设备的地址,因此,在所述数据转发表1中并不设置所述目的地址,采用默认的出端口转发所述数据报文。
(1)从端口1接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的地址1,首先确定所述目的地址1并不为自身地址,然后,在所述数据转发表1中所述端口1对应的目的地址中查询所述目的地址1;
此时在所述端口1对应的目的地址中查询到所述目的地址1,则进一步查询所述目的地址1对应的出端口;
此时确定对应的出端口为端口3及端口4,将所述数据报文通过端口3及端口4转发给本地单向环子网内的三级设备以及自身的下一跳二级设备。
(2)从端口1接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的地址2,首先确定所述目的地址2并不为自身地址,然后,在所述数据转发表1中所述端口1对应的目的地址中查询所述目的地址2;
此时在所述端口1对应的目的地址中查询到所述目的地址2,则进一步查询所述目的地址1对应的出端口;
此时确定对应的出端口为端口3,将所述数据报文通过端口1转发给本地单向环子网内的三级设备。
(3)从端口1接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的地址3,首先根据所述目的地址3并不为自身地址,然后,在所述数据转发表1中所述端口1对应的目的地址中查询所述目的地址3;
此时由于未查询到所述目的地址3,因此,将所述数据报文通过端口4(默认的出端口)转发给自身的下一跳二级设备。
实施例二
若所述节点信息包括目的设备ID,则配置如表2所示的数据转发表项:
表2
其中,二级设备配置至少两个独立工作的串行端口,可以从任意端口接收或发送报文,也可以在两个端口之间转发报文;端口1配置为连接到单向环网的入端口;端口2配置为连接到本地单向环子网的入端口;端口3配置为连接本地单向环子网的出端口;端口4配置为连接单向环网的出端口,为默认的出端口;特殊端口为1111端口。
其中,若所述入端口为端口1,则当所述目的设备ID为广播ID时,在所述数据转发表2中预先设置对应的出端口为端口3以及端口4;当所述目的设备ID为单播ID,且所述目的设备ID为本地单向环子网中三级设备的ID时,在所述数据转发表2中预先设置所述目的设备ID,并配置对应的出端口为端口3;当所述目的设备ID为单播ID,且所述目的设备ID不为本地单向环子网中三级设备的ID时,在所述数据转发表2中并不设置所述目的设备ID,且对应的出端口为默认的出端口。若所述入端口为端口2,则当所述目的设备ID为广播ID时,在所述数据转发表2中预先设置对应的出端口为特殊端口;当所述目的设备ID为单播ID,所述目的设备ID为单向环网中设备的ID时,因此,在所述数据转发表2中并不设置所述目的设备ID,采用默认出端口转发所述数据报文。
(1)从端口2接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的设备ID3,首先确定所述目的设备ID3并不为自身ID,然后,在所述数据转发表2中所述端口2对应的目的设备中查询所述目的设备ID3;
此时在所述端口2对应的目的设备中查询到所述目的设备ID3,则进一步查询所述目的设备ID3对应的出端口;
此时查询到对应的出端口为特殊端口,因此,停止转发并丢弃所述数据报文。
(2)从端口2接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的设备ID5,首先根据所述目的设备ID5并不为自身ID,然后,在所述数据转发表2中所述端口2对应的目的设备ID中查询所述目的设备ID5;
此时由于未查询到所述目的设备ID5,因此,将所述数据报文通过端口4(默认的出端口)转发给自身的下一跳二级设备。
需要说明的是:上述表1和表2仅为示例,并不构成对本发明的限制。
方式二、所述二级设备上针对本地单向环网存储有数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括目的设备ID、与所述目的设备ID对应的出端口;
所述二级设备首先确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,当所述目的地址为广播地址或所述目的设备ID为广播ID时,确定接收数据报文的入端口是否连接到所述单向环网;
若是,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;否则丢弃所述数据报文;
当所述目的地址为单播地址或所述目的设备ID为单播ID时,根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
下面对如何根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文,进行具体说明:
若在所述数据转发表中查询到所述目的地址或所述目的设备ID,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若在所述数据转发表中未查询到所述目的地址或所述目的设备ID,则将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
为了更清楚地对本发明实施例进行说明,下面以具体实施例对所述单向串行总线网络的通信流程进行描述。
实施例三
若所述节点信息包括目的地址,则配置如表3示的数据转发表项:
表3
其中,二级设备配置至少两个独立工作的串行端口,可以从任意端口接收或发送报文,也可以在端口之间转发报文;端口1配置为连接到单向环网的入端口;端口2配置为连接到本地单向环子网的入端口;端口3配置为连接本地单向环子网的出端口;端口4配置为连接单向环网的出端口,为默认的出端口。
其中,当所述目的地址为单播地址,且所述目的地址为本地单向环网中设备的地址时,在所述数据转发表3中预先设置对应的出端口为端口3;当所述目的地址为单播地址,且所述目的地址为单向环网中设备的地址时,采用默认的出端口转发所述数据报文。
(1)从端口1接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的地址3,首先确定所述目的地址3并不为自身地址,然后,当所述目的地址3为广播地址时,确定接收数据报文的入端口1是否连接到所述单向环网;
此时入端口1连接到所述单向环网,将所述数据报文通过对应的出端,3及端口4转发给本地单向环子网内的三级设备以及自身的下一跳二级设备。
(2)从端口2接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的地址3,首先确定所述目的地址3并不为自身地址,然后,当所述目的地址3为广播地址时,确定接收数据报文的入端口2是否连接到所述单向环网;
此时入端口2连接到本地单向环子网,因此,停止转发并丢弃所述数据报文。
(3)从端口1接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的地址1,首先确定所述目的地址1并不为自身地址,然后,当所述目的地址1为单播地址时,根据所述目的地址1查询所述数据转发表3;
此时查询到所述目的地址1,因此,将所述数据报文通过对应的端口3转发给本地单向环子网内的三级设备。
(4)从端口2接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的地址4,首先确定所述目的地址4并不为自身地址,然后,当所述目的地址4为单播地址时,根据所述目的地址4查询所述数据转发表3;
此时未查询到所述目的地址4,因此,将所述数据报文通过对应的端口4(默认的出端口)转发给自身的下一跳二级设备。
实施例四
若所述节点信息包括目的设备ID,则配置如表4示的数据转发表项:
表4
其中,二级设备配置至少两个独立工作的串行端口,可以从任意端口接收或发送报文,也可以在端口之间转发报文;端口1配置为连接到单向环网的入端口;端口2配置为连接到本地单向环子网的入端口;端口3配置为连接本地单向环子网的出端口;端口4配置为连接单向环网的出端口,为默认的出端口。
其中,当所述目的设备ID为单播ID,且所述目的设备ID为本地单向环网中设备的地址时,在所述数据转发表4中预先设置对应的出端口为端口3;当所述目的设备ID为单播ID,且所述目的设备ID为单向环网中设备的ID时,采用端口4(默认的出端口)转发所述数据报文。
(1)从端口1接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的设备ID3,首先确定所述目的设备ID3并不为自身ID,然后,当所述目的设备ID3为广播ID时,确定接收数据报文的入端口1是否连接到所述单向环网;
此时入端口1连接到所述单向环网,将所述数据报文通过对应的端口3及端口4转发给本地单向环子网内的三级设备以及自身的下一跳二级设备。
(2)从端口2接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的设备ID3,首先确定所述目的设备ID3并不为自身ID,然后,当所述目的设备ID3为广播ID时,确定接收数据报文的入端口2是否连接到所述单向环网;
此时入端口2连接到本地单向环子网,因此,停止转发并丢弃所述数据报文。
(3)从端口1接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的设备ID1,首先确定所述目的设备ID1并不为自身ID,然后,当所述目的设备ID1为单播ID时,根据所述目的设备ID1查询所述数据转发表4;
此时查询到所述目的设备ID1,因此,将所述数据报文通过对应的端口3转发给本地单向环子网内的三级设备。
(4)从端口2接收数据报文,所述数据报文中携带有节点信息,所述节点信息包括目的设备ID4,首先确定所述目的设备ID4并不为自身ID,然后,当所述目的设备ID4为单播地址时,根据所述目的设备ID4查询所述数据转发表4;
此时未查询到所述目的设备ID4,因此,将所述数据报文通过对应的端口4(默认的出端口)转发给自身的下一跳二级设备。
需要说明的是:上述表3和表4仅为示例,并不构成对本发明的限制。
这里,二级设备的数据转发表可以通过如下方式建立和维护:
方式一、静态固定或人工配置指定某一个或某几个端口为默认的出端口,并指定某一个或某几个端口为连接本地单向环子网的出端口。
方式二、通过自动拓扑学习机制建立和维护。
进一步地,为了能够自动学习及感知所述单向环网的网络拓扑结构,所述一级设备作为所述单向环网的主节点设备,在需要自动学习及感知所述单向环网的网络拓扑结构时,向所述单向环网中的所述二级设备发送第一拓扑学习指令报文,所述二级设备作为所述单向环网的从节点设备,进一步包括:
所述二级设备接收所述一级设备发送的第一拓扑学习指令报文;
所述二级设备读取所述第一拓扑学习指令报文中二级设备的节点数,将所述节点数加1后更新所述节点数,并将更新的节点数、自身地址或自身设备ID添加到所述第一拓扑学习指令报文中;
所述二级设备在自身为中间级二级设备时,将添加完成后的第一拓扑学习指令报文转发给自身的下一跳二级设备;在自身为最后一级二级设备时,将添加完成后的第一拓扑学习指令报返回给所述一级设备。
具体的,所述第一拓扑学习指令报文由所述一级设备在需要自动学习及感知所述单向环网的网络拓扑时发送,所述第一拓扑学习指令报文携带有源地址及目的地址,所述源地址及目的地址均为所述一级设备自身地址;或者,所述第一拓扑学习指令报文携带有源设备ID及目的设备ID,所述源设备ID及目的设备ID均为所述一级设备自身的设备ID,以使所述二级设备在接收到所述第一拓扑学习指令报文时逐跳更新第一拓扑学习指令报文中的节点数,并不断地将自身地址或自身设备ID追加到所述第一拓扑学习指令报文中,所述第一拓扑学习指令报文如表5所示:
表5
其中,所述一级设备发送的第一拓扑学习指令报文中的二级设备的节点数为零,由所述二级设备从接收到的第一拓扑学习指令报文中的某个位置读取二级设备的节点数,将所述节点数加1后回写覆盖原来位置处的节点数,然后根据更新后的节点数计算出在所述第一拓扑学习指令报文中添加自身地址或自身设备ID的位置,并在计算出的位置处写入自身地址或自身设备ID;在保持源地址及目的地址,或者源设备ID及目的设备ID不变的情况下,将添加完成后的第一拓扑学习指令报文转发给自身的下一跳二级设备,由最后一跳二级设备在将更新后的节点数及自身地址或自身设备ID添加到所述第一拓扑学习指令报文后,将添加完成后的拓扑学习指令报文返回给所述一级设备。
进一步地,为了使所述一级设备能够确定所述单向环网中故障节点的位置,所述二级设备进一步包括:
所述二级设备检测自身是否故障;
在检测自身故障时,发送第一故障报告报文,所述第一故障报告报文用于指示所述一级设备根据收到的第一故障报告报文及单向环网的拓扑结构确定单向环网中故障节点的位置。本发明实施例中,所述一级设备根据收到的第一故障报告报文及单向环网的拓扑结构,能够快递地确定单向环网中故障节点的位置,从而降低了所述单向环网的维护成本,并缩短了故障的影响时间。
进一步地,为了能够自动学习及感知本地单向环子网的网络拓扑结构,以及根据动态变化的网络拓扑结构实时更新本地存储的数据转发表,从而实现数据报文的实时转发,因此,所述二级设备作为本地单向环子网的主节点设备,在需要自动学习及感知本地单向环子网的学习指令报文用于指示与所述单向环子网内的三级设备读取所述第二拓扑学习指令报文中三级设备的节点数,将所述节点数加1后更新所述节点数,将更新的节点数、自身地址或自身设备ID添加到所述第二拓扑学习指令报文中,并在自身为中间三级设备时将添加完成后的第二拓扑学习指令报文转发给自身的下一跳三级设备;在自身为最后一跳三级设备时将添加完成后的第二拓扑学习指令报文返回给所述二级设备;
所述二级设备接收返回的第二拓扑学习指令报文,根据返回的第二拓扑学习指令报文中的节点数、设备的地址或ID确定所述单向环子网的拓扑结构并生成所述单向环子网的拓扑结构图,并根据所述单向环子网的拓扑结构更新所述数据转发表。具体的,所述第二拓扑学习指令报文中携带有源地址及目的地址,所述源地址及目的地址均为所述二级设备自身地址;或者,所述第二拓扑学习指令报文携带有源设备ID及目的设备ID,所述源设备ID及目的设备ID均为所述二级设备自身设备ID,以使所述三级设备在接收到所述第二拓扑学习指令报文时逐跳更新第二拓扑学习指令报文中的节点数,并不断地将自身地址或自身设备ID追加到所述第二拓扑学习指令报文中,所述第二拓扑学习指令报文如表6所示:
表6
其中,所述二级设备发送的拓扑学习指令报文中的三级设备的节点数为零,由所述三级设备从接收到的第二拓扑学习指令报文中的某个位置读取三级设备的节点数,将所述节点数加1后回写覆盖原来位置处的节点数数据,然后根据更新后的节点数计算出在所述第二拓扑学习指令报文中添加自身地址或自身设备ID的位置,并写入在计算出的位置处写入自身地址或自身设备ID;在保持源地址及目的设备地址,或者源设备ID及目的设备ID不变的情况下,将添加完成后的第二拓扑学习指令报文转发给自身的下一跳三级设备,由最后一跳三级设备在更新完节点数并将自身地址或自身设备ID添加完成后,将添加完成后的第二拓扑学习指令报文返回给所述二级设备。
需要说明的是:上述表5和表6仅为示例,并不构成对本发明的限制。
具体的,所述二级设备可以采用如下方式发送第二拓扑学习指令报文:
(1)按照设定时间间隔方式发送
所述二级设备发送第二拓扑学习指令报文时,启动定时器计时,当定时器到达设定时间时,发送下一个第二拓扑学习指令报文,也就是说,采用此方式可以根据定时器计时周期性地发送第二拓扑学习指令报文,以实现网络拓扑的自动学习及更新。
(2)按照命令触发方式发送
具体的触发方式可以是,在用户或所述一级设备需要实现网络拓扑自动学习时触发所述二级设备发送第二拓扑学习指令报文。
进一步地,所述二级设备为了能够确定本地单向环子网中故障节点的位置,进一步包括:所述二级设备接收所述三级设备发送的第二故障报告报文;
所述二级设备根据所述第二故障报告报文及与自身构成的单向环子网的拓扑结构确定所述单向环子网中故障节点的位置。
这里,所述第二故障报告报文是由本地单向环子网内三级设备检测自身是否故障,并在检测自身故障时向所述二级设备发送的。
本发明实施例中,所述二级设备根据收到的第二故障报告报文及与自身构成的单向环子网的拓扑结构,能够快递地确定单向环子网中故障节点的位置,从而降低了所述单向环子网的维护成本,并缩短了故障的影响时间。
本发明实施例中,监控管理设备通过远程网络连接所述一级设备,所述监控管理设备可以先从一级设备上查询到与一、二级设备之间的单向环网的拓扑结构,根据所述单向环网的拓扑结构绘出一、二级设备之间的包括连接关系的拓扑结构图;所述监控管理设备再根据所述拓扑结构图,依次向所述拓扑结构图中所有二级设备查询本地单向环子网的网络拓扑,各二级设备依次返回自身学习到的本地单向环子网的拓扑结构;所述监控管理设备依据各二级设备返回的本地单向环子网的拓扑结构,进一步绘出各二级设备下的本地单向环子网的拓扑结构图,如此,根据所述一、二级设备之间的拓扑结构图,及各二级设备下的本地单向环子网的拓扑结构图,生成了所述单向串行总线网络的全网拓扑结构图。
如图2所示,本发明实施例提供的单向串行总线网络的通信流程,应用于一级设备,具体实现步骤包括:
步骤S200:所述一级设备获取携带有节点信息的数据报文;
这里,所述节点信息包括目的地址或目的设备ID;
其中,设备ID为网络内唯一标识设备的标号,设备ID分为三种类型:类型一、指向本地单向环子网内单个设备的单播ID,类型二、指向不在本地单向环子网内设备的单播ID,类型三、指向多个或全部设备的广播ID;由于设备ID与地址相关联,相应的,目的地址也分为单播地址和广播地址。
步骤S201:所述一级设备将携带有节点信息的数据报文发送给所述二级设备,触发所述二级设备根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文。
进一步地,为了能够自动学习及感知单向环网的网络拓扑结构,所述一级设备作为所述单向环网的主节点设备,在需要自动学习及感知所述单向环网的网络拓扑结构时,进一步包括:
所述一级设备发送第一拓扑学习指令报文,所述第一拓扑学习指令报文用于指示所述二级设备读取所述第一拓扑学习指令报文中二级设备的节点数,将所述节点数加1后更新所述节点数,将更新的节点数、自身地址或自身设备ID添加到所述第一拓扑学习指令报文中,并在自身为中间二级设备时,将添加完成后的第一拓扑学习指令报文转发给自身的下一跳二级设备;在自身为最后一跳二级设备时,将添加完成后的第一拓扑学习指令报文返回给所述一级设备;
所述一级设备接收返回的第一拓扑学习指令报文,根据返回的第一拓扑学习指令报文中的节点数、设备地址或设备ID确定所述单向环网的拓扑结构并生成所述单向环网的拓扑结构图。
具体的,所述一级设备可以采用如下方式发送第一拓扑学习指令报文:
(1)按照设定时间间隔方式发送
所述一级设备发送第一拓扑学习指令报文时,启动定时器计时,当定时器到达设定时间时,发送下一个第一拓扑学习指令报文,也就是说,采用此方式可以根据定时器计时周期性地发送第一拓扑学习指令报文,以实现网络拓扑的自动学习及更新。
(2)按照命令触发方式发送
具体的触发方式可以是,在用户或与所述一级设备连接的远端网络监控管理设备需要实现网络拓扑自动学习时触发所述一级设备发送第一拓扑学习指令报文。
进一步地,所述一级设备为了能够确定所述单向环网中故障节点的位置,进一步包括:所述一级设备接收所述二级设备发送的第一故障报告报文;
所述一级设备根据收到的第一故障报告报文及所述单向环网的拓扑结构确定所述单向环网中故障节点的位置。
这里,所述第一故障报告报文是由所述二级设备检测自身是否故障,并在检测自身故障时向一级设备发送的。
如图3所示,本发明实施例提供的单向串行总线网络的通信流程,应用于三级设备,具体实现步骤包括:
步骤S300:所述三级设备获取携带有节点信息的数据报文。
这里,所述节点信息包括目的地址或目的设备ID;
其中,设备ID为网络内唯一标识设备的标号,设备ID分为三种类型:类型一、指向本地单向环子网内单个设备的单播ID,类型二、指向不在本地单向环子网内设备的单播ID,类型三、指向多个或全部设备的广播ID;由于设备ID与地址相关联,相应的,目的地址也分为单播地址和广播地址。
步骤S301:所述三级设备将携带有节点信息的数据报文发送给所述二级设备,触发所述二级设备根据所述节点信息确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文。
进一步地,为了能够自动学习及感知所述单向环网的网络拓扑结构,所述二级设备作为与自身构成的单向环子网的主节点设备,在需要自动学习及感知所述单向环子网的网络拓扑结构时,向所述单向环子网中的三级设备发送第二拓扑学习指令报文,所述三级设备作为所述单向环子网的从节点设备,进一步包括:
所述三级设备接收所述二级设备发送的第二拓扑学习指令报文;
所述三级设备读取所述第二拓扑学习指令报文中三级设备的节点数,将所述节点数加1后更新所述节点数,并将更新的节点数、自身地址或自身设备ID添加到所述第二拓扑学习指令报文中;
所述三级设备在自身为中间三级设备时,将添加完成后的第二拓扑学习指令报文转发给自身的下一跳三级设备;在自身为最后一跳三级设备时,将添加完成后的第二拓扑学习指令报文返回给所述二级设备。
进一步地,为了使所述二级设备能够确定所述单向环子网中故障节点的位置,所述三级设备进一步包括:
所述三级设备检测自身是否故障;
所述三级设备检测自身故障时,发送第二故障报告报文,所述第二故障报告报文用于指示所述二级设备根据收到的第二故障报告报文及与自身构成的单向环子网的拓扑结构确定所述单向环子网中故障节点的位置。
为实现上述方法,本发明实施例提供了一种单向串行总线网络的通信装置,由于该装置解决问题的原理与方法相似,因此,装置的实施过程及实施原理均可以参见前述方法的实施过程及实施原理描述,重复之处不再赘述。
本发明实施例提出了一种单向串行总线网络的通信装置,如图4所示,应用于包括一级设备、二级设备及三级设备的单向串行总线网络中的二级设备,其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网,所述装置包括:接收模块400、确定模块401、发送模块402;其中,
所述接收模块400,用于接收数据报文,所述数据报文中携带有节点信息;
所述确定模块401,用于根据所述节点信息确定所述数据报文的转发路径,并指示所述发送模块402通过确定的转发路径转发所述数据报文;
所述发送模块402,用于根据所述确定模块401的指示通过确定的转发路径转发所述数据报文。
具体实施中,所述二级设备上针对本地单向环子网存储有数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括入端口、目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括入端口、目的设备ID、与所述目的设备ID对应的出端口;
所述确定模块401,具体用于确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
具体实施中,所述确定模块401,具体用于在所述数据转发表中所述入端口对应的目的地址中查询所述目的地址,或者,在所述数据转发表中所述入端口对应的目的设备ID中查询所述目的设备ID;
查询到所述目的地址或所述目的设备ID时,进一步查询所述目的地址或所述目的设备ID对应的出端口;
若所述入端口连接到所述单向环网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;当所述目的地址为单播地址或所述目的设备ID为单播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若所述入端口连接到本地单向环子网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,丢弃所述数据报文;
未查询到所述目的地址或目的设备ID时,将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
具体实施中,所述二级设备上针对本地单向环网存储有数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括目的设备ID、与所述目的设备ID对应的出端口;
所述确定模块401,具体用于确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,当所述目的地址为广播地址或所述目的设备ID为广播ID时,确定接收数据报文的入端口是否连接到所述单向环网;
若是,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;否则丢弃所述数据报文;
当所述目的地址为单播地址或所述目的设备ID为单播ID时,根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
具体实施中,所述确定模块401具体用于:
若在所述数据转发表中查询到所述目的地址或所述目的设备ID,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若在所述数据转发表中未查询到所述目的地址或所述目的设备ID,则将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
具体实施中,所述接收模块400,还用于接收一级设备发送的第一拓扑学习指令报文;
所述装置还包括:
更新模块403,用于读取所述第一拓扑学习指令报文中二级设备的节点数,将所述节点数加1后更新所述节点数,并将更新的节点数、自身地址或自身设备ID添加到所述第一拓扑学习指令报文中;
所述发送模块402,还用于在自身为中间二级设备时,将添加完成后的第一拓扑学习指令报文转发给自身的下一跳二级设备;在自身为最后一跳二级设备时,将添加完成后的第一拓扑学习指令报文返回给所述一级设备。
具体实施中,所述发送模块402,还用于发送第二拓扑学习指令报文,所述第二拓扑学习指令报文用于指示与自身构成的单向环子网内的三级设备读取所述第二拓扑学习指令报文中三级设备的节点数,将所述节点数加1后更新所述节点数,将更新的节点数、自身地址或自身设备ID添加到所述第二拓扑学习指令报文中,并在自身为中间三级设备时将添加完成的第二拓扑学习指令报文转发给自身的下一跳三级设备;在自身为最后一跳三级设备时将添加完成的第二拓扑学习指令报文返回给所述二级设备;
所述确定模块401,还用于在所述接收模块400接收到返回的第二拓扑学习指令报文时,根据返回的第二拓扑学习指令报文中的节点数、设备地址或设备ID确定所述单向环子网的拓扑结构,并根据所述单向环子网的拓扑结构更新所述数据转发表。
以上功能模块的划分方式仅为本发明实施例给出的一种优选实现方式,功能模块的划分方式不构成对本发明的限制。为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
为实现上述方法,本发明实施例提供了一种单向串行总线网络的通信系统,由于该系统解决问题的原理与方法相似,因此,系统的实施过程及实施原理均可以参见前述方法的实施过程及实施原理描述,重复之处不再赘述。
本发明实施例提出了一种单向串行总线网络的通信系统,如图5所示,该系统包括:一级设备500、至少一个二级设备501、至少一个三级设备502,所述二级设备501包括上述的单向串行总线网络的通信装置;其中,所述一级设备500通过单向串行总线与至少一个所述二级设备501构成单向环网,每个所述二级设备501分别通过单向串行总线与至少一个三级设备502构成单向环子网。
综上所述,本发明提供的单向串行总线网络的通信方法、装置及系统,所述单向串行总线网络包括一级设备、至少一个二级设备、至少一个三级设备;其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网,所述二级设备接收数据报文,所述数据报文中携带有节点信息;根据所述节点信息确定所述数据报文的转发路径。如此,本发明实施例中,二级设备根据数据报文中携带的节点信息,对单向环子网和单向环网之间的数据报文进行转发控制,解决了单向串行总线网络中每个数据报文都将跑遍该单向串行总线网络中的所有节点设备的问题,从而避免了单向串行总线网络中无效数据报文的转发,进而提高了网络的资源利用率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (15)
1.一种单向串行总线网络的通信方法,所述单向串行总线网络包括一级设备、至少一个二级设备、至少一个三级设备;其中,所述一级设备通过单向串行总线与至少一个二级设各构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网,其特征在于,所述方法包括:
所述二级设备接收数据报文,所述数据报文中携带有节点信息;
所述二级设备根据所述节点信息查询数据转发表,确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文;
所述二级设备上针对本地单向环子网存储有所述数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括入端口、目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括入端口、目的设备ID、与所述目的设备ID对应的出端口;
或者,所述二级设备上针对本地单向环网存储有所述数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括目的设备ID、与所述目的设备ID对应的出端口。
2.根据权利要求1所述的方法,其特征在于,
所述二级设备根据所述节点信息查询数据转发表,确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文,包括:
所述二级设备确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;若是,则处理所述数据报文并停止转发所述数据报文;否则,根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
3.根据权利要求1所述的方法,其特征在于,所述根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文,包括:
在所述数据转发表中所述入端口对应的目的地址中查询所述目的地址,或者,在所述数据转发表中所述入端口对应的目的设备ID中查询所述目的设备ID;
查询到所述目的地址或所述目的设备ID时,进一步查询所述目的地址或所述目的设备ID对应的出端口;
若所述入端口连接到所述单向环网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;当所述目的地址为单播地址或所述目的设备ID为单播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若所述入端口连接到本地单向环子网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,丢弃所述数据报文;
未查询到所述目的地址或目的设备ID时,将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
4.根据权利要求1所述的方法,其特征在于,所述二级设备根据所述节点信息查询数据转发表,确定所述数据报文的转发路径,并通过确定的转发路径转发所述数据报文,包括:
所述二级设备确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;若是,则处理所述数据报文并停止转发所述数据报文;否则,当所述目的地址为广播地址或所述目的设备ID为广播ID时,确定接收数据报文的入端口是否连接到所述单向环网;若是,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备:否则丢弃所述数据报文;
当所述目的地址为单播地址或所述目的设备ID为单播ID时,根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
5.根据权利要求4所述的方法,其特征在于,所述当所述目的地址为单播地址或所述目的设备ID为单播ID时,根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文,包括:
若在所述数据转发表中查询到所述目的地址或所述目的设备ID,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若在所述数据转发表中未查询到所述目的地址或所述目的设备ID,则将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
所述二级设备接收所述一级设备发送的第一拓扑学习指令报文;
所述二级设备读取所述第一拓扑学习指令报文中二级设备的节点数,将所述节点数加1后更新所述节点数,并将更新的节点数、自身地址或自身设备ID添加到所述第一拓扑学习指令报文中;
所述二级设备在自身为中间二级设备时,将添加完成后的第一拓扑学习指令报文转发给自身的下一跳二级设备;在自身为最后一跳二级设备时,将添加完成后的第一拓扑学习指令报文返回给所述一级设备。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述二级设备发送第二拓扑学习指令报文,所述第二拓扑学习指令报文用于指示与自身构成的单向环子网内的三级设备读取所述第二拓扑学习指令报文中三级设备的节点数,将所述节点数加1后更新所述节点数,将更新的节点数、自身地址或自身设备ID添加到所述第二拓扑学习指令报文中,并在自身为中间三级设备时将添加完成后的第二拓扑学习指令报文转发给自身的下一跳三级设备;在自身为最后一跳三级设备时将添加完成后的第二拓扑学习指令报文返回给所述二级设备;
所述二级设备接收返回的第二拓扑学习指令报文,根据返回的第二拓扑学习指令报文中的节点数、设备地址或设备ID确定所述单向环子网的拓扑结构,并根据所述单向环子网的拓扑结构更新所述数据转发表。
8.一种单向串行总线网络的通信装置,应用于包括一级设备、二级设备及三级设备的单向串行总线网络中的二级设备,其中,所述一级设备通过单向串行总线与至少一个二级设备构成单向环网,每个二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网,其特征在于,所述装置包括:接收模块、确定模块、发送模块;其中,所述接收模块,用于接收数据报文,所述数据报文中携带有节点信息;
所述确定模块,用于根据所述节点信息查询数据转发表,确定所述数据报文的转发路径,并指示所述发送模块通过确定的转发路径转发所述数据报文;
所述发送模块,用于根据所述确定模块的指示通过确定的转发路径转发所述数据报文;
所述二级设备上针对本地单向环子网存储有所述数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括入端口、目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括入端口、目的设备ID、与所述目的设备ID对应的出端口;
或者,所述二级设备上针对本地单向环网存储有所述数据转发表,若所述节点信息包括目的地址,相应的,所述数据转发表包括目的地址、与所述目的地址对应的出端口;若所述节点信息包括目的设备身份标识ID,相应的,所述数据转发表包括目的设备ID、与所述目的设备ID对应的出端口。
9.根据权利要求8所述的装置,其特征在于,
所述确定模块,具体用于确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,根据接收数据报文的入端口、所述目的地址或所述目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
10.根据权利要求9所述的装置,其特征在于,所述确定模块,具体用于在所述数据转发表中所述入端口对应的目的地址中查询所述目的地址,或者,在所述数据转发表中所述入端口对应的目的设备ID中查询所述目的设备ID;
查询到所述目的地址或所述目的设备ID时,进一步查询所述目的地址或所述目的设备ID对应的出端口;
若所述入端口连接到所述单向环网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备;当所述目的地址为单播地址或所述目的设备ID为单播ID时,将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若所述入端口连接到本地单向环子网,则当所述目的地址为广播地址或所述目的设备ID为广播ID时,丢弃所述数据报文;
未查询到所述目的地址或目的设备ID时,将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
11.根据权利要求8所述的装置,其特征在于,所述确定模块,具体用于确定所述目的地址是否为自身地址或者所述目的设备ID是否为自身设备ID;
若是,则处理所述数据报文并停止转发所述数据报文;否则,当所述目的地址为广播地址或所述目的设备ID为广播ID时,确定接收数据报文的入端口是否连接到所述单向环网;
若是,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备以及自身的下一跳二级设备:否则丢弃所述数据报文;
当所述目的地址为单播地址或所述目的设备ID为单播ID时,根据所述目的地址或目的设备ID查询所述数据转发表确定对应的出端口,并通过对应的出端口转发所述数据报文。
12.根据权利要求8所述的装置,其特征在于,所述确定模块具体用于:
若在所述数据转发表中查询到所述目的地址或所述目的设备ID,则将所述数据报文通过对应的出端口转发给本地单向环子网内的三级设备;
若在所述数据转发表中未查询到所述目的地址或所述目的设备ID,则将所述数据报文通过默认的出端口转发给自身的下一跳二级设备。
13.根据权利要求8至12任一项所述的装置,其特征在于,所述接收模块,还用于接收一级设备发送的第一拓扑学习指令报文;
所述装置还包括:
更新模块,用于读取所述第一拓扑学习指令报文中二级设备的节点数,将所述节点数加1后更新所述节点数,并将更新的节点数、自身地址或自身设备ID添加到所述第一拓扑学习指令报文中;
所述发送模块,还用于在自身为中间二级设备时,将添加完成后的第一拓扑学习指令报文转发给自身的下一跳二级设备;在自身为最后一跳二级设备时,将添加完成后的第一拓扑学习指令报文返回给所述一级设备。
14.根据权利要求13所述的装置,其特征在于,所述发送模块,还用于发送第二拓扑学习指令报文,所述第二拓扑学习指令报文用于指示与自身构成的单向环子网内的三级设备读取所述第二拓扑学习指令报文中三级设备的节点数,将所述节点数加1后更新所述节点数,将更新的节点数、自身地址或自身设备ID添加到所述第二拓扑学习指令报文中,并在自身为中间三级设备时将添加完成的第二拓扑学习指令报文转发给自身的下一跳三级设备;
在自身为最后一跳三级设备时将添加完成的第二拓扑学习指令报文返回给所述二级设备;
所述确定模块,还用于在所述接收模块接收到返回的第二拓扑学习指令报文时,根据返回的第二拓扑学习指令报文中的节点数、设备地址或设备ID确定所述单向环子网的拓扑结构,并根据所述单向环子网的拓扑结构更新所述数据转发表。
15.一种单向串行总线网络的通信系统,其特征在于,所述系统包括:一级设备、至少一个二级设备、至少一个三级设备,所述二级设备包括如权利要求8至14任一项所述的单向串行总线网络的通信装置;其中,所述一级设备通过单向串行总线与至少一个所述二级设备构成单向环网,每个所述二级设备分别通过单向串行总线与至少一个三级设备构成单向环子网。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610460619.XA CN105959216B (zh) | 2016-06-22 | 2016-06-22 | 一种单向串行总线网络的通信方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610460619.XA CN105959216B (zh) | 2016-06-22 | 2016-06-22 | 一种单向串行总线网络的通信方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105959216A CN105959216A (zh) | 2016-09-21 |
CN105959216B true CN105959216B (zh) | 2019-02-26 |
Family
ID=56903568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610460619.XA Expired - Fee Related CN105959216B (zh) | 2016-06-22 | 2016-06-22 | 一种单向串行总线网络的通信方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105959216B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107154675B (zh) * | 2017-05-17 | 2020-02-21 | 山东泰开电力电子有限公司 | 一种应用于中高压svg的单总线通讯系统及其方法 |
CN109600326B (zh) * | 2018-12-24 | 2021-11-19 | 华为技术有限公司 | 数据或报文转发的方法、节点和系统 |
CN110933291B (zh) * | 2019-06-06 | 2020-07-28 | 北京仁光科技有限公司 | 跨网交互系统和跨网交互方法 |
US11223574B2 (en) * | 2019-12-27 | 2022-01-11 | Google Llc | Multi-stage switching topology |
CN115225425B (zh) * | 2022-09-19 | 2022-12-27 | 北京天辰合创科技有限公司 | 动态可插入环形网络架构数据采集方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972234A (zh) * | 2005-11-24 | 2007-05-30 | 杭州华为三康技术有限公司 | 环型以太网及其业务承载实现方法 |
CN101697525A (zh) * | 2009-10-14 | 2010-04-21 | 中兴通讯股份有限公司 | 基于环网的地址转发表配置方法及数据传输方法及系统 |
CN103634186A (zh) * | 2013-01-30 | 2014-03-12 | 深圳市禾望电气有限公司 | 环网串行通讯方法及系统 |
CN103780496A (zh) * | 2012-10-17 | 2014-05-07 | 杭州华三通信技术有限公司 | 应用于星形堆叠系统中的报文转发方法和设备 |
CN104539485A (zh) * | 2015-01-04 | 2015-04-22 | 成都盟升科技有限公司 | 一种点到点双向链路的自动拓扑识别方法 |
-
2016
- 2016-06-22 CN CN201610460619.XA patent/CN105959216B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972234A (zh) * | 2005-11-24 | 2007-05-30 | 杭州华为三康技术有限公司 | 环型以太网及其业务承载实现方法 |
CN101697525A (zh) * | 2009-10-14 | 2010-04-21 | 中兴通讯股份有限公司 | 基于环网的地址转发表配置方法及数据传输方法及系统 |
CN103780496A (zh) * | 2012-10-17 | 2014-05-07 | 杭州华三通信技术有限公司 | 应用于星形堆叠系统中的报文转发方法和设备 |
CN103634186A (zh) * | 2013-01-30 | 2014-03-12 | 深圳市禾望电气有限公司 | 环网串行通讯方法及系统 |
CN104539485A (zh) * | 2015-01-04 | 2015-04-22 | 成都盟升科技有限公司 | 一种点到点双向链路的自动拓扑识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105959216A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105959216B (zh) | 一种单向串行总线网络的通信方法、装置及系统 | |
JP5850471B2 (ja) | 通信システム、制御装置、ノード制御方法およびプログラム | |
CN113364610B (zh) | 网络设备的管理方法、装置及系统 | |
CN103888369A (zh) | 以太网通信方法、系统和sdn交换机 | |
US10645006B2 (en) | Information system, control apparatus, communication method, and program | |
CN103001887A (zh) | 一种链路保活方法、控制器及交换机 | |
US20090046719A1 (en) | Method and Apparatus for Implementing Multiple Portals into an RBRIDGE Network | |
US20150117451A1 (en) | Communication between hetrogenous networks | |
CN104702438B (zh) | Pe设备管理方法以及装置 | |
US9350651B2 (en) | Packet forwarding device and wireless communication system | |
CN104335537A (zh) | 用于层2多播多路径传送的系统和方法 | |
CN103763207A (zh) | 软件定义网络中的带内控制连接建立方法及设备 | |
CN104301238A (zh) | 一种报文处理方法、装置及系统 | |
CN102255757A (zh) | 一种链路切换方法及其装置 | |
WO2019128699A1 (zh) | 基于流表的数据传送方法 | |
CN104065571A (zh) | 一种广播报文处理方法、装置及系统 | |
CN104244117A (zh) | 光网络单元的级联方法及系统 | |
CN101141383A (zh) | 一种实现二层组播转发路径快速收敛的方法、系统及二层设备 | |
CN100459526C (zh) | 一种确定端口角色的方法 | |
CN105959227B (zh) | 一种单向串行总线网络的拓扑学习方法、装置及系统 | |
CN105162712A (zh) | 一种路由器中分布式协议的实现方法及系统 | |
WO2015003420A1 (zh) | 一种云计算环境的资源部署方法 | |
JP2014140095A (ja) | 通信システムおよびネットワーク中継装置 | |
CN106059876B (zh) | 一种单向串行总线网络的模式切换控制方法、设备及系统 | |
CN104320322A (zh) | 一种报文控制方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190226 Termination date: 20210622 |