Message forwarding method, electronic equipment and computer readable storage medium
By introducing a forwarding control node into the distributed system to uniformly manage the target forwarding table entries, the problem of message replication when the members of the link aggregation group change is solved, and the accuracy and stability of traffic forwarding are achieved.
Patent Information
- Application Number
- CN202410581733.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-05-11
- Publication Date
- 2025-11-11
AI Technical Summary
In a distributed system, when the members of a link aggregation group change, the processing time of forwarding table entries differs due to the different processing timing and load capacity of each board, resulting in the problem of message duplication.
By introducing a forwarding control node into the distributed system, the target forwarding table entries can be uniformly managed and distributed, ensuring the timing synchronization of each processing board and avoiding the problem of duplicate packets when switching link aggregation groups.
It effectively solves the problem of packet replication caused by link aggregation group switching in distributed systems, ensuring the accuracy and stability of traffic forwarding.
Smart Images

Figure CN120935103A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this application relate to, but are not limited to, the field of data processing, and particularly to a message forwarding method, a distributed system, an electronic device, a computer-readable storage medium, and a computer program product. Background Technology
[0002] In a distributed system, when traffic is forwarded using distributed devices, if the forwarding path is a link aggregation group, changes in the members of the link aggregation group can lead to differences in the processing time of the forwarding table entries on each board due to the independent processing of each board and the different processing timing and load capacity of each board. Consequently, when the traffic is forwarded on the forwarding chip, different results occur during the hash routing of the aggregation group's outgoing interface, resulting in duplicated packets. Summary of the Invention
[0003] The following is an overview of the subject matter described in detail herein. This overview is not intended to limit the scope of the claims.
[0004] This application provides a message forwarding method, a distributed system, an electronic device, a computer-readable storage medium, and a computer program product that can prevent packet replication problems caused when aggregated links switch in a distributed system.
[0005] In a first aspect, embodiments of this application provide a message forwarding method applied to a processing board in a distributed system, the method comprising:
[0006] Obtain the link aggregation message to be forwarded;
[0007] Obtain the target forwarding table entry of the distributed system, which is generated by a preset forwarding control node based on the topology information of the distributed system;
[0008] The link aggregation message to be forwarded is forwarded according to the target forwarding table entry.
[0009] Secondly, embodiments of this application provide a distributed system, including a forwarding control node and at least one processing board;
[0010] The forwarding control node is used to generate target forwarding table entries for the distributed system based on the topology information of the distributed system.
[0011] The processing board is used to obtain the target forwarding table entry and forward the received link aggregation packets to be forwarded according to the target forwarding table entry.
[0012] Thirdly, embodiments of this application provide an electronic device, including:
[0013] At least one processor;
[0014] At least one memory for storing at least one program;
[0015] When at least one of the programs is executed by at least one of the processors, the message forwarding method as described in the first aspect embodiment above is implemented.
[0016] Fourthly, embodiments of this application provide a computer-readable storage medium storing computer-executable instructions, characterized in that the computer-executable instructions are used to execute the message forwarding method described in the first aspect of the embodiments above.
[0017] Fifthly, embodiments of this application provide a computer program product, including a computer program or computer instructions, wherein the computer program or computer instructions are stored in a computer-readable storage medium, a processor of a computer device reads the computer program or computer instructions from the computer-readable storage medium, and the processor executes the computer program or computer instructions, causing the computer device to perform the message forwarding method as described in the first aspect embodiment above.
[0018] This application embodiment includes: during the packet forwarding process, firstly, the link aggregation packet to be forwarded is obtained; then, the target forwarding table entry of the distributed system is obtained, wherein the target forwarding table entry is generated by a preset forwarding control node according to the topology information of the distributed system; finally, the link aggregation packet to be forwarded can be forwarded according to the target forwarding table entry; through the above technical solution, the target forwarding table entry is uniformly managed and distributed based on the forwarding control node, and each board in the distributed system forwards the link aggregation packet according to the target forwarding table entry obtained from the forwarding control node, preventing the problem of duplicate packets when the aggregated link is switched in the distributed system, thereby effectively solving the problem of abnormal traffic forwarding. Attached Figure Description
[0019] The accompanying drawings are used to provide a further understanding of the technical solutions of this application and constitute a part of the specification. They are used together with the embodiments of this application to explain the technical solutions of this application and do not constitute a limitation on the technical solutions of this application.
[0020] Figure 1 This is a schematic diagram of the structure of a distributed system provided in one embodiment of this application;
[0021] Figure 2 This is a flowchart of a message forwarding method provided in one embodiment of this application;
[0022] Figure 3 This is a flowchart of forwarding a link aggregation packet to be forwarded, provided in one embodiment of this application;
[0023] Figure 4 This is a flowchart illustrating the determination of hash routing results according to an embodiment of this application;
[0024] Figure 5 This is a flowchart of forwarding a link aggregation packet to be forwarded, provided in another embodiment of this application;
[0025] Figure 6 This is a flowchart of a message forwarding method provided in another embodiment of this application;
[0026] Figure 7 This is a flowchart of a message forwarding method provided in another embodiment of this application;
[0027] Figure 8 This is a schematic diagram of the structure of an electronic device provided in one embodiment of this application. Detailed Implementation
[0028] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0029] It should be noted that although functional modules are divided in the device schematic diagram and a logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than the module division in the device or the order in the flowchart. The terms "first," "second," etc., in the specification, claims, and the aforementioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0030] In the description of this application, "several" means one or more, "more than" means two or more, "greater than," "less than," and "exceeding" are understood to exclude the stated number, while "above," "below," and "within" are understood to include the stated number. The use of "first" and "second" in the description is merely for distinguishing technical features and should not be construed as indicating or implying relative importance, or implicitly indicating the number of indicated technical features, or implicitly indicating the order of the indicated technical features.
[0031] In the description of this application, unless otherwise expressly defined, terms such as "setup," "installation," and "connection" should be interpreted broadly, and those skilled in the art can reasonably determine the specific meaning of the above terms in this application in conjunction with the specific content of the technical solution.
[0032] This application provides a message forwarding method, a distributed system, an electronic device, a computer-readable storage medium, and a computer program product. In the message forwarding process, firstly, the link aggregation message to be forwarded is obtained; then, the target forwarding table entry of the distributed system is obtained, wherein the target forwarding table entry is generated by a preset forwarding control node based on the topology information of the distributed system; finally, the link aggregation message to be forwarded can be forwarded according to the target forwarding table entry. Through the above technical solution, the target forwarding table entry is uniformly managed and distributed based on the forwarding control node, and each board in the distributed system forwards the link aggregation message according to the target forwarding table entry obtained from the forwarding control node, thereby effectively solving the problem of abnormal traffic forwarding.
[0033] The embodiments of this application will be further described below with reference to the accompanying drawings.
[0034] like Figure 1 As shown, Figure 1 This is a schematic diagram of the architecture of a distributed system 100 provided in one embodiment of this application. The distributed system 100 includes a forwarding control node 110 and at least one processing board 120; in Figure 1 The example shows a distributed system 100 including a forwarding control node 110 and multiple processing boards 120, but this does not limit the distributed system 100 to only include multiple processing boards 120; in some scenarios, the distributed system 100 may also include only one processing board 120. Each processing board 120 in the distributed system 100 is data-connected to the forwarding control node 110, and thus each processing board 120 can obtain target forwarding table entries from the forwarding control node 110. Subsequently, each processing board 120 can forward the received link aggregation packets to be forwarded according to the obtained target forwarding table entries.
[0035] In some embodiments of this application, the distributed system 100 may further include a switching board 130, which is used to distribute the link aggregation packets to be forwarded to the corresponding processing board 120. The processing board 120 forwards the received link aggregation packets to be forwarded according to the received destination forwarding table entries.
[0036] It is worth noting that, Figure 1The diagram illustrates the architecture of the distributed system 100. When configuring the original forwarding service (see table below), each processing board 120 needed to operate independently. This inevitably led to inconsistencies in forwarding table updates on the processing boards 120. Furthermore, due to incomplete synchronization during switching, when link-aggregated packets entered various processing boards 120 for forwarding, the link information for the same location obtained through hash routing might not be synchronized. This could cause different processing boards 120 to select the same link for simultaneous forwarding, resulting in duplicate packets. To address these issues, this embodiment utilizes a forwarding control node 110 to uniformly manage and distribute forwarding table entries. This ensures timing synchronization during processing by different processing boards 120 and avoids forwarding anomalies caused by the inability to simultaneously update forwarding table entries when link-aggregated packets enter different processing boards 120 at the same routing location.
[0037] The system architecture and application scenarios described in this application are intended to more clearly illustrate the technical solutions of this application and do not constitute a limitation on the technical solutions provided in this application. Those skilled in the art will understand that as system architectures evolve and new application scenarios emerge, the technical solutions provided in this application are also applicable to similar technical problems.
[0038] It will be understood by those skilled in the art that Figure 1 The system architecture shown does not constitute a limitation on the embodiments of this application. It may include more or fewer components than shown, or combine certain components, or have different component arrangements.
[0039] Based on the above system architecture, various embodiments of the message forwarding method of this application are proposed.
[0040] like Figure 2 As shown, one embodiment of this application provides a message forwarding method, which includes, but is not limited to, steps S100, S200 and S300.
[0041] Step S100: Obtain the link aggregation packet to be forwarded;
[0042] Step S200: Obtain the target forwarding table entry of the distributed system. The target forwarding table entry is generated by the preset forwarding control node based on the topology information of the distributed system.
[0043] Step S300: Forward the aggregated packet to be forwarded according to the target forwarding table entry.
[0044] In some embodiments of this application, during the packet forwarding process, the link aggregation packet to be forwarded is first obtained; then, the target forwarding table entry of the distributed system is obtained, wherein the target forwarding table entry is generated by a preset forwarding control node based on the topology information of the distributed system; finally, the link aggregation packet to be forwarded can be forwarded according to the target forwarding table entry; through the above technical solution, the target forwarding table entry is uniformly managed and distributed based on the forwarding control node, and each board in the distributed system forwards the link aggregation packet according to the target forwarding table entry obtained from the forwarding control node, thereby effectively solving the problem of abnormal traffic forwarding.
[0045] It is worth noting that the embodiments of this application, by uniformly distributing target forwarding entries based on the forwarding control node, can effectively solve the problem of packet replication caused by asynchronous processing during dynamic switching of link aggregation groups in a distributed system. The packet forwarding method of this application abandons the original forwarding model by uniformly managing and distributing target forwarding entries through a forwarding control node in the distributed system. In the original forwarding model, the relevant forwarding entries for broadcast streams generated by traffic forwarding are distributed across different hardware boards in the distributed system, making synchronous control impossible. However, the packet forwarding method proposed in this application utilizes an independent forwarding control node for unified management and distribution of target forwarding entries, preventing packet replication problems that occur during the switching of aggregated links in a distributed system. This transforms the process from multiple processing boards handling each other into a single process using a single forwarding control node, simplifying maintenance and eliminating other system problems caused by packet replication.
[0046] It is understood that the link aggregation message to be forwarded is the message obtained by the processing board in the distributed system that needs to be forwarded based on the link aggregation method. This link aggregation message to be forwarded may include any one or a combination of the following: broadcast message, unknown unicast message, and multicast message. In this embodiment, the target forwarding table entry is the forwarding table entry existing in the forwarding control node that corresponds to the link aggregation message to be forwarded. Since there are multiple forwarding table entries in the forwarding control node, the forwarding table entry corresponding to the link aggregation message to be forwarded can be determined from these multiple forwarding table entries as the target forwarding table entry based on the obtained link aggregation message to be forwarded.
[0047] It is worth noting that the target forwarding table entry in this embodiment is generated by the forwarding control node set in the distributed system based on the topology information of the distributed system; subsequently, the processing board in the distributed system can forward the received link aggregation packets to be forwarded according to the obtained target forwarding table entry to realize data transmission processing.
[0048] like Figure 3As shown, the above step S300 includes, but is not limited to, steps S310 and S320.
[0049] Step S310: Determine the hash routing result corresponding to the link aggregation packet to be forwarded based on the target forwarding table entry;
[0050] Step S320: Forward the link aggregation packet to be forwarded according to the hash routing result.
[0051] In some embodiments of this application, during the forwarding process of the processing board based on the received target forwarding table entry for the link aggregation packet to be forwarded, the hash routing result corresponding to the link aggregation packet to be forwarded is first determined based on the obtained target forwarding table entry; then, the link aggregation packet to be forwarded can be forwarded based on the hash routing result; through the above method, the forwarding of packet data can be made more accurate and reliable.
[0052] like Figure 4 As shown, step S310 includes, but is not limited to, steps S311 and S312.
[0053] Step S311: Calculate the hash value based on the aggregated packet of the link to be forwarded;
[0054] Step S312: Determine the hash routing result based on the hash value and the target forwarding table entry.
[0055] In some embodiments of this application, in the process of determining the hash routing result corresponding to the link aggregation packet to be forwarded based on the target forwarding table entry, the hash value is first calculated based on the link aggregation packet to be forwarded; then the hash routing result is determined based on the calculated hash value and the target forwarding table entry, so as to prepare for subsequent packet forwarding.
[0056] It is worth noting that each link aggregation packet to be forwarded corresponds to a hash value. The hash routing result can then be determined based on the calculated hash value and the obtained target forwarding table entry. For example, the hash value and the location information in the target forwarding table entry are added together to obtain a sum. The exit location of the link aggregation group can then be determined based on the sum, thereby determining the hash routing result. The target forwarding table entry maintains the location information of each member.
[0057] like Figure 5 As shown, step S320 includes, but is not limited to, steps S321 and S322.
[0058] Step S321: Determine the target member from the link aggregation group based on the hash routing result;
[0059] Step S322: Forward the aggregated packet of the forwarding link through the target member.
[0060] In some embodiments of this application, during the forwarding process of the link aggregation packet to be forwarded based on the hash routing result, the target member is first determined from the link aggregation group based on the hash routing result, and then the link aggregation packet to be forwarded can be forwarded through the target member to achieve stable and reliable transmission of packet data.
[0061] It is worth noting that link aggregation refers to bringing together multiple physical ports to form a single logical port, thereby achieving load balancing of inbound and outbound traffic across the member ports. The switch determines which member port a network packet should be sent to the peer switch from based on the user-configured port load balancing policy. A logical link is formed by bundling several links together; each aggregation group uniquely corresponds to a logical interface, also known as the link aggregation interface. In the embodiments of this application, the corresponding target member is determined within the link aggregation group, and then the target member can be used to forward the received link aggregation packets.
[0062] In some embodiments of this application, the forwarding control node can be a target processing board in the distributed system, a newly added control board in the distributed system, or a processing board outside the distributed system. Selecting a processing board from multiple processing boards in the distributed system as the target board can significantly save costs and make data processing simpler and faster. Adding a control board to the distributed system as the forwarding control node can also ensure stable and fast subsequent packet forwarding. Using a processing board outside the distributed system as the forwarding control node allows the forwarding control node to be independent of the distributed system and unaffected by it, making the generation and distribution of subsequent target forwarding table entries more stable and reliable.
[0063] It is worth noting that when selecting a processing board as the target board from multiple processing boards in a distributed system, the selection can be based on the slot number in the distributed system. The processing board with the largest slot number can be selected as the target board, or the processing board with the smallest slot number can be selected as the target board; there is no limitation here. For example, in a distributed system with 10 processing boards, and the slot numbers of the 10 processing boards are marked from 1 to 10, in this case, the processing board with slot number 1 can be selected as the target board, or the processing board with slot number 10 can be selected as the target board. Then, the selected target board can be used as the forwarding control node.
[0064] like Figure 6As shown, before executing step S200, the message forwarding method may include, but is not limited to, step S110.
[0065] Step S110: Clear the forwarding table entries currently existing in the processing board.
[0066] In some embodiments of this application, before obtaining the target forwarding table entry of the distributed system, the forwarding table entries currently existing in the processing board can be cleared, which can effectively prevent the microsecond-level latency jitter problem inherent in chip forwarding itself; clearing the current forwarding table entries on the processing board and then writing new forwarding table entries can prevent the entry changes when the same message is queried by a copy message from another processing board.
[0067] like Figure 7 As shown, before executing step S200, the message forwarding method may also include, but is not limited to, step S120.
[0068] Step S120: Mark the target entries currently existing in the processing board. The target mark is used to indicate that the current forwarding entries are invalid.
[0069] In some embodiments of this application, before obtaining the target forwarding table entry of the distributed system, the forwarding table entry currently existing in the processing board can be marked as a target to invalidate the current forwarding table entry. Compared with clearing the forwarding table entry in the processing board, marking the forwarding table entry as a target can invalidate the forwarding table entry more quickly, thereby speeding up the acquisition efficiency of the target forwarding table entry.
[0070] It's worth noting that the original forwarding service configuration required independent operation on each processing board, inevitably leading to inconsistencies in table updates across different boards. Incomplete synchronization during switching resulted in link aggregation packets potentially failing to synchronize link information at the same location selected by hash routing when forwarding across different processing boards. This could cause multiple packets to be forwarded simultaneously on the same selected link across different processing boards or chips. Now, each processing board accesses the forwarding table entries of the forwarding control node via a high-speed communication link, with one processing board serving as the forwarding control node. When forwarding table entries need to be issued, the forwarding control node initiates control, updating the table entries on all processing boards to ensure synchronized processing timing across different boards. Furthermore, after obtaining the hash routing result, the forwarding chip uses the query result to forward or discard traffic, preventing forwarding anomalies caused by inconsistent table updates when traffic reaches the same routing location on different processing boards. The technical solution of this application can separate the forwarding hardware during aggregation link switching from each processing board. Only one hardware unit is set up in the entire distributed system to generate forwarding table entries. If there is forwarding traffic on each processing unit, the forwarding table entry can be queried and processed. The hardware unit can be accessed directly through the high-speed interconnect communication link, which effectively prevents the problem of duplicated packets caused by differences in the processing timing and load capacity of each board. The embodiments of this application completely and reliably solve the secondary impacts caused by the asynchronous processing of various subsystems in a distributed system. Furthermore, the packet forwarding method of this application can be applied to communication devices such as routers or switches, and is not limited thereto.
[0071] like Figure 1 As shown, in some embodiments of this application, the distributed system 100 includes a forwarding control node 110 and at least one processing board 120; wherein, the forwarding control node 110 can generate a target forwarding table entry of the distributed system 100 according to the topology information of the distributed system 100; the processing unit 120 can obtain the target forwarding table entry generated by the forwarding control node 110, and perform forwarding processing on the received link aggregation packets to be forwarded according to the target forwarding table entry.
[0072] It is worth noting that when the distributed system 100 includes multiple processing boards 120, the forwarding control node 110 of the distributed system 100 can write the same target forwarding table entry to multiple processing boards 120. Then, the multiple processing boards 120 can perform subsequent data packet processing according to the received target forwarding table entry, which effectively prevents the problem of asynchronous updates of forwarding table entries and effectively prevents abnormal traffic forwarding.
[0073] It should be noted that the distributed system in this embodiment and the message forwarding method in the above embodiments belong to the same inventive concept. Therefore, these embodiments have the same implementation principle and technical effect, which will not be repeated here.
[0074] In addition, such as Figure 8 As shown, one embodiment of this application also provides an electronic device 800, which includes:
[0075] The memory 820, the processor 810, and the computer program stored on the memory 820 and executable on the processor 810.
[0076] The processor 810 and memory 820 can be connected via a bus or other means.
[0077] It should be noted that the electronic device 800 in this embodiment and the message forwarding method in the above embodiments belong to the same inventive concept. Therefore, these embodiments have the same implementation principle and technical effect, which will not be described in detail here.
[0078] The non-transient software program and instructions required to implement the message forwarding method of the above embodiments are stored in the memory 820. When executed by the processor 810, the message forwarding method in the above embodiments is executed.
[0079] Furthermore, one embodiment of this application provides a computer-readable storage medium storing computer-executable instructions that are executed by a processor 810, for example, by a processor 810 in the above-described electronic device 800 embodiment, such that the processor 810 performs the message forwarding method in the above-described embodiment.
[0080] Furthermore, one embodiment of this application also provides a computer program product, including a computer program or computer instructions, the computer program or computer instructions being stored in a computer-readable storage medium, a processor of a computer device reading the computer program or computer instructions from the computer-readable storage medium, and the processor executing the computer program or computer instructions, causing the computer device to perform the message forwarding method in the above embodiments.
[0081] It will be understood by those skilled in the art that all or some of the steps and systems in the methods disclosed above can be implemented as software, firmware, hardware, and suitable combinations thereof. Some or all of the physical components can be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application-specific integrated circuit. Such software can be distributed on a computer-readable medium, which can include computer storage media (or non-transitory media) and communication media (or transient media). As is known to those skilled in the art, the term computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible to a computer. Furthermore, as is known to those skilled in the art, communication media typically contain computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms, and may include any information delivery medium.
[0082] The above is a detailed description of the preferred embodiments of this application. However, this application is not limited to the above embodiments. Those skilled in the art can make various equivalent modifications or substitutions without departing from the spirit of this application. All such equivalent modifications or substitutions are included within the scope defined by the claims of this application.
Claims
1. A message forwarding method, applied to a processing board in a distributed system, the method comprising: Obtain the link aggregation message to be forwarded; Obtain the target forwarding table entry of the distributed system, which is generated by a preset forwarding control node based on the topology information of the distributed system; The link aggregation message to be forwarded is forwarded according to the target forwarding table entry.
2. The message forwarding method according to claim 1, characterized in that, The forwarding process of the link aggregation packet to be forwarded according to the target forwarding table entry includes: Determine the hash routing result corresponding to the link aggregation packet to be forwarded based on the target forwarding table entry; The link aggregation packets to be forwarded are forwarded based on the hash routing results.
3. The message forwarding method according to claim 2, characterized in that, The step of determining the hash routing result corresponding to the link aggregation packet to be forwarded based on the target forwarding table entry includes: The hash value is calculated based on the aggregated packet of the link to be forwarded; The hash routing result is determined based on the hash value and the target forwarding table entry.
4. The message forwarding method according to claim 2, characterized in that, The forwarding process of the link aggregation packet to be forwarded based on the hash routing result includes: The target member is determined from the link aggregation group based on the hash routing result; The target member forwards the aggregated message to be forwarded.
5. The message forwarding method according to claim 1, characterized in that, The forwarding control node is a target processing board, a main control board, or a processing board outside the distributed system.
6. The message forwarding method according to claim 5, characterized in that, The target processing board is either the processing board with the largest slot number or the processing board with the smallest slot number in the distributed system.
7. The message forwarding method according to claim 1, characterized in that, Before obtaining the target forwarding table entry of the distributed system, the message forwarding method further includes one of the following: Clear the forwarding entries currently existing in the processing board; The current forwarding entries in the processing board are marked with a target, and the target mark is used to indicate that the current forwarding entries are invalid.
8. A distributed system, characterized in that, Includes a forwarding control node and at least one processing board; The forwarding control node is used to generate target forwarding table entries for the distributed system based on the topology information of the distributed system. The processing board is used to obtain the target forwarding table entry and to forward the received link aggregation packets to be forwarded according to the target forwarding table entry.
9. An electronic device, characterized in that, include: At least one processor; At least one memory for storing at least one program; The message forwarding method as described in any one of claims 1 to 7 is implemented when at least one of the programs is executed by at least one of the processors.
10. A computer-readable storage medium storing computer-executable instructions, characterized in that, The computer-executable instructions are used to execute the message forwarding method according to any one of claims 1 to 7.
11. A computer program product, comprising a computer program or computer instructions, characterized in that, The computer program or the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer program or the computer instructions from the computer-readable storage medium and executes the computer program or the computer instructions, causing the computer device to perform the message forwarding method as described in any one of claims 1 to 7.