Packet forwarding method and apparatus, electronic device, and storage medium

By processing the time slot identification and offset of packets in sink nodes and source nodes, the boundary jitter problem introduced by source nodes in deterministic network is solved, and accurate time slot access and jitter control of packets is realized, improving Bandwidth utilization and service quality.

WO2024250697A1PCT designated stage expired Publication Date: 2024-12-12ZTE CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/073366
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-07
Filing Date
2024-01-19
Publication Date
2024-12-12

AI Technical Summary

Technical Problem

In the deterministic periodic scheduling accurate time slot orchestration technology, since the boundary jitter introduced by the source node cannot be effectively controlled, end-to-end jitter cannot be theoretically guaranteed, affecting service quality and bandwidth utilization.

Method used

When receiving messages on the sink node, the queue number of the message is adjusted based on the upstream sending time slot identification and access time slot offset to absorb the boundary jitter introduced by the source node and obtain the arrival time slot and the arrival time slot and the arrival time slot are in the source node. Input time slots, the encapsulated access time slot offset is passed to the next node, ensuring the accurate time slot access of the message throughout the network.

Benefits of technology

Effectively control the jitter of the overall network within 2T, improve bandwidth utilization, and ensure end-to-end service quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024073366_12122024_PF_FP_ABST
    Figure CN2024073366_12122024_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of communications, and discloses a packet forwarding method and apparatus, an electronic device, and a storage medium. The method comprises: a sink node receives a packet sent by a previous node, wherein the packet carries an upstream sending slot identifier and an admission slot offset; on the basis of an out-slot number corresponding to the upstream sending slot identifier and a currently sent queue number, determining a first queue number corresponding to the packet; adjusting the first queue number on the basis of the admission slot offset to obtain a second queue number; and caching the packet to a sending queue corresponding to the second queue number for forwarding.
Need to check novelty before this filing date? Find Prior Art

Description

Message forwarding method, device, electronic device and storage medium

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to the Chinese patent application filed with the China Patent Office on June 7, 2023, with application number 202310674360.9 and invention name “Message forwarding method, device, electronic device and storage medium”. The entire contents of the Chinese patent application are incorporated herein by reference. Technical Field

[0003] The embodiments of the present application relate to the field of communication technology, and in particular to a message forwarding method, device, electronic device, and storage medium. Background Art

[0004] In the deterministic periodic scheduling precise time slot orchestration technology, the control plane plans the access time slot for the service, and the service message needs to be accessed and carried according to the access time slot. When the service message arrives at the source PE node (Source Provider Edge Node), its arrival time slot and the access time slot may be inconsistent. In order to make the service access according to the access time slot, a certain shaping mechanism needs to be applied inside the source PE. In related technologies, the applicable deterministic periodic scheduling mechanism can only ensure that the jitter from the access time slot to the host PE exit after shaping is less than 2T (where T is the periodic scheduling template time slot length). At the source node (source PE node), the boundary jitter introduced by shaping mechanisms such as admission control is still uncontrollable.

[0005] Summary of the Invention

[0006] The embodiments of the present application provide a message forwarding method, device, electronic device and storage medium, which can solve the problem of boundary jitter introduced by the source node.

[0007] In order to solve the above technical problems, this application is implemented as follows.

[0008] In a first aspect, a message forwarding method is provided, which is applied to a destination node of a deterministic network, including: the destination node receives a message sent by a previous node, wherein the message carries an upstream sending time slot identifier and an access time slot offset; based on an outgoing time slot number corresponding to the upstream sending time slot identifier and a currently sent queue number, a first queue number corresponding to the message is determined; based on the access time slot offset, the first queue number is adjusted to obtain a second queue number; and the message is cached in a sending queue corresponding to the second queue number and forwarded.

[0009] In a second aspect, a message forwarding method is provided, which is applied to a source node of a deterministic network, including: the source node receives a message and obtains an arrival time slot of the message, wherein the message includes an initial time slot identifier of the message; determines an admission time slot of the message based on the initial time slot identifier; determines an admission time slot offset of the message based on the arrival time slot and the admission time slot; and encapsulates the admission time slot offset into the message and forwards it to the next node.

[0010] According to a third aspect, a message forwarding device is provided, comprising: a receiving module for receiving a message sent by an upper node, wherein the message carries an upstream sending time slot identifier and an access time slot offset; a determining module for determining a first queue number corresponding to the message based on an output time slot number corresponding to the upstream sending time slot identifier and a currently sent queue number; an adjusting module for adjusting the first queue number based on the access time slot offset to obtain a second queue number; and a forwarding module for caching the message to a sending queue corresponding to the second queue number for forwarding.

[0011] In a fourth aspect, a message forwarding device is provided, comprising: an acquisition module for receiving a message and obtaining the arrival time slot of the message, wherein the message includes the initial time slot identifier of the message; a first determination module for determining the admission time slot of the message based on the initial time slot identifier; a second determination module for determining the admission time slot offset of the message based on the arrival time slot and the admission time slot; and a forwarding module for encapsulating the admission time slot offset into the message and forwarding it to the next node.

