Delay compensation method and apparatus, and forwarding node
By receiving data messages in the latter compensation node and calculating compensation delay, the problem of the middle -end -to -end service jitter of the certain network is solved, and the service transmission of high certainty bearing bearer is realized.
Patent Information
- Application Number
- PCT/CN2023/108480
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-20
- Publication Date
- 2025-01-23
AI Technical Summary
In deterministic networks, end-to-end services cannot meet the requirements of high deterministic bearing due to the scheduling and traffic access control of network domain boundaries, as well as the different queuing and forwarding mechanisms in different network domains.
By receiving data messages in the latter compensation node, obtain the delay of the residence of each network domain, and adjust the delay delay of all network domains according to the data message of the target certain business flow. Calculate the compensation upper limit, and then determine the current compensation delay, and delay the delay of the scheduling data message.
Effectively eliminate the jitter, reduce the jitter from the end -to -end service, ensure the certainty of the end -to -end service, and meet the requirements of high definitance bearing.
Smart Images

Figure CN2023108480_23012025_PF_FP_ABST
Abstract
Description
Delay compensation method, device and forwarding node Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a delay compensation method, device and forwarding node. Background Art
[0002] In deterministic networks, end-to-end services may span multiple network domains, each employing different queuing mechanisms. Due to the varying scheduling and traffic admission control at network domain boundaries, as well as the varying queuing and forwarding mechanisms within deterministic network domains, the jitter of end-to-end services spanning multiple network domains cannot meet the requirements of highly deterministic bearer services.
[0003] Summary of the Invention
[0004] The purpose of the embodiments of the present application is to provide a delay compensation method, device, and forwarding node to reduce jitter in end-to-end services and ensure deterministic transmission of end-to-end services. The specific technical solution is as follows:
[0005] In a first aspect, an embodiment of the present application provides a delay compensation method, applied to a delay compensation node, the method comprising:
[0006] receiving, through a first path in the target path group, a first data packet, where the first data packet carries a first residence delay of each network domain traversed by the first data packet on the first path, and the first data packet belongs to a target deterministic service flow;
[0007] Forwarding the first data message to obtain a second data message;
[0008] Obtaining a first compensation upper limit value for the target deterministic service flow on the first path, where the first compensation upper limit value is determined based on a sum of second resident delays of all network domains traversed by third data packets of the target deterministic service flow on the first path and an adjusted delay corresponding to the first path;
[0009] taking the difference between the first compensation upper limit and the sum of all the first dwell delays as the current compensation delay;
[0010] After delaying the current compensation delay, the second data message is scheduled.
[0011] In a second aspect, an embodiment of the present application provides a delay compensation device, which is applied to a delay compensation node. The device includes: a parsing module, a forwarding module, a compensation module, and a scheduling module;
[0012] The parsing module is configured to receive a first data packet through a first path in the target path group, the first data packet carrying a first residence delay of each network domain passed by the first data packet on the first path, and the first data packet belonging to a target deterministic service flow; and send the first data packet to the forwarding module;
[0013] The forwarding module is configured to forward the first data message to obtain a second data message; and send the second data message to the compensation module;
[0014] The compensation module is configured to obtain a first compensation upper limit value for the target deterministic service flow on the first path, where the first compensation upper limit value is determined based on the sum of the second residence delays of all network domains traversed by a third data packet of the target deterministic service flow on the first path and the adjustment delay corresponding to the first path; use the difference between the first compensation upper limit value and the sum of all the first residence delays as a current compensation delay; and send the second data packet to the scheduling module after delaying the current compensation delay.
[0015] The scheduling module is used to schedule the second data message.
[0016] In a third aspect, an embodiment of the present application provides a forwarding node that executes any of the delay compensation methods described above.
[0017] In the technical solution provided by the embodiment of the present application, the delay compensation node determines the first compensation upper limit value of the target deterministic business flow on the first path based on the residence delay of all network domains that the third data packet of the target deterministic business flow passes through on the first path, and the sum of the adjustment delays corresponding to the first path. The head node and the tail node of the section of the first path within a network domain can quickly and easily achieve time synchronization, and then accurately obtain the residence delay of the third data packet / first data packet in the network domain. Based on the accurately obtained second residence delay, the delay compensation node can accurately determine the first compensation upper limit value, and then accurately determine the current compensation delay. The delay compensation node performs delay compensation on the data packet based on the accurate current compensation delay, which can effectively eliminate jitter and reduce jitter in end-to-end services, such as reducing the jitter between the head node and the tail node of the target path group, thereby ensuring deterministic transmission of end-to-end services. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] The drawings described herein are used to provide further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute improper limitations on the present application.
[0019] FIG1 is a schematic diagram of a network for end-to-end services provided in an embodiment of the present application;
[0020] FIG2 is a schematic diagram of a flow chart of a delay compensation method provided in an embodiment of the present application;
[0021] FIG3 is a flow chart of a method for obtaining a compensation upper limit value according to an embodiment of the present application;
[0022] FIG4 is a schematic diagram of a time point for receiving a data message according to an embodiment of the present application;
[0023] FIG5 is a schematic structural diagram of a delay compensation device provided in an embodiment of the present application;
[0024] FIG6 is another schematic diagram of the structure of a delay compensation device provided in an embodiment of the present application;
[0025] FIG7 is another schematic diagram of a network for end-to-end services provided in an embodiment of the present application;
[0026] FIG8a is a schematic structural diagram of a self-learning module provided in an embodiment of the present application;
[0027] FIG8b is a schematic diagram of a structure of a data cache table provided in an embodiment of the present application;
[0028] 9a-9d are schematic diagrams of a flow chart of learning the compensation upper limit value provided in an embodiment of the present application. DETAILED DESCRIPTION
[0029] To make the objectives, technical solutions, and advantages of this application more clearly understood, the present application is further described below with reference to the accompanying drawings and examples. It is apparent that the described examples are only a portion of the embodiments of this application, and not all of them. All other embodiments derived by persons of ordinary skill in the art based on the examples in this application are intended to fall within the scope of protection of this application.
[0030] Currently, the number of global machine communication connections is rapidly increasing annually, approaching 30 billion and projected to reach 1 trillion connections by 2035. The full industrial internet, centered around connecting intelligent machines, will become a key development direction for future networks. The communication and traffic patterns of intelligent machines will undergo fundamental changes. Data communication scenarios such as remote control, intelligent manufacturing, and integrated land, sea, and air transport require highly deterministic network transport with ultra-low latency and jitter.
[0031] In a deterministic network, end-to-end services may span multiple network domains. For example, the network shown in Figure 1 includes three network domains: Deterministic Network 1 through Deterministic Network 3. Deterministic Network 1 includes three forwarding nodes: A1, B1, and C1; Deterministic Network 2 includes four forwarding nodes: A2, B2, C2, and D2; and Deterministic Network 3 includes three forwarding nodes: A3, B3, and C3. Communication between a message sender (Talker) and a message receiver (Listener) spans three network domains: Deterministic Network 1 through Deterministic Network 3. Forwarding nodes can be routers or switches. Deterministic Networks 1 through 3 employ different queuing mechanisms. Due to scheduling and traffic admission control at network domain boundaries, as well as differing queuing and forwarding mechanisms within deterministic network domains, the jitter of end-to-end services spanning multiple network domains cannot meet the requirements of highly deterministic bearer traffic.
[0032] To reduce jitter in end-to-end services and ensure deterministic transmission of end-to-end services, an embodiment of the present application provides a delay compensation method based on multipath planning, as shown in Figure 2. This delay compensation method is applied to the forwarding node that performs delay compensation, referred to as the delay compensation node (COMPENSATION NODE). The delay compensation node can be the tail node of the path, such as forwarding node B3 in Figure 1, or an intermediate node, such as forwarding nodes A3 and C3 in Figure 1. The delay compensation method includes the following steps.
[0033] Step S21: receiving a first data packet through a first path in a target path group, where the first data packet carries a first residence delay of each network domain passed by the first data packet on the first path, and the first data packet belongs to a target deterministic service flow.
[0034] Step S22: forwarding the first data message to obtain a second data message;
[0035] Step S23, obtain the first compensation upper limit value of the target deterministic business flow on the first path, the first compensation upper limit value is determined according to the sum of the second residence delay of all network domains passed by the third data packet of the target deterministic business flow on the first path, and the adjustment delay corresponding to the first path.
[0036] Step S24: The difference between the first compensation upper limit value and the sum of all first resident delays is used as the current compensation delay.
[0037] Step S25: After delaying the current compensation delay, schedule the second data message.
[0038] In the technical solution provided by the embodiment of the present application, the delay compensation node determines the first compensation upper limit value of the target deterministic business flow on the first path based on the residence delay of all network domains that the third data packet of the target deterministic business flow passes through on the first path, and the sum of the adjustment delays corresponding to the first path. The head node and the tail node of the section of the first path within a network domain can quickly and easily achieve time synchronization, and then accurately obtain the residence delay of the third data packet / first data packet in the network domain. Based on the accurately obtained second residence delay, the delay compensation node can accurately determine the first compensation upper limit value, and then accurately determine the current compensation delay. The delay compensation node performs delay compensation on the data packet based on the accurate current compensation delay, which can effectively eliminate jitter and reduce jitter in end-to-end services, such as reducing the jitter between the head node and the tail node of the target path group, thereby ensuring deterministic transmission of end-to-end services.
[0039] In addition, in the technical solution provided in the embodiment of the present application, accurate delay compensation can be achieved only by performing time synchronization within the network domain, without the need for cross-domain time synchronization, which reduces the difficulty of implementing the solution, facilitates wide application, and improves the accuracy of delay compensation.
[0040] In the above step S21, the target deterministic business flow is any deterministic business flow, and the deterministic business flow is a business flow that requires deterministic transmission, such as the deterministic business flow to which the data message sent from the message sender to the message receiver in Figure 1 belongs, and the first data message can be any data message of the target deterministic business flow. The target path group is a path group that protects the target deterministic business flow service, and the target path group includes multiple paths, such as the path group composed of path 1 and path 2 in Figure 1. The first path is any path in the target path group. When transmitting the first data message through the target path group, the head node copies a first data message on each path included in the target path group, and transmits a first data message through each path respectively.
[0041] For end-to-end services spanning multiple network domains, each path spans multiple network domains. When a data packet is transmitted along a path, it passes through each network domain that the path crosses. The data packet's residence delay in each network domain is the data packet's transmission delay in each network domain. Different data packets passing through the same network domain on the same path may have the same or different residence delays in that network domain. Forwarding nodes can calculate the residence delay of each network domain that a data packet passes through along the path and add the calculated residence delay to the data packet.
[0042] Taking the network shown in Figure 1 as an example, the message sender and message receiver span three network domains. The message sender sends data packet 1 (such as the first data packet described above) to the message receiver via path 1 and path 2 (such as the first path described above). Node B3 is a delay compensation node.
[0043] Node B3 receives data packet 1 through path 1. Data packet 1 carries residence delay 11, residence delay 12, and residence delay 13. Residence delay 11 is the residence delay of data packet 1 in deterministic network 1 along path 1. Residence delay 12 is the residence delay of data packet 1 in deterministic network 2 along path 1. Residence delay 13 is the residence delay of data packet 1 in deterministic network 3 along path 1.
[0044] Node B3 receives data packet 1 through path 2. Data packet 1 carries residence delay 21, residence delay 22, and residence delay 23. Residence delay 21 is the residence delay of data packet 1 in deterministic network 1 along path 2. Residence delay 22 is the residence delay of data packet 1 in deterministic network 2 along path 2. Residence delay 23 is the residence delay of data packet 1 in deterministic network 3 along path 2.
[0045] In the above step S22, the forwarding process includes but is not limited to querying the outbound interface, message repackaging, etc. The delay compensation node forwards the first data message to obtain a second data message.
[0046] In step S23 above, the third data packet can be any data packet of the target deterministic service flow, and the third data packet can be the same as or different from the first data packet. The delay compensation node can calculate the sum of the second resident delay of all network domains traversed by the third data packet of the target deterministic service flow on the first path, and the adjusted delay corresponding to the first path, and determine this sum as the first compensation upper limit. The first compensation upper limit can be understood as the maximum compensation delay used when delay compensating data packets of the target deterministic service flow transmitted via the first path.
[0047] After receiving the first data packet, the delay compensation node obtains the compensation upper limit value of the target deterministic service flow on the first path, that is, the first compensation upper limit value.
[0048] In the embodiment of the present application, the delay compensation node may obtain the first compensation upper limit value by using any of the following methods.
[0049] In a first manner, the first data message carries a first compensation upper limit value, and the delay compensation node obtains the first compensation upper limit value from the first data message.
[0050] In this way, the head node of the target path group can encapsulate the first compensation upper limit value in the first data message. After receiving the first data message, the delay compensation node can directly extract the first compensation upper limit value from the first data message without looking up a table, thereby improving message processing efficiency.
[0051] In the second approach, the delay compensation node stores the upper compensation limit for the target deterministic service flow on each path in the target path group. Specifically, the delay compensation node stores a correspondence between deterministic service flows, paths, and upper compensation limits. The delay compensation node searches for the first upper compensation limit from the stored upper compensation limits for the target deterministic service flow on each path in the target path group.
[0052] In this way, after receiving the first data packet, the delay compensation node can find the first compensation upper limit value from the locally stored correspondence based on the identifier of the first path for transmitting the first data packet and the identifier of the target deterministic business flow. The first data packet does not need to carry the first compensation upper limit value, which reduces the packet load and saves network bandwidth.
[0053] In the embodiment of the present application, the delay compensation node may also obtain the first compensation upper limit value by other means, which is not limited. The execution order of the above steps S22 and S23 is not limited.
[0054] In the above step S24, the delay compensation node counts the sum of all first residence delays, and calculates the difference between the first compensation upper limit and the counted sum, and the difference is the current compensation delay.
[0055] Taking step S21 above as an example, node B3 receives data packet 1 via path 1. Data packet 1 carries resident delay 11, resident delay 12, and resident delay 13. Node B3 obtains a first compensation upper limit, Cap1. Node B3 calculates the sum ActD1 of resident delay 11, resident delay 12, and resident delay 13, and determines the current compensation delay CompD1 as: Cap1 - ActD1.
[0056] In the above step S25, after obtaining the current compensation delay, the delay compensation node delays the second data message, that is, after delaying the current compensation delay, it schedules the second data message. As shown in Figure 1, after receiving data message 1, node B3 delays CompD1 and then schedules data message 2 obtained by forwarding data message 1, and sends data message 2 to the message recipient.
[0057] In some embodiments, before receiving a first data packet via a first path in a target path group, the delay compensation node may learn and determine a compensation upper limit for a target deterministic service flow on each path included in the target path group. As shown in Figure 3, Figure 3 is a flow chart of a method for obtaining a compensation upper limit provided in an embodiment of the present application. This method may include the following steps.
[0058] Step S31: receiving a third data packet of a target deterministic service flow through each path in the target path group, respectively. The third data packet carries a second residence delay of each network domain that the third data packet passes through on each path.
[0059] Step S32: parse the third data packet to obtain metadata of the third data packet, where the metadata includes the second residence delay of each network domain that the third data packet passes through on each path and the time point when the third data packet is received through each path.
[0060] Step S33 : calculating the difference between the preset reference time point and the time point at which the third data message is received through each path, and obtaining the adjusted delay corresponding to each path.
[0061] Step S34: For each path, the sum of the second resident delay corresponding to the path and the adjustment delay corresponding to the path is calculated as the compensation upper limit of the target deterministic service flow on the path.
[0062] In the technical solution provided in the embodiment of the present application, the preset reference time point and the time point when the third data message is received are both time points on the delay compensation node. Without the need for time synchronization between network domains, the adjusted delay corresponding to each path and the corresponding compensation upper limit value can be accurately obtained, thereby reducing the complexity of the solution implementation.
[0063] In step S31, when transmitting the third data packet via the target path group, the head node copies one third data packet onto each path included in the target path group and transmits one third data packet via each path. The delay compensation node receives one third data packet via each path in the target path group. The third data packet carries the second resident delay of each network domain traversed by the third data packet on each path. For details, refer to the description of the first data packet.
[0064] In the above step S32, the delay compensation node parses the third data packet to obtain metadata of the third data packet, that is, the second residence delay corresponding to each path and the time point when the third data packet is received through each path.
[0065] In step S33, the delay compensation node may determine a reference delay corresponding to the target path group. The reference delay is the duration between the time the head node sends the data packet and the time the delay compensation node receives the data packet. The preset reference time is the time when the delay compensation node receives the data packet corresponding to the reference delay.
[0066] The preset reference time point may be a pre-set time point. To achieve flexible determination of the compensation upper limit value, the preset reference time point may be determined according to the time point of the actual received data message.
[0067] For example, the delay compensation node may delay the time point at which the third data packet is received through the designated path in the target path group by a preset adjustment delay to obtain a preset reference time point. In an embodiment of the present application, the delay compensation node determines the designated path in the target path group, obtains the time point at which the third data packet is received through the designated path, takes it as the target time point, delays the target time point by the preset adjustment delay, and obtains the preset reference time point. The designated path may be any path in the target path group, for example, the designated path is the path in the target path group that receives the third data packet the latest. The preset adjustment delay is the delay that needs to be adjusted selected in combination with engineering requirements.
[0068] Based on the preset reference time point, for each path, the delay compensation node can calculate the difference between the preset reference time point and the time point when the third data packet is received through the path to obtain the adjusted delay corresponding to the path.
[0069] The determination of the adjustment delay is explained in conjunction with the schematic diagram of the time point of receiving the data message shown in Figure 4. In Figure 4, path 1 and path 2 constitute a path group, t0 is the time point when the head node sends a data message 0 (such as the third data message mentioned above) on path 1 and path 2, t1 is the time point when the delay compensation node receives data message 0 through path 1, and t2 is the time point when the delay compensation node receives data message 0 through path 2. T2r is the preset adjustment delay. Taking the designated path as the path that receives the third data message last in the target path group as an example, t2 is later than t1, so path 2 is the designated path, t2 is delayed by T2r, and the preset reference time point tr is obtained. Correspondingly, the adjustment delay T1r corresponding to path 1 is: tr-t1, and the adjustment delay T2r corresponding to path 2 is, that is, tr-t2.
[0070] In the above step S34, for each path, the delay compensation node counts the sum of the second residence delay corresponding to the path, calculates the sum and the sum of the adjustment delay corresponding to the path, and the final sum is the compensation upper limit value of the target deterministic service flow on the path.
[0071] Using Figure 4 as an example, data packet 0 belongs to deterministic service flow 0. Data packet 0 is received via path 1, and the sum of the dwell delays carried by data packet 0 is ActD01. Data packet 0 is received via path 2, and the sum of the dwell delays carried by data packet 0 is ActD02. The delay compensation node calculates that the compensation upper limit for deterministic service flow 0 on path 1 is ActD01 + T1r, and the compensation upper limit for deterministic service flow 0 on path 2 is ActD02 + T2r.
[0072] In the embodiment of the present application, the compensation delay can be expressed as the following formula (1): CompD_i = Cap_i - ActD_i' (1)
[0073] Where CompD_i represents the compensation delay of the deterministic service flow on path i, Cap_i represents the compensation upper limit of the deterministic service flow on path i, and ActD_i' represents the sum of the residence delays of all network domains that a data packet of the deterministic service flow passes through on path i. Cap_i = ActD_i + Tir (2)
[0074] Among them, ActD_i represents the sum of the residence delays of a data packet of a deterministic service flow in all network domains passed by path i, and Tir represents the adjusted delay corresponding to path i.
[0075] Combined with Figure 4, the following formula (3) can be obtained: PthRefD_1 = tr-t0 = (t1-t0) + T1r = (FixD_1 + ActD_1) + T1r = FixD_1 + ActD_1 + T1r (3)
[0076] Where PthRefD_1 represents the reference delay corresponding to path 1, (t1-t0) is the delay between the head node and the delay compensation node, and the delay includes the fixed transmission delay FixD_1 of the data packet on path 1 and the residence delay ActD_1 within the network domain that the data packet passes through on path 1.
[0077] By converting the above formula (3), we can obtain the following formula (4): PthRefD_1-FixD_1=ActD_1+T1r (4)
[0078] Combining formula (4), formula (1), and formula (2), we can determine Cap_i = PthRefD_i - FixD_i, CompD_i = PthRefD_i - FixD_i - ActD_i', where PthRefD_i represents the reference delay corresponding to path i, and FixD_i represents the fixed transmission delay of the data packet on path i. This is exactly how the compensation delay is calculated in the relevant technology. Based on this, it can be seen that the compensation upper limit value provided by the embodiment of the present application can accurately obtain the compensation upper limit value corresponding to each path without performing time synchronization between network domains, reducing the complexity of the solution implementation.
[0079] In some embodiments, after obtaining the compensation upper limit for the target deterministic service flow on the path, the delay compensation node can send the compensation upper limit for each path of the target deterministic service flow to the head node of the target path group. In this way, the head node can encapsulate the first compensation upper limit in a first data packet. That is, the first data packet sent by the head node carries the first compensation upper limit. Furthermore, the delay compensation node can obtain the first compensation upper limit from the first data packet.
[0080] In other embodiments, after obtaining the upper limit of compensation for the target deterministic service flow on the path, the delay compensation node may store the upper limit of compensation for the target deterministic service flow on each path. Subsequently, the delay compensation node may search for the first upper limit of compensation from the stored upper limit of compensation for the target deterministic service flow on each path in the target path group.
[0081] In the embodiment of the present application, the delay compensation node can store the compensation upper limit value according to actual needs, and there is no limitation on this.
[0082] In an embodiment of the present application, in order to more accurately learn the compensation upper limit, the delay compensation node may be configured with a learning information table, a flow information table, and a data cache table. The delay compensation node learns the compensation upper limit based on the configured learning information table, flow information table, and data cache table.
[0083] In some embodiments, the learning information table includes a flow identifier of a deterministic service flow for which a compensation upper limit value is being learned;
[0084] Each entry in the flow information table includes flow information and a learning indicator bit of a deterministic service flow configured by the control plane, wherein the learning indicator bit is a first preset value, indicating that learning of the compensation upper limit value of the deterministic service flow is completed, and the learning indicator bit is a second preset value, indicating that learning of the compensation upper limit value of the deterministic service flow is not completed. The flow information includes a flow identifier;
[0085] Each entry in the data cache table includes the flow information of the deterministic service flow for which the compensation upper limit is being learned, the sequence number of the data packet of the deterministic service flow, and the path information corresponding to the sequence number. The path information includes the sum of the residence delays of all network domains traversed by the data packet on each path and the time point when the data packet arrives at the delay compensation node along each path.
[0086] The metadata also includes a target flow identifier of the target deterministic service flow;
[0087] In this case, the delay compensation method may further include:
[0088] If the learning information table and the flow information table meet the preset learning conditions, the target path information corresponding to the serial number of the third data packet is added to the data cache table, where the target path information includes the sum of the residence delays of all network domains passed by the third data packet on the current path and the time point when the third data packet arrives at the delay compensation node along the current path;
[0089] When the number of target path information in the data cache table reaches the number of paths in the target path group, performing the steps of calculating, based on the target path information in the data cache table, a difference between a preset reference time point and a time point at which the third data packet is received through each path to obtain an adjusted delay corresponding to each path; and updating a learning indicator bit corresponding to the target flow identifier in the flow information table to a first preset value;
[0090] The default learning conditions are:
[0091] The learning information table does not include the target flow identifier, the number of flow identifiers included in the learning information table is less than the preset number, and the learning indicator bit corresponding to the target flow identifier in the flow information table is a second preset value; or,
[0092] The learning information table includes a target flow identifier, and a learning indicator corresponding to the target flow identifier in the flow information table is a second preset value.
[0093] In some embodiments, the data cache table includes a stream header table, a sequence node table, and a path information table;
[0094] The flow header table includes flow information of the deterministic service flow and a first pointer, where the first pointer points to the first sequence node table;
[0095] The sequence node table includes a sequence number of a data message, a time point of a latest received data message, the number of received data messages, a second pointer and a third pointer, the second pointer points to a path information table, and the third pointer points to the next sequence node table;
[0096] Each entry in the path information table includes a path identifier, the sum of the residence delays of all network domains that the data packet passes through on the path, and the time point when the data packet arrives at the delay compensation node along the path.
[0097] In some embodiments, after determining the compensation upper limit of the target deterministic service flow on each path, the delay compensation method may further include:
[0098] Set the target flow identifier in the learning information table to an invalid identifier;
[0099] Reclaim the entry associated with the target flow identifier in the data cache table.
[0100] In some embodiments, the flow information also includes the time window length of the deterministic business flow, the number of paths included in the path group transmitting the deterministic business flow, and the preset adjustment delay corresponding to the deterministic business flow.
[0101] In some embodiments, the delay compensation method may further include:
[0102] Determine a target sequence node table whose duration from a first time point to a second time point is greater than a time window length, where the first time point is a time point of a currently received data packet, the second time point is a time point of a most recently received data packet included in the target sequence node table, and the target sequence node table is any sequence node table associated with a deterministic service flow to which the currently received data packet belongs;
[0103] Recycle all sequence node tables after the target sequence node table, and clear the target path information table pointed to by the target sequence node table.
[0104] In some embodiments, when the sequence number included in the target sequence node table is the sequence number of the currently received data packet, the delay compensation method may further include:
[0105] Update the target sequence node table and target path information table according to the currently received data message;
[0106] In the target path information table, determine a target entry where the duration from the first time point to the third time point is greater than the time window length, and the third time point is the time point recorded in the target entry;
[0107] Delete the target entry.
[0108] The method of learning the compensation upper limit value based on the learning information table, flow information table, and data cache table will be described in detail later and will not be introduced in detail this time.
[0109] Corresponding to the above-mentioned delay compensation method, an embodiment of the present application further provides a delay compensation device, as shown in Figure 5. The device is applied to a delay compensation node and includes: a parsing module 51, a forwarding module 52, a compensation module 53 and a scheduling module 54, wherein the parsing module 51 is connected to the forwarding module 52, the forwarding module 52 is connected to the compensation module 53, and the compensation module 53 is connected to the scheduling module 54.
[0110] The parsing module 51 is configured to receive a first data packet through a first path in the target path group, the first data packet carrying a first residence delay of each network domain traversed by the first data packet on the first path, and the first data packet belonging to a target deterministic service flow; and send the first data packet to the forwarding module 52;
[0111] The forwarding module 52 is configured to forward the first data message to obtain a second data message and send the second data message to the compensation module 53;
[0112] The compensation module 53 is configured to obtain a first compensation upper limit value for the target deterministic service flow on the first path, where the first compensation upper limit value is determined based on the sum of the second residence delays of all network domains traversed by the third data packet of the target deterministic service flow on the first path and the adjustment delay corresponding to the first path; use the difference between the first compensation upper limit value and the sum of all first residence delays as the current compensation delay; and send the second data packet to the scheduling module 54 after delaying the current compensation delay.
[0113] The scheduling module 54 is configured to schedule the second data message.
[0114] In the technical solution provided by the embodiment of the present application, the delay compensation node determines the first compensation upper limit value of the target deterministic business flow on the first path based on the residence delay of all network domains that the third data packet of the target deterministic business flow passes through on the first path, and the sum of the adjustment delays corresponding to the first path. The head node and the tail node of the section of the first path within a network domain can quickly and easily achieve time synchronization, and then accurately obtain the residence delay of the third data packet / first data packet in the network domain. Based on the accurately obtained second residence delay, the delay compensation node can accurately determine the first compensation upper limit value, and then accurately determine the current compensation delay. The delay compensation node performs delay compensation on the data packet based on the accurate current compensation delay, which can effectively eliminate jitter and reduce jitter in end-to-end services, such as reducing the jitter between the head node and the tail node of the target path group, thereby ensuring deterministic transmission of end-to-end services.
[0115] In the embodiment of the present application, the parsing module 51, forwarding module 52, and compensation module 53 can correspond to one or more inbound interfaces and one or more outbound interfaces. That is, the parsing module 51, forwarding module 52, and compensation module 53 can process data packets from one or more inbound interfaces and send data packets to one or more outbound interfaces. To improve the accuracy of delay compensation and ensure deterministic transmission, the compensation module 53 can be configured in the outbound interface, that is, the compensation module 53 corresponds to one outbound interface.
[0116] In some embodiments, the delay compensation device further includes a self-learning module 55, as shown in Figure 6. The self-learning module 55 is connected to the analyzing module 51 and the compensation module 53 respectively.
[0117] The parsing module 51 is further configured to receive, through each path of the target path group, a third data packet of the target deterministic service flow, the third data packet carrying the second residence delay of each network domain traversed by the third data packet on each path; parse the third data packet to obtain metadata of the third data packet, the metadata including the second residence delay of each network domain traversed by the third data packet on each path and the time point at which the third data packet was received through each path; and report the metadata to the self-learning module 55.
[0118] The self-learning module 55 is configured to calculate the difference between a preset reference time point and the time point at which the third data packet is received through each path to obtain an adjusted delay corresponding to each path. For each path, the self-learning module 55 is configured to calculate the sum of the second residence delay corresponding to the path and the adjusted delay corresponding to the path as the compensation upper limit for the target deterministic service flow on the path.
[0119] In an embodiment of the present application, the networking of an end-to-end service is shown in FIG7 , in which multiple paths are established between a head node (HEAD NODE) and a delay compensation node (e.g., a tail node), such as paths 1 to 3 in FIG7 , forming a path group for the protection service. The head node replicates each data packet of a deterministic service flow into multiple copies and sends one copy to each path constituting the protection service. The delay compensation node automatically learns a compensation upper limit from the multiple copies received. This compensation upper limit is used to calculate the required compensation delay after receiving data packets of the deterministic service flow, such as the current compensation delay described above.
[0120] In an embodiment of the present application, an access control list (ACL) can be configured in the parsing module 51, and the ACL can include flow information configured by the control plane and preset annotations. The control plane can be implemented by the SDN controller in Figure 7, or by other devices, and there is no limitation on this. The flow information can include the flow identifier of the deterministic business flow, the five-tuple information, the time window length of the deterministic business flow, the number of paths included in the path group for transmitting the deterministic business flow, the preset adjustment delay corresponding to the deterministic business flow, etc. The preset annotation can be a first preset annotation or a second preset annotation. The first preset annotation indicates that the compensation upper limit value has not been learned, and the second preset annotation indicates that the compensation upper limit value has been learned.
[0121] After receiving a data packet from a deterministic service flow (such as the third data packet described above), parsing module 51 can search the ACL to obtain the target ACL to determine whether the target deterministic service flow requires learning the compensation upper limit. Parsing module 51 parses the third data packet to obtain metadata, which is data information describing the received data. The metadata may include: the second residence delay of each network domain traversed by the third data packet on each path, the time point (received time or arrival time) when the third data packet is received via each path, the receiving interface (incoming interface), and the flow identifier (FlowID).
[0122] For the target ACL that matches the third data packet, if the target ACL includes the first preset annotation, it indicates that the target deterministic service flow needs to learn the compensation upper limit value. The parsing module 51 can send the metadata obtained by parsing the third data packet to the self-learning module 55. After learning the compensation upper limit value of the target deterministic service flow on each path, the self-learning module 55 can update the preset annotation in the target ACL, that is, update the first preset annotation to the second preset annotation, so as to avoid the self-learning module 55 repeatedly learning the compensation upper limit value of the target deterministic service flow, which would cause waste of resources.
[0123] In this embodiment of the present application, the parsing module 51 searches for the ACL and, in addition to sending the metadata of the third data packet to the self-learning module 55, can also send the third data packet to the forwarding module 52. The forwarding module 52, the compensation module 53, and the scheduling module 54 then perform delay compensation on the third data packet. Here, when the compensation module 53 cannot obtain the corresponding compensation upper limit, delay compensation may not be performed on the data packet. The scheduling module 54 performs synthetic scheduling on various deterministic service flows. For deterministic service flows with high precision requirements, the scheduling module 54 can schedule the deterministic service flow with the highest priority after the delay compensation.
[0124] In some embodiments, the self-learning module 55 can also be used to send the compensation upper limit value of the target deterministic business flow on each path to the compensation module; the compensation module 53 can also be used to store the compensation upper limit value of the target deterministic business flow on each path; and search for the first compensation upper limit value from the stored compensation upper limit values of the target deterministic business flow on each path in the target path group.
[0125] In other embodiments, the self-learning module 55 can also be used to send the compensation upper limit value of the target deterministic business flow on each path to the head node of the target path group; the first data packet sent by the head node carries the first compensation upper limit value; the compensation module 53 can specifically be used to obtain the first compensation upper limit value from the first data packet.
[0126] In some embodiments, the self-learning module 55 may also be configured to delay the time at which the third data packet is received via a designated path in the target path group by a preset adjustment delay to obtain a preset reference time point. The designated path may be the path in the target path group that receives the third data packet the latest, or may be another path, without limitation.
[0127] After learning the upper limit of compensation for the target deterministic service flow on each path, the self-learning module 55 can send the upper limit of compensation for the target deterministic service flow on each path to the compensation module 53, thereby locally storing the upper limit of compensation. After learning the upper limit of compensation for the target deterministic service flow on each path, the self-learning module 55 can also send the upper limit of compensation for the target deterministic service flow on each path to the head node of the target path group, so that the head node can encapsulate the upper limit of compensation in the data message.
[0128] The self-learning module 55 can issue the compensation upper limit value according to actual needs, thereby improving the flexibility of network configuration and meeting various network needs.
[0129] In order to facilitate the self-learning module 55 to learn the compensation upper limit value, the delay compensation node can be configured with a learning information table, a flow information table, and a data cache table.
[0130] The learning information table includes a flow identifier of a deterministic service flow for which a compensation upper limit value is being learned;
[0131] Each entry in the flow information table includes flow information and a learning indicator bit of a deterministic service flow configured by the control plane, wherein the learning indicator bit is a first preset value, indicating that learning of the compensation upper limit value of the deterministic service flow is completed, and the learning indicator bit is a second preset value, indicating that learning of the compensation upper limit value of the deterministic service flow is not completed. The flow information includes a flow identifier;
[0132] Each entry in the data cache table includes the flow information of the deterministic business flow that is learning the compensation upper limit value, the serial number of the data packet of the deterministic business flow, and the path information corresponding to the serial number. The path information includes the sum of the residence delay corresponding to each path and the time point when the data packet arrives at the delay compensation node along each path.
[0133] To facilitate more refined management of the data cache table, the data cache table may include a stream header table, a sequence node table, and a path information table; wherein:
[0134] The flow header table includes flow information of the deterministic service flow and a first pointer, where the first pointer points to the first sequence node table;
[0135] The sequence node table includes a sequence number of a data message, a time point of a latest received data message, the number of received data messages, a second pointer and a third pointer, the second pointer points to a path information table, and the third pointer points to the next sequence node table;
[0136] Each entry in the path information table includes a path identifier, the sum of the residence delays of all network domains that the data packet passes through on the path, and the time point when the data packet arrives at the delay compensation node along the path.
[0137] The sequence node table and path information table can be pre-allocated resources from the learning module 55. In this way, when information needs to be written to the sequence node table and path information table, the information can be written directly to the allocated sequence node table and path information table, thereby improving the learning efficiency of the compensation upper limit value.
[0138] The sequence node table and path information table can also be resources allocated by the self-learning module 55 after receiving the data message. In this way, when information needs to be written to the sequence node table and path information table, resources are allocated to establish the sequence node table and path information table, which can effectively save the table entry resources of the self-learning module 55.
[0139] The following describes the learning information table, flow information table, and data cache table in detail, in conjunction with the self-learning module 55 shown in Figure 8a and the data cache table shown in Figure 8b. In Figures 8a and 8b, the self-learning module 55 includes a control submodule 84, a learning information table (InFlightInfo) 81, a flow information table (FlowInfoTable) 82, and a data cache table (ScratchInfo) 83. The data cache table 83 is divided into a flow header table 831, a sequence node table 832, and a path information table 833.
[0140] The learning information table 81 records the FlowID of the deterministic business flow currently being learned. In order to improve learning efficiency, the compensation upper limit values of multiple deterministic business flows can be learned in parallel, but in specific scenarios, such as configuration recovery, there are too many deterministic business flows that need to be learned, and the number of business flows learned in parallel needs to be limited. However, learning the compensation upper limit value is not completed instantaneously. In the embodiment of the present application, the FlowID currently being learned is recorded through the learning information table 81. As shown in Figure 8a, the four FlowIDs FlowID1 to FlowID4 are recorded in the learning information table 81. According to the arrangement order of the FlowID in the learning information table 81, each FlowID corresponds to an index (Index), such as the numbers 0 to 3 above the learning information table 81 in Figure 8a.
[0141] Each row in flow information table 82 is an entry, including flow information and a learning indicator (Ready) for a deterministic service flow configured by the control plane. Figure 8a uses the example of flow information including FlowID, time window length (WindLength), number of paths (PathCnt), and preset adjustment delay (Adjustment), which is not intended to be limiting.
[0142] Among them, FlowID can uniquely identify a deterministic flow;
[0143] The time window length is the learning time window;
[0144] The number of paths corresponds to the number of paths that implement protection services for deterministic business flows;
[0145] The preset adjustment delay corresponds to the compensation delay that needs to be adjusted for deterministic business flows and is selected based on project needs.
[0146] In an embodiment of the present application, the preset adjustment delay can be set to 200 microseconds (μs), indicating that a delay of 200 μs based on the arrival time point of the specified path is used as the calculation basis for the compensation upper limit value, which is equivalent to T2r in Figure 4; in Figure 8a, if the value of the preset adjustment delay column is set to 1, it means that the preset adjustment delay is configured, that is, 200 μs; if the value of the preset adjustment delay column is set to 0, it means that the preset adjustment delay is not configured, and the preset adjustment delay is 0 μs.
[0147] The learning indicator bit indicates whether learning of the compensation upper limit value has been completed. In Figure 8a, the first preset value is 1 and the second preset value is 0. A learning indicator bit of 0 indicates that learning is not complete; a learning indicator bit of 1 indicates that learning is complete. When the control plane initializes flow information table 82, the learning indicator bit is set to 0.
[0148] Each row in data cache table 83 represents an entry. Data cache table 83 is used to cache data information during the learning process. In the embodiment shown in Figures 8a and 8b, four deterministic service flows are cached simultaneously. Data cache table 83 includes a flow header table (FlowHead) 831, a sequence node table (SeqNode) 832, and a path information table (PathInfo) 833.
[0149] The flow header table 831 is a vector of four entries, Head1 to Head4 as shown in Figure 8b, which describe some common flow information of the currently learned deterministic service flow. In the order of entries, each entry corresponds to an index (Index), such as the numbers 0 to 3 on the left side of the flow header table 831 in Figure 8b. The same index in the flow header table 831 and the learning information table 81 corresponds to the same deterministic service flow. Each entry in the flow header table 831 includes:
[0150] Validity: Indicates the validity of this entry. 1 indicates valid. This field is used because the vector space is reused. When 0, it indicates that the vector is invalid and can be occupied by new learning data. The validity field can be omitted in the stream header table 831. When the validity field is omitted, the delay compensation node can recycle the entry by setting the entry in the stream header table 831 to a preset value (e.g., 0). The recycled entry can be occupied by new learning data.
[0151] FlowID: Flow ID, 32 bits, uniquely identifies a deterministic service flow; the FlowID can be omitted in the flow header table 831. When the FlowID is omitted, the FlowID included in each entry can be obtained by learning the information table 81.
[0152] Time window length: The time window length of the deterministic service flow, in nanoseconds (ns), is derived from the time window length of flow information table 82. The time window length can have the following functions:
[0153] 1) Aging node data: Different copies of different data packets of the same deterministic business flow travel through different paths and arrive at very different times. It is possible that multiple data packets are received on one path, but other copies of these data packets have not arrived. Therefore, it is necessary to cache the relevant data information of multiple data packets to ensure that a complete set of data is learned, that is, all copies of the same data packet are collected within the same time window; some copies that time out will be aged out.
[0154] 2) It is used to determine whether the data with the same sequence number is in the same time window. If it is not in the same time window, the data is invalid. It is possible that the sequence number has been wrapped and it is not a different copy of the same data message.
[0155] Path number: The number of paths used by the protection service of this deterministic service flow, which is derived from the path number in flow information table 82. The path number is used to learn the end condition.
[0156] Preset adjustment delay.
[0157] First pointer (SeqNodeList): points to the first sequence node table (SeqNode), i.e., the first pointer in the sequence node table chain. While learning the compensation upper limit for a deterministic service flow, self-learning module 55 may create one or more sequence node tables, which constitute the sequence node table chain. For example, in Figure 8b, the first pointer points to a sequence node table adjacent to stream header table 831.
[0158] Each sequence node table stores the message information of a data message with a sequence number in a deterministic service flow, including:
[0159] Sequence number (SeqNum): the sequence number of the data packet;
[0160] Latest arrival time (LatestTime): the time point of the latest received data message, obtained from the data message;
[0161] Number of valid data packets (RecordNum): The number of received data packets; used as one of the learning end conditions; one data packet corresponds to one path.
[0162] Second pointer (PathInfoPointer): points to the path information table;
[0163] The third pointer (NextNodePointer) points to the next sequence node table. For example, in Figure 8b, the third pointer in the sequence node table adjacent to the stream header table 831 points to the second sequence node table. If a sequence node table does not have a next sequence node table, the third pointer is empty, such as NULL.
[0164] The path information table 833 includes information about a group of paths. At least two paths constitute a protection service group, i.e., a path group. In FIG8b , four paths are used as an example. Each row in the path information table 833 is a table entry. A path information includes
[0165] Path ID (PathID), such as PathID1 to PathID4 as shown in Figure 8b. The path ID can be represented by the inbound interface or the routing information of the data packet, such as the Segment Identity (SID) list in the SRv6 packet header.
[0166] Arrival time: the time point when the data packet arrives at the delay compensation node along the path (Arrive_Time), that is, the time it arrives at the delay compensation node;
[0167] The accumulated value of the residence delay, such as ActD_1 to ActD_4 shown in FIG8 b , is the sum of the residence delays corresponding to the paths, that is, the accumulated value of the actual residence delays corresponding to the paths.
[0168] The self-learning module 55 pre-sets learning conditions, i.e., preset learning conditions. The preset learning conditions may be: (1) the information table being learned does not include the target flow identifier, the number of flow identifiers included in the information table being learned is less than the preset number, and the learning indicator corresponding to the target flow identifier in the flow information table is a second preset value; the preset number is the number of deterministic business flows that need to compensate for the upper limit value in parallel, and the specific size can be set according to actual needs, for example, the preset number can be 4, 5, or 6. (2) the information table being learned includes the target flow identifier, and the learning indicator corresponding to the target flow identifier in the flow information table is the second preset value.
[0169] Based on the above preset learning conditions, the self-learning module 55 can be specifically used to:
[0170] If the information table and the flow information table being learned meet the above-mentioned preset learning condition (1) or the preset learning condition (2), then the target path information corresponding to the serial number of the third data message is added to the data cache table, and the target path information includes the sum of the residence delays of all network domains passed by the third data message on the current path and the time point when the third data message arrives at the delay compensation node along the current path; the current path is the path of the third data message received by the current transmission, that is, the path indicated by the above-mentioned target path information;
[0171] When the number of target path information in the data cache table reaches the number of paths in the target path group, the compensation upper limit value of the target deterministic business flow on each path is determined according to the target path information in the data cache table, such as calculating the difference between the preset reference time point and the time point when the third data packet is received through each path according to the target path information in the data cache table to obtain the adjusted delay corresponding to each path, and calculating the sum of the second residence delay corresponding to the path and the adjusted delay corresponding to the path for each path according to the target path information in the data cache table as the compensation upper limit value of the target deterministic business flow on the path; and updating the learning indication bit corresponding to the target flow identifier in the flow information table to the first preset value.
[0172] The specific method for the self-learning module 55 to determine the compensation upper limit value of the target deterministic business flow on each path based on the target path information in the data cache table can be found in the relevant description of Figures 1 to 4. In the process of parallel learning of the compensation upper limit value, the self-learning module 55 continuously updates the learning information table 81, the flow information table 82 and the data cache table 83. If the learning information table 81 and the flow information table 82 meet the above-mentioned preset learning condition (1), the self-learning module 55 adds the target flow identifier of the target deterministic business flow to the information table 81; after determining the compensation upper limit value of the target deterministic business flow on each path, the compensation upper limit value learning is completed, and the self-learning module 55 can set the target flow identifier in the learning information table 81 to an invalid identifier (such as 0xFFFFFFFF), and recycle the table items associated with the target flow identifier in the data cache table, such as recycle the flow header table, sequence node table link table, path information table, etc. corresponding to the target deterministic business flow.
[0173] In addition, to ensure the accuracy of the learned compensation upper limit value, the self-learning module 55 may be based on the time window length in the data cache table, the aging sequence node table and the path information in the path information table.
[0174] For example, the self-learning module 55 can also be used to:
[0175] Determine a target sequence node table whose duration from a first time point to a second time point is greater than the time window length, where the first time point is the time point of the currently received data packet, the second time point is the time point of the most recently received data packet included in the target sequence node table, and the target sequence node table is any sequence node table associated with the deterministic service flow to which the currently received data packet belongs; recycle all sequence node tables after the target sequence node table, and clear the target path information table pointed to by the target sequence node table;
[0176] When the sequence number included in the target sequence node table is the sequence number of the currently received data packet, the target sequence node table and the target path information table are updated according to the currently received data packet; in the target path information table, a target table entry is determined whose duration from the first time point to the third time point is greater than the time window length, and the third time point is the time point recorded in the target table entry; and the target table entry is deleted.
[0177] The operation of the self-learning module 55 can be performed by the control submodule 84. Through the above embodiment, the self-learning module 55 can clear sequence node tables and path information that are not in the same time window, thereby avoiding the problem of incorrect compensation upper limit learning due to sequence number wraparound. Furthermore, each of the above modules can be implemented via software or hardware, without limitation.
[0178] The following describes in detail the method for learning the compensation upper limit value by the self-learning module 55 provided in the embodiment of the present application in conjunction with the learning flow chart of the compensation upper limit value shown in Figures 9a-9d. Figures 9a-9d respectively show process A, process B, process C and process D.
[0179] In step S91, the self-learning module 55 receives a self-learning message from the parsing module 51. The self-learning message includes metadata. This metadata includes the flow identifier (FlowID), arrival time (Arrive_Time), receiving interface (Interface), and the actual residence delay of each network domain. In the following, the FlowID included in this metadata is FlowID_x. Assuming that the current data packet is received from path i, the self-learning module 55 can calculate the accumulated residence delay value ActD_i based on the actual residence delay of each network domain.
[0180] In step S92, the self-learning module 55 determines whether the learning information table 81 is full. If so, step S93 is executed; if not, step S924 is executed.
[0181] In this embodiment, the self-learning module 55 can concurrently learn the compensation upper limit values for four deterministic service flows. A maximum of four FlowIDs can be written to the learning information table 81. When four FlowIDs have been written to the learning information table 81, the learning information table 81 is full, and the self-learning module 55 has reached the maximum number of concurrent learning requests. The processing in step S92 acts as a flow limiter, preventing the self-learning module 55 from being overwhelmed by a large number of messages.
[0182] In step S93, the self-learning module 55 determines whether FlowID_x is included in the learning information table 81. If so, step S94 is executed; if not, the processing of the current self-learning message is terminated.
[0183] The self-learning module 55 queries the learning information table 81. If FlowID_x is found, it is determined that the learning information table 81 contains FlowID_x. Otherwise, it is determined that the learning information table 81 does not contain FlowID_x, and the processing of the current self-learning message ends.
[0184] In step S94, the self-learning module 55 queries the flow information table 82 to obtain the configuration information corresponding to FlowID_x, and then executes step S95. The configuration information corresponding to FlowID_x includes the flow information corresponding to FlowID_x and a learning indicator.
[0185] In step S95, the self-learning module 55 determines whether the current deterministic service flow has completed learning the compensation upper limit based on the obtained configuration information. If so, the processing of the current self-learning message ends; if not, the process B shown in Figure 9b is executed, that is, step S96 is executed.
[0186] In the embodiment of the present application, a learning indicator bit of 0 indicates that learning is not completed; a learning indicator bit of 1 indicates that learning is completed. If the learning indicator bit in the configuration information is 1, the self-learning module 55 can determine that the current deterministic service flow has completed learning of the compensation upper limit value. This situation may be caused by the self-learning module 55 not completing synchronization with the parsing module 51. If the learning indicator bit in the configuration information is 0, the self-learning module 55 can determine that the current deterministic service flow has not completed learning of the compensation upper limit value.
[0187] In step S96, the self-learning module 55 obtains the corresponding entry from the flow header table 831 according to the index of FlowID_x in the learning information table 81, and executes step S97.
[0188] Step S97 , the self-learning module 55 starts from the first sequence node table in the sequence node table linked list associated with the obtained entry and traverses each sequence node table in the sequence node table linked list.
[0189] In the embodiment of the present application, the sequence node table currently traversed is referred to as the current node for convenience of subsequent description. The sequence number included in the current node can be the same as or different from the sequence number of the current data message.
[0190] In step S98, the self-learning module 55 determines whether the current node has timed out. If so, step S910 is executed; if not, step S912 is executed.
[0191] In the embodiment of the present application, the self-learning module 55 can obtain the latest arrival time (LatestTime) from the current node, obtain the arrival time (Arrive_Time) of the current data packet, and further obtain the time window length (WindLength) included in the obtained entry. If Arrive_Time-LatestTime>WindLength, it indicates that the current node has timed out; otherwise, it indicates that the current node has not timed out.
[0192] In step S910, the self-learning module 55 retrieves all sequence node tables following the current node in the sequence node table chain and updates the data information recorded in the current node. For example, the self-learning module 55 updates the latest arrival time (LatestTime) of the current node with the arrival time of the current data packet and updates the number of valid data packets (RecordNum) to 1.
[0193] In step S911, the self-learning module 55 clears the existing information recorded in the path information table 833 pointed to by the current node and records the path information of the current data packet. For example, the self-learning module 55 writes the path identifier (PathID), arrival time (Arrive_Time), and ActD_i corresponding to the current data packet into the path information table 833, and then ends the processing of the current self-learning message.
[0194] In step S912, the self-learning module 55 determines whether the sequence number included in the current node is the same as the sequence number of the current data message. If they are the same, step S913 is executed; if not, step S922 is executed.
[0195] In step S913, the self-learning module 55 processes the path information table 833 pointed to by the current node and executes process C shown in FIG9c, that is, executes step S914.
[0196] In the embodiment of the present application, the self-learning module 55 processes the path information table 833 including the following two steps.
[0197] Step a: If the current data packet is a data packet of a new path, the path information of the new path is inserted into the path information table 833;
[0198] Step b: Delete the timed-out path information in the path information table 833.
[0199] For any path information recorded in the path information table 833 , take the arrival time included in the path information as PathInfo.Arrive_Time, the arrival time of the current data packet as Arrive_Time, and the time window length included in the obtained entry as WindLength as an example.
[0200] If Arrive_Time - LatestTime > WindLength, it means that the path information has timed out and needs to be deleted. Otherwise, it means that the path information has not timed out.
[0201] In the embodiment of the present application, the execution order of step a and step b is not limited.
[0202] In step S914, the self-learning module 55 updates the current node. For example, the self-learning module 55 uses the arrival time of the current data packet to update the latest arrival time (LatestTime) of the current node, and uses the number of path information included in the current path information table 833 to update the number of valid data packets (RecordNum). The number of path information included in the current path information table 833 can be calculated based on the number of deleted timed-out path information and the newly added path information.
[0203] In step S915, the self-learning module 55 determines whether the number of RecordNum reaches PathCnt. If so, step S916 is executed; if not, the processing of the current self-learning message is terminated.
[0204] In step S916 , the self-learning module 55 reads the path information table 833 and executes steps S917 to S920 .
[0205] In the embodiment of the present application, there is no clear sequential relationship between step S917, step S918 and step S920, and they can be executed in parallel.
[0206] In step S917 , the self-learning module 55 updates the learning indicator bit corresponding to FlowID_x in the flow information table 82 , such as updating the learning indicator bit to 1, and ends the processing of the current self-learning message.
[0207] In step S918 , the self-learning module 55 updates the relevant annotations in the ACL of the parsing module 51 , for example, updating the first preset annotation in the ACL to a second preset annotation.
[0208] In step S919, the self-learning module 55 reclaims the resources in the learning information table 81 corresponding to FlowID_x, reclaims the resources corresponding to FlowID_x in the data cache table, and ends the current self-learning message processing.
[0209] In step S920, the self-learning module 55 calculates the compensation upper limit Cap_i based on the read path information. The reference processing process is:
[0210] a) The number of protection service paths in the embodiment of the present application is 4. They are arranged from early to late according to the arrival time as t1, t2, t3, and t4;
[0211] b) Calculate tr=t4+Adjustment, where tr is the preset reference time point.
[0212] c) Calculate Tir (i is 1 to 4), that is, Tir = tr - ti; for example, T1r = tr - t1.
[0213] d) Calculate Cap_i (i is 1 to 4), that is, Cap_i = Tir + ActD_i; for example, Cap_1 = T1r + ActD_1;
[0214] For specific calculation methods, please refer to the relevant descriptions in Figures 1 to 4 above.
[0215] In step S921, the self-learning module 55 updates the compensation upper limit value in the compensation module, and ends the current self-learning message processing.
[0216] In step S922 , the self-learning module 55 applies for resources of the path information table and the sequence node table, that is, applies for storage space of the path information table and the sequence node table, and then executes step S923 .
[0217] In step S923 , the self-learning module 55 records the information in the requested path information table and sequence node table.
[0218] For example, in the path information table, record the path information of the current data packet, such as PathID, Arrive_Time, and ActD_i, etc. In the sequence node table, record the SeqNum, LatestTime, RecordNum, and a pointer to the path information table, etc. of the current data packet; and end the processing of the current self-learning message.
[0219] In step S924, the self-learning module 55 queries the flow information table 82 to obtain the configuration information corresponding to FlowID_x, and then executes step S925. The configuration information corresponding to FlowID_x includes the flow information corresponding to FlowID_x and a learning indicator.
[0220] In step S925, the self-learning module 55 determines whether the current deterministic service flow has completed learning of the compensation upper limit based on the obtained configuration information. If so, the processing of the current self-learning message ends; if not, step S926 is executed.
[0221] In step S926, the self-learning module 55 adds the current flow identifier FlowID_x to the learning information table 81 and executes process D shown in FIG9d, that is, executes step S927.
[0222] In the embodiment of the present application, when the learning information table 81 does not include FlowID_x, the self-learning module 55 executes step S926; when the learning information table 81 includes FlowID_x, the self-learning module 55 can execute step S96.
[0223] In step S927 , the self-learning module 55 applies for resources of the path information table and the sequence node table, that is, applies for storage space of the path information table and the sequence node table, and then executes step S928 .
[0224] In step S928, the self-learning module 55 records the information in the requested path information table and sequence node table.
[0225] For example, in the path information table, record the path information of the current data packet, such as PathID, Arrive_Time, and ActD_i, etc. In the sequence node table, record the SeqNum, LatestTime, RecordNum, and a pointer to the path information table, etc. of the current data packet; and end the processing of the current self-learning message.
[0226] In step S929, the self-learning module 55 populates the entry in the flow header table 831. The entry's position is determined by the position of FlowID_x in the learning information table 81. The information populated in the entry includes WindLength, PathCnt, and a pointer to the sequence node table. The processing of the current self-learning message ends.
[0227] In the embodiment of the present application, the execution order of step S927 and step S929 is not limited.
[0228] In the technical solution provided by the embodiment of the present application, the delay compensation node determines the first compensation upper limit value of the target deterministic business flow on the first path based on the residence delay of all network domains that the third data packet of the target deterministic business flow passes through on the first path, and the sum of the adjustment delays corresponding to the first path. The head node and the tail node of the section of the first path within a network domain can quickly and easily achieve time synchronization, and then accurately obtain the residence delay of the third data packet / first data packet in the network domain. Based on the accurately obtained second residence delay, the delay compensation node can accurately determine the first compensation upper limit value, and then accurately determine the current compensation delay. The delay compensation node performs delay compensation on the data packet based on the accurate current compensation delay, which can effectively eliminate jitter and reduce jitter in end-to-end services, such as reducing the jitter between the head node and the tail node of the target path group, thereby ensuring deterministic transmission of end-to-end services.
[0229] In addition, in the technical solution provided in the embodiment of the present application, accurate delay compensation can be achieved only by performing time synchronization within the network domain, without the need for cross-domain time synchronization, which reduces the difficulty of implementing the solution, facilitates wide application, and improves the accuracy of delay compensation.
[0230] Corresponding to the above-mentioned delay compensation method, an embodiment of the present application further provides a forwarding node, which can execute the delay compensation method described in any of the above-mentioned embodiments.
[0231] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrations. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive (SSD)).
[0232] It should be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply the existence of any such actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," 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 elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or device comprising the element.
[0233] Each embodiment in this specification is described in a related manner. Similar portions between embodiments can be referenced to each other. Each embodiment focuses on the differences from other embodiments. In particular, the forwarding node embodiment is generally similar to the method and apparatus embodiments, so its description is relatively simple. For related portions, refer to the description of the method and apparatus embodiments.
[0234] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.
Claims
1. A delay compensation method, characterized in that: Applied to a delay compensation node, the method comprises: receiving, through a first path in the target path group, a first data packet, the first data packet carrying a first residence delay of each network domain passed by the first data packet on the first path, the first data packet belonging to a target deterministic service flow; Forwarding the first data message to obtain a second data message; Obtaining a first compensation upper limit value of the target deterministic service flow on the first path, where the first compensation upper limit value is determined according to a sum of second residence delays of all network domains passed by a third data message of the target deterministic service flow on the first path and an adjustment delay corresponding to the first path; taking the difference between the first compensation upper limit value and the sum of all the first dwell delays as the current compensation delay; After delaying the current compensation delay, the second data message is scheduled.
2. The method according to claim 1, characterized in that Before receiving the first data packet through the first path in the target path group, the method further includes: Receiving, through each path in the target path group, a third data packet of the target deterministic service flow respectively, wherein the third data packet carries a second residence delay of each network domain passed by the third data packet on each path; Parsing the third data message to obtain metadata of the third data message, the metadata including a second residence delay of each network domain passed by the third data message on each path and a time point when the third data message is received through each path; Calculate the difference between a preset reference time point and a time point at which the third data message is received through each path to obtain an adjusted delay corresponding to each path; For each path, the sum of the second residence delay corresponding to the path and the adjustment delay corresponding to the path is calculated as the compensation upper limit value of the target deterministic service flow on the path.
3. The method according to claim 2, characterized in that After obtaining the compensation upper limit value of the target deterministic service flow on the path, the method further includes: Storing the compensation upper limit value of the target deterministic service flow on each path; The step of obtaining a first compensation upper limit value of the target deterministic service flow on the first path includes: The first compensation upper limit value is searched from the stored compensation upper limit values of the target deterministic service flow on each path in the target path group.
4. The method according to claim 2, characterized in that: After obtaining the compensation upper limit value of the target deterministic service flow on the path, the method further includes: Sending the compensation upper limit value of the target deterministic service flow on each path to the head node of the target path group; the first data message sent by the head node carries the first compensation upper limit value; The step of obtaining a first compensation upper limit value of the target deterministic service flow on the first path includes: The first compensation upper limit value is obtained from the first data message.
5. The method according to any one of claims 2 to 4, characterized in that: Before receiving the third data message, the method further includes: Acquire a target access control list matching the third data message; If the target access control list includes the first preset annotation, performing the step of calculating the difference between the preset reference time point and the time point at which the third data message is received through each path; After obtaining the compensation upper limit value of the target deterministic service flow on the path, the first preset mark included in the target access control list is updated to a second preset mark, where the second preset mark indicates that the compensation upper limit value has been learned.
6. The method according to claim 2, characterized in that Before obtaining the adjusted delay corresponding to each path, the method further includes: The time point at which the third data message is received through the designated path in the target path group is delayed by a preset adjustment delay to obtain a preset reference time point.
7. The method according to claim 6, characterized in that The designated path is the path in the target path group that receives the third data packet the latest.
8. The method according to claim 2, characterized in that: The delay compensation node is configured with a learning information table, a flow information table and a data cache table; The learning information table includes the flow identifier of the deterministic service flow for which the compensation upper limit value is being learned; Each entry in the flow information table includes flow information and a learning indicator bit of a deterministic service flow configured by the control plane, wherein the learning indicator bit is a first preset value, indicating that learning of a compensation upper limit value of the deterministic service flow is completed, and the learning indicator bit is a second preset value, indicating that learning of a compensation upper limit value of the deterministic service flow is not completed, and the flow information includes a flow identifier; Each entry in the data cache table includes flow information of a deterministic service flow for which a compensation upper limit value is being learned, a sequence number of a data message of the deterministic service flow, and path information corresponding to the sequence number, wherein the path information includes a sum of residence delays of all network domains passed by the data message on each path, and a time point when the data message arrives at the delay compensation node along each path; The metadata also includes a target flow identifier of the target deterministic service flow; The method further comprises: If the learning information table and the flow information table meet the preset learning conditions, then add the target path information corresponding to the sequence number of the third data message in the data cache table, wherein the target path information includes the sum of the residence delays of all network domains passed by the third data message on the current path and the time point when the third data message arrives at the delay compensation node along the current path; When the number of target path information in the data cache table reaches the number of paths in the target path group, the step of calculating the difference between the preset reference time point and the time point at which the third data message is received through each path to obtain the adjustment delay corresponding to each path is performed according to the target path information in the data cache table; and the learning indication bit corresponding to the target flow identifier in the flow information table is updated to a first preset value; The preset learning conditions are: The learning information table does not include the target flow identifier, the number of flow identifiers included in the learning information table is less than a preset number, and the learning indicator bit corresponding to the target flow identifier in the flow information table is a second preset value; or, The learning information table includes the target flow identifier, and the learning indication bit corresponding to the target flow identifier in the flow information table is a second preset value.
9. The method according to claim 8, characterized in that The data cache table includes a stream header table, a sequence node table and a path information table; The flow header table includes flow information of a deterministic service flow and a first pointer, wherein the first pointer points to a first sequence node table; The sequence node table includes a sequence number of a data message, a time point of a latest received data message, the number of received data messages, a second pointer and a third pointer, wherein the second pointer points to a path information table, and the third pointer points to a next sequence node table; Each entry in the path information table includes a path identifier, a sum of residence delays of all network domains that the data message passes through on the path, and a time point when the data message arrives at the delay compensation node along the path.
10. The method according to claim 9, characterized in that After determining the compensation upper limit value of the target deterministic service flow on each path, the method further includes: Setting the target flow identifier in the learning information table to an invalid identifier; Reclaim the table entry associated with the target flow identifier in the data cache table.
11. The method according to claim 9 or 10, characterized in that: The flow information also includes the time window length of the deterministic business flow, the number of paths included in the path group for transmitting the deterministic business flow, and the preset adjustment delay corresponding to the deterministic business flow.
12. The method according to claim 11, characterized in that The method further comprises: Determine a target sequence node table whose duration from a first time point to a second time point is greater than a time window length, wherein the first time point is a time point of a currently received data message, the second time point is a time point of a latest received data message included in the target sequence node table, and the target sequence node table is any sequence node table associated with a deterministic service flow to which the currently received data message belongs; All sequence node tables after the target sequence node table are recovered, and the target path information table pointed to by the target sequence node table is cleared.
13. The method according to claim 12, characterized in that When the sequence number included in the target sequence node table is the sequence number of the currently received data message, the method further includes: According to the currently received data message, update the target sequence node table and the target path information table; In the target path information table, determine a target entry where the duration from the first time point to a third time point is greater than the time window length, the third time point being a time point recorded in the target entry; Delete the target entry.
14. A time delay compensation device, characterized in that: Applied to a delay compensation node, the device comprises: a parsing module, a forwarding module, a compensation module and a scheduling module; The parsing module is configured to receive a first data packet through a first path in the target path group, the first data packet carrying a first residence delay of each network domain passed by the first data packet on the first path, and the first data packet belonging to a target deterministic service flow; and send the first data packet to a forwarding module; The forwarding module is used to forward the first data message to obtain a second data message; and send the second data message to the compensation module; The compensation module is used to obtain a first compensation upper limit value of the target deterministic service flow on the first path, where the first compensation upper limit value is determined according to the second residence delays of all network domains passed by the third data message of the target deterministic service flow on the first path, and the sum of the adjustment delays corresponding to the first path; taking the difference between the first compensation upper limit value and the sum of all the first residence delays as the current compensation delay; and sending the second data message to the scheduling module after delaying the current compensation delay; The scheduling module is used to schedule the second data message.
15. The device according to claim 14, characterized in that The device also includes a self-learning module; The parsing module is further configured to respectively receive a third data packet of the target deterministic service flow through each path of the target path group, wherein the third data packet carries a second residence delay of each network domain passed by the third data packet on each path; Parsing the third data message to obtain metadata of the third data message, the metadata including a second residence delay of each network domain passed by the third data message on each path and a time point when the third data message is received through each path; Reporting the metadata to the self-learning module; The self-learning module is used to calculate the difference between a preset reference time point and a time point at which the third data message is received through each path, so as to obtain an adjustment delay corresponding to each path; For each path, the sum of the second residence delay corresponding to the path and the adjustment delay corresponding to the path is calculated as the compensation upper limit value of the target deterministic service flow on the path.
16. The device according to claim 15, characterized in that The self-learning module is further used to send the compensation upper limit value of the target deterministic service flow on each path to the compensation module; The compensation module is also used to store the compensation upper limit value of the target deterministic business flow on each path; and search for the first compensation upper limit value from the stored compensation upper limit values of the target deterministic business flow on each path in the target path group.
17. The device according to claim 15, characterized in that The self-learning module is further used to send the compensation upper limit value of the target deterministic service flow on each path to the head node of the target path group; the first data message sent by the head node carries the first compensation upper limit value; The compensation module is specifically configured to obtain the first compensation upper limit value from the first data message.
18. The device according to any one of claims 15 to 17, characterized in that: The parsing module is also used for: Acquire a target access control list matching the third data message; If the target access control list includes a first preset annotation, reporting the metadata to the self-learning module, the first preset annotation indicating that the compensation upper limit value has not been learned; The self-learning module is further used to update the first preset mark included in the target access control list to a second preset mark after obtaining the compensation upper limit value of the target deterministic service flow on the path, and the second preset mark indicates that the compensation upper limit value has been learned.
19. The device according to claim 15, characterized in that The self-learning module is further used to delay a time point at which the third data message is received through a designated path in the target path group by a preset adjustment delay to obtain a preset reference time point.
20. The device according to claim 19, characterized in that The designated path is the path in the target path group that receives the third data packet the latest.
21. The device according to claim 15, characterized in that The compensation module is configured with a learning information table, a flow information table and a data cache table; The learning information table includes the flow identifier of the deterministic service flow for which the compensation upper limit value is being learned; Each entry in the flow information table includes flow information and a learning indicator bit of a deterministic service flow configured by the control plane, wherein the learning indicator bit is a first preset value, indicating that learning of a compensation upper limit value of the deterministic service flow is completed, and the learning indicator bit is a second preset value, indicating that learning of a compensation upper limit value of the deterministic service flow is not completed, and the flow information includes a flow identifier; Each entry in the data cache table includes flow information of a deterministic service flow for which a compensation upper limit value is being learned, a sequence number of a data message of the deterministic service flow, and path information corresponding to the sequence number, wherein the path information includes a sum of residence delays of all network domains passed by the data message on each path, and a time point when the data message arrives at the delay compensation node along each path; The metadata also includes a target flow identifier of the target deterministic service flow; The self-learning module is specifically used for: If the learning information table and the flow information table meet the preset learning conditions, then add the target path information corresponding to the sequence number of the third data message in the data cache table, wherein the target path information includes the sum of the residence delays of all network domains passed by the third data message on the current path and the time point when the third data message arrives at the delay compensation node along the current path; When the number of target path information in the data cache table reaches the number of paths in the target path group, the difference between the preset reference time point and the time point at which the third data message is received through each path is calculated according to the target path information in the data cache table to obtain the adjusted delay corresponding to each path, and the sum of the second residence delays of all network domains passed by the path and the adjusted delay corresponding to the path is calculated for each path according to the target path information in the data cache table as the compensation upper limit value of the target deterministic service flow on the path; the learning indication bit corresponding to the target flow identifier in the flow information table is updated to a first preset value; The preset learning conditions are: The learning information table does not include the target flow identifier, the number of flow identifiers included in the learning information table is less than a preset number, and the learning indicator bit corresponding to the target flow identifier in the flow information table is a second preset value; or, The learning information table includes the target flow identifier, and the learning indication bit corresponding to the target flow identifier in the flow information table is a second preset value.
22. The device according to claim 21, characterized in that The data cache table includes a stream header table, a sequence node table and a path information table; The flow header table includes flow information of a deterministic service flow and a first pointer, wherein the first pointer points to a first sequence node table; The sequence node table includes a sequence number of a data message, a time point of a latest received data message, the number of received data messages, a second pointer and a third pointer, wherein the second pointer points to a path information table, and the third pointer points to a next sequence node table; Each entry in the path information table includes a path identifier, a sum of residence delays of all network domains that the data message passes through on the path, and a time point when the data message arrives at the delay compensation node along the path.
23. The device according to claim 22, characterized in that The self-learning module is also used for: After determining the compensation upper limit value of the target deterministic service flow on each path, the target flow identifier in the learning information table is set to an invalid identifier, and the table entry associated with the target flow identifier in the data cache table is recovered.
24. The device according to claim 22 or 23, characterized in that The flow information also includes the time window length of the deterministic business flow, the number of paths included in the path group for transmitting the deterministic business flow, and the preset adjustment delay corresponding to the deterministic business flow.
25. The device according to claim 24, characterized in that The self-learning module is also used for: Determine a target sequence node table whose duration from a first time point to a second time point is greater than a time window length, wherein the first time point is a time point of a currently received data message, the second time point is a time point of a latest received data message included in the target sequence node table, and the target sequence node table is any sequence node table associated with a deterministic service flow to which the currently received data message belongs; All sequence node tables after the target sequence node table are recovered, and the target path information table pointed to by the target sequence node table is cleared.
26. The device according to claim 25, characterized in that The self-learning module is also used for: When the sequence number included in the target sequence node table is the sequence number of the currently received data message, according to the currently received data message, Updating the target sequence node table and the target path information table; In the target path information table, determine a target entry where the duration from the first time point to a third time point is greater than the time window length, the third time point being a time point recorded in the target entry; Delete the target entry.
27. A forwarding node, characterized in that: Execute the method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Deterministic service forwarding method and device
CN114430397A
Deterministic flow forwarding method and device, storage medium and electronic device
CN115665024A
Service message forwarding method, path establishment method and storage medium
CN116248589A
Deterministic stream synchronization
US20180103094A1
Cited By
Message path tracking method of satellite network
CN121585244A