组播报文检测方法、网络设备和系统与流程

文档序号:25991742发布日期:2021-07-23 21:03阅读:110来源:国知局
本申请涉及通信领域,特别是涉及一种组播报文检测方法、网络设备和系统。
背景技术
::组播(multicast)是网络中一种在一个发送者和多个接收者之间进行通信的方法。组播技术既可以应用到点到多点的应用场景,例如媒体广播、事件通知、状态监控、数据收集、网络竞拍等,又可以应用到多点到多点的应用场景,例如多点会议、数据库同步等,所以受到很多开发者的重视。比特位索引显式复制(bitindexedexplicitreplication,bier)技术是组播技术的一种,用于构建组播发转发路径,既满足了组播报文量日益剧增的业务需求,又降低了运营的成本。为了保证bier组播报文的传输质量,需要对bier组播报文进行检测。传统的检测方式是将检测指令下发到传输bier组播报文的各个网络设备中,各个网络设备根据该检测指令对bier组播报文进行检测,这种方式会导致检测部署效率较低,占用较多的管理带宽资源,影响网络管理性能。技术实现要素:本申请实施例提供了一种组播报文检测方法、网络设备及系统,提高检测部署效率,减少管理带宽资源的占用,提高网络管理性能。第一方面,本申请实施例提供了一种组播报文检测方法,该方法包括网络设备获取第一bier报文,所述第一bier报文包括第一标识,所述第一标识用于指示对所述第一bier报文进行检测。其次,所述网络设备根据所述第一标识对所述第一bier报文进行检测,得到检测数据。最后,所述网络设备向控制器发送所述检测数据。其中,该组播报文检测方法可以由网络设备执行,该网络设备可以为入口节点、中间节点或尾节点。进一步说明,首先控制器向入口节点发送检测指令,所述检测指令包括组播地址,所述组播地址包括组播源地址和组播组地址。所述检测指令用于指示所述入口节点在与组播地址对应的第二bier报文中携带所述第一标识。当入口节点接收到来自所述控制器的检测指令之后,根据所述检测指令在所述第二bier报文中携带所述第一标识,得到第一bier报文。然后入口节点发送第一bier报文。而接收到第一bier报文的中间节点或尾节点可以根据该第一bier报文中的第一标识对该第一bier报文进行检测,得到检测数据,并向控制器发送所述检测数据。在这个过程中,控制器不需要向中间节点和尾节点发送检测指令,相对于控制器需要向每个传输bier报文的网络设备都需要下发检测指令的传统方案而言,本申请在实现对第一bier报文进行检测的前提下,提高了检测部署效率,减少了管理带宽资源的占用,提高网络管理性能。当然,入口节点也可以根据第一bier报文中的第一标识对该第一bier报文进行检测,得到检测数据,并向控制器发送所述检测数据。可选的,当网络设备为入口节点时,所述第一bier报文包括组播地址;相应的所述方法还包括如下步骤:所述入口节点接收来自所述控制器的检测指令,所述检测指令包括所述组播地址,所述检测指令用于指示所述入口节点在与所述组播地址对应的第二bier报文中携带所述第一标识。所述入口节点根据所述检测指令在所述第二bier报文中携带所述第一标识,得到所述第一bier报文。可选的,在所述入口节点接收来自所述控制器的检测指令之后,所述方法还包括:所述入口节点生成第一对应关系,所述第一对应关系为所述组播地址和第一指示信息之间的对应关系,所述第一指示信息用于指示在所述第二bier报文中携带所述第一标识。相应的,所述入口节点根据所述检测指令在所述第二bier报文中携带所述第一标识,得到所述第一bier报文具体包括:首先,所述入口节点获取第二bier报文;其次,所述入口节点根据所述第二bier报文的组播地址和所述第一对应关系得到所述第一指示信息;最后,所述入口节点根据所述第一指示信息在所述第二bier报文中携带所述第一标识,得到所述第一bier报文。需要说明的是,该第一指示信息可以是入口节点根据检测指令生成的,也可以是携带在检测指令中,例如该第一指示信息可以携带在该检测指令的字段中。可选的,当不需要对第一对应关系对应的bier报文进行检测时,所述方法还包括:所述入口节点接收来自所述控制器的撤销指令,所述撤销指令包括所述组播地址。所述入口节点根据所述撤销指令删除所述组播地址对应的第一对应关系。这样,入口节点就不再在第一对应关系中的组播地址对应的bier报文中携带第一标识,入口节点以及中间节点和尾节点就不需要检测该组播地址对应的bier报文。由于控制器只需要向入口节点下发撤销指令即可,相对于控制器需要向传输bier报文的每个网络设备都需要下发撤销指令的传统方案而言,本申请在实现对bier报文撤销检测的前提下,提高了撤销检测部署效率,减少了管理带宽资源的占用,提高网络管理性能。可选的,所述网络设备根据所述第一标识对所述第一bier报文进行检测包括:所述网络设备根据所述第一标识获取传输所述第一bier报文的接口的信息,例如包括所述第一bier报文的入接口的信息和出接口的信息中的至少一个;所述网络设备将所述接口的信息发送给所述控制器。通过向控制器发送第一bier报文的接口的信息,控制器可以实现对第一bier报文的转发路径的获取。可选的,所述第一bier报文还包括序列号。所述网络设备根据所述第一标识对所述第一bier报文进行检测包括:所述网络设备根据所述第一标识获取所述第一bier报文的序列号,所述网络设备根据所述序列号得到所述第一bier报文所属的组播流的丢包信息或乱序信息,实现对第一bier报文所属的组播流的丢包情况、乱序情况的检测。当然,可以理解的是,网络设备还可以直接向网络设备发送第一bier报文的序列号,由控制器根据该序列号得到第一bier报文所属的组播流的丢包信息或乱序信息,同样也可以实现对第一bier报文所属的组播流的丢包情况、乱序情况的检测。可选的,所述第一标识携带在所述第一bier报文的第一字段中,所述第一字段可以例如为操作维护管理字段或保留字段。可选的,所述第一bier报文还包括第二字段,所述第二字段的值指示所述第一字段中携带所述第一标识,所述第二字段例如为协议字段或版本字段。所述方法还包括:所述网络设备根据所述第二字段的值获取所述第一字段中的第一标识。可选的,为了提高检测效率,所述方法还包括:所述网络设备根据所述第一标识获取所述第一bier报文的特征信息,该特征信息例如为三元组信息或五元组信息等。所述网络设备根据所述第一bier报文的特征信息生成第三对应关系,所述第三对应关系为所述特征信息和第二指示信息之间的对应关系,所述第二指示信息用于指示对与所述特征信息对应的bier组播报文进行检测。相应的,当所述网络设备获取第三bier报文之后,所述网络设备根据所述第三bier报文的特征信息和所述第三对应关系得到所述第二指示信息,然后,所述网络设备根据所述第二指示信息对所述第三bier报文进行检测。由于网络设备从bier报文中获取特征信息的效率要高于获取第一标识的效率,所以可以提高bier报文的检测效率。可选的,在一些应用场景中,网络设备可能会收到其尾节点属于不同集合标识但其内容相同的bier报文,为了实现对bier报文的准确检测,所述网络设备根据所述第一标识对所述第一bier报文进行检测包括:所述网络设备获取所述第一bier报文的比特索引转发表标识biftid;所述网络设备根据所述第一bier报文的biftid和第二对应关系,得到与所述第一bier报文对应的集合标识,所述集合标识为所述第一bier报文对应的尾节点所属的集合的标识,所述第二对应关系为所述比特索引转发表标识与所述集合标识的对应关系。所述网络设备根据所述第一标识和所述第一bier报文对应的集合标识对所述第一bier报文进行检测。可选的,在一些应用场景中,网络设备可能会接收到来自不同入口节点但是内容相同的bier报文,为了实现对bier报文的准确检测,所述网络设备根据所述第一标识对所述第一bier报文进行检测包括:所述网络设备获取所述第一bier报文对应的入口节点的标识;所述网络设备根据所述第一标识和所述入口节点的标识对所述第一bier报文进行检测。第二方面,本申请实施例提供了一种网络设备,用于执行第一方面或第一方面的任意一种可能的实现方式中的方法。具体地,该网络设备包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元。第三方面,本申请实施例请提供了一种网络设备,该控制器包括:处理器、通信接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第一方面或第一方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。第四方面,本申请实施例提供了一种组播报文检测系统,该系统包括网络设备和控制器。网络设备用于获取第一比特位索引显式复制bier报文,所述第一bier报文包括第一标识,所述第一标识用于指示对所述第一bier报文进行检测;所述网络设备还用于根据所述第一标识对所述第一bier报文进行检测,得到检测数据,并向控制器发送所述检测数据。控制器用于接收检测数据,并根据检测数据进行处理。第五方面,本申请实施例提供了一种计算机可读介质,包括指令,当其在计算机上执行时,使得所述计算机执行第一方面或第一方面的任意一种可能的实现方式中的方法。附图说明图1为本申请实施例提供的组播报文检测系统的结构示意图;图2为本申请实施例提供的一种组播报文检测方法的流程图;图3为本申请实施例提供的bier报文s2的报文头的格式示意图;图4为本申请实施例提供的新版本bier报文头的格式示意图;图5为本申请实施例提供的bier组播系统的架构示意图;图6为本申请实施例提供的一种组播报文检测方法的另一流程图;图7为本申请实施例提供的一种网络设备700的结构示意图;图8为本申请实施例提供的一种网络设备800的结构示意图;图9为本申请实施例还提供了一种组播报文检测系统900的结构示意图。具体实施方式本申请实施例提供了一种组播报文检测方法、网络设备及系统,用于在对bier组播报文进行检测的过程中减少管理带宽资源的占用,提高检测部署效率。为方便理解,首先结合图1对本申请实施例的应用场景进行介绍。图1为本申请实施例提供的组播报文检测系统的结构示意图。在图1中,本申请实施例提供的组播报文检测系统包括服务器101、终端设备102、终端设备103、网络设备201、网络设备202、网络设备203以及控制器301。其中,服务器101与网络设备201连接,网络设备201与网络设备202连接,网络设备202与网络设备203连接,网络设备203与终端设备102连接,终端设备103与网络设备202连接,控制器301连接网络设备201、网络设备202和网络设备203。在本申请实施例中,服务器101例如可以用于生成视频流、图像流等。终端设备102和终端设备103又称之为用户设备(userequipment,ue)、移动台(mobilestation,ms)、移动终端(mobileterminal,mt)、终端等,是一种向用户提供语音和/或数据连通性的设备,或,设置于该设备内的芯片,例如,具有无线连接功能允许的手持式设备、车载设备等。目前,一些终端设备的举例为:机顶盒(settopbox,stb)、手机(mobilephone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinternetdevice,mid)、可穿戴设备,虚拟现实(virtualreality,vr)设备、增强现实(augmentedreality,ar)设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remotemedicalsurgery)中的无线终端、智能电网(smartgrid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smartcity)中的无线终端、智慧家庭(smarthome)中的无线终端等。控制器301例如可以为网络控制引擎(networkcontrolengine,nce)互联网协议(internetprotocol,ip)服务器等设备。在本申请实施例中,网络设备201、网络设备202和网络设备203例如可以为路由器、交换机等网络通信设备。当上述网络设备为路由器时,可以被称为比特位转发路由器(bit-forwardingrouter,bfr)。在本申请实施例中,网络设备201-网络设备203一起构成了bier组播域(bierdomain)。bier组播域是一个转发bier报文的域。bier组播域中与组播源网络设备(例如图1中的服务器101)连接的边缘网络设备(网络设备201)可以为比特位转发入口路由器(bit-forwardingingressrouter,bfir),与终端设备(例如图1中的终端设备101)连接的边缘网络设备(例如网络设备203)可以为比特位转发出口路由器(bit-forwardingegressrouter,bfer)。若采用传统技术,控制器301首先获取特定组播报文的传输路径,例如网络设备201将来自服务器101的数据流转换为该特定bier组播报文之后,先后通过网络设备202和网络设备203发送给终端设备102,所以该特定bier组播报文的报文传输路径为网络设备201-网络设备202-网络设备203。那么控制器301可以向网络设备201、网络设备202和网络设备203分别下发检测指令,该检测指令用于指示对该特定bier组播报文进行检测。可见,有多少需要对该特定的bier组播报文进行检测的网络设备,控制器就需要下发多少个检测指令,导致占用较多的管理带宽资源。而且,由于一条检测指令只用于指示一条bier组播报文,那么当需要进行检测的bier组播报文较多时,就需要控制器向每个网络设备分别下发多条检测指令,这样会导致检测部署效率较低,且占用大量的管理带宽资源,影响网络的性能。当取消网络设备对bier组播报文的检测时,传统技术需要控制器301向每个网络设备均发送撤销指令,因此导致撤销部署效率较低,且占用大量的管理带宽资源,影响网络的性能。而在本申请实施例中,控制器301可以向bier组播域的入口节点,例如网络设备201,发送检测指令,入口节点在接收到检测指令后,在bier组播报文中携带第一标识,该第一标识用于指示传输bier组播报文的网络设备对该bier组播报文进行检测。传输该bier组播报文的网络设备可以根据该第一标识对该bier组播报文进行检测。也就是说,控制器301只需要向入口节点发送基于流的检测指令即可,不需要向传输bier组播报文的其他网络设备也下发该检测指令,提高检测部署效率,节约了网络管理带宽资源,提高网络管理性能。在需要取消网络设备201、网络设备202和网络设备203对bier组播报文的检测时,控制器301只需要向入口节点发送撤销指令,入口节点在接收到撤销指令之后可以停止在bier组播报文中携带第一标识,这样网络设备201、网络设备202和网络设备203就不需要对该bier组播报文进行检测,在实现撤销检测的同时提高了撤销检测部署效率,节约了网络管理带宽资源,提高了网络管理性能。参见图2,该图为本申请实施例提供的一种组播报文检测方法的流程图。下面结合图2和图1对本申请实施例提供的组播报文检测方法进行介绍。s101:控制器向入口节点发送检测指令,所述检测指令包括所述组播地址。在本申请实施例中,控制器可以例如为图1中的控制器301,入口节点例如为图1中的网络设备201。在本申请实施例中,检测指令中可以携带组播源地址(sourceaddress)和组播组地址(groupaddress)。组播地址用于标识bier组播报文所属的组播流。可选的,用于标识bier组播报文所属的组播流的信息还可以包括虚拟专用网络(virtualprivatenetwork,vpn)标识等,该bier报文可以通过组播地址或vpn,或者组播地址和vpn的组合进行标识。本申请实施例不做具体限定。为了描述方便,下文均以组播地址为例作为标识bier组播报文所属的组播流的信息。在本申请实施例中,检测指令用于指示所述入口节点在与所述组播地址对应的bier报文中携带第一标识,第一标识用于指示对所述bier报文进行检测。在本申请实施例中,对bier报文进行检测可以是对某个bier报文所属的组播流进行检测。检测的具体内容例如为丢包、乱序、时延、抖动、拓扑等信息,本申请实施例不做具体限定。在本申请实施例中,若需要进行检测的组播流有多条,那么控制器在向入口节点下发的检测指令中可以携带多组组播地址,也可以分多个检测指令下发,每个检测指令分别携带一组组播地址,本申请实施例不做具体限定。可选的,控制器还可以向需要进行检测的设备,例如入口节点和网络设备r1,发送其他检测参数,该检测参数例如可以为检测周期、阈值等。其中,检测周期为对bier报文进行检测的周期。阈值用于判断组播流是否发生抖动、时延等信息。s102:入口节点接收检测指令。在本申请实施例中,当入口节点接收到检测指令之后,可以生成并存储对应关系m1,该对应关系m1为第一指示信息与检测指令中的组播地址的对应关系。其中,该第一指示信息用于指示入口节点在与该组播地址对应的bier报文中携带第一标识。需要说明的是,第一指示信息可以入口节点根据检测指令生成的,也可以是入口节点从检测指令中提取的,也就是说,第一指示信息可以携带在检测指令的某个字段中。如果需要检测的组播流有多条,那么入口节点可以生成与指示信息对应的组播地址列表,该列表包括需要检测的多条组播流的组播地址。参见表1,该表为入口节点建立的与第一指示信息对应的组播地址列表的示例。表1组播源地址组播组地址s1g1s1g2s2g3s103:入口节点获取bier报文s1,根据检测指令在bier报文s1中携带第一标识,得到bier报文s2。在本申请实施例中,bier报文s1中携带有组播地址。当入口节点确定bier报文s1中的组播地址与检测指令中的组播地址匹配时,在该bier报文s1中携带该第一标识。具体的,入口节点可以根据bier报文s1中的组播地址以及对应关系m1得到对应的指示信息,并根据该指示信息在该bier报文s1中携带该第一标识。例如,假设bier报文s1中携带组播源地址s1和组播组地址g1,那么根据表1可知该bier报文s1对应的bier组播报文需要进行检测,所以可以在该bier报文s1中插入第一标识,得到bier报文s2。在本申请实施例中,第一标识可以携带在bier报文s2中的第一字段中,具体的,第一字段可以在bier报文s2的报文头中。参见图3,该图为bier报文s2的报文头的格式示意图。在该图中,bier报文s2的报文头包括如下字段:比特索引转发表(bitindexforwardingtable,bift)标识(identifier,id)、流分类字段(trafficeclass,tc)、栈底标签标志s、生存时间(timetolive,ttl)、半字节(nibble)、版本(version,ver)、比特串长度(bitstringlength)、熵(entropy)、操作维护管理(operationadministrationandmaintenance,oam)、保留(reserve,rsv),差分服务代码点(differentiatedservicescodepoint,dscp)、协议(protocol,proto)、bfirid、比特串(bitstring)等。作为第一种可能的实现方式,第一标识可以携带在bier报文s2的报文头中的oam字段中。例如,oam字段的值可以为00、01、10和11。其中,00可以表示默认值,01、10和11的其中一个可以作为第一标识,例如选择01作为第一标识。作为第二种可能的实现方式,第一标识可以携带在bier报文s2的报文头中的rsv字段中。例如,rsv字段的值可以为00、01、10和11。其中,00可以表示默认值,01、10和11的其中一个可以作为第一标识,例如选择01作为第一标识。在这两种实现方式中,携带第一标识的oam字段或rsv字段均为报文头中原有的字段。在本申请实施例中,携带第一标识的第一字段还可以是报文头中新增的字段,在这种情况下,bier报文s2还可以包括第二字段,其中第二字段的值指示所述第一字段中携带所述第一标识。作为第三种可能的实现方式,第一字段可以是bier扩展头中的长度类型值(typelengthvalue,tlv)字段(图3中未示出)。第二字段可以为proto字段。proto字段的值(比如0x3f)用来指示bier扩展头中的tlv字段携带有第一标识。作为第四种可能的实现方式,第一字段可以是新版本bier报文头中的新增字段。参见图4,该图为新版本bier报文头的格式示意图。在该图中,新增字段为体验质量(qualityofexperience,qoe)字段,该qoe字段中的值(比如为0x01)可以为第一标识。第二字段可以为ver字段,例如,当ver字段的值为1时表示qoe字段中携带第一标识。可以理解的是,上述四种实现方式并不构成对本申请技术方案的限定,本领域技术人员可以根据实际情况自行设计。s104:入口节点向网络设备r1发送bier报文s2。在本申请实施例中,网络设备r1例如为图1中的网络设备202。s105:网络设备r1接收bier报文s2。s106:网络设备r1根据bier报文s2中的所述第一标识对所述bier报文s2所属的bier组播报文进行检测,得到检测数据。在本申请实施例中,网络设备r1在接收到bier报文s2之后,可以读取bier报文s2中携带在第一字段中的第一标识,并根据该第一标识对bier报文s2所属的bier组播报文进行检测。如前文所提,检测的具体内容例如为丢包、乱序、时延、抖动、拓扑等信息。本申请实施例以检测bier组播报文的丢包信息、乱序信息、抖动信息和拓扑信息为例对本申请的技术方案进行介绍。在本申请实施例中,bier报文s2中可以包括序列号(sequencenumber)字段,该序列号字段中携带有bier报文s2的序列号。可选的,序列号字段可以位于bier报文s2的实时传输协议(real-timetransportprotocol,rtp)头中。入口节点在生成一条bier组播报文的第一个报文时,该报文的序列号可以为小于65536的随机正整数,后续每生成该bier组播报文的一个报文,对应的序列号在前一个报文的序列号的基础上加1。加到65535后序列号可以从1开始累加。假设网络设备r1本次接收到的bier报文的序列号为m,接收到的前一个bier报文的序列号为n,若m>n+1,则认为有丢包,丢包数为m-n;若m<n,则认为有乱序,网络设备r1可以记录一次乱序。网络设备r1可以根据对丢包次数的统计计算丢包率(lossrate,lr)。计算方法可以参见如下公式:其中,expectedpktnum为一个统计周期内期望接收的bier报文总数。expectedpktnum等于一个统计周期内最大序列号与最小序列号之差。对于第一个统计周期而言,最小序列号为该统计周期内网络设备r1接收到的bier报文的最小序列号,对于后续统计周期而言,最小序列号为上一个统计周期的最大序列号加1。最大序列号为一个统计周期内网络设备r1接收到的bier报文的最大序列号。losspktnum表示一个统计周期内的网络设备r1的丢包数。网络设备r1还可以根据对乱序次数的统计计算乱序率(sequenceerrorrate,ser)。计算方法可以参见如下公式:其中,sequenceerrorpktnum为一个统计周期内的乱序次数。expectedpktnum表示一个统计周期内期望接收的bier报文总数。当然,根据bier报文中rtp头中的序列号对组播流的乱序、丢包情况进行检测并不是唯一的一种实现方式,在实际应用中还有其他的实现方式,本申请实施例不做具体限定。例如若bier报文中没有rtp头,而只有传输流(transportstream,ts)时,那么可以根据bier报文中的ts头的连续计数器中的序号对组播流的乱序、丢包情况进行检测。由于该方式属于现有的方式,此处不再赘述。可选的,网络设备r1还可以在采样周期内多次获取包括第一标识且组播地址均相同的bier报文的字节数,根据该字节数得到该组播地址对应的组播流的抖动信息。例如,网络设备r1在10秒的采样周期内,每秒采集一次包括第一标识且组播源地址均为s1、组播组地址均为g1的bier报文的字节数,取这10次采集到的字节数中的最大值和最小值,并判断最大值和最小值之差是否大于或等于阈值,如果是,则确认该s1和g1对应的组播流发生了抖动。当然,网络设备r1还可以将采样周期内采集到的字节数上报给控制器,由控制器来确定组播流是否发生抖动。可选的,网络设备r1还可以根据第一标识获取传输所述bier报文s2的接口的信息,例如包括接收bier报文s2的接口的信息和发送bier报文s2的接口的信息中的至少一个。在本申请实施例中,入口节点也可以根据第一标识获取bier报文s2的检测数据,并发送给控制器。例如,入口节点根据第一标识获取发送bier报文s2的接口的信息,并将该信息发送给控制器。此外,在实际应用中,网络设备r1可以不需要每次接收到属于同一条bier组播流的报文,都从该报文中读取第一标识并根据该第一标识进行检测。所以,可选的,当bier报文s2为bier组播流的首个报文时,可以根据其中的第一标识获取bier报文s2的特征信息,例如三元组信息、五元组信息等,然后生成特征信息与第二指示信息之间的对应关系m2。其中,三元组信息包括bier报文s2的组播地址和目的端口。五元组信息包括bier报文s2的源ip地址、目的ip地址、源端口、目的端口和传输层协议。第二指示信息用于指示对于该特征信息对应的bier组播流进行检测。当后续网络设备r1接收到bier组播流的bier报文,例如bier报文s3,则可以根据bier报文s3的特征信息和对应关系m2得到该第二指示信息,并根据该第二指示信息对bier报文s2进行检测。由于匹配特征信息和对应关系m2的时间比从报文中读取第一标识的时间短,所以可以提高检测效率。具体检测的方式请参见上文,此处不再赘述。在一些应用场景中,为了提高可靠性,一个服务器可能会连接多个入口节点,即通过该多个入口节点转发相同的流,因此多个入口节点发送的bier组播报文的五元组信息可能相同,而这些bier组播报文可能会经过同一个网络设备,所以为了使网络设备区分来自不同的入口节点的bier报文,网络设备r1可以根据bier报文中入口节点的标识bfirid来区分来自不同入口节点的bier组播报文,以对来自不同入口节点的bier组播报文分别进行检测。另外,bier报文中携带的比特串指示该bier报文的尾节点。由于一个bier报文可以携带的比特串的大小是有限的,如果该bier报文所属的bier组播报文发往的尾节点较多,以至于所有尾节点的数量超出一个bier报文可以携带的比特串可以表示的尾节点的数量,那么就可以将这些尾节点划分为多个集合,每个集合分别对应一个标识,这个标识称为集合标识(setidentifier,si),入口节点可以分别按照不同的si对应的尾节点发送相同的bier组播报文。因此网络设备r1可能会接收到尾节点属于不同si,但五元组信息相同的多个bier报文,由于这些bier报文的转发路径不同,所以网络设备r1可以将这些多个bier报文对应的bier报文流区分开来,以分别进行检测。具体的,如图3所示,bier报文s2中可以携带有biftid,网络设备r1可以根据bier报文s2中的biftid和预先获取的对应关系m3得到bier报文s2对应的si,然后根据该si对bier报文s2所述的bier组播报文进行检测。其中,对应关系m3为biftid与si的对应关系。对应关系m3可以由控制器下发,也可以尾节点自己生成,并通过泛洪的方式告知其他网络设备。s107:网络设备r1向控制器发送检测数据。s108:网络设备r1向网络设备r2发送bier报文s2。在本申请实施例中,网络设备r2可以例如为网络设备203。网络设备r2在接收到来自网络设备r1的bier报文s2之后,执行的流程与网络设备r1类似,此处不再赘述。如果该bier报文s2的转发路径上还包括其他网络设备,那么网络设备r2可以继续向下一跳网络设备发送bier报文s2,直到将该bier报文s2发送到目的节点。在实际应用中,转发bier报文s2的路径上的网络设备中哪些网络设备执行根据bier报文s2中的第一标识对bier报文s2进行检测,并将检测数据发送给控制器的动作,可以预先在对应的网络设备中进行使能配置,配置使能检测的网络设备执行上述检测流程;未配置使能检测的网络设备可以不执行上述检测流程。另外,上述s107和s108没有必然的先后顺序,s108可以在s107之前、之后或同时执行。s109:控制器接收检测数据,并根据检测数据进行处理。在本申请实施例中,控制器可以根据各个网络设备发送的检测数据进行相应的处理。例如,若控制器接收到的检测数据包括传输bier报文s2的接口的信息,那么控制器可以根据该传输bier报文s2的接口的信息得到bier报文s2的转发路径。参见图5,该图为bier组播系统的架构示意图。在图5中,节点1至节点15为网络设备,其中,节点15为bier组播域的入口节点,节点1-4和节点13为bier组播源的尾节点,与节点1-4和节点13连接的终端设备为机顶盒。从节点15的接口(interface,intf)1输出bier组播流1和bier组播流2。其中bier组播流1被节点12的intf4接收,并从节点12的intf1输出;bier组播流1被节点10的intf1接收,并从节点10的intf3输出;bier组播流1通过节点8的intf1进入节点8,在节点8中进行复制,得到bier组播流1’和bier组播流1”,并分别从节点8的intf3输出和intf4输出。bier组播流1’通过节点6的intf1进入节点6,并从节点6的intf4输出,之后被节点1的intf1接收;节点1将bier组播流1’传输给对应的stb。bier组播流1”被节点7的intf3接收,并通过节点7的intf5输出,之后被节点5的intf1接收。节点5通过intf4将bier组播流1”传输给节点4,节点4将从intf1接收的bier组播流1”发送给对应的stb。bier组播流2在被节点15发送之后,被节点9的intf3接收。节点9通过intf4将bier组播流2发送给节点7。节点7通过intf1接收bier组播流2,并通过intf6将bier组播流2发送给节点13。节点13的intf1接收bier组播流2,然后发送给对应的stb。参见表2,该表为尾节点为节点1的转发路径的beir组播流1的丢包率和乱序率的示例。表2根据表2可以看出,beir组播流1在离开节点10时没有丢包,但在进入节点8之后出现丢包,且丢包率为1.1%,说明beir组播流1在节点10和节点8之间可能发生丢包,后续可以进一步检查节点10和节点8之间的链路。根据表2还可以看出,beir组播流1’在离开节点8之前没有乱序,但在进入节点6之后出现乱序,且乱序率为0.7%,说明beir组播流1’在节点8和节点6之间可能发生乱序,后续可以进一步检查节点8和节点6之间的链路。在本申请实施例中,控制器只需要向入口节点发送基于流的检测指令即可,不需要向其他网络设备发送,入口节点在接收到检测指令之后,在与检测指令中携带的组播地址对应的bier报文中加入第一标识,以使转发该bier报文的网络设备根据该第一标识对该bier报文对应的bier组播报文进行检测,即实现对bier组播报文进行检测的前提下提高检测部署效率、节约管理带宽资源以及提升网络管理效率的目的。此外,在本申请实施例中,控制器还可以向入口节点发送撤销指令,用于撤销各网络设备对bier组播报文的监控。具体的,参见图6,本申请实施例提供的组播报文检测方法还可以包括如下步骤:s110:控制器向入口节点发送撤销指令,该撤销指令中包括组播地址。s111:入口节点接收撤销指令,并根据该撤销指令删除与该组播地址对应的对应关系m1。当入口节点删除与撤销指令对应的对应关系m1之后,入口节点便不在对应关系m1对应的bier组播报文中携带第一标识,那么不仅入口节点不需要对该bier组播报文进行检测,转发该bier组播报文的其他网络设备也不需要对该bier组播报文进行检测。相比较于传统方式,由于在本申请实施例中控制器只需要向入口节点发送撤销指令,不需要向所有网络设备发送,所以在保证撤销对bier组播报文进行检测的前提下提高了撤销检测部署效率,节约了管理带宽资源以及提升了网络管理效率。图7提供了上述实施例中所涉及的网络设备的一种可能的结构示意图,该网络设备700可以实现图2和图6所示的实施例中的入口节点或网络设备r1的功能,例如网络设备可以执行图2或图6中的s102、s103和s104,或者执行图2或图6中的s105、s106和s107,或者执行图6中的s111,对于网络设备700的各单元具备的功能可以参考上述方法步骤中的描述。参阅图7,该网络设备700包括处理单元701和发送单元702。其中,处理单元701,用于获取第一比特位索引显式复制bier报文,所述第一bier报文包括第一标识,所述第一标识用于指示对所述第一bier报文进行检测。所述处理单元701,还用于根据所述第一标识对所述第一bier报文进行检测,得到检测数据。所述发送单元702,用于向控制器发送所述检测数据。在一种示例中,所述网络设备700为bier网络的入口节点,所述网络设备700还包括:接收单元,用于接收来自所述控制器的检测指令,所述检测指令包括组播地址,所述检测指令用于指示所述入口节点在携带所述组播地址的第二bier报文中携带所述第一标识;所述处理单元701,还用于根据所述检测指令在所述第二bier报文中添加所述第一标识,得到所述第一bier报文。在一种示例中,所述处理单元701,还用于接收来自所述控制器的检测指令之后,生成第一对应关系,所述第一对应关系为所述组播地址和第一指示信息之间的对应关系;所述根据所述检测指令在所述第二bier报文中携带所述第一标识,得到所述第一bier报文包括:所述获取第二bier报文,并根据所述第二bier报文中的组播地址和所述第一对应关系得到所述第一指示信息,所述第一指示信息用于指示在所述第二bier报文中携带所述第一标识;根据所述第一指示信息在所述第二bier报文中携带所述第一标识,得到所述第一bier报文。在一种示例中,处理单元,具体用于:根据所述第一标识获取传输所述第一bier报文的接口的信息;将所述接口的信息发送给所述控制器。在一种示例中,所述第一bier报文还包括序列号。处理单元,具体用于:根据所述第一标识获取所述第一bier报文的序列号;根据所述序列号得到所述第一bier报文所属组播流的丢包信息或乱序信息。在一种示例中,所述第一标识携带在所述第一bier报文中的第一字段中。在一种示例中,所述第一字段为操作维护管理字段或保留字段。在一种示例中,所述第一bier报文还包括第二字段,所述第二字段的值指示所述第一字段中携带所述第一标识;所述处理单元701,还用于根据所述第二字段获取所述第一字段中的第一标识。在一种示例中,所述第二字段为协议字段或版本字段。在一种示例中,所述处理单元701,还用于所述第一标识获取所述第一bier报文的特征信息;根据所述第一bier报文的特征信息生成第三对应关系,所述第三对应关系为所述特征信息和第二指示信息之间的对应关系,所述第二指示信息用于指示对与所述特征信息对应的bier报文进行检测。在一种示例中,所述处理单元701,还用于获取第三bier报文;根据所述第三bier报文的特征信息和所述第三对应关系得到所述第二指示信息;根据所述第二指示信息对所述第三bier报文进行检测。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本申请实施例中的各功能单元可以集成在一个处理单元701中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,接收单元和发送单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。参阅图8所示,为本申请实施例提供一种网络设备的结构示意图,该网络设备800包括:处理器802、通信接口803、存储器801以及总线804。其中,通信接口803、处理器802以及存储器801通过总线1104相互连接;总线804可以是外围部件互连标准(peripheralcomponentinterconnect,pci)总线或扩充工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该网络设备800可以实现图2和图6所示的实施例中的网络设备的功能。处理器802和通信接口803可以执行上述方法示例中网络设备的相应功能。通信接口803用于支持网络设备800执行图2或图6中的s102和s104,或者执行图2或图6中的s105和s107。处理器802用于支持网络设备800执行图2或图6中的s103,或者执行图2或图6中的s106,或者执行图6中的s111。存储器801,用于存储网络设备800的程序代码和数据。下面结合图7对控制器的各个构成部件进行具体的介绍:其中,存储器801可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);或者非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom),快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);或者上述种类的存储器的组合,用于存储可实现本申请方法的程序代码、tsn域内网络设备的配置文件或其他内容。处理器802是控制器的控制中心,可以是一个中央处理器(centralprocessingunit,cpu),也可以是特定集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个数字信号处理器(digitalsignalprocessor,dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,fpga)。通信接口803用于与网络设备之间通信,例如数据流端到端的业务需求时延,以及数据流转发路径上的网络设备传输时延和转发路径的链路传输时延。例如,可以通过mrp报文、lrp报文、netconf报文、netconf或restconf报文或者管理信息库报文获得数据流的业务需求时延。通信接口803可以为以太接口(ethernet)接口、快速以太(fastethernet,fe)接口或千兆以太(gigabitethernet,ge)接口。在一种示例中,处理器802,用于获取第一比特位索引显式复制bier报文,所述第一bier报文包括第一标识,所述第一标识用于指示对所述第一bier报文进行检测。所述处理器802,还用于根据所述第一标识对所述第一bier报文进行检测,得到检测数据。所述通信接口803,用于向控制器发送所述检测数据。在一种示例中,所述网络设备800为bier网络的入口节点,所述网络设备800还包括:接收单元,用于接收来自所述控制器的检测指令,所述检测指令包括组播地址,所述检测指令用于指示所述入口节点在携带所述组播地址的第二bier报文中携带所述第一标识;所述处理器802,还用于根据所述检测指令在所述第二bier报文中添加所述第一标识,得到所述第一bier报文。在一种示例中,所述处理器802,还用于接收来自所述控制器的检测指令之后,生成第一对应关系,所述第一对应关系为所述组播地址和第一指示信息之间的对应关系;所述根据所述检测指令在所述第二bier报文中携带所述第一标识,得到所述第一bier报文包括:所述获取第二bier报文,并根据所述第二bier报文中的组播地址和所述第一对应关系得到所述第一指示信息,所述第一指示信息用于指示在所述第二bier报文中携带所述第一标识;根据所述第一指示信息在所述第二bier报文中携带所述第一标识,得到所述第一bier报文。在一种示例中,所述第一标识携带在所述第一bier报文中的第一字段中。在一种示例中,所述第一字段为操作维护管理字段或保留字段。在一种示例中,所述第一bier报文还包括第二字段,所述第二字段的值指示所述第一字段中携带所述第一标识;所述处理器802,还用于根据所述第二字段获取所述第一字段中的第一标识。在一种示例中,所述第二字段为协议字段或版本字段。在一种示例中,所述处理器802,还用于所述第一标识获取所述第一bier报文的特征信息;根据所述第一bier报文的特征信息生成第三对应关系,所述第三对应关系为所述特征信息和第二指示信息之间的对应关系,所述第二指示信息用于指示对与所述特征信息对应的bier报文进行检测。在一种示例中,所述处理器802,还用于获取第三bier报文;根据所述第三bier报文的特征信息和所述第三对应关系得到所述第二指示信息;根据所述第二指示信息对所述第三bier报文进行检测。具体执行过程请参考上述图2和图6所示实施例中相应步骤的详细描述,这里不再一一赘述。如图9所示,本申请实施例还提供了一种组播报文检测系统900,包括网络设备901和控制器902。该系统900用于实现前述方法实施例中的组播报文检测方法。网络设备901可以实现图2或图6所示的实施例中的入口节点或网络设备r1的功能,控制器902可以实现图2或图6所示的实施例中控制器的功能。如网络设备901用于获取第一比特位索引显式复制bier报文,所述第一bier报文包括第一标识,所述第一标识用于指示对所述第一bier报文进行检测;所述网络设备还用于根据所述第一标识对所述第一bier报文进行检测,得到检测数据,并向控制器902发送所述检测数据。控制器902用于接收检测数据,并根据检测数据进行处理。具体执行过程请参考上述图2或图6所示实施例中相应步骤的详细描述,这里不再一一赘述。需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的第一网络节点或控制设备实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1