[0012] In a fifth aspect, a computer device is provided, comprising a processor and a memory, wherein the memory stores at least one computer program, and the at least one computer program is loaded and executed by the processor to implement the steps of the method described in the first aspect above, or to implement the steps of the method described in the second aspect above.

[0013] In a sixth aspect, a computer-readable storage medium is provided, in which at least one computer program is stored. The computer program is loaded and executed by a processor to implement the steps of the method described in the first aspect above, or to implement the steps of the method described in the second aspect above.

[0014] In a seventh aspect, a computer program product is provided, which includes at least one computer program, and the computer program is loaded and executed by a processor to implement the steps of the method described in the first aspect above, or to implement the steps of the method described in the second aspect above. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.

[0016] FIG1 is a schematic diagram of a time slot admission technology provided by an embodiment of the present application;

[0017] FIG2 is a flow chart of a message forwarding method for a sink node in a deterministic network provided in an embodiment of the present application;

[0018] 3 is a schematic diagram of a message forwarding method applied to a sink node in a deterministic network according to an embodiment of the present application;

[0019] FIG4 is a flow chart of a message forwarding method for a source node in a deterministic network provided in an embodiment of the present application;

[0020] FIG5 is a schematic diagram of a message encapsulation format provided in an embodiment of the present application;

[0021] FIG6 is a schematic diagram of another message encapsulation format provided in an embodiment of the present application;

[0022] FIG7 is a schematic diagram of another message encapsulation format provided in an embodiment of the present application;

[0023] FIG8 is a flow chart of a method for controlling boundary jitter provided in an embodiment of the present application;

[0024] FIG9 is a schematic diagram of a method for controlling boundary jitter provided in an embodiment of the present application;

[0025] FIG10 is a schematic diagram of another method for controlling boundary jitter provided in an embodiment of the present application;

[0026] FIG11 is a schematic diagram of a message forwarding device provided in an embodiment of the present application;

[0027] FIG12 is a schematic diagram of another message forwarding device provided in an embodiment of the present application;

[0028] FIG13 is a schematic diagram of the structure of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0029] Exemplary embodiments will be described in detail herein, with examples illustrated in the accompanying drawings. In the following description, when referring to the drawings, identical numerals in different figures represent identical or similar elements, unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all embodiments consistent with the present application. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present application, as detailed in the appended claims.

[0030] In order to better understand the technical solution provided by this application, the technology involved in this application is first introduced.

[0031] The IETF DetNet working group proposed Large-Scale Deterministic Network (LDN) technology. LDN applies periodic queuing and forwarding technology to wide area networks. It extends the upstream transmission time slot label in the message and schedules the downstream nodes based on the time slot label, thus solving a series of technical problems caused by time asynchrony between nodes and long links.

[0032] At the head node (source PE) of an LDN network, two types of service admission control technologies are used. One type of service admission technology carries services based on their actual arrival window, allowing packets to be carried as they arrive. Consequently, jitter control is limited to the LDN domain, from the source PE ingress to the sink PE egress. However, due to the diversity and randomness of service cycles, the control plane cannot accurately predict the actual arrival time of packets at the source PE. Consequently, the control plane can only grant bandwidth to services based on the worst-case scenario, resulting in bandwidth inflation. For example, suppose a periodic scheduling template has eight time slot queues (numbered 0 to 7) and T = 10 us. A traffic flow characteristically sends a packet every 40 us, potentially falling into time slots 0 and 4, 1 and 5, 2 and 6, or 3 and 7. Since it's impossible to accurately determine the period within which a packet falls, it's assumed that it could fall into any time slot. In this case, the control plane needs to expand the bandwidth by a factor of four. Another example is a random burst traffic flow with a bandwidth of 10 Mbps. Since the arrival patterns and characteristics of traffic packets are unpredictable, the bandwidth might need to be expanded by a factor of eight to avoid congestion. Bandwidth expansion reduces bandwidth utilization and limits service access.

[0033] To address bandwidth expansion and improve bandwidth utilization, a time-slot-based precise control plane orchestration scheme has been proposed. In this scheme, a controller precisely plans and reserves time slot resources on a hop-by-hop basis. For packets in a particular service flow, access is limited to designated time slots at the source PE node, a technique known as time-slot admission. However, as shown in Figure 1, if packets arriving at the source PE node do not match the admission time slot, they must be buffered and access controlled according to the admission time slot, a process that can introduce jitter. Current periodic scheduling techniques based on time-slot admission focus only on jitter from the time a packet enters the admission time slot to the destination PE egress, but do not address edge jitter at the source PE caused by shaping techniques such as admission control.

[0034] Service quality is ultimately affected by end-to-end delay jitter. If the boundary jitter introduced by the source node (source PE) is not resolved, end-to-end jitter cannot be theoretically guaranteed, which may make it difficult to implement improved technical solutions based on time slot scheduling and time slot admission.

[0035] In view of this, the present application proposes a solution that can significantly improve bandwidth utilization while solving the boundary jitter introduced by the source node, so that the overall jitter of the LDN domain is kept within 2T.

[0036] FIG2 is a flow chart of a message forwarding method applied to a destination node of a deterministic network provided in an embodiment of the present application.

[0037] As shown in FIG2 , the method may be executed by a network-side device, which may be a sink node in a deterministic network. The method includes the following steps.

[0038] S210: The destination node receives the message sent by the previous node.

[0039] It is understood that in a message forwarding network, a destination node refers to the target node in network communication, that is, the final destination of message transmission. Message forwarding refers to the process by which a node transmits a received message to the next node through the network. In this embodiment, the previous node refers to the previous node closer to the destination node, and upstream refers to one or more nodes located before the destination node. It should be noted that in this application, a node can be an actual computer device or a virtual node or service in the network.

[0040] Among them, the message carries an upstream sending time slot identifier and an access time slot offset. The upstream sending time slot identifier refers to the sending time slot corresponding to the upstream node when the upstream node sends the message, and the upstream sending time slot identifier is used to identify the sending time slot. When a message is transmitted from the upstream node to the downstream node, it can carry a sending time slot identifier. This identifier represents the time slot number or time slot label when the message is sent, and can be used as a unique identifier for the message so that the downstream node can receive and process the message in the correct order. The access slot offset (ASO) refers to the fact that when the source node performs time slot admission for the service message, there may be a certain offset between the message arrival time slot and the admission time slot. Therefore, the source node needs to expand the message to carry the admission time slot offset. When the message arrives at the destination node, the destination node needs to adjust the message based on the admission time slot offset, thereby absorbing the boundary jitter introduced by the source node by the shaping mechanism such as time slot admission.

[0041] S220: Determine a first queue number corresponding to the message based on the outgoing time slot number corresponding to the upstream sending time slot identifier and the currently sending queue number.

[0042] The outgoing time slot number is the time slot number when forwarding a message through an outgoing port of a destination node. The outgoing time slot number can be obtained according to a pre-established time slot mapping table, which is a correspondence table between upstream sending time slot numbers and outgoing time slot numbers.

[0043] It is understood that in this application, when a destination node receives a message, it can determine which queue to place the message in based on the outgoing time slot number in the message. If messages in multiple time slots need to be placed in the same queue, then the specific order of each message in the queue must be determined based on the outgoing time slot numbers of different messages or other factors (such as priority, etc.), that is, the first queue number of each message is obtained. It should be noted that the first queue number is not the final sending queue number of the message.

[0044] S230: Adjust the first queue number based on the admission slot offset to obtain a second queue number.

[0045] S240: Buffer the message into a sending queue corresponding to the second queue number and forward it.

[0046] It can be understood that in order to solve the boundary jitter problem introduced by the source node, S230 adjusts the first queue number according to the preset rules based on the access time slot offset to obtain the second queue number. In S240, when a specific transmission time slot is reached, the message in the queue with the second queue number will be sent out, that is, the first queue number is the final sending queue number of the message.

[0047] In this application, the first queue number corresponding to the message is determined by first using the outgoing time slot number corresponding to the upstream sending time slot identifier and the currently sending queue number. The first queue number is then adjusted according to the access time slot offset to obtain the second queue number. The message is then cached and forwarded to the sending queue corresponding to the second queue number, thereby improving the scheduling mechanism of the destination node. At the same time, adjusting the queue number of the message based on the access time slot offset in the destination node can absorb the boundary jitter introduced by the source node by shaping mechanisms such as time slot access, thereby achieving the control function of boundary jitter.

[0048] In one implementation, determining the first queue number corresponding to the message based on the outgoing time slot number and the currently transmitted queue number includes: determining the first queue number corresponding to the message based on the kth queue group currently being transmitted and a magnitude relationship between the outgoing time slot number and the currently transmitted queue number. In one implementation, n queue groups are configured in the sink node, one queue group corresponds to one periodic time slot template, and one periodic time slot template includes N time slot numbers.

[0049] It should be noted that the sink node includes an ingress port and an egress port. The ingress port receives a message sent by the previous node, and the egress port determines a sending queue for the message and forwards the message.

[0050] The following example illustrates the above implementation method using Figure 3 as an example. As shown in Figure 3, at the egress port of the sink node, the number of queue groups is increased in the periodic scheduling template, expanding the periodic scheduling queue to three or more groups. In this example, expanding to three groups requires 2N queues. The three queues are named A, B, and C. The time slots in each queue group are still numbered from 0 to N-1. The three queues are scheduled in a round-robin manner (A->B->C). At any given moment, one queue is always scheduled to send, thus maintaining the overall port bandwidth. In addition to the time slot numbers, queues in Group A are numbered from 0 to N-1, queues in Group B are numbered from N to 2N-1, and queues in Group C are numbered from 2N to 3N-1. These multiple queue groups are added to absorb jitter at the source node boundary.

[0051] In addition, in an embodiment of the present application, the existing method of learning, acquiring or calculating the time slot mapping relationship between upstream and downstream nodes is not changed. After the periodic scheduling queue of the host node is expanded, since the rotation order of the outbound port time slot number is still 0 to N-1 (ignoring the group), the existing method can be reused to establish the time slot mapping relationship. Therefore, the above-mentioned outbound time slot number can be obtained according to the pre-established time slot mapping relationship table.

[0052] It is understandable that, since at every moment there is always a group of queues in a scheduled transmission state, it is necessary to determine the first queue number corresponding to the message based on the kth queue group currently transmitting and the relationship between the outgoing time slot number and the currently transmitting queue number. In one implementation, determining the first queue number corresponding to the message based on the kth queue group currently transmitting and the relationship between the outgoing time slot number and the currently transmitting queue number may include one of the following.

[0053] (1) When the outgoing time slot number is greater than the currently transmitted queue number, the number of the first queue is: (k - 1)*N + y, where y is the outgoing time slot number, k is an integer less than or equal to n, and n is an integer greater than or equal to 3.

[0054] Exemplarily, continue to refer to FIG. 3. Assume that the time slot number x carried by the packet is 2, and the outgoing time slot number y = 3 is obtained by looking up the time slot mapping relationship table. Then: If the currently transmitting queue group is group A, the currently transmitted queue number is t = 2, satisfying y > t, and group A is the first queue group, then the number of the corresponding first queue is (1 - 1)*5 + 3 = 3. If the currently transmitting queue group is group B, the currently transmitted queue number is t = 2, satisfying y > t, and group B is the second queue group, then the number of the corresponding first queue is (2 - 1)*5 + 3 = 8. If the currently transmitting queue group is group C, the currently transmitted queue number is t = 2, satisfying y > t, and group A is the third queue group, then the number of the corresponding first queue is (3 - 1)*5 + 3 = 13.

[0055] (2) When the outgoing time slot number is less than or equal to the currently transmitted queue number, if the kth queue group is not the last queue group, the number of the first queue is: k*N + y; where y is the outgoing time slot number, k is an integer less than or equal to n, and n is an integer greater than or equal to 3.

[0056] Exemplarily, continue to refer to FIG. 3. Assume that the time slot number x carried by the packet is 5, and the outgoing time slot number y = 2 is obtained by looking up the time slot mapping relationship table. Then: If the currently transmitting queue group is group A, the currently transmitted queue number is t = 4, satisfying y < t, and group A is the first queue group and not the last queue group, then the number of the corresponding first queue is 1*5 + 2 = 7. If the currently transmitting queue group is group B, the currently transmitted queue number is t = 4, satisfying y < t, and group B is the second queue group and not the last queue group, then the number of the corresponding first queue is 2*5 + 2 = 12.

[0057] (3) When the outgoing time slot number is less than or equal to the currently transmitted queue number, if the kth queue group is the last queue group, the number of the first queue is: y, where y is the outgoing time slot number, k is an integer less than or equal to n, and n is an integer greater than or equal to 3.

[0058] Exemplarily, continue to refer to FIG. 3. Assume that the time slot number x carried in the message is 5. By looking up the time slot mapping relationship table, the output time slot number y is obtained as 2. If the current sending queue group is group C and the current sending queue number is t = 4, and y < t, and group C is the 3rd queue group, that is, the last queue group, then the number of the corresponding first queue is 2. It can be understood that if group C is not the last queue group, the number of the corresponding first queue is obtained by the method in (2) above as 3*5 + 2 = 17. If group C is the last queue group, the number range of the entire queue group is: 0 to 3N - 1, that is, 0 to 14. And the queue number 17 is not within this range. However, in this application, multiple groups of queues are scheduled in a polling manner, so 17 - 15 = 2. Therefore, the actual queue number corresponding to this message is the output time slot number.

[0059] In one implementation, based on the admission time slot offset, the first queue number is adjusted to obtain a second queue number, which may include the following steps.

[0060] Step 1: Determine the adjustment amount of the message at the destination node according to the admission time slot offset and a preset constant.

[0061] In one implementation, step 1 may include: determining the adjustment amount as: C - aso. Where C is a preset constant, C is a natural number greater than or equal to N, and aso is the admission time slot offset.

[0062] Step 2: Determine the second queue number as: (z + d) % (n * N). Where z is the first queue number and d is the adjustment amount.

[0063] It can be understood that in order to restore the original time slot relative relationship of the service message, it is necessary to make the total offsets of all messages at the source node and the destination node equal. The offset of the message at the source node is the admission time slot offset (aso), then the adjustment amount (d) at the destination node is: constant - aso, because the sum of the backward offsets of all messages is aso + (constant - aso) = constant. For example, for any two messages P1 and P2 of a service flow, assume that the offset of P1 at the source node is a and the offset of P2 at the source node is b, and a and b are carried in the message to the destination node. In order to restore the original time slot relative relationship between P1 and P2 messages, at the destination PE, P1 can be continuously offset backward by N - a, and P2 can be offset backward by N - b. At this time, the total backward offsets of P1 and P2 messages at the source PE and the destination PE are both N, so that P1 and P2 restore the original time slot relative relationship. In addition, since the value range of aso is [0, N], the value range of the constant is [N, ∞), that is, the constant can take the minimum value N.

[0064] FIG4 is a flow chart of a message forwarding method for a source node in a deterministic network provided in an embodiment of the present application.

[0065] As shown in FIG4 , the method may be executed by a network-side device, which may be a source node in a deterministic network. The method includes the following steps.

[0066] S410: The source node receives a message and obtains the arrival time slot of the message.

[0067] The message includes an initial time slot identifier of the message.

[0068] The arrival time slot refers to the time slot when the message arrives at the source node, and the initial time slot identifier refers to the time slot identifier of the upstream node.

[0069] S420: Determine the access time slot of the message according to the initial time slot identifier.

[0070] The admission time slot may be obtained according to a pre-established time slot mapping relationship table, where the time slot mapping relationship table is used to indicate a mapping relationship between an initial time slot identifier of an upstream node and an admission time slot of the current node.

[0071] S430: Determine the admission time slot offset of the message according to the arrival time slot and the admission time slot.

[0072] In one implementation, S430 includes determining an admission time slot offset for the message based on the number of queues in the periodic time slot template and the size relationship between the arrival time slot and the admission time slot. In another implementation, determining the admission time slot offset for the message based on the number of queues in the periodic time slot template and the size relationship between the arrival time slot and the admission time slot may include one of the following.

[0073] (1) When the arrival time slot is smaller than the admission time slot, the admission time slot offset is determined to be: nm.

[0074] (2) When the arrival time slot is greater than the admission time slot, the admission time slot offset is determined to be: N+nm.

[0075] (3) When the arrival time slot is equal to the admission time slot, the admission time slot offset is determined to be x*N.

[0076] Wherein, n is the admission time slot, m is the arrival time slot, N is the number of queues, x is an integer greater than or equal to 0, m is an integer greater than or equal to 0, and n is greater than or equal to N-1.

[0077] The above implementation is described below by an example. Assume that the number of cycle template time slot queues is denoted as N, the arrival time slot of a certain packet in the traffic flow is denoted as m, and the actually admitted time slot of this packet is n. Then 0 ≤ m, n ≤ N - 1, and the following three cases are included.

[0078] (1) If m < n, the admitted time slot offset is n - m.

[0079] (2) If m > n, the admitted time slot offset is N + n - m.

[0080] (3) If m = x * N, since the current received time slot allows the packet to be admitted, it can be considered that the admitted time slot offset is 0, or it can also be considered that the packet is cached and waits for a cycle period, then the time slot offset is N.

[0081] It can be seen that in the embodiment of this application, the possible value range of the admitted time slot offset is [0, x * N].

[0082] S440: Package the admitted time slot offset into the packet and forward it to the next node.

[0083] After the source node obtains the admitted time slot offset, it expands and packages the admitted time slot offset in the service packet. Among them, the packaging format can include Internet Protocol version 4 (IPv4) / Internet Protocol version 6 (IPv6), Multi-Protocol Label Switching (MPLS), Segment Routing (SR) / Segment Routing over IPv6 (SRv6), etc. The corresponding packaging format can be selected according to different packet types. This application does not limit the specific expansion or packaging method.

[0084] For example, for a service message with a message type of SRv6, relevant information can be encapsulated in a segment routing header (SRH) message header or an IPv6DoH message header. As shown in FIG5 , for the SRH message header, 1 bit can be set in the flags field to indicate that a new deterministic network service identifier (DetNet SID) is added to the SID-List to carry information related to the determined service, including a service flow ID, a time slot label, and the newly added ASO information of the present invention. If ASO information is carried in the IPv6DoH (IPv6DNS over HTTPS) header, an Option TLV (Type-Length-Value options) can be added. As shown in FIG6 , the ASO field occupies 8 bytes.

[0085] For example, for SR-MPLS service packets, a special label can be indicated at the bottom of the stack, such as the Synonymous Flow Label (SFL) technology defined in RFC8957, or a Special Purpose Label (SPL) or extended SPL indication. Another example is that two bytes can be defined within the SR packet's Path Segment label to carry ASO information. For example, Figure 7 shows an encapsulation format using SPL to define an ASO label.

[0086] It should be noted that the time slot offset field only needs to be obtained at the destination node. When forwarding at the intermediate node, there is no need to parse the field information, and the message is forwarded only according to the existing periodic scheduling mechanism.

[0087] In an embodiment of the present application, the admission time slot offset of the message is determined based on the arrival time slot and admission time slot of the message, and the message is expanded at the source node to carry the admission time slot offset. Finally, the message carrying the admission time slot offset is forwarded to the next node, so that the downstream node solves the boundary jitter problem introduced by the source node based on the admission time slot offset.

[0088] FIG8 is a flow chart of a method for controlling boundary jitter provided in an embodiment of the present application, which can implement the various processes implemented in the method embodiments shown in FIG2 to FIG7 .

[0089] Before describing this embodiment, refer to Figure 9 and set the number of periodic template queues N to 8 (time slots 0 to 7). For two packets P1 and P2 of a service flow, assume that at the source PE node, P1 arrives at time slot 0 and enters access time slot 1, and P2 arrives at time slot 2 and enters access time slot 5.

