Traffic scheduling method and device, equipment, storage medium and computer program
By allocating transit nodes to data packets and using different time slots for data transmission, the problem of low data transmission efficiency in optical switching networks is solved, and more efficient data transmission and lower latency are achieved.
Patent Information
- Application Number
- CN202311433610.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-28
- Publication Date
- 2025-04-29
AI Technical Summary
In existing optical switching networks, data transmission efficiency is low, resulting in a long waiting time for data nodes, and congestion and packet loss are prone to occur when there are many cached data packets.
By allocating transit nodes to the data packets and using different time slots for data transmission, we ensure that the data packets can be sent out in time within different time slots to avoid cache overflow.
Improves the efficiency of data transmission, reduces end-to-end delay, and avoids packet congestion and packet loss.
Smart Images

Figure CN119906915A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of optical communication technology, and in particular to a traffic scheduling method, device, equipment, storage medium and computer program. Background Art
[0002] With the continuous development of information technology, especially the advancement of Internet technology, more and more businesses have put forward higher requirements for data transmission, processing, storage and other capabilities. Due to the advantages of low latency, low power consumption and reconfiguration, more and more large-scale data centers are using optical switching networks to realize data transmission between data nodes to meet business needs.
[0003] Generally, an optical switching network switches optical signals through an optical switching device to achieve data transmission between data nodes. The optical switching device can be divided into an optical switching device based on an optical switch, an optical switching device based on a spectroscopic grating, and the like. Taking an optical switching device based on a spectroscopic grating as an example, the optical switching device includes a plurality of input ports and a plurality of output ports, wherein the plurality of input ports are used to connect to the sending ports of a plurality of data nodes, and the plurality of output ports are used to connect to the receiving ports of the plurality of data nodes. The plurality of input ports, the plurality of output ports and the plurality of wavelengths correspond one to one, that is, for any input port, optical signals of different wavelengths input from the input port can be output from different output ports. Since the port connection relationship between the data node and the optical switching device is usually fixed, the data node can perform data transmission with different data nodes by changing the wavelength of the optical signal.
[0004] In order to ensure the reliability of data transmission between data nodes, it is necessary to schedule the data transmitted between the data nodes, which is also called traffic scheduling. The related technology implements traffic scheduling through a synchronous round-robin method. In this method, each data node transmits data in units of a scheduling period, and each scheduling period includes multiple time slots, which correspond one-to-one to multiple wavelengths. The wavelengths of the optical signals sent by multiple data nodes in the same time slot are the same. In this case, for any data node, multiple data nodes, multiple time slots and multiple wavelengths are one-to-one corresponding. In this way, the data node transmits optical signals of corresponding wavelengths in corresponding time slots to achieve data transmission with corresponding data nodes. For example, if the first data node needs to send data to the second data node, the first data node determines the wavelength corresponding to the source input port and the destination output port as the target wavelength, the source input port is the input port in the optical switching device connected to the sending port of the first data node, and the destination output port is the output port in the optical switching device connected to the receiving port of the second data node. Then, the first data node sends an optical signal carrying the data in the time slot corresponding to the target wavelength, that is, the first data node needs to send an optical signal of the corresponding wavelength in the time slot corresponding to the second data node to achieve data transmission.
[0005] However, when the first data node needs to continuously send data to the second data node, according to the above method, the first data node can only transmit data in a certain time slot in the scheduling cycle. This will cause the data node to wait for a long time, thereby reducing the efficiency of data transmission. Moreover, when the first data node caches a large number of data packets, it will also cause a large number of data packets to be congested, and even packet loss. Summary of the invention
[0006] The present application provides a traffic scheduling method, device, equipment, storage medium and computer program, which can solve the problem of low data transmission efficiency in related technologies. The technical solution is as follows:
[0007] In a first aspect, a traffic scheduling method is provided, which is applied to a first node, wherein the first node needs to send a first data packet to a second node, wherein the first node and the second node are two different data nodes among a plurality of data nodes connected to an optical switching device, wherein the first node is a source node of the first data packet, and the second node is a destination node of the first data packet, and the plurality of data nodes transmit data in units of a scheduling period, wherein the scheduling period includes a plurality of time slots, and the method includes: determining a third node from the plurality of data nodes, wherein the third node is a transit node for the first data packet, and sending the first data packet to the third node in a first time slot among the plurality of time slots, so that the third node sends the first data packet to the second node, wherein the first time slot and the second time slot are different time slots, and the second time slot is a time slot among the plurality of time slots in which the first node transmits data to the second node.
[0008] It should be noted that the first time slot is a time slot in which the first node transmits data to the third node among multiple time slots included in the scheduling period.
[0009] When the first node needs to send the first data packet to the second node, the present application can allocate the corresponding transit node, i.e., the third node, for the data packet, and the first time slot and the second time slot are different time slots, that is, the time slot in which the first node transmits data to the second node is different from the time slot in which the first node transmits data to the third node. In this case, if the first time slot is earlier than the second time slot, compared with the method in which the first node can only transmit data in the second time slot, the first node can send the first data packet earlier, so that the transmission of the data packet cached in the first node is more timely, thereby improving the efficiency of sending data packets and avoiding the occurrence of data packet congestion and packet loss due to the large number of data packets cached by the first node. In addition, if the third node can send the data packet to the second node in time after receiving the data packet, and the time slot in which the third node transmits data to the second node is earlier than the second time slot, compared with the method in which the second node can only receive the data packet in the second time slot, the second node can receive the data packet whose source node is the first node earlier, thereby realizing the full utilization of each time slot in the scheduling cycle, effectively reducing the end-to-end delay, and improving the data transmission efficiency.
[0010] When the first node needs to send multiple data packets to the second node, it can determine the corresponding transfer nodes for the multiple data packets respectively, so that the multiple data packets are sent to the corresponding transfer nodes respectively. Since the transfer nodes corresponding to the multiple data packets are not the same data node, that is, the multiple data packets correspond to at least two different transfer nodes, the first node can send data in the time slots corresponding to at least two transfer nodes in the scheduling period. Compared with the method that can only transmit data in one time slot in the scheduling period, the method of the present application can ensure that the data packets cached in the first node are sent in time, thereby improving the efficiency of sending data packets and avoiding the occurrence of data packet congestion and packet loss due to the large number of data packets cached in the first node. After the first node sends the multiple data packets to the corresponding transfer nodes, the transfer node needs to send the multiple data packets to the second node. Since the time slots for data transmission between different data nodes and the same data node are different, that is, the time slot for data transmission between the first node and the second node is different from the time slot for data transmission between the transit node and the second node. Therefore, the at least two transit nodes can send data packets to the second node in different time slots of the scheduling period. Moreover, when there are many data packets, the first node can continue to send data packets to the transit node while the transit node sends data packets to the second node. In this way, full utilization of each time slot in the scheduling period can be achieved, end-to-end delay can be effectively reduced, and data transmission efficiency can be improved.
[0011] The first node determines at least one candidate data node from data nodes other than the first node and the second node in the plurality of data nodes, and determines a third node from the at least one candidate data node. For ease of description, the data nodes other than the first node and the second node in the plurality of data nodes are subsequently referred to as at least one transmittable node.
[0012] Optionally, data nodes other than the second node in the at least one transmittable node are directly determined as the at least one candidate data node.
[0013] In practical applications, before determining the at least one candidate data node, it is necessary to determine whether there is at least one data packet to be sent in the first node, and the data packet to be sent is a data packet that the first node needs to send to other data nodes before the first data packet. In the case that there is no data packet to be sent in the first node, at least one transmittable node is determined as the at least one candidate data node. In the case that it is determined that there is at least one data packet to be sent in the first node, at least one candidate data node is determined based on the receiving node of the at least one data packet to be sent and at least one transmittable node, and the receiving node is a transit node or a destination node of the corresponding data packet to be sent.
[0014] If there is no at least one data packet to be sent in the first node, it means that the first node has no data packet to be sent in the time slot corresponding to each transmittable data node, that is, the first node is in an idle state in the time slots except the second time slot in the scheduling period, so at least one transmittable node can be determined as the at least one candidate data node. If there is at least one data packet to be sent in the first node, it means that the first node is in a busy state in the time slot corresponding to the receiving node of the data packet to be sent, so it is necessary to determine at least one candidate data node based on the receiving node of the at least one data packet to be sent.
[0015] Optionally, any one of the at least one candidate data node is determined as the third node.
[0016] Optionally, the first node stores priorities corresponding to the plurality of data nodes, the priorities indicating the performance of the corresponding data nodes, and the data nodes with higher performance have higher priorities. In this case, the candidate node with the highest priority among the at least one candidate data node is used as the third node.
[0017] Optionally, the first node sends a forwarding request for a first data packet to a third node, where the forwarding request is used to request the third node to receive the first data packet, and receive a forwarding response for the first data packet sent by the third node, where the forwarding response indicates whether the third node agrees to receive the first data packet. If the forwarding response for the first data packet sent by the third node indicates that the third node agrees to receive the first data packet, then the first data packet is sent to the third node within the first time slot of the scheduling period.
[0018] Since the third node may have problems such as insufficient storage space or failure, in this case, if the first data packet is sent directly to the third node, it may cause the third node to be overloaded or cause packet loss. Therefore, the present application can send a transit request to the third node, and only send a data packet to the third node when the transit response indicates that the third node agrees to receive the first data packet. This can effectively avoid the occurrence of the above situation and improve the reliability and efficiency of data transmission.
[0019] The first node sends a forwarding request data packet to the third node, where the forwarding request data packet carries a forwarding request for the first data packet.
[0020] Optionally, the transfer request data packet includes an information field, the information field includes a transfer request subfield, and the transfer request subfield is used to carry the transfer request of the first data packet.
[0021] Optionally, the transfer request subfield includes a first sending node field, a transfer node field and a first source node field, wherein the first sending node field carries the identifier of the first node, the transfer node field carries the identifier of the third node, and the first source node field carries the identifier of the second node.
[0022] Optionally, the information field also includes a transfer request flag, and the transfer request flag indicates that the transfer request data packet carries the transfer request.
[0023] It should be noted that the transfer request flag may be located in the transfer request subfield, or may exist independently of the subfield in the information field.
[0024] Optionally, the forwarding request data packet is a second data packet, that is, the forwarding request of the first data packet is carried in the second data packet, and the second data packet is a data packet sent by the first node to the third node before the first data packet.
[0025] In actual applications, before the first data packet, there is a second data packet in the first node that needs to be sent to the third node. In this case, the transit request of the first data packet can be sent to the third node together with the second data packet. In this way, the sending efficiency of the transit request can be effectively improved and the timeliness of the data packet can be ensured.
[0026] Optionally, after receiving the forwarding request for the first data packet sent by the first node, the third node generates a forwarding response for the first data packet based on the memory information of the third node, and the forwarding response indicates whether the third node agrees to receive the first data packet, and then sends the forwarding response for the first data packet to the first node.
[0027] Optionally, if the forwarding response of the first data packet sent by the third node indicates that the third node does not agree to receive the first data packet, the forwarding node corresponding to the first data packet is re-determined to obtain the fourth node, and the forwarding request of the first data packet is re-sent to the fourth node.
[0028] If the transit response of the first data packet indicates that the third node does not agree to receive the first data packet, it means that the third node may have problems such as insufficient storage space or failure. In this case, the present application can re-determine the transit node for the first data packet to avoid the problem of the data packet being stranded at the first node and improve the efficiency of data transmission.
[0029] In actual applications, in addition to being the source node of the data packet, the first node can also serve as a transit node corresponding to other data packets. In this case, the first node can also receive a transit request for the third data packet sent by the fifth node, and the transit request instructs the first node to determine whether to agree to receive the third data packet. The first node is the transit node corresponding to the third data packet, and based on the memory information of the first node, a transit response for the third data packet is generated, and the transit response indicates whether the first node agrees to receive the third data packet, and sends a transit response for the third data packet to the fifth node.
[0030] Based on the memory information of the first node, determine whether the first node is overloaded. When the first node is not overloaded, the forwarding response indicates that the first node agrees to receive the third data packet. When the first node is overloaded, the forwarding response indicates that the first node does not agree to receive the third data packet.
[0031] The implementation process of determining whether the first node is overloaded based on the memory information of the first node includes: determining a margin value of the first memory node based on the memory information of the first node, the margin value indicating the remaining status of the first node memory, and a larger margin value indicates more remaining storage space in the first node memory; if the margin value is greater than a margin threshold, it is determined that the first node is not overloaded; if the margin value is less than or equal to the margin threshold, it is determined that the first node is overloaded.
[0032] If the margin value of the first node is greater than the margin threshold, it means that there is still a lot of remaining storage space in the first node, so it can be determined that the first node is not overloaded. If the margin value of the first node is less than or equal to the margin threshold, it means that most of the storage space in the first node has been occupied, so it can be determined that the first node is overloaded.
[0033] The first node sends a forwarding response data packet to the fifth node, where the forwarding response data packet carries a forwarding response of the third data packet.
[0034] Optionally, the transfer response data packet includes an information field, the information field includes a transfer response subfield, and the transfer response subfield is used to carry the transfer response of the third data packet.
[0035] Optionally, the forwarding response subfield includes a second sending node field, a second receiving node field, and forwarding response information, wherein the second sending node field carries the identifier of the first node, the second receiving node field carries the identifier of the fifth node, and the forwarding response information indicates whether the first node agrees to receive the third data packet.
[0036] Optionally, the information field also includes a transfer response flag, and the transfer response flag indicates that the transfer response data packet carries the transfer response.
[0037] It should be noted that the transfer response flag bit may be located in the transfer response subfield, or may exist independently of the subfield in the information field.
[0038] Optionally, the forwarding response data packet is a fourth data packet, that is, the forwarding response of the third data packet is carried in a fourth data packet, and the fourth data packet is a data packet sent by the first node to the fifth node.
[0039] In actual applications, before the third data packet, there is a fourth data packet in the first node that needs to be sent to the fifth node. In this case, the transit response of the third data packet can be sent to the fifth node together with the fourth data packet. In this way, the sending efficiency of the transit response can be effectively improved and the timeliness of the data packet can be ensured.
[0040] In actual applications, the transfer request data packet may also include a transfer response subfield, and the transfer response data packet may also include a transfer request subfield, that is, the transfer response subfield and the transfer request subfield may be located in the same data packet.
[0041] Optionally, the fifth node can be the above-mentioned third node, that is, before the first node sends the transit request of the first data packet to the third node, the first node can receive the transit request of the third data packet sent by the third node. In this case, the first node can send the transit request of the first data packet and the transit response of the third data packet to the third node at the same time, or send the transit request of the first data packet and the transit response of the third data packet to the third node respectively.
[0042] It should be noted that if the first node sends the forwarding request of the first data packet and the forwarding response of the third data packet to the third node at the same time, the forwarding request data packet and the forwarding response data packet are the same data packet, or the forwarding response subfield and the forwarding request subfield are located in the same data packet. In other words, a data packet can carry not only valid data that needs to be sent to the third node, but also forwarding response and forwarding request. In this way, full use of the data packet fields can be achieved, data transmission efficiency can be significantly improved, and the timeliness of the data packet can be ensured.
[0043] In a second aspect, a traffic scheduling device is provided, which has the function of implementing the traffic scheduling method in the first aspect. The traffic scheduling device includes at least one module, which is used to implement the traffic scheduling method provided in the first aspect.
[0044] According to a third aspect, a traffic scheduling system is provided, which includes an optical switching device and multiple data nodes, wherein the multiple data nodes are connected to the optical switching device, and the multiple data nodes transmit data in units of a scheduling period, wherein the scheduling period includes multiple time slots, and the multiple data nodes include a first node, a second node, and a third node, wherein the first node sends a first data packet to the second node through the third node according to the traffic scheduling method in the first aspect.
[0045] In a fourth aspect, a data node is provided, the data node comprising a processor, and the processor is configured to execute the traffic scheduling method described in the first aspect.
[0046] Optionally, the data node also includes a memory, which is used to store a computer program or related data for executing the traffic scheduling method provided in the first aspect above, and the processor is configured to execute the computer program or related data stored in the memory to implement the traffic scheduling method described in the first aspect above.
[0047] Optionally, the data node may further include a communication bus, and the communication bus is used to establish a connection between the processor and the memory.
[0048] In a fifth aspect, a computer-readable storage medium is provided, wherein the storage medium stores instructions, and when the instructions are executed on a computer, the computer executes the steps of the traffic scheduling method described in the first aspect.
[0049] In a sixth aspect, a computer program product comprising instructions is provided, and when the instructions are executed on a computer, the computer executes the steps of the traffic scheduling method described in the first aspect. In other words, a computer program is provided, and when the computer program is executed on a computer, the computer executes the steps of the traffic scheduling method described in the first aspect.
[0050] The technical effects obtained in the above-mentioned second to sixth aspects are similar to the technical effects obtained by the corresponding technical means in the first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0051] Figure 1 is a schematic diagram of an optical switching device provided in an embodiment of the present application;
[0052] Figure 2 is a schematic diagram of another optical switching device provided in an embodiment of the present application;
[0053] Figure 3 This is a schematic diagram of a data node 1 performing data transmission provided in an embodiment of the present application;
[0054] Figure 4 It is a schematic diagram of an implementation environment provided by an embodiment of the present application;
[0055] Figure 5 is a flow chart of a traffic scheduling method provided in an embodiment of the present application;
[0056] Figure 6 is a schematic diagram of a transfer request data packet provided in an embodiment of the present application;
[0057] Figure 7 is a schematic diagram of a transfer request subfield provided in an embodiment of the present application;
[0058] Figure 8 is a schematic diagram of a transfer response data packet provided in an embodiment of the present application;
[0059] Fig. 9 is a schematic diagram of a transfer response subfield provided in an embodiment of the present application;
[0060] Fig.10 is a schematic diagram of a fourth data packet provided in an embodiment of the present application;
[0061] Fig.11 is a schematic diagram of data transmission provided by an embodiment of the present application;
[0062] Fig.12 is a flow chart of another traffic scheduling method provided in an embodiment of the present application;
[0063] Fig.13 It is a structural schematic diagram of a flow scheduling device provided in an embodiment of the present application;
[0064] Fig.14 It is a structural diagram of a data node provided in an embodiment of the present application. DETAILED DESCRIPTION
[0065] In order to make the objectives, technical solutions and advantages of the embodiments of the present application clearer, the implementation methods of the present application will be further described in detail below in conjunction with the accompanying drawings.
[0066] For ease of understanding, before explaining in detail the traffic scheduling method provided in the embodiment of the present application, the application scenarios and implementation environment involved in the embodiment of the present application are first introduced.
[0067] First, the application scenarios involved in the embodiments of the present application are introduced.
[0068] With the continuous development of information technology, especially the advancement of Internet technology, more and more businesses have put forward higher requirements for data transmission, processing, storage and other capabilities. Due to the advantages of optical switching networks such as low latency, low power consumption, and reconfiguration, more and more large-scale data centers are using optical switching networks to achieve data transmission between data nodes to meet business needs. Usually, optical switching networks use optical switching equipment to switch optical signals to achieve data transmission between data nodes. The optical switching equipment can be divided into optical switching equipment based on optical switches, optical switching equipment based on splitter gratings, and so on. Please refer to Figure 1 , Figure 1 is a schematic diagram of an optical switching device provided in an embodiment of the present application, the optical switching device includes a plurality of input ports ( Figure 1 In the figure, four input ports are used to schematically represent the multiple input ports) and the multiple output ports ( Figure 1 The plurality of output ports are schematically represented by four output ports, and the plurality of input ports are used to communicate with the plurality of data nodes ( Figure 1 In the figure, four data nodes are used to schematically represent the sending port connection of the multiple data nodes), and the multiple output ports are used to connect with the receiving ports of the multiple data nodes.
[0069] In order to ensure the reliability of data transmission between data nodes, it is necessary to schedule the data transmitted between the data nodes, which is also called traffic scheduling. In optical switching equipment based on optical switches, the traffic generated by each data node is generally scheduled by a centralized scheduling method. That is, if the first data node needs to send data to the second data node, the first data node needs to first send a switching request to the centralized controller, and the switching request instructs the centralized controller to control the optical switch to switch the optical signal to establish a data transmission channel between the first data node and the second data node. The centralized controller determines whether to establish a data transmission channel between the first data node and the second data node based on the scheduling algorithm. If the centralized controller determines to establish a data transmission channel between the first data node and the second data node, it controls the optical switch to switch the optical signal and sends a successful switching message to the first data node. If the centralized controller does not establish a data transmission channel between the first data node and the second data node, it sends a switching failure message to the first data node.
[0070] However, in the above centralized scheduling method, as the scale of data nodes increases (also known as the increase in the number), the complexity of the scheduling algorithm will also increase sharply, thereby greatly increasing the design cost of the scheduling algorithm. In addition, this method will also make the time from disconnection to reconnection of any two data nodes uncontrollable, thereby reducing the timeliness of data transmission.
[0071] In an optical switching device based on a beam splitter grating, the multiple input ports, the multiple output ports and the multiple wavelengths of the optical switching device correspond one to one, that is, for any input port, optical signals of different wavelengths input from the input port can be output from different output ports. Since the port connection relationship between a data node and an optical switching device is usually fixed, for any data node, multiple data nodes correspond one to one with multiple wavelengths, and therefore, a data node can perform data transmission with different data nodes by changing the wavelength of the optical signal.
[0072] For example, see Figure 2 , taking input port 1 as an example, an optical signal with a wavelength of λ1 input from the input port 1 can be output from output port 1, an optical signal with a wavelength of λ2 input from the input port 1 can be output from output port 2, an optical signal with a wavelength of λ3 input from the input port 1 can be output from output port 3, and an optical signal with a wavelength of λ4 input from the input port 1 can be output from output port 4. In this case, since the transmitting port of the first data node is connected to input port 1, the data node 1 can transmit data with the data node 2 by transmitting an optical signal with a wavelength of λ2, the data node 1 can transmit data with the data node 3 by transmitting an optical signal with a wavelength of λ3, and the data node 1 can transmit data with the data node 4 by transmitting an optical signal with a wavelength of λ4.
[0073] In order to solve the problems caused by the above scheduling algorithm, the optical switching device based on the optical splitter grating realizes traffic scheduling through a synchronous round-robin method. In this method, each data node performs data transmission in units of a scheduling cycle, and each scheduling cycle includes multiple time slots, which correspond one-to-one to multiple wavelengths, and the wavelengths of the optical signals sent by multiple data nodes in the same time slot are the same. In this case, for any data node, multiple data nodes, multiple time slots and multiple wavelengths correspond one-to-one, so that the data node realizes data transmission with the corresponding data node by sending an optical signal of the corresponding wavelength in the corresponding time slot.
[0074] If the first data node needs to send data to the second data node, the first data node determines the wavelength corresponding to the source input port and the destination output port as the target wavelength, the source input port is the input port connected to the sending port of the first data node in the optical switching device, and the destination output port is the output port connected to the receiving port of the second data node in the optical switching device, and then the first data node sends the optical signal carrying the data in the time slot corresponding to the target wavelength. That is, the first data node needs to send the optical signal of the wavelength corresponding to the second data node in the time slot corresponding to the second data node to achieve data transmission.
[0075] However, when the first data node needs to continuously send data to the second data node, according to the above method, the first data node can only transmit data in the time slot corresponding to the second data node in the scheduling period, that is, transmit data in one time slot in the scheduling period, which will cause the first data node to be in a waiting state in other time slots, making the waiting time of the data node longer, thereby reducing the efficiency of data transmission. Moreover, when there are many data packets cached in the first data node, it will also cause a large number of data packets to be congested, and even packet loss.
[0076] For example, see Figure 3 If data node 1 needs to continuously send data packets to data node 3, data node 1 can only transmit data in the time slot corresponding to data node 3, and data node 1 is in a waiting state in other time slots of the scheduling cycle, so that a large number of data packets that need to be sent to data node 3 are accumulated in data node 1. In this case, if data node 1 continues to generate new data packets, when the cache space of data node 1 is insufficient, packet loss will occur.
[0077] Based on this, the embodiment of the present application provides a traffic scheduling method. When the first node needs to send the first data packet to the second node, the corresponding transit node, i.e., the third node, can be allocated to the data packet, and the first time slot and the second time slot are different time slots, that is, the time slot in which the first node transmits data to the second node is different from the time slot in which the first node transmits data to the third node. In this case, if the first time slot is earlier than the second time slot, compared with the method in which the first node can only transmit data in the second time slot, the first node can send the first data packet earlier, so that the transmission of the data packet cached in the first node is more timely, thereby improving the efficiency of sending the data packet, avoiding the occurrence of data packet congestion and packet loss due to the large number of data packets cached by the first node. In addition, if the third node can send the data packet to the second node in time after receiving the data packet, and the time slot in which the third node transmits data to the second node is earlier than the second time slot, compared with the method in which the second node can only receive the data packet in the second time slot, the second node can receive the data packet whose source node is the first node earlier, thereby realizing the full utilization of each time slot in the scheduling cycle, effectively reducing the end-to-end delay, and improving the data transmission efficiency.
[0078] When the first node needs to send multiple data packets to the second node, it can determine the corresponding transfer nodes for the multiple data packets respectively, so that the multiple data packets are sent to the corresponding transfer nodes respectively. Since the transfer nodes corresponding to the multiple data packets are not the same data node, that is, the multiple data packets correspond to at least two different transfer nodes, the first node can send data in the time slots corresponding to at least two transfer nodes in the scheduling period. Compared with the method that can only transmit data in one time slot in the scheduling period, the method of the embodiment of the present application can ensure that the data packets cached in the first node are sent in time, thereby improving the efficiency of sending data packets and avoiding the occurrence of data packet congestion and packet loss due to the large number of data packets cached by the first node. After the first node sends the multiple data packets to the corresponding transfer nodes, the transfer node needs to send the multiple data packets to the second node. Since the time slots for data transmission between different data nodes and the same data node are different, that is, the time slot for data transmission between the first node and the second node is different from the time slot for data transmission between the transit node and the second node. Therefore, the at least two transit nodes can send data packets to the second node in different time slots of the scheduling period. Moreover, when there are many data packets, the first node can continue to send data packets to the transit node while the transit node sends data packets to the second node. In this way, full utilization of each time slot in the scheduling period can be achieved, end-to-end delay can be effectively reduced, and data transmission efficiency can be improved.
[0079] Secondly, the implementation environment involved in the embodiments of the present application is introduced.
[0080] Please refer to Figure 4 , Figure 4 01 is a schematic diagram of an implementation environment provided by an embodiment of the present application. The implementation environment includes an optical switching device 01 and multiple data nodes 02 ( Figure 1 4 data nodes are used to schematically represent the multiple data nodes), the optical switching device includes multiple input ports ( Figure 1 In the figure, four input ports are used to schematically represent the multiple input ports) and the multiple output ports ( Figure 1 The plurality of output ports are schematically represented by four output ports in the figure), the plurality of input ports are used to connect to the sending ports of the plurality of data nodes, and the plurality of output ports are used to connect to the receiving ports of the plurality of data nodes. The plurality of data nodes perform data transmission in units of a scheduling period, the scheduling period includes a plurality of time slots, and the data node transmits an optical signal in the corresponding time slot to realize data transmission with the corresponding data node.
[0081] The above-mentioned multiple data nodes include a first node and a second node, the first node and the second node are two different data nodes, the first node needs to send a first data packet to the second node, the first node is the source node of the first data packet, and the second node is the destination node of the first data packet. In this case, a third node is determined from the multiple data nodes, the third node is a transit node for the first data packet, and the first data packet is sent to the third node in a first time slot among multiple time slots included in the scheduling period, so that the third node sends the first data packet to the second node, the first time slot and the second time slot are different time slots, and the second time slot is a time slot among multiple time slots for the first node to transmit data to the second node.
[0082] In some embodiments, the optical switching device may be an optical switch-based optical switching device, a grating-based optical switching device, etc. The grating-based optical switching device may be an arrayed waveguide grating router (AWGR), a wavelength selective switch (WSS), etc., which is not limited in the embodiments of the present application.
[0083] Optionally, the optical switching device is an optical switching device based on a splitter grating, and multiple data nodes, multiple time slots and multiple wavelengths are one-to-one corresponding. In this case, the data node needs to send an optical signal of the corresponding wavelength in the corresponding time slot to realize data transmission with the corresponding data node.
[0084] Optionally, the optical switching device is an optical switching device based on an optical switch, and multiple data nodes and multiple time slots are one-to-one corresponding. In this case, the data node does not need to change the wavelength of the optical signal and only needs to send the optical signal carrying the data in the corresponding time slot. The optical switch in the optical switching device can switch the state in each time slot of the scheduling cycle, so that each data node can transmit data with different data nodes in different time slots.
[0085] The above-mentioned data node can be an independent server, or a server cluster or distributed system composed of multiple physical servers. It can also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms, or a cloud computing service center. It can also be a virtual machine, a physical machine, a container, etc., which is not limited to the embodiments of the present application.
[0086] Those skilled in the art should understand that the above-mentioned optical switching equipment and data nodes are only examples, and other existing or future optical switching equipment and data nodes, if applicable to the embodiments of the present application, should also be included in the protection scope of the embodiments of the present application and are included here by reference.
[0087] It should be noted that the application scenarios and implementation environments described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. A person of ordinary skill in the art can appreciate that with the evolution of technology and the emergence of new application scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0088] Next, the traffic scheduling method provided in the embodiment of the present application is explained in detail.
[0089] Figure 5 This is a flow chart of a traffic scheduling method provided by an embodiment of the present application. The method is applied to a first node. The first node needs to send a first data packet to a second node. The first node and the second node are two different data nodes among multiple data nodes connected to an optical switching device. The first node is the source node of the first data packet, and the second node is the destination node of the first data packet. The multiple data nodes perform data transmission in units of a scheduling period, and the scheduling period includes multiple time slots. Please refer to Figure 5 , the method comprises the following steps.
[0090] Step 501: Determine a third node from a plurality of data nodes, where the third node is a transit node for a first data packet.
[0091] In some embodiments, the first node determines at least one candidate data node from data nodes other than the first node and the second node in the plurality of data nodes, and determines the third node from the at least one candidate data node. For ease of description, the data nodes other than the first node and the second node in the plurality of data nodes are subsequently referred to as at least one transmittable node.
[0092] Optionally, data nodes other than the second node in the at least one transmittable node are directly determined as the at least one candidate data node.
[0093] In practical applications, before determining the at least one candidate data node, it is necessary to determine whether there is at least one data packet to be sent in the first node, and the data packet to be sent is a data packet that the first node needs to send to other data nodes before the first data packet. In the case that there is no data packet to be sent in the first node, at least one transmittable node is determined as the at least one candidate data node. In the case that it is determined that there is at least one data packet to be sent in the first node, at least one candidate data node is determined based on the receiving node of the at least one data packet to be sent and at least one transmittable node, and the receiving node is a transit node or a destination node of the corresponding data packet to be sent.
[0094] If there is no at least one data packet to be sent in the first node, it means that the first node has no data packet to be sent in the time slot corresponding to each transmittable data node, that is, the first node is in an idle state in the time slots except the second time slot in the scheduling period, so at least one transmittable node can be determined as the at least one candidate data node. If there is at least one data packet to be sent in the first node, it means that the first node is in a busy state in the time slot corresponding to the receiving node of the data packet to be sent, so it is necessary to determine at least one candidate data node based on the receiving node of the at least one data packet to be sent.
[0095] In some embodiments, for any one of the at least one transmittable node, the number of data packets to be sent whose receiving node is the transmittable node in the at least one transmittable data packet is determined as the first number corresponding to the transmittable node, and if the first number corresponding to the transmittable node is greater than or equal to the first threshold, the transmittable node is not determined as a candidate data node. If the first number corresponding to the transmittable node is less than the first threshold, the transmittable node is determined as a candidate data node. Each transmittable node is processed in the same manner to determine at least one candidate data node.
[0096] If the first number of the transmittable node is greater than or equal to the first threshold, it means that the first node needs to send a large number of data packets in the time slot corresponding to the transmittable node, and the first node is relatively busy in the time slot corresponding to the transmittable node. Therefore, the transmittable node is not determined as a candidate data node. If the first number corresponding to the transmittable node is less than the first threshold, it means that the first node needs to send a small number of data packets in the time slot corresponding to the transmittable node, and the first node is relatively idle in the time slot corresponding to the transmittable node. Therefore, the transmittable node can be determined as a candidate data node.
[0097] The first threshold is set in advance and can be modified according to different requirements in different situations. For example, the first threshold can be set to 3. In addition, the first threshold can be adjusted according to different requirements in different situations.
[0098] It should be noted that, in the case where there is at least one data packet to be sent in the first node, the at least one data packet to be sent can be stored in the cache of the first node. For example, the cache in the first node is divided into at least one sub-cache, and the at least one sub-cache corresponds to at least one transmittable node one by one, and each sub-cache corresponds to a virtual output queue (VOQ). The at least one data packet to be sent is stored in the sub-cache corresponding to the corresponding receiving node, and queued in the corresponding VOQ waiting to be sent.
[0099] In some embodiments, any one of the at least one candidate data node is determined as the third node. In other embodiments, the first node stores the priorities corresponding to the multiple data nodes, and the priorities indicate the performance of the corresponding data nodes, and the data nodes with higher performance have higher priorities. In this case, the candidate node with the highest priority among the at least one candidate data node is used as the third node. Of course, the third node can also be determined from the at least one candidate data node in other ways, and the embodiments of the present application are not limited to this.
[0100] Step 502: In the first time slot among the multiple time slots included in the scheduling period, a first data packet is sent to a third node so that the third node sends the first data packet to the second node, the first time slot and the second time slot are different time slots, and the second time slot is a time slot among the multiple time slots for transmitting data from the first node to the second node.
[0101] It should be noted that the first time slot is a time slot in which the first node transmits data to the third node among multiple time slots included in the scheduling period.
[0102] In some embodiments, the first node may directly send the first data packet to the third node in the first time slot of multiple time slots included in the scheduling period. In other embodiments, the first node sends a forwarding request for the first data packet to the third node, the forwarding request is used to request the third node to receive the first data packet, receive a forwarding response for the first data packet sent by the third node, the forwarding response indicates whether the third node agrees to receive the first data packet, and if the forwarding response for the first data packet sent by the third node indicates that the third node agrees to receive the first data packet, then the first data packet is sent to the third node in the first time slot of the scheduling period.
[0103] Since the third node may have problems such as insufficient storage space or failure, in this case, directly sending the first data packet to the third node may cause the third node to be overloaded or cause packet loss. Therefore, the embodiment of the present application can send a transit request to the third node, and only send a data packet to the third node when the transit response indicates that the third node agrees to receive the first data packet. This can effectively avoid the occurrence of the above situation and improve the reliability and efficiency of data transmission.
[0104] In some embodiments, the first node sends a forwarding request data packet to the third node, and the forwarding request data packet carries a forwarding request for the first data packet.
[0105] Optionally, the transfer request data packet includes an information field, the information field includes a transfer request subfield, and the transfer request subfield is used to carry the transfer request of the first data packet.
[0106] In some embodiments, the transfer request subfield includes a first sending node field, a transfer node field, and a first source node field, wherein the first sending node field carries the identifier of the first node, the transfer node field carries the identifier of the third node, and the first source node field carries the identifier of the second node.
[0107] It should be noted that the identifier of the first node is used to uniquely identify the first node. For example, the identifier of the first node may be information such as the address, number, name, etc. of the first node, or may be obtained by a combination of such information, which is not limited in the embodiments of the present application. Similarly, the identifier of the second node and the identifier of the third node are similar to the identifier of the first node. For detailed description, please refer to the relevant content above, which will not be repeated here.
[0108] For example, the size of the information field is 96 bits, wherein the size of the identifier of the first node is 4 bits, the size of the identifier of the second node is 2 bits, and the size of the identifier of the third node is 2 bits.
[0109] Optionally, the information field also includes a transfer request flag, and the transfer request flag indicates that the transfer request data packet carries the transfer request.
[0110] For example, the size of the transfer request flag is 2 bits. When the transfer request flag is 11, it indicates that the transfer request data packet carries the transfer request, and when the transfer request flag is 00, it indicates that the transfer request data packet does not carry the transfer request.
[0111] It should be noted that the transfer request flag can be located in the transfer request subfield, or it can exist independently of the subfield in the information field, and the implementation of this application does not limit this.
[0112] Optionally, the information field further includes at least one of a timestamp subfield, a phase compensation (PI code) subfield, a flow order subfield and a flow size subfield.
[0113] The timestamp subfield indicates the time taken by the data packet to be transmitted from the source node to the destination node, and the PIcode subfield indicates the phase value of the optical signal emitted by the first node, which is used for automatic phase compensation. For details about automatic phase compensation, please refer to the relevant technology, which will not be described here. The flow order subfield and the size of flow subfield are not defined yet and can be used in an extended manner.
[0114] For example, the size of the timestamp subfield is 24 bits, the size of the PI code subfield is 8 bits, and the size of the flow order subfield and the size of the size of flow subfield can both be 8 bits.
[0115] Optionally, the transfer request data packet also includes a data packet start field, which is also called a data packet frame header and indicates the beginning of the data packet.
[0116] The packet start field includes a preamble subfield and a start of frame (SOF) subfield. The preamble subfield is used to adjust the clock frequency of the data node. The packet start field of the relay request packet is a fixed value, for example, the fixed value may be H54AB54AB. Of course, in practical applications, the packet start field may also be other fixed values, which is not limited in the embodiments of the present application.
[0117] For example, the size of the data packet start field is 32 bits, of which the size of the preamble subfield is 30 bits and the size of the SOF subfield is 2 bits.
[0118] In some embodiments, the forwarding request data packet is a second data packet, that is, the forwarding request of the first data packet is carried in the second data packet, and the second data packet is a data packet sent by the first node to the third node before the first data packet.
[0119] The above-mentioned second data packet and first data packet may belong to the same business flow or may not belong to the same business flow. In other words, the source node of the first data packet and the source node of the second data packet may be the same or different, the destination node of the first data packet and the destination node of the second data packet may be the same or different, and the second data packet only needs to be a data packet sent by the first node to the third node before the first data packet.
[0120] In actual applications, before the first data packet, there is a second data packet in the first node that needs to be sent to the third node. In this case, the transit request of the first data packet can be sent to the third node together with the second data packet. In this way, the sending efficiency of the transit request can be effectively improved and the timeliness of the data packet can be ensured.
[0121] In the case where the transfer request data packet is the second data packet, the transfer request data packet also includes a second data field (also called a valid load), and the data field is used to write valid data to be transmitted by the first node to the third node.
[0122] It should be noted that the size of the second data field is related to the time slot and transmission rate of the scheduling period. The longer the time slot of the scheduling period and the faster the transmission rate, the larger the size of the second data field.
[0123] In some embodiments, the information field also includes a second source node field and a second destination node field, the second source node field carries an identifier of a second source node, the second source node is the source node of the second data packet, and the second destination node field carries an identifier of a second destination node, the second destination node is the destination node of the second data packet.
[0124] For example, the size of the identifier of the second source node is 4 bits, and the size of the identifier of the second destination node is 4 bits.
[0125] The identifier of the second source node and the identifier of the second destination node are similar to the identifier of the first node mentioned above. For detailed description, please refer to the relevant content above and will not be repeated here.
[0126] In some embodiments, the information field further includes a flow ID subfield, and the flow ID subfield is used to uniquely identify the second data packet.
[0127] For example, the size of the flow ID subfield is 16 bits.
[0128] Optionally, the highest bit of the flow ID field is an empty packet flag bit, which indicates that there is valid data in the data field of the transfer request data packet.
[0129] For example, when the empty packet flag is 0, it indicates that there is valid data in the data field of the transfer request data packet. When the transfer request flag is 1, it indicates that there is no valid data in the data field of the transfer request data packet.
[0130] It should be noted that, when the transfer request data packet is not the second data packet, that is, when the transfer request of the first data packet is not sent to the third node together with the second data packet, the empty packet flag in the transfer response data packet indicates that there is no valid data in the data field of the transfer request data packet, and the data field is empty. In addition, when the second data packet does not carry the transfer request of the first data packet, the second data packet may also include a transfer request flag, and the transfer request flag in the second data packet indicates that the second data packet does not carry the transfer request.
[0131] For example, see Figure 6 , Figure 6 The figure is a schematic diagram of a transfer request data packet, which includes a data packet start field, an information field and a data field. The data packet start field includes a preamble subfield and a frame start subfield. The information field includes a timestamp subfield, a phase compensation subfield, a transfer request subfield, an identifier of the second source node and an identifier of the second destination node, a flow identifier subfield, a flow order subfield and a flow size subfield. Please refer to Figure 7 The transfer request subfield includes the identifier of the first node, the identifier of the second node, the identifier of the third node, and a transfer request flag.
[0132] In practical applications, the transfer request data packet can be an Ethernet frame, which includes a data packet start field, a destination node field, a source node field and a first data field (also known as a payload). The second source node field carries the identifier of the source node of the data packet, and the destination node field carries the identifier of the destination node of the data packet. The data field is used to write valid data for transmission. Among them, the data packet start field includes a preamble subfield and a frame start symbol subfield. In this case, the above-mentioned second source node field is the source node field, the second destination node field is the destination node field, the above-mentioned timestamp subfield, phase compensation subfield, flow identification subfield, flow order subfield, flow size subfield, transfer request subfield and transfer request flag bit occupy a part of the field in the first data field, and the second data field is another part of the field in the first data field. That is to say, when the transfer request data packet is an Ethernet frame, the destination node field, source node field, and a part of the field in the first data field included in the Ethernet frame together constitute the above-mentioned information field. Of course, the transfer request data packet can also be other types of data frames, such as Internet protocol (IP) frames, user datagram protocol (UDP) frames, hypertext transfer protocol (HTTP) frames, transmission control protocol (TCP) frames, etc., which are not limited to the embodiments of the present application.
[0133] In some embodiments, after receiving a forwarding request for a first data packet sent by a first node, the third node generates a forwarding response for the first data packet based on memory information of the third node, and the forwarding response indicates whether the third node agrees to receive the first data packet, and then sends a forwarding response for the first data packet to the first node.
[0134] Among them, the detailed implementation method of the third node generating the transit response of the first data packet based on the memory information of the third node is similar to the implementation method of generating the transit response of the third data packet based on the memory information of the first node below. The details will be introduced later and will not be elaborated here.
[0135] Optionally, if the forwarding response of the first data packet sent by the third node indicates that the third node does not agree to receive the first data packet, the forwarding node corresponding to the first data packet is re-determined to obtain the fourth node, and the forwarding request of the first data packet is re-sent to the fourth node.
[0136] If the transit response of the first data packet indicates that the third node does not agree to receive the first data packet, it means that the third node may have problems such as insufficient storage space or failure. In this case, the embodiment of the present application can re-determine the transit node for the first data packet to avoid the problem of the data packet being retained at the first node, thereby improving the efficiency of data transmission.
[0137] In some embodiments, at least one candidate transfer node may be determined, and the fourth node corresponding to the first data packet may be determined from the at least one candidate transfer node.
[0138] Optionally, at least one candidate transit node may be determined from at least one transmittable node, or from data nodes other than the third node in at least one transmittable node.
[0139] The implementation method of determining at least one candidate transit node is similar to the implementation method of determining at least one candidate data node above, and the implementation method of determining the fourth node corresponding to the first data packet from the at least one candidate transit node is similar to the implementation method of determining the transit node corresponding to the data packet from at least one candidate data node above. For details, please refer to the relevant content above, and no further details will be given here.
[0140] In actual applications, in addition to being the source node of the data packet, the first node can also serve as a transit node corresponding to other data packets. In this case, the first node can also receive a transit request for the third data packet sent by the fifth node, and the transit request instructs the first node to determine whether to agree to receive the third data packet. The first node is the transit node corresponding to the third data packet, and based on the memory information of the first node, a transit response for the third data packet is generated, and the transit response indicates whether the first node agrees to receive the third data packet, and sends a transit response for the third data packet to the fifth node.
[0141] In some embodiments, based on the memory information of the first node, it is determined whether the first node is overloaded. When the first node is not overloaded, the relay response indicates that the first node agrees to receive the third data packet. When the first node is overloaded, the relay response indicates that the first node does not agree to receive the third data packet.
[0142] The implementation process of determining whether the first node is overloaded based on the memory information of the first node includes: determining a margin value of the first memory node based on the memory information of the first node, the margin value indicating the remaining status of the first node memory, and a larger margin value indicates more remaining storage space in the first node memory; if the margin value is greater than a margin threshold, it is determined that the first node is not overloaded; if the margin value is less than or equal to the margin threshold, it is determined that the first node is overloaded.
[0143] If the margin value of the first node is greater than the margin threshold, it means that there is still a lot of remaining storage space in the first node, so it can be determined that the first node is not overloaded. If the margin value of the first node is less than or equal to the margin threshold, it means that most of the storage space in the first node has been occupied, so it can be determined that the first node is overloaded.
[0144] Among them, the margin threshold is set in advance and can be modified according to different needs in different situations.
[0145] In some embodiments, the memory information of the first node includes the size of the total storage space of the first node and the size of the remaining storage space, and the margin value is the ratio of the remaining storage space to the total storage space. In this case, the margin threshold value ranges from 0 to 1. By way of example, the margin threshold value can be set to 0.4. In other embodiments, the memory information of the first node includes the size of the remaining storage space of the first node. In this case, the memory information of the first node can be directly determined as the margin value of the first node. At this time, the margin threshold value is the size of the memory. By way of example, the margin threshold value can be set to 200 megabytes.
[0146] In some embodiments, the first node sends a transit response data packet to the fifth node, where the transit response data packet carries a transit response of the third data packet.
[0147] Optionally, the transfer response data packet includes an information field, the information field includes a transfer response subfield, and the transfer response subfield is used to carry the transfer response of the third data packet.
[0148] In some embodiments, the forwarding response subfield includes a second sending node field, a second receiving node field, and forwarding response information, wherein the second sending node field carries the identifier of the first node, the second receiving node field carries the identifier of the fifth node, and the forwarding response information indicates whether the first node agrees to receive the third data packet.
[0149] It should be noted that the identification of the fifth node is similar to the identification of the first node mentioned above. For detailed introduction, please refer to the relevant content above, and no further details will be given here.
[0150] For example, the size of the information field is 96 bits, wherein the size of the identifier of the first node is 4 bits, the size of the identifier of the fifth node is 2 bits, and the size of the forwarding response information is 4 bits.
[0151] For example, when the forwarding response information is 1111, it indicates that the first node agrees to receive the third data packet, and when the forwarding response flag is 0000, it indicates that the first node does not agree to receive the third data packet.
[0152] Optionally, the information field also includes a transfer response flag, and the transfer response flag indicates that the transfer response data packet carries the transfer response.
[0153] For example, the size of the transfer response flag is 2 bits. When the transfer response flag is 11, it indicates that the transfer response data packet carries the transfer response, and when the transfer response flag is 00, it indicates that the transfer response data packet does not carry the transfer response.
[0154] It should be noted that the transfer response flag can be located in the transfer response subfield, or it can exist independently of the subfield in the information field, and the implementation of this application does not limit this.
[0155] Optionally, the information field further includes at least one of a timestamp subfield and a phase compensation subfield, a traffic order subfield and a traffic size subfield.
[0156] Optionally, the relay response data packet further includes a data packet start field. In some embodiments, the data packet start field includes a preamble subfield and a frame start symbol subfield.
[0157] In some embodiments, the forwarding response data packet is a fourth data packet, that is, the forwarding response of the third data packet is carried in the fourth data packet, and the fourth data packet is a data packet sent by the first node to the fifth node.
[0158] The above-mentioned fourth data packet and third data packet may belong to the same business flow or may not belong to the same business flow. In other words, the source node of the third data packet and the source node of the fourth data packet may be the same or different, the destination node of the third data packet and the destination node of the fourth data packet may be the same or different, and the fourth data packet only needs to be a data packet sent by the first node to the fifth node before the transit request response of the third data packet.
[0159] In actual applications, before the third data packet, there is a fourth data packet in the first node that needs to be sent to the fifth node. In this case, the transit response of the third data packet can be sent to the fifth node together with the fourth data packet. In this way, the sending efficiency of the transit response can be effectively improved and the timeliness of the data packet can be ensured.
[0160] In the case where the transfer response data packet is the fourth data packet, the transfer response data packet also includes a second data field (also called a valid load), and the second data field is used to write valid data to be transmitted by the first node to the fifth node.
[0161] In some embodiments, the information field also includes a fourth source node field and a fourth destination node field, the fourth source node field carries the identifier of a fourth source node, the fourth destination node field carries the identifier of a fourth destination node, the fourth source node is the source node of a fourth data packet, and the fourth destination node is the destination node of the fourth data packet.
[0162] For example, the size of the identifier of the fourth source node is 4 bits, and the size of the identifier of the fourth destination node is 4 bits.
[0163] The identifier of the fourth source node and the identifier of the fourth destination node are similar to the identifier of the first node mentioned above. For detailed introduction, please refer to the relevant content above, and no further details will be given here.
[0164] In some embodiments, the information field further includes a flow ID subfield, and the flow ID subfield is used to uniquely identify the fourth data packet.
[0165] Optionally, the highest bit of the flow ID field is an empty packet flag bit, which indicates that valid data exists in the data field of the transit response data packet.
[0166] For example, when the empty packet flag is 0, it indicates that there is valid data in the data field of the transfer response data packet. When the transfer response flag is 1, it indicates that there is no valid data in the data field of the transfer response data packet.
[0167] For example, see Figure 8 , Figure 8 Schematic diagram of a relay response data packet, which includes a data packet start field, an information field, and a second data field. The data packet start field includes a preamble subfield and a frame start subfield. The information field includes a timestamp subfield, a phase compensation subfield, a relay response subfield, an identifier of a fourth source node and an identifier of a fourth destination node, a flow identifier subfield, a flow order subfield, and a flow size subfield. Please refer to Fig. 9 The transfer response subfield includes a transfer response flag, an identifier of the first node, an identifier of the fifth node, and transfer response information.
[0168] It should be noted that, when the forwarding response data packet is not the fourth data packet, that is, when the forwarding response of the third data packet is not sent to the fifth node together with the fourth data packet, the empty packet flag in the forwarding response data packet indicates that there is no valid data in the data field of the forwarding response data packet, and the data field is empty. In addition, when the fourth data packet does not carry the forwarding response of the third data packet, the fourth data packet may also include a forwarding response flag, and the forwarding response flag in the fourth data packet indicates that the fourth data packet does not carry the forwarding response.
[0169] In practical applications, the relay response data packet may also be an Ethernet frame. In this case, the fourth source node field is the source node field, the fourth destination node field is the destination node field, the timestamp subfield, phase compensation subfield, flow identification subfield, flow order subfield, flow size subfield, relay response subfield and relay response flag bit occupy a part of the first data field, and the second data field is another part of the first data field. That is to say, when the relay response data packet is an Ethernet frame, the destination node field, source node field, and a part of the first data field included in the Ethernet frame together constitute the above-mentioned information field. Of course, the relay response data packet may also be other types of data frames, for example, IP frames, UDP frames, HTTP frames, TCP frames, etc., which are not limited in the embodiments of the present application.
[0170] In actual applications, the transit request data packet may also include a transit response subfield, and the above-mentioned transit response data packet may also include a transit request subfield, that is, the transit response subfield and the transit request subfield may be located in the same data packet, and the embodiment of the present application does not limit this.
[0171] It should be noted that if the transfer response subfield and the transfer request subfield can be located in the same data packet and the data packet is an Ethernet frame, the above-mentioned timestamp subfield, phase compensation subfield, flow identification subfield, traffic order subfield, traffic size subfield, transfer request subfield, transfer request flag, transfer response subfield and transfer response flag occupy a part of the first data field, and the second data field is another part of the first data field.
[0172] In some embodiments, the fifth node may be the third node mentioned above, that is, before the first node sends a transit request for the first data packet to the third node, the first node can receive a transit request for the third data packet sent by the third node. In this case, the first node can send the transit request for the first data packet and the transit response for the third data packet to the third node at the same time, or send the transit request for the first data packet and the transit response for the third data packet to the third node respectively.
[0173] It should be noted that if the first node sends the forwarding request of the first data packet and the forwarding response of the third data packet to the third node at the same time, the forwarding request data packet and the forwarding response data packet are the same data packet, or in other words, the forwarding response subfield and the forwarding request subfield are located in the same data packet. In other words, a data packet can carry not only valid data but also forwarding responses and forwarding requests, so that the data packet fields can be fully utilized, the data transmission efficiency can be significantly improved, and the timeliness of the data packet can be guaranteed.
[0174] In some embodiments, when the transit response data packet is the fourth data packet and the transit request data packet is the second data packet, the fourth data packet and the second data packet may also be the same data packet. In this case, the transit response of the third data packet and the transit request of the first data packet are both carried in the fourth data packet (second data packet).
[0175] For example, see Fig.10 , Fig.10 A schematic diagram of a fourth data packet (second data packet), the fourth data packet including a data packet start field, an information field and a second data field. The information field includes a timestamp subfield, a phase compensation subfield, a transfer request subfield, a transfer response subfield, an identifier of a fourth (second) source node and an identifier of a fourth (second) destination node, a flow identifier subfield, a flow order subfield and a flow size subfield. The transfer request subfield includes an identifier of the first node, an identifier of the second node and an identifier of the third node, and a transfer request flag. The transfer response subfield includes a transfer response flag, an identifier of the first node, an identifier of the third node and transfer response information.
[0176] Next, the traffic scheduling method provided in the embodiment of the present application will be further explained with examples.
[0177] If the scheduling cycle includes 4 time slots, namely time slot 1 to time slot 4, time slot 1 is earlier than time slot 2, time slot 2 is earlier than time slot 3, and time slot 3 is earlier than time slot 4. For the first node, the time slot for transmitting data to the third node is time slot 2 in the scheduling cycle, for the third node, the time slot for transmitting data to the first node is time slot 4 in the scheduling cycle, and for the third node, the time slot for transmitting data to the second node is time slot 2 in the scheduling cycle. In this case, if the first node needs to send the first data packet to the second node, and the first node has no data packet to be sent before the first data packet, the first node can determine the transfer node corresponding to the first data packet from at least one transmittable node, that is, the third node, and then send the transfer request of the first data packet to the third node in time slot 2 of the first scheduling cycle. After receiving the forwarding request of the first data packet, the third node can generate a forwarding response of the first data packet, which indicates that the third node agrees to receive the first data packet, and the third node has no data to be sent before the forwarding response of the first data packet. In this case, the third node can send the forwarding response of the first data packet to the first node in time slot 4 of the first scheduling cycle. Please refer to Fig.11After receiving the forwarding response of the first data packet, the first node can send the first data packet to the third node in time slot 2 of the second scheduling cycle. After receiving the first data packet, the third node can send the first data packet to the second node in time slot 2 of the third scheduling cycle.
[0178] Next, we will combine Fig.12 The traffic scheduling method provided in the embodiment of the present application is explained again.
[0179] Please refer to Fig.12 , in the case where the third node can be the above-mentioned third node, the third node can receive a group of data packets in any time slot of the scheduling period, the group of data packets includes the fourth data packet sent by the first node, and the fourth data packet includes the forwarding response of the third data packet and the forwarding request of the first data packet. The third node can determine whether the third node is overloaded according to the forwarding request of the first data packet, and then generate a forwarding response of the first data packet. If the third node is not overloaded, the forwarding response of the first data packet indicates that the third node agrees to receive the first data packet. If the third node is overloaded, the forwarding response of the first data packet indicates that the third node does not agree to receive the first data packet, and then sends the forwarding response of the first data packet to the first node. The third node can also parse the forwarding response of the third data packet from the fourth data packet. If the forwarding response of the third data packet indicates that the first node agrees to receive the third data packet, the third node sends the third data packet to the first node. If the transit response of the third data packet indicates that the first node does not agree to receive the third data packet, the third node redetermines the transit node corresponding to the third data packet, and sends a transit request for the third data packet to the redetermined transit node corresponding to the third data packet, and the third node can also parse out the valid data in the fourth data packet.
[0180] When the first node needs to send the first data packet to the second node, the corresponding transit node, i.e., the third node, can be allocated for the data packet, and the first time slot and the second time slot are different time slots, that is, the time slot in which the first node transmits data to the second node is different from the time slot in which the first node transmits data to the third node. In this case, if the first time slot is earlier than the second time slot, compared with the method in which the first node can only transmit data in the second time slot, the first node can send the first data packet earlier, so that the transmission of the data packet cached in the first node is more timely, thereby improving the efficiency of sending data packets, and avoiding the occurrence of data packet congestion and packet loss due to the large number of data packets cached by the first node. In addition, if the third node can send the data packet to the second node in time after receiving the data packet, and the time slot in which the third node transmits data to the second node is earlier than the second time slot, compared with the method in which the second node can only receive the data packet in the second time slot, the second node can receive the data packet whose source node is the first node earlier, thereby realizing the full utilization of each time slot in the scheduling cycle, effectively reducing the end-to-end delay, and improving the data transmission efficiency.
[0181] When the first node needs to send multiple data packets to the second node, it can determine the corresponding transfer nodes for the multiple data packets respectively, so that the multiple data packets are sent to the corresponding transfer nodes respectively. Since the transfer nodes corresponding to the multiple data packets are not the same data node, that is, the multiple data packets correspond to at least two different transfer nodes, the first node can send data in the time slots corresponding to at least two transfer nodes in the scheduling period. Compared with the method that can only transmit data in one time slot in the scheduling period, the method of the embodiment of the present application can ensure that the data packets cached in the first node are sent in time, thereby improving the efficiency of sending data packets and avoiding the occurrence of data packet congestion and packet loss due to the large number of data packets cached by the first node. After the first node sends the multiple data packets to the corresponding transfer nodes, the transfer node needs to send the multiple data packets to the second node. Since the time slots for data transmission between different data nodes and the same data node are different, that is, the time slot for data transmission between the first node and the second node is different from the time slot for data transmission between the transit node and the second node. Therefore, the at least two transit nodes can send data packets to the second node in different time slots of the scheduling period. Moreover, when there are many data packets, the first node can continue to send data packets to the transit node while the transit node sends data packets to the second node. In this way, full utilization of each time slot in the scheduling period can be achieved, end-to-end delay can be effectively reduced, and data transmission efficiency can be improved.
[0182] Fig.13is a schematic diagram of the structure of a traffic scheduling device provided in an embodiment of the present application. The traffic scheduling device can be implemented by software, hardware, or a combination of both to become part or all of a data node. Fig.13 The device includes: a determining module 1301 and a first sending module 1302.
[0183] The determination module 1301 is used to determine a third node from a plurality of data nodes, where the third node is a transit node for the first data packet. The detailed implementation process is referred to the corresponding contents in the above embodiments, which will not be described here.
[0184] The first sending module 1302 is used to send the first data packet to the third node in a first time slot among multiple time slots, so that the third node sends the first data packet to the second node, the first time slot and the second time slot are different time slots, and the second time slot is a time slot in the multiple time slots where the first node transmits data to the second node. The detailed implementation process refers to the corresponding content in the above embodiments, which will not be repeated here.
[0185] Optionally, the first sending module 1302 is specifically configured to:
[0186] Sending a forwarding request of the first data packet to the third node, where the forwarding request is used to request the third node to receive the first data packet;
[0187] receiving a forwarding response of the first data packet sent by the third node, the forwarding response indicating whether the third node agrees to receive the first data packet;
[0188] If the relay response indicates that the third node agrees to receive the first data packet, the first data packet is sent to the third node in the first time slot.
[0189] Optionally, the forwarding request of the first data packet is carried in a second data packet, and the second data packet is a data packet sent by the first node to the third node before the first data packet.
[0190] Optionally, the second data packet includes an information field, the information field includes a transfer request subfield, and the transfer request subfield is used to carry the transfer request of the first data packet.
[0191] Optionally, the information field further includes a transfer request flag, where the transfer request flag indicates that the second data packet carries a transfer request for the first data packet.
[0192] Optionally, the first sending module 1302 is specifically configured to:
[0193] If the forwarding response indicates that the third node does not agree to receive the first data packet, the forwarding node of the first data packet is re-determined to obtain the fourth node, and the forwarding request of the first data packet is re-sent to the fourth node.
[0194] Optionally, the device further comprises:
[0195] A first receiving module, configured to receive a forwarding request for a third data packet sent by a fifth node, wherein the forwarding request is used to request the first node to receive the third data packet, and the first node is a forwarding node for the third data packet;
[0196] A generating module, configured to generate a forwarding response of the third data packet based on the memory information of the first node, wherein the forwarding response indicates whether the first node agrees to receive the third data packet;
[0197] The second sending module is used to send a transfer response of the third data packet to the fifth node.
[0198] Optionally, the transit response indicates that the first node agrees to receive the third data packet;
[0199] The device also includes:
[0200] The second receiving module is used to receive a third data packet sent by the fifth node.
[0201] Optionally, when the memory information of the first node indicates that the first node is not overloaded, the transit response indicates that the first node agrees to receive the third data packet;
[0202] In a case where the memory information of the first node indicates that the first node is overloaded, the transit response indicates that the first node does not agree to receive the third data packet.
[0203] Optionally, the forwarding response of the third data packet is carried in a fourth data packet, and the fourth data packet is a data packet sent by the first node to the fifth node.
[0204] Optionally, the fourth data packet includes an information field, the information field includes a transit response subfield, and the transit response subfield is used to carry a transit response of the third data packet.
[0205] Optionally, the information field further includes a transit response flag bit, and the transit response flag bit indicates that the fourth data packet carries a transit response.
[0206] When the first node needs to send the first data packet to the second node, the corresponding transit node, i.e., the third node, can be allocated for the data packet, and the first time slot and the second time slot are different time slots, that is, the time slot in which the first node transmits data to the second node is different from the time slot in which the first node transmits data to the third node. In this case, if the first time slot is earlier than the second time slot, compared with the method in which the first node can only transmit data in the second time slot, the first node can send the first data packet earlier, so that the transmission of the data packet cached in the first node is more timely, thereby improving the efficiency of sending data packets, and avoiding the occurrence of data packet congestion and packet loss due to the large number of data packets cached by the first node. In addition, if the third node can send the data packet to the second node in time after receiving the data packet, and the time slot in which the third node transmits data to the second node is earlier than the second time slot, compared with the method in which the second node can only receive the data packet in the second time slot, the second node can receive the data packet whose source node is the first node earlier, thereby realizing the full utilization of each time slot in the scheduling cycle, effectively reducing the end-to-end delay, and improving the data transmission efficiency.
[0207] When the first node needs to send multiple data packets to the second node, it can determine the corresponding transfer nodes for the multiple data packets respectively, so that the multiple data packets are sent to the corresponding transfer nodes respectively. Since the transfer nodes corresponding to the multiple data packets are not the same data node, that is, the multiple data packets correspond to at least two different transfer nodes, the first node can send data in the time slots corresponding to at least two transfer nodes in the scheduling period. Compared with the method that can only transmit data in one time slot in the scheduling period, the method of the embodiment of the present application can ensure that the data packets cached in the first node are sent in time, thereby improving the efficiency of sending data packets and avoiding the occurrence of data packet congestion and packet loss due to the large number of data packets cached by the first node. After the first node sends the multiple data packets to the corresponding transfer nodes, the transfer node needs to send the multiple data packets to the second node. Since the time slots for data transmission between different data nodes and the same data node are different, that is, the time slot for data transmission between the first node and the second node is different from the time slot for data transmission between the transit node and the second node. Therefore, the at least two transit nodes can send data packets to the second node in different time slots of the scheduling period. Moreover, when there are many data packets, the first node can continue to send data packets to the transit node while the transit node sends data packets to the second node. In this way, full utilization of each time slot in the scheduling period can be achieved, end-to-end delay can be effectively reduced, and data transmission efficiency can be improved.
[0208] It should be noted that: the traffic scheduling device provided in the above embodiment only uses the division of the above functional modules as an example when performing traffic scheduling. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the traffic scheduling device provided in the above embodiment and the traffic scheduling method embodiment belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0209] Please refer to Fig.14 , Fig.14 is a schematic diagram of a data node structure according to an embodiment of the present application. The data node may be Figure 1 The data node 101 shown in FIG. The data node includes at least one processor 1401 , a communication bus 1402 , a memory 1403 , and at least one communication interface 1404 .
[0210] The processor 1401 may be a general-purpose central processing unit (CPU), a network processor (NP), a microprocessor, or may be one or more integrated circuits for implementing the solution of the present application, such as an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
[0211] The communication bus 1402 is used to transmit information between the above components. The communication bus 1402 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.
[0212] The memory 1403 may be a read-only memory (ROM), a random access memory (RAM), an electrically erasable programmable read-only memory (EEPROM), an optical disc (including a compact disc read-only memory (CD-ROM), a compressed optical disc, a laser disc, a digital versatile disc, a Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 1403 may exist independently and be connected to the processor 1401 via the communication bus 1402. The memory 1403 may also be integrated with the processor 1401.
[0213] The communication interface 1404 uses any transceiver-like device for communicating with other devices or communication networks. The communication interface 1404 includes a wired communication interface and may also include a wireless communication interface. Among them, the wired communication interface may be, for example, an Ethernet interface. The Ethernet interface may be an optical interface, or a combination of an optical interface and an electrical interface. The wireless communication interface may be a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof.
[0214] In a specific implementation, as an embodiment, the processor 1401 may include one or more CPUs, such as Fig.14 CPU0 and CPU1 are shown in the figure.
[0215] In a specific implementation, as an embodiment, a data node may include multiple processors, such as Fig.14 1401 and 1405 shown in FIG. Each of these processors may be a single-core processor or a multi-core processor. A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).
[0216] In some embodiments, the memory 1403 is used to store the program code 1410 for executing the solution of the present application, and the processor 1401 can execute the program code 1410 stored in the memory 1403. The program code 1410 may include one or more software modules, and the data node may implement the above by the processor 1401 and the program code 1410 in the memory 1403. Figure 5 The traffic scheduling method provided by the embodiment.
[0217] An embodiment of the present application also provides a computer-readable storage medium, which stores instructions. When the instructions are executed on a computer, the computer executes the steps of the traffic scheduling method described in the above embodiment, or executes the steps of the traffic scheduling method described in the above embodiment.
[0218] The embodiment of the present application also provides a computer program product including instructions, which, when executed on a computer, enables the computer to execute the steps of the traffic scheduling method described in the above embodiment. In other words, a computer program is provided, which, when executed on a computer, enables the computer to execute the steps of the traffic scheduling method described in the above embodiment.
[0219] An embodiment of the present application also provides a traffic scheduling system, which includes an optical switching device and multiple data nodes, the multiple data nodes are connected to the optical switching device, the multiple data nodes transmit data in units of a scheduling period, the scheduling period includes multiple time slots, the multiple data nodes include a first node, a second node and a third node, the first node sends a first data packet to the second node through the third node according to the traffic scheduling method described in the above embodiment.
[0220] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, 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 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 site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. 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 integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital versatile disc (DVD)), or a semiconductor medium (e.g., a solid state disk (SSD)). It is worth noting that the computer-readable storage medium mentioned in the embodiment of the present application may be a non-volatile storage medium, in other words, a non-transient storage medium.
[0221] It should be understood that the "multiple" mentioned herein refers to two or more. In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is only a description of the association relationship of the associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in order to facilitate the clear description of the technical solution of the embodiments of the present application, in the embodiments of the present application, the words "first", "second" and the like are used to distinguish between the same items or similar items with basically the same functions and effects. Those skilled in the art can understand that the words "first", "second" and the like do not limit the quantity and execution order, and the words "first", "second" and the like do not limit them to be necessarily different.
[0222] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data for analysis, stored data, displayed data, etc.) and signals involved in the embodiments of the present application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions. For example, the first data packets involved in the embodiments of the present application are all obtained with full authorization.
[0223] The above-mentioned embodiments are provided for the present application and are not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.
Claims
1. A traffic scheduling method, characterized in that: Applied to a first node, the first node needs to send a first data packet to a second node, the first node and the second node are two different data nodes among a plurality of data nodes connected to an optical switching device, the first node is a source node of the first data packet, the second node is a destination node of the first data packet, the plurality of data nodes perform data transmission in units of a scheduling period, and the scheduling period includes a plurality of time slots; the method includes: Determine a third node from the multiple data nodes, where the third node is a transit node for the first data packet; In a first time slot among the multiple time slots, the first data packet is sent to the third node so that the third node sends the first data packet to the second node, the first time slot and the second time slot are different time slots, and the second time slot is a time slot among the multiple time slots for transmitting data from the first node to the second node.
2. The method according to claim 1, characterized in that The step of sending the first data packet to the third node in a first time slot among the multiple time slots comprises: Sending a forwarding request of the first data packet to the third node, wherein the forwarding request is used to request the third node to receive the first data packet; receiving a forwarding response of the first data packet sent by the third node, wherein the forwarding response indicates whether the third node agrees to receive the first data packet; If the relay response indicates that the third node agrees to receive the first data packet, the first data packet is sent to the third node in the first time slot.
3. The method according to claim 2, characterized in that The forwarding request of the first data packet is carried in a second data packet, and the second data packet is a data packet sent by the first node to the third node before the first data packet.
4. The method according to claim 3, characterized in that The second data packet includes an information field, the information field includes a transfer request subfield, and the transfer request subfield is used to carry the transfer request of the first data packet.
5. The method according to claim 4, characterized in that The information field also includes a transfer request flag, and the transfer request flag indicates that the second data packet carries a transfer request for the first data packet.
6. The method according to claim 2, characterized in that After receiving the forwarding response of the first data packet sent by the third node, the method further includes: If the forwarding response indicates that the third node does not agree to receive the first data packet, the forwarding node of the first data packet is re-determined to obtain a fourth node, and the forwarding request of the first data packet is re-sent to the fourth node.
7. The method according to any one of claims 1 to 6, characterized in that: The method further comprises: receiving a forwarding request for a third data packet sent by a fifth node, wherein the forwarding request is used to request the first node to receive the third data packet, and the first node is a forwarding node for the third data packet; generating a forwarding response of the third data packet based on the memory information of the first node, wherein the forwarding response indicates whether the first node agrees to receive the third data packet; A forwarding response of the third data packet is sent to the fifth node.
8. The method according to claim 7, characterized in that The relay response indicates that the first node agrees to receive the third data packet; After sending the forwarding response of the third data packet to the fifth node, the method further includes: Receive the third data packet sent by the fifth node.
9. The method according to claim 7 or 8, characterized in that When the memory information of the first node indicates that the first node is not overloaded, the forwarding response indicates that the first node agrees to receive the third data packet; In a case where the memory information of the first node indicates that the first node is overloaded, the transit response indicates that the first node does not agree to receive the third data packet.
10. The method according to any one of claims 7 to 9, characterized in that: The forwarding response of the third data packet is carried in a fourth data packet, and the fourth data packet is a data packet sent by the first node to the fifth node.
11. The method according to claim 10, characterized in that The fourth data packet includes an information field, the information field includes a transfer response subfield, and the transfer response subfield is used to carry the transfer response of the third data packet.
12. The method according to claim 11, characterized in that The information field also includes a transfer response flag, and the transfer response flag indicates that the fourth data packet carries the transfer response.
13. A flow scheduling device, characterized in that: The device is included in a first node, the first node needs to send a first data packet to a second node, the first node and the second node are two different data nodes among a plurality of data nodes connected to an optical switching device, the first node is a source node of the first data packet, the second node is a destination node of the first data packet, the plurality of data nodes perform data transmission in units of a scheduling period, and the scheduling period includes a plurality of time slots; the device includes: A determination module, configured to determine a third node from the plurality of data nodes, wherein the third node is a transit node for the first data packet; The first sending module is used to send the first data packet to the third node in a first time slot among the multiple time slots, so that the third node sends the first data packet to the second node, the first time slot and the second time slot are different time slots, and the second time slot is a time slot in the multiple time slots for transmitting data from the first node to the second node.
14. A traffic scheduling system, characterized in that: The system includes an optical switching device and multiple data nodes, the multiple data nodes are connected to the optical switching device, the multiple data nodes perform data transmission in units of scheduling cycles, the scheduling cycle includes multiple time slots, the multiple data nodes include a first node, a second node and a third node, and the first node sends a first data packet to the second node through the third node according to the method described in any one of claims 1-12.
15. A data node, characterized in that: The data node comprises a processor, and the processor is configured to execute the steps of the method according to any one of claims 1 to 12.
16. A computer-readable storage medium, characterized in that: The storage medium stores instructions, and when the instructions are executed on the computer, the computer executes the steps of the method according to any one of claims 1 to 12.