CN114553799A - Multicast forwarding method, device, equipment and medium based on programmable data plane - Google Patents
Multicast forwarding method, device, equipment and medium based on programmable data plane Download PDFInfo
- Publication number
- CN114553799A CN114553799A CN202210035797.3A CN202210035797A CN114553799A CN 114553799 A CN114553799 A CN 114553799A CN 202210035797 A CN202210035797 A CN 202210035797A CN 114553799 A CN114553799 A CN 114553799A
- Authority
- CN
- China
- Prior art keywords
- multicast
- information
- message
- switch
- forwarding
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004083 survival effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 12
- 230000007246 mechanism Effects 0.000 abstract description 5
- 230000008901 benefit Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 8
- 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
- 238000012546 transfer Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000014509 gene expression 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
- 230000006855 networking Effects 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
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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
The application provides a multicast forwarding method, a device, equipment and a medium based on a programmable data plane, belonging to the technical field of communication. The method comprises the following steps: the switch receives a P4 file sent by the controller, the P4 file carries forwarding guide information, and the forwarding guide information comprises message type information, an execution strategy and multicast bit information; the exchanger compiles the P4 file to obtain message type information, execution strategy and multicast bit information; the exchanger obtains the multicast port information by initializing the multicast bit information; and when the switch receives the target message matched with the message type information, forwarding the target message to a multicast port corresponding to the multicast port information based on an execution strategy. The method and the device have the advantages that the programmable data plane which is irrelevant to the protocol and has the independent characteristic of the device is utilized, the limitation of the traditional multicast on the message protocol can be solved, and the fault-tolerant mechanism of packet loss and packet error in multicast transmission is optimized.
Description
Technical Field
The present application relates to the field of communications technologies, and in particular, to a multicast forwarding method, apparatus, device, and medium based on a programmable data plane.
Background
Multicast is a networking technology that can send the same data packets to a group of clients at the same time. The hosts may request to join or leave a group from a router, and routers and switches in the network selectively copy and transfer data, i.e., transfer intra-group data only to those hosts that join the group.
IP multicast is the provision of a dynamic many-to-many connection between a group of senders (at least 1) and a group of receivers. The format of IP multicast messages is the same as that of unicast messages and is distinguished only by using a special destination address (IPv4 class D address) that represents a specific multicast group. However, the use of the technology is limited, firstly, the existing multicast protocol does not support the self-defined message; secondly, in the point-to-point connection, the TCP protocol has a perfect scene of handling packet loss, and in the multipoint connection, some errors cannot be handled simply. Meanwhile, the TCP protocol commonly used in the industry is not applicable to the traditional multicast mode, which greatly limits the use of the multicast technology.
Disclosure of Invention
The embodiments of the present application mainly aim to provide a method, an apparatus, a device, and a medium for multicast forwarding based on a programmable data plane, which can solve the limitation of the conventional multicast on a message protocol and optimize a fault-tolerant mechanism for packet loss and packet error in multicast transmission by using a programmable data plane having a protocol-independent and device-independent characteristic.
In order to achieve the above object, a first aspect of the embodiments of the present application provides a multicast forwarding method for a programmable data plane, which is applied to a multicast network, where the multicast network includes a controller and a switch, and the method includes:
the switch receives a P4 file sent by the controller, the P4 file carries forwarding guide information, and the forwarding guide information comprises message type information, an execution strategy and multicast bit information;
the exchanger compiles the P4 file to obtain the message type information, the execution strategy and the multicast bit information;
the switch initializes the multicast bit information to obtain multicast port information;
and when receiving the target message matched with the message type information, the switch forwards the target message to a multicast port corresponding to the multicast port information based on the execution strategy.
In some embodiments, before the switch receives the packet matching the packet type information and forwards the packet to the multicast port corresponding to the multicast port information based on the execution policy, the method further includes:
the exchanger receives the pipeline configuration information obtained by compiling the P4 file by the controller;
and the exchanger initializes the pipeline configuration information to establish end-to-end connection of the exchanger and the multicast port corresponding to the multicast port information.
In some embodiments, the switch, by initializing the pipe configuration information, establishes an end-to-end connection between the switch and a multicast port corresponding to the multicast port information, including:
the exchanger initializes the pipeline configuration information to obtain pipeline initialization configuration information;
and the switch sends a detection packet to the corresponding multicast port according to the pipeline initialization configuration information and the multicast port information so as to establish end-to-end connection between the switch and the corresponding multicast port.
In some embodiments, when the switch receives a target packet matching the packet type information, forwarding the target packet to a multicast port corresponding to the multicast port information based on the execution policy, including:
the switch analyzes the received first message to obtain message header information corresponding to the first message;
determining a multicast port corresponding to the multicast port information according to the message header information;
matching and recombining the message header information according to the multicast port and the message type information to obtain a target message;
and forwarding the target message to the multicast port corresponding to the multicast port information based on the execution strategy.
In some embodiments, when the switch receives a target packet matching the packet type information, the switch forwards the target packet to a multicast port corresponding to the multicast port information based on the execution policy, and further includes:
acquiring the target message corresponding to the multicast port;
sending the target message to the controller for message information storage;
setting message storage time in the controller according to the survival time of the detection packet;
and when the storage time of the target message exceeds the set message storage time, deleting the target message.
In some embodiments, the method further comprises:
and when the switch does not receive response information returned by the multicast port within preset time, the switch receives a second message sent by the controller based on a TCP (transmission control protocol), and sends the second message to the multicast port.
In some embodiments, the method further comprises:
and when the exchanger receives multicast member equipment change indication information, the exchanger changes the multicast port information in the multicast bit information according to the multicast member equipment change indication information.
A second aspect of the present application provides a multicast forwarding apparatus based on a programmable data plane, including:
a file receiving module, configured to receive, by a switch, a P4 file sent by a controller, where the P4 file carries forwarding guidance information, and the forwarding guidance information includes message type information, an execution policy, and multicast bit information;
the compiling module is used for compiling the P4 file by the switch to obtain the message type information, the execution strategy and the multicast bit information;
the initialization module is used for initializing the multicast bit information by the switch to obtain multicast port information;
and the message forwarding module is used for forwarding the target message to the multicast port corresponding to the multicast port information based on the execution strategy when the switch receives the target message matched with the message type information.
A third aspect of embodiments of the present application provides a computer device, where the computer device includes a memory and a processor, where the memory stores a program, and the processor is configured to execute the programmable data plane based multicast forwarding method according to any one of the embodiments of the first aspect of the present application when the program is executed by the processor.
A fourth aspect of the embodiments of the present application provides a computer-readable storage medium, which stores a computer program, and when the computer program is executed by a computer, the computer is configured to execute the multicast forwarding method based on a programmable data plane according to any one of the embodiments of the first aspect of the present application.
The multicast forwarding method, device, equipment and medium based on the programmable data plane, provided by the embodiment of the application, are applied to a multicast network, the multicast network comprises a controller and a switch, and the switch receives a P4 file sent by the controller, wherein the P4 file carries forwarding guide information, and the forwarding guide information comprises message type information, an execution strategy and multicast bit information and is used for guiding the forwarding of a compiled P4 file. The exchanger compiles the P4 file to obtain message type information, execution strategy and multicast bit information. Then, the switch initializes the multicast bit information to obtain multicast port information. And when the switch receives the target message matched with the message type information, forwarding the target message to a multicast port corresponding to the multicast port information based on an execution strategy. By utilizing the programmable data plane which is irrelevant to the protocol and has the independent characteristic of equipment, the method and the device can solve the problem of the limitation of the traditional multicast network on the message protocol, and optimize the fault-tolerant mechanism of packet loss and packet error in multicast transmission.
Drawings
Fig. 1 is a flowchart of a multicast forwarding method based on a programmable data plane according to an embodiment of the present application;
fig. 2 is a flowchart of a multicast forwarding method based on a programmable data plane according to another embodiment of the present application;
FIG. 3 is a flowchart of step S230 in FIG. 2;
FIG. 4 is a flowchart of step S140 in FIG. 1;
FIG. 5 is another flowchart of step S140 in FIG. 1;
fig. 6 is a schematic hardware structure diagram of a computer device according to an embodiment of the present application.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the present application is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the present application and are not intended to limit the present application.
It should be noted that although functional blocks are partitioned in a schematic diagram of an apparatus and a logical order is shown in a flowchart, in some cases, the steps shown or described may be performed in a different order than the partitioning of blocks in the apparatus or the order in the flowchart. The terms first, second and the like in the description and in the claims, and the drawings described above, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of the present application only and is not intended to be limiting of the application.
Multicast (Multicast), also known as multicasting, is a form of transmission used in networks that allows for the delivery of a transmitted message to a selected subset of all possible destinations, i.e. to deliver information to a variety of addresses, as specified, and is a method of communication between a sender and a plurality of receivers. Specifically, when an active host sends an information demand to a multipoint target host, the source host only sends one piece of data, and the destination address of the data is a multicast group address, so that all members belonging to the group can receive a copy of the data sent by the source host. Therefore, the multicast mode solves the problems of repeated copying of data and repeated occupation of bandwidth under the unicast condition and also solves the waste of bandwidth resources under the broadcast mode.
IP multicast is the provision of a dynamic many-to-many connection between a group of senders (at least 1) and a group of receivers. The format of IP multicast messages is the same as that of unicast messages, and is distinguished only by using a special destination address (IPv4 class D address) which represents a specific multicast group. However, the use of the technology is limited, firstly, the existing multicast protocol does not support the self-defined message; secondly, in the point-to-point connection, the TCP protocol has a perfect scene of handling packet loss, and in the multipoint connection, some errors cannot be handled simply. Meanwhile, the TCP protocol commonly used in the industry is not suitable for the traditional multicast mode, which greatly limits the use of the multicast technology.
Based on this, the embodiments of the present application mainly aim to provide a method, an apparatus, a device, and a medium for multicast forwarding based on a programmable data plane, which can utilize a programmable data plane having a characteristic independent from a protocol and a device, and can solve the limitation of a traditional multicast network on a message protocol, and optimize a fault tolerance mechanism for packet loss and packet error in multicast transmission.
Embodiments of the application are operational with numerous general purpose or special purpose computing system environments or configurations. For example: server computers, hand-held or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, programmable consumer computer devices, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. The application may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The application may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
Referring to fig. 1, the multicast forwarding method based on the programmable data plane according to the first aspect of the embodiment of the present application is applied to a multicast network, where the multicast network includes a controller and a switch, and the method includes, but is not limited to, step S110 to step S140.
S110, the exchanger receives a P4 file sent by the controller, the P4 file carries forwarding guide information, and the forwarding guide information comprises message type information, an execution strategy and multicast bit information;
s120, the exchanger compiles the P4 file to obtain message type information, an execution strategy and multicast bit information;
s130, the exchanger initializes the multicast bit information to obtain multicast port information;
and S140, when the switch receives the target message matched with the message type information, the switch forwards the target message to the multicast port corresponding to the multicast port information based on the execution strategy.
Specifically, the multicast network receives a P4 file sent by the controller through the switch, where the P4 file carries forwarding guidance information, and the forwarding guidance information includes message type information, an execution policy, and multicast bit information. The message type information includes a message format and a protocol type, an execution policy is an action to be executed correspondingly, and Multicast bit (Multicast _ bits) information is used to obtain corresponding Multicast port information that the message needs to be transmitted. The exchanger compiles the P4 file through a compiler to obtain message type information, an execution strategy and multicast bit information. And then, the exchanger initializes the multicast bit information to obtain the multicast port information. And when the switch receives the target message matched with the message type information, forwarding the target message to a multicast port corresponding to the multicast port information based on an execution strategy.
It should be noted that, in the present application, a programmable data plane is used as an implementation carrier of a multicast network, the programmable data plane utilizes a control plane (equivalent to a controller in the multicast network) and a data plane (equivalent to a switch in the multicast network) that are separated by numerical control, and the programmable data plane has characteristics of independence from a protocol and independence from a device, and can implement transmission of a message of a custom protocol in the multicast network, that is, a point-to-point protocol including a TCP protocol and the like that is not supported by a traditional multicast mode.
In some embodiments, as shown in fig. 2, before step S140, the method further includes, but is not limited to, step S210 to step S220.
S210, the exchanger receives the pipeline configuration information obtained by compiling the P4 file by the controller;
and S220, the exchanger initializes the pipeline configuration information to establish end-to-end connection of the exchanger and the multicast port corresponding to the multicast port information.
Specifically, the controller loads the P4 file, compiles the P4 file to obtain the pipeline configuration information through the compiler, and sends the pipeline configuration information to the data plane, i.e., the switch. Then, the switch initializes the pipe configuration information to establish the end-to-end connection between the switch and the multicast port corresponding to the multicast port information, that is, the end-to-end connection between the switch and the corresponding multicast port is realized on the forwarding layer of the switch, thereby reducing the load of the service end in the multicast network.
In some embodiments, as shown in fig. 3, step S230 specifically includes, but is not limited to, step S310 to step S320.
S310, the exchanger initializes the pipeline configuration information to obtain pipeline initialization configuration information;
and S320, the switch sends a detection packet to the corresponding multicast port according to the pipeline initialization configuration information and the multicast port information so as to establish end-to-end connection between the switch and the corresponding multicast port.
Specifically, the switch initializes the loaded pipe configuration information to obtain pipe initialization configuration information, and according to the written specific code behavior requirement, the switch sends a detection packet to a corresponding multicast port through the pipe initialization configuration information and the multicast port information, where the detection packet is used to establish a reliable protocol connection, such as a TCP connection, with each client of a multicast group in a multicast network.
It should be noted that, when accessing the multicast network, the multicast source may perform client authentication on the client device of the multicast group, and issue corresponding permission information after the client authentication is passed, so as to control subsequent multicast packet transmission of the client device, and prevent the client device that has not been authenticated from arbitrarily transmitting the multicast packet to the multicast network, thereby improving the security of the multicast source control process in the multicast network. Meanwhile, the programmable data plane utilized by the method has the characteristic of independent running state of equipment, and can change the port information of the client in the multicast group network in real time, thereby realizing convenient change of members in the multicast group.
In some embodiments, as shown in fig. 4, step S140 specifically includes, but is not limited to, step S410 to step S440.
S410, the switch analyzes the received first message to obtain message header information corresponding to the first message;
s420, determining a multicast port corresponding to the multicast port information according to the message header information;
s430, matching and recombining the message header information according to the multicast port and the message type information to obtain a target message;
and S440, forwarding the target packet to a multicast port corresponding to the multicast port information based on the execution strategy.
Specifically, the server sends a first message, and the switch analyzes the received first message to obtain message header information corresponding to the first message. And matching flow table information in the switch according to the message header information to determine a multicast port corresponding to the multicast port information to be sent by the first message, reading the multicast port number of the multicast port according to the bit, and performing matching recombination processing on the message header information according to the multicast port and the message type information to obtain a target message. And finally, forwarding the target message to a multicast port corresponding to the multicast port information based on the compiled execution strategy of the P4 file. For example, when the received first packet is an IPv4 packet, the packet header information of the IPv4 packet is analyzed, and then the multicast port of the corresponding multicast port information is matched, so that end-to-end TCP connection between the switch and the multicast port is established, and reliable protocol packets can be transmitted.
In some embodiments, as shown in fig. 5, step S140 further includes, but is not limited to, step S510 to step S540.
S510, acquiring a target message corresponding to a multicast port;
s520, sending the target message to a controller for message information storage;
s530, setting message storage time in the controller according to the survival time of the detection packet;
and S540, when the storage time of the target message exceeds the set message storage time, deleting the target message.
Specifically, when matching and recombining the message header information according to the multicast port and the message type information to obtain a target message, the target message is forwarded to the multicast port corresponding to the multicast port information based on the execution strategy of the compiled P4 file, and meanwhile, the switch sends Packet-in information to the controller, that is, the obtained target message is sent to the controller for message information storage, wherein the information sent to the controller by the switch is collectively referred to as Packet-in information. And then, the controller sets message storage Time in the controller according To the Time To Live (TTL) of the detection packet, and deletes the target message when the storage Time of the target message exceeds the set message storage Time.
It should be noted that TTL time-to-live refers to how many routers this packet is allowed to pass through before reaching its destination. Every time a packet passes through a router, the survival time of the packet is reduced by one by the router, and when the survival time is reduced to zero, the router discards the packet. Therefore, the controller in the present application may set a dynamic message storage time according to the survival time of the detection packet, and delete the target message when the storage time of the target message exceeds the set message storage time.
In some embodiments, the multicast forwarding method based on the programmable data plane further includes: and when the switch does not receive the response information returned by the multicast port within the preset time, the switch receives a second message sent by the controller based on the TCP protocol, and sends the second message to the multicast port.
Specifically, the switch forwards the target packet to the multicast port corresponding to the multicast port information based on the execution policy, and when the switch does not receive response information returned by the multicast port within a preset time, that is, the multicast port does not receive the target packet, a loss error occurs in the current multicast network. Based on the reliable transmission protocol of the TCP, the controller sends Packet-out information to the switch, that is, the controller sends a second Packet to the switch based on the TCP protocol, where the second Packet may be the same as the first Packet, and the information sent to the switch by the controller is collectively referred to as Packet-out information. The exchanger processes the second message according to the multicast forwarding method based on the programmable data plane and sends the second message to the multicast port.
In some embodiments, the multicast forwarding method based on the programmable data plane further includes: and when the exchanger receives the multicast member equipment change indication information, the exchanger changes the multicast port information in the multicast bit information according to the multicast member equipment change indication information.
Specifically, in order to better improve the application of the multicast technology, the programmable data plane of the present application is in a real-time operation state, that is, the switch may receive a new P4 file issued by the controller in real time, and when the switch receives the multicast member device change indication information, the switch changes the multicast port information in the multicast bit information according to the multicast member device change indication information.
The embodiment of the application also provides a multicast forwarding device based on the programmable data plane, which comprises a file receiving module, a compiling module, an initializing module and a message forwarding module, wherein the file receiving module is used for a switch to receive the P4 file sent by the controller, the P4 file carries forwarding guide information, and the forwarding guide information comprises message type information, an execution strategy and multicast bit information; the compiling module is used for compiling the P4 file by the exchanger to obtain message type information, an execution strategy and multicast bit information; the initialization module is used for initializing the multicast bit information by the switch to obtain multicast port information; and the message forwarding module is used for forwarding the target message to the multicast port corresponding to the multicast port information based on an execution strategy when the switch receives the target message matched with the message type information. The method and the device have the advantages that the programmable data plane which is irrelevant to the protocol and has the independent characteristic of the device is utilized, the limitation of the traditional multicast to the message protocol can be solved, and the fault-tolerant mechanism of packet loss and packet error in multicast transmission is optimized. The multicast forwarding apparatus based on the programmable data plane according to this embodiment is used to execute the multicast forwarding method based on the programmable data plane in the foregoing embodiment, and a specific processing procedure of the multicast forwarding apparatus is the same as that of the multicast forwarding method based on the programmable data plane in the foregoing embodiment, and is not described here any more.
The embodiment of the present application further provides a computer device, which includes a memory and a processor, where the memory stores a program, and the processor is configured to execute the method for multicast forwarding based on a programmable data plane according to any one of the embodiments of the first aspect of the present application when the program is executed by the processor.
The hardware structure of the computer apparatus will be described in detail below with reference to fig. 6. The computer device includes: a processor 601, a memory 602, an input/output interface 603, a communication interface 604, and a bus 605.
The processor 601 may be implemented by a general CPU (Central processing Unit), a microprocessor, an Application Specific Integrated Circuit (ASIC), or one or more Integrated circuits, and is configured to execute a relevant program to implement the technical solution provided in the embodiment of the present Application;
the Memory 602 may be implemented in a ROM (Read Only Memory), a static Memory device, a dynamic Memory device, or a RAM (Random Access Memory). The memory 602 may store an operating system and other application programs, and when the technical solution provided by the embodiments of the present specification is implemented by software or firmware, the relevant program codes are stored in the memory 602 and called by the processor 601 to execute the multicast forwarding method based on the programmable data plane according to the embodiments of the present application;
an input/output interface 603 for implementing information input and output;
the communication interface 604 is configured to implement communication interaction between the device and other devices, and may implement communication in a wired manner (e.g., USB, network cable, etc.) or in a wireless manner (e.g., mobile network, WIFI, bluetooth, etc.); and a bus 605 that transfers information between the various components of the device (e.g., the processor 601, memory 602, input/output interfaces 603, and communication interface 604);
wherein the processor 601, the memory 602, the input/output interface 603 and the communication interface 604 are communicatively connected to each other within the device via a bus 605.
Embodiments of the present application further provide a computer-readable storage medium, where a computer program is stored, and when the computer program is executed by a computer, the computer is configured to execute the multicast forwarding method based on a programmable data plane according to any one of the embodiments of the first aspect of the present application.
The memory, which is a non-transitory computer readable storage medium, may be used to store non-transitory software programs as well as non-transitory computer executable programs. Further, the memory may include high speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid state storage device. In some embodiments, the memory optionally includes memory located remotely from the processor, and these remote memories may be connected to the processor through a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The embodiments described in the embodiments of the present application are for more clearly illustrating the technical solutions of the embodiments of the present application, and do not constitute a limitation to the technical solutions provided in the embodiments of the present application, and it is obvious to those skilled in the art that the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems with the evolution of technology and the emergence of new application scenarios.
Those skilled in the art will appreciate that the solutions shown in fig. 1 to 5 do not constitute a limitation on the embodiments of the present application, and may include more or less steps than those shown, or combine some steps, or different steps.
The above-described embodiments of the apparatus are merely illustrative, wherein the units illustrated as separate components may or may not be physically separate, i.e. may be located in one place, or may also be distributed over a plurality of network elements. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present embodiment.
One of ordinary skill in the art will appreciate that all or some of the steps of the methods, systems, functional modules/units in the devices disclosed above may be implemented as software, firmware, hardware, and suitable combinations thereof.
The terms "first," "second," "third," "fourth," and the like in the description of the application and the above-described figures, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the application described herein are capable of operation in sequences other than those illustrated or described herein. Moreover, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
It should be understood that in the present application, "at least one" means one or more, "a plurality" means two or more. "and/or" is used to describe the association relationship of the associated object, indicating that there may be three relationships, for example, "a and/or B" may indicate: only A, only B and both A and B are present, wherein A and B may be singular or plural. The character "/" generally indicates that the former and latter associated objects are in an "or" relationship. "at least one of the following" or similar expressions refer to any combination of these items, including any combination of single item(s) or plural items. For example, at least one (one) of a, b, or c, may represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", wherein a, b, c may be single or plural.
In the several embodiments provided in the present application, it should be understood that the disclosed apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be substantially implemented or contributed to by the prior art, or all or part of the technical solution may be embodied in a software product, which is stored in a storage medium and includes multiple instructions for causing a computer device (which may be a personal computer, a server, or a network device) to perform all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing programs, such as a usb disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The preferred embodiments of the present application have been described above with reference to the accompanying drawings, and the scope of the claims of the embodiments of the present application is not limited thereto. Any modifications, equivalents and improvements that may occur to those skilled in the art without departing from the scope and spirit of the embodiments of the present application are intended to be within the scope of the claims of the embodiments of the present application.
Claims (10)
1. The multicast forwarding method based on the programmable data plane is applied to a multicast network, the multicast network comprises a controller and a switch, and the method comprises the following steps:
the switch receives a P4 file sent by the controller, the P4 file carries forwarding guide information, and the forwarding guide information comprises message type information, an execution strategy and multicast bit information;
the exchanger compiles the P4 file to obtain the message type information, the execution strategy and the multicast bit information;
the switch initializes the multicast bit information to obtain multicast port information;
and when receiving the target message matched with the message type information, the switch forwards the target message to a multicast port corresponding to the multicast port information based on the execution strategy.
2. The method according to claim 1, wherein before the switch forwards the packet to the multicast port corresponding to the multicast port information based on the execution policy when receiving the packet matching the packet type information, the method further comprises:
the exchanger receives the pipeline configuration information obtained by compiling the P4 file by the controller;
and the switch initializes the pipeline configuration information to establish end-to-end connection between the switch and the multicast port corresponding to the multicast port information.
3. The multicast forwarding method based on the programmable data plane according to claim 2, wherein the switch establishes the end-to-end connection of the multicast port corresponding to the multicast port information by initializing the pipe configuration information, and the method comprises:
the exchanger initializes the pipeline configuration information to obtain pipeline initialization configuration information;
and the switch sends a detection packet to the corresponding multicast port according to the pipeline initialization configuration information and the multicast port information so as to establish end-to-end connection between the switch and the corresponding multicast port.
4. The multicast forwarding method based on the programmable data plane according to claim 1, wherein the switch, when receiving the target packet matching the packet type information, forwards the target packet to the multicast port corresponding to the multicast port information based on the execution policy, including:
the switch analyzes the received first message to obtain message header information corresponding to the first message;
determining a multicast port corresponding to the multicast port information according to the message header information;
matching and recombining the message header information according to the multicast port and the message type information to obtain a target message;
and forwarding the target message to the multicast port corresponding to the multicast port information based on the execution strategy.
5. The multicast forwarding method based on the programmable data plane according to claim 3, wherein the switch, when receiving the target packet matching the packet type information, forwards the target packet to the multicast port corresponding to the multicast port information based on the execution policy, further comprising:
acquiring the target message corresponding to the multicast port;
sending the target message to the controller for message information storage;
setting message storage time in the controller according to the survival time of the detection packet;
and when the storage time of the target message exceeds the set message storage time, deleting the target message.
6. The method of claim 1, wherein the method further comprises:
and when the switch does not receive response information returned by the multicast port within preset time, the switch receives a second message sent by the controller based on a TCP (transmission control protocol) and sends the second message to the multicast port.
7. The programmable data plane based multicast forwarding method of claim 1, wherein the method further comprises:
and when the exchanger receives multicast member equipment change indication information, the exchanger changes the multicast port information in the multicast bit information according to the multicast member equipment change indication information.
8. A multicast forwarding apparatus based on a programmable data plane, comprising:
a file receiving module, configured to receive, by a switch, a P4 file sent by a controller, where the P4 file carries forwarding guidance information, and the forwarding guidance information includes message type information, an execution policy, and multicast bit information;
the compiling module is used for compiling the P4 file by the switch to obtain the message type information, the execution strategy and the multicast bit information;
the initialization module is used for initializing the multicast bit information by the switch to obtain multicast port information;
and the message forwarding module is used for forwarding the target message to the multicast port corresponding to the multicast port information based on the execution strategy when the switch receives the target message matched with the message type information.
9. Computer device, characterized in that the computer device comprises a memory and a processor, wherein the memory has stored therein a program which, when executed by the processor, is adapted to perform:
a method for programmable data plane based multicast forwarding according to any of claims 1 to 7.
10. A computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and wherein when the computer program is executed by a computer, the computer is configured to perform:
the programmable data plane based multicast forwarding method according to any of claims 1 to 7.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210035797.3A CN114553799B (en) | 2022-01-10 | 2022-01-10 | Multicast forwarding method, device, equipment and medium based on programmable data plane |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210035797.3A CN114553799B (en) | 2022-01-10 | 2022-01-10 | Multicast forwarding method, device, equipment and medium based on programmable data plane |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114553799A true CN114553799A (en) | 2022-05-27 |
| CN114553799B CN114553799B (en) | 2023-11-03 |
Family
ID=81671358
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210035797.3A Active CN114553799B (en) | 2022-01-10 | 2022-01-10 | Multicast forwarding method, device, equipment and medium based on programmable data plane |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114553799B (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115086392A (en) * | 2022-06-01 | 2022-09-20 | 珠海高凌信息科技股份有限公司 | Data plane and switch based on heterogeneous chip |
| CN115460039A (en) * | 2022-08-17 | 2022-12-09 | 珠海高凌信息科技股份有限公司 | High-capacity TDM switching system and method based on logic network, and storage medium |
| WO2024119915A1 (en) * | 2022-12-08 | 2024-06-13 | 中兴通讯股份有限公司 | Data transmission method and system, electronic device, and storage medium |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130117766A1 (en) * | 2004-07-12 | 2013-05-09 | Daniel H. Bax | Fabric-Backplane Enterprise Servers with Pluggable I/O Sub-System |
| US20140241353A1 (en) * | 2013-02-28 | 2014-08-28 | Hangzhou H3C Technologies Co., Ltd. | Switch controller |
| CN104113484A (en) * | 2013-04-19 | 2014-10-22 | 中兴通讯股份有限公司 | Message forwarding processing method and device |
| CN104660511A (en) * | 2015-01-16 | 2015-05-27 | 杭州华三通信技术有限公司 | Transmission method and equipment for multicast message in SDN network |
| CN105357130A (en) * | 2015-11-25 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | System for information transmission, and controller for information transmission |
| CN106375223A (en) * | 2016-10-25 | 2017-02-01 | 上海斐讯数据通信技术有限公司 | SDN-based data forwarding system and method |
| WO2018205982A1 (en) * | 2017-05-11 | 2018-11-15 | 中兴通讯股份有限公司 | Method and device for implementing broadcast and multicast in software-defined network and storage medium |
| US10243857B1 (en) * | 2016-09-09 | 2019-03-26 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for multipath group updates |
| CN110224942A (en) * | 2018-03-01 | 2019-09-10 | 中兴通讯股份有限公司 | A kind of message processing method, device and storage medium |
-
2022
- 2022-01-10 CN CN202210035797.3A patent/CN114553799B/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130117766A1 (en) * | 2004-07-12 | 2013-05-09 | Daniel H. Bax | Fabric-Backplane Enterprise Servers with Pluggable I/O Sub-System |
| US20140241353A1 (en) * | 2013-02-28 | 2014-08-28 | Hangzhou H3C Technologies Co., Ltd. | Switch controller |
| CN104113484A (en) * | 2013-04-19 | 2014-10-22 | 中兴通讯股份有限公司 | Message forwarding processing method and device |
| CN104660511A (en) * | 2015-01-16 | 2015-05-27 | 杭州华三通信技术有限公司 | Transmission method and equipment for multicast message in SDN network |
| CN105357130A (en) * | 2015-11-25 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | System for information transmission, and controller for information transmission |
| US10243857B1 (en) * | 2016-09-09 | 2019-03-26 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for multipath group updates |
| CN106375223A (en) * | 2016-10-25 | 2017-02-01 | 上海斐讯数据通信技术有限公司 | SDN-based data forwarding system and method |
| WO2018205982A1 (en) * | 2017-05-11 | 2018-11-15 | 中兴通讯股份有限公司 | Method and device for implementing broadcast and multicast in software-defined network and storage medium |
| CN110224942A (en) * | 2018-03-01 | 2019-09-10 | 中兴通讯股份有限公司 | A kind of message processing method, device and storage medium |
Non-Patent Citations (2)
| Title |
|---|
| 刘韵洁;张娇;黄韬;潘恬;: "面向服务定制的未来网络架构", 重庆邮电大学学报(自然科学版), no. 01 * |
| 王沁;袁玲玲;张燕;许娜;李;: "HFC网络组播技术研究与实现", no. 11 * |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115086392A (en) * | 2022-06-01 | 2022-09-20 | 珠海高凌信息科技股份有限公司 | Data plane and switch based on heterogeneous chip |
| CN115086392B (en) * | 2022-06-01 | 2023-07-07 | 珠海高凌信息科技股份有限公司 | Data plane and switch based on heterogeneous chip |
| CN115460039A (en) * | 2022-08-17 | 2022-12-09 | 珠海高凌信息科技股份有限公司 | High-capacity TDM switching system and method based on logic network, and storage medium |
| WO2024119915A1 (en) * | 2022-12-08 | 2024-06-13 | 中兴通讯股份有限公司 | Data transmission method and system, electronic device, and storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114553799B (en) | 2023-11-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7646739B2 (en) | Multicast routing over unidirectional links | |
| CN114553799B (en) | Multicast forwarding method, device, equipment and medium based on programmable data plane | |
| JP4722780B2 (en) | Multicast network monitoring method and multicast network system to which the method is applied | |
| US20110149960A1 (en) | Method and apparatus for filtering multicast packets | |
| JP6598771B2 (en) | Distributed data transmission in data networks | |
| US8855118B2 (en) | Source discovery for non-flooding multicast using openflow | |
| TWI599201B (en) | Network system and method of establishing data connection | |
| CN109981323B (en) | Method and network equipment for detecting multicast path state of data link layer | |
| CN109729397A (en) | Streaming method, system and server | |
| JP2006074132A (en) | Multicast communication method and gateway device | |
| US9246797B2 (en) | PORT based redundant link protection | |
| KR101491397B1 (en) | Efficient multicasting in a distributed system architecture | |
| WO2018024200A1 (en) | Virtual desktop multicast control method, terminal, proxy terminal, and cloud desktop server | |
| KR101388408B1 (en) | Method and system for facilitating one-to-many data transmission to a plurality of computing devices | |
| CN107332793A (en) | A kind of message forwarding method, relevant device and system | |
| US10476774B2 (en) | Selective transmission of bidirectional forwarding detection (BFD) messages for verifying multicast connectivity | |
| CN108900422B (en) | Multicast forwarding method and device and electronic equipment | |
| CN103281369B (en) | Message processing method and wide area network acceleration controller WOC | |
| CN112217735A (en) | Information synchronization method and load balancing system | |
| CN103780503A (en) | Load balancing realization method and apparatus | |
| JP2005286681A (en) | Relay equipment | |
| CN115348596B (en) | Data transmission method and system for coal mine working face, electronic equipment and storage medium | |
| CN111953786A (en) | System, method and device for recording messages in whole network, network equipment and storage medium | |
| CN111416760A (en) | Information synchronization method, terminal and information synchronization system | |
| CN104601343A (en) | Data downloading method, device and system |
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 |