[0090] Specifically, this embodiment includes the following steps.

[0091] S810: Determine whether the target node is a source node or a sink node.

[0092] The target node is the node to which the message currently arrives. If the target node is the source node, the process goes to S820 ; if the target node is the sink node, the process goes to S830 .

[0093] S820: Acquire the arrival time slot and admission time slot of the message, and obtain the admission time slot offset.

[0094] If P1 arrives at time slot 0 and enters admission time slot 1, the offset aso between P1's arrival time slot and the admission time slot is 1. If P2 arrives at time slot 2 and enters admission time slot 5, the offset aso between P2's arrival time slot and the admission time slot is 3. The original time slot difference between P1 and P2 is 2, and the time slot difference after admission control is 4.

[0095] S830: Encapsulate the admission slot offset into the message.

[0096] The admission timeslot offset is encapsulated in the corresponding service message and carried to the sink node.

[0097] S840: Extract information such as the access time slot offset and the upstream sending label carried in the message.

[0098] S850: Obtain an outgoing time slot number according to the upstream sending time slot identifier and the locally maintained time slot mapping relationship table.

[0099] For S840 and S850, as shown in Figure 10, assuming that the upstream timestamp label carried by P1 upon arrival at the sink node is 2, then according to the periodic scheduling principle, the upstream timestamp label carried by P2 upon arrival at the sink node is 6. Assume that a timestamp mapping relationship of 0->3 (1->4, 2->5, 3->6, 4->7, 5->0, 6->1, 7->2) has been established between the next-to-last hop and the sink node.

[0100] For the P1 message: the time slot number carried by the message is x=2, and the time slot number obtained by searching the time slot mapping table is y=5.

[0101] For the P2 message: the time slot number carried in the message is x=6, and the time slot number obtained by searching the time slot mapping table is y=1.

[0102] S860: Determine the first queue number according to the outgoing time slot number and the current sending group number.

[0103] 10 , the sink node uses three queues for jitter control, and when the P1 message arrives, the current A group queue 2 is in the sending state, and when P2 arrives, the A group queue 6 is in the sending state.

[0104] For the P1 message: the outgoing time slot number is y=5. Since the current queue t=2 of group A is sending, y>t is satisfied, and the corresponding first queue number is z=(k-1)*N+y=(1-1)*8+5=5.

[0105] For the P2 message: the outgoing time slot number is y=1. Since the current queue t=6 of group A is sending, y≤t is satisfied, and the corresponding first queue number is z=k*N+y=1*8+1=9.

[0106] S870: Adjust the first queue number according to the admission time slot offset to obtain a second queue number.

[0107] For the P1 message: the carried admission time slot offset aso=1, then the second queue number z=(z+d)%(n*N)=(z+(N-aso))%(3*N)=(5+(8-1))%(3*8)=12.

[0108] For the P2 message: the carried admission time slot offset aso=3, then the second queue number z=(z+d)%(n*N)=(z+(N-aso))%(3*N)=(9+(8-3))%(3*8)=14.

[0109] S880: The message is put into the corresponding egress port queue according to the second queue number, and forwarded in a round-robin order.

[0110] Packet P1 is put into queue 12, and packet P2 is put into queue 14.

[0111] In this embodiment, the difference in the arrival time slots of the messages P1 and P2 at the source node is 2. At the egress of the destination node, the difference in the outbound queue numbers of the messages P1 and P2 is also 2. Therefore, the end-to-end jitter can be controlled within 2T, realizing the control of boundary jitter introduced by the source node.

[0112] It should be noted that in order to avoid bandwidth congestion, from the source node to the next-to-last hop node, scheduling is still performed by time slot to maximize bandwidth utilization. At the destination node, since the relative relationship of the time slots of the original message is restored, the message pattern is determined by the original customer service characteristics, and does not support precise calculation based on time slot granularity. Therefore, scheduling needs to be performed at the destination node according to bandwidth expansion. Usually, aggregation scheduling is performed at the intermediate node, and at the destination PE node, only business flows landing from the same port need to be aggregated and scheduled. Therefore, in the technical solution of the present application, while greatly improving bandwidth utilization, it is possible to ensure that the overall jitter of the LDN domain is less than 2T.

[0113] FIG11 shows a schematic structural diagram of a message forwarding device provided in an embodiment of this specification. As shown in FIG9 , the message forwarding device 1100 may include: a receiving module 1110 , a determining module 1120 , an adjusting module 1130 , and a forwarding module 1140 .

[0114] In this embodiment, the receiving module 1110 is used to receive a message sent by the previous node, wherein the message carries an upstream sending time slot identifier and an access time slot offset; the determining module 1120 is used to determine the first queue number corresponding to the message based on the outgoing time slot number corresponding to the upstream sending time slot identifier and the currently sent queue number; the adjusting module 1130 is used to adjust the first queue number based on the access time slot offset to obtain a second queue number; and the forwarding module 940 is used to cache the message to the sending queue corresponding to the second queue number and forward it.

[0115] In one implementation, the determination module 1120 is configured to determine the first queue number corresponding to the message according to the kth queue group currently being sent and the magnitude relationship between the outgoing time slot number and the currently sent queue number.

[0116] In one implementation, n queue groups are set in the host node, one queue group corresponds to one periodic time slot template, and one periodic time slot template includes N time slot numbers; based on the kth queue group currently being sent, and the size relationship between the outgoing time slot number and the currently sent queue number, the first queue number corresponding to the message is determined, including: when the outgoing time slot number is greater than the currently sent queue number, the first queue number is: (k-1)*N+y; when the outgoing time slot number is less than or equal to the currently sent queue number, if the kth queue group is not the last queue group, the first queue number is: k*N+y, if the kth queue group is the last queue group, the first queue number is: y; wherein y is the outgoing time slot number, k is an integer less than or equal to n, and n is an integer greater than or equal to 3.

[0117] In one implementation, the adjustment module 1130 is used to determine the adjustment amount of the message at the host node based on the access time slot offset and the preset constant; based on the adjustment amount, the second queue number is determined to be: (z+d)%(n*N), where z is the first queue number and d is the adjustment amount.

[0118] In one implementation, the adjustment module 1130 is configured to determine the adjustment amount as: C-aso, where C is a preset constant, C is a natural number greater than or equal to N, and aso is the admission slot offset.

[0119] The message forwarding device provided in the embodiment of the present application can implement each process implemented in the method embodiment shown in Figures 1 to 3. To avoid repetition, they are not described here.

[0120] Figure 12 shows a structural diagram of another message forwarding device provided in an embodiment of this specification. As shown in Figure 12, the message forwarding device 1200 may include: an acquisition module 1210, a first determination module 1220, a second determination module 1230, and a forwarding module 1240.

[0121] In this embodiment, the acquisition module 1210 is used to receive a message and obtain the arrival time slot of the message, wherein the message includes the initial time slot identifier of the message; the first determination module 1220 is used to determine the admission time slot of the message based on the initial time slot identifier; the second determination module 1230 is used to determine the admission time slot offset of the message based on the arrival time slot and the admission time slot; and the forwarding module 1240 is used to encapsulate the admission time slot offset into the message and forward it to the next node.

[0122] In one implementation, the second determining module 1230 is configured to determine the admission time slot offset of the message according to the number of queues of the periodic time slot template and the size relationship between the arrival time slot and the admission time slot.

[0123] In one implementation, the second determination module 1230 is used to determine, when the arrival time slot is less than the admission time slot, that the admission time slot offset is: nm; when the arrival time slot is greater than the admission time slot, determine the admission time slot offset is: N+nm; when the arrival time slot is equal to the admission time slot, determine the admission time slot offset as x*N; wherein n is the admission time slot, m is the arrival time slot, N is the number of queues, x is an integer greater than or equal to 0, m is an integer greater than or equal to 0, and n is greater than or equal to N-1.

[0124] A message forwarding device provided in an embodiment of the present application can implement each process implemented in the method embodiment shown in Figure 4. To avoid repetition, it will not be described here.

[0125] In one embodiment, as shown in Figure 13, the embodiment of the present application also provides an electronic device 1300, including a processor 1310, a memory 1320, and a program or instruction stored on the memory 1320 and executable on the processor 1310. When the program or instruction is executed by the processor 1310, each process of the above-mentioned message forwarding method embodiment is implemented. To avoid repetition, it will not be repeated here.

[0126] An embodiment of the present application also provides a computer-readable storage medium, on which a program or instruction is stored. When the program or instruction is executed by a processor, the various processes of the above-mentioned message forwarding method embodiment are implemented. To avoid repetition, they are not repeated here.

[0127] The processor is the processor in the electronic device described in the above embodiment. The readable storage medium includes a computer-readable storage medium, such as a computer read-only memory (ROM), random access memory (RAM), a magnetic disk, or an optical disk.

[0128] An embodiment of the present application further provides a chip, which includes a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the various processes of the above-mentioned message forwarding method embodiment. To avoid repetition, they are not repeated here.

[0129] It should be understood that the chip mentioned in the embodiments of the present application can also be called a system-level chip, a system chip, a chip system or a system-on-chip chip, etc.

[0130] It should be noted that, in this article, the terms "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the statement "comprises a ..." does not exclude the presence of other identical elements in the process, method, article or device comprising the element. In addition, it should be noted that the scope of the methods and devices in the embodiments of the present application is not limited to performing functions in the order shown or discussed, and may also include performing functions in a substantially simultaneous manner or in the opposite order according to the functions involved. For example, the described method may be performed in an order different from that described, and various steps may also be added, omitted, or combined. In addition, the features described with reference to certain examples may be combined in other examples.

