Message processing method and device and electronic equipment
By setting different forwarding sets in communication network nodes, the problems of packet congestion under the ATS mechanism and high resource overhead under the C-SCORE architecture are solved, realizing a bounded low latency and high bandwidth utilization packet forwarding solution with wide applicability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-11
- Publication Date
- 2026-04-14
AI Technical Summary
In existing communication networks, message sorting based on the ATS mechanism may cause late-qualified messages to clog the queue, resulting in increased service latency. Message sorting based on the C-SCORE architecture has high resource overhead and its applicability is relatively limited.
By setting up a first forwarding set and a second forwarding set in the node, the sorting rules of the first forwarding set are different from those of the second forwarding set, or its packet forwarding rate and priority are lower than those of the second forwarding set. The packets are sent to different forwarding sets according to their parameters, so as to control resource overhead and improve bandwidth utilization.
It achieves bounded low latency and high bandwidth utilization under the ATS mechanism, and controllable resource overhead and wide applicability under the C-SCORE architecture, ensuring the efficiency and reliability of the packet forwarding process.
Smart Images

Figure CN121864703A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communications, and more particularly to a message processing method, apparatus, and electronic device. Background Technology
[0002] Nodes in a communication network need to receive and forward a large number of messages during communication. After receiving messages, nodes can arrange them according to pre-set rules to achieve sequential forwarding. For example, nodes using asynchronous traffic shaping (ATS) can arrange messages in descending order of priority and forward them based on their completion time. For nodes using a C-SCORE architecture, messages can be arranged in ascending order of completion time and forwarded based on their completion time.
[0003] However, arranging messages in descending order of priority may cause messages with later completion times to clog the queue, resulting in increased service latency or even packet loss. Arranging messages in ascending order of completion time incurs significant resource overhead and has limited applicability. Summary of the Invention
[0004] This application provides a message processing method, apparatus, and electronic device. When applied to nodes based on the ATS mechanism, it can improve bandwidth utilization and ensure bounded low latency of services. When applied to nodes based on the C-SCORE architecture, it can make the resource overhead of the message forwarding process controllable and has wide applicability.
[0005] Firstly, a message processing method is provided, comprising: receiving a first message; determining a first parameter of the first message; the first parameter indicating the forwarding set corresponding to the first message; the forwarding set including a first forwarding set and a second forwarding set; wherein the message sorting rule in the first forwarding set is different from that in the second forwarding set, or the message forwarding rate and message forwarding priority of the first forwarding set are both lower than those of the second forwarding set; and sending the first message to the forwarding set corresponding to the first parameter.
[0006] Based on this scheme, on the one hand, the packet sorting rules in the first forwarding set differ from those in the second forwarding set, indicating that the resource overhead for packet sorting differs between the two sets. When a node receives the first packet, it can send it to either the forwarding set with lower or higher sorting resource overhead based on its needs. This makes the resource overhead of the packet forwarding process controllable and has wider applicability. On the other hand, the packet forwarding rate and priority of the first forwarding set are both lower than those of the second forwarding set, indicating that the second forwarding set can forward packets faster than the first. When a node receives the first packet, it can send it to either the first or second forwarding set based on its needs. This helps improve bandwidth utilization, ensures controllable service latency, and guarantees bounded low latency for services.
[0007] Based on the message processing method provided in the first aspect, in some possible implementations, both the first forwarding set and the second forwarding set include at least one different first-in-first-out queue. Based on this scheme, the message processing method can be applied to nodes based on the ATS mechanism. When the message queue in the node is a first-in-first-out queue, each message can be arranged according to its arrival order, resulting in lower resource overhead.
[0008] Based on the message processing method provided in the first aspect, in some possible implementations, the first forwarding set and the second forwarding set are different parts of the same push-in-first-out queue. Based on this scheme, the message processing method can be applied to nodes based on the ATS mechanism. When the message queue in the node is a push-in-first-out queue, each message can be arranged according to the push-in rules, making it widely applicable.
[0009] Based on the message processing method provided in the first aspect, in some possible implementations, the first parameter includes a first state and a second state. The first state indicates that the forwarding set corresponding to the first message is a first forwarding set. The second state indicates that the forwarding set corresponding to the first message is a second forwarding set. Based on this scheme, identifying the forwarding set indicated by the first parameter through the first and second states facilitates more accurate and convenient execution of the scheme.
[0010] Based on the message processing method provided in the first aspect, in some possible implementations, the first parameter of the first message is determined, including obtaining the token parameter of the first message. The token parameter is used to indicate the color mark of the first message in the token bucket algorithm. When the color mark is yellow, the first parameter of the first message is determined to be in the first state. Based on this scheme, the first message is marked yellow in the token bucket algorithm, indicating that the node needs to wait for a period of time before processing the first message. In this case, this scheme sets the forwarding set corresponding to the first message as the first forwarding set. Since the message forwarding rate and message forwarding priority of the first forwarding set are both low, sending messages that need to wait for a period of time before forwarding to the first forwarding set can ensure that the message forwarding channel of the second forwarding set is unobstructed and avoid the first message blocking the queue. In this way, it is beneficial to improve bandwidth utilization and ensure bounded low latency for services.
[0011] Based on the message processing method provided in the first aspect, in some possible implementations, determining the first parameter of the first message includes: obtaining the slice enqueue parameter of the first message. The slice enqueue parameter is used to indicate whether there is a message in the data slice to which the first message belongs in the first forwarding set. When there is a message in the data slice to which the first message belongs in the first forwarding set, the first parameter of the first message is determined to be in a first state. Based on this scheme, when there is a message in the data slice to which the first message belongs in the first forwarding set, setting the forwarding set corresponding to the first message as the first forwarding set can ensure that the messages in the data slice of the first message are not out of order, which is beneficial to ensuring the security of message transmission.
[0012] Based on the message processing method provided in the first aspect, in some possible implementations, the first parameter of the first message is determined, including: obtaining the slice enqueue parameter and the token parameter of the first message. The token parameter is used to indicate the color mark of the first message in the token bucket algorithm. The slice enqueue parameter is used to indicate whether there is a message in the data slice to which the first message belongs in the first forwarding set. When the color mark is green and there is no message in the data slice to which the first message belongs in the first forwarding set, the first parameter of the first message is determined to be in the second state. Based on this scheme, the color mark of the first message in the token bucket algorithm is green, indicating that the node can process the first message immediately. The absence of a message in the data slice to which the first message belongs in the first forwarding set indicates that sending the first message into the second forwarding set for fast forwarding will not cause the problem of out-of-order messages within the data slice. In this case, this scheme sets the forwarding set corresponding to the first message as the second forwarding set, enabling the second message to be forwarded quickly. This is beneficial for improving bandwidth utilization, ensuring bounded low latency for services, and preventing out-of-order messages within the data slice.
[0013] Based on the message processing method provided in the first aspect, in some possible implementations, both the first forwarding set and the second forwarding set include multiple first-in-first-out queues with different service levels. The first parameter is also used to indicate the service level corresponding to the first message. Sending the first message into the forwarding set corresponding to the first parameter includes: sending the first message into the first-in-first-out queue of the corresponding service level in the forwarding set corresponding to the first parameter. Based on this scheme, the message processing method can be applied to nodes based on the ATS mechanism. The node can include multiple first-in-first-out queues with different service levels.
[0014] Based on the message processing method provided in the first aspect, in some possible implementations, determining the first parameter of the first message includes: obtaining the service quality priority of the first message; and determining the first corresponding service level based on a preset first correspondence and the service quality priority of the first message. The first correspondence is used to indicate the correspondence between each service quality priority and each service level. Based on this scheme, nodes can map messages with different service quality priorities to the required number of service levels according to actual needs, making it widely applicable.
[0015] Based on the message processing method provided in the first aspect, in some possible implementations, the first parameter is also used to indicate the traffic attributes of the first message. The traffic attributes indicate whether the first message is backbone traffic. Sending the first message into the forwarding set corresponding to the first parameter includes: determining the insertion position of the first message in the corresponding forwarding set based on the first parameter. The sorting rule for pushing messages into the first-out queue includes that messages in the second forwarding set precede messages in the first forwarding set. Within the same forwarding set, backbone traffic precedes non-backbone traffic. The first message is then sent to the insertion position in the corresponding forwarding set. Based on this scheme, backbone traffic is forwarded preferentially, meaning that nodes can prioritize forwarding messages of higher importance based on the importance of the service, resulting in higher service implementation quality and improved user experience.
[0016] Based on the message processing method provided in the first aspect, in some possible implementations, the first parameter is also used to indicate the service quality priority of the first message. The sorting rules for pushing messages into the first-out queue also include: messages with the same forwarding set and traffic attributes are arranged in descending order of service quality priority. Based on this scheme, messages with higher service quality priority are forwarded first; that is, nodes can prioritize scheduling and forwarding more important messages based on the importance of the service, resulting in higher service quality and improved user experience.
[0017] Based on the message processing method provided in the first aspect, in some possible implementations, the first parameter is also used to indicate the eligibility time of the first message. The sorting rules for pushing messages into the first-out queue also include: messages with the same forwarding set, traffic attributes, and quality of service priority are arranged in order of their eligibility time from earliest to latest. Based on this scheme, messages with earlier eligibility times are forwarded first, thus preventing messages with later eligibility times from clogging the queue and improving bandwidth utilization.
[0018] Based on the message processing method provided in the first aspect, in some possible implementations, obtaining the slice enqueue parameters of the first message includes: obtaining the network parameters of the first message. The network parameters include any one or more of the following: destination media storage control address, source media storage control address, virtual LAN identity, and virtual LAN priority. The slice identifier of the first message is determined based on a preset second correspondence and the network parameters of the first message. The slice identifier of the first message is used to indicate the identity of the data slice to which the first message belongs. The second correspondence is used to indicate the correspondence between each network parameter and each slice identifier. The slice enqueue parameters of the first message are determined based on the slice identifier of the first message. Based on this scheme, the slice enqueue parameters of the first message can be determined through the network parameters carried by the first message itself, resulting in lower computational overhead.
[0019] Based on the message processing method provided in the first aspect, in some possible implementations, determining the slice enqueue parameters of the first message based on the slice identifier of the first message includes: obtaining the enqueue record associated with the slice identifier of the first message. The enqueue record is used to indicate whether there is a message in the first forwarding set belonging to the data slice of the first message. The slice enqueue parameters of the first message are determined according to the enqueue record associated with the slice identifier of the first message. Based on this scheme, determining the slice enqueue parameters of the first message through the enqueue record associated with the slice identifier of the first message can accurately determine whether there is a message in the first forwarding set belonging to the data slice of the first message, and the resource overhead is low.
[0020] Based on the message processing method provided in the first aspect, in some possible implementations, the enqueue record is the count value of a counter. The counter is used to increment the count value by a preset number when a message belonging to the data slice of the first message enters the first forwarding set. The counter is also used to decrement the count value by a preset number when a message belonging to the data slice of the first message leaves the first forwarding set. Based on this scheme, the enqueue record can be accurately generated using a counter, with low resource overhead.
[0021] Based on the message processing method provided in the first aspect, in some possible implementations, the slice enqueue parameters of the first message are determined according to the enqueue record associated with the slice identifier of the first message. This includes: when the counter's count value is greater than the counter's initial count value, determining that a message belonging to the data slice of the first message exists in the first forwarding set; and when the counter's count value is the counter's initial count value, determining that a message belonging to the data slice of the first message does not exist in the first forwarding set. Based on this scheme, the existence of a message belonging to the data slice of the first message in the first forwarding set can be accurately determined using a counter, with low resource overhead.
[0022] Based on the message processing method provided in the first aspect, in some possible implementations, the first parameter is also used to indicate the eligibility time of the first message. After sending the first message into the forwarding set corresponding to the first parameter, the method further includes: continuously forwarding each message out of the queue based on its eligibility time. Based on this scheme, continuous forwarding of messages out of the queue results in high bandwidth utilization.
[0023] Based on the message processing method provided in the first aspect, in some possible implementations, the sorting rule for the first forwarding set is push-in first-out (PFI), and the sorting rule for the second forwarding set is first-in first-out (FIFO). Based on this scheme, the message processing method can be applied to nodes based on a C-SCORE architecture. It should be understood that the resource overhead for message sorting in the first forwarding set is much greater than that in the second forwarding set. When a node receives the first message, it can, based on its needs, send the first message to either the second forwarding set (which has lower sorting resource overhead) or the first forwarding set (which has higher resource overhead). In this way, the resource overhead of the message forwarding process can be controlled, and the applicability is broad.
[0024] Based on the message processing method provided in the first aspect, in some possible implementations, determining the first parameter of the first message includes: obtaining the arrival time of the first message at the ingress node and the completion time of the second message at the ingress node. The second message refers to the message that entered the second forwarding set of the ingress node before the first message. When the arrival time of the first message at the ingress node is later than the completion time of the second message at the ingress node, the forwarding set corresponding to the first message is determined to be the second forwarding set. When the arrival time of the first message at the ingress node is earlier than the completion time of the second message at the ingress node, the forwarding set corresponding to the first message is determined to be the first forwarding set. Based on this scheme, when the ingress node receives the first message at a time later than the completion time of the second message, it indicates that the ingress node can process the first message immediately. Thus, the forwarding set corresponding to the first message can be set as the second forwarding set, which has a simpler sorting rule and lower resource overhead. When the ingress node receives the first message at a time earlier than the completion time of the second message, it indicates that the ingress node needs to wait for a period of time before it can process the first message. In this way, the forwarding set corresponding to the first packet can be set as the second forwarding set, which has a more complex sorting rule and higher resource overhead. This achieves both in-order packet forwarding and keeps the resource overhead of packet sorting controllable, making it widely applicable.
[0025] Based on the message processing method provided in the first aspect, in some possible implementations, the first message carries a first parameter. Determining the first parameter of the first message includes: obtaining the first parameter carried by the first message. Based on this scheme, after the ingress node determines the first parameter of the first message, the first message can carry it hop by hop, which can reduce the computational overhead of non-ingress nodes.
[0026] Based on the message processing method provided in the first aspect, in some possible implementations, the first parameter is also used to indicate the completion time of the first message. The sorting rule of the second forwarding set includes: the messages are arranged in order of completion time from earliest to latest. Based on this scheme, it can be ensured that messages with long processing times will not block the queue, which is beneficial to improving bandwidth utilization.
[0027] Based on the message processing method provided in the first aspect, in some possible implementations, after sending the first message into the forwarding set corresponding to the first parameter, the method further includes: based on the order of completion time from earliest to latest, the workflow continuously forwards the messages in the first and second forwarding sets. Based on this scheme, the workflow continuously forwards messages, which is beneficial for improving bandwidth utilization.
[0028] Based on the message processing method provided in the first aspect, in some possible implementations, the first forwarding set includes multiple sub-queues. Each sub-queue corresponds to a different completion time interval. The sub-queues are arranged in ascending order of their completion time intervals. Messages within a sub-queue are arranged in no particular order. This scheme, with messages arranged in no particular order within the sub-queues, helps reduce resource overhead.
[0029] Based on the message processing method provided in the first aspect, in some possible implementations, when the number of messages in a sub-queue exceeds a preset threshold, the sub-queue is split into at least two sub-queues. This scheme avoids out-of-order delivery due to an excessive number of messages in a sub-queue, thus improving the security of the message forwarding process.
[0030] Secondly, a message processing apparatus is provided, including a transceiver module and a processing module. The transceiver module is used to receive a first message. The processing module is used to determine a first parameter of the first message. The first parameter indicates the forwarding set corresponding to the first message. The forwarding set includes a first forwarding set and a second forwarding set. The message sorting rules in the first forwarding set are different from those in the second forwarding set, or the message forwarding rate and message forwarding priority of the first forwarding set are both lower than those of the second forwarding set. The transceiver module is also used to send the first message to the forwarding set corresponding to the first parameter.
[0031] Thirdly, a message processing apparatus is provided, including a processor. The processor is configured to perform the method according to any one of the first aspects.
[0032] Fourthly, a computer-readable storage medium is provided, the computer-readable storage medium including instructions that, when executed, cause the method of any one of the first aspects to be implemented.
[0033] Fifthly, a computer program product is provided, the computer program product including instructions that, when executed, cause the method of any one of the first aspects to be implemented.
[0034] It should be understood that the second to fifth aspects of this application are consistent with or correspond to the technical solutions of the first aspect of this application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation are similar, and will not be repeated here. Attached Figure Description
[0035] Figure 1 This is a schematic diagram of an asynchronous flow shaper;
[0036] Figure 2 This is a schematic diagram of a C-SCORE architecture;
[0037] Figure 3 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application;
[0038] Figure 4 A flowchart illustrating a message processing method provided in an embodiment of this application;
[0039] Figure 5 This is a schematic diagram of a single-rate dual-bucket token bucket algorithm.
[0040] Figure 6 A schematic diagram of a first forwarding set and a second forwarding set provided for embodiments of this application;
[0041] Figure 7 A schematic diagram of yet another first forwarding set and second forwarding set provided for embodiments of this application;
[0042] Figure 8 This is a schematic diagram of the structure of a message processing device provided in an embodiment of this application;
[0043] Figure 9 A functional diagram of an outgoing interface queue management module provided in an embodiment of this application;
[0044] Figure 10 A functional diagram of another outgoing interface queue management module provided in an embodiment of this application;
[0045] Figure 11 This is a schematic diagram of another message processing device provided in the embodiments of this application. Detailed Implementation
[0046] To enable those skilled in the art to better understand the solutions in this application, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments.
[0047] In this document, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Here, A and B can be single or multiple. "At least one of the following" or similar expressions are used to represent any combination of the listed items. For example, at least one of A, B, and / or C can represent: A existing alone, B existing alone, C existing alone, A and B existing simultaneously, B and C existing simultaneously, A and C existing simultaneously, and A, B, and C existing simultaneously. Here, A, B, and C can be single or multiple.
[0048] The terms "first" and "second," etc., used in the specification and claims of this application are used to distinguish different objects, not to describe a specific order of objects. For example, "first target object" and "second target object," etc., are used to distinguish different target objects, not to describe a specific order of target objects.
[0049] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of the terms "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.
[0050] In the description of the embodiments in this application, unless otherwise stated, "multiple" means two or more. For example, multiple processing units means two or more processing units; multiple systems means two or more systems.
[0051] To facilitate understanding, the background technology involved in the embodiments of this application will be introduced below.
[0052] The message processing method, apparatus, and electronic equipment provided in this application are used to overcome the problem that asynchronous traffic shapers are unable to cope with burst traffic, and the problem that full message sorting in the C-SCORE architecture has high resource overhead. The asynchronous traffic shaper will be introduced first below.
[0053] Please refer to Figure 1 This is a schematic diagram of an asynchronous flow shaper. Figure 1 As shown, this asynchronous traffic shaper may include N stream filters, P stream gates, Q schedulers, a queuing frame module, and a transmission selection module. Here, N, P, and Q are all integers greater than 1.
[0054] Each stream filter has its own parameters, including packet priority (or frame priority), stream handle ID (identity), maximum service data unitsize, stream gate ID, scheduler ID, etc. It should be noted that in this embodiment, "packet" and "frame" can be used interchangeably, and will not be elaborated further.
[0055] The message priority can refer to the 802.1p priority in the VLAN (virtual local area network) frame header of the IEEE (the Institute of Electrical and Electronics Engineers) 802.1Q protocol, used to identify the message's quality of service requirements. Specifically, the message priority can be stored in the PRI field of the VLAN frame header. In this embodiment, the message priority can also be referred to as quality of service (QoS) priority, device local priority, local priority, etc., without specific limitations.
[0056] The filter rule ID can be used to select packets that enter the flow filter. For example, Figure 1 If the filtering rule ID of stream filter 2 is stream handle 27, then stream filter 2 allows packets with the filtering rule ID of stream handle 27 to enter. The packet filtering rule ID can be found in the extended definition of ID in IEEE 802.cb, and will not be elaborated upon here.
[0057] The maximum service length is used to select the size of packets entering the flow filter. The flow filter can discard packets that exceed the maximum service length. For example, Figure 1 The maximum service length of the middle flow filter 2 is 500, meaning that the middle flow filter 2 allows packets with a length less than or equal to 500 to enter.
[0058] The flow gating ID indicates the flow gating through which packets from this flow filter enter, and the scheduler ID indicates the scheduler through which packets from this flow filter enter. For example, Figure 1 The flow gate ID of flow filter 2 is flow gate 2, and the scheduler ID is scheduler Q. Therefore, packets in flow filter 2 can first enter flow gate 2, be processed by flow gate 2, and then enter scheduler Q.
[0059] It should be noted that, Figure 1 The connections between the flow filters and flow gates, and between the flow gates and the schedulers, are merely illustrative examples and do not represent a limitation of this application.
[0060] Message Incoming Figure 1 After a packet enters the stream, the asynchronous flow shaper can send the packet to the corresponding flow filter based on parameters such as packet priority, the ID (identity) of the filtering rule (stream handle), and length. After passing through the flow filter, the packet then enters the flow gate corresponding to the flow gate ID in that flow filter, and the scheduler corresponding to the scheduler ID.
[0061] Flow gating maps packet priorities to internal priority values (IPV). Internal priority, also known as class of service, indicates the quality of service a packet receives within an electronic device and determines the queue type to which the packet belongs. When IPV = null, flow gating can use the packet's priority as its internal priority.
[0062] The scheduler calculates the eligibility time (ET) of packets using the token bucket algorithm, allocates the eligibility time to packets, and updates the token state in the token bucket algorithm. The eligibility time refers to the time during which a packet is allowed to be forwarded. In other words, a packet is not allowed to be forwarded before its eligibility time. For example, if the eligibility time of a packet is t, then the packet is not allowed to be forwarded before time t.
[0063] The frame queuing module is used to send packets into the queue corresponding to the internal priority of the packet. The IEEE 802.1Q protocol has eight internal priorities, corresponding to eight priority queues. In this embodiment, the number of priority queues within the electronic device can be eight or less, without limitation. For example, when there are more than eight priority queues, the frame queuing module can pre-store a port traffic category table. This port traffic category table indicates the correspondence between the eight priorities in the IEEE 802.1Q protocol and the various priority queues within the electronic device. In other words, the frame queuing module can map the eight internal priorities to the respective priority queues within the electronic device using the port traffic category table. This improves applicability.
[0064] The transmission selection module is used to forward packets according to the qualifying time allocated by the scheduler. Specifically, if the qualifying time of a packet is the current time or earlier, the transmission selection module will forward the packet. It should be understood that when the queue contains one or more transmittable packets, the transmission selection module may prioritize transmitting packets from the higher-priority internal queues.
[0065] The above is an introduction to the structure and working principle of the asynchronous traffic shaper. In actual business scenarios, there may be bursts of traffic with low average bandwidth but high burstiness, such as video streams and virtual programmable logic controller (vPLC) streams. Asynchronous traffic shapers struggle to configure appropriate parameters for these sparse bursts. For example, using the maximum configuration will result in severe over-provisioning and wasted bandwidth. Conversely, not over-provisioning and continuing to forward non-working packets after shaping based on their qualified time will cause various problems, such as late-qualified packets clogging the queue, leading to increased service latency, lower bandwidth utilization, excessive token shortages causing packet loss, and buffered packets exceeding the queue limit causing further packet loss.
[0066] The C-SCORE architecture will be introduced below.
[0067] Please refer to Figure 2 This is a schematic diagram of a C-SCORE architecture. For example... Figure 2 As shown, the C-SCORE architecture can include H sequentially connected nodes. After a packet flows from the source node into the C-SCORE architecture's entry node 0, it is forwarded hop-by-hop along each node in the C-SCORE architecture until it reaches the destination node. Here, node h refers to any node in the C-SCORE architecture, such as entry node 0, core nodes, etc.
[0068] Entry node 0 can store the completion time F0(p-1) of the previous message. The completion time of a message refers to the time it takes for a node to process (e.g., forward) the message.
[0069] Entry node 0 can calculate the ideal completion time F0(p) of the current message p using the following formula (1).
[0070]
[0071] Where A0(p) refers to the arrival time of the current message p, L(p) refers to the length of the current message p, and r refers to the serving rate of the current message p.
[0072] After calculating the ideal completion time F0(p) for the current message, entry node 0 can update the completion time of the previous message to F0(p).
[0073] When node h receives message p, it can obtain the message metadata F. h (p) is used for message sorting and queuing. Where F h(p) refers to the completion time of message p at node h. Each message at node h is fairly sorted and continuously forwarded according to its completion time from earliest to latest. A pre-configured delay quota is added to the completion time, refreshing it to the completion time of the message at the next node, and then carrying this completion time to the next node. For example, node h can refresh the completion time Fh(p) of message p to F using the following formula (2). h+1 (p) is carried over to the next jump along with L / r.
[0074] F h+1 (p)=F h (p)+L maxh / R h +L / r Formula (2).
[0075] Where h is the node identifier, h+1 is the node identifier of the next node of node h, and F h (p) refers to the completion time of message p at node h, F h+1 (p) refers to the completion time of message p at node h+1. Lmaxh refers to the maximum length of all data streams (data slices) on node h. R h This refers to the port link speed of node h. L refers to the maximum packet length of the data stream to which message p belongs.
[0076] As can be seen, when nodes forward packets based on the existing C-SCORE architecture, all packets need to participate in sorting based on completion time, which is quite complex and resource-intensive.
[0077] To address the aforementioned issues, embodiments of this application provide a message processing method, apparatus, and electronic device. When applied to nodes based on the ATS mechanism, these methods can improve bandwidth utilization and ensure bounded low latency for services. When applied to nodes based on the C-SCORE architecture, they can make the resource overhead of the message forwarding process controllable, thus having broad applicability.
[0078] The message processing method provided in this application can be applied to electronic devices. These electronic devices can be radio access network (RAN) nodes accessing a communication network, such as switches, routers, base stations, servers, wearable devices, vehicle identification systems, wireless relay nodes, wireless backhaul nodes, transmission points (TP), or transmission and reception points (TRP). The base stations can be next-generation node B (gNodeB, gNB), evolved Node B (eNB), home-evolved Node B (HeNB, or home Node B, HNB), base stations in 5G communication systems, base stations in future communication systems, macro base stations, micro base stations, pico base stations, small cells, relay stations, or balloon stations, etc. Electronic devices can also be terminal devices, such as mobile phones, tablets, computers with wireless transceiver capabilities, mobile internet devices (MIDs), virtual reality (VR) terminals, augmented reality (AR) terminals, wireless terminals in industrial control (e.g., robots), wireless terminals in vehicle-to-everything (V2X) networks (e.g., in-vehicle equipment, vehicle equipment, in-vehicle modules, vehicles), cellular phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), handheld devices with wired communication capabilities, computing devices or other processing devices connected to a wireless modem, wearable devices, and terminals in future evolved networks, etc. This application does not specifically limit these categories.
[0079] Please refer to Figure 3 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Figure 3As shown, the electronic device may include a processor 301, a memory 302 coupled to the processor 301, and a transceiver 303. The processor 301 may also be referred to as a processing module, and the transceiver 303 may also be referred to as a transceiver module. The transceiver 303 can be used to receive messages or data information, etc. The processor 301 may include a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP. The processor may also be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. The processor 301 may refer to a single processor or may include multiple processors. Memory 302 may include volatile memory, such as random-access memory (RAM); memory may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid-state drive (SSD); memory 302 may also include combinations of the above types of memory. Memory 302 may refer to a single memory or include multiple memories for storing program instructions. In one embodiment, memory 302 stores computer-readable instructions, which include multiple software modules. After executing each software module, processor 301 can perform corresponding operations according to the instructions of each software module. In this embodiment, the operation performed by a software module actually refers to the operation performed by processor 301 according to the instructions of the software module. Optionally, processor 301 may also store program code or instructions for executing the scheme of the embodiments of this application, in which case processor 301 may not need to read program code or instructions from memory 302. For example, when the instructions stored in the memory 302 are executed by the processor 301, they can implement the message processing method provided in the embodiments of this application or any step in the message processing method.
[0080] The message processing method provided in the embodiments of this application will be described below. It should be noted that the executing entity of this message processing method can be an electronic device, as described above. Figure 3 The electronic devices shown are not limited here.
[0081] Please refer to Figure 4 This is a flowchart illustrating a message processing method provided in an embodiment of this application. Figure 4 As shown, the method may include the following steps.
[0082] S401, Receive the first message.
[0083] Here, "first message" is a general term for any message, rather than referring to a specific message. In other words, "first message" can be any message received by the electronic device executing the message processing method.
[0084] For example, the first message can be any message in the first data slice. Here, "first data slice" is a general term for a data slice and can refer to any data slice received by the electronic device executing the message processing method. A data slice consists of multiple messages. In the embodiments of this application, a data slice can also be called a data stream, data packet, etc., without limitation.
[0085] S402, Determine the first parameter of the first message.
[0086] The first parameter can be used to indicate the forwarding set corresponding to the first packet. In this embodiment, the forwarding set can be a packet forwarding queue, or it can include multiple packet forwarding queues, or it can be a part of a packet forwarding queue. For example, the forwarding set can include multiple packet forwarding queues with a first-in-first-out (FIFO) sorting rule. As another example, the forwarding set can also be a part of a packet forwarding queue with a push-in-first-out (PFO) sorting rule.
[0087] In this embodiment, the forwarding set may include a first forwarding set and a second forwarding set. The sorting rules for packets in the first forwarding set are different from those in the second forwarding set, or the packet forwarding rate and packet forwarding priority of the first forwarding set are both lower than those of the second forwarding set.
[0088] The message forwarding rate refers to the number of messages forwarded per unit time when a node is continuously and uninterruptedly forwarding messages. In other words, when a node is continuously and uninterruptedly forwarding messages from both the first and second forwarding sets, the number of messages forwarded from the first forwarding set per unit time is less than that from the second forwarding set. Message forwarding priority refers to the priority at which messages are forwarded. A lower forwarding priority for the first forwarding set than for the second forwarding set means that messages from the second forwarding set are forwarded with priority over messages from the first forwarding set.
[0089] In some possible implementations, when the packet processing method provided in this application is applied to a node based on the ATS mechanism, the packet forwarding rate and packet forwarding priority of the first forwarding set can both be lower than those of the second forwarding set. For example, when the packet processing method is applied to a node based on the C-SCORE architecture, the packet sorting rules in the first forwarding set can be different from those in the second forwarding set.
[0090] S403. Send the first message to the forwarding set corresponding to the first parameter.
[0091] In other words, when the first parameter indicates that the forwarding set corresponding to the first message is the first forwarding set, the first message can be sent to the first forwarding set. When the first parameter indicates that the forwarding set corresponding to the first message is the second forwarding set, the first message can be sent to the second forwarding set.
[0092] It should be understood that when this message processing method is applied to nodes based on the ATS mechanism, the message forwarding rate and priority of the first forwarding set are both lower than those of the second forwarding set. This means the second forwarding set can forward messages much faster than the first. Thus, upon receiving the first message, the node can send it to either the first or second forwarding set based on demand, thereby improving bandwidth utilization, ensuring controllable service latency, and guaranteeing bounded low latency. When this message processing method is applied to nodes based on the C-SCORE architecture, the message sorting rules in the first forwarding set differ from those in the second forwarding set, indicating that the resource overhead for message sorting differs between the two sets. Therefore, upon receiving the first message, the node can send it to either the forwarding set with lower or higher sorting resource overhead based on demand, thus making the resource overhead of the message forwarding process controllable and broadly applicable.
[0093] The following sections will introduce the message processing method by applying it to nodes based on the ATS mechanism and nodes based on the C-SCORE architecture, respectively. First, let's take the application of this message processing method to nodes based on the ATS mechanism as an example.
[0094] When this message processing method is applied to nodes based on the ATS mechanism, the first parameter can be determined based on the token parameter and the slice enqueue parameter. The token parameter indicates the color tag of the first message in the token bucket algorithm. The slice enqueue parameter indicates whether a message belonging to the data slice (referred to as the first data slice) exists in the first forwarding set.
[0095] To facilitate understanding of the meaning of the token parameters, the token bucket algorithm will be introduced below.
[0096] To ensure that limited network resources are used more effectively, user traffic needs to be limited. Traffic policing, traffic shaping, and interface rate limiting can all restrict traffic usage by monitoring traffic specifications. However, limiting traffic usage requires knowing whether the traffic exceeds the specifications before implementing adjustments based on the assessment results. The token bucket algorithm is one such algorithm used to assess traffic specifications.
[0097] The token bucket algorithm evaluates traffic specifications using a token bucket. The token bucket can be viewed as a container holding a certain number of tokens. The system adds tokens to the bucket at a set rate; when the bucket is full, excess tokens overflow, and no more tokens are added. When evaluating traffic specifications using the token bucket, the basis is whether the number of tokens in the bucket is sufficient to meet the packet forwarding requirements. If there are enough tokens in the bucket to forward packets, the traffic is said to comply with or meet the agreed-upon values; otherwise, it is said to be non-compliant or exceed the limits.
[0098] The token bucket algorithm evaluates packets by marking them with three colors: red, yellow, and green. Therefore, the evaluation result of the token bucket algorithm can be called "three-color marking" or "color marking".
[0099] The following section uses the single-rate dual-bucket token bucket algorithm as an example to introduce the algorithm flow of the token bucket algorithm.
[0100] Please refer to Figure 5 This is a schematic diagram of a single-rate, dual-bucket token bucket algorithm. Figure 5 As shown, the algorithm includes two token buckets, referred to as the C bucket and the E bucket. The E bucket is used to hold tokens that overflow from the C bucket. The parameters of this token bucket algorithm include the committed information rate (CIR), the committed burst size (CBS), and the excess burst size (EBS).
[0101] Wherein, CIR represents the rate at which tokens are added to bucket C, indicating the average rate at which bucket C is allowed to transmit or forward messages. CBS represents the capacity of bucket C, indicating the committed burst traffic that bucket C can handle instantaneously. EBS represents the capacity of bucket E, indicating the excess burst traffic that bucket E can handle instantaneously. Figure 5 In this context, Tc represents the number of tokens in bucket C, Te represents the number of tokens in bucket E, and B represents the size of the message in the received data slice.
[0102] It should be understood that when Tc is less than CBS, Tc increases. When Tc equals CBS and Te is less than EBS, Te increases. When Tc equals CBS and Te equals EBS, neither Tc nor Te increases.
[0103] The token bucket algorithm can color-code messages using the following strategy: when B is less than or equal to Tc, the message is marked green, and Tc is decreased by B. When B is greater than Tc, less than B, and less than or equal to Te, the message is marked yellow, and Te is decreased by B. When B is greater than Te, the message is marked red, and neither Tc nor Te is decreased.
[0104] Based on the above introduction, it should be understood that the single-rate dual-bucket token bucket algorithm allows for traffic bursts. When the burst traffic is less than the configured CBS, the packet is marked green; when the burst traffic is greater than the configured CBS but less than the EBS, the packet is marked yellow; and when the burst traffic is greater than the configured EBS, the packet is marked red. In other words, a green packet indicates that the request can be processed quickly. A yellow packet indicates that the request can be processed, but a waiting period is required. A red packet indicates that the packet exceeds the system's processing capacity, and the request will be rejected or delayed.
[0105] In some possible implementations, the token parameter can have two states. For example, these two states can be referred to as the first state and the second state. The token parameter indicating the first state is colored yellow, and the token parameter indicating the second state is colored green. In some possible implementations, the first state and the second state can be two different symbols. For example, the first state can be the number 1, and the second state can be the number 0. The token parameter can also be called a token state indicator (TSI), token state, etc., without limitation here.
[0106] In this embodiment, the slice enqueue parameter can be used to determine whether a packet containing the first data slice exists in the first forwarding set. Exemplarily, the slice enqueue parameter can also have two states, such as the first state and the second state described above. When the slice enqueue parameter is in the first state, it indicates that a packet containing the first data slice exists in the first forwarding set. When the slice enqueue parameter is in the second state, it indicates that a packet containing the first data slice does not exist in the first forwarding set.
[0107] In some possible implementations, the electronic device executing the message processing method can search for a message of the first data slice in a first forwarding set. When the search result indicates that a message of the first data slice exists in the first forwarding set, a slice enqueue parameter of the first state can be generated. When the search result indicates that a message of the first data slice does not exist in the first forwarding set, a slice enqueue parameter of the second state can be generated.
[0108] In some other possible implementations, the slice enqueue parameters can be determined based on the network parameters of the first packet. These network parameters may include, but are not limited to, any one or more of the following: destination media access control address (DMAC), source media access control address (SMAC), virtual local area network identity (VLAN ID), and virtual local area network (VLAN) priority.
[0109] The process of determining slice enqueue parameters based on the network parameters of the first message is described below.
[0110] First, a node can determine the identifier of the data slice to which the first message belongs, i.e., the identifier of the first data slice (hereinafter referred to as the first slice identifier or the slice identifier of the first message), through a preset second correspondence and the network parameters of the first message. The preset second correspondence can include the correspondence between each network parameter and the identity identifier of each data slice. In other words, the electronic device can determine the identity identifier of the data slice corresponding to the network parameters of the first message, i.e., the first slice identifier, from the preset second correspondence. In some possible implementations, the second correspondence may also include the correspondence between each network parameter and each algorithm parameter. Here, algorithm parameters refer to the parameters in the token bucket algorithm, such as CIR, CBS, EBS, etc., mentioned above. The electronic device can determine the algorithm parameters of the token bucket algorithm through the network parameters carried in the first message, and execute the token bucket algorithm using the determined algorithm parameters to obtain the token parameters of the first message.
[0111] Then, the node can determine whether there is a packet of the first data slice in the first forwarding set (i.e., the slice enqueue parameter) based on the first slice identifier.
[0112] In some possible implementations, the electronic device can obtain the enqueue record of the first data slice based on the first slice identifier. The enqueue record of the first data slice can be used to indicate whether packets of the first data slice exist in the first forwarding set. For example, the electronic device can create an enqueue record associated with the first slice identifier. The electronic device can update this enqueue record when packets in the first data slice enter and leave the first forwarding set. Thus, the electronic device can determine whether packets of the first data slice exist in the first forwarding set using the enqueue record associated with the first slice identifier.
[0113] For example, the queuing record can be the value of a counter. The counter is used to record packets of the first data slice in the first forwarding set. For instance, the electronic device can increment the counter by a preset value when a packet of the first data slice enters the first forwarding set. The electronic device can also decrement the counter by a preset value when a packet of the first data slice leaves the first forwarding set. Thus, the electronic device can determine whether a packet of the first data slice exists in the first forwarding set based on the counter's count. For example, the count value when the counter starts counting can be called the initial count value. When the counter's count value is greater than the initial count value, the electronic device can determine that a packet of the first data slice exists in the first forwarding set. When the counter's count value is the initial count value, the electronic device can determine that a packet of the first data slice does not exist in the first forwarding set.
[0114] The process of determining the first parameter based on the token parameter and the slice enqueue parameter is described below.
[0115] In this embodiment, the token parameter can have two states, as described above: the first state and the second state. The first state indicates that the forwarding set corresponding to the first packet is the first forwarding set. The second state indicates that the forwarding set corresponding to the first packet is the second forwarding set.
[0116] In some possible implementations, when the color is marked yellow, the node can determine that the first parameter of the first packet is in the first state. It should be understood that the first packet being marked yellow in the token bucket algorithm indicates that the node needs to wait for a period of time before processing it. In this case, this scheme sets the forwarding set corresponding to the first packet as the first forwarding set. Since the packet forwarding rate and priority of the first forwarding set are both low, sending packets that need to wait for a period of time to be forwarded into the first forwarding set ensures that the packet forwarding channel of the second forwarding set is unobstructed, preventing the first packet from clogging the queue. This helps improve bandwidth utilization and ensures bounded low latency for services.
[0117] In some other possible implementations, when a packet belonging to the data slice of the first packet exists in the first forwarding set, the node can determine that the first parameter of the first packet is in the first state. It should be understood that when a packet belonging to the data slice of the first packet exists in the first forwarding set, setting the forwarding set corresponding to the first packet as the first forwarding set can ensure that packets in the data slice of the first packet are not out of order, which is beneficial to ensuring security during packet transmission.
[0118] In some possible implementations, when the packet is marked green and there is no packet belonging to the data slice of the first packet in the first forwarding set, the node can determine that the first parameter of the first packet is in the second state. It should be understood that the first packet being marked green in the token bucket algorithm indicates that the node can process the first packet immediately. The absence of a packet belonging to the data slice of the first packet in the first forwarding set means that sending the first packet to the second forwarding set for rapid dequeueing will not cause packet out-of-order issues within the data slice. In this case, this scheme sets the forwarding set corresponding to the first packet as the second forwarding set, enabling the second packet to be quickly dequeued. This improves bandwidth utilization, ensures bounded low latency for services, and avoids packet out-of-order issues within the data slice.
[0119] As can be seen from the above description, in the message processing method provided in this application embodiment, messages that require a certain waiting time to process (i.e., messages with the first parameter in the first state) enter the first forwarding set with a slower message forwarding rate, while messages that can be processed quickly (i.e., messages with the first parameter in the second state) enter the second forwarding set with a faster message forwarding rate. The two sets do not affect each other, thereby ensuring bandwidth isolation and bounded low latency for services, and improving bandwidth utilization. Furthermore, green messages (i.e., messages marked in green) that contain yellow messages (i.e., messages marked in yellow) enter the same forwarding set as the yellow messages. This ensures that the order of messages within the data slice is not disordered, effectively avoiding out-of-order processing and improving the security and stability of message processing.
[0120] In some possible implementations, the first forwarding set may include multiple first-in-first-out (FIFO) queues with different internal priorities, and the second forwarding set may also include multiple FIFO queues with different internal priorities. Internal priority can also be referred to as service level. For a description of internal priority and service level, please refer to the foregoing embodiments; it will not be repeated here.
[0121] For example, the first parameter can also be used to indicate the service level corresponding to the first message. After determining the first parameter of the first message, the node can send the first message into the first-in-first-out queue of the service level corresponding to the forwarding set corresponding to the first parameter.
[0122] A node can determine the service level (referred to as the first internal priority or first service level) corresponding to a first packet based on a preset first correspondence and the QoS priority of the first packet. The first correspondence can indicate the correspondence between each QoS priority and each service level. Then, the node can send the first packet to the queue of the corresponding service level in the corresponding forwarding set. For example, when the first parameter of the first packet is in a first state, the node can send the first packet to the FIFO queue of the first service level in the first forwarding set. Similarly, an electronic device can send the first packet to the FIFO queue of the first service level in the second forwarding set when the first parameter of the first packet is in a second state.
[0123] For example, such as Figure 6 As shown, the first forwarding set may include four FIFO queues with internal priorities of 0, 1, 2, and 3, and the second forwarding set may also include four FIFO queues with internal priorities of 0, 1, 2, and 3. For example, when the first parameter of the first packet is a first state and the first internal priority is 1, the node can send the first packet to the FIFO queue with an internal priority of 1 in the first forwarding set. As another example, when the first parameter of the first packet is a second state and the first internal priority is 2, the node can send the first packet to the FIFO queue with an internal priority of 2 in the second forwarding set. It should be understood that the above is merely an illustrative example and does not imply that this application is limited thereto.
[0124] In some other possible implementations, the first forwarding set may also include a PIFO queue. For example... Figure 7 As shown, the PIFO queue consists of a first forwarding set and a second forwarding set. The second forwarding set is closer to the head of the queue than the first forwarding set (i.e., the packet forwarding priority of the second forwarding set is higher than that of the first forwarding set).
[0125] For example, after receiving the first packet, a node can combine the first parameter T, the internal priority IPV, and other tags of the first packet into an extended traffic class (ETC) tag. These other tags may include an ingress path indicator (IPI) to indicate whether the first packet is backbone traffic.
[0126] For example, T=0 indicates that the forwarding set corresponding to the first packet is the second forwarding set, T=1 indicates that the forwarding set corresponding to the first packet is the first forwarding set, IPI=0 indicates that the first packet is backbone traffic, and IPI=1 indicates that the first packet is new access traffic. In ETC, T can occupy 1 bit, IPI can occupy 1 bit, and IPV can occupy 3 bits. Thus, ETC can occupy 5 bits.
[0127] Packets in the PIFO queue can be arranged in ascending order of ETC (Electronic Tolerance). That is, packets with T=1 are placed after packets with TSI=0. When T is the same, newly accessed traffic (i.e., packets with IPI of 1) is placed after backbone traffic (i.e., packets with IPI of 0). When both T and IPI are the same, packets with lower internal priority IPV are placed first. For packets with the same ETC, those with earlier eligibility times are forwarded first. In this way, nodes can prioritize forwarding more important packets based on service importance, resulting in higher service quality and improved user experience. Prioritizing backbone traffic helps avoid interference from hop-by-hop new access traffic. Packets with later eligibility times do not clog the queue, improving bandwidth utilization.
[0128] In the embodiments of this application, the first forwarding set may refer to the part of the PIFO queue where T=1, and the second forwarding set may refer to the part of the PIFO queue where T=0.
[0129] As an example, an electronic device can send a first message into the push-in first-out queue based on the extended flow classification tag of the first message. In this push-in first-out queue, the extended flow classification tags of messages preceding the first message are less than or equal to the extended flow classification tag of the first message, and the extended flow classification tags of messages following the first message are greater than or equal to the extended flow classification tag of the first message.
[0130] In some possible implementations, the electronic device can use a binary search method to send the first message into the first-in-first-out queue. For example, the length of the first-in-first-out queue is N, and the ETC of the first message is called ETC. A The intermediate message B pushed into the first-out queue is called ETC. B Electronic devices can compare ETC (Electronic Toll Collection). A and ETC B If ETC A <ETC B Then, the first message is compared with the intermediate messages in the queue preceding message B. If ETC A >ETC B Then, the first message is compared with the middle message in the queue after message B. This process is repeated until an insertion position is determined, where the ETC of messages preceding that insertion position is less than or equal to the ETC. A The ETC of the message after this insertion position is greater than or equal to the ETC value. AFurthermore, when ETC is the same, messages with earlier eligibility times are prioritized over messages with later eligibility times. The electronic device can then insert the first message into this insertion position. This allows for quick and accurate determination of the first message's insertion position in the PIFO queue with minimal computational resources. In some possible implementations, the first parameter can also indicate the eligibility time of the first message. After the first message is enqueued, the electronic device can continue forwarding messages dequeued based on the eligibility times of each message in the queue, maintaining work conserving. Work conserving means that the node maintains a working state as much as possible when resources are available, preventing resources from becoming idle. This improves bandwidth utilization. The above describes the process of the message processing method using an example of an ATS-based node. The following describes the process of the message processing method using an example of a C-SCORE-based node.
[0131] When this message processing method is applied to nodes based on a C-SCORE architecture, the sorting rule for the first forwarding set can be push-in first-out (PFIFO), and the sorting rule for the second forwarding set can be first-in first-out (FIFO). In other words, the first forwarding set can be a PIFO queue, and the second forwarding set can be a FIFO queue. It should be understood that the resource overhead of message sorting based on the FIFO rule is much greater than that based on the PFIFO rule. When a node receives the first message, it can send the first message to either the second forwarding set (which has lower sorting resource overhead) or the first forwarding set (which has higher resource overhead) based on its needs. This makes the resource overhead of the message forwarding process controllable and has broad applicability.
[0132] The first parameter can be determined based on the arrival time of the first message at the ingress node and the completion time of the second message at the ingress node. Here, the ingress node refers to the ingress node of the C-SCORE architecture, such as... Figure 2 Node 0 in the middle.
[0133] The arrival time of the first message at the ingress node can refer to the time when the ingress node receives the first message. For example, when the ingress node receives the first message, it can timestamp the first message and use the time indicated by the timestamp as the arrival time of the first message.
[0134] The second message can refer to the message that enters the second forwarding set of the ingress node before the first message. The completion time of the second message at the ingress node refers to the time when the ingress node completes forwarding the second message.
[0135] In some possible implementations, when the executing entity is an ingress node, the ingress node can determine the first parameter of the first message by comparing the arrival time of the first message at the ingress node with the completion time of the second message at the ingress node. For example, the ingress node can determine the forwarding set corresponding to the first message as the second forwarding set if the arrival time of the first message at the ingress node is later than the completion time of the second message at the ingress node. Conversely, it can determine the forwarding set corresponding to the first message as the first forwarding set if the arrival time of the first message at the ingress node is earlier than the completion time of the second message at the ingress node.
[0136] It should be understood that if the ingress node receives the first packet later than the completion time of the second packet, it means the ingress node can process the first packet immediately. In this case, the forwarding set corresponding to the first packet can be set as the second forwarding set, which has a simpler sorting rule and lower resource overhead. Conversely, if the ingress node receives the first packet earlier than the completion time of the second packet, it means the ingress node needs to wait for a period before processing the first packet. In this case, the forwarding set corresponding to the first packet can be set as the second forwarding set, which has a more complex sorting rule and higher resource overhead. This approach achieves both in-order packet forwarding and keeps the resource overhead of packet sorting controllable, making it widely applicable.
[0137] After determining the first parameter of the first message, the ingress node can add the first parameter to the first message. In other words, the first message can carry the first parameter after leaving the ingress node.
[0138] In some other possible implementations, when the executing entity is a non-entry node, the non-entry node can directly obtain the first parameter carried in the first message. This helps reduce the computational overhead of the non-entry node.
[0139] When the forwarding set corresponding to the first packet is the first forwarding set, the node can insert the first packet into the first forwarding set based on its completion time. The packets in the first forwarding set can be arranged in ascending order of their completion times. This ensures that packets with longer processing times do not clog the queue, thus improving bandwidth utilization.
[0140] In this embodiment, the push-in-first-out (PIFO) queue can also refer to a queue similar to a PIFO queue (called a PIFO-like queue). For example, this PIFO-like queue can be divided into multiple buckets, which are arranged in order based on completion time, without needing to be sorted within each bucket. The first packet can enter the corresponding bucket. For example, if the number of packets in a bucket exceeds the load waterline, the bucket can be split. Additionally, if the bucket at the head of the queue is empty, it can be automatically terminated. This helps reduce the resource overhead of packet sorting.
[0141] In some possible implementations, nodes can also identify whether the first packet is backbone traffic. Backbone traffic is forwarded with priority over newly arrived traffic. This helps reduce latency during multi-hop backbone forwarding.
[0142] Furthermore, when forwarding packets, nodes can select packets with shorter completion times from both the head of the first-in-first-out (FIFO) queue and the head of the push-in-first-out (PLEASE) queue for continuous forwarding. In other words, nodes can continuously forward packets from the first and second forwarding sets based on their completion times, from earliest to latest. This helps improve bandwidth utilization.
[0143] In this embodiment, the method for each node to calculate the completion time and refresh it hop by hop can refer to the above introduction of the existing C-SCORE architecture, and will not be repeated here.
[0144] As can be seen from the above description, when the message processing method provided in this application is applied to the C-SCORE architecture, only messages with the first parameter in the first state need to participate in the sorting. Thus, a smaller cache depth can be used to implement message forwarding based on the C-SCORE architecture, reducing implementation costs and resource overhead. Furthermore, by selecting messages with shorter completion times from the head of the first-in-first-out (FIFO) queue and the head of the push-in-first-out (PLEET) queue for continuous forwarding, out-of-order message delivery in data slices can be avoided, which helps improve the security of message forwarding.
[0145] The above is a description of the message processing method provided in the embodiments of this application. In some possible implementations, the embodiments of this application also provide a message processing apparatus. The message processing apparatus based on the ATS mechanism is described first below. It should be understood that each step in the above message processing method can be implemented by the corresponding functional module in the message processing apparatus.
[0146] For example, please refer to Figure 8 This is a schematic diagram of the structure of a message processing device provided in an embodiment of this application. Figure 8 As shown, the message processing device may include an ingress timestamp module 801, a flow matching module 802, a slice counting module 803, and an outgress queue management module 804, which are connected in sequence. Arrows are used to indicate the direction of message flow.
[0147] The ingress timestamp module 801 can be used to timestamp a message upon receipt. This provides a basis for subsequent time calculations (such as calculating the validity period of a message).
[0148] The flow matching module 802 can store a second correspondence. The flow matching module 802 can be used to determine a first slice identifier based on the network parameters of the first packet and the second correspondence. Regarding the second correspondence, the first slice identifier, and the process of determining the first slice identifier, please refer to the description in the foregoing method embodiments, which will not be repeated here. In this embodiment, the second correspondence can be pre-configured in the flow matching module 802 by the packet processing device, or it can be pre-configured in the flow matching module 802 by other nodes besides the packet processing device; this is not limited here.
[0149] The slice counting module 803 can be used to calculate the color mark of a message and the message's eligibility time using the token bucket algorithm. For details on calculating the message eligibility time, please refer to the relevant technical documentation; it will not be elaborated upon here.
[0150] The outgoing interface queue management module 804 can be used to implement message forwarding and queuing.
[0151] In this embodiment, the first forwarding set and the second forwarding set can be queues in the outgoing interface queue management module 804. A detailed explanation follows with examples.
[0152] In some possible implementations, the first forwarding set may include multiple FIFO queues with different internal priorities, and the second forwarding set may also include multiple FIFO queues with different internal priorities. For a description of the internal priority levels, please refer to the foregoing embodiments; further details will not be repeated here.
[0153] For example, please refer to Figure 9 This is a functional diagram of an outgoing interface queue management module provided in an embodiment of this application. Figure 9 As shown, the outgoing interface queue management module 900 may include a classification unit 901, a queue management unit 902, and a forwarding unit 903. Arrows are used to indicate the direction of message flow.
[0154] It should be noted that, Figure 9 The output interface queue management module 900 shown is merely exemplary and does not represent that this application is limited thereto.
[0155] For example, such as Figure 9 As shown, the queue management unit 902 may include two sets of queues (i.e., the two sets of queues within the two dashed boxes), and each set of queues may include multiple queues with different internal priorities. Figure 9 (Taking a FIFO queue consisting of four internal priority groups from 0 to 3 as an example). The smaller the internal priority value, the higher the priority at which the queue performs packet forwarding. The lower-priority group can be called the first forwarding set, and the other can be called the second forwarding set.
[0156] After receiving the first packet, the outgoing interface queue management module 900 can first map the QoS priority of the first packet to an internal priority through the classification unit 901. For a description of QoS priorities and the process of mapping the QoS priority of the first packet to the first service level, please refer to the foregoing method embodiments; further details will not be provided here.
[0157] After the first message's first service level is determined by the classification unit 901, the outgoing interface queue management module 900 can send the first message into the queue of the first service level in the first forwarding set or the second forwarding set. For details, please refer to the description in the foregoing method embodiments; further elaboration will not be repeated here.
[0158] In some possible implementations, the queue management unit 902 may also provide the counter-related functions described in the aforementioned method embodiments, which will not be elaborated here.
[0159] When the first message arrives at the head of the queue, the forwarding unit 903 can forward the first message out of the queue. In some possible implementations, the forwarding unit 903 can forward messages out of the queue based on the queue's internal priority, the eligibility time of each message in the queue, and the working continuity. This helps improve bandwidth utilization. For a description of the eligibility time and working continuity, please refer to the explanation in the foregoing method embodiments; it will not be repeated here.
[0160] In some other possible implementations, the first forwarding set and the second forwarding set are different parts of the same push-in first-out (PIFO) queue. The second forwarding set precedes the first forwarding set.
[0161] Please refer to Figure 10 This is a functional diagram of another outgoing interface queue management module provided in an embodiment of this application. Figure 10 As shown, the outgoing interface queue management module 1000 may include a PIFO queue. This PIFO queue consists of a first forwarding set and a second forwarding set, with the second forwarding set positioned closer to the head of the queue than the first forwarding set. Figure 10 In the image, arrows are used to indicate the direction of message flow.
[0162] After receiving the first packet, the outgoing interface queue management module 1000 can combine the first parameter T, internal priority IPV, and other tags of the first packet into an extended flow classification tag ETC. Then, based on the ETC of the first packet and the ETCs of each packet in the PIFO queue, it inserts the first packet into the PIFO queue. The process of inserting the first packet into the PIFO queue, including the first parameter, internal priority IPV, other tags, extended flow classification tag ETC, and so on, can be found in the descriptions in the aforementioned method embodiments and will not be repeated here.
[0163] The outgoing interface queue management module can continuously forward packets in the PIFO queue. This helps improve bandwidth utilization.
[0164] The above provides an exemplary description of a message processing apparatus provided in the embodiments of this application. As can be seen from the above description, in the message processing apparatus provided in the embodiments of this application, messages that require a certain waiting time to process (i.e., messages with the first parameter in the first state) enter a first forwarding set with a slower message forwarding rate, while messages that can be processed quickly (i.e., messages with the first parameter in the second state) enter a second forwarding set with a faster message forwarding rate. The two sets do not affect each other, thereby ensuring bandwidth isolation and bounded low latency for services, and improving bandwidth utilization. Furthermore, green messages (i.e., messages marked in green) that belong to a data slice containing yellow messages (i.e., messages marked in yellow) enter the same forwarding set as the yellow messages. This ensures that the order of messages within the data slice is not disordered, effectively avoiding out-of-order processing and improving the security and stability of message processing.
[0165] The following describes a message processing device based on the C-SCORE architecture. It should be understood that each step in the above message processing method can be implemented by the corresponding functional module in the message processing device.
[0166] Please refer to Figure 11 This is a schematic diagram of another message processing device provided in an embodiment of this application. As shown in the figure, the message processing device 1100 may include a calculation module 1101, a classification module 1102, and a forwarding module 1103.
[0167] The calculation module 1101 is used to execute the calculation steps in the corresponding method embodiment, such as calculating the completion time of the message, the first parameter, etc.
[0168] The classification module 1102 is used to send the message to or push it into the first-in-first-out queue according to the first parameter. For specific implementation details, please refer to the description in the foregoing method embodiments; further elaboration will not be repeated here.
[0169] The forwarding module 1103 is used to select the queue head of the first-in-first-out queue and the queue head of the first-in-first-out queue with the shorter completion time for continuous forwarding.
[0170] This application also provides a message processing apparatus, including a transceiver module and a processing module. The transceiver module is used to receive a first message. The processing module is used to determine a first parameter of the first message. The first parameter is used to indicate the forwarding set corresponding to the first message. The forwarding set includes a first forwarding set and a second forwarding set. The message sorting rules in the first forwarding set are different from those in the second forwarding set, or the message forwarding rate and message forwarding priority of the first forwarding set are both lower than those of the second forwarding set. The transceiver module is also used to send the first message to the forwarding set corresponding to the first parameter.
[0171] In some possible implementations, both the first forwarding set and the second forwarding set include at least one different first-in-first-out queue.
[0172] In some possible implementations, the first forwarding set and the second forwarding set are different parts of the same push-in first-out queue.
[0173] In some possible implementations, the first parameter includes a first state and a second state. The first state indicates that the forwarding set corresponding to the first packet is the first forwarding set. The second state indicates that the forwarding set corresponding to the first packet is the second forwarding set.
[0174] In some possible implementations, the processing module is specifically used to obtain the token parameter of the first message. The token parameter is used to indicate the color mark of the first message in the token bucket algorithm. Specifically, when the color mark is yellow, the processing module determines that the first parameter of the first message is in the first state.
[0175] In some possible implementations, the processing module is specifically used to obtain the slice enqueue parameters of the first packet. The slice enqueue parameters are used to indicate whether there is a packet in the data slice to which the first packet belongs in the first forwarding set. Specifically, when there is a packet in the data slice to which the first packet belongs in the first forwarding set, the processing module determines that the first parameter of the first packet is in a first state.
[0176] In some possible implementations, the processing module is specifically used to obtain the slice enqueue parameter and token parameter of the first packet. The token parameter is used to indicate the color mark of the first packet in the token bucket algorithm. The slice enqueue parameter is used to indicate whether there is a packet in the first forwarding set whose data slice belongs to the first packet. Specifically, when the color mark is green and there is no packet in the first forwarding set whose data slice belongs to the first packet, the processing module determines that the first parameter of the first packet is in the second state.
[0177] In some possible implementations, both the first forwarding set and the second forwarding set include multiple first-in-first-out queues with different service levels. The first parameter is also used to indicate the service level corresponding to the first packet. The processing module is specifically used to send the first packet into the first-in-first-out queue of the corresponding service level in the forwarding set corresponding to the first parameter.
[0178] In some possible implementations, the processing module is specifically used to obtain the quality of service (QoS) priority of the first message. Specifically, the processing module is used to determine the first corresponding service level based on a preset first correspondence and the QoS priority of the first message. The first correspondence is used to indicate the correspondence between each QoS priority and each service level.
[0179] In some possible implementations, the first parameter is also used to indicate the traffic attributes of the first packet. The traffic attributes indicate whether the first packet is backbone traffic. Specifically, the processing module determines the insertion position of the first packet in the corresponding forwarding set based on the first parameter. The sorting rules for pushing packets into the first-out queue include: packets from the second forwarding set precede packets from the first forwarding set; within the same forwarding set, backbone traffic precedes non-backbone traffic; and the first packet is then inserted into the corresponding forwarding set at the desired insertion position.
[0180] In some possible implementations, the first parameter is also used to indicate the quality of service (QoS) priority of the first packet. The sorting rules for pushing packets into the first-out queue also include: packets with the same forwarding set and traffic attributes are arranged in descending order of QoS priority.
[0181] In some possible implementations, the first parameter is also used to indicate the eligibility time of the first packet. The sorting rules for pushing packets into the first-out queue also include: packets with the same forwarding set, traffic attributes, and quality of service priority are arranged in order of eligibility time from earliest to latest.
[0182] In some possible implementations, the processing module is specifically used to obtain the network parameters of the first packet. The network parameters include any one or more of the following: destination media storage control address, source media storage control address, virtual LAN identity, and virtual LAN priority. Specifically, the processing module is used to determine the slice identifier of the first packet based on a preset second correspondence and the network parameters of the first packet. The slice identifier of the first packet indicates the identity of the data slice to which the first packet belongs. The second correspondence indicates the correspondence between each network parameter and each slice identifier. Specifically, the processing module is used to determine the slice enqueue parameters of the first packet based on the slice identifier of the first packet.
[0183] In some possible implementations, the processing module is specifically used to obtain the enqueue record associated with the slice identifier of the first packet. The enqueue record is used to indicate whether there is a packet belonging to the data slice of the first packet in the first forwarding set. The processing module is specifically used to determine the slice enqueue parameters of the first packet based on the enqueue record associated with the slice identifier of the first packet.
[0184] In some possible implementations, the enqueue record is a counter value. The counter is used to increment the count value by a preset number when a packet belonging to the data slice of the first packet enters the first forwarding set. The counter is also used to decrement the count value by a preset number when a packet belonging to the data slice of the first packet leaves the first forwarding set.
[0185] In some possible implementations, the processing module is specifically used to determine that a packet belonging to the data slice of the first packet exists in the first forwarding set when the counter's count value is greater than the counter's initial count value. Conversely, when the counter's count value is the counter's initial count value, it is determined that a packet belonging to the data slice of the first packet does not exist in the first forwarding set.
[0186] In some possible implementations, the first parameter is also used to indicate the eligibility time of the first message. Specifically, the processing module continuously forwards messages out of the queue based on their eligibility time.
[0187] In some possible implementations, the first forwarding set is ordered as push-in first-out, and the second forwarding set is ordered as first-in first-out.
[0188] In some possible implementations, the processing module is specifically used to obtain the arrival time of the first packet at the ingress node and the completion time of the second packet at the ingress node. The second packet refers to the packet that entered the second forwarding set of the ingress node before the first packet. Specifically, the processing module is used to determine the forwarding set corresponding to the first packet as the second forwarding set when the arrival time of the first packet at the ingress node is later than the completion time of the second packet at the ingress node. When the arrival time of the first packet at the ingress node is earlier than the completion time of the second packet at the ingress node, the processing module is used to determine the forwarding set corresponding to the first packet as the first forwarding set.
[0189] In some possible implementations, the processing module is specifically used to obtain the first parameter carried by the first message.
[0190] In some possible implementations, the first parameter is also used to indicate the completion time of the first message. The sorting rules for the second forwarding set include: the messages are arranged in ascending order of their completion times.
[0191] In some possible implementations, the processing module is specifically used to continuously forward packets from the first and second forwarding sets to the queue based on their completion time, from earliest to latest.
[0192] In some possible implementations, the first forwarding set includes multiple sub-queues. Each sub-queue corresponds to a different completion time interval. The sub-queues are arranged in ascending order of their completion time intervals. The packets within each sub-queue are arranged in no particular order.
[0193] In some possible implementations, when the number of packets in a subqueue exceeds a preset threshold, the subqueue is split into at least two subqueues.
[0194] This application also provides a message processing apparatus, including a processor. The processor is configured to perform the method of any of the above embodiments.
[0195] This application also provides a computer-readable storage medium, which includes instructions that, when executed, cause the methods of any of the above embodiments to be implemented.
[0196] This application also provides a computer program product, which includes instructions that, when executed, cause the methods of any of the above embodiments to be implemented.
[0197] This application also provides a chip, including an interface circuit and a processor. The interface circuit and the processor are connected, and the processor is used to cause the chip to perform some or all of the operations in any of the methods in any of the foregoing embodiments.
[0198] This application also provides a chip system, including: a processor coupled to a memory, the memory being used to store programs or instructions, and when the program or instructions are executed by the processor, the chip system enables the implementation of some or all of the operations in any one of the methods in any of the foregoing embodiments.
[0199] Optionally, the chip system may contain one or more processors. These processors can be implemented in hardware or software. When implemented in hardware, the processor can be a logic circuit, an integrated circuit, etc. When implemented in software, the processor can be a general-purpose processor, implemented by reading software code stored in memory.
[0200] Optionally, the chip system may contain one or more memories. The memory may be integrated with the processor or disposed separately from it; this application embodiment does not limit this. For example, the memory may be a non-transient processor, such as a read-only memory (ROM), which may be integrated with the processor on the same chip or disposed separately on different chips. This application embodiment does not specifically limit the type of memory or the arrangement of the memory and processor.
[0201] This application also provides a system that includes one or more of the above-described devices, apparatuses, computer-readable storage media, computer program products, chips, or chip systems.
[0202] It should be understood that the division of parts in the embodiments of this application is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. The functions in the embodiments of this application are integrated into a single processor, or the transceiver and processor may exist separately. The integrated device described above can be implemented in hardware, such as a chip, or in the form of a software functional unit.
[0203] The terms “comprising” and “having”, and any variations thereof, in the specification, claims, and accompanying drawings of this application are intended to cover non-exclusive inclusion, such that a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such process, method, product, or apparatus.
[0204] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0205] Those skilled in the art should realize that the above one or more examples are only used to illustrate the technical solutions of this application, and not to limit them; although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the foregoing embodiments, or make equivalent substitutions for some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A message processing method, characterized in that, include: Receive the first message; Determine the first parameter of the first message; the first parameter is used to indicate the forwarding set corresponding to the first message; The forwarding set includes a first forwarding set and a second forwarding set; wherein the sorting rules of the packets in the first forwarding set are different from those in the second forwarding set, or the packet forwarding rate and packet forwarding priority of the first forwarding set are both lower than those of the second forwarding set; Send the first message to the forwarding set corresponding to the first parameter.
2. The method according to claim 1, characterized in that, Both the first forwarding set and the second forwarding set include at least one different first-in-first-out queue.
3. The method according to claim 1, characterized in that, The first forwarding set and the second forwarding set are different parts of the same push-in first-out queue.
4. The method according to claim 2 or 3, characterized in that, The first parameter includes a first state and a second state; the first state indicates that the forwarding set corresponding to the first packet is the first forwarding set; the second state indicates that the forwarding set corresponding to the first packet is the second forwarding set.
5. The method according to claim 4, characterized in that, The determination of the first parameter of the first message includes: Obtain the token parameter of the first message; the token parameter is used to indicate the color mark of the first message in the token bucket algorithm; When the color mark is yellow, the first parameter of the first message is determined to be the first state.
6. The method according to claim 4, characterized in that, The determination of the first parameter of the first message includes: Obtain the slice enqueue parameters of the first packet; the slice enqueue parameters are used to indicate whether there is a packet in the first forwarding set that belongs to the data slice of the first packet; When a packet belonging to the data slice of the first packet exists in the first forwarding set, the first parameter of the first packet is determined to be the first state.
7. The method according to any one of claims 4-6, characterized in that, The determination of the first parameter of the first message includes: Obtain the slice enqueue parameters and token parameters of the first packet; the token parameter is used to indicate the color mark of the first packet in the token bucket algorithm; the slice enqueue parameters are used to indicate whether there is a packet in the first forwarding set that belongs to the data slice of the first packet; When the color is marked green and there is no packet in the first forwarding set that belongs to the data slice of the first packet, the first parameter of the first packet is determined to be the second state.
8. The method according to any one of claims 2 or 4-7, characterized in that, Both the first forwarding set and the second forwarding set include multiple first-in-first-out queues with different service levels; the first parameter is also used to indicate the service level corresponding to the first packet; Sending the first message into the forwarding set corresponding to the first parameter includes: The first message is sent to the first-in-first-out queue of the corresponding service level in the forwarding set corresponding to the first parameter.
9. The method according to claim 8, characterized in that, The determination of the first parameter of the first message includes: Obtain the quality of service priority of the first message; The service level of the first corresponding message is determined based on the preset first correspondence and the service quality priority of the first message; the first correspondence is used to indicate the correspondence between each service quality priority and each service level.
10. The method according to any one of claims 3-7, characterized in that, The first parameter is also used to indicate the traffic attributes of the first message; the traffic attributes are used to indicate whether the first message is backbone traffic; Sending the first message into the forwarding set corresponding to the first parameter includes: The insertion position of the first packet in the corresponding forwarding set is determined based on the first parameter; wherein, the sorting rule for pushing into the first-out queue includes that packets in the second forwarding set are placed before packets in the first forwarding set; and among packets in the same forwarding set, backbone traffic is placed before non-backbone traffic. The first message is sent to the insertion position in the corresponding forwarding set.
11. The method according to claim 10, characterized in that, The first parameter is also used to indicate the quality of service priority of the first packet; the sorting rule for pushing into the first-out queue also includes: packets with the same forwarding set and the traffic attributes are arranged in order of quality of service priority from high to low.
12. The method according to claim 10 or 11, characterized in that, The first parameter is also used to indicate the qualifying time of the first message; the sorting rules for pushing into the first-out queue also include: messages with the same forwarding set, traffic attributes and quality of service priority are arranged in order of qualifying time from earliest to latest.
13. The method according to claim 6 or 7, characterized in that, The step of obtaining the slice enqueue parameters of the first message includes: Obtain the network parameters of the first message; the network parameters include any one or more of the following: destination media storage control address, source media storage control address, virtual LAN identity, virtual LAN priority; The slice identifier of the first packet is determined based on the preset second correspondence and the network parameters of the first packet; the slice identifier of the first packet is used to indicate the identity identifier of the data slice to which the first packet belongs; the second correspondence is used to indicate the correspondence between each network parameter and each slice identifier; The slice enqueue parameters of the first message are determined based on the slice identifier of the first message.
14. The method according to claim 13, characterized in that, The step of determining the slice enqueue parameters of the first packet based on the slice identifier of the first packet includes: Obtain the enqueue record associated with the slice identifier of the first packet; the enqueue record is used to indicate whether there is a packet in the first forwarding set that belongs to the data slice of the first packet; The slice enqueue parameters of the first message are determined based on the enqueue record associated with the slice identifier of the first message.
15. The method according to claim 14, characterized in that, The enqueue record is the count value of the counter; The counter is used to increment the count value by a preset value when a packet belonging to the data slice of the first packet enters the first forwarding set; The counter is also used to reduce the count value by the preset value when a packet belonging to the data slice to which the first packet belongs leaves the first forwarding set.
16. The method according to claim 15, characterized in that, The step of determining the slice enqueue parameters of the first message based on the enqueue record associated with the slice identifier of the first message includes: When the count value of the counter is greater than the initial count value of the counter, it is determined that there is a packet in the first forwarding set that belongs to the data slice of the first packet; When the counter count value is the initial count value of the counter, it is determined that there is no packet in the data slice to which the first packet belongs in the first forwarding set.
17. The method according to any one of claims 1-16, characterized in that, The first parameter is also used to indicate the validity period of the first message; After sending the first message into the forwarding set corresponding to the first parameter, the method further includes: Based on the eligibility time of each message, the workflow continuously forwards each message out of the queue.
18. The method according to claim 1, characterized in that, The first forwarding set is ordered by push-in first-out (PFI), and the second forwarding set is ordered by first-in first-out (FIFO).
19. The method according to claim 18, characterized in that, The determination of the first parameter of the first message includes: Obtain the arrival time of the first message at the ingress node and the completion time of the second message at the ingress node; the second message refers to the message that entered the second forwarding set of the ingress node before the first message; If the arrival time of the first message at the ingress node is later than the completion time of the second message at the ingress node, the forwarding set corresponding to the first message is determined to be the second forwarding set; If the arrival time of the first message at the ingress node is earlier than the completion time of the second message at the ingress node, the forwarding set corresponding to the first message is determined to be the first forwarding set.
20. The method according to claim 18, characterized in that, The first message carries the first parameter; The determination of the first parameter of the first message includes: Obtain the first parameter carried in the first message.
21. The method according to any one of claims 18-20, characterized in that, The first parameter is also used to indicate the completion time of the first message; the sorting rules of the second forwarding set include: the messages are arranged in order of completion time from earliest to latest.
22. The method according to claim 21, characterized in that, After sending the first message into the forwarding set corresponding to the first parameter, the method further includes: Based on the order of completion time from earliest to latest, the task continuously forwards the messages in the first forwarding set and the second forwarding set to the queue.
23. The method according to any one of claims 18-22, characterized in that, The first forwarding set includes multiple sub-queues; each sub-queue corresponds to a different completion time interval; each sub-queue is arranged in order from earliest to latest according to the completion time interval; and the packets within each sub-queue are arranged in no particular order.
24. The method according to claim 23, characterized in that, When the number of messages in the sub-queue exceeds a preset threshold, the sub-queue is split into at least two sub-queues.
25. A message processing apparatus, characterized in that, Includes a send / receive module and a processing module; The transceiver module is used to receive the first message; The processing module is used to determine the first parameter of the first message; the first parameter is used to indicate the forwarding set corresponding to the first message; the forwarding set includes a first forwarding set and a second forwarding set; wherein the sorting rule of the messages in the first forwarding set is different from that in the second forwarding set, or the message forwarding rate and message forwarding priority of the first forwarding set are both lower than those of the second forwarding set; The transceiver module is also used to send the first message into the forwarding set corresponding to the first parameter.
26. A message processing apparatus, characterized in that, Includes a processor; the processor is configured to perform the method according to any one of claims 1-24.
27. A computer-readable storage medium, characterized in that, The computer-readable storage medium includes instructions that, when executed, cause the method of any one of claims 1-24 to be implemented.
28. A computer program product, characterized in that, The computer program product includes instructions that, when executed, cause the method of any one of claims 1-24 to be implemented.