CN108337176B - 一种报文处理方法和装置 - Google Patents
一种报文处理方法和装置 Download PDFInfo
- Publication number
- CN108337176B CN108337176B CN201711451081.7A CN201711451081A CN108337176B CN 108337176 B CN108337176 B CN 108337176B CN 201711451081 A CN201711451081 A CN 201711451081A CN 108337176 B CN108337176 B CN 108337176B
- Authority
- CN
- China
- Prior art keywords
- node
- bit string
- bit
- message
- packet
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 238000000034 method Methods 0.000 claims description 48
- 238000004590 computer program Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- 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
- H04L45/16—Multipoint routing
-
- 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
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种报文处理方法,包括:第一节点接收第一报文,第一报文携带第一位串,第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。节点只需要存储第二位串,不需要存储复杂的转发表项,根据第一位串和第二位串确定是否转发报文,对节点的计算能力要求不高。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种报文处理方法和装置。
背景技术
物联网(Internet of Things,IoT)技术近年来发展迅速,在很多IoT场景中,IoT节点的数量非常大,IoT节点通常同时担任数据接收和数据转发的角色,但是IoT节点的硬件能力通常有限,IoT节点的存储能力、计算能力等和传统网络中的数据节点的能力差别较大,另外该类场景下通常采用无线技术组网,无线链路的资源也十分有限。
在IoT场景中,存在针对同一网络中不同功能的设备下发不同业务配置和不同策略的需求,而由于IoT设备功能通常比较简单,因此具有相同配置和策略的设备通常不止一台,即存在组播需求。如果采用现有的组播技术,需要完整的成员关系管理机制和组播报文转发协议,对节点的存储能力和计算能力要求较高,大部分IoT节点无法满足要求。
发明内容
本发明实施例提供一种报文处理方法和装置,用以解决现有组播技术对节点的存储能力和计算能力的要求过高的问题。
第一方面,一种报文处理方法,包括:第一节点接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。
本发明实施例中,第一节点只需要存储第二位串,不需要存储复杂的转发表项,根据第一位串和第二位串确定是否转发报文,对节点的计算能力要求也不高。同时每个位集合对应一个节点组而不是单个节点,因此可以使用较短的位串支持大量的节点。
在一种可能的设计中,所述方法还包括:所述第一节点根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数。
本发明实施例中,第一节点根据第一位串和第三位串确定第一报文的目标节点是否包括第一节点,第三位串的多个位集合可以表示第一节点属于多个节点组,如果一个节点组对应一个组播组,那么如果第一节点属于多个组播组,则不需要为每个组播组存储一个第三位串,对节点的存储要求低。
在一种可能的设计中,所述M个位集合中每个位集合为一个位,所述N个位集合中每个位集合为一个位,所述L个位集合中每个位集合为一个位。
在一种可能的设计中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数。
在一种可能的设计中,所述第一节点的相关节点中包括所述第一节点,所述O个子节点以及所述O个子节点的后代节点。
在一种可能的设计中,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文之前,还包括:获取所述O个子节点中每个子节点对应的位串,每个子节点对应的位串包括多个位集合,每个位集合对应一个节点组,所述位集合的值用于指示所述子节点以及所述子节点的后代节点中是否存在属于对应的节点组的节点;获取第三位串,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;根据所述O个子节点中每个子节点对应的位串和所述第三位串,得到第二位串。
在一种可能的设计中,所述O个子节点中每个子节点对应一个第二位串,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文包括:所述第一节点根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点。
在一种可能的设计中,所述第一节点根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文之前,还包括:从第二节点获取第二节点对应的第二位串,或者从管理节点获取第二节点对应的第二位串。
在一种可能的设计中,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,包括:将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
在一种可能的设计中,所述将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文包括:将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文;所述将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文包括:将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文。
在一种可能的设计中,所述M的值和所述N的值不相等,所述将所述第一位串和第二位串进行按位相与操作或者将所述第一位串和第二位串进行按位相或操作之前,所述方法还包括:如果M大于N,将第二位串进行补齐操作,或者将第一位串进行截短操作;如果M小于N,将第一位串进行补齐操作,或者将第二位串进行截短操作;
在一种可能的设计中,还包括:第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
在一种可能的设计中,第三位串的L个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点属于第一节点组,所述第二位集合指示第一节点属于第二节点组。
在一种可能的设计中,第一位串的M个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一报文的目标节点中包括第一节点组,所述第二位集合指示第一报文的目标节点中包括第二节点组。
在一种可能的设计中,第二位串的N个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点的相关节点中存在属于第一节点组的节点,所述第二位集合指示第一节点的相关节点中存在属于第二节点组的节点。
第二方面,一种报文处理方法,包括:第一节点接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;所述第一节点根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数。
在一种可能的设计中,还包括:所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。
在一种可能的设计中,所述M个位集合中每个位集合为一个位,所述N个位集合中每个位集合为一个位,所述L个位集合中每个位集合为一个位。
在一种可能的设计中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数。
在一种可能的设计中,所述第一节点的相关节点中包括所述第一节点,所述O个子节点以及所述O个子节点的后代节点。
在一种可能的设计中,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文之前,还包括:获取所述O个子节点中每个子节点对应的位串,每个子节点对应的位串包括多个位集合,每个位集合对应一个节点组,所述位集合的值用于指示所述子节点以及所述子节点的后代节点中是否存在属于对应的节点组的节点;获取第三位串,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;根据所述O个子节点中每个子节点对应的位串和所述第三位串,得到第二位串。
在一种可能的设计中,所述O个子节点中每个子节点对应一个第二位串,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文包括:所述第一节点根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点。
在一种可能的设计中,所述第一节点根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文之前,还包括:从第二节点获取第二节点对应的第二位串,或者从管理节点获取第二节点对应的第二位串。
在一种可能的设计中,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,包括:将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
在一种可能的设计中,所述将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文包括:将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文;所述将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文包括:将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文。
在一种可能的设计中,所述M的值和所述N的值不相等,所述将所述第一位串和第二位串进行按位相与操作或者将所述第一位串和第二位串进行按位相或操作之前,所述方法还包括:如果M大于N,将第二位串进行补齐操作,或者将第一位串进行截短操作;如果M小于N,将第一位串进行补齐操作,或者将第二位串进行截短操作;
在一种可能的设计中,还包括:第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
在一种可能的设计中,第三位串的L个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点属于第一节点组,所述第二位集合指示第一节点属于第二节点组。
在一种可能的设计中,第一位串的M个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一报文的目标节点中包括第一节点组,所述第二位集合指示第一报文的目标节点中包括第二节点组。
在一种可能的设计中,第二位串的N个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点的相关节点中存在属于第一节点组的节点,所述第二位集合指示第一节点的相关节点中存在属于第二节点组的节点。
第三方面,一种节点,包括:接收机,用于接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;处理器,用于根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。
在一种可能的设计中,所述处理器还用于根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数。
在一种可能的设计中,所述M个位集合中每个位集合为一个位,所述N个位集合中每个位集合为一个位,所述L个位集合中每个位集合为一个位。
在一种可能的设计中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数。
在一种可能的设计中,所述第一节点的相关节点中包括所述第一节点,所述O个子节点以及所述O个子节点的后代节点。
在一种可能的设计中,所述接收机还用于获取所述O个子节点中每个子节点对应的位串,每个子节点对应的位串包括多个位集合,每个位集合对应一个节点组,所述位集合的值用于指示所述子节点以及所述子节点的后代节点中是否存在属于对应的节点组的节点;所述接收机还用于获取第三位串,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;所述处理器还用于根据所述O个子节点中每个子节点对应的位串和所述第三位串,得到第二位串。
在一种可能的设计中,所述O个子节点中每个子节点对应一个第二位串,所述处理器具体用于根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点。
在一种可能的设计中,所述接收机还用于从第二节点获取第二节点对应的第二位串,或者所述接收机还用于从管理节点获取第二节点对应的第二位串。
在一种可能的设计中,所述处理器具体用于将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者所述处理器具体用于将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
在一种可能的设计中,所述处理器具体用于将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文;或者所述处理器具体用于将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文。
在一种可能的设计中,如果M大于N,所述处理器还用于将第二位串进行补齐操作,或者所述处理器还用于将第一位串进行截短操作;如果M小于N,将第一位串进行补齐操作,或者将第二位串进行截短操作;
在一种可能的设计中,还包括:第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
在一种可能的设计中,第三位串的L个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点属于第一节点组,所述第二位集合指示第一节点属于第二节点组。
在一种可能的设计中,第一位串的M个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一报文的目标节点中包括第一节点组,所述第二位集合指示第一报文的目标节点中包括第二节点组。
在一种可能的设计中,第二位串的N个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点的相关节点中存在属于第一节点组的节点,所述第二位集合指示第一节点的相关节点中存在属于第二节点组的节点。
第四方面,一种节点,所述节点包括:接收机,用于接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;处理器,用于根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数。
在一种可能的设计中,所述处理器还用于根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。
在一种可能的设计中,所述M个位集合中每个位集合为一个位,所述N个位集合中每个位集合为一个位,所述L个位集合中每个位集合为一个位。
在一种可能的设计中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数。
在一种可能的设计中,所述第一节点的相关节点中包括所述第一节点,所述O个子节点以及所述O个子节点的后代节点。
在一种可能的设计中,所述接收机还用于获取所述O个子节点中每个子节点对应的位串,每个子节点对应的位串包括多个位集合,每个位集合对应一个节点组,所述位集合的值用于指示所述子节点以及所述子节点的后代节点中是否存在属于对应的节点组的节点;所述接收机还用于获取第三位串,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;所述处理器还用于根据所述O个子节点中每个子节点对应的位串和所述第三位串,得到第二位串。
在一种可能的设计中,所述O个子节点中每个子节点对应一个第二位串,所述处理器具体用于根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点。
在一种可能的设计中,所述接收机还用于从第二节点获取第二节点对应的第二位串,或者所述接收机还用于从管理节点获取第二节点对应的第二位串。
在一种可能的设计中,所述处理器具体用于将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者所述处理器具体用于将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
在一种可能的设计中,所述处理器具体用于将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文;或者所述处理器具体用于将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文。
在一种可能的设计中,如果M大于N,所述处理器还用于将第二位串进行补齐操作,或者所述处理器还用于将第一位串进行截短操作;如果M小于N,将第一位串进行补齐操作,或者将第二位串进行截短操作;
在一种可能的设计中,还包括:第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
在一种可能的设计中,第三位串的L个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点属于第一节点组,所述第二位集合指示第一节点属于第二节点组。
在一种可能的设计中,第一位串的M个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一报文的目标节点中包括第一节点组,所述第二位集合指示第一报文的目标节点中包括第二节点组。
在一种可能的设计中,第二位串的N个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点的相关节点中存在属于第一节点组的节点,所述第二位集合指示第一节点的相关节点中存在属于第二节点组的节点。
第五方面,一种节点,所述节点包括处理器和存储器,存储器用于存储程序,处理器调用存储器存储的程序,以执行本发明第一方面提供的方法。
第六方面,一种节点,所述节点包括处理器和存储器,存储器用于存储程序,处理器调用存储器存储的程序,以执行本发明第二方面提供的方法。
第七方面,一种节点,所述节点包括用于执行以上第一方面的方法的至少一个处理元件(或芯片)。
第八方面,一种节点,所述节点包括用于执行以上第二方面的方法的至少一个处理元件(或芯片)。
第九方面,一种计算机存储介质,包括程序,所述程序用于执行以上第一方面的方法。
第十方面,一种计算机存储介质,包括程序,所述程序用于执行以上第二方面的方法。
附图说明
图1为本发明实施例提供的一种网络的结构示意图
图2为本发明实施例提供的一种报文处理方法的流程示意图;
图3为本发明实施例提供的一种组播报文的报文格式示意图;
图4A为本发明实施例提供的一种子节点上报第二位串的消息格式;
图4B为本发明实施例提供的另一种子节点上报第二位串的消息格式;
图4C为本发明实施例提供的一种父节点通知更新第三位串的消息格式;
图4D为本发明实施例提供的另一种父节点通知更新第三位串的消息格式;
图5为本发明实施例提供的一种节点的结构示意图;
图6为本发明实施例提供的另一种节点的结构示意图;
图7为本发明实施例提供的再一种节点的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
在对本申请实施例的技术方案进行描述之前,首先介绍本申请实施例中的几个技术术语。
组播:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包,例如在IP网络中将数据包以尽力传送的形式发送到某个确定的节点集合(即组播组)。其基本思想是:组播源只发送一份数据,组播组中的所有接收者都可收到同样的数据拷贝,并且只有组播组内的主机可以接收该数据,而其它主机则不能收到。
树形网络拓扑:形状像一棵倒置的树,顶端是树根,树根以下带分支,每个分支还可再带子分支。父节点可以连接若干个子节点,子节点也可以作为父节点连接若干个子节点,子节点和父节点的概念是相对的。
上行:从子节点到父节点的方向称为上行。
下行:从父节点到子节点的方向称为下行。
位(binary digit,bit):也可以叫作比特,是表示信息的最小单位,是二进制数的一位包含的信息或2个选项中特别指定1个的需要信息量,只有两种状态:0和1。这两个值也可以被解释为逻辑值(真/假、yes/no)、代数符号(+/-)、激活状态(on/off)或任何其他两值属性。
位串:也叫做比特串,由若干位组合起来形成位串。
位集合:一个或多个位可以组成一个位集合,如果多个位组成一个位集合,这多个位可以是连续的位,也可以是离散的位。一个位串可以包括一个或多个位集合。一个位集合对应一个节点组,位集合的值用来表示是否属于对应节点组或者对应节点组是否为目标节点组。
节点组:一个或多个节点可以属于一个节点组,节点组表示网络中节点的分组关系,一个节点可以属于一个节点组,也可以属于多个节点组。
第一位串,一个节点,例如第一节点接收的报文中携带的位串,第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数。
第二位串,第一节点本地的位串,第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。
第三位串,第一节点本地的位串,第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数。
如图1所示,为本发明实施例提供的一种网络的结构示意图,该网络的拓扑结构为树形拓扑结构,包括管理平台、节点S、节点A、节点B、节点D、节点E、节点F、节点G和节点H,其中一个节点连接一个或多个子节点,例如节点S连接两个子节点,分别为节点A和节点B,某些子节点又连接一个或多个子节点,例如节点B又连接节点D和节点E。在树形拓扑结构的网络中,节点有上下行通信方向,上行由子节点向一个父节点或其它前代节点发送数据,下行则由父节点向一个子节点或其它后代节点发送数据。如图1中所示,节点D为节点B的下行节点(子节点),节点B为节点D的上行节点(父节点),将一个节点的子节点以及以此类推的子节点的子节点等,称为一个节点的后代节点,例如节点B的后代节点包括节点D、节点E、节点F、节点G和节点H。
图1所示的树形拓扑结构可以是网络本身的拓扑结构,例如可以是通过低功耗有损网络路由协议(Routing Protocol for Low-Power and Lossy Networks,RPL)协议进行组网,图1所示的树形拓扑结构也可以是在网络本身的拓扑结构基础上生成的覆盖(overlay)树形逻辑拓扑结构,网络本身的物理拓扑结构可以是任意拓扑结构。
本发明实施例可以应用在图1所示的树形拓扑结构网络中,也可以应用在其他拓扑结构的网络中,只要节点之间存在确定的上行和下行关系即可,即存在确定的一条或多条确定的上行和下行路径,例如图1中将节点G配置为节点B的子节点,导致网络拓扑不是树形拓扑结构,但是依旧可以使用本发明实施例,因为存在确定的上行或下行关系,因此可以根据相关节点的信息判断是否转发报文。
本发明实施例可以应用在IoT场景中,但是并不限于IoT场景,其他网络场景也可以使用,本发明实施例对此不作限定。
如图2所示,为本发明实施例提供的一种报文处理方法的流程示意图,包括:
S201,第一节点接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数。
第一节点可以为图1中的任意一个节点,例如可以是节点B,节点B接收来自节点S的第一报文。
每个位集合可以包括一个位,例如第一位串为01000,其中包括5个位集合,0表示否,1表示是,从右向左,第1、2,3,5个位集合的值为0,第4个位集合的值为1,说明第一报文的目标节点中包括第4个位集合对应的节点组,不包括第1、2,3,5个位集合对应的节点组。
每个位集合也可以包括多个位,例如第一位串为1100,其中包括2个位集合,每个位集合包括2个位,00表示否,11表示是,从右向左,第1、2位组成第1个位集合,第3、4位组成第2个位集合,第1个位集合的值为00,第2个位集合的值为11,说明第一报文的目标节点中包括第2个位集合对应的节点组,不包括第1个位集合对应的节点组。
每个位集合包括多个位,不同位集合包括的位可以重叠,例如第一位串为111,其中包括2个位集合,每个位集合包括2个位,00表示否,11表示是,从右向左,第1、2位组成第1个位集合,第1、3位组成第2个位集合,第1个位集合的值为11,第2个位集合的值为11,说明第一报文的目标节点中包括第1、2个位集合对应的节点组。
在一个位串中,不同的位集合包括的位的个数可以相同,也可以不同。对于一个位集合,可以使用全1来表示肯定,并且用全0来表示否定;也可以用全0来表示肯定,并且用全1来表示否定;也可以用0和1的组合来表示肯定,用另一种0和1的组合来表示否定。此外,不同的位集合的表示方式可以相同,也可以不同。
S202,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。
第二节点可以为图1中的节点B的子节点,例如可以是节点D。
每个位集合可以包括一个位,例如第二位串为01000,其中包括5个位集合,0表示否,1表示是,从右向左,第1、2,3,5个位集合的值为0,第4个位集合的值为1,说明第一节点的相关节点中存在属于第4个位集合对应的节点组的节点,不存在属于第1、2,3,5个位集合对应的节点组的节点。
每个位集合也可以包括多个位,例如第二位串为1100,其中包括2个位集合,每个位集合包括2个位,00表示否,11表示是,从右向左,第1、2位组成第1个位集合,第3、4位组成第2个位集合,第1个位集合的值为00,第2个位集合的值为11,说明第一节点的相关节点中存在属于第2个集合对应的节点组的节点,不存在属于第2个位集合对应的节点组的节点。
每个位集合包括多个位,不同位集合包括的位可以重叠,例如第二位串为111,其中包括2个位集合,每个位集合包括2个位,00表示否,11表示是,从右向左,第1、2位组成第1个位集合,第1、3位组成第2个位集合,第1个位集合的值为11,第2个位集合的值为11,说明第一节点的相关节点中存在属于第1、2个集合对应的节点组的节点。
在一个位串中,不同的位集合包括的位的个数可以相同,也可以不同。对于一个位集合,可以使用全1来表示肯定,并且用全0来表示否定;也可以用全0来表示肯定,并且用全1来表示否定;也可以用0和1的组合来表示肯定,用另一种0和1的组合来表示否定。此外,不同的位集合的表示方式可以相同,也可以不同。
第二位串的长度和第一位串的长度可以相同,也可以不同。
第二位串的位集合和节点组的对应关系和第一位串的位集合和节点组的对应关系相同,例如第二位串为01100,0表示否,1表示是,其中包括5个位集合,从右向左,第1个位为第1个位集合,第2个位为第2个位集合,第3个位为第3个位集合,第4个位为第4个位集合,第5个位为第5个位集合,其中第1个位集合对应节点组1,第2个位集合对应节点组2,第3个位集合对应节点组3,第4个位集合对应节点组4,第5个位集合对应节点组5。第一位串为01000,0表示否,1表示是,其中包括5个位集合,从右向左,第1个位为第1个位集合,第2个位为第2个位集合,第3个位为第3个位集合,第4个位为第4个位集合,第5个位为第5个位集合,其中第1个位集合对应节点组1,第2个位集合对应节点组2,第3个位集合对应节点组3,第4个位集合对应节点组4,第5个位集合对应节点组5。因为对应关系相同,因此可以使用按位相与的方法来确定是否转发第一报文,在一些实施例中,可以采用其它按位操作来确定是否转发第一报文。当然,在一些实施例中,第二位串的位集合和节点组的对应关系和第一位串的位集合和节点组的对应关系可以不同,此时无法进行直接进行按位操作。
S203,所述第一节点根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数。
每个位集合可以包括一个位,例如第三位串为01000,其中包括5个位集合,0表示否,1表示是,从右向左,第1、2,3,5个位集合的值为0,第4个位集合的值为1,说明第一节点属于第4个位集合对应的节点组,不属于第1、2,3,5个位集合对应的节点组。
每个位集合也可以包括多个位,例如第三位串为1100,其中包括2个位集合,每个位集合包括2个位,00表示否,11表示是,从右向左,第1、2位组成第1个位集合,第3、4位组成第2个位集合,第1个位集合的值为00,第2个位集合的值为11,说明第一节点属于第2个位集合对应的节点组,不属于第1个位集合对应的节点组。
每个位集合包括多个位,不同位集合包括的位可以重叠,例如第三位串为111,其中包括2个位集合,每个位集合包括2个位,00表示否,11表示是,从右向左,第1、2位组成第1个位集合,第1、3位组成第2个位集合,第1个位集合的值为11,第2个位集合的值为11,说明第一节点属于第1、2个位集合对应的节点组。
在一个位串中,不同的位集合包括的位的个数可以相同,也可以不同。对于一个位集合,可以使用全1来表示肯定,并且用全0来表示否定;也可以用全0来表示肯定,并且用全1来表示否定;也可以用0和1的组合来表示肯定,用另一种0和1的组合来表示否定。此外,不同的位集合的表示方式可以相同,也可以不同。
第三位串的长度和第一位串的长度可以相同,也可以不同。
第三位串的位集合和节点组的对应关系和第一位串的位集合和节点组的对应关系相同,例如第三位串为01100,0表示否,1表示是,其中包括5个位集合,从右向左,第1个位为第1个位集合,第2个位为第2个位集合,第3个位为第3个位集合,第4个位为第4个位集合,第5个位为第5个位集合,其中第1个位集合对应节点组1,第2个位集合对应节点组2,第3个位集合对应节点组3,第4个位集合对应节点组4,第5个位集合对应节点组5。第一位串为01000,0表示否,1表示是,其中包括5个位集合,从右向左,第1个位为第1个位集合,第2个位为第2个位集合,第3个位为第3个位集合,第4个位为第4个位集合,第5个位为第5个位集合,其中第1个位集合对应节点组1,第2个位集合对应节点组2,第3个位集合对应节点组3,第4个位集合对应节点组4,第5个位集合对应节点组5。因为对应关系相同,因此可以使用按位相与的方法来确定是否转发第一报文。当然,在一些实施例中,第三位串的位集合和节点组的对应关系和第一位串的位集合和节点组的对应关系可以不同。
本发明实施例中,可以先执行S202再执行S203,可以先执行S203再执行S202,可以执行S202不执行S203,也可以执行S203不执行S202,本发明实施例对此不作限定。
对于不同的第二位串表示方法,第一节点的相关节点并不相同,下面提供两种典型第二位串表示方法,第一种表示方法中,第一节点的相关节点包括第一节点,第二种表示方法中,第一节点的相关节点不包括第一节点。对于树形拓扑结构或者类树形拓扑结构,第一节点可以包括O个子节点,O个子节点中包括所述第二节点,O为大于等于1的整数,第二节点也可以包括子节点,以此类推,将所有这些节点称为第二节点的后代节点。在第一种表示方法中,第一节点的相关节点包括第一节点、O个子节点以及O个子节点的后代节点。在第二种表示方法中,每个子节点对应一个第二位串,对于第二节点对应的第二位串,第一节点的相关节点包括第二节点以及第二节点的相关节点。还可以采用其他方法表示第二位串,例如第一节点的相关节点包括O个子节点以及O个子节点的后代节点,不包括第一节点。
在下述实施例中,除非特别说明,第一位串、第二位串和第三位串的长度均相等,包括的位集合的个数均相等,每个位集合只包括一个位,使用1表示肯定,0表示否定,第二位串的位集合和节点组的对应关系和第一位串的位集合和节点组的对应关系相同,第三位串的位集合和节点组的对应关系和第一位串的位集合和节点组的对应关系相同。
如表1所示,为本发明实施例提供的一种第二位串和第三位串的示意表格,其中给出了图1所示各节点本地存储的第二位串和第三位串的一种示例。将图1中的节点划分为4个节点组,其中节点A和节点H属于节点组1,节点B属于节点组2,节点E和节点F属于节点组3,节点D和节点G属于节点组4,因此节点A和节点H的第三位串为0001,节点B的第三位串为0010,节点E和节点F的第三位串为0100,节点D和节点G的第三位串为1000。表1的示意表格中,一个子节点对应一个第二位串,具体地,节点D上有2个第二位串,分别为节点F对应的第二位串0100和节点G对应的第二位串1000,节点F对应的第二位串中相关节点包括节点F,节点G对应的第二位串中相关节点包括节点G。节点E上有1个第二位串,为节点H对应的第二位串0001,节点H对应的第二位串中相关节点包括节点H。节点B上有2个第二位串,分别为节点D对应的第二位串1100和节点E对应的第二位串0101,节点D对应的第二位串中相关节点包括节点D、节点F和节点G,节点E对应的第二位串中相关节点包括节点E和节点H。节点S上有2个第二位串,分别为节点A对应的第二位串0001和节点B对应的第二位串1111,节点A对应的第二位串中相关节点包括节点A,节点B对应的第二位串中相关节点包括节点B、节点D、节点F、节点G、节点E和节点H。在表1所示的实施例中,每个子节点对应一个第二位串,即使用了第二位串的第二种表示方法。
在表1所示的实施例中,各节点的第二位串和第三位串的长度都相等,在一些实施例中,也可以不相等。可以只存到表示自己信息的最高位,例如节点B的第三位串为0010,则只存为10即可,后续需要时可以按最大长度在前面补0即可得到0010。
表1
下面以组播报文的目标节点组为1个进行详细说明,实施例A:
步骤A1、各节点上存储有各自的第二位串和第三位串。
步骤A2、管理平台向节点组3发送组播报文,报文中携带第一位串,第一位串为0100,指示该组播报文的目标节点中包括节点组3,不包括节点组1、2、4。
步骤A3、节点S收到来自管理平台的组播报文,将第一位串0100和节点A对应的第二位串0001进行按位相与0100&0001=0000,得到全为0,确定不向节点A转发组播报文;将将第一位串0100和节点B对应的第二位串1111进行按位相与0100&1111=0100,得到不全为0,确定向节点B转发组播报文。节点S没有第三位串,不需要确定组播报文的目标节点是否包括节点S。
步骤A4、节点B收到来自节点S的组播报文,将第一位串0100和节点D对应的第二位串1100进行按位相与0100&1100=0100,得到不全为0,确定向节点D转发组播报文;将第一位串0100和节点E对应的第二位串0101进行按位相与0100&0101=0100,得到不全为0,确定向节点E转发组播报文。节点B将第一位串0100和节点B的第三位串0010进行按位相与0100&0010=0000,得到全为0,确定节点B不是组播报文的目标节点,即组播报文的目标节点不包括节点B。
步骤A5、节点D收到来自节点B的组播报文后,按照和节点B类似的方式操作,确定向节点F转发组播报文,确定不向节点G转发组播报文,确定节点D不是组播报文的目标节点。节点E收到来自节点B的组播报文后,按照和节点B类似的方式操作,确定不向节点H转发组播报文,确定节点E是组播报文的目标节点,接收该组播报文并上送CPU进行处理。
步骤A6、节点F收到来自节点D的组播报文后,按照和节点B类似的方式操作,没有对应的第二位串,确定不转发组播报文,确定节点F是组播报文的目标节点,接收该组播报文并上送CPU进行处理。
下面以组播报文的目标节点组为2个进行详细说明,实施例B:
步骤B1、各节点上存储有各自的第二位串和第三位串。
步骤B2、管理平台向节点组1和节点组3发送组播报文,报文中携带第一位串,第一位串为0101,指示该组播报文的目标节点中包括节点组1和节点组3,不包括节点组2、4。
步骤B3、节点S收到来自管理平台的组播报文,将第一位串0101和节点A对应的第二位串0001进行按位相与0101&0001=0001,得到不全为0,确定向节点A转发组播报文;将第一位串0101和节点B对应的第二位串1111进行按位相与0100&1111=0101,得到不全为0,确定向节点B转发组播报文。节点S没有第三位串,不需要确定组播报文的目标节点是否包括节点S。
步骤B4、节点B收到来自节点S的组播报文,将第一位串0101和节点D对应的第二位串1100进行按位相与0101&1100=0100,得到不全为0,确定向节点D转发组播报文;将将第一位串0100和节点E对应的第二位串0101进行按位相与0101&0101=0101,得到不全为0,确定向节点E转发组播报文。节点B将第一位串0101和节点B的第三位串0010进行按位相与0101&0010=0000,得到全为0,确定节点B不是组播报文的目标节点,即组播报文的目标节点不包括节点B。节点A收到来自节点S的组播报文后,按照和节点B类似的方式操作,没有对应的第二位串,确定不转发组播报文,确定节点A是组播报文的目标节点,接收该组播报文并上送CPU进行处理。
步骤B5、节点D收到来自节点B的组播报文后,按照和节点B类似的方式操作,确定向节点F转发组播报文,确定不向节点G转发组播报文,确定节点D不是组播报文的目标节点。节点E收到来自节点B的组播报文后,按照和节点B类似的方式操作,确定向节点H转发组播报文,确定节点E是组播报文的目标节点,接收该组播报文并上送CPU进行处理。
步骤B6、节点F收到来自节点D的组播报文后,按照和节点B类似的方式操作,没有对应的第二位串,确定不转发组播报文,确定节点F是组播报文的目标节点,接收该组播报文并上送CPU进行处理。
如表2所示,为本发明实施例提供的另一种第二位串和第三位串的示意表格,其中给出了图1所示各节点本地存储的第二位串和第三位串的一种示例。将图1中的节点划分为4个节点组,其中节点A和节点H属于节点组1,节点B属于节点组2,节点E和节点F属于节点组3,节点D和节点G属于节点组4,因此节点A和节点H的第三位串为0001,节点B的第三位串为0010,节点E和节点F的第三位串为0100,节点D和节点G的第三位串为1000。表2的示意表格中,每个节点存储一个第二位串,具体地,节点F上的第二位串为0100,节点F上的第二位串的相关节点包括节点F;节点G上的第二位串为1000,节点G上的第二位串的相关节点包括节点G;节点H上的第二位串为0001,节点H上的第二位串的相关节点为节点H;节点A上的第二位串为0001,节点A上的第二位串的相关节点为节点A。节点D上的第二位串为1100,节点D上的第二位串的相关节点包括节点D、F、G;节点E上的第二位串为0101,节点E上的第二位串的相关节点包括节点E、H。节点B上的第二位串为1111,节点B上的第二位串的相关节点包括节点B、D、F、G、E、H。节点S上的第二位串为1111,节点S上的第二位串的相关节点包括节点S,A、B、D、F、G、E、H。在表1所示的实施例中,每个节点有一个第二位串,即使用了第二位串的第一种表示方法。
表2
下面以组播报文的目标节点组为1个进行详细说明,实施例C:
步骤C1、各节点上存储有各自的第二位串和第三位串。
步骤C2、管理平台向节点组3发送组播报文,报文中携带第一位串,第一位串为0100,指示该组播报文的目标节点中包括节点组3,不包括节点组1、2、4。
步骤C3、节点S收到来自管理平台的组播报文,将第一位串0100和第二位串1111进行按位相与0100&1111=0100,得到不全为0,确定向所有子节点转发组播报文,即向节点A和节点B转发组播报文。节点S没有第三位串,不需要确定组播报文的目标节点是否包括节点S。
步骤C4、节点B收到来自节点S的组播报文,将第一位串0100和第二位串1111进行按位相与0100&1111=0100,得到不全为0,确定向所有子节点转发组播报文,即向节点D和节点E转发组播报文;节点B将第一位串0100和节点B的第三位串0010进行按位相与0100&0010=0000,得到全为0,确定节点B不是组播报文的目标节点,即组播报文的目标节点不包括节点B。节点A收到来自节点S的组播报文,节点A没有子节点,不需要确定是否转发;节点A将第一位串0100和节点A的第三位串0001进行按位相与0100&0001=0000,得到全为0,确定节点A不是组播报文的目标节点,即组播报文的目标节点不包括节点A。
步骤C5、节点D收到来自节点B的组播报文后,按照和节点B类似的方式操作,确定向所有子节点转发组播报文,即向节点F和节点G转发组播报文,同时确定节点D不是组播报文的目标节点。节点E收到来自节点B的组播报文后,按照和节点B类似的方式操作,确定向所有子节点转发组播报文,即向节点H转发组播报文,同时确定节点E是组播报文的目标节点,接收该组播报文并上送CPU进行处理。
步骤C6、节点F收到来自节点D的组播报文后,按照和节点A类似的方式操作,确定节点F是组播报文的目标节点,接收该组播报文并上送CPU进行处理,节点F没有子节点,不需要确定是否转发;节点G收到来自节点D的组播报文后,按照和节点A类似的方式操作,确定节点G不是组播报文的目标节点,节点G没有子节点,不需要确定是否转发;节点H收到来自节点E的组播报文后,按照和节点A类似的方式操作,确定节点H不是组播报文的目标节点,节点H没有子节点,不需要确定是否转发。
下面以组播报文的目标节点组为2个进行详细说明,实施例D:
步骤D1、各节点上存储有各自的第二位串和第三位串。
步骤D2、管理平台向节点组3发送组播报文,报文中携带第一位串,第一位串为0101,指示该组播报文的目标节点中包括节点组1和节点组3,不包括节点组2、4。
步骤D3、节点S收到来自管理平台的组播报文,将第一位串0101和第二位串1111进行按位相与0101&1111=0101,得到不全为0,确定向所有子节点转发组播报文,即向节点A和节点B转发组播报文。节点S没有第三位串,不需要确定组播报文的目标节点是否包括节点S。
步骤D4、节点B收到来自节点S的组播报文,将第一位串0101和第二位串1111进行按位相与0101&1111=0101,得到不全为0,确定向所有子节点转发组播报文,即向节点D和节点E转发组播报文;节点B将第一位串0101和节点B的第三位串0010进行按位相与0101&0010=0000,得到全为0,确定节点B不是组播报文的目标节点,即组播报文的目标节点不包括节点B。节点A收到来自节点S的组播报文,节点A没有子节点,不需要确定是否转发;节点A将第一位串0101和节点A的第三位串0001进行按位相与0101&0001=0001,得到不全为0,确定节点A是组播报文的目标节点,即组播报文的目标节点中包括节点A,接收该组播报文并上送CPU进行处理。
步骤D5、节点D收到来自节点B的组播报文后,按照和节点B类似的方式操作,确定向所有子节点转发组播报文,即向节点F和节点G转发组播报文,同时确定节点D不是组播报文的目标节点。节点E收到来自节点B的组播报文后,按照和节点B类似的方式操作,确定向所有子节点转发组播报文,即向节点H转发组播报文,同时确定节点E是组播报文的目标节点,接收该组播报文并上送CPU进行处理。
步骤D6、节点F收到来自节点D的组播报文后,按照和节点A类似的方式操作,确定节点F是组播报文的目标节点,接收该组播报文并上送CPU进行处理,节点F没有子节点,不需要确定是否转发;节点G收到来自节点D的组播报文后,按照和节点A类似的方式操作,确定节点G不是组播报文的目标节点,节点G没有子节点,不需要确定是否转发;节点H收到来自节点E的组播报文后,按照和节点A类似的方式操作,确定节点H是组播报文的目标节点,接收该组播报文并上送CPU进行处理,节点H没有子节点,不需要确定是否转发。
如图3所示,为本发明实施例提供的一种可能的组播报文的报文格式示意图,其中源地址:表示组播报文的源媒体接入控制(Media Access Control,MAC)地址;目的地址:表示组播报文的目的MAC地址;T:表示报文是否是本发明实施例的组播报文;L:表示第一位串字段的位宽,可以按需设计;第一位串:表示报文的目标节点组;净荷:表示报文的净荷。本发明可能的报文格式不限于图3所示。
本发明实施例中的第一位串、第二位串以及第三位串,可以只取到不为0的位,不需要按照最长位串进行存储或封装,需要进行按位操作时,可以先进行补齐或者截短操作。本发明实施例中位串的长度可变,这意味着可以无限支持分组,不受传统字段定长的约束,如传统协议中,一个字段定宽8bit,那么最多表示8个组,本发明实施例中可以没有上限。
上述实施例A、B、C、D中,节点确定需要转发组播报文时,直接将组播报文进行转发,在一些实施例中,也可以对组播报文进行更改后再转发,例如可以将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,更改后的组播报文包括更新后的第一位串。在一些实施例中,也可以将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,更改后的组播报文包括更新后的第一位串。
在上面的实施例中,节点上已经保存有第二位串和第三位串,对于节点如何获得第二位串和第三位串,下面以第一节点的第二位串中第一节点的相关节点包括第一节点、O个子节点以及O个子节点的后代节点为例,对第二位串和第三位串的获取及更新进行详细说明。
第一种方式:
网络中各节点获得第三位串,可以由管理平台下发配置,也可以由人工手动配置;网络中各节点初始化第二位串等于第三位串;网络中叶子节点将自身的第二位串发送给叶子节点的父节点;父节点收到子节点的第二位串后,将父节点的第二位串和子节点的第二位串进行按位相或地操作,得到父节点的更新后第二位串;重复以上过程,各级节点依次更新第二位串,直至根节点。
第二种方式:
网络中各节点获得第三位串,可以由管理平台下发配置,也可以由人工手动配置;网络中各节点获得第二位串,可以由管理平台下发配置,也可以由人工手动配置。
第三种方式:
网络中各节点获得第二位串及第三位串;管理平台判断当前有需要更新第二位串的节点,向该节点分支发送更新消息,更新消息的目的地址设为沿途最深层节点的地址;转发节点接收更新消息,判断是否需要更新本身的第二位串,判断是否需要转发更新消息,沿途所有节点接收更新消息并更新第二位串。
节点更新第二位串的触发条件可以为:1、节点发送离开消息通知父节点、节点S或者管理平台,管理平台更新全局视图,如果不需要更新网络中各节点的第二位串,则不需要处理,如果需要更新,则触发更新;2、节点意外离开网络,管理平台周期性检测全局视图,发现有节点离开导致第二位串变化,则触发更新机制。
第四种方式:
网络中各节点获得第二位串及第三位串;管理平台判断当前有需要更新第三位串的节点,向该节点分支发送更新消息,更新消息的目的地址设为需要更新第三位串的节点的地址;转发节点接收更新消息,判断是否需要更新本身的第二位串,判断是否需要转发更新消息,沿途所有节点接收更新消息并更新第二位串;目的节点更新第二位串及第三位串。
节点更新第二位串的触发条件可以为:管理平台需要更改某些节点所属的节点组。
对于第一节点的第二位串中第一节点的相关节点为其他情况,例如上述实施例中的第二种表示方法,第二位串和第三位串的获取及更新也可以采用和上面类似的方式,只是第二位串和第三位串的关系不同,根据第三位串更新第二位串的方式也需要改变。
子节点可以将自身的第二位串发送给父节点,父节点进而可以根据子节点的第二位串更新自身的第二位串。子节点将自身的第二位串发送给父节点,所发送的消息可以包括第二位串字段,用于表示子节点的第二位串;可以包括L字段,用于表示第二位串的长度;还可以包括N字段,用于表示该消息携带了子节点的第二位串。
如图4A所示,为本发明实施例提供的一种子节点上报第二位串的消息格式,该消息为一种RPL目的宣告对象(Destination Advertisement Object,DAO)消息,包括第六版因特网协议(Internet Protocol version 6,IPv6)头、互联网控制信息协议版本六(Internet Control Managemet Protocol Version 6,ICMPv6)头、DAO基本信息和DAO可扩展选项字段,其中ICMPv6头字段包括Type字段和Code字段,DAO可扩展选项字段包括上面给出的第二位串字段、L字段和N字段。
如图4B所示,为本发明实施例提供的另一种子节点上报第二位串的消息格式,该消息为一种通用自组织信令协议(Generic Autonomic Signaling Protocol,GRASP)消息,包括IP头、TCP头、消息类型、会话标识、选项、净荷等字段,其中选项字段包括上面给出的第二位串字段、L字段和N字段。
父节点通知某一个后代节点更新第三位串,同时可以通知沿途节点更新第二位串。父节点通知后代节点更新第三位串,所发送的消息可以包括第三位串字段,用于表示子节点的第三位串;可以包括L1字段,用于表示第三位串字段的位宽;可以包括C字段,用于表示该消息是否指示目标节点更新第三位串,例如C=1表示该消息指示目标节点更新第三位串。如果所发送的消息还同时通知沿途节点更新第二位串,可以默认沿途节点根据第三位串字段和自身的第二位串信息更新第二位串,也可以通过额外字段指示沿途节点更新第二位串,例如包括第二位串字段,用于表示沿途节点更新第二位串所需的位串信息;可以包括L2字段,用于表示第二位串字段的长度;可以包括T字段,用于表示沿途节点更新第二位串的计算方式;U字段:用于表示该消息是否指示节点更新第二位串。
如图4C所示,为本发明实施例提供的一种父节点通知更新第三位串的消息格式,该消息为一种RPL面向目的地的有向非循环图消息对象(Directed Acyclic GraphInformation Object,DIO)消息,包括IPv6头、ICMPv6头、DIO基本信息和DIO可扩展选项字段,其中ICMPv6头字段包括Type字段和Code字段,DIO可扩展选项字段包括上面给出的第三位串字段、L1字段、C字段、第二位串字段、L2字段、T字段和U字段。
如图4D所示,为本发明实施例提供的另一种父节点通知更新第三位串的消息格式,该消息为一种通用自组织信令协议(Generic Autonomic Signaling Protocol,GRASP)消息,包括IP头、TCP头、消息类型、会话标识、选项、净荷等字段,其中选项字段包括上面给出的第三位串字段、L1字段、C字段、第二位串字段、L2字段、T字段和U字段。
图4A至图4D给出的消息格式仅仅是示例性的消息格式,其中的字段命名也仅仅是为了各个字段的区分。
本发明实施例给出两种更新第二位串的计算方式,T=0,直接将最新的第二位串以<key,value>的方式放在第二位串字段,指示节点更新第二位串,例如第二位串字段包括<A:1111>,<C:0110>,节点可以直接从第二位串字段提取出自己的更新后的第二位串;T=1:指示节点将自身现有的第二位串和报文中的第三位串字段按位相或,得到更新后的第二位串。
转发节点收到通知后代节点更新第三位串的消息后,例如收到图4C或图4D所示的消息后,判断目标地址不是自己的地址,可以进行如下操作:如果U=0,则可以不解析后续字段,直接转发。如果U=1,表示该报文携带更新消息,继续解析T字段。如果T=0,表示需要从第二位串字段里面提取自己的新第二位串,解析L2和第二位串字段,从中提取标识自己的第二位串。如果T=1,表示根据自身现有的第二位串和报文中的第三位串字段按位相或,得到更新后的第二位串。
目标节点收到通知后代节点更新第三位串的消息后,例如收到图4C或图4D所示的消息后,判断目标地址是自己的地址,可以进行如下操作:如果C=0,表示不需要更新自己的group ID。如果C=1,表示需要更新自己的第三位串。用第三位串字段的内容来作为自己新的第三位串。目标节点的第二位串可以按照转发节点的操作进行更新。
如图5所示,为本发明实施例提供的一种节点的结构示意图,节点500包括:
接收机501,用于接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;
处理器502,用于根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。
在一种可能的设计中,所述处理器502还用于根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数。
在一种可能的设计中,所述M个位集合中每个位集合为一个位,所述N个位集合中每个位集合为一个位,所述L个位集合中每个位集合为一个位。
在一种可能的设计中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数。
在一种可能的设计中,所述第一节点的相关节点中包括所述第一节点,所述O个子节点以及所述O个子节点的后代节点。
在一种可能的设计中,所述接收机501还用于获取所述O个子节点中每个子节点对应的位串,每个子节点对应的位串包括多个位集合,每个位集合对应一个节点组,所述位集合的值用于指示所述子节点以及所述子节点的后代节点中是否存在属于对应的节点组的节点;所述接收机501还用于获取第三位串,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;所述处理器502还用于根据所述O个子节点中每个子节点对应的位串和所述第三位串,得到第二位串。
在一种可能的设计中,所述O个子节点中每个子节点对应一个第二位串,所述处理器502具体用于根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点。
在一种可能的设计中,所述接收机501还用于从第二节点获取第二节点对应的第二位串,或者所述接收机501还用于从管理节点获取第二节点对应的第二位串。
在一种可能的设计中,所述处理器502具体用于将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者所述处理器502具体用于将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
在一种可能的设计中,所述处理器502具体用于将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文;或者所述处理器502具体用于将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文。
在一种可能的设计中,如果M大于N,所述处理器502还用于将第二位串进行补齐操作,或者所述处理器502还用于将第一位串进行截短操作;如果M小于N,将第一位串进行补齐操作,或者将第二位串进行截短操作;
在一种可能的设计中,还包括:第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
在一种可能的设计中,第三位串的L个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点属于第一节点组,所述第二位集合指示第一节点属于第二节点组。
如图6所示,为本发明实施例提供的另一种节点的结构示意图,节点600包括:
接收机601,用于接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;处理器602,用于根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数。
在一种可能的设计中,所述处理器602还用于根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数。
在一种可能的设计中,所述M个位集合中每个位集合为一个位,所述N个位集合中每个位集合为一个位,所述L个位集合中每个位集合为一个位。
在一种可能的设计中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数。
在一种可能的设计中,所述第一节点的相关节点中包括所述第一节点,所述O个子节点以及所述O个子节点的后代节点。
在一种可能的设计中,所述接收机601还用于获取所述O个子节点中每个子节点对应的位串,每个子节点对应的位串包括多个位集合,每个位集合对应一个节点组,所述位集合的值用于指示所述子节点以及所述子节点的后代节点中是否存在属于对应的节点组的节点;所述接收机601还用于获取第三位串,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;所述处理器602还用于根据所述O个子节点中每个子节点对应的位串和所述第三位串,得到第二位串。
在一种可能的设计中,所述O个子节点中每个子节点对应一个第二位串,所述处理器602具体用于根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点。
在一种可能的设计中,所述接收机601还用于从第二节点获取第二节点对应的第二位串,或者所述接收机601还用于从管理节点获取第二节点对应的第二位串。
在一种可能的设计中,所述处理器602具体用于将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者所述处理器602具体用于将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
在一种可能的设计中,所述处理器602具体用于将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文;或者所述处理器602具体用于将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文。
在一种可能的设计中,如果M大于N,所述处理器602还用于将第二位串进行补齐操作,或者所述处理器602还用于将第一位串进行截短操作;如果M小于N,将第一位串进行补齐操作,或者将第二位串进行截短操作;
在一种可能的设计中,还包括:第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
在一种可能的设计中,第三位串的L个位集合中包括第一位集合和第二位集合,所述第一位集合指示第一节点属于第一节点组,所述第二位集合指示第一节点属于第二节点组。
上述节点用于执行前述方法实施例,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上设备的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,发送模块可以为单独设立的元件,也可以集成在上述设备的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述设备的存储器中,由上述设备的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(Digital Signal Processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,SOC)的形式实现。
应理解,本文中涉及的第一、第二、第三、第四以及各种数字编号仅为描述方便进行的区分,并不用来限制本发明实施例的范围。
图7为本发明实施例提供的再一种节点的结构示意图,该装置可以是图1中的节点S、节点A、节点B、节点D、节点E、节点F、节点G和节点H。如图7所示,该装置包括:存储器701和处理器702。
存储器701可以是独立的物理单元,与处理器702可以通过总线连接。存储器701、处理器702也可以集成在一起,通过硬件实现等。
存储器701用于存储实现以上方法实施例,处理器702调用该程序,执行以上方法实施例的操作。
可选地,当上述实施例的业务数据传输方法中的部分或全部通过软件实现时,上述装置也可以只包括处理器。用于存储程序的存储器位于接入设备之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器可以是中央处理器(Central Processing Unit,CPU),网络处理器(Network Processor,NP)或者CPU和NP的组合。
处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(Application-specific Integrated Circuit,ASIC),可编程逻辑器件(ProgrammableLogic Device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD),现场可编程逻辑门阵列(Field-programmable GateArray,FPGA),通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。
存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器还可以包括上述种类的存储器的组合。
本发明实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序用于执行上述实施例提供的业务数据传输方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的业务数据传输方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (30)
1.一种报文处理方法,其特征在于,所述方法包括:
第一节点接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;
所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数;
其中,所述第一节点包括o个子节点,所述o个子节点中包括所述第二节点,o为大于等于1的整数;
其中,所述o个子节点中每个子节点对应一个第二位串,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文包括:
所述第一节点根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点;
其中,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,包括:
将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者
将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
2.根据权利要求1所述的方法,所述方法还包括:
所述第一节点根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;
其中,所述第三位串的位集合和节点组的对应关系和所述第一位串的位集合和节点组的对应关系相同;
其中,根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,包括:将所述第一位串和第三位串进行按位相与操作,根据操作结果确定所述第一报文的目标节点是否包括所述第一节点。
3.根据权利要求2所述的方法,其特征在于,所述M个位集合中每个位集合为一个位,所述N个位集合中每个位集合为一个位,所述L个位集合中每个位集合为一个位。
4.根据权利要求1所述的方法,其特征在于,所述第一节点的相关节点中包括所述第一节点,所述O个子节点以及所述O个子节点的后代节点。
5.根据权利要求4所述的方法,其特征在于,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文之前,还包括:获取所述O个子节点中每个子节点对应的位串,每个子节点对应的位串包括多个位集合,每个位集合对应一个节点组,所述位集合的值用于指示所述子节点以及所述子节点的后代节点中是否存在属于对应的节点组的节点;
获取第三位串,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;
根据所述O个子节点中每个子节点对应的位串和所述第三位串,得到第二位串。
6.根据权利要求1至5任意一项所述的方法,其特征在于,
所述第一节点根据所述第一位串和所述第二节点对应的第二位串,确定是否向所述第二节点发送所述第一报文之前,还包括:
从第二节点获取第二节点对应的第二位串,或者
从管理节点获取第二节点对应的第二位串。
7.根据权利要求1至5任意一项所述的方法,其特征在于,还包括:
第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;
如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;
如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
8.根据权利要求6所述的方法,其特征在于,还包括:
第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;
如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;
如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
9.一种报文处理方法,其特征在于,所述方法包括:
第一节点接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;
所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点,N为大于等于1的整数;
其中,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,包括:
将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者
将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
10.根据权利要求9所述的方法,所述将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文包括:
将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文;
所述将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文包括:
将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文。
11.根据权利要求9所述的方法,其特征在于,所述M的值和所述N的值不相等,所述将所述第一位串和第二位串进行按位相与操作或者将所述第一位串和第二位串进行按位相或操作之前,所述方法还包括:
如果M大于N,将第二位串进行补齐操作,或者将第一位串进行截短操作;
如果M小于N,将第一位串进行补齐操作,或者将第二位串进行截短操作。
12.根据权利要求9至11任意一项所述的方法,其特征在于,还包括:
第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;
如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;
如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
13.一种报文处理方法,其特征在于,所述方法包括:
第一节点接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;
所述第一节点根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;
其中,所述第三位串的位集合和节点组的对应关系和所述第一位串的位集合和节点组的对应关系相同;
其中,所述第一节点根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,包括:将所述第一位串和第三位串进行按位相与操作,根据操作结果确定所述第一报文的目标节点是否包括所述第一节点。
14.根据权利要求13所述的方法,所述方法还包括:
所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数;
其中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数;所述O个子节点中每个子节点对应一个第二位串,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文包括:将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者,将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点;
或者,
其中,所述第一节点根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,包括:将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者,将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
15.一种节点,其特征在于,所述节点包括:
接收机,用于接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;
处理器,用于根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数;
其中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数;
其中,所述O个子节点中每个子节点对应一个第二位串,
所述处理器具体用于将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者,将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点。
16.根据权利要求15所述的节点,所述处理器还用于根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;
其中,所述第三位串的位集合和节点组的对应关系和所述第一位串的位集合和节点组的对应关系相同;
其中,根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,包括:将所述第一位串和第三位串进行按位相与操作,根据操作结果确定所述第一报文的目标节点是否包括所述第一节点。
17.根据权利要求16所述的节点,其特征在于,所述M个位集合中每个位集合为一个位,所述N个位集合中每个位集合为一个位,所述L个位集合中每个位集合为一个位。
18.根据权利要求15所述的节点,其特征在于,所述第一节点的相关节点中包括所述第一节点,所述O个子节点以及所述O个子节点的后代节点。
19.根据权利要求18所述的节点,其特征在于,
所述接收机还用于获取所述O个子节点中每个子节点对应的位串,每个子节点对应的位串包括多个位集合,每个位集合对应一个节点组,所述位集合的值用于指示所述子节点以及所述子节点的后代节点中是否存在属于对应的节点组的节点;
所述接收机还用于获取第三位串,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;
所述处理器还用于根据所述O个子节点中每个子节点对应的位串和所述第三位串,得到第二位串。
20.根据权利要求15至19任意一项所述的节点,其特征在于,
所述接收机还用于从第二节点获取第二节点对应的第二位串,或者
所述接收机还用于从管理节点获取第二节点对应的第二位串。
21.根据权利要求15至19任意一项所述的节点,其特征在于,还包括:
所述接收机还用于,接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;
所述处理器还用于,如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
22.根据权利要求20所述的节点,其特征在于,还包括:
所述接收机还用于,接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;
所述处理器还用于,如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
23.一种节点,其特征在于,所述节点包括:
接收机,用于接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;
处理器,用于根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数;
其中,
所述处理器具体用于将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者
所述处理器具体用于将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
24.根据权利要求23所述的节点,其特征在于,
所述处理器具体用于将所述第一位串和第二位串进行按位相与操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文;或者
所述处理器具体用于将所述第一位串和第二位串进行按位相或操作,得到更新后的第一位串,根据更新后的第一位串确定是否向第二节点发送所述第一报文。
25.根据权利要求23所述的节点,其特征在于,
如果M大于N,所述处理器还用于将第二位串进行补齐操作,或者所述处理器还用于将第一位串进行截短操作;
如果M小于N,将第一位串进行补齐操作,或者将第二位串进行截短操作。
26.根据权利要求23至25任意一项所述的节点,其特征在于,还包括:
第一节点接收位串更新消息,根据所述位串更新消息的目的地址确定所述第一节点是否是所述位串更新消息的目的节点;
如果所述第一节点是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第三位串;
如果所述第一节点不是所述位串更新消息的目的节点,则根据所述位串更新消息更新所述第一节点的第二位串。
27.一种节点,其特征在于,所述节点为第一节点,所述节点包括:
接收机,用于接收第一报文,所述第一报文携带第一位串,所述第一位串包括M个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一报文的目标节点中是否包括对应的节点组,M为大于等于1的整数;
处理器,用于根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,所述第三位串包括L个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点是否属于对应的节点组,L为大于等于1的整数;
其中,所述第三位串的位集合和节点组的对应关系和所述第一位串的位集合和节点组的对应关系相同;
其中,所述第一节点根据所述第一位串和第三位串,确定所述第一报文的目标节点是否包括所述第一节点,包括:将所述第一位串和第三位串进行按位相与操作,根据操作结果确定所述第一报文的目标节点是否包括所述第一节点。
28.根据权利要求27所述的节点,
所述处理器还用于根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,所述第二位串包括N个位集合,每个位集合对应一个节点组,所述位集合的值用于指示第一节点的相关节点中是否存在属于对应的节点组的节点,N为大于等于1的整数;
其中,所述第一节点包括O个子节点,所述O个子节点中包括所述第二节点,O为大于等于1的整数;所述O个子节点中每个子节点对应一个第二位串,所述根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文包括:将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者,将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文,所述第一节点的相关节点包括所述第二节点以及所述第二节点的后代节点;
或者,
其中,所述根据所述第一位串和第二位串,确定是否向第二节点发送所述第一报文,包括:将所述第一位串和第二位串进行按位相与操作,根据操作结果确定是否向第二节点发送所述第一报文,或者,将所述第一位串和第二位串进行按位相或操作,根据操作结果确定是否向第二节点发送所述第一报文。
29.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质存储有计算机程序,所述计算机程序被硬件执行时能够实现权利要求1至12任意一项所述的方法。
30.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质存储有计算机程序,所述计算机程序被硬件执行时能够实现权利要求13至14任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711451081.7A CN108337176B (zh) | 2017-12-27 | 2017-12-27 | 一种报文处理方法和装置 |
EP18893637.1A EP3720068B1 (en) | 2017-12-27 | 2018-12-14 | Message processing method and device |
PCT/CN2018/121249 WO2019128740A1 (zh) | 2017-12-27 | 2018-12-14 | 一种报文处理方法和装置 |
US16/911,152 US11134129B2 (en) | 2017-12-27 | 2020-06-24 | System for determining whether to forward packet based on bit string within the packet |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711451081.7A CN108337176B (zh) | 2017-12-27 | 2017-12-27 | 一种报文处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108337176A CN108337176A (zh) | 2018-07-27 |
CN108337176B true CN108337176B (zh) | 2021-04-20 |
Family
ID=62924347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711451081.7A Active CN108337176B (zh) | 2017-12-27 | 2017-12-27 | 一种报文处理方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11134129B2 (zh) |
EP (1) | EP3720068B1 (zh) |
CN (1) | CN108337176B (zh) |
WO (1) | WO2019128740A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108337176B (zh) * | 2017-12-27 | 2021-04-20 | 华为技术有限公司 | 一种报文处理方法和装置 |
US10432439B2 (en) * | 2017-12-29 | 2019-10-01 | Texas Instruments Incorporated | MSK transceiver of OQPSK data |
EP4059312A1 (en) * | 2019-11-11 | 2022-09-21 | Juganu Ltd. | Systems and methods for operating tree-based wireless networks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209629A (zh) * | 2014-11-06 | 2016-12-07 | 瞻博网络公司 | 确定性的且优化的比特索引显式复制(bier)转发 |
CN106603413A (zh) * | 2015-10-14 | 2017-04-26 | 中兴通讯股份有限公司 | 通过指定路径传输流量的方法和装置 |
CN106817308A (zh) * | 2016-12-30 | 2017-06-09 | 北京华为数字技术有限公司 | 一种组播流的转发***、方法及装置 |
CN107171977A (zh) * | 2016-03-08 | 2017-09-15 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010142354A1 (en) * | 2009-06-09 | 2010-12-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Packet routing in a network |
KR101097660B1 (ko) * | 2009-12-21 | 2011-12-22 | 고려대학교 산학협력단 | 무선 방송 스트림에서 xml 질의 처리 방법 |
WO2011078812A1 (en) * | 2009-12-22 | 2011-06-30 | Bazlamacci Cuneyt F | Systolic array architecture for fast ip lookup |
CN102148746A (zh) * | 2010-02-05 | 2011-08-10 | 中兴通讯股份有限公司 | 一种报文分类方法和*** |
CN102970150A (zh) * | 2011-09-01 | 2013-03-13 | 日电(中国)有限公司 | 用于数据中心的可扩展组播转发方法和设备 |
US9204467B2 (en) * | 2012-12-11 | 2015-12-01 | Blackberry Limited | Communicating encoded traffic data |
US9806897B2 (en) * | 2013-09-17 | 2017-10-31 | Cisco Technology, Inc. | Bit indexed explicit replication forwarding optimization |
US9571897B2 (en) * | 2013-09-17 | 2017-02-14 | Cisco Technology, Inc. | Bit indexed explicit replication for professional media networks |
US11451474B2 (en) * | 2013-09-17 | 2022-09-20 | Cisco Technology, Inc. | Equal cost multi-path with bit indexed explicit replication |
US9832031B2 (en) * | 2014-10-24 | 2017-11-28 | Futurewei Technologies, Inc. | Bit index explicit replication forwarding using replication cache |
US10341221B2 (en) * | 2015-02-26 | 2019-07-02 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
US10447496B2 (en) * | 2017-03-30 | 2019-10-15 | Cisco Technology, Inc. | Multicast traffic steering using tree identity in bit indexed explicit replication (BIER) |
US10469278B2 (en) * | 2017-10-24 | 2019-11-05 | Cisco Technology, Inc. | Method and device for multicast content delivery |
CN108337176B (zh) * | 2017-12-27 | 2021-04-20 | 华为技术有限公司 | 一种报文处理方法和装置 |
-
2017
- 2017-12-27 CN CN201711451081.7A patent/CN108337176B/zh active Active
-
2018
- 2018-12-14 EP EP18893637.1A patent/EP3720068B1/en active Active
- 2018-12-14 WO PCT/CN2018/121249 patent/WO2019128740A1/zh unknown
-
2020
- 2020-06-24 US US16/911,152 patent/US11134129B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209629A (zh) * | 2014-11-06 | 2016-12-07 | 瞻博网络公司 | 确定性的且优化的比特索引显式复制(bier)转发 |
CN106603413A (zh) * | 2015-10-14 | 2017-04-26 | 中兴通讯股份有限公司 | 通过指定路径传输流量的方法和装置 |
CN107171977A (zh) * | 2016-03-08 | 2017-09-15 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN106817308A (zh) * | 2016-12-30 | 2017-06-09 | 北京华为数字技术有限公司 | 一种组播流的转发***、方法及装置 |
Non-Patent Citations (1)
Title |
---|
"一种多维并行报文分类算法";王桐桐;《万方数据库》;20120115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3720068B1 (en) | 2022-07-13 |
CN108337176A (zh) | 2018-07-27 |
US11134129B2 (en) | 2021-09-28 |
EP3720068A1 (en) | 2020-10-07 |
US20200329111A1 (en) | 2020-10-15 |
WO2019128740A1 (zh) | 2019-07-04 |
EP3720068A4 (en) | 2020-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104322019B (zh) | 业务路由***、设备和方法 | |
US11134129B2 (en) | System for determining whether to forward packet based on bit string within the packet | |
Hegeman et al. | Near-constant-time distributed algorithms on a congested clique | |
US20140169189A1 (en) | Network Status Mapping | |
WO2018032962A1 (zh) | 一种信息同步的方法,装置及*** | |
EP3338416B1 (en) | Reducing flooding of link state changes in networks | |
EP3442178B1 (en) | Route searching method and apparatus | |
CN110650094B (zh) | 一种发送报文的方法、设备和*** | |
JP2004208297A (ja) | ツリートポロジーネットワークのデバイスの高速選択システムおよび方法 | |
WO2013052794A1 (en) | Route prefix aggregation using reachable and non-reachable addresses in a computer network | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
CN104521192A (zh) | 用于网络拓扑结构中的链路状态协议的洪泛优化的技术 | |
CN112787938B (zh) | 一种路由表项配置方法及装置 | |
CN108092896B (zh) | 堆叠***和聚合组建立装置 | |
WO2015154393A1 (zh) | 业务节点能力处理方法、装置、业务分类器及业务控制器 | |
CN108259326B (zh) | 路由表更新方法、装置、分配节点以及叶报文转发设备 | |
WO2020220986A1 (zh) | 一种报文处理方法、装置及设备 | |
Hsu et al. | Linear recursive networks and their applications in distributed systems | |
Antikainen et al. | XBF: Scaling up bloom-filter-based source routing | |
JP2017038148A (ja) | ツリー経路決定装置、及びツリー経路決定方法 | |
Kayaturan et al. | Encoding shortest paths in graphs assuming the code is queried using bit-wise comparison | |
CN112039786B (zh) | 基于Torus网络的广播方法 | |
CN114389989B (zh) | 多级下一跳路由处理方法及装置 | |
CN106375410B (zh) | 一种基于内容中心网络的层次拓扑组网方法 | |
CN108809834B (zh) | 一种基于路径扩展与淘汰机制的网络拓扑分散短路径集合计算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |