CN117941333A - 组播数据报文发送的方法、装置、设备和存储介质 - Google Patents
组播数据报文发送的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN117941333A CN117941333A CN202280061234.XA CN202280061234A CN117941333A CN 117941333 A CN117941333 A CN 117941333A CN 202280061234 A CN202280061234 A CN 202280061234A CN 117941333 A CN117941333 A CN 117941333A
- Authority
- CN
- China
- Prior art keywords
- multicast data
- parameter
- header
- path
- data message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 121
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000001514 detection method Methods 0.000 claims description 183
- 230000005540 biological transmission Effects 0.000 claims description 82
- 238000005538 encapsulation Methods 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 25
- 230000010076 replication Effects 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000011144 upstream manufacturing Methods 0.000 description 32
- 238000004364 calculation method Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 125000004122 cyclic group Chemical group 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000004043 dyeing Methods 0.000 description 2
- 238000011065 in-situ storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 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
- 238000012544 monitoring process Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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
- H04L45/16—Multipoint routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种组播数据报文发送方法、装置、设备和存储介质,属于组播技术领域。所述方法应用于BIER域中的叶子节点,所述方法包括:通过第一路径接收第一组播数据报文,所述第一组播数据报文包括第一参数,所述第一参数用于检测性能指标;根据所述第一参数获得第一性能指标;基于所述第一性能指标确定所述第一路径不满足性能需求,通过第二路径接收第二组播数据报文。采用本申请,可以在满足组播业务SLA质量需求的同时,不影响单播业务报文的转发。
Description
本申请涉及组播技术领域,特别涉及一种组播数据报文发送的方法、装置、设备和存储介质。
基于比特位的显式复制(bit indexed explicit replication,BIER)技术是目前被广泛应用的组播技术。
为了满足组播数据流的服务等级协议(Service Level Agreement,SLA)质量需求,在BIER域中的BIER转发路由器(Bit-Forwarding Router,BFR)如果检测到某接口接收到的组播数据流的误码率过高,则说明该接口所在链路存在问题。在此情况下,将该接口调整为关闭(down)状态。这样,该接口不再执行任何数据流的接收,以使得组播数据流可以不经过这条有问题的链路。
然而,直接调整接口状态为down会使该接口所在链路不再执行任何数据流的接收,使原本由该链路传输的全部数据流切换到其他链路传输,这样,极有可能导致其他链路的负载过大。
发明内容
本申请实施例提供了一种组播数据报文发送的方法、装置、设备和存储介质,能够在不调整路由器接口状态的情况下,满足组播业务的SLA。所述技术方案如下:
第一方面,提供了一种组播数据报文发送的方法,该方法应用于BIER域中的叶子节点,方法包括:
叶子节点通过第一路径接收第一组播数据报文。其中,第一组播数据报文包括第一参数,第一参数用于检测性能指标。叶子节点根据第一参数获得第一性能指标。叶子节点基于第一性能指标确定第一路径不满足性能需求,通过第二路径接收第二组播数据报文。
在本申请实施例所示的方案中,叶子节点可以通过第一路径和第二路径接收组播数据报文。在理想状态下,第一路径传输的组播数据报文中携带的组播业务数据和第二路径传输的组播数据报文中携带的组播业务数据是相同的,在正常情况下,叶子节点可以仅对第一路径发送的组播数据报文接收并发送。这样,叶子节点在检测到第一路径不满足性能指标时,可以不再接收并发送该路径发送的组播数据报文,而是切换为接收并发送另一条路径发送的组播数据报文。可见,本方法是针对组播业务的方法,采用本方法可以使组播业务避开性能不满足需求的路径,使得叶子节点接收并发送的组播业务数据是由性能较好的路径传输的,这样,可以保证组播业务的SLA,同时又不会影响网络中承载的单播业务。采用本方案既可以满足组播业务的SLA需求,又不用改变接口状态,进而也就不会出现由于将接口状态置down后,导致链路负载过大的问题。
在一种可能的实现方式中,第一组播数据报文包括BIER头和随流检测(In-situ Flow Information Telemetry,IFIT)头,IFIT头用于携带第一参数。
在本申请实施例所示的方案中,第一路径传输的组播数据报文为BIER报文。可以采用IFIT技术,根据第一组播数据报文的IFIT头中携带的第一参数,确定第一路径的性能指标。这样,性能指标是根据实际的组播数据报文检测得到,准确性更高。此外,IFIT技术仅需要根节点和叶子节点配置IFIT功能即可,需要配置的设备少,配置相对简单。
在一种可能的实现方式中,第一组播数据报文包括BIER头和实时传送协(Real-time Transport Protocol,RTP)头,RTP头用于携带第一参数。或者,第一组播数据报文包括BIER头和传送流TS头,TS头用于携带第一参数。
在本申请实施例所示的方案中,可以采用媒体传输质量指标(enhanced media delivery index,EMDI)技术,根据第一组播数据报文的RTP头或者TS头中携带的第一参数,确定第一路径的性能指标。这样,性能指标是根据实际的组播数据报文检测得到,准确性更高。此外,EMDI技术仅需要根节点和叶子节点配置EMDI功能即可,需要配置的设备少,配置相对简单。
在一种可能的实现方式中,第一组播数据报文为基于互联网协议第6版(Internet Protocol Version 6,IPv6)封装的BIER报文,第一组播数据报文中的BIER头用于携带第一参数。
在本申请实施例所示的方案中,在组播数据报文是基于IPv6封装的BIER报文的情况下,可以使用BIER头中原有的字段携带第一参数,无需对BIER头扩展。
在一种可能的实现方式中,在组播数据报文是基于IPv6封装的BIER报文的情况下,可以使用BIER头中的如下字段携带第一参数:
BIER头中的熵entropy字段,或者BIER头中的BIER转发入口路由器标识(Bit-Forwarding Ingress Router ID,BFIR ID)字段,或者BIER头中的流量等级字段、用于标识标签栈底的字段和生存时间字段,或者BIER头中用于标识标签栈底的字段和生存时间字段。
在一种可能的实现方式中,第一组播数据报文为基于多协议标签交换(Multi-Protocol Label Switching,MPLS)封装的BIER报文,第一组播数据报文中的BIER头用于携带第一参数。
在本申请实施例所示的方案中,在组播数据报文是基于MPLS封装的BIER报文的情况下,对BIER头进行扩展,使用扩展字段携带第一参数。
在一种可能的实现方式中,第一参数包括发送时间戳,相应的,确定性能指标的处理可以如下:
性能指标可以由控制器计算并发送给叶子节点。相应的,处理可以如下:
在接收到第一组播数据报文后,叶子节点确定第一组播数据报文的接收时间戳,并获取第一组播数据报文的IFIT头中携带的发送时间戳。然后,叶子节点将发送时间戳和接收时间戳发送给控制器。控制器根据叶子节点发送的发送时间戳和接收时间戳可以计算出传输时延和时延抖动中的至少一项,并发送给叶子节点。
由于性能指标的计算统一由控制器执行,这样,对叶子节点的计算性能要求较低。
在一种可能的实现方式中,第一参数包括第一序列号,相应的,确定性能指标的处理可以如下:
性能指标可以由控制器计算并发送给叶子节点。相应的,处理可以如下:
在接收到第一组播数据报文后,叶子节点获取第一组播数据报文的RTP头或TS头中携带的第一序列号并将第一序列号发送给控制器,第一序列号可以表示第一组播数据报文的发送次序。控制器根据收到的多个序列号,计算丢包率、乱序等性能指标,并发送给叶子节点。
由于性能指标的计算统一由控制器执行,这样,对叶子节点的计算性能要求较低。
在一种可能的实现方式中,性能指标可以由叶子节点自己计算得到。相应的,在第一参数包括发送时间戳的情况下,确定性能指标的处理可以如下:
在接收到第一组播数据报文后,叶子节点确定第一组播数据报文的接收时间戳,并获取第一组播数据报文的IFIT头中携带的发送时间戳。然后,叶子节点发送时间戳和接收时间戳可以计算出传输时延和时延抖动中的至少一项。
在叶子节点数量较多时,性能指标如果均由控制器计算,可能会导致控制器计算负担过大,导致计算效率较低。由叶子节点计算性能指标可以减少控制器的计算量,提高计算效率。
在一种可能的实现方式中,性能指标可以由叶子节点自己计算得到。相应的,在第一参数包括第一序列号的情况下,确定性能指标的处理可以如下:
在接收到第一组播数据报文后,叶子节点获取第一组播数据报文的RTP头或TS头中携带的第一序列号。然后,叶子节点根据收到的多个序列号,计算丢包率、乱序等性能指标。
在叶子节点数量较多时,性能指标如果均由控制器计算,可能会导致控制器计算负担过大,导致计算效率较低。由叶子节点计算性能指标可以减少控制器的计算量,提高计算效率。
在一种可能的实现方式中,为了避免切换到性能更差的路径,在检测第一路径的性能指标的同时,也可以检测第二路径的性能指标,在确定第二路径的性能指标所指示的性能优于第一路径的性能指标所指示的性能时,如果第一路径不满足性能需求,则可以切换为接收第二路径的组播数据报文。
在一种可能的实现方式中,为了使切换后的第二路径不包含第一路径中的故障链路,第一路径和第二路径可以是控制器规划获得的不重合的路径。或者,第一路径和第二路径属于不同的灵活算法(Flex Algo)切片且是不重合的路径。不重合即为不包含相同链路。
第二方面,提供了一种组播数据报文发送的方法,所述方法应用于BIER域中的根节点,所述方法包括:
获得组播数据报文,所述组播数据报文包括第一参数,所述第一参数用于检测性能指标;
通过第一路径向叶子节点发送所述组播数据报文。
在一种可能的实现方式中,所述组播数据报文包括BIER头和IFIT头,所述IFIT头用于携带所述第一参数。
在一种可能的实现方式中,所述组播数据报文包括BIER头和RTP头,所述RTP头用于携带所述第一参数;或者
所述第一组播数据报文包括BIER头和TS头,所述TS头用于携带所述第一参数。
在一种可能的实现方式中,所述组播数据报文为基于IPv6封装的BIER报文,所述组播数据报文中的BIER头用于携带所述第一参数。
在一种可能的实现方式中,所述BIER头中的entropy字段用于携带所述第一参数;或者
所述BIER头中的BFIR ID字段用于携带所述第一参数;或者
所述BIER头中的TC字段、S字段和TTL字段携带所述第一参数;或者
所述BIER头中的S字段和TTL字段用于携带所述第一参数。
在一种可能的实现方式中,所述组播数据报文为基于MPLS封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
在一种可能的实现方式中,所述第一参数包括发送时间戳和第一序列号中的至少一个。
第三方面,提供了一种组播数据报文发送的装置,该装置设于第一方面或第一方面任一种可选方式中的叶子节点上。该报文转发装置包括至少一个模块,至少一个模块用于实现上述第一方面或第一方面任一种可选方式所提供的方法。在一些实施例中,第三方面提供的组播数据报文发送是装置中的模块通过软件实现,报文转发装置中的单元是程序模块。在另一些实施例中,第三方面提供的报文转发装置中的模块通过硬件或固件实现。第三方面提供的组播数据报文发送的装置的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第四方面,提供了一种组播数据报文发送的装置,该装置设于第二方面或第二方面任一种可选方式中的叶子节点上。该报文转发装置包括至少一个模块,至少一个模块用于实现上述第二方面或第二方面任一种可选方式所提供的方法。在一些实施例中,第四方面提供的组播数据报文发送是装置中的模块通过软件实现,报文转发装置中的单元是程序模块。在另一些实施例中,第四方面提供的报文转发装置中的模块通过硬件或固件实现。第四方面提供的组播数据报文发送的装置的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第五方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述第一方面或第一方面任一种可选方式所提供的方法。第五方面提供的网络设备得到具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第六方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述第二方面或第二方面任一种可选方式所提供的方法。第六方面提供的网络设备得到具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第七方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在网络设备上运行时,使得网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法。
第八方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在网络设备上运行时,使得网络设备执行上述第二方面或第二方面任一种可选方式所提供的方法。
第九方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被网络设备加载并运行时,使得所述网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法。
第十方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被网络设备加载并运行时,使得所述网络设备执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十一方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面及其第一方面任意可能 的实现方式中的方法。
第十二方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十三方面,提供了一种通信系统,该通信系统包括如上第五方面所述的网络设备和如上第六方面所述的网络设备。
图1是本申请实施例提供的一种实施场景的示意图;
图2是本申请实施例提供的一种组播数据流切换的示意图;
图3是本申请实施例提供的一种组播数据报文发送的方法流程示意图;
图4是本申请实施例提供的一种组播数据报文的格式示意图;
图5是本申请实施例提供的一种组播数据报文的格式示意图;
图6是本申请实施例提供的一种组播数据报文发送的方法流程示意图;
图7是本申请实施例提供的一种组播数据报文的格式示意图;
图8是本申请实施例提供的一种组播数据报文的格式示意图;
图9是本申请实施例提供的一种组播数据报文的格式示意图;
图10是本申请实施例提供的一种组播数据报文的格式示意图;
图11是本申请实施例提供的一种组播数据报文的格式示意图;
图12是本申请实施例提供的一种组播数据报文的格式示意图;
图13是本申请实施例提供的一种组播数据报文发送的方法流程示意图;
图14是本申请实施例提供的一种组播数据报文的格式示意图;
图15是本申请实施例提供的一种BIERv6报文的格式示意图;
图16是本申请实施例提供的一种网络拓扑示意图;
图17是本申请实施例提供的一种组播数据报文发送的方法流程示意图;
图18是本申请实施例提供的一种组播数据报文发送的方法流程示意图;
图19是本申请实施例提供的一种组播数据报文发送的装置结构示意图;
图20是本申请实施例提供的一种组播数据报文发送的装置结构示意图;
图21是本申请实施例提供的一种网络设备的结构示意图。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些术语进行解释说明。
(1)基于比特位的显式复制(bit indexed explicit replication,BIER)/基于互联网协议第6版的位索引显示复制(bit indexed explicit replication over ipv6,BIERv6)
BIER/BIERv6是一种基于比特索引进行显式复制的组播转发技术。在BIER域中,为边缘路由器分配唯一的标识,即BIER转发路由器标识符(BIER forwarding router identifier,BFR ID)。BFR ID是取值为1至65535的整数。边缘路由器包括BIER转发入口路由器(bit forwarding ingress router,BFIR)和BIER转发出口路由器(bit forwarding egress router,BFER)。在转发过程中,BFIR需获知将组播数据报文发往哪些BIER节点。在一个BIER域中,组播数据报文发往的BFER集合用一个比特串(bit string)中被置位的比特位来表示,比特串中的某个比特在比特串中的偏移位置对应于某个边缘路由器的BFR ID。BFIR将与至少一个BFER对应的比特串封装在组播数据报文的BIER头中,BFIR与BFER之间的中间BFR可根据接收到的组播数据报文中的比特串来进行复制转发,使得组播数据报文能够转发至相应的BFER。
BIER/BIERv6承载组播业务时,通过边界网关协议(border gateway protocol,BGP)在BFIR和BFER之间建立BGP邻居,利用BGP交互的信息建立BIER转发隧道以实现交互。当某个终端用户要观看某个组播频道节目时,则向其上游的BFER发送频道组加入请求。其中,在互联网协议第4版(internet protocol version 4,IPv4)的情况下,该加入请求为互联网组管理协议(internet group management protocol,IGMP)报文。在互联网协议第6版(internet protocol version 6,IPv6)的情况下,该加入请求为组播侦听者(multicast listener,MLD)报文;若BFER没有终端用户请求的频道数据,则将该加入请求通过BGP协议发送给BFIR。BFIR收到BFER的加入请求后,设置此BFER的BFR ID对应的bit string中的比特为1,这样就生成了发送该频道的组播数据所需的bit string。
BFIR根据比特索引转发表(bit index forwarding table,BIFT)将封装了bit string的组播数据报文发给下游BFR,下游BFR解析bit string并根据BIFT中的表项进行组播数据报文复制和发送,以使得封装有bit string的组播数据报文转发至相应的BFER。BFER解析bit string,检查匹配到组播数据报文的目的节点,则删除包括BIER头的外层封装,继续查找用户组播转发表,根据查找结果将组播数据报文转发给请求用户。
传统的BIER基于多协议标签交换(multi-protocol label switching,MPLS)实现。BIERv6与传统的BIER的最大不同之处在于:BIERv6不再采用MPLS标签,是基于原生IPv6(native IPv6)的组播方案。BIERv6继承了BIER的核心设计理念,它使用比特串将组播数据报文复制给指定的接收者,中间BFR无需建立组播转发树,实现无状态转发。在此基础上,BIERv6技术利用IPv6扩展头携带BIER转发所需的信息,从而无需采用MPLS标签。利用IPv6扩展头的也方便后续网络的演进和叠加,例如IPv6报文的分片重组、组播的网络切片、随流检测等。由于业务只部署在头节点和尾节点,组播业务变化时,中间节点不感知。因此,网络拓扑变化时,无需对大量组播树执行撤销和重建操作,大大地简化了运维工作。BIERv6利用了IPv6扩展头来实现自身的功能。BIERv6使用IPv6扩展头携带BIER选项(也可称为BIER头),与IPv6头共同形成BIERv6报文头。中间BFR读取BIER选项中的bit string,根据BIFT进行复制、转发并更新bit string。
(2)根节点和叶子节点
BFIR又可以称为根节点,BFER又可以称为叶子节点。为了实现组播数据报文的备份,对于一个组播源来说,该组播源的任一组播业务数据可以复制后通过两个根节点进入BIER域进行转发。此处的两个根节点中包括一个主根节点和一个备份根节点。叶子节点可以根据两个根节点的路由优先级来确定主根节点和备份根节点。具体的,根节点和叶子节点之间建立BGP邻居,进而叶子节点可以选择路由优先级高的根节点为主根节点,路由优先级次之的根节点为备份根节点。
(3)以太网链路聚合(ethernet-trunk,ETH-trunk)捆绑接口
trunk是一种捆绑技术。将多个物理接口捆绑成一个逻辑接口,这个逻辑接口称为trunk捆绑接口,捆绑在一起的每个物理接口称为成员接口。采用trunk捆绑技术把多个物理接口捆绑在一起,可以以较低的成本满足提高接口带宽的需求。例如,把3个100Mbit/s的全双工接口捆绑在一起,就可以达到300Mbit/s的最大带宽。ETH-trunk就是将多个以太网接口捆绑成一个逻辑接口,这个逻辑接口称为Eth-trunk捆绑接口,捆绑在一起的每个以太网接口称为成员接口。Eth-trunk捆绑接口可以实现增加带宽、提高可靠性和负载分担的功能。
下面对本申请实施例的应用场景进行举例说明:
图1是本申请实施例提供的一种BIER的实施场景示意图,图1所示的实施场景包括组播源A、根节点A、根节点B、中间节点A、中间节点B、中间节点C、中间节点D、叶子节点A、叶子节点B、叶子节点C、叶子节点D、组播接收设备A、组播接收设备B、组播接收设备C和组播接收设备D。组播源包括但不限于服务器、终端等。组播源A用于生成并发送组播业务数据。组播源A产生的组播业务数据包括但不限于音频数据、视频数据等。根节点A、根节点B、中间节点A、中间节点B、中间节点C、中间节点D、叶子节点A、叶子节点B、叶子节点C、叶子节点D部署在同一BIER域中。这些节点可以为网络设备,例如路由器、交换机等。根节点A、根节点B为BIER域的BFIR。叶子节点A、叶子节点B、叶子节点C、叶子节点D为BIER域的BFER。对于叶子节点A、叶子节点B、叶子节点C、叶子节点D中的任一叶子节点来说,根节点A和根节点B中一个为主根节点,另一个为备份根节点。
根节点A、根节点B接收来自组播源A的相同组播业务数据,并将接收的组播业务数据进行BIER MPLS封装或者BIERv6封装,得到组播数据报文,其中,组播数据报文中包括有BIER头。然后,根节点A、根节点B根据比特索引转发表(bit index forwarding table,BIFT),将封装了bit string的组播数据报文发给下一跳。下一跳可以为中间节点或叶子节点。
中间节点用于根据保存的BIFT,将组播数据报文转发至叶子节点。相应的,在不考虑传输过程中导致的组播数据报文出现误码的情况下,叶子节点可以接收到来自主根节点的组播数据报文以及来自备份根节点的组播数据报文。
叶子节点接收到中间节点或者根节点发送的组播数据报文后,判断BIER头的比特串中与自身的BFR ID对应的比特位为1。叶子节点判断该组播数据报文是来自主根节点还是备份根节点。如果确定该组播数据报文来自主根节点,则对组播数据报文剥离BIER MPLS封装或者BIERv6封装,并查询组播转发表,将剥离BIER MPLS封装或者BIERv6封装后的组播业务数据转发至相应的组播接收设备;如果确定该组播数据报文来自备份根节点,则可以将接收到的组播数据报文丢弃。下面对叶子节点如何判断组播数据报文是来自哪个根节点进行说明:
在组播数据报文是采用BIER MPLS封装的情况下,组播数据报文的BIER头中的BFIR-ID为发送该组播数据报文的根节点的BFR ID;在组播数据报文是采用BIERv6封装的情况下,组播数据报文外层的IPv6头中源地址即为发送该组播数据报文的根节点的地址。
为了实现对组播业务的SLA保障,同时又不影响单播业务,本申请实施例中,叶子节点通过获取第一路径传输的组播数据报文中携带的参数,确定第一路径的性能指标,其中,第一路径为叶子节点和主根节点之间的路径。在第一路径的性能指标不满足性能需求的情况下,叶子节点切换为接收并转发来第二路径的组播数据报文,其中,第二路径为叶子节点和备份 根节点之间的路径。下面结合图2,对叶子节点根据路径性能进行组播数据报文的切换进行说明。
参见图2,假设叶子节点B对应的主根节点和备份根节点分别为:根节点A和根节点B。根节点A和叶子节点B之间通过第一路径传输组播数据报文,根节点B和叶子节点B之间通过第二路径传输组播数据报文。在正常情况下,叶子节点B接收并转发第一路径的组播数据报文,而对于第二路径的组播数据报文可以丢弃。叶子节点B可以根据第一路径传输的组播数据报文中携带的参数,确定第一路径的性能指标,在第一路径的性能指标不满足性能需求的情况下,叶子节点B切换为接收并转发第二路径的组播数据报文。
在本申请实施例中,确定性能指标的方法可以有多种,不同的方法中,确定性能指标时所依据的参数也可以不同。下面结合不同的确定性能指标的方法,对本申请实施例提供的组播数据报文发送的方法进行说明。
确定性能指标方法一、根据随流检测(in-situ flow information telemetry,IFIT)技术确定路径的性能指标:
参见图3,在采用方法一确定性能指标时,本申请实施例中组播数据报文发送的处理流程可以包括如下步骤,下面结合图2所示的实施场景,以根节点A为叶子节点B的主根节点,根节点B为叶子节点B的备份根节点为例,对图3所示的各步骤进行说明:
步骤301、主根节点和叶子节点开启IFIT检测功能。
为了实现IFIT检测,可以预先对根节点A和叶子节点B进行IFIT检测功能配置。例如,根节点A接收IFIT检测指令以确定进行IFIT检测。其中,IFIT检测命令中可以包括组播源信息,组播源信息用于指示对组播源A的组播业务数据执行IFIT检测。根节点A在接收到组播源A发送的组播业务数据后,可以对组播业务数据封装IFIT头,使得生成的组播数据报文中包括有IFIT头。叶子节点B接收IFIT检测指令,使能IFIT检测功能。叶子节点B在接收到包括有IFIT头的组播数据报文后,可以根据IFIT头中携带的参数,执行IFIT检测。上述IFIT检测指令可以由控制器(controller)下发配置的方式实现或者静态配置。例如,控制器可以基于网络配置协议(network configuration protocol,NETCONF)、简单网络管理协议(simple network management protocol)等实现IFIT检测指令的下发。此外,在基于NETCONF实现时,具体可以采用NETCONF结合YANG模型(一种数据建模语言)的方式实现IFIT检测指令的下发。
步骤302、主根节点通过第一路径转发组播数据报文。
举例说明,根节点A在接收到组播源A发送的组播业务数据后,对组播业务数据进行封装,得到组播数据报文。具体的,根节点A可以对接收到的组播业务数据进行BIER MPLS封装或者BIERv6封装。此外,因为根节点A开启了IFIT检测功能,则还要对组播业务数据进行IFIT封装。这样,封装后的组播数据报文中包括有BIER头和IFIT头。在完成封装后,根节点A根据保存的BIFT中的表项,将封装得到的组播数据报文通过第一路径转发给中间节点A。
下面对BIER MPLS封装和IFIT封装结合的组播数据报文的格式进行说明:
参见图4,BIER MPLS封装和IFIT封装结合的组播数据报文中包括以太头、BIER头、IFIT头和互联网协议组播净荷(IP multicast payload),IP multicast payload即为来自组播源的组播业务数据。其中,IFIT头有多种可能的格式,在图4中,示例性的示出了其中两种可能 的格式。参见表1,在IFIT头的格式一中可以包括有如下字段:
表1
字段 | 描述 |
FlowMonID(20bits) | 被监测的业务流标识,设备内唯一 |
L(1bit) | 丢包检测染色标识 |
D(1bit) | 时延检测染色标识 |
HTI(8bits) | 标识扩展头的类型 |
NodeMonID(20bits) | 流监测的设备节点标识 |
F(1bit) | 业务流方向标识 |
P(3bits) | 测量周期 |
T(2bits) | 标识检测类型 |
Ext FM Type(16bits) | 扩展流检测类型标识 |
R(1bit)/Rsv(6bits)/Reversed(16bits) | 保留字段 |
IFIT头的格式二相比于IFIT头的格式一,多出了一个字段timestamp:表示组播数据报文的发送时间戳。
下面对BIERv6封装和IFIT封装结合的组播数据报文的格式进行说明:
参见图5,BIERv6封装和IFIT封装结合的组播数据报文可以包括IPv6头、包含BIER头的IPv6扩展头、包含IFIT头的IPv6扩展头和IP multicast payload。对应于IFIT头的多种可能格式,包含有IFIT头的IPv6扩展头也有多种可能格式。在图5中,示例性的示出了其中两种可能的格式。
根节点A在对来自组播源A的组播业务数据进行IFIT封装时,通过在IFIT头中L字段和D字段添加相应值,来实现传输时延、丢包率等性能指标的检测。
下面对L字段和D字段中添加值的规则进行说明。
一、L字段中添加值的规则:
在接收到组播源A发送的组播业务数据后,根节点A确定当前所处的丢包检测周期为第E个丢包检测周期,如果E为奇数,则在对该组播业务数据进行IFIT封装时,在L字段中添加值“1”;如果E为偶数,则在对该组播业务数据进行IFIT封装时,在L字段中添加值“0”。这样,可以使相邻丢包检测周期发出的组播数据报文中L字段的值不同,而同一个丢包检测周期内发出的组播数据报文中L字段的值相同。
此外,在第E个丢包检测周期结束时,根节点A还可以将第E个丢包检测周期的周期标识、以及第E个丢包检测周期对应的第一报文数目发送给控制器。其中,第一报文数目表示第E个丢包检测周期内发出的净荷来自组播源A的组播数据报文的数目。
二、D字段中添加值的规则(D字段中值为1,则表示组播数据报文可用于时延检测):
对于D字段中添加值的规则可以有如下两种实现方案:
方案一、设置时延检测周期:
在接收到组播源A发送的组播业务数据后,根节点A确定该组播业务数据是当前时延检测周期内第几次接收到的来自组播源A的组播业务数据。如果当前接收到的组播业务数据是当前时延检测周期内第G次接收到的来自组播源A的组播业务数据,则在对该组播业务数据进行IFIT封装时,在D字段中添加值“1”;如果当前接收到的组播业务数据不是当前时延检 测周期内第G次接收到的来自组播源A的组播业务数据,则在对该组播业务数据进行IFIT封装时,在D字段中添加值“0”。其中,G为预设数值,如G=3。
此外,根节点A在对封装后得到的组播数据报文进行转发后,如果该组播数据报文中IFIT头的D字段值为1,则将当前时延检测周期的周期标识、以及该组播数据报文的发送时间戳,发送给控制器。其中,时延检测周期的周期标识用于表示对应的时延检测周期为第几个时延检测周期。
方案二、不设置时延检测周期:
在该方案二中,IFIT头格式可以采用包含有timestamp字段的IFIT头格式,例如,图4或5中示出的IFIT头的格式一。
在接收到组播源A发送的组播业务数据后,根节点A在对该组播业务数据进行IFIT封装时,在D字段添加值“1”,并在IFIT头中的timestamp字段添加发送时间戳。其中,添加的发送时间戳可以为执行IFIT封装时获取的当前时间戳,也可以为执行IFIT封装时获取的当前时间戳再加上预设延迟时长得到的发送时间戳,预设延迟时长为预先设置的从IFIT封装到发送对应的组播数据报文所经历的时长。
在该方案二中,由于在IFIT头中携带了组播数据报文的发送时间戳,则根节点A无需再向控制器发送组播数据报文的发送时间戳。
步骤303、叶子节点通过和主根节点之间的第一路径接收组播数据报文。
举例说明,中间节点B在接收到中间节点A发送的组播数据报文后,解析该组播数据报文中的bit string,并根据BIFT中的表项,对bit string进行更新,更新后的bit string中仅叶子节点B对应的比特位为1。然后,中间节点B将更新后的组播数据报文通过第一路径发送给叶子节点B。进而,叶子节点B可以通过第一路径接收到中间节点B发送的组播数据报文。
步骤304、叶子节点根据通过第一路径接收的组播数据报文中的IFIT头,确定第一路径的性能指标。
举例说明,叶子节点B在接收到组播数据报文后,根据组播数据报文中的BIER头中的BFIR-ID或者IPv6头中的源地址,确定该组播数据报文是来自根节点A。然后,根据该组播数据报文中的IFIT头进行丢包检测和/或时延检测。下面分别对丢包检测和时延检测进行说明:
一、丢包检测:
叶子节点B在确定组播数据报文是来自根节点A之后,确定当前所处的丢包检测周期为第Q个丢包检测周期。如果Q为奇数,则判断该组播数据报文的IFIT头中L字段的值是否为1,如果确定L字段的值为1,则在记录的第Q个丢包检测周期对应的报文数目加一。在Q为奇数的情况下,第Q个丢包检测周期对应的报文数目表示:第Q个丢包检测周期内已经接收到的来自根节点A、携带的IP multicast payload来自组播源A、且L字段值为1的组播数据报文的数目。如果Q为偶数,则判断该组播数据报文的IFIT中L字段的值是否为0,如果确定L字段的值为0,则在记录的第Q个丢包检测周期对应的报文数目加一。在Q为偶数的情况下,第Q个丢包检测周期对应的报文数目表示:第Q个丢包检测周期内已经接收到的来自根节点A、携带的IP multicast payload来自组播源A、且L字段值为0的组播数据报文的数目。
在第Q个丢包检测周期结束后,叶子节点B可以将当前统计的第Q个丢包检测周期的周 期标识和第Q个丢包检测周期对应的第二报文数目发送至控制器。
控制器接收到叶子节点B发送的第Q个丢包检测周期的周期标识和第二报文数目后,查询根节点A发送的第Q个丢包检测周期对应的第三报文数目。然后,控制器根据第二报文数目和第三报文数目,计算第一路径的丢包数。此外,控制器还可以根据计算出的丢包数和第三报文数目,可以计算出丢包率。再然后,控制器可以将第Q个丢包检测周期对应的丢包数和/或丢包率发送给叶子节点B。
二、时延检测:
根据IFIT头是否携带发送时间戳,时延检测的方法也可以不同1。
(一)、IFIT头不携带发送时间戳
叶子节点B在确定组播数据报文是来自根节点A之后,如果确定该组播数据报文的IFIT头中的D字段的值为1,则获取该组播数据报文的接收时间戳,并确定当前所处的时延检测周期为第W个时延检测周期。然后,叶子节点B将获取的接收时间戳和第W个时延检测周期的周期标识发送给控制器。
控制器接收到叶子节点B发送的第W个时延检测周期的周期标识和接收时间戳后,查询根节点A发送的第W个时延检测周期对应的发送时间戳。然后,控制器计算发送时间戳和接收时间戳之间的时间差,作为第一路径在第W个时延检测周期的第一传输时延。此外,控制器还可以获取第一路径在第W-1个时延检测周期的第二传输时延,并计算第一传输时延和第二传输时延之间的时间差,作为第一路径的时延抖动。再然后,控制器可以将计算得到的第一传输时延和/或时延抖动发送给叶子节点B。
(二)、IFIT头携带发送时间戳
叶子节点B在确定组播数据报文是来自根节点A之后,如果确定该组播数据报文的IFIT头中的D字段的值为1,则获取IFIT头中携带的发送时间戳,并获取该组播数据报文的接收时间戳。然后,叶子节点B计算发送时间戳和接收时间戳之间的时间差,作为第一路径的第三传输时延。此外,叶子节点B还可以获取上一次计算得到第一路径的第四传输时延,并计算第三传输时延和第四传输时延之间的时间差,作为第一路径的时延抖动。
在一种可能的实现中,在IFIT头携带发送时间戳的情况下,也可以由控制器计算第一路径的传输时延和/时延抖动。相应的,在此情况下,叶子节点B和控制器的处理可以如下:
叶子节点B在确定组播数据报文是来自对应的主根节点(根节点A)之后,如果确定该组播数据报文的IFIT头中的D字段的值为1,则获取IFIT头中携带的发送时间戳,并获取该组播数据报文的接收时间戳。然后,叶子节点B将发送时间戳和接收时间戳发送给控制器。控制器接收到叶子节点B发送的发送时间戳和接收时间戳后,计算发送时间戳和接收时间戳之间的时间差,作为第一路径的第三传输时延。此外,控制器还可以获取上一次计算得到第一路径的第四传输时延,并计算第三传输时延和第四传输时延之间的时间差,作为第一路径的时延抖动。再然后,控制器将计算得到的第三传输时延和/或时延抖动发送给叶子节点B。
步骤305、如果根据第一路径的性能指标,确定第一路径不满足性能需求,叶子节点则接收备份根节点通过第二路径发送的组播数据报文。
叶子节点B如果根据第一路径的性能指标,确定第一路径不满足性能需求,则可以开始接收根节点B通过第二路径发送的组播数据报文。并对通过第二路径接收的组播数据报文剥离BIER MPLS封装或者BIERv6封装,得到相应的组播业务数据。然后,将得到的组播业务 数据转发给组播接收设备B。此外,对于通过第一路径接收的组播数据报文,叶子节点B可以做丢弃处理。叶子节点B判断第一路径是否满足性能需求的方法可以有多种,下面列举其中几种进行说明:
方法一、根据当前获取到的第一路径的性能指标,判断第一路径是否满足性能需求。
例如,在性能指标包括丢包数的情况下,叶子节点B在获取到第一路径的丢包数后,如果确定该丢包数大于丢包数阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括丢包率的情况下,叶子节点B在获取到第一路径的丢包率后,如果确定该丢包率大于丢包率阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括传输时延的情况下,叶子节点B在获取到第一路径的传输时延后,如果确定该传输时延大于时延阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括时延抖动的情况下,叶子节点B在获取到第一路径的时延抖动后,如果确定该时延抖动大于抖动阈值,则确定第一路径不满足性能需求。
方法二、根据连续多次获取到的第一路径的性能指标,综合判断第一路径是否满足性能需求。
该方法二可以有多种实现方式,下面列举其中两种进行说明:
实施方式一:
例如,在性能指标包括丢包数的情况下,叶子节点B在获取到第一路径的丢包数后,可以再获取在本次之前连续K次获取到的第一路径的丢包数,并根据本次获取的第一路径的丢包数以及在本次之前连续K次获取到的第一路径的丢包数,计算平均丢包数,如果平均丢包数大于丢包数阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括丢包率的情况下,叶子节点B在获取到第一路径的丢包率后,可以再获取在本次之前连续K次获取到的第一路径的丢包率,并根据第一路径的丢包率以及在本次之前连续K次获取到的第一路径的丢包率,计算平均丢包率,如果平均丢包率大于丢包率阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括传输时延的情况下,叶子节点B在获取到第一路径的传输时延后,可以再获取在本次之前连续K次获取到的第一路径的传输时延,并根据本次获取的第一路径的传输时延以及在本次之前连续K次获取到的第一路径的传输时延,计算平均传输时延,如果平均传输时延大于时延阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括时延抖动的情况下,叶子节点B在获取到第一路径的时延抖动后,可以再获取在本次之前连续K次获取到的第一路径的时延抖动,并根据第一路径的时延抖动以及在本次之前连续K次获取到的第一路径的时延抖动,计算平均时延抖动,如果平均时延抖动大于抖动阈值,则确定第一路径不满足性能需求。其中,K为大于或等于1的正整数,可以由技术人员根据实际需求进行配置。
实施方式二:
例如,在性能指标包括丢包数的情况下,叶子节点B在获取到第一路径的丢包数后,可以再获取在本次之前连续K次获取到的第一路径的丢包数,如果这连续K+1次获取到的第一路径的丢包数均大于丢包数阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括丢包率的情况下,叶子节点B在获取到第一路径的丢包率后,可以再获取在本次之前连续K次获取到的第一路径的丢包率,如果这连续K+1次获取到的第一路径的丢包率均大于丢包率阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括传输时延的情况下,叶子节点B在获取到第一路径的传输时延后,可以再获取在本次之前连续K次获取到的第一路 径的传输时延,如果这连续K+1次获取到的第一路径的传输时延均大于时延阈值,则确定第一路径不满足性能需求。又例如,在性能指标包括时延抖动的情况下,叶子节点B在获取到第一路径的时延抖动后,可以再获取在本次之前连续K次获取到的第一路径的时延抖动,如果这连续K+1次获取到的第一路径的时延抖动均大于抖动阈值,则确定第一路径不满足性能需求。
方法三、根据单个流切换检测周期内获取到的第一路径的性能指标,判断第一路径是否满足性能需求。
叶子节点B可以配置有流切换检测周期,该单个流切换检测周期的时长可以大于单个时延检测周期和单个丢包检测周期。叶子节点B可以对单个流切换检测周期内获取到的性能指标进行统计。不同性能指标的统计方法可以不同。例如,如果性能指标中包括丢包数,那么,每当一个流切换检测结束后,叶子节点B可以将该流切换检测周期内获取到的第一路径的丢包数累加。又例如,如果性能指标中包括丢包率,那么,每当一个流切换检测结束后,叶子节点B可以对该流切换检测周期内获取到的第一路径的丢包率求取均值。又例如,如果性能指标中包括传输时延,那么,每当一个流切换检测结束后,叶子节点B可以将该流切换检测周期内获取到的第一路径的传输时延求取均值。又例如,如果性能指标中包括时延抖动,那么,每当一个流切换检测结束后,叶子节点B可以将该流切换检测周期内获取到的时延抖动求取均值。
每当一个流切换检测结束后,叶子节点B如果确定该流切换检测周期统计得到的第一路径的性能指标中有至少一项大于该项对应的阈值,则确定第一路径不满足性能需求。
例如,性能指标包括丢包数、丢包率、传输时延、时延抖动等,丢包数、丢包率、传输时延、时延抖动等各自对应有一个阈值。每当一个流切换检测结束后,叶子节点B如果确定该流切换检测周期统计到的第一路径的丢包数、丢包率、传输时延、时延抖动中至少一项大于对应的阈值,则确定第一路径不满足性能需求。
方法四、根据连续多个流切换检测周期内获取到的第一路径的性能指标,判断第一路径是否满足性能需求。
每当一个流切换检测结束后,叶子节点B对该流切换检测周期内获得的第一路径的性能指标进行统计,并获取该流切换检测周期之前的连续Y个流切换检测周期分别统计得到的第一路径的性能指标。叶子节点B如果判断这Y+1个流切换检测周期中的每个流切换检测周期均有至少一项性能指标大于该项对应的阈值,则确定第一路径不满足性能需求。其中,Y为大于或等于1的正整数,可以由技术人员根据实际需求进行配置。
或者,每当一个流切换检测结束后,叶子节点B可以对该流切换检测周期内获得的第一路径的性能指标进行统计,并获取该流切换检测周期之前的连续Y个流切换检测周期分别统计得到的第一路径的性能指标。然后,叶子节点B对这Y+1个流切换检测周期统计得到的性能指标,进行综合统计。如果Y+1个流切换检测周期综合统计得到的性能指标中有至少一项大于该项对应的阈值,则确定第一路径不满足性能需求。下面对上述“综合统计”进行举例说明。
例如,如果性能指标中包括丢包数,那么,叶子节点B可以将Y+1个流切换检测周期分别统计得到的丢包数累加。又例如,如果性能指标中包括丢包率,那么,叶子节点B可以将Y+1个流切换检测周期分别统计得到的丢包率求取均值。又例如,如果性能指标中包括传输 时延,那么,叶子节点B可以将Y+1个流切换检测周期分别统计得到的传输时延求取均值。又例如,如果性能指标中包括时延抖动,那么,叶子节点B可以将连续Y+1个流切换检测周期分别统计得到的时延抖动求取均值。
可选的,对于备份根节点和叶子节点之间的第二路径,叶子节点也可以确定该第二路径的性能指标,具体的确定方法与上述步骤301-304确定第一路径的性能指标的方法相同,在此不再赘述。此外,确定第二路径的性能指标和确定第一路径的性能指标可以同时进行。
在此情况下,在上述步骤305执行之前,可以先执行如下步骤:确定第二路径的性能指标所指示的性能是否优于第一路径的性能指标所指示的性能,如果第二路径的性能优于第一路径的性能,则继续执行步骤305。
举例说明,叶子节点B确定第一路径的性能指标,并确定第二路径的性能指标。如果确定第二路径的性能指标中的各项均小于第一路径的性能指标,则确定第二路径的性能优于第一路径的性能。
可选的,为了避免在接收来自主根节点的组播数据流和接收来自备根节点的组播数据流之间的频繁切换,还可以在执行步骤305之后,执行如下步骤:确定第二路径的性能指标是否满足性能需求,如果第二路径的性能指标不满足性能需求,则在第一时长后,重新通过第一路径接收的组播数据报文,并对通过第一路径接收的组播数据报文剥离BIER MPLS封装或者BIERv6封装,得到相应的组播业务数据,将得到的组播业务数据转发给相应的组播接收设备。其中,第一时长可以为技术人员根据实际需求预先配置在叶子节点中的。
可选的,如果第二时长内,叶子节点在通过第一路径接收组播数据报文和通过第二路径接收组播数据之间切换的次数达到告警阈值,则叶子节点向网络管理设备上报告警信息,例如,第二时长为1小时,告警阈值为5。其中,告警信息用于指示第一路径和第二路径均存在故障,以提示相关人员尽快进行故障定位以及维修。第二时长和告警阈值均可以为技术人员根据实际需求预先配置在叶子节点中的。
可选的,在控制器还可以呈现主根节点和叶子节点之间的第一路径,以及备份根节点和叶子节点之间的第二路径。在接收到叶子节点上报的告警信号后,相关人员可以通过控制器呈现的第一路径和第二路径之间的重叠情况,快速定位故障并进行维修。
结合IFIT技术实现组播数据流切换,仅需在根节点和叶子节点执行IFIT检测相关处理,无需中间节点参与,且IFIT检测是基于实际的组播数据流实现的,检测得到的性能指标更加准确。
确定性能指标方法二、根据增强的媒体传输质量指标(enhanced media delivery index,EMDI)技术,获取路径的性能指标:
参见图6,在采用方法二确定性能指标时,本申请实施例中组播数据报文发送的处理流程可以包括如下步骤,下面结合图2所示的实施场景,以根节点A为叶子节点B的主根节点,根节点B为叶子节点B的备份根节点为例,对图3所示的各步骤进行说明:
步骤401、主根节点和叶子节点开启EMDI检测功能。
为了实现EMDI检测,可以预先对根节点A和叶子节点B进行EMDI检测功能配置。例根节点A接收EMDI检测指令,其中,EMDI检测命令中可以包括组播源信息,组播源信息用于指示主根节点对组播源A的组播业务数据执行EMDI检测。这样,根节点A在接收到组播源A发送的组播业务数据后,在对该组播业务数据进行BIER MPLS封装或者BIERv6封装 时,可以在BIER头的指定比特位添加值“1”,以表示相应的组播数据报文可用于进行EMDI检测。其中,指定比特位可以为BIER头中操作与维护(OAM)字段或者预留(RSV)字段中的任一未使用比特位。叶子节点B接收EMDI检测指令,使能EMDI检测功能。这样,叶子节点B在接收到BIER头中指定比特位为1的组播数据报文后,可以根据该组播数据报文,执行EMDI检测。需要说明的是,上述EMDI检测指令可以由控制器(controller)下发配置的方式实现或者静态配置。在由控制器下发配置时,具体可以基于网络配置协议(network configuration protocol,NETCONF)、简单网络管理协议(simple network management protocol)等实现EMDI检测指令的下发。此外,在基于NETCONF实现时,具体可以采用NETCONF结合YANG模型的方式实现EMDI检测指令的下发。
步骤402、主根节点通过第一路径转发组播数据报文,其中,组播数据报文中包括有实时传输协议(Real-time Transport Protocol,RTP)头和/或传送流(transport stream,TS)头。
举例说明,组播源A发送给根节点A的组播业务数据可以是基于RTP协议和/或TS协议封装的,则根节点A和根节点B接收到的是包括有RTP头和/或TS头的组播业务数据。根节点A接收来自组播源A的组播业务数据。然后,对接收到的组播业务数据进行BIER MPLS封装或者BIERv6封装,得到组播数据报文。这样,得到的组播数据报文中包括有BIER头、RTP头(和/或TS头)。在完成封装后,根节点A根据保存的BIFT中的表项,将得到的组播数据报文通过第一路径转发给中间节点A。
参见图7,示出了一种基于BIER MPLS封装的且包括RTP头不包括TS头的组播数据报文的格式,包括以太头、BIER头和IP multicast payload,其中,IP multicast payload包括互联网协议(internet protocol)头、用户数据报协议(user datagram protocol,UDP)头/传输控制协议(transmission control protocol,TCP)头、净荷和循环冗余校验(cyclic redundancy check,CRC)数据。参见表2,RTP头可以包括如下字段:
表2
参见图8,示出了一种基于BIERv6封装的且包括RTP头不包括TS头的组播数据报文的格式,在此情况下RTP头的格式和图7中RTP头的格式相同,在此不再赘述。
参见图9,示出了一种基于BIER MPLS封装的包括有TS头不包括RTP头的组播数据报文的格式,通常一个组播数据报文中可以包括有多个TS包(packet),每个TS包包括TS头和净荷。参见表3,TS头可以包括如下字段:
表3
字段 | 描述 |
sync_byte | 同步字节 |
transport_error_indicator | 传输错误指示信息 |
payload_unit_start_indicator | 净荷单元起始指示 |
transport_priority | 传输优先级 |
PID | Packet标识号码 |
transport_scrambling_control | 传送加扰控制 |
adaptation_field_control | 自适应字段控制 |
continuity_counter | 连续计数器 |
adaptation_field | 自适应字段 |
参见图10,示出了一种基于BIERv6封装的且包括TS头不包括RTP头的组播数据报文的格式,在此情况下TS头的格式和图9中TS头的格式相同,在此不再赘述。
参见图11,示出了一种基于BIER MPLS封装的且包括RTP头和TS头的组播数据报文的格式,在此情况下TS头的格式和图9中TS头的格式相同,RTP头的格式和图7所示的RTP头的格式相同,在此均不再赘述。
参见图12,示出了一种基于BIERv6封装的且包括RTP头和TS头的组播数据报文的格式,在此情况下TS头的格式和图9中TS头的格式相同,RTP头的格式和图7所示的RTP头的格式相同,在此均不再赘述。
步骤403、叶子节点通过和主根节点之间的第一路径接收组播数据报文。
举例说明,中间节点B在接收到中间节点A发送的组播数据报文后,解析该组播数据报文中的bit string,并根据BIFT中的表项,对bit string进行更新,更新后的bit string中仅叶子节点B对应的比特位为1。然后,中间节点B将更新后的组播数据报文通过第一路径发送给叶子节点B。进而,叶子节点B可以通过第一路径接收到中间节点B发送的组播数据报文。
步骤404、叶子节点根据通过第一路径接收的组播数据报文中RTP头或TS头,确定第一路径的性能指标。
下面对如何根据RTP头确定第一路径的性能指标进行说明:
一、确定丢包数和丢包率
叶子节点B通过第一路径接收组播数据报文后,确定BIER头中指定比特位的值为1,则说明要对该组播数据报文执行EMDI检测。叶子节点B获取该组播数据报文的RTP头中的第一序列号,并获取前一个通过第一路径接收到的组播数据报文的RTP头中的第二序列号。叶子节点B计算第一序列号和第二序列号的差值绝对值,然后,将计算得到的差值绝对值减一,即可得到这两个组播数据报文之间的丢包数。其中,通过第一路径接收到的组播数据报文是指由主根节点(根节点A)发出且IP multicast payload来自组播源A的组播数据报文。
此外,叶子节点B还可以配置有流切换检测周期。每当一个流切换检测周期结束时,叶子节点B统计该流切换检测周期内通过第一路径接收的组播数据报文的总丢包数,并获取该 流切换检测周期内通过第一路径实际接收到组播数据报文的实际报文数目。然后,计算上述总丢包数和上述实际报文数目之和,作为该流切换检测周期内通过第一路径期望接收到组播数据报文的期望报文数目。再然后,计算上述总丢包数和上述期望报文数目的比值,即可得到该流切换检测周期内第一路径的丢包率。
二、确定乱序数和乱序率:
结合上述确定丢包数和丢包率的处理,叶子节点B获取组播数据报文的RTP头中的第一序列号之后,获取当前流切换检测周期内通过第一路径接收到的组播数据报文中携带的最大序列号,比较第一序列号和最大序列号的大小,如果第一序列号小于最大序列号,则确定存在乱序,将该流切换检测周期内第一路径的乱序数加一。当一个流切换检测周期结束时,计算流切换检测周期内第一路径的乱序数和期望报文数的比值,即可得到该流切换检测周期内第一路径的乱序率。
下面对如何根据TS头确定第一路径的性能指标进行说明:
一、确定丢包数和丢包率
叶子节点B通过第一路径接收组播数据报文后,确定BIER头中指定比特位的值为1,则说明要对该组播数据报文执行EMDI检测。叶子节点B依次获取并记录该组播数据报文的TS头中continuity_counter字段的第一计数值(计数值也可称为序列号)。此处,依次获取的顺序可以为:TS头在组播数据报文中位置由前到后的顺序,在组播数据报文中位置靠前的TS头比位置靠后的TS头先被叶子节点B接收到。然后,获取前一个通过第一路径接收到的TS包中TS的第二计数值,并计算第一计数值和第二计数值的差值绝对值,即可得到这两TS包之间的丢包数。其中,前一个通过第一路径接收到的TS包可能与第一计数值所在的TS包属于同一组播数据报文,也可能属于不同的组播数据报文。通过第一路径接收到的TS包是指由组播源A发出且以主根节点(根节点A)为BIER入口路由器进入BIER域的TS包。
每当一个流切换检测周期结束时,叶子节点B统计该流切换检测周期内通过第一路径接收的TS包的总丢包数,并获取该流切换检测周期内通过第一路径实际接收到TS包的实际包数目。然后,计算上述总丢包数和上述实际包数目之和,作为该流切换检测周期内通过第一路径期望接收到TS包的期望包数目。再然后,计算上述总丢包数和上述期望包数目的比值,即可得到该流切换检测周期内第一路径的丢包率。
二、确定乱序数和乱序率
叶子节点B依次获取并记录组播数据报文的TS头中continuity_counter字段的第一计数值。每当获取并记录一个TS头中的第一计数值之后,获取记录的当前流切换检测周期内通过第一路径接收到的TS头中的最大计数值。比较第一计数值和最大计数值的大小,如果第一计数值小于最大计数值,则确定存在乱序,将该流切换检测周期内第一路径的乱序数加一。当一个流切换检测周期结束时,计算流切换检测周期内第一路径的乱序数和期望包数目的比值,即可得到该流切换检测周期内第一路径的乱序率。
步骤405、如果根据第一路径的性能指标,确定第一路径不满足性能需求,叶子节点则接收备份根节点通过第二路径发送的组播数据报文。
叶子节点B如果根据第一路径的性能指标,确定第一路径不满足性能需求,则可以开始接收根节点B通过第二路径发送的组播数据报文。并对通过第二路径接收的组播数据报文剥离BIER MPLS封装或者BIERv6封装,得到相应的组播业务数据。然后,将得到的组播业务 数据转发给组播接收设备B。此外,对于通过第一路径接收的组播数据报文,叶子节点B可以做丢弃处理。叶子节点B判断第一路径是否满足性能需求的方法可以有多种,下面列举其中几种进行说明:
方法一、每当一个流切换检测周期结束后,叶子节点B如果确定该流切换检测周期内第一路径的性能指标中有至少一项大于该项对应的阈值,则确定第一路径不满足性能需求。
例如,性能指标包括丢包数、丢包率、乱序数、乱序率等,丢包数、丢包率、乱序数、乱序率等各自对应有一个阈值。每当一个流切换检测结束后,叶子节点B如果确定该流切换检测周期统计到的第一路径的丢包数、丢包率、乱序数、乱序率中至少一项大于对应的阈值,则确定第一路径不满足性能需求。
方法二、每当一个流切换检测结束后,叶子节点B对该流切换检测周期内获得的第一路径的性能指标进行计算,并获取该流切换检测周期之前的连续Y个流切换检测周期分别计算得到的第一路径的性能指标。叶子节点B如果判断这Y+1个流切换检测周期中的每个流切换检测周期均有至少一项性能指标大于该项对应的阈值,则确定第一路径不满足性能需求。
或者,每当一个流切换检测结束后,叶子节点B可以对该流切换检测周期内获得的第一路径的性能指标进行计算,并获取该流切换检测周期之前的连续Y个流切换检测周期分别计算得到的第一路径的性能指标。然后,叶子节点B对这Y+1个流切换检测周期统计得到的性能指标,进行综合统计。如果Y+1个流切换检测周期综合统计得到的性能指标中有至少一项大于该项对应的阈值,则确定第一路径不满足性能需求。下面对上述“综合统计”进行举例说明。
例如,如果性能指标中包括丢包数,那么,叶子节点B可以将Y+1个流切换检测周期分别统计得到的丢包数求取均值。又例如,如果性能指标中包括丢包率,那么,叶子节点B可以将Y+1个流切换检测周期分别计算得到的丢包率求取均值。又例如,如果性能指标中包括乱序数,那么,叶子节点B可以将Y+1个流切换检测周期分别计算得到的乱序数累加。又例如,如果性能指标中包括乱序率,那么,叶子节点B可以将连续Y+1个流切换检测周期分别计算得到的乱序率求取均值。
可选的,对于备份根节点和叶子节点之间的第二路径,叶子节点也可以确定该第二路径的性能指标,具体的确定方法与上述步骤401-404确定第一路径的性能指标的方法相同,在此不再赘述。此外,确定第二路径的性能指标和确定第一路径的性能指标可以同时进行。
在此情况下,在上述步骤405执行之前,可以先执行如下步骤:确定第二路径的性能指标所指示的性能是否优于第一路径的性能指标所指示的性能,如果第二路径的性能优于第一路径的性能,则继续执行步骤405。
举例说明,叶子节点B确定第一路径的性能指标,并确定第二路径的性能指标。如果确定第二路径的性能指标中的各项均小于第一路径的性能指标,则确定第二路径的性能优于第一路径的性能。
可选的,为了避免在接收来自主根节点的组播数据流和接收来自备根节点的组播数据流之间的频繁切换,还可以在执行步骤405之后,执行如下步骤:确定第二路径的性能指标是否满足性能需求,如果第二路径的性能指标不满足性能需求,则在第一时长后,重新通过第一路径接收的组播数据报文,并对通过第一路径接收的组播数据报文剥离BIER MPLS封装或者BIERv6封装,得到相应的组播业务数据,将得到的组播业务数据转发给相应的组播接收 设备。其中,第一时长可以为技术人员根据实际需求预先配置在叶子节点中的。
可选的,如果第二时长内,叶子节点在通过第一路径接收组播数据报文和通过第二路径接收组播数据之间切换的次数达到告警阈值,则叶子节点向网络管理设备上报告警信息,例如,第二时长为1小时,告警阈值为5。其中,告警信息用于指示第一路径和第二路径均存在故障,以提示相关人员尽快进行故障定位以及维修。第二时长和告警阈值均可以为技术人员根据实际需求预先配置在叶子节点中的。
可选的,在控制器还可以呈现主根节点和叶子节点之间的第一路径,以及备份根节点和叶子节点之间的第二路径。在接收到叶子节点上报的告警信号后,相关人员可以通过控制器呈现的第一路径和第二路径之间的重叠情况,快速定位故障并进行维修。
结合EMDI技术实现组播数据流切换,仅需在根节点和叶子节点执行EMDI检测相关处理,无需中间节点参与。
确定性能指标方法三、中间节点统计和上游节点间链路的丢包数并由组播数据报文携带到叶子节点,叶子节点根据组播数据报文中携带的丢包数,获取根节点和叶子节点间第一路径的丢包数。
参见图13,在采用方法三确定性能指标时,本申请实施例中组播数据报文发送的处理流程可以包括如下步骤,下面结合图2所示的实施场景,以根节点A为叶子节点B的主根节点,根节点B为叶子节点B的备份根节点为例,对图13所示的各步骤进行说明:
步骤501、主根节点通过第一路径发送组播数据报文。
举例说明,根节点A在接收到组播源A发送的组播业务数据后,对组播业务数据进行封装,得到第一组播数据报文。然后,根节点A根据保存的BIFT中的表项,将第一组播数据报文通过第一路径转发给中间节点A。
具体的,根节点A可以对接收到的组播业务数据进行BIER MPLS封装或者BIERv6封装,得到第一组播数据报文,第一组播数据报文中包括BIER头。根节点A在进行BIER MPLS封装或者BIERv6封装时,在BIER头中用于携带丢包数的字段添加初始值,用于携带丢包数的字段不同,初始值也可以不同,在下面的描述中将对携带丢包数的不同字段添加的初始值进行说明。下面分别对两种封装下,BIER头中用于携带丢包数的字段进行说明。
一、BIER MPLS封装:
参见图14,示出了一种BIER MPLS封装下的BIER头格式。参见表4,BIER头中可以包括如下字段:
表4
在采用BIER MPLS封装的情况下,需要对BIER头进行扩展,在扩展字段中携带丢包数。例如,如图14所示,可以在bit string字段前扩展4个字节,在扩展的4个字节中选择多个比特用于携带丢包数。示例性的,可以选择这4个字节中的后一个或两个字节用于携带丢包数。当选择其中一个字节携带丢包数时,为了能表示更大的丢包数,可以对实际的丢包数除以指定系数并取整后,再携带在该字节中。其中,指定系数可以由技术人员根据实际需求配置,例如,指定系数为20。
二、BIERv6封装:
参见图15,示出了一种BIERv6封装下的组播数据报文格式。BIERv6封装的组播数据报文主要由IPv6头、包括BIER头的IPv6扩展头和IP multicast payload组成。参见表5,在IPv6头中可以包括如下字段:
表5
字段 | 描述 |
versin | 版本 |
traffic class | 流类型 |
flow label | 流标签 |
payload length | 净荷长度 |
next hearder | 下一个头 |
hop limit | 跳数限制 |
source address | 源地址 |
destination address | 目的地址 |
在IPv6扩展头中可以包括BIER头和如下表6所示的字段:
表6
字段 | 描述 |
Next header | 下一个头 |
Hdr Ext Len | 选项报头的长度 |
option type | 选项类型 |
option length | 选项长度 |
在采用BIERv6封装的情况下,可以选择TC+S+TTL或者entropy或者BFIR-ID,来携带丢包数。
例如,可以使用TS+S+TTL共12比特来携带实际的丢包数。又例如,可以使用S+TTL来标识丢包数。当S为0时,TTL数值表示实际的丢包数;当S为1时,TTL数值乘以指定系数表示实际的丢包数。示例性的,指定系数可以为20。又例如,可以使用Entropy的20 比特来携带实际的丢包数。又例如,使用BFIR-ID的16比特来携带实际的丢包数。
根节点A在进行BIER MPLS封装或者BIERv6封装时,除S字段以外,其余用于携带丢包数的字段的初始值均可以为0,对于S字段来说,如果配置为携带实际的丢包数,则将S字段初始值置为0,如果配置为不携带实际丢包数,则将S字段初始值置为1。
步骤502、中间节点记录和上游节点之间链路的丢包数。
其中,上游节点可能为中间节点,也可能为根节点。
举例说明,中间节点A的入接口对接收到的报文(包括组播数据报文、单播报文等)进行循环冗余校验(Cyclic Redundancy Check,CRC),根据校验结果统计该入接口对应链路的丢包数,每个入接口统计的丢包数是一直累加的。对于每个入接口来说,每当达到一个统计周期,中间节点A的组播业务模块向该入接口获取当前统计的第一丢包数,并计算第一丢包数和上一统计周期获取到的该入接口统计的第二丢包数的差值,得到该入接口新增的丢包数。然后,组播业务模块将该入接口新增的丢包数发送给中间节点的转发芯片。转发芯片记录该入接口新增的丢包数。其中,组播业务模块为执行组播业务的软件模块。
同样的,中间节点B的入接口也对接收到的报文(包括组播数据报文、单播报文等)进行循环冗余校验(Cyclic Redundancy Check,CRC),根据校验结果统计该入接口对应链路的丢包数,每个入接口统计的丢包数是一直累加的。对于每个入接口来说,每当达到一个统计周期,中间节点B的组播业务模块向该入接口获取当前统计的第三丢包数,并计算第三丢包数和上一统计周期获取到的该入接口统计的第四丢包数的差值,得到该入接口新增的丢包数。然后,组播业务模块将该入接口新增的丢包数发送给中间节点的转发芯片。转发芯片记录该入接口新增的丢包数。
此外,叶子节点B也按照步骤502的处理记录和上游节点(中间节点B)之间链路的丢包数。
步骤503、中间节点接收组播数据报文,并对组播数据报文的BIER头中用于携带丢包数的字段中的值进行更新。
举例说明,中间节点A通过第一入接口接收第一组播数据报文。然后,中间节点A的转发芯片查询是否记录有第一入接口新增的丢包数,如果记录有第一入接口新增的丢包数,则将记录的第一入接口新增的丢包数累加到该第一组播数据报文的BIER头中用于携带丢包数的字段中,得到第二组播数据报文。此外,转发芯片对将记录的第一入接口新增的丢包数删除。然后,中间节点A根据BIFT中的表项,将第二组播数据报文发送给中间节点B。
中间节点B通过第二入接口接收第二组播数据报文。然后,中间节点B的转发芯片查询是否记录有第二入接口新增的丢包数,如果记录有第二入接口新增的丢包数,则将记录的第二入接口新增的丢包数累加到该第二组播数据报文的BIER头中用于携带丢包数的字段中,得到第三组播数据报文。此外,转发芯片对将记录的第一入接口新增的丢包数删除。然后,中间节点A根据BIFT中的表项,将第三组播数据报文发送给叶子节点B。
需要说明的是,如果BIER头携带实际的丢包数,则可以直接将查询到的新增的丢包数累加到BIER头中用于携带丢包数的字段中;如果BIER头携带除以指定系数后的丢包数,则要先对查询到的新增的丢包数除以指定系数并向上取整后,再累计到BIER头中用于携带丢包数的字段中。
步骤504、叶子节点通过第一路径接收组播数据报文,根据该组播数据报文的BIER头中 携带的丢包数,确定第一路径的丢包数。
举例说明,叶子节点B通过第三入接口接收第三组播数据报文。获取第三组播数据报文的BIER头中携带的丢包数,并查询第三入接口新增的丢包数,根据携带的丢包数和查询到新增的丢包数,确定第一路径的丢包数,此外,在计算第一路径的丢包数之后,可以将记录的第三入接口新增的丢包数删除。具体的,如果BIER头携带实际的丢包数,则可以将携带的丢包数和查询到新增的丢包数直接相加,作为第一路径的丢包数;如果BIER头携带除以指定系数后的丢包数,则可以将携带的丢包数和查询到新增的丢包数相加后,再乘以指定系数,得到第一路径的丢包数。
在一种可能的实现中,叶子节点B可以配置有流切换检测周期,相应的,叶子节点B可以按照流切换检测周期统计第一路径的丢包数。
举例说明,叶子节点B每通过第三入接口接收到一个组播数据报文后,获取并记录该组播数据报文的BIER头中携带的第一丢包数。每当一个流切换检测周期结束后,将该流切换检测周期内记录的第一丢包数、以及该流切换检测周期内记录的第三接收新增的第二丢包数相加,得到该流切换检测周期内第一路径的丢包数。此外,在计算第一路径的丢包数之后,可以将记录的第三入接口新增的丢包数删除。
步骤505、如果第一路径的性能不满足性能需求,叶子节点则接收备份根节点通过第二路径发送的组播数据报文。
举例说明,在叶子节点B未配置流切换检测周期的情况下,判断第一路径的性能是否满足性能需求的方法可以如下:
叶子节点B在获取到第一路径的丢包数后,如果确定该丢包数大于丢包数阈值,则确定第一路径不满足性能需求。
或者,叶子节点B在获取到第一路径的丢包数后,可以再获取本次之前连续K次计算得到的第一路径的丢包数。并根据本次计算得倒的第一路径的丢包数以及在本次之前连续K次计算得到的第一路径的丢包数,计算平均丢包数。如果平均丢包数大于丢包数阈值,则确定第一路径不满足性能需求。
在叶子节点B配置有流切换检测周期的情况下,判断一路径的性能是否满足性能需求的方法可以如下:
每当一个流切换检测周期结束后,叶子节点B计算该流切换检测周期内第一路径的丢包数,如果确定该丢包数大于丢包数阈值,则确定第一路径不满足性能需求。
或者,每当一个流切换检测周期结束后,叶子节点B计算该流切换检测周期内第一路径的丢包数,并获取该流切换检测周期之前的连续Y个流切换检测周期分别计算得到的第一路径的丢包数。然后,叶子节点B对这Y+1个流切换检测周期计算得到的丢包数计算平均丢包数。如果平均丢包数大于丢包数阈值,则确定第一路径不满足性能需求。
又或者,每当一个流切换检测周期结束后,叶子节点B计算该流切换检测周期内第一路径的丢包数,并获取该流切换检测周期之前的连续Y个流切换检测周期分别计算得到的第一路径的丢包数。如果这Y+1个流切换检测周期计算得到的丢包数均大于丢包数阈值,则确定第一路径不满足性能需求。
可选的,对于备份根节点和叶子节点之间的第二路径,叶子节点也可以确定该第二路径的性能指标,具体的确定方法与上述步骤401-404确定第一路径的性能指标的方法相同,在 此不再赘述。此外,确定第二路径的性能指标和确定第一路径的性能指标可以同时进行。
在此情况下,在上述步骤505执行之前,可以先执行如下步骤:确定第二路径的性能是否优于第一路径的性能,如果第二路径的性能优于第一路径的性能,则继续执行步骤505。
举例说明,叶子节点B确定第一路径的丢包数,并确定第二路径的丢包数。如果确定第二路径的丢包数小于第一路径的丢包数,则确定第二路径的性能优于第一路径的性能。
可选的,为了避免在接收来自主根节点的组播数据流和接收来自备根节点的组播数据流之间的频繁切换,还可以在执行步骤505之后,执行如下步骤:确定第二路径的性能指标是否满足性能需求,如果第二路径的性能指标不满足性能需求,则在第一时长后,重新通过第一路径接收的组播数据报文,并对通过第一路径接收的组播数据报文剥离BIER MPLS封装或者BIERv6封装,得到相应的组播业务数据,将得到的组播业务数据转发给相应的组播接收设备。其中,第一时长可以为技术人员根据实际需求预先配置在叶子节点中的。
可选的,如果第二时长内,叶子节点在通过第一路径接收组播数据报文和通过第二路径接收组播数据之间切换的次数达到告警阈值,则叶子节点向网络管理设备上报告警信息,例如,第二时长为1小时,告警阈值为5。其中,告警信息用于指示第一路径和第二路径均存在故障,以提示相关人员尽快进行故障定位以及维修。第二时长和告警阈值均可以为技术人员根据实际需求预先配置在叶子节点中的。
可选的,在控制器还可以呈现主根节点和叶子节点之间的第一路径,以及备份根节点和叶子节点之间的第二路径。在接收到叶子节点上报的告警信号后,相关人员可以通过控制器呈现的第一路径和第二路径之间的重叠情况,快速定位故障并进行维修。
结合确定性能指标方法三实现的组播数据流切换,组播数据报文作为性能指标的载体,对于根节点和叶子节点之间路径的性能指标由该路径上传输的所有报文共同计算得到,这些报文不仅仅包括组播数据报文还包括单播报文,可以更加及时发现路径故障,并及时切换组播数据流。
在一种可能的实现方式中,为了使组播数据流切换后,可以尽量避开故障链路,在规划第一路径和第二路径时,可以使第一路径和第二路径之间不存在相同链路。具体的规划方法可以有多种,下面列举其中几种进行说明:
方法一、在规划某叶子节点和主根节点间的第一路径以及和备份根节点的第二路径时,可以在BIER域中的各节点上逐台进行配置,配置时指定目的节点为该叶子节点的组播数据报文转发的出接口和下一跳的目的地址。通过这样的逐跳配置,可以严格规划第一路径和第二路径,使得两条路径不存在相同链路。
方法二、可以在控制器界面上指定主根节点和叶子节点之间的一路径、以及备份根节点和叶子节点之间的第二路径,并通过控制器对路径上的各节点统一下发配置。
通过控制器统一指定路径并自动下发配置,对于用户来说可操作性和可部署性更强。
方法三、可以由控制器收集BIER域的网络拓扑,控制器根据网络拓扑、主根节点的位置、备份根节点的位置以及叶子节点的位置自动算路,算路时约束第一路径和第二路径不存在相同链路。然后,将算好的第一路径和第二路径通过自动配置的方式配置到路径所经过的各节点上。
方法四、通过灵活算法(FlexAlgo)实现。
在BIER域的网络拓扑中创建两个不重叠FlexAlgo切片,其中,一个FlexAlgo切片承载 主根节点到叶子节点的组播数据报文,即,主根节点和叶子节点间的第一路径属于该FlexAlgo切片。另一个FlexAlgo切片承载备份根节点到叶子节点的组播数据报文,即,备份根节点和叶子节点间的第二路径属于该FlexAlgo切片。
在创建这每个FlexAlgo切片时,可以设置度量类型(Metric-Type)、计算类型(Calc-Type)和约束条件(constraint)。其中,Metric-Type表示在FlexAlgo切片中计算路径时的度量值,例如,时延(delay)、开销(cost)等。Calc-Type表示在FlexAlgo切片中计算路径时使用的算法,如最短路径优先(Shortest Path First,SPF)算法。Constraint可以为链路约束,约束了FlexAlgo切片所包含的链路。下面结合图16,列举两个FlexAlgo切片示例:
一、FlexAlgo切片128的定义(Definition of Flex-Algo 128):
Metric-type:cost;
Calc-Type:SPF;
Constraint:包括图16中链路1、链路2、链路3、链路4、链路5、链路6、链路7;
二、Definition of Flex-Algo 129:
metric type:delay;
calc-type:SPF;
constraint:包括图16中链路11、链路12、链路13、链路14、链路15、链路16、链路17;
上述两个FlexAlgo切片不包含相同链路,这样,分别在这两个FlexAlgo切片的拓扑上计算的第一路径和第二路径也不包含相同链路。
本申请实施例还提供了一种组播数据报文发送的方法,在该方法中,BIER域中相邻两节点之间可以检测连接的各链路的性能指标,并在某链路的性能指标不满足性能需求时,不通过该链路转发组播数据报文,此外,即使检测到链路的性能指标不满足性能需求,也可以不将该链路在上游节点对应的接口关闭,这样,既可以不影响单播数据报文通过该接口转发,又可以满足组播数据报文的SLA需求。
根据判断性能指标是否满足性能需求的执行主体不同,该方法的执行步骤也可以不同。
方法一、以上游节点为执行主体,判断性能指标是否满足性能需求。结合图2所示的实施场景,上游节点可以为BIER域中除叶子节点A、叶子节点B、叶子节点C和叶子节点D以外的其他节点,下游节点可以为BIER域中除根节点A和根节点B以外的其他节点。例如,上游节点为根节点A,则对应的下游节点为中间节点A;又例如,上游节点为中间节点A,则对应的下游节点为中间节点B;又例如,上游节点为中间节点B,则对应的下游节点为叶子节点B。
参见图17,参见图17,该方法可以包括如下处理步骤:
步骤901、下游节点检测和上游节点之间链路的性能指标,并将检测的性能指标上报到上游节点。
其中,下游节点可以为中间节点或者叶子节点,上游节点可以为根节点或者中间节点。性能指标可以包括丢包率、传输时延、时延抖动、乱序等中的至少一项。
在实施中,在上游节点和下游节点间存在多条等价路径的情况下,下游节点可以通过双向转发检测机制(Bidirectional Forwarding Detection,BFD),周期性的检测和上游节点间各等价路径的性能指标。然后,将检测到的每条等价路径的性能指标通过对应的接口上报到上 游节点。
在上游节点和下游节点间存在ETH-Trunk捆绑接口的情况下,下游节点可以通过BFD,周期性的检测ETH-Trunk捆绑接口的各成员接口所在链路的性能指标。然后,将检测到的性能指标,通过对应的成员接口上报到上游节点。
在上报性能指标时,可以将性能指标携带在BFD消息中上报到上游节点。
步骤902、上游节点判断接收到的性能指标是否满足性能需求。
在实施中,上游节点接收到性能指标后,判断该性能指标是否满足性能需求。例如,性能指标包括丢包率、传输时延、时延抖动、乱序等,每项性能指标对应有一个阈值,如果性能指标大于对应的阈值,则确定性能指标不满足性能需求。
步骤903、上游节点在转发组播数据报文时,规避不满足性能需求的链路。
在实施中,在上游节点和下游节点间存在多条等价路径的情况下,上游节点在转发组播数据报文时,可以查询到多个出接口,每个出接口对应一条等价路径。上游节点判断查询出的多个接口中是否存在所在链路不满足性能需求的出接口,如果确定出存在某出接口所在链路不满足性能需求,则在除该出接口以外的出接口中,选择一个出接口,作为组播数据报文的出接口发送该组播数据报文。
在上游节点和下游节点间存在ETH-Trunk捆绑接口的情况下,游节点在转发组播数据报文时,如果查询到出接口为ETH-Trunk捆绑接口,则判断该ETH-Trunk捆绑接口的各成员接口中,是否存在所在链路不满足性能需求的成员接口,如果确定出存在某成员接口所在链路不满足性能需求,则在除该成员接口以外的成员接口中,选择一个成员接口,作为组播数据报文的出接口。
方法二、以下游节点为执行主体,判断性能指标是否满足性能需求。
参见图18,该方法可以包括如下处理步骤:
步骤1001、下游节点检测和上游节点之间链路的性能指标。
步骤1002、下游节点确定不满足性能需求链路,通过该链路向上游节点发送链路故障指示信息。
其中,链路故障指示信息用于指示链路不满足性能需求。
在实施中,下游节点根据检测到的性能指标,判断链路是否满足性能需求。在确定链路不满足性能需求的情况下,通过该链路向上游节点发送链路故障指示信息。具体的,可以将链路故障指示信息携带在BFD消息中,上报到上游节点。
步骤1003、上游节点在转发组播数据报文时,规避不满足性能需求的链路。
需求说明的是,步骤1001检测性能指标的方法和步骤901检测性能指标的方法相同,步骤1002判断是否满足性能需求的方法和步骤902判断是否满足性能需求的方法相同,步骤1003的处理和步骤903的处理相同,在此均不做赘述。
通过上述方法,可以无需改变接口的状态,只是在转发组播数据报文时避开不满足性能需求链路,可以在满足组播业务的SLA需求的同时,不影响单播业务。
基于相同的技术构思,本申请实施例还提供了一种组播数据报文发送的装置,该装置1900可以应用于上述如图2所示的叶子节点B中,如图19所示,所述装置1900包括:
接收模块1910,用于通过第一路径接收第一组播数据报文,所述第一组播数据报文包括第一参数,所述第一参数用于检测性能指标;具体可以实现上述步骤303、403、504中的接 收功能,以及其他隐含步骤。
获取模块1920,用于根据所述第一参数获得第一性能指标;具体可以实现上述步骤304、404、504中的获取功能,以及其他隐含步骤。
所述接收模块1910,还用于基于所述第一性能指标确定所述第一路径不满足性能需求,通过第二路径接收第二组播数据报文。具体可以实现上述步骤305、405、505中的获取功能,以及其他隐含步骤。
在一种可能的实现方式中,所述第一组播数据报文包括BIER头和IFIT头,所述IFIT头用于携带所述第一参数。
在一种可能的实现方式中,所述第一组播数据报文包括BIER头和RTP头,所述RTP头用于携带所述第一参数;或者
所述第一组播数据报文包括BIER头和TS头,所述TS头用于携带所述第一参数。
在一种可能的实现方式中,所述第一组播数据报文为基于IPv6封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
在一种可能的实现方式中,所述BIER头中的熵entropy字段用于携带所述第一参数;或者
所述BIER头中的BFIR ID字段用于携带所述第一参数;或者
所述BIER头中的TC字段、S字段和TTL字段携带所述第一参数;或者
所述BIER头中的S字段和TTL字段用于携带所述第一参数。
在一种可能的实现方式中,所述第一组播数据报文为基于MPLS封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
在一种可能的实现方式中,所述第一参数包括发送时间戳,所获取模块1920用于:
确定所述第一组播数据报文的接收时间戳;
将所述发送时间戳和所述接收时间戳发送给控制器;
接收所述控制器发送的所述第一性能指标,所述第一性能指标用于表示所述第一路径的传输时延和时延抖动中的至少一项。
在一种可能的实现方式中,所述第一参数包括第一序列号,所述获取模块1920用于:
将所述第一序列号发送给控制器;
接收所述控制器发送的所述第一性能指标,所述第一性能指标用于表示所述第一路径的丢包率和乱序的至少一项。
在一种可能的实现方式中,所述第一参数包括发送时间戳,所述获取模块1920用于:
确定所述第一组播数据报文的接收时间戳;
基于所述发送时间戳和所述接收时间戳生成所述第一性能指标,所述第一性能指标用于表示所述第一路径的传输时延和时延抖动中的至少一项。
在一种可能的实现方式中,所述第一参数包括第一序列号,所述获取模块1920用于:
基于所述第一序列号生成第一性能指标,所述第一性能指标用于表示所述第一路径的丢包率和乱序的至少一项。
在一种可能的实现方式中,所述第二组播数据报文还包括第二参数,所述获取模块1920,还用于:
基于所述第二参数获得第二性能指标,所述第二性能指标指示的性能优于所述第一性能 指标指示的性能。
在一种可能的实现方式中,所述第一路径和所述第二路径是控制器规划获得的不重合的路径;或者
所述第一路径和所述第二路径属于不同的FlexAlgo切片且不重合的路径。
需要说明的是:上述实施例提供的组播数据报文发送的装置在执行组播数据报文发送时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的组播数据报文发送的装置与组播数据报文发送的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于相同的技术构思,本申请实施例还提供了一种组播数据报文发送的装置,该装置2000可以应用于上述如图2所示的根节点A、根节点B中,如图20所示,所述装置2000包括:
获取模块2010,用于获得组播数据报文,所述组播数据报文包括第一参数,所述第一参数用于检测性能指标;具体可以实现上述步骤302、402、501中的获取功能,以及其他隐含步骤。
发送模块2020,用于通过第一路径向叶子节点发送所述组播数据报文。具体可以实现上述步骤302、402、501中的方式功能,以及其他隐含步骤。
在一种可能的实现方式中,所述组播数据报文包括BIER头和随流检测IFIT头,所述IFIT头用于携带所述第一参数。
在一种可能的实现方式中,所述组播数据报文包括BIER头和RTP头,所述RTP头用于携带所述第一参数;或者
所述第一组播数据报文包括BIER头和传送流TS头,所述TS头用于携带所述第一参数。
在一种可能的实现方式中,所述组播数据报文为基于互联网协议第6版IPv6封装的BIER报文,所述组播数据报文中的BIER头用于携带所述第一参数。
在一种可能的实现方式中,所述BIER头中的entropy字段用于携带所述第一参数;或者
所述BIER头中的BIER转发入口路由器标识BFIR ID字段用于携带所述第一参数;或者
所述BIER头中的TC字段、S字段和TTL字段携带所述第一参数;或者
所述BIER头中的S字段和TTL字段用于携带所述第一参数。
在一种可能的实现方式中,所述组播数据报文为基于多协议标签交换封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
在一种可能的实现方式中,所述第一参数包括发送时间戳和第一序列号中的至少一个。
需要说明的是:上述实施例提供的组播数据报文发送的装置在执行组播数据报文发送时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的组播数据报文发送的装置与组播数据报文发送的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图21是本申请实施例提供的一种网络设备的结构示意图。网络设备700包括至少一个处理器701、存储器702以及至少一个网络接口703。
处理器701例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器701包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器702例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器702独立存在,并通过内部连接704与处理器701相连接。或者,可选地存储器702和处理器701集成在一起。
网络接口703使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口703例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络网络接口或其组合等。
在一些实施例中,处理器701包括一个或多个CPU,如附图21中所示的CPU0和CPU1。
在一些实施例中,网络设备700可选地包括多个处理器,如附图21中所示的处理器701和处理器705。这些处理器中的每一个例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,网络设备700还包括内部连接704。处理器701、存储器702以及至少一个网络接口703通过内部连接704连接。内部连接704包括通路,在上述组件之间传送信息。可选地,内部连接704是单板或总线。可选地,内部连接704分为地址总线、数据总线、控制总线等。
在一些实施例中,网络设备700还包括输入输出接口706。输入输出接口706连接到内部连接704上。
可选地,处理器701通过读取存储器702中保存的程序代码710实现上述实施例中的方法,或者,处理器701通过内部存储的程序代码实现上述实施例中的方法。在处理器701通过读取存储器702中保存的程序代码710实现上述实施例中的方法的情况下,存储器702中保存实现本申请实施例提供的方法的程序代码。
处理器701实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实 施例描述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolID State Disk(SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (40)
- 一种组播数据报文发送的方法,其特征在于,所述方法应用于基于比特位索引的显式复制BIER域中的叶子节点,所述方法包括:通过第一路径接收第一组播数据报文,所述第一组播数据报文包括第一参数,所述第一参数用于检测性能指标;根据所述第一参数获得第一性能指标;基于所述第一性能指标确定所述第一路径不满足性能需求,通过第二路径接收第二组播数据报文。
- 根据权利要求1所述的方法,其特征在于,所述第一组播数据报文包括BIER头和随流检测IFIT头,所述IFIT头用于携带所述第一参数。
- 根据权利要求1所述的方法,其特征在于,所述第一组播数据报文包括BIER头和实时传送协议RTP头,所述RTP头用于携带所述第一参数;或者所述第一组播数据报文包括BIER头和传送流TS头,所述TS头用于携带所述第一参数。
- 根据权利要求1所述的方法,其特征在于,所述第一组播数据报文为基于互联网协议第6版IPv6封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
- 根据权利要求4所述的方法,其特征在于,所述BIER头中的熵entropy字段用于携带所述第一参数;或者所述BIER头中的BIER转发入口路由器标识BFIR ID字段用于携带所述第一参数;或者所述BIER头中的流量等级TC字段、用于标识标签栈底的S字段和生存时间TTL字段携带所述第一参数;或者所述BIER头中的S字段和TTL字段用于携带所述第一参数。
- 根据权利要求1所述的方法,其特征在于,所述第一组播数据报文为基于多协议标签交换MPLS封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
- 根据权利要求1至6任一所述的方法,其特征在于,所述第一参数包括发送时间戳,所述根据所述第一参数获得第一性能指标包括:确定所述第一组播数据报文的接收时间戳;将所述发送时间戳和所述接收时间戳发送给控制器;接收所述控制器发送的所述第一性能指标,所述第一性能指标用于表示所述第一路径的传输时延和时延抖动中的至少一项。
- 根据权利要求1至6任一所述的方法,其特征在于,所述第一参数包括第一序列号, 所述根据所述第一参数获得第一性能指标包括:将所述第一序列号发送给控制器;接收所述控制器发送的所述第一性能指标,所述第一性能指标用于表示所述第一路径的丢包率和乱序中的至少一项。
- 根据权利要求1至6任一所述的方法,其特征在于,所述第一参数包括发送时间戳,所述根据所述第一参数获得第一性能指标包括:确定所述第一组播数据报文的接收时间戳;基于所述发送时间戳和所述接收时间戳生成所述第一性能指标,所述第一性能指标用于表示所述第一路径的传输时延和时延抖动中的至少一项。
- 根据权利要求1至6任一所述的方法,其特征在于,所述第一参数包括第一序列号,所述根据所述第一参数获得第一性能指标包括:基于所述第一序列号生成第一性能指标,所述第一性能指标用于表示所述第一路径的丢包率和乱序中的至少一项。
- 根据权利要求1至10任一所述的方法,其特征在于,所述第二组播数据报文还包括第二参数,所述方法还包括:基于所述第二参数获得第二性能指标,所述第二性能指标指示的性能优于所述第一性能指标指示的性能。
- 根据权利要求1至11任一所述的方法,其特征在于,所述第一路径和所述第二路径是控制器规划获得的不重合的路径;或者所述第一路径和所述第二路径属于不同的灵活算法FlexAlgo切片且不重合的路径。
- 一种组播数据报文发送的方法,其特征在于,所述方法应用于BIER域中的根节点,所述方法包括:获得组播数据报文,所述组播数据报文包括第一参数,所述第一参数用于检测性能指标;通过第一路径向叶子节点发送所述组播数据报文。
- 根据权利要求13所述的方法,其特征在于,所述组播数据报文包括BIER头和IFIT头,所述IFIT头用于携带所述第一参数。
- 根据权利要求13所述的方法,其特征在于,所述组播数据报文包括BIER头和RTP头,所述RTP头用于携带所述第一参数;或者所述第一组播数据报文包括BIER头和TS头,所述TS头用于携带所述第一参数。
- 根据权利要求13所述的方法,其特征在于,所述组播数据报文为基于IPv6封装的BIER报文,所述组播数据报文中的BIER头用于携带所述第一参数。
- 根据权利要求16所述的方法,其特征在于,所述BIER头中的entropy字段用于携带所述第一参数;或者所述BIER头中的BFIR ID字段用于携带所述第一参数;或者所述BIER头中的TC字段、S字段和TTL字段携带所述第一参数;或者所述BIER头中的S字段和TTL字段用于携带所述第一参数。
- 根据权利要求13所述的方法,其特征在于,所述组播数据报文为基于MPLS封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
- 根据权利要求13至18任一所述的方法,其特征在于,所述第一参数包括发送时间戳和第一序列号中的至少一个。
- 一种组播数据报文发送的装置,其特征在于,所述装置设置在BIER域中的叶子节点,所述装置包括:接收模块,用于通过第一路径接收第一组播数据报文,所述第一组播数据报文包括第一参数,所述第一参数用于检测性能指标;获取模块,用于根据所述第一参数获得第一性能指标;所述接收模块,还用于基于所述第一性能指标确定所述第一路径不满足性能需求,通过第二路径接收第二组播数据报文。
- 根据权利要求20所述的装置,其特征在于,所述第一组播数据报文包括BIER头和IFIT头,所述IFIT头用于携带所述第一参数。
- 根据权利要求20所述的装置,其特征在于,所述第一组播数据报文包括BIER头和RTP头,所述RTP头用于携带所述第一参数;或者所述第一组播数据报文包括BIER头和TS头,所述TS头用于携带所述第一参数。
- 根据权利要求20所述的装置,其特征在于,所述第一组播数据报文为基于IPv6封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
- 根据权利要求23所述的装置,其特征在于,所述BIER头中的熵entropy字段用于携带所述第一参数;或者所述BIER头中的BFIR ID字段用于携带所述第一参数;或者所述BIER头中的TC字段、S字段和TTL字段携带所述第一参数;或者所述BIER头中的S字段和TTL字段用于携带所述第一参数。
- 根据权利要求20所述的装置,其特征在于,所述第一组播数据报文为基于MPLS封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
- 根据权利要求20至25任一所述的装置,其特征在于,所述第一参数包括发送时间戳,所获取模块用于:确定所述第一组播数据报文的接收时间戳;将所述发送时间戳和所述接收时间戳发送给控制器;接收所述控制器发送的所述第一性能指标,所述第一性能指标用于表示所述第一路径的传输时延和时延抖动中的至少一项。
- 根据权利要求20至25任一所述的装置,其特征在于,所述第一参数包括第一序列号,所述获取模块用于:将所述第一序列号发送给控制器;接收所述控制器发送的所述第一性能指标,所述第一性能指标用于表示所述第一路径的丢包率和乱序的至少一项。
- 根据权利要求20至25任一所述的装置,其特征在于,所述第一参数包括发送时间戳,所述获取模块用于:确定所述第一组播数据报文的接收时间戳;基于所述发送时间戳和所述接收时间戳生成所述第一性能指标,所述第一性能指标用于表示所述第一路径的传输时延和时延抖动中的至少一项。
- 根据权利要求20至25任一所述的装置,其特征在于,所述第一参数包括第一序列号,所述获取模块用于:基于所述第一序列号生成第一性能指标,所述第一性能指标用于表示所述第一路径的丢包率和乱序的至少一项。
- 根据权利要求20至29任一所述的装置,其特征在于,所述第二组播数据报文还包括第二参数,所述获取模块,还用于:基于所述第二参数获得第二性能指标,所述第二性能指标指示的性能优于所述第一性能指标指示的性能。
- 根据权利要求20至30任一所述的装置,其特征在于,所述第一路径和所述第二路径是控制器规划获得的不重合的路径;或者所述第一路径和所述第二路径属于不同的FlexAlgo切片且不重合的路径。
- 一种组播数据报文发送的装置,其特征在于,所述装置设置于BIER域中的根节点,所述装置包括:获取模块,用于获得组播数据报文,所述组播数据报文包括第一参数,所述第一参数用于检测性能指标;发送模块,用于通过第一路径向叶子节点发送所述组播数据报文。
- 根据权利要求32所述的装置,其特征在于,所述组播数据报文包括BIER头和随流检测IFIT头,所述IFIT头用于携带所述第一参数。
- 根据权利要求32所述的装置,其特征在于,所述组播数据报文包括BIER头和RTP头,所述RTP头用于携带所述第一参数;或者所述第一组播数据报文包括BIER头和传送流TS头,所述TS头用于携带所述第一参数。
- 根据权利要求32所述的装置,其特征在于,所述组播数据报文为基于互联网协议第6版IPv6封装的BIER报文,所述组播数据报文中的BIER头用于携带所述第一参数。
- 根据权利要求35所述的装置,其特征在于,所述BIER头中的entropy字段用于携带所述第一参数;或者所述BIER头中的BIER转发入口路由器标识BFIR ID字段用于携带所述第一参数;或者所述BIER头中的TC字段、S字段和TTL字段携带所述第一参数;或者所述BIER头中的S字段和TTL字段用于携带所述第一参数。
- 根据权利要求32所述的装置,其特征在于,所述组播数据报文为基于多协议标签交换封装的BIER报文,所述第一组播数据报文中的BIER头用于携带所述第一参数。
- 根据权利要求32至37任一所述的装置,其特征在于,所述第一参数包括发送时间戳和第一序列号中的至少一个。
- 一种网络设备,其特征在于,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至19任一所述的组播数据报文发送的方法。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令在网络设备上运行时,使得所述网络设备执行如权利要求1至19中任一项所述的组播数据报文发送的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/089652 WO2023206165A1 (zh) | 2022-04-27 | 2022-04-27 | 组播数据报文发送的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117941333A true CN117941333A (zh) | 2024-04-26 |
Family
ID=88516690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280061234.XA Pending CN117941333A (zh) | 2022-04-27 | 2022-04-27 | 组播数据报文发送的方法、装置、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117941333A (zh) |
WO (1) | WO2023206165A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10447496B2 (en) * | 2017-03-30 | 2019-10-15 | Cisco Technology, Inc. | Multicast traffic steering using tree identity in bit indexed explicit replication (BIER) |
CN112242932B (zh) * | 2019-07-16 | 2022-05-03 | 中国电信股份有限公司 | 时延检测方法和系统 |
CN113162855B (zh) * | 2020-01-22 | 2022-12-27 | 华为技术有限公司 | 组播报文检测方法、网络设备和系统 |
CN112511365A (zh) * | 2020-03-24 | 2021-03-16 | 中兴通讯股份有限公司 | 一种性能测量方法、装置、设备和存储介质 |
CN114430386A (zh) * | 2020-10-14 | 2022-05-03 | 华为技术有限公司 | 组播业务流的检测方法及相关装置 |
CN114172798B (zh) * | 2021-11-08 | 2023-10-24 | 烽火通信科技股份有限公司 | Bier网络故障检测方法、装置、设备及可读存储介质 |
-
2022
- 2022-04-27 CN CN202280061234.XA patent/CN117941333A/zh active Pending
- 2022-04-27 WO PCT/CN2022/089652 patent/WO2023206165A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023206165A1 (zh) | 2023-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462646B (zh) | 一种报文处理方法及装置 | |
US8472325B2 (en) | Network availability enhancement technique for packet transport networks | |
US20220294722A1 (en) | Transmission Quality Detection Method, Apparatus, and System, and Storage Medium | |
US8085674B2 (en) | Priority trace in data networks | |
CN113411834B (zh) | 报文处理方法、装置、设备及存储介质 | |
CN113328902B (zh) | 网络性能检测方法、装置及网络设备 | |
EP3850792B1 (en) | On-path telemetry for multicast traffic | |
US9479619B2 (en) | Transmission apparatus, transmission system, and transmission method | |
US12040966B2 (en) | Path switching method, device, and system | |
US20230318970A1 (en) | Packet Processing Method and Apparatus | |
CN111555982A (zh) | 一种基于IPv6扩展头的报文智能选路的方法和系统 | |
EP4149065A1 (en) | Processing capability determination method, and node and system | |
EP2719120A1 (en) | Protocol independent multicast last hop router discovery | |
US20160315787A1 (en) | Network system, control devices, control method, and program | |
CN115242892B (zh) | 一种流标识获取方法、装置、设备及介质 | |
US11582156B2 (en) | Traffic detection method, apparatus, and system | |
CN117941333A (zh) | 组播数据报文发送的方法、装置、设备和存储介质 | |
US20170288994A1 (en) | Packet transfer device and method for setting counter | |
CN116094987A (zh) | 转发路径的确定方法及装置 | |
CN114157595A (zh) | 一种通信系统、数据处理方法以及相关设备 | |
EP4243368A1 (en) | Data obtaining method and apparatus, device, and storage medium | |
US20240064111A1 (en) | Service Protection Method and Network Node | |
CN117811708A (zh) | 质量检测方法、装置、设备及存储介质 | |
CN117081967A (zh) | 传输检测方法、装置及系统 | |
CN117097633A (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 |