[0131] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus the necessary general hardware platform, and of course can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for enabling a terminal (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in each embodiment of the present application.

[0132] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of this application, ordinary technicians in this field can also make many forms without departing from the purpose of this application and the scope of protection of the claims, all of which are within the protection of this application.

Claims

1. A message forwarding method, applied to a sink node of a deterministic network, the method comprising: The sink node receives a message sent by an upper node, wherein the message carries an upstream transmission time slot identifier and an admission time slot offset; Determine a first queue number corresponding to the message based on an outgoing time slot number corresponding to the upstream sending time slot identifier and a queue number currently being sent; Adjusting the first queue number based on the admission time slot offset to obtain a second queue number; The message is cached in a sending queue corresponding to the second queue number and forwarded.

2. The method according to claim 1, wherein: Determining a first queue number corresponding to the message based on the outgoing time slot number and the currently sent queue number includes: The first queue number corresponding to the message is determined according to the kth queue group currently being sent and the size relationship between the outgoing time slot number and the currently sent queue number.

3. The method according to claim 2, wherein: n queue groups are set in the sink node, one queue group corresponds to one periodic time slot template, and one periodic time slot template includes N time slot numbers; Determining a first queue number corresponding to the message according to the kth queue group currently being sent and a magnitude relationship between the outgoing time slot number and the currently sent queue number, including: When the outgoing time slot number is greater than the currently transmitted queue number, the first queue number is: (k-1)*N+y; In the case where the outgoing time slot number is less than or equal to the currently transmitted queue number, if the k-th queue group is not the last queue group, the number of the first queue is: k*N+y; if the k-th queue group is the last queue group, the number of the first queue is: y; Wherein, y is the outgoing time slot number, k is an integer less than or equal to n, and n is an integer greater than or equal to 3.

4. The method according to claim 3, wherein: Adjusting the first queue number based on the admission time slot offset to obtain a second queue number includes: Determining an adjustment amount of the message at the sink node according to the admission time slot offset and a preset constant; According to the adjustment amount, the second queue number is determined as: (z+d)%(n*N), where z is the first queue number and d is the adjustment amount.

5. The method according to claim 4, wherein: Determining an adjustment amount of the message at the sink node according to the admission time slot offset and a preset constant includes: The adjustment amount is determined as: C-aso, where C is a preset constant, C is a natural number greater than or equal to N, and aso is the access time slot offset.

6. A message forwarding method, applied to a source node of a deterministic network, the method comprising: The source node receives a message and obtains an arrival time slot of the message, wherein the message includes an initial time slot identifier of the message; Determining an admission time slot for the message according to the initial time slot identifier; Determining an admission time slot offset of the message according to the arrival time slot and the admission time slot; The admission time slot offset is encapsulated into the message and forwarded to the next node.

7. The method according to claim 6, wherein: Determining an admission time slot offset of the message according to the arrival time slot and the admission time slot includes: The admission time slot offset of the message is determined according to the number of queues of the periodic time slot template and the size relationship between the arrival time slot and the admission time slot.

8. The method according to claim 7, wherein: Determining the admission time slot offset of the message according to the number of queues of the periodic time slot template and the size relationship between the arrival time slot and the admission time slot includes: In the case where the arrival time slot is smaller than the admission time slot, determining the admission time slot offset as: nm; In the case where the arrival time slot is greater than the admission time slot, determining the admission time slot offset as: N+nm; In a case where the arrival time slot is equal to the admission time slot, determining the admission time slot offset to be x*N; Among them, n is the admission time slot, m is the arrival time slot, N is the number of queues, x is an integer greater than or equal to 0, m is an integer greater than or equal to 0, and n is greater than or equal to N-1.

9. A message forwarding device, comprising: A receiving module, used to receive a message sent by an upper node, wherein the message carries an upstream sending time slot identifier and an admission time slot offset; A determination module, configured to determine a first queue number corresponding to the message based on an outgoing time slot number corresponding to the upstream sending time slot identifier and a queue number currently being sent; an adjustment module, configured to adjust the first queue number based on the admission time slot offset to obtain a second queue number; A forwarding module is used to cache the message to a sending queue corresponding to the second queue number for forwarding.

10. A message forwarding device, comprising: An acquisition module, used to receive a message and acquire an arrival time slot of the message, wherein the message includes an initial time slot identifier of the message; A first determining module, configured to determine an admission time slot of the message according to the initial time slot identifier; A second determining module, configured to determine an admission time slot offset of the message according to the arrival time slot and the admission time slot; The forwarding module is used to encapsulate the admission time slot offset into the message and forward it to the next node.

11. An electronic device, comprising a processor and a memory, wherein the memory stores a program or instruction that can be executed on the processor, and when the program or instruction is executed by the processor, it implements the message transmission method as described in any one of claims 1 to 5, or implements the message transmission method as described in any one of claims 6 to 8.

12. A storage medium storing a program or an instruction, wherein the program or the instruction, when executed by a processor, implements the message transmission method according to any one of claims 1 to 5, or implements the message transmission method according to any one of claims 6 to 8.

Citation Information

Patent Citations

  • Data forwarding method and device

    CN112242966A

  • Data forwarding method and device

    CN114401227A

  • Message processing method and device

    CN114726805A

  • Message forwarding method, electronic equipment and storage medium

    CN115037399A

  • Packet transmission method and device, network node, and storage medium

    WO2021180073A1