CN114553799B - 基于可编程数据平面的组播转发方法、装置、设备及介质 - Google Patents
基于可编程数据平面的组播转发方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114553799B CN114553799B CN202210035797.3A CN202210035797A CN114553799B CN 114553799 B CN114553799 B CN 114553799B CN 202210035797 A CN202210035797 A CN 202210035797A CN 114553799 B CN114553799 B CN 114553799B
- Authority
- CN
- China
- Prior art keywords
- multicast
- information
- message
- switch
- multicast port
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000001514 detection method Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 10
- 230000004083 survival effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 13
- 230000005540 biological transmission Effects 0.000 abstract description 10
- 230000007246 mechanism Effects 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000523 sample Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种基于可编程数据平面的组播转发方法、装置、设备及介质,属于通信技术领域。该方法包括:交换机接收控制器发送的P4文件,P4文件携带转发指导信息,转发指导信息包括报文类型信息、执行策略和组播位信息;交换机对P4文件进行编译,得到报文类型信息、执行策略和组播位信息;交换机通过对组播位信息进行初始化,得到组播端口信息;交换机在接收到与报文类型信息相匹配的目标报文时,基于执行策略将目标报文转发至与组播端口信息对应的组播端口。本申请利用具有与协议无关且设备独立特性的可编程数据平面,能够解决传统组播对于报文协议的限制,优化了组播传输中对于丢包、错包的容错机制。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种基于可编程数据平面的组播转发方法、装置、设备及介质。
背景技术
多播是一种网络技术,可以同时向一组客户端发送相同的数据包。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机则有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。
IP多播是在一组发送方(至少1个)和一组接收方之间提供动态多对多连接。IP组播报文的格式与单播报文的格式相同,仅通过使用一种特殊的目的地址(IPv4 D类地址)来区分,该目的地址表示一个特定的组播组。但是该技术的使用受到很多的限制,首先,现有的组播协议并不支持对于自定义报文;其次,在点对点的连接中,TCP协议有很完善的处理丢包的场景,而在多点连接中,有些错误并不能简单的得到处理。同时,业界常用的TCP协议并不适用于传统的组播方式,这就极大的限制了组播技术的使用。
发明内容
本申请实施例的主要目的在于提出一种基于可编程数据平面的组播转发方法、装置、设备及介质,利用具有与协议无关且设备独立特性的可编程数据平面,能够解决传统组播对于报文协议的限制,优化了组播传输中对于丢包、错包的容错机制。
为实现上述目的,本申请实施例的第一方面提出了一种可编程数据平面的组播转发方法,应用于组播网络,所述组播网络包括控制器和交换机,所述方法包括:
所述交换机接收所述控制器发送的P4文件,所述P4文件携带转发指导信息,所述转发指导信息包括报文类型信息、执行策略和组播位信息;
所述交换机对所述P4文件进行编译,得到所述报文类型信息、所述执行策略和所述组播位信息;
所述交换机通过对所述组播位信息进行初始化,得到组播端口信息;
所述交换机在接收到与所述报文类型信息相匹配的目标报文时,基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的组播端口。
在一些实施例,在所述交换机在接收到与所述报文类型信息相匹配的报文时,基于所述执行策略将所述报文转发至与所述组播端口信息对应的组播端口之前,所述方法还包括:
所述交换机接收所述控制器对所述P4文件编译得到的管道配置信息;
所述交换机通过对所述管道配置信息进行初始化,以建立所述交换机与所述组播端口信息对应的组播端口的端对端连接。
在一些实施例,所述交换机通过对所述管道配置信息进行初始化,以建立所述交换机与所述组播端口信息对应的组播端口的端对端连接,包括:
所述交换机通过对所述管道配置信息进行初始化,得到管道初始化配置信息;
所述交换机根据所述管道初始化配置信息和所述组播端口信息向对应的组播端口发送探测包,以建立所述交换机与对应的所述组播端口的端对端连接。
在一些实施例,所述交换机在接收到与所述报文类型信息相匹配的目标报文时,基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的组播端口,包括:
所述交换机对接收的第一报文进行解析处理,得到所述第一报文对应的报文头部信息;
根据所述报文头部信息确定所述组播端口信息对应的组播端口;
根据所述组播端口和所述报文类型信息对所述报文头部信息进行匹配重组处理,得到目标报文;
基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的所述组播端口。
在一些实施例,所述交换机在接收到与所述报文类型信息相匹配的目标报文时,基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的组播端口,还包括:
获取所述组播端口对应的所述目标报文;
将所述目标报文发送到所述控制器进行报文信息存储;
根据所述探测包的存活时间在所述控制器中设置报文存储时间;
当所述目标报文的存储时间超过设置的所述报文存储时间,将所述目标报文进行删除。
在一些实施例,所述方法还包括:
当所述交换机在预设时间内未接收到所述组播端口返回的响应信息,所述交换机接收所述控制器基于TCP协议发送的第二报文,并向所述组播端口发送所述第二报文。
在一些实施例,所述方法还包括:
所述交换机在接收到组播成员设备变更指示信息时,根据所述组播成员设备变更指示信息更改所述组播位信息中的所述组播端口信息。
本申请实施例的第二方面提出了一种基于可编程数据平面的组播转发装置,包括:
文件接收模块,用于交换机接收控制器发送的P4文件,所述P4文件携带转发指导信息,所述转发指导信息包括报文类型信息、执行策略和组播位信息;
编译模块,用于所述交换机对所述P4文件进行编译,得到所述报文类型信息、所述执行策略和所述组播位信息;
初始化模块,用于所述交换机通过对所述组播位信息进行初始化,得到组播端口信息;
报文转发模块,用于所述交换机在接收到与所述报文类型信息相匹配的目标报文时,基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的组播端口。
本申请实施例的第三方面提出了一种计算机设备,所述计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行如本申请第一方面实施例任一项所述的基于可编程数据平面的组播转发方法。
本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,在所述计算机程序被计算机执行时,所述计算机用于执行如本申请第一方面实施例任一项所述的基于可编程数据平面的组播转发方法。
本申请实施例提出的基于可编程数据平面的组播转发方法、装置、设备及介质,应用于组播网络,该组播网络包括控制器和交换机,通过交换机接收控制器发送的P4文件,其中,P4文件携带转发指导信息,该转发指导信息包括报文类型信息、执行策略和组播位信息,用于指导转发编译后的P4文件。交换机对P4文件进行编译,得到报文类型信息、执行策略和组播位信息。然后,交换机通过对组播位信息进行初始化,得到组播端口信息。交换机在接收到与报文类型信息相匹配的目标报文时,基于执行策略将目标报文转发至与组播端口信息对应的组播端口。本申请通过利用具有与协议无关且设备独立特性的可编程数据平面,能够解决传统组播网络对于报文协议的限制,优化了组播传输中对于丢包、错包的容错机制。
附图说明
图1是本申请一实施例提供的基于可编程数据平面的组播转发方法的流程图;
图2是本申请另一实施例提供的基于可编程数据平面的组播转发方法的流程图;
图3是图2中的步骤S230的流程图;
图4是图1中的步骤S140的一流程图;
图5是图1中的步骤S140的另一流程图;
图6是本申请实施例提供的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
组播(Multicast),又称多目标广播、多播,是网络中使用的一种传输方式,它允许把所发消息传送给所有可能目的地中的一个经过选择的子集,即向明确指出的多种地址输送信息,是一种在一个发送者和多个接收者之间进行通信的方法。具体是,在有源主机向多点目标主机发送信息需求时,源主机只发送一份数据,数据的目的地址是组播组地址,这样,凡是属于该组的成员,都可以接收到一份源主机发送的数据的拷贝,此组播方式下,只有真正信息需要的成员会收到信息,而其他主机不会收到。因此组播方式解决了单播情况下数据的重复拷贝及带宽的重复占用,也解决了广播方式下带宽资源的浪费。
IP多播是在一组发送方(至少1个)和一组接收方之间提供动态多对多连接。IP组播报文的格式与单播报文的格式相同,仅通过使用一种特殊的目的地址(IPv4 D类地址)来区分,该目的地址表示一个特定的组播组。但是该技术的使用受到很多的限制,首先,现有的组播协议并不支持对于自定义报文;其次,在点对点的连接中,TCP协议有很完善的处理丢包的场景,而在多点连接中,有些错误并不能简单的得到处理。同时,业界常用的TCP协议并不适用于传统的组播方式,这就极大的限制了组播技术的使用。
基于此,本申请实施例的主要目的在于提出基于可编程数据平面的组播转发方法、装置、设备及介质,能够利用具有与协议无关且设备独立特性的可编程数据平面,能够解决传统组播网络对于报文协议的限制,优化了组播传输中对于丢包、错包的容错机制。
本申请实施例可用于众多通用或专用的计算机***环境或配置中。例如:服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、可编程的消费计算机设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
参照图1,根据本申请实施例第一方面实施例的基于可编程数据平面的组播转发方法,应用于组播网络,组播网络包括控制器和交换机,该方法包括但不限于步骤S110至步骤S140。
S110,交换机接收控制器发送的P4文件,P4文件携带转发指导信息,转发指导信息包括报文类型信息、执行策略和组播位信息;
S120,交换机对P4文件进行编译,得到报文类型信息、执行策略和组播位信息;
S130,交换机通过对组播位信息进行初始化,得到组播端口信息;
S140,交换机在接收到与报文类型信息相匹配的目标报文时,基于执行策略将目标报文转发至与组播端口信息对应的组播端口。
具体地,组播网络通过交换机接收控制器发送的P4文件,P4文件携带转发指导信息,转发指导信息包括报文类型信息、执行策略和组播位信息。其中,报文类型信息包括报文格式和协议类型,执行策略即对应执行的动作,组播位(Multicast_bits位)信息用于获取该报文需要传输的对应组播端口信息。交换机通过编译器对P4文件进行编译,得到报文类型信息、执行策略和组播位信息。之后,交换机通过对组播位信息进行初始化,得到组播端口信息。交换机在接收到与报文类型信息相匹配的目标报文时,基于执行策略将目标报文转发至与组播端口信息对应的组播端口。
需要说明的是,本申请采用可编程数据平面作为组播网络的实现载体,该可编程数据平面利用数控分离的控制平面(相当于组播网络中的控制器)和数据平面(相当于组播网络中的交换机),且可编程数据平面具有与协议无关且设备独立的特性,可以实现在组播网络中对自定义协议的报文的传输,即包括传统组播方式不支持的TCP协议等点到点协议。
在一些实施例中,如图2所示,在步骤S140之前,所述方法还包括但不限于步骤S210至步骤S220。
S210,交换机接收控制器对P4文件编译得到的管道配置信息;
S220,交换机通过对管道配置信息进行初始化,以建立交换机与组播端口信息对应的组播端口的端对端连接。
具体地,控制器加载该P4文件,通过编译器对P4文件编译得到管道配置信息,并将该管道配置信息下发到数据平面即交换机。之后,交换机通过对管道配置信息进行初始化,以建立交换机与组播端口信息对应的组播端口的端对端连接,即在交换机的转发层实现交换机与对应的组播端口的端对端连接,从而减轻组播网络中服务端的负载。
在一些实施例中,如图3所示,步骤S230具体包括但不限于步骤S310至步骤S320。
S310,交换机通过对管道配置信息进行初始化,得到管道初始化配置信息;
S320,交换机根据管道初始化配置信息和组播端口信息向对应的组播端口发送探测包,以建立交换机与对应的组播端口的端对端连接。
具体地,交换机通过对加载的管道配置信息进行初始化,得到管道初始化配置信息,根据所编写的具体的代码行为要求,交换机通过管道初始化配置信息和组播端口信息向对应的组播端口发送探测包,该探测包用于与组播网络中组播组的每一个客户端建立一个可靠协议的连接,例如建立TCP连接。
需要说明的是,在接入组播网络时组播源可以对组播组的客户端设备进行客户认证,并在客户认证通过后下发相应的权限信息,以控制该客户端设备后续的组播报文发送,防止未经过认证的客户端设备任意地向组播网络发送组播报文,从而提高了组播网络中组播源控制过程的安全性。同时,本申请所利用的可编程数据平面具有设备独立的运行态特性,可以实时更改组播组网络中客户端的端口信息,从而实现便捷地更改组播组中的成员。
在一些实施例中,如图4所示,步骤S140具体包括但不限于步骤S410至步骤S440。
S410,交换机对接收的第一报文进行解析处理,得到第一报文对应的报文头部信息;
S420,根据报文头部信息确定组播端口信息对应的组播端口;
S430,根据组播端口和报文类型信息对报文头部信息进行匹配重组处理,得到目标报文;
S440,基于执行策略将目标报文转发至与组播端口信息对应的组播端口。
具体地,服务器发送第一报文,交换机对接收的第一报文进行解析处理,得到第一报文对应的报文头部信息。根据报文头部信息匹配交换机中的流表信息,从而确定该第一报文需要发送的组播端口信息对应的组播端口,按位读取该组播端口的组播端口号,并根据组播端口和报文类型信息对报文头部信息进行匹配重组处理,得到目标报文。最后,基于编译后的P4文件的执行策略将目标报文转发至与组播端口信息对应的组播端口。例如,当收到的第一报文是IPv4报文,将该IPv4报文的报文头部信息解析出来之后,匹配对应的组播端口信息的组播端口,从而建立交换机与组播端口的端到端的TCP连接,实现可以发送可靠的协议报文。
在一些实施例中,如图5所示,步骤S140具体还包括但不限于步骤S510至步骤S540。
S510,获取组播端口对应的目标报文;
S520,将目标报文发送到控制器进行报文信息存储;
S530,根据探测包的存活时间在控制器中设置报文存储时间;
S540,当目标报文的存储时间超过设置的报文存储时间,将目标报文进行删除。
具体地,当根据组播端口和报文类型信息对报文头部信息进行匹配重组处理,得到目标报文,并基于编译后的P4文件的执行策略将目标报文转发至与组播端口信息对应的组播端口,同时,交换机向控制器Packet-in信息,即将得到的目标报文通发送到控制器进行报文信息存储,其中,交换机向控制器发送的信息统称为Packet-in信息。之后,控制器根据探测包的存活时间(Time To Live,TTL)在控制器中设置报文存储时间,当目标报文的存储时间超过设置的报文存储时间,将目标报文进行删除。
需要说明的是,TTL存活时间是指容许这个数据包在到达其目的地之前通过多少个路由器。数据包每通过一个路由器,其生存时间都会由路由器减一,当生存时间降为零时,路由器就会丢弃这个数据包。因此,本申请中控制器会根据探测包的存活时间设置动态的报文存储时间,当目标报文的存储时间超过设置的报文存储时间,将目标报文进行删除。
在一些实施例中,基于可编程数据平面的组播转发方法还包括:当交换机在预设时间内未接收到组播端口返回的响应信息,交换机接收控制器基于TCP协议发送的第二报文,并向组播端口发送第二报文。
具体地,交换机基于执行策略将目标报文转发至与组播端口信息对应的组播端口,当交换机在预设时间内未接收到组播端口返回的响应信息,即组播端口未接收到目标报文,当前的组播网络发生丢发错误。则基于TCP的可靠传输协议,控制器将向交换机发送Packet-out信息,即控制器基于TCP协议向交换机发送第二报文,该第二报文可以是与第一报文相同的报文,其中,控制器向交换机发送的信息统称为Packet-out信息。交换机再次按照基于可编程数据平面的组播转发方法对该第二报文进行处理,并向组播端口发送第二报文。
在一些实施例中,基于可编程数据平面的组播转发方法还包括:交换机在接收到组播成员设备变更指示信息时,根据组播成员设备变更指示信息更改组播位信息中的组播端口信息。
具体地,为了更好地提高组播技术的应用,本申请的可编程数据平面处于实时运行时态,即交换机可以接受控制器实时下发的新P4文件,当交换机接收到组播成员设备变更指示信息时,根据组播成员设备变更指示信息更改组播位信息中的组播端口信息。
本申请实施例还提出了一种基于可编程数据平面的组播转发装置,该装置包括文件接收模块、编译模块、初始化模块和报文转发模块,文件接收模块用于交换机接收控制器发送的P4文件,P4文件携带转发指导信息,转发指导信息包括报文类型信息、执行策略和组播位信息;编译模块用于交换机对P4文件进行编译,得到报文类型信息、执行策略和组播位信息;初始化模块用于交换机通过对组播位信息进行初始化,得到组播端口信息;报文转发模块用于交换机在接收到与报文类型信息相匹配的目标报文时,基于执行策略将所述目标报文转发至与组播端口信息对应的组播端口。本申请利用具有与协议无关且设备独立特性的可编程数据平面,能够解决传统组播对于报文协议的限制,优化了组播传输中对于丢包、错包的容错机制。本申请实施例的基于可编程数据平面的组播转发装置用于执行上述实施例中的基于可编程数据平面的组播转发方法,其具体处理过程与上述实施例中基于可编程数据平面的组播转发方法相同,此处不再一一赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括存储器和处理器,其中,存储器中存储有程序,程序被处理器执行时处理器用于执行如本申请第一方面实施例中任一项的基于可编程数据平面的组播转发方法。
下面结合图6对计算机设备的硬件结构进行详细说明。该计算机设备包括:处理器601、存储器602、输入/输出接口603、通信接口604和总线605。
处理器601,可以采用通用的CPU(Central Processin Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器602,可以采用ROM(Read Only Memory,只读存储器)、静态存储设备、动态存储设备或者RAM(Random Access Memory,随机存取存储器)等形式实现。存储器602可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器602中,并由处理器601来调用执行本申请实施例的基于可编程数据平面的组播转发方法;
输入/输出接口603,用于实现信息输入及输出;
通信接口604,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和总线605,在设备的各个组件(例如处理器601、存储器602、输入/输出接口603和通信接口604)之间传输信息;
其中处理器601、存储器602、输入/输出接口603和通信接口604通过总线605实现彼此之间在设备内部的通信连接。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,在计算机程序被计算机执行时,计算机用于执行如本申请第一方面实施例中任一项的基于可编程数据平面的组播转发方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1至图5中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (7)
1.基于可编程数据平面的组播转发方法,其特征在于,应用于组播网络,所述组播网络包括控制器和交换机,所述方法包括:
所述交换机接收所述控制器发送的P4文件,所述P4文件携带转发指导信息,所述转发指导信息包括报文类型信息、执行策略和组播位信息;
所述交换机对所述P4文件进行编译,得到所述报文类型信息、所述执行策略和所述组播位信息;
所述交换机通过对所述组播位信息进行初始化,得到组播端口信息;
所述交换机接收所述控制器对所述P4文件编译得到的管道配置信息;
所述交换机通过对所述管道配置信息进行初始化,以建立所述交换机与所述组播端口信息对应的组播端口的端对端连接;
所述交换机在接收到与所述报文类型信息相匹配的目标报文时,基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的组播端口;
其中,所述交换机在接收到与所述报文类型信息相匹配的目标报文时,基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的组播端口,包括:
所述交换机对接收的第一报文进行解析处理,得到所述第一报文对应的报文头部信息;
根据所述报文头部信息确定所述组播端口信息对应的组播端口;
根据所述组播端口和所述报文类型信息对所述报文头部信息进行匹配重组处理,得到目标报文;
基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的所述组播端口;
将所述目标报文发送到所述控制器进行报文信息存储;
根据所述交换机发送的探测包的存活时间在所述控制器中设置报文存储时间,所述探测包的存活时间用于根据所述探测包在到达其目的地之前允许通过的路由器的数量确定;
当所述目标报文的存储时间超过设置的所述报文存储时间,将所述目标报文进行删除。
2.根据权利要求1所述的基于可编程数据平面的组播转发方法,其特征在于,所述交换机通过对所述管道配置信息进行初始化,以建立所述交换机与所述组播端口信息对应的组播端口的端对端连接,包括:
所述交换机通过对所述管道配置信息进行初始化,得到管道初始化配置信息;
所述交换机根据所述管道初始化配置信息和所述组播端口信息向对应的组播端口发送探测包,以建立所述交换机与对应的所述组播端口的端对端连接。
3.根据权利要求1所述的基于可编程数据平面的组播转发方法,其特征在于,所述方法还包括:
当所述交换机在预设时间内未接收到所述组播端口返回的响应信息,所述交换机接收所述控制器基于TCP协议发送的第二报文,并向所述组播端口发送所述第二报文。
4.根据权利要求1所述的基于可编程数据平面的组播转发方法,其特征在于,所述方法还包括:
所述交换机在接收到组播成员设备变更指示信息时,根据所述组播成员设备变更指示信息更改所述组播位信息中的所述组播端口信息。
5.基于可编程数据平面的组播转发装置,其特征在于,包括:
文件接收模块,用于交换机接收控制器发送的P4文件,所述P4文件携带转发指导信息,所述转发指导信息包括报文类型信息、执行策略和组播位信息;
编译模块,用于所述交换机对所述P4文件进行编译,得到所述报文类型信息、所述执行策略和所述组播位信息;
初始化模块,用于所述交换机通过对所述组播位信息进行初始化,得到组播端口信息;所述交换机接收所述控制器对所述P4文件编译得到的管道配置信息;所述交换机通过对所述管道配置信息进行初始化,以建立所述交换机与所述组播端口信息对应的组播端口的端对端连接;
报文转发模块,用于所述交换机在接收到与所述报文类型信息相匹配的目标报文时,基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的组播端口;其中,所述交换机在接收到与所述报文类型信息相匹配的目标报文时,基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的组播端口,包括:所述交换机对接收的第一报文进行解析处理,得到所述第一报文对应的报文头部信息;根据所述报文头部信息确定所述组播端口信息对应的组播端口;根据所述组播端口和所述报文类型信息对所述报文头部信息进行匹配重组处理,得到目标报文;基于所述执行策略将所述目标报文转发至与所述组播端口信息对应的所述组播端口;将所述目标报文发送到所述控制器进行报文信息存储;根据所述交换机发送的探测包的存活时间在所述控制器中设置报文存储时间,所述探测包的存活时间用于根据所述探测包在到达其目的地之前允许通过的路由器的数量确定;当所述目标报文的存储时间超过设置的所述报文存储时间,将所述目标报文进行删除。
6.计算机设备,其特征在于,所述计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行:
如权利要求1至4中任一项所述的基于可编程数据平面的组播转发方法。
7.计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,在所述计算机程序被计算机执行时,所述计算机用于执行:
如权利要求1至4中任一项所述的基于可编程数据平面的组播转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210035797.3A CN114553799B (zh) | 2022-01-10 | 2022-01-10 | 基于可编程数据平面的组播转发方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210035797.3A CN114553799B (zh) | 2022-01-10 | 2022-01-10 | 基于可编程数据平面的组播转发方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114553799A CN114553799A (zh) | 2022-05-27 |
CN114553799B true CN114553799B (zh) | 2023-11-03 |
Family
ID=81671358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210035797.3A Active CN114553799B (zh) | 2022-01-10 | 2022-01-10 | 基于可编程数据平面的组播转发方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114553799B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086392B (zh) * | 2022-06-01 | 2023-07-07 | 珠海高凌信息科技股份有限公司 | 一种基于异构芯片的数据平面和交换机 |
CN115460039B (zh) * | 2022-08-17 | 2023-07-11 | 珠海高凌信息科技股份有限公司 | 基于逻辑网络的大容量tdm交换***和方法、存储介质 |
CN118174975A (zh) * | 2022-12-08 | 2024-06-11 | 中兴通讯股份有限公司 | 数据的传输方法、***、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104113484A (zh) * | 2013-04-19 | 2014-10-22 | 中兴通讯股份有限公司 | 报文的转发处理方法及装置 |
CN104660511A (zh) * | 2015-01-16 | 2015-05-27 | 杭州华三通信技术有限公司 | 一种sdn网络中多播报文的传输方法和设备 |
CN105357130A (zh) * | 2015-11-25 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | 一种信息传输的***及控制器 |
CN106375223A (zh) * | 2016-10-25 | 2017-02-01 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的数据转发***及方法 |
WO2018205982A1 (zh) * | 2017-05-11 | 2018-11-15 | 中兴通讯股份有限公司 | 软件定义网络中广播、组播实现方法、装置及存储介质 |
US10243857B1 (en) * | 2016-09-09 | 2019-03-26 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for multipath group updates |
CN110224942A (zh) * | 2018-03-01 | 2019-09-10 | 中兴通讯股份有限公司 | 一种报文处理方法、装置及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713295B2 (en) * | 2004-07-12 | 2014-04-29 | Oracle International Corporation | Fabric-backplane enterprise servers with pluggable I/O sub-system |
CN104022960B (zh) * | 2013-02-28 | 2017-05-31 | 新华三技术有限公司 | 基于OpenFlow协议实现PVLAN的方法和装置 |
-
2022
- 2022-01-10 CN CN202210035797.3A patent/CN114553799B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104113484A (zh) * | 2013-04-19 | 2014-10-22 | 中兴通讯股份有限公司 | 报文的转发处理方法及装置 |
CN104660511A (zh) * | 2015-01-16 | 2015-05-27 | 杭州华三通信技术有限公司 | 一种sdn网络中多播报文的传输方法和设备 |
CN105357130A (zh) * | 2015-11-25 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | 一种信息传输的***及控制器 |
US10243857B1 (en) * | 2016-09-09 | 2019-03-26 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for multipath group updates |
CN106375223A (zh) * | 2016-10-25 | 2017-02-01 | 上海斐讯数据通信技术有限公司 | 一种基于sdn的数据转发***及方法 |
WO2018205982A1 (zh) * | 2017-05-11 | 2018-11-15 | 中兴通讯股份有限公司 | 软件定义网络中广播、组播实现方法、装置及存储介质 |
CN110224942A (zh) * | 2018-03-01 | 2019-09-10 | 中兴通讯股份有限公司 | 一种报文处理方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
王沁 ; 袁玲玲 ; 张燕 ; 许娜 ; 李 ; .HFC网络组播技术研究与实现.小型微型计算机***.2009,(11),全文. * |
面向服务定制的未来网络架构;刘韵洁;张娇;黄韬;潘恬;;重庆邮电大学学报(自然科学版)(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114553799A (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114553799B (zh) | 基于可编程数据平面的组播转发方法、装置、设备及介质 | |
US7646739B2 (en) | Multicast routing over unidirectional links | |
CN101286867B (zh) | 一种网络设备的软件升级方法与*** | |
CN101834783B (zh) | 一种报文转发方法、装置及网络设备 | |
JP6598771B2 (ja) | データ・ネットワークにおける分散データ送信 | |
CN106921578B (zh) | 一种转发表项的生成方法和装置 | |
CN109981323B (zh) | 一种检测数据链路层组播路径状态的方法和网络设备 | |
TWI599201B (zh) | 網路系統及建立資料連線的方法 | |
CN109391551B (zh) | 一种多端口组播方法、设备及计算机可读存储介质 | |
CN102638453A (zh) | 一种基于Linux***服务器的语音数据内核转发方法 | |
CN101651609A (zh) | 实现组播负载分担的方法及装置 | |
CN110875914B (zh) | 一种基于共享会话链路传输消息的方法及装置 | |
JP2006074132A (ja) | マルチキャスト通信方法及びゲートウェイ装置 | |
WO2020214469A1 (en) | Efficient message transmission and loop avoidance in an rpl network | |
CN101808043B (zh) | 端口汇聚trunk成员业务报文转发状态的检测方法及装置 | |
CN102685009B (zh) | 一种组播传输路径的探测方法及装置 | |
CN107483628B (zh) | 基于dpdk的单向代理方法及*** | |
CN101309154B (zh) | 报文的发送方法、发送装置和传输*** | |
CN110192382B (zh) | 一种网络通信方法、对等体及*** | |
CN112468363B (zh) | 一种链路连通性检测的方法及装置 | |
CN101510901B (zh) | 一种分布式设备间的通信方法、通信设备和通信*** | |
WO2021196963A1 (zh) | 信息同步方法、终端及信息同步*** | |
US20110286451A1 (en) | Method, apparatus and computer product for sending or receiving data over multiple networks | |
CN111953786A (zh) | 全网报文的录取***、方法、装置、网络设备及存储介质 | |
CN114915920B (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 |