Method and apparatus for collecting CSQF scheduling cycles applied to a deterministic network
The method addresses the challenge of obtaining CSQF scheduling cycle information in deterministic networks by using SDN controllers to create test packets, determine timestamps, and synchronize scheduling cycles, thereby ensuring accurate and deterministic packet transfer.
Patent Information
- Application Number
- JP2023574659
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-12-29
- Publication Date
- 2025-05-26
- Estimated Expiration
- 2041-12-29
AI Technical Summary
Current methods lack the ability to timely obtain the Cycle Specified Queuing and Forwarding (CSQF) scheduling cycle information of each transmission node in a deterministic network, which is essential for deterministic packet transmission.
A method executed by an SDN controller that involves creating test packets for each transmission node, determining their reception and transmission timestamps, and using these timestamps to calculate the CSQF scheduling cycle information. For non-first nodes, the method controls test packets to enter the receive queue of preceding nodes based on their CSQF scheduling cycle information.
This method enables accurate collection of CSQF scheduling cycle information for each transmission node, ensuring timely and deterministic packet transfer by synchronizing the scheduling cycles across the network.
Smart Images

Figure 0007683047000001 
Figure 0007683047000002 
Figure 0007683047000003
Abstract
Description
Technical Field
[0001] The present invention relates to the field of network communication technologies, and particularly to a method and apparatus for realizing the collection of a cycle specified queuing and forwarding (CSQF) scheduling cycle based on segment routing applied to a deterministic network.
Background Art
[0002] A deterministic network (DetNet) can provide deterministic service functions for bearer services in a network domain. These deterministic service functions may include delay, packet loss rate, etc.
[0003] In a deterministic network, in order to realize deterministic transmission of a wide area network, CSQF has been proposed based on cyclic queuing and forwarding (CQF). CSQF realizes at least three queues (CSQ: Cycle Specified Queue, also called a cycle specified queue). In each CSQF scheduling cycle, only one queue is in a transmission state and can be called a sending queue (SQ), and at least one of the remaining queues is in a reception state and is called a receiving queue (RQ).
[0004] In a deterministic network, in order to realize deterministic transmission of packets, it is necessary to know the CSQF scheduling cycle of each transmission node. Thereby, when a packet reaches each transmission node, the sending queue (SQ) and the receiving queue (RQ) that each transmission node is transmitting can be known in a timely manner. However, currently, there is no method for timely obtaining the CSQF scheduling cycle information of each transmission node, such as the start time of the CSQF scheduling cycle.
Summary of the Invention
[0005] Embodiments of the present invention provide a method for collecting a CSQF scheduling cycle applied to a deterministic network in order to realize the collection of the CSQF scheduling cycle of transmission nodes in the deterministic network.
[0006] Embodiments of the present invention provide a method for collecting a CSQF scheduling cycle applied to a deterministic network, and the method is executed by an SDN controller. For each transmission node on the transmission path of the deterministic network, If the transmission node is the first node on the transmission path, create a test packet corresponding to the transmission node and send it to the transmission node, obtain the reception timestamp of the transmission node that received the test packet and the transmission timestamp scheduled to send the test packet, and determine the CSQF scheduling cycle information of the transmission node based on the reception timestamp and the transmission timestamp. If the transmission node is not the first node on the transmission path, create a test packet corresponding to the transmission node, and based on the CSQF scheduling cycle information of other transmission nodes in front of the transmission node on the transmission path, control the test packet corresponding to the transmission node to enter the reception queue (RQ) of the other transmission node in front of the transmission node on the transmission path when the test packet reaches the other transmission node in front of the transmission node on the transmission path, obtain the reception timestamp of the transmission node that received the test packet and the transmission timestamp of the transmission node scheduled to send the test packet, and determine the CSQF scheduling cycle information of the transmission node based on the reception timestamp and the transmission timestamp.
[0007] Embodiments of the present invention provide a method for collecting CSQF scheduling cycles applicable to a deterministic network. The method is executed by the first node on the transmission path of the deterministic network, When determining the CSQF scheduling cycle of the first node, create a test packet corresponding to the first node, use the time stamp when the test packet is created as the reception time stamp of the test packet, and determine the CSQF scheduling cycle information of the first node based on the reception time stamp of the test packet and the transmission time stamp scheduled to transmit the test packet; When determining the CSQF scheduling cycle of a non-first node on the transmission path, create a test packet corresponding to the non-first node, and based on the CSQF scheduling cycle information of each other transmission node preceding the non-first node on the transmission path, specify a queue into which the test packet corresponding to the non-first node enters when it reaches each other transmission node, wherein the specified queue into which it enters when reaching each other transmission node is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of each other transmission node; determine a transmission start time for transmitting the test packet corresponding to the non-first node to the specified queue of the first node based on the current time, wherein the transmission start time is used to control the test packet corresponding to the transmission node to enter the specified queue of the first node, and the specified queue is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node; When the transmission start time is reached, a test packet corresponding to the non-first node is transmitted to the designated queue of the first node, and the reception timestamp of the non-first node that has received the test packet and the transmission timestamp of the non-first node scheduled to transmit the test packet are obtained. Based on the reception timestamp and the transmission timestamp, determining the CSQF scheduling cycle information of the non-first node is included.
[0008] Embodiments of the present invention further provide an electronic device, which includes a processor and a machine-readable storage medium. The machine-readable storage medium stores machine-executable instructions executable by the processor. The processor is used to execute machine-executable instructions so as to implement the steps of the above method.
Advantages of the Invention
[0009] As can be seen from the above technical solutions, in the embodiments of the present invention, for each transmission node on the transmission path, a test packet corresponding to the transmission node is created, and based on the reception timestamp of the transmission node that has received the test packet and the transmission timestamp of the transmission node scheduled to transmit the test packet, by determining the CSQF scheduling cycle information of the transmission node, the collection of the CSQF scheduling cycle in the deterministic network is realized.
[0010] Furthermore, in the embodiment of the present invention, when the transmission node to be tested is not the first node on the transmission path, a test packet corresponding to the transmission node is created, and based on the CSQF scheduling cycle information of other transmission nodes in front of the transmission node on the transmission path, when the test packet corresponding to the transmission node reaches another transmission node in front of the transmission node on the transmission path, it is controlled to enter the receive queue RQ of the other transmission node. Thereby, it is realized that the test packet enters the designated queue of the first node, the collection accuracy of the CSQF scheduling cycle is ensured, and the subsequent packet transfer can be facilitated.
Brief Description of the Drawings
[0011] The accompanying drawings described herein are incorporated into the specification and form a part of the specification, showing embodiments consistent with the present invention and explaining the principles of the present invention together with the specification.
[0012]
Figure 1
Figure 2
Figure 3a
Figure 3b
Figure 3c
Figure 4a
Figure 4b
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Embodiments for Carrying Out the Invention
[0013] In this specification, the embodiments shown in the accompanying drawings will be described in detail. When the following description refers to the accompanying drawings, the same numerals in different drawings refer to the same or similar elements unless otherwise specified. The embodiments described in the following examples do not represent all embodiments that are consistent with the present invention. Rather, they are merely examples of devices and methods that are consistent with some aspects of the present invention as detailed in the appended claims.
[0014] The terms used in the present invention are for the purpose of describing specific embodiments and are not intended to limit the present invention. In the embodiments of the present invention and the appended claims, the singular forms "one", "said", and "the" are also intended to include the plural forms unless the context clearly indicates otherwise.
[0015] In order for those skilled in the art to better understand the technical solutions provided by the embodiments of the present invention and to more easily understand the above-mentioned objects, features, and advantages of the embodiments of the present invention, the technical solutions in the embodiments of the present invention will be further described in detail below in conjunction with the accompanying drawings.
[0016] FIG. 1 is a flowchart of a method according to an embodiment of the present invention. The method is applied to an SDN controller.
[0017] As shown in FIG. 1, the method may include the following steps.
[0018] In step 101, for each transmission node on the transmission path of the deterministic network, if the transmission node is the first node on the transmission path, step 102 is executed; if the transmission node is not the first node on the transmission path, step 103 is executed.
[0019] It should be noted that in this embodiment, the transmission path can be arbitrarily set and is not particularly limited. FIG. 2 is a diagram showing a network structure to which the method of FIG. 1 is applied, taking the case where there are two transmission nodes A and B on the transmission path as an example. Based on the transmission path A->B shown in FIG. 2, step 102 is executed for the transmission node A, and step 103 is executed for the transmission node B. It should be noted that the transmission path A->B shown in FIG. 2 is only an example for easy understanding and is not intended to be limiting.
[0020] In step 102, create a test packet corresponding to the transmission node and send it to the transmission node, obtain the reception timestamp of the transmission node that received the test packet and the transmission timestamp of the transmission node scheduled to send the test packet, and determine the CSQF scheduling cycle information of the transmission node based on the reception timestamp and the transmission timestamp.
[0021] In this embodiment, the total number N of test packets corresponding to the created transmission nodes is the total number of queues realized by CSQF that the transmission nodes have.
[0022] Also, in this embodiment, by specifying that N test packets corresponding to the transmission node enter N queues of the transmission node respectively, it may be ensured that different test packets enter different queues. In other words, in this embodiment, an identifier of the queue into which the designated test packet is to enter may be added to each test packet. For example, the test packet with sequence number 0 enters the queue with sequence number 0, and the test packet with sequence number 1 enters the queue with sequence number 1.
[0023] Based on this, after the transmission node receives the test packet, store the test packet in the corresponding queue based on the added queue identifier, and finally, realize that N test packets enter N queues of the transmission node respectively.
[0024] Note that in this embodiment, when the transmission node receives a test packet, record the timestamp when the test packet is received (referred to as the reception timestamp). Then, report the reception timestamp to the above SDN controller. In this embodiment, the reception timestamps of different test packets may be the same or different, and are not particularly limited.
[0025] In addition, in this embodiment, the transmission node schedules the queues in order according to the CSQF scheduling cycle and transmits the test packets in the queues. Based on this, when transmitting a test packet, the transmission node records the time stamp (referred to as the transmission time stamp) at which the test packet was transmitted. Then, it reports the reception time stamp to the above SDN controller. In this embodiment, the transmission time stamps of different test packets may be the same or different, and are not particularly limited.
[0026] Also, in this embodiment, the transmission time stamp and the reception time stamp may be reported to the above SDN controller together or separately, and are not particularly limited.
[0027] As described in step 102, after the above SDN controller obtains the reception time stamp of the transmission node that received the test packet and the transmission time stamp of the transmission node that was scheduled to transmit the test packet, based on the reception time stamp and the transmission time stamp, it determines the CSQF scheduling cycle information of the transmission node. Note that the method for determining the CSQF scheduling cycle of the transmission node based on the reception time stamp and the transmission time stamp will be described in detail later, so the description here is omitted.
[0028] In step 103, a test packet corresponding to the transmission node is created, and based on the CSQF scheduling cycle information of other transmission nodes in front of the transmission node on the transmission path, when the test packet corresponding to the transmission node reaches other transmission nodes in front of the transmission node on the transmission path, it is controlled to enter the RQ of the other transmission node, the reception time stamp of the transmission node that received the test packet and the transmission time stamp of the transmission node that was scheduled to transmit the test packet are obtained, and based on the reception time stamp and the transmission time stamp, the CSQF scheduling cycle information of the transmission node is determined.
[0029] In this embodiment, based on the CSQF scheduling cycle information of other transmission nodes in front of a transmission node on the transmission path, when a test packet corresponding to the transmission node reaches another transmission node in front of the transmission node on the transmission path, by specifying that it enters the RQ of the other transmission node, ultimately, when the test packet corresponding to the transmission node reaches another transmission node in front of the transmission node on the transmission path, it is realized that the test packet enters the RQ of the other transmission node.
[0030] Note that since the method for determining the CSQF scheduling cycle information of a transmission node based on the reception timestamp and the transmission timestamp will be described in detail later, the description is omitted here.
[0031] Up to this point, the process shown in FIG. 1 is completed. Through the process shown in FIG. 1, the collection of the CSQF scheduling cycle information of each transmission node on the complete transmission path is realized.
[0032] Hereinafter, in the above step 102 or step 103, a method for determining the CSQF scheduling cycle of a transmission node based on the reception timestamp and the transmission timestamp will be described.
[0033] Optionally, to facilitate the understanding of the method for determining the CSQF scheduling cycle information of a transmission node based on the reception timestamp and the transmission timestamp, first, the principle related to the CSQF scheduling cycle information will be described.
[0034] Taking the network shown in FIG. 2 as an example, assume that each transmission node shown in FIG. 2 has established three queues based on CSQF, and the three queues are denoted as Q1, Q2, and Q3 respectively. The symbols used will be described below.
[0035] 1), i, j, and k are the sequence numbers of three test packets respectively. Optionally, i, j, and k are consecutive. For example, i + 1 = j and j + 1 = k. Denote the test packet with sequence number i as packet i, the test packet with sequence number j as packet j, and the test packet with sequence number k as packet k.
[0036] 2), t1A[i] represents the time stamp of packet i that has reached the transmission node (i.e., the reception time stamp), txA[i] represents the time stamp at which packet i is scheduled to be transmitted (i.e., the scheduling time stamp), t2A[i] represents the time stamp at which packet i is transmitted (i.e., the transmission time stamp), t1A[j] represents the time stamp of packet j that has reached the transmission node (i.e., the reception time stamp), txA[j] represents the time stamp at which packet j is scheduled to be transmitted (i.e., the scheduling time stamp), t2A[j] represents the time stamp at which packet j is transmitted (i.e., the transmission time stamp), t1A[k] represents the time stamp of packet k that has reached the transmission node (i.e., the reception time stamp), txA[k] represents the time stamp at which packet k is scheduled to be transmitted (i.e., the scheduling time stamp), and t2A[k] represents the time stamp at which packet k is transmitted (i.e., the transmission time stamp).
[0037] Taking the transmission path A -> B shown in Figure 2 as an example, Figures 3a to 3c show that packets i, j, and k all reach transmission node A within the same CSQF scheduling cycle (denoted as Cycle 1) of transmission node A, and the arrival times do not cross the boundary of Cycle 1.
[0038] Taking Figure 3a as an example, assume that transmission node A schedules Q1 in Cycle 1. When packet i is designated to enter Q1, when packet i arrives at transmission node A, since Q1 is scheduled, packet i is scheduled to be transmitted immediately in Cycle 1. Ideally, txA[i] and t2A[i] are completed in Cycle 1.
[0039] In Figure 3a, packets j and k received by transmission node A in Cycle 1 enter Q2 and Q3 respectively. At the start of Cycle 2, Q2 is scheduled, and packet j is scheduled to be transmitted immediately after the start of Cycle 2. Therefore, txA[j] and t2A[j] are close to the start time of Cycle 2. Similarly, at the start of Cycle 3, Q3 is scheduled, and packet k is scheduled to be transmitted immediately after the start of Cycle 3 3. Also, txA[k] and t2A[k] are close to the start time of Cycle 3. Figures 3b and 3c are similar to Figure 3a. The differences mainly lie in that the queues scheduled when the test packets arrive are different.
[0040] According to Figures 3a to 3c, the following conclusions can be obtained.
[0041] 1) For any test packet, the scheduling timestamp (txA) of the test packet such as txA[i], txA[j], txA[k] cannot be directly obtained. However, since the interval between txA and the transmission timestamp (t2A) of the test packet is very small and relatively certain, the scheduling timestamp txA can be approximately replaced by the transmission timestamp t2A of the test packet.
[0042] 2) For the earliest received test packet (i.e., the test packet with the earliest reception timestamp), if the transmission and reception of the test packet are completed within the same CSQF scheduling cycle, the time when going back two CSQF scheduling cycles from the latest reception timestamp (the latest timestamp among all the reception timestamps of the test packets) can approximate the start time of the CSQF scheduling cycle where the earliest transmission timestamp (the earliest timestamp among all the transmission timestamps of the test packets) is located. For example, in Figure 3a, the latest transmission timestamp is t2A[k], and the earliest reception timestamp is t1A[i]. According to the above conclusion, the start time of the CSQF scheduling cycle where the earliest reception timestamp t1A[i] is located is approximately t2A[k] - 2T. Correspondingly, the offset of the CSQF scheduling cycle when receiving packet i can be calculated as approximately t2A[i] - (t2A[k] - 2T). T is the time length of one CSQF scheduling cycle, for example, 10 us.
[0043] Note that FIGS. 3a to 3c show the application in an ideal situation (i.e., the time when the transmission node receives the test packet does not cross the boundary of the CSQF scheduling cycle). However, in some special situations, as shown in FIGS. 4a to 4b, there is a situation where the time when the transmission node receives the test packet crosses the boundary of the CSQF scheduling cycle. Taking FIG. 4a as an example, transmission node A receives packet i near the end of the Cycle n+1 scheduling cycle, and due to processing delay and slight jitter, packet i may be scheduled to be transmitted in the Cycle n+1 scheduling cycle. Also, as shown in FIG. 4b, packet i may also be scheduled to be transmitted in the Cycle n+4 scheduling cycle. However, whether it is the ideal situation shown in FIGS. 3a to 3c or the special situation shown in FIGS. 4a to 4b, the latest transmission timestamp (the latest timestamp among the transmission timestamps of all test packets) can approximate the start time of a certain CSQF scheduling cycle. Although it is not clear which specific CSQF scheduling cycle this CSQF scheduling cycle is, it must be the start time of one CSQF scheduling cycle.
[0044] Based on the above conclusion that the transmission timestamp of the latest transmitted test packet approximates the start time of the CSQF scheduling cycle, a method for determining the CSQF scheduling cycle information of the transmission node will be described below based on the reception timestamp and the transmission timestamp.
[0045] FIG. 5 is a flowchart for determining the CSQF scheduling cycle information of the transmission node based on the reception timestamp and the transmission timestamp according to an embodiment of the present invention. As shown in FIG. 5, the process may include the following steps.
[0046] In step 501, based on the transmission timestamps of all test packets, determine a first target test packet.
[0047] Optionally, as one embodiment, in this embodiment, the transmission timestamp of the first target test packet is later than the transmission timestamps of other test packets. That is, the first target test packet is the test packet that is transmitted the latest among all test packets.
[0048] Optionally, as another embodiment, in this embodiment, the time difference between the transmission timestamp and the reception timestamp of the first target test packet is greater than the time differences between the transmission timestamps and the reception timestamps of other test packets. That is, the first target test packet is the test packet with the largest time difference between the transmission timestamp and the reception timestamp among all test packets.
[0049] In step 502, based on the transmission timestamp of the first target test packet, determine the CSQF scheduling cycle information of the transmission node according to the principle that the transmission timestamp of the test packet transmitted the latest approximates the start time of the CSQF scheduling cycle.
[0050] Optionally, in this embodiment, step 502 may be implemented by the following steps.
[0051] In step a1, based on the reception timestamps of all test packets, determine a second target test packet.
[0052] Optionally, in this embodiment, the reception timestamp of the second target test packet is earlier than the reception timestamps of other test packets. That is, the second target test packet is the test packet that is received the earliest.
[0053] In step a2, determine a loop variable value Loop that satisfies t2A[p] > t1A[q] + Loop * T. Here, t2A[p] represents the transmission timestamp of the first target test packet, t1A[q] represents the reception timestamp of the second target test packet, T is the time length of one CSQF scheduling cycle, for example, 10 us. Here, the determined Loop may be the smallest Loop that satisfies the above formula.
[0054] In step a3, determine CSQF scheduling cycle information based on the transmission timestamp of the first target test packet, the reception timestamp of the second target test packet, and the above Loop.
[0055] Optionally, in this embodiment, the CSQF scheduling cycle information may include at least the following.
[0056] 1), Cycle start time: In this embodiment, the cycle start time is the start time of the target CSQF scheduling cycle where the transmission node is located when receiving the second target test packet. As described above, the transmission timestamp of the test packet transmitted at the latest is approximated to the start time of the CSQF scheduling cycle, that is, t2A[p] is the start time of a certain CSQF scheduling cycle. Based on this, the above cycle start time may be t2A[p] - Loop * T.
[0057] 2), SQ identifier: In this embodiment, the SQ identifier is used to indicate the queue identifier of the queue scheduled to be transmitted in the above target CSQF scheduling cycle. Optionally, in this embodiment, the SQ identifier is represented by (p - 1 + N - Loop) mod N + 1, where p is the sequence number of the second target test packet.
[0058] 3), RQ identifier: In this embodiment, the RQ identifier is used to indicate the queue identifier of the queue that is scheduled to be transmitted in the next CSQF scheduling cycle of the target CSQF scheduling cycle. Optionally, in this embodiment, the queue corresponding to the RQ identifier is in the received state in the above target CSQF scheduling cycle. Assuming that the transmission node schedules the queues in order, the queue corresponding to the RQ identifier may be the next queue after the queue corresponding to the above SQ identifier. Optionally, in this embodiment, the RQ identifier is represented by (p + N - Loop) mod N + 1.
[0059] Of course, in one embodiment, the above CSQF scheduling cycle information may include the packet identifier of the second target test packet such as the sequence number q, the reception timestamp t1A[q] of the second target test packet, the packet identifier of the first target test packet such as the sequence number p, and the transmission timestamp t2A[p] of the first target test packet, etc., and is not particularly limited in this embodiment.
[0060] So far, the process shown in FIG. 5 is completed.
[0061] Through the process shown in FIG. 5, based on the reception timestamp and the transmission timestamp, the determination of the CSQF scheduling cycle information of the transmission node is realized.
[0062] In this embodiment, for the first node on the transmission path such as transmission node A shown in FIG. 2, the CSQF scheduling cycle information of the first node such as transmission node A is finally obtained by the method shown in FIG. 5. Also, for the transmission nodes after the first node on the transmission path, based on the CSQF scheduling cycle information of other transmission nodes before the transmission node on the transmission path, when the test packet corresponding to the transmission node reaches other transmission nodes before the transmission node on the transmission path, it is necessary to control it to enter the RQ of the other transmission node. Hereinafter, the implementation method will be specifically described.
[0063] FIG. 6 is a flowchart for controlling a test packet to enter a designated queue according to an embodiment of the present invention. In the process shown in FIG. 6, in order to facilitate distinction, when determining the CSQF scheduling cycle information of a transmission node after the first node on the transmission path, the transmission node may be referred to as a test target node.
[0064] As shown in FIG. 6, the process may include the following steps.
[0065] In step 601, based on the CSQF scheduling cycle information of each other transmission node before the test target node on the transmission path, the queue into which the test packet corresponding to the test target node enters when it reaches each of the other transmission nodes is specified.
[0066] In this embodiment, when determining the CSQF scheduling cycle information of the test target node, the SDN controller creates a corresponding test packet for the non-first node.
[0067] In this embodiment, for the CSQF scheduling cycle information, the test packet corresponding to the test target node may be specified to enter the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of each of the other transmission nodes.
[0068] As an example, when the transmission path is A -> B -> C -> D, if the test target node is B, the test packet corresponding to node B is specified to enter the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node A, such as queue 0.
[0069] As another example, when the test target node is C, the test packet corresponding to node C is specified to enter the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node A, such as queue 0, and the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node B, such as queue 1.
[0070] Also, as another example, when the test target node is D, the test packet corresponding to node D is specified to enter the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node A, such as queue 0, the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node B, such as queue 1, and the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node C, such as queue 2.
[0071] In step 602, determine the transmission start time for sending the test packet corresponding to the test target node to the first node on the transmission path.
[0072] In step 602, in order to ensure that the test packet corresponding to the test target node enters the specified queue in each of the other transmission nodes when it reaches each of the other transmission nodes, it is necessary to determine the transmission start time for sending the test packet corresponding to the test target node to the first node on the transmission path.
[0073] In this embodiment, when the SDN controller determines the CSQF scheduling cycle information of the first node, it records the time (referred to as the transmission start time) when each test packet is sent to the first node. The transmission start times of different test packets may be the same or different, and are not particularly limited in this embodiment. Based on this, in this embodiment, when determining the CSQF scheduling cycle information of the first node, the transmission start time (denoted as T_start) of the test packet specified to enter the RQ of the first node may be obtained from the transmission start time when each test packet is sent to the first node. Based on the T_start, step 60 2 can determine the transmission start time for sending the test packet corresponding to the non-first node to the first node in. For example, a future time point time1 is set. time1 = N*T + time - [(time - T_start) mod (N*T)], where time represents the current time point. Read the current time point time and determine whether the current time point time is smaller than time1. If the current time point time is smaller than time1, return to the step of reading the current time point time. Otherwise, determine the current time point time as the above-mentioned transmission start time for sending the test packet corresponding to the non-first node to the first node.
[0074] In step 603, when the above-mentioned transmission start time is reached, the test packet corresponding to the test target node is sent to the first node on the transmission path.
[0075] By sending the test packet corresponding to the test target node to the first node on the transmission path at the determined transmission start time, when the test packet corresponding to the test target node reaches another transmission node in front of the test target node on the transmission path, it is controlled to enter the specified RQ of the other transmission node.
[0076] Note that in this embodiment, before executing the process shown in FIG. 6, time synchronization may first be performed between the SDN controller and each transmission node on the transmission path.
[0077] To clarify the process shown in FIG. 6, embodiments will be described below.
[0078] Taking the network shown in FIG. 7 as an example, assume that the transmission path is A -> B -> C -> D -> E. Set in advance a set of collected nodes Pre-Path and a set of nodes to be collected Next-Path. In the initial state, Pre-Path is empty and Next-Path contains the five nodes A, B, C, D, and E arranged in path order.
[0079] Traverse Next-Path in path order, and set the traversed node as the current node. Identify whether the current node is the first node on the above transmission path.
[0080] As an example, when it is identified that the current node is the first node on the above transmission path, according to the process shown in FIG. 5 above, determine the CSQF scheduling cycle information of the first node. Assume that the current node is node A, that is, the first node on the above transmission path. FIG. 8 shows the determination of the CSQF scheduling cycle information of node A by taking the example of creating three test packets for node A.
[0081] Next, record the identifier of the current node, that is, node A, and the CSQF scheduling cycle information of the current node in Pre-Path. Identify whether there is a next node of the current node on the above transmission path. If there is a next node of the current node on the transmission path, return to the step of traversing Next-Path in path order.
[0082] As another example, when it is identified that the current node is not the first node on the above transmission path, taking the case where the current node is node B as an example, based on the CSQF scheduling cycle information of the first node A on the above transmission path, when the test packet corresponding to node B reaches the first node A, it is specified to enter the designated RQ of the first node (the designated RQ here refers to the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node A on the above transmission path).
[0083] Thereafter, according to the method of step 602 shown in FIG. 6, the transmission start time for transmitting the test packet corresponding to node B to the first node A is determined, and when the above transmission start time is reached, the transmission of the test packet corresponding to node B is started. Finally, after the test packet corresponding to node B reaches the first node A, it enters the designated RQ of the first node according to the specification (the designated RQ here refers to the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node A on the above transmission path).
[0084] Then, when the CSQF scheduling cycle for scheduling the above designated RQ arrives, the first node A schedules to transmit the test packet in the above designated RQ. Node B finally receives the test packet transmitted from the first node A and puts the received test packets into different queues of node B respectively. Thereafter, node B schedules to transmit the test packets in each queue according to the CSQF scheduling cycle. According to the process shown in FIG. 5 above, the CSQF scheduling cycle information of node B is finally determined. FIG. 9 shows a method for determining the CSQF scheduling cycle information of node B based on three test packets created for node B, taking the case where the designated RQ is queue 3 (Q3) as an example.
[0085] In this embodiment, the RQ identifier in the CSQF scheduling cycle information of node B is determined when scheduling is performed so that the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node A is transmitted. That is, when scheduling is performed so that the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node A is transmitted, if the packets in the queue are scheduled to be transmitted to the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node B, it is guaranteed that the packets will be preferentially transmitted by node B. Based on this, when determining the CSQF scheduling cycle information of nodes after node B (for example, node C) below, the test packets created for node C may be specified to enter the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node A and the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of node B.
[0086] Next, record the identifier of the current node, that is, node B, and the CSQF scheduling cycle information of the current node in the Pre-Path. Identify whether the next node of the current node exists on the above transmission path. If the next node of the current node exists on the transmission path, return to the step of traversing the Next-Path in the path order.
[0087] Also, as another example, when it is identified that the current node is not the first node on the above transmission path, taking the case where the current node is Node C as an example, based on the CSQF scheduling cycle information of the first node A on the above transmission path and the CSQF scheduling cycle information of Node B, when the test packet corresponding to Node C reaches the first node A, it enters the designated RQ of the first node (the designated RQ here refers to the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node A on the above transmission path), and when it reaches the first node B, it is specified to enter the designated RQ of Node B (the designated RQ here refers to the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of Node B on the above transmission path).
[0088] After that, according to the method of step 602 shown in FIG. 6, the transmission start time for sending the test packet corresponding to Node C to the first node A is determined, and when the above transmission start time is reached, the transmission of the test packet corresponding to Node C is started. Finally, after the test packet corresponding to Node C reaches the first node A, it enters the designated RQ of the first node according to the specification (the designated RQ here refers to the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node A on the above transmission path). Then, when the CSQF scheduling cycle for scheduling the above designated RQ arrives, the first node A schedules to send the test packet in the above designated RQ. Finally, the test packet corresponding to Node C reaches Node B. After receiving the test packet corresponding to Node C, Node B puts the test packet into the designated RQ of Node B according to the specification (the designated RQ here refers to the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of Node B on the above transmission path).
[0089] Then, when the CSQF scheduling cycle for scheduling the specified RQ arrives at Node B, Node B schedules to transmit the test packets within the specified RQ. Finally, the test packets corresponding to Node C reach Node C and enter different queues of Node C respectively. Thereafter, Node C schedules to transmit the test packets in each queue according to the CSQF scheduling cycle. According to the process shown in FIG. 5 above, the CSQF scheduling cycle information of Node C is finally determined.
[0090] Note that in this embodiment, the RQ identifier in the CSQF scheduling cycle information of Node C is determined when the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of Node B is scheduled to be transmitted. Also, the RQ identifier in the CSQF scheduling cycle information of Node B is determined when the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of Node A is scheduled to be transmitted. That is, in order to ensure preferential transmission of packets, hereinafter, when determining the CSQF scheduling cycle information of nodes after Node C (for example, Node D), the test packets created for Node D may be specified to enter the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of Node A, the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of Node B, and the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of Node C.
[0091] Next, the identifier of the current node, that is, Node CRecord the current node's CSQF scheduling cycle information and the like in the Pre-Path. Identify whether the next node of the current node exists on the above transmission path. If the next node of the current node exists on the transmission path, return to the step of traversing the Next-Path in path order. Of course, if the next node of the current node does not exist on the transmission path, end the current process.
[0092] When the current node is node D, the processing of node D is similar to the processing of node B and node C described above, so it will not be repeated here.
[0093] Through the above description, finally, the determination of the CSQF scheduling cycle information of each transmission node on the complete transmission path can be completed.
[0094] In this embodiment, as an example, by performing time adjustment in advance for at least one transmission node on the above transmission path, the time synchronization between all transmission nodes on the transmission path can be controlled, and the acquisition of the CSQF scheduling cycle information of each transmission node can be facilitated based on the same time base.
[0095] As shown in FIG. 10, in a deterministic network, each transmission node includes the following five parts. 1) Input Process: Used to perform the anchoring of the input timestamp. 2) Distributing: Used to distribute packets, such as distributing packets belonging to best-effort traffic to the best-effort traffic queue and distributing packets belonging to deterministic traffic to the deterministic traffic queue. 3) Mapping: Used to map packets to the queue to be scheduled for transmission. 4) Schedule by Cycle: It is used to schedule the packets in the queue based on the CSQF scheduling cycle and send them to the hardware queue with the highest reserved priority. 5) Output Process: It is used to send and mark the output timestamp by setting the hardware queue with the highest reserved priority as the hardware queue for sending deterministic traffic.
[0096] In any transmission node, the time elements related to one packet include the following. 1) In the Input Process, the packet reception timestamp t1 can be obtained. 2) After Distributing and Mapping, the time overhead is ΔT1. 3) After the scheduling delay ΔT2 and the delay ΔT3 for marking the transmission timestamp, finally, the transmission timestamp for sending the packet is t2.
[0097] In the above process, t1 and t2 are clocks in the same clock domain of the same transmission node and can be accurately obtained. According to the above analysis, the relationship between t1 and t2 is expressed by Equation 1. t2 = t1 + ΔT1 + ΔT2 + ΔT3 (1)
[0098] If t = T1 + T2 + T3, Equation 1 becomes as follows. t2 = t1 + Δt (2)
[0099] Based on Equation 2, as shown in Figure 11, the total delay of transmission node A and transmission node B is as follows. t2A[i] = t1A[i] + ΔtA[i] t2B[i] = t1B[i] + ΔtB[i] Here, i represents the i-th test packet.
[0100] The delay between transmission nodes A and B, i.e., ΔtAB[i], cannot be obtained by directly subtracting the transmission timestamp t2A[i] of transmission node A from the reception timestamp t1B[i] of transmission node B because it spans across transmission nodes A and B and their time bases are different. Therefore, a calculation method similar to the PTP calculation method shown in FIG. 12 is required.
[0101] In FIG. 12, j represents only messages different from i, ΔtAB[i] represents the delay from the transmission timestamp of transmission node A to the reception timestamp of transmission node B, and tBA[i] represents the delay from the transmission timestamp of transmission node B to the reception timestamp of transmission node A. Since the round-trip path is symmetric and the delay in this part is basically determined by physical characteristics, the delay of different packets does not change much compared to the queuing delay. Therefore, the delay in this part is considered equal for calculation. That is, ΔtAB[i] ≈ ΔtAB[j] ≈ ΔtBA[i] ≈ ΔtBA[j], and this is denoted as tAB and calculated as follows. ΔtAB = [(t1B[i] - t2A[i]) + (t1′A[j] - t2′B[j])] / 2
[0102] The time base offset of transmission node B with respect to transmission node A is as follows. OffsetAB = [(t1B[i] - t2A[i]) - (t1′A[j] - t2′B[j])] / 2
[0103] That is, by adding the above OffsetAB to the current time of transmission node B, the same time base as that of transmission node A can be obtained. When each transmission node on the same transmission path has the same time base, the timestamps obtained from the delay analysis within the transmission node have a unified standard.
[0104] The above has described the time synchronization between transmission nodes.
[0105] The method according to the embodiment of the present invention has been described from the perspective of the SDN controller. Hereinafter, the method according to the embodiment of the present invention will be described from the perspective of the first node on the transmission path.
[0106] FIG. 13 is a flowchart of another method according to an embodiment of the present invention. The process is applied to the first node on the transmission path of the deterministic network. As shown in FIG. 13, the process may include the following steps.
[0107] In step 1301, when determining the CSQF scheduling cycle information of the first node, execute step 1302; when determining the CSQF scheduling cycle information of non-first nodes on the transmission path, execute step 1303.
[0108] In step 1302, create a test packet corresponding to the first node, set the time stamp when the test packet is created as the reception time stamp of the test packet, and determine the CSQF scheduling cycle information of the first node based on the reception time stamp of the test packet and the transmission time stamp scheduled to send the test packet.
[0109] The determination of the CSQF scheduling cycle information of the first node in step 1302 may refer to the process shown in FIG. 5 above, which will not be repeated here.
[0110] In step 1303, create a test packet corresponding to a non-initial node, and based on the CSQF scheduling cycle information of each other transmission node in front of the non-initial node on the transmission path, specify the queue into which the test packet corresponding to the non-initial node enters when it reaches each other transmission node, and based on the current time, determine the transmission start time for sending the test packet corresponding to the non-initial node to the specified queue of the initial node. The specified queue is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the initial node. When the transmission start time is reached, send the test packet corresponding to the non-initial node to the specified queue of the initial node, obtain the reception timestamp of the non-initial node that received the test packet and the transmission timestamp of the non-initial node scheduled to send the test packet, and based on the reception timestamp and the transmission timestamp, determine the CSQF scheduling cycle information of the non-initial node.
[0111] In this embodiment, the queue into which it enters when reaching each specified other transmission node is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of each other transmission node.
[0112] Also, in this embodiment, the step of determining the transmission start time for sending the test packet corresponding to the non-initial node to the specified queue of the initial node based on the current time is similar to step 602 above, but here it is necessary to change the above T_start to the transmission start time of the test packet specified to enter the specified queue of the initial node. Other points are also similar and will not be repeated here.
[0113] In this embodiment, when the transmission start time is reached, after a test packet corresponding to a non-first node is sent to a designated queue of the first node, based on the CSQF scheduling cycle, when the CSQF scheduling cycle for scheduling the designated queue arrives at the first node, the first node schedules to send the test packet in the designated queue. According to the description of the embodiment shown in FIG. 6 above, the next hop of the first node, for example, the above-mentioned transmission node B, stores the received test packet in the queue corresponding to the RQ identifier in its CSQF scheduling cycle information according to the designation. Then, when the CSQF scheduling cycle of the queue arrives, it schedules to send the test packet in the queue. The same applies hereinafter. Finally, the test packet corresponding to the non-first node is sent to the non-first node. When the non-first node receives the test packet, it records the reception timestamp. Also, the non-first node stores the test packet in the corresponding queue and stores different test packets in different queues. After that, the non-first node schedules to send the test packet in the queue according to the CSQF scheduling cycle and records the transmission timestamp of the test packet. Then, after the first node obtains the reception timestamp of the non-first node that received the test packet and the transmission timestamp of the non-first node that was scheduled to send the test packet, based on the reception timestamp and the transmission timestamp, it determines the CSQF scheduling cycle information of the non-first node. Specifically, since the process shown in FIG. 5 can be referred to, the description is omitted here.
[0114] Up to this point, the process shown in FIG. 13 is completed.
[0115] Through the process shown in FIG. 13, the first node on the transmission path realizes the determination of the CSQF scheduling cycle information of each transmission node on the complete transmission path.
[0116] The method according to the embodiment of the present invention has been described above. Hereinafter, the apparatus according to the embodiment of the present invention will be described.
[0117] FIG. 14 is a structural diagram of an apparatus according to an embodiment of the present invention. The apparatus is executed by an SDN controller, for each transmission node on the transmission path of the deterministic network, a first creation unit for creating a test packet corresponding to the transmission node, when the transmission node is the first node on the transmission path, the test packet corresponding to the transmission node is transmitted to the transmission node, and the reception timestamp of the transmission node that has received the test packet and the transmission timestamp of the transmission node that has been scheduled to transmit the test packet are obtained, and based on the reception timestamp and the transmission timestamp, the CSQF scheduling cycle information of the transmission node is determined, when the transmission node is not the first node on the transmission path, based on the CSQF scheduling cycle information of another transmission node in front of the transmission node on the transmission path, when the test packet corresponding to the transmission node reaches another transmission node in front of the transmission node on the transmission path, it is controlled to enter the reception queue (RQ) of the other transmission node, and the reception timestamp of the transmission node that has received the test packet and the transmission timestamp of the transmission node that has been scheduled to transmit the test packet are obtained, and based on the reception timestamp and the transmission timestamp, a first determination unit for determining the CSQF scheduling cycle information of the transmission node is included.
[0118] Optionally, the total number N of test packets corresponding to the transmission node is the total number of queues realized by cycle-specified queuing and transfer CSQF that the transmission node has.
[0119] Optionally, the N test packets corresponding to the transmission node are respectively specified to enter the N queues of the transmission node.
[0120] Optionally, the step of determining the CSQF scheduling cycle information of the transmission node based on the received timestamp and the transmitted timestamp includes: Determining a first target test packet based on the transmitted timestamps of all test packets, wherein the transmitted timestamp of the first target test packet is later than the transmitted timestamps of other test packets, or the time difference between the transmitted timestamp and the received timestamp of the first target test packet is greater than the time differences between the transmitted timestamps and the received timestamps of other test packets; Determining the CSQF scheduling cycle information of the transmission node according to the principle that the transmitted timestamp of the test packet transmitted latest approximates the start time of the CSQF scheduling cycle based on the transmitted timestamp of the first target test packet.
[0121] Optionally, the step of determining the CSQF scheduling cycle information of the transmission node according to the principle that the transmitted timestamp of the test packet transmitted latest approximates the start time of the CSQF scheduling cycle based on the transmitted timestamp of the first target test packet includes: Determining a second target test packet based on the received timestamps of all test packets, wherein the received timestamp of the second target test packet is earlier than the received timestamps of other test packets; Determining a loop variable value Loop that satisfies t2A[p]>t1A[q]+Loop*T, where t2A[p] represents the transmitted timestamp of the first target test packet, t1A[q] represents the received timestamp of the second target test packet, and T represents the time length of one CSQF scheduling cycle; Determining the CSQF scheduling cycle information based on the transmission timestamp of the first target test packet, the reception timestamp of the second target test packet, and the Loop;
[0122] Optionally, the CSQF scheduling cycle information includes at least a cycle start time, a transmission queue (SQ) identifier, and an RQ identifier; The cycle start time is the start time of the target CSQF scheduling cycle in which the transmission node is located when receiving the second target test packet, and is represented by t2A[p] - Loop * T; The SQ identifier is used to indicate the queue identifier of the queue scheduled to be transmitted in the target CSQF scheduling cycle, and is represented by (p - 1 + N - Loop) mod N + 1, where p is the sequence number of the second target test packet; The RQ identifier is used to indicate the queue identifier of the queue scheduled to be transmitted in the next CSQF scheduling cycle of the target CSQF scheduling cycle, and is represented by (p + N - Loop) mod N + 1.
[0123] Optionally, based on the CSQF scheduling cycle information of other transmission nodes in front of the transmission node on the transmission path, when the test packet corresponding to the transmission node reaches other transmission nodes in front of the transmission node on the transmission path, the step of controlling to enter the receive queue (RQ) of the other transmission node is: Specifying the queue to enter when the test packet corresponding to the transmission node reaches each of the other transmission nodes based on the CSQF scheduling cycle information of each of the other transmission nodes in front of the transmission node on the transmission path, where the queue to enter when reaching the specified each of the other transmission nodes is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of each of the other transmission nodes; A step of determining a transmission start time for transmitting a test packet corresponding to the transmission node to the first node on the transmission path based on the current time, wherein the transmission start time is used to control the test packet corresponding to the transmission node to enter the designated queue of the first node, and the designated queue is a queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node, the step; Including a step of, when the transmission start time is reached, transmitting a test packet corresponding to the transmission node to the first node on the transmission path.
[0124] Optionally, in this embodiment, the determination unit further controls the time synchronization between all transmission nodes on the transmission path by performing time adjustment on at least one transmission node on the transmission path.
[0125] So far, the description of the structure of the device shown in FIG. 14 is completed.
[0126] FIG. 15 is a structural diagram of another device according to an embodiment of the present invention. The device is executed by the first node on the transmission path of the deterministic network, When determining the CSQF scheduling cycle of the first node, creating a test packet corresponding to the first node, and when determining the CSQF scheduling cycle of a non-first node on the transmission path, a second creation unit for creating a test packet corresponding to the non-first node; When determining the CSQF scheduling cycle of the first node, Using the time stamp when the test packet is created as the reception time stamp of the test packet, and determining the CSQF scheduling cycle information of the first node based on the reception time stamp of the test packet and the transmission time stamp scheduled to transmit the test packet; When determining the CSQF scheduling cycle of a non-first node on the transmission path, Based on the CSQF scheduling cycle information of each other transmission node before the non-first node on the transmission path, specify the queue into which the test packet corresponding to the non-first node enters when it reaches each other transmission node. The specified queue into which each other transmission node enters when reached is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of each other transmission node. Based on the current time, determine the transmission start time for transmitting the test packet corresponding to the non-first node to the specified queue of the first node. The transmission start time is used to control the test packet corresponding to the transmission node to enter the specified queue of the first node. The specified queue is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node. When the transmission start time is reached, transmit the test packet corresponding to the non-first node to the specified queue of the first node, obtain the reception timestamp of the non-first node that received the test packet and the transmission timestamp of the non-first node scheduled to transmit the test packet, and based on the reception timestamp and the transmission timestamp, a second determination unit for determining the CSQF scheduling cycle information of the non-first node.
[0127] So far, the description of the structure of the device shown in FIG. 15 is completed.
[0128] The embodiment of the present invention further provides the hardware structure of the device shown in FIG. 14 or FIG. 15. FIG. 16 is a structural diagram of an electronic device according to an embodiment of the present invention. As shown in FIG. 16, the hardware structure may include a processor and a machine-readable storage medium. The machine-readable storage medium stores machine-executable instructions executable by the processor, and the processor is used to execute the machine-executable instructions to implement the method disclosed in the above embodiment of the present invention.
[0129] Based on the same idea as the above method, an embodiment of the present invention further provides a machine-readable storage medium storing computer instructions, and when the computer instructions are executed by a processor, the method disclosed in the above embodiment of the present invention is implemented.
[0130] Exemplarily, the above machine-readable storage medium may be any electronic, magnetic, optical or other physical storage device, and can contain or store information such as executable instructions and data. For example, the machine-readable storage medium may be a random access memory (RAM), volatile memory, non-volatile memory, flash memory, storage drive (such as a hard drive), solid state drive, any storage disk (such as an optical disk, DVD, etc.), or similar storage media, or a combination thereof.
[0131] The system, apparatus, module or unit described in the above embodiments may specifically be implemented by a computer chip, an entity, or a product having some functions. A typical implementation device is a computer, and the specific form of the computer may be a personal computer, laptop computer, mobile phone, camera phone, smart phone, personal digital assistant, media player, navigation device, email transceiver device, game console, tablet, wearable device, or any combination of several of these devices.
[0132] For the convenience of description, when the above apparatus is described, it is divided into various units according to functions and described respectively. Of course, when implementing the present invention, it is also possible to implement the functions of each unit with the same or multiple software and / or hardware.
[0133] As will be understood by those skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an embodiment consisting only of hardware, an embodiment consisting only of software, or an embodiment combining software and hardware. Furthermore, embodiments of the present invention may also be in the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, magnetic disk memory, CD-ROM, optical memory, etc.) containing computer-usable program code.
[0134] The present invention will be described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and combinations of flows and / or blocks in the flowcharts and / or block diagrams, may be realized by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, such that the instructions executed by the processor of the computer or other programmable data processing device create an apparatus for realizing the functions specified in one or more flows of the flowchart and / or one or more blocks of the block diagram.
[0135] Alternatively, these computer program instructions may be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, such that the instructions stored in the computer-readable memory produce a product including an instruction apparatus for realizing the functions specified in one or more flows of the flowchart and / or one or more blocks of the block diagram.
[0136] These computer program instructions may be loaded onto a computer or other programmable data processing device, thereby causing a series of operational steps to be executed on the computer or other programmable device, resulting in processing implemented by the computer, and thus the instructions executed on the computer or other programmable device provide steps for realizing the functions specified in one or more flows of the flowchart and / or one or more blocks of the block diagram.
[0137] The above are only embodiments of the present invention and do not limit the present invention. For those skilled in the art, various modifications and changes are possible to the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principle scope of the present invention should all be included in the scope of the claims of the present invention.
Claims
1. A method for collecting cycle-specified queuing and forwarding (CSQF) scheduling cycles applicable to a deterministic network, which is executed by a software-defined network (SDN) controller, for each transmission node on the transmission path of the deterministic network, if the transmission node is the first node on the transmission path, create a test packet corresponding to the transmission node and send it to the transmission node, obtain the reception timestamp of the transmission node that received the test packet and the transmission timestamp scheduled to send the test packet, and based on the reception timestamp and the transmission timestamp, determine the CSQF scheduling cycle information of the transmission node, if the transmission node is not the first node on the transmission path, create a test packet corresponding to the transmission node, and based on the CSQF scheduling cycle information of another transmission node in front of the transmission node on the transmission path, when the test packet corresponding to the transmission node reaches another transmission node in front of the transmission node on the transmission path, control it to enter the receive queue (RQ) of the other transmission node, obtain the reception timestamp of the transmission node that received the test packet and the transmission timestamp of the transmission node scheduled to send the test packet, and based on the reception timestamp and the transmission timestamp, determine the CSQF scheduling cycle information of the transmission node, including the step of the step of determining the CSQF scheduling cycle information of the transmission node based on the reception timestamp and the transmission timestamp includes determining a first target test packet based on the transmission timestamps of all test packets, where the transmission timestamp of the first target test packet is later than the transmission timestamps of other test packets, or the time difference between the transmission timestamp and the reception timestamp of the first target test packet is greater than the time differences between the transmission timestamps and the reception timestamps of other test packets, the step of Based on the transmission timestamp of the first target test packet, determining the CSQF scheduling cycle information of the transmission node according to the principle that the transmission timestamp of the latest transmitted test packet approximates the start time of the CSQF scheduling cycle; The CSQF scheduling cycle information includes at least a cycle start time, a transmission queue (SQ) identifier, and a reception queue (RQ) identifier; The cycle start time is the start time of the target CSQF scheduling cycle in which the transmission node is located when receiving the second target test packet, and the reception timestamp of the second target test packet is earlier than the reception timestamps of other test packets; The SQ identifier is used to indicate the queue identifier of the queue scheduled to be transmitted in the target CSQF scheduling cycle; The RQ identifier is used to indicate the queue identifier of the queue scheduled to be transmitted in the next CSQF scheduling cycle of the target CSQF scheduling cycle; A method for collecting a CSQF scheduling cycle applied to a deterministic network, characterized in that. **Claim 2** The total number N of test packets corresponding to the transmission node is the total number of queues realized by CSQF that the transmission node has; The method according to claim 1, characterized in that. **Claim 3** The N test packets corresponding to the transmission node are respectively designated to enter the N queues of the transmission node; The method according to claim 2, characterized in that. **Claim 4** Based on the transmission timestamp of the first target test packet, the step of determining the CSQF scheduling cycle information of the transmission node according to the principle that the transmission timestamp of the latest transmitted test packet approximates the start time of the CSQF scheduling cycle is: Determining the second target test packet based on the reception timestamps of all test packets; Determining a loop variable value Loop that satisfies t2A[p] > t1A[q] + Loop * T, where t2A[p] represents the transmission timestamp of the first target test packet, t1A[q] represents the reception timestamp of the second target test packet, and T is the time duration of one CSQF scheduling cycle; Determining the CSQF scheduling cycle information based on the transmission timestamp of the first target test packet, the reception timestamp of the second target test packet, and the Loop; The method according to claim 1, characterized in that;
5. The cycle start time is represented by t2A[p] - Loop * T; The SQ identifier is represented by (p - 1 + N - Loop) mod N + 1, where p is the sequence number of the second target test packet; The RQ identifier is represented by (p + N - Loop) mod N + 1; The method according to claim 4, characterized in that;
6. Based on the CSQF scheduling cycle information of other transmission nodes in front of the transmission node on the transmission path, when the test packet corresponding to the transmission node reaches another transmission node in front of the transmission node on the transmission path, controlling it to enter the receive queue (RQ) of the other transmission node; Based on the CSQF scheduling cycle information of each other transmission node in front of the transmission node on the transmission path, specifying the queue to enter when the test packet corresponding to the transmission node reaches each other transmission node, where the queue to enter when reaching each other transmission node specified is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of each other transmission node; Determining a transmission start time for transmitting the test packet corresponding to the transmission node to the first node on the transmission path based on the current time, where the transmission start time is used to control the test packet corresponding to the transmission node to enter the specified queue of the first node, and the specified queue is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node; When the transmission start time is reached, transmitting a test packet corresponding to the transmission node to the first node on the transmission path. The method according to any one of claims 1 to 5, characterized in that.
7. Before executing the method, Further comprising the step of controlling time synchronization between all transmission nodes on the transmission path by performing time adjustment on at least one transmission node on the transmission path. The method according to claim 1, characterized in that.
8. A method for collecting a cycle-specified queuing and forwarding (CSQF) scheduling cycle applied to a deterministic network, which is executed by the first node on the transmission path of the deterministic network. When determining the CSQF scheduling cycle of the first node, Creating a test packet corresponding to the first node, using the time stamp when the test packet was created as the reception time stamp of the test packet, and based on the reception time stamp of the test packet and the transmission time stamp scheduled to transmit the test packet, determining the CSQF scheduling cycle information of the first node. When determining the CSQF scheduling cycle of a non-first node on the transmission path, Creating a test packet corresponding to the non-first node, and specifying a queue into which the test packet corresponding to the non-first node enters when it reaches each of the other transmission nodes preceding the non-first node on the transmission path, based on the CSQF scheduling cycle information of each of the other transmission nodes. The specified queue into which the test packet enters when it reaches each of the other transmission nodes is the queue corresponding to the reception queue (RQ) identifier in the CSQF scheduling cycle information of each of the other transmission nodes. Determining a transmission start time for transmitting the test packet corresponding to the non-first node to the specified queue of the first node based on the current time. The transmission start time is used to control the test packet corresponding to the transmission node to enter the specified queue of the first node. The specified queue is the queue corresponding to the RQ identifier in the CSQF scheduling cycle information of the first node. When the transmission start time is reached, a test packet corresponding to the non-first node is transmitted to a designated queue of the first node, a reception timestamp of the non-first node that has received the test packet and a transmission timestamp of the non-first node scheduled to transmit the test packet are obtained, and CSQF scheduling cycle information of the non-first node is determined based on the reception timestamp and the transmission timestamp. The step of determining CSQF scheduling cycle information of the first node or the non-first node is a step of determining a first target test packet based on transmission timestamps of all test packets, wherein the transmission timestamp of the first target test packet is later than those of other test packets, or the time difference between the transmission timestamp and the reception timestamp of the first target test packet is greater than the time differences between the transmission timestamps and the reception timestamps of other test packets. includes a step of determining CSQF scheduling cycle information of the first node or the non-first node according to the principle that the transmission timestamp of the test packet transmitted latest approximates the start time of the CSQF scheduling cycle based on the transmission timestamp of the first target test packet. The CSQF scheduling cycle information includes at least a cycle start time, a transmission queue (SQ) identifier, and a reception queue (RQ) identifier. The cycle start time is the start time of the target CSQF scheduling cycle in which the first node or the non-first node is located when the second target test packet is received, and the reception timestamp of the second target test packet is earlier than those of other test packets. The SQ identifier is used to indicate the queue identifier of the queue scheduled to be transmitted in the target CSQF scheduling cycle. The RQ identifier is used to indicate a queue identifier of a queue scheduled to be transmitted in the next CSQF scheduling cycle of the target CSQF scheduling cycle. A method for collecting CSQF scheduling cycles applied to a deterministic network, characterized by this. **Claim 9** An electronic device including a processor and a machine-readable storage medium. Machine-executable instructions executable by the processor are stored in the machine-readable storage medium. The processor is used to execute machine-executable instructions so as to implement the method according to any one of claims 1 to 8. An electronic device characterized by this.
Citation Information
Patent Citations
Method and apparatus for determining sending period in deterministic IP
EP4016942A1
Field control system
JP2009059182A
In situ flow detection method and apparatus
JP2023517574A
Packet Sending Method, Network Node, and System
US20210058322A1
Control device, switch device and methods
WO2021014180A1