Data scheduling method, device and storage medium

By determining the target tunnel and priority subqueue based on user instructions and scheduling with the priority fields of QoS technology, the problem of limited application scenarios of existing QoS technology is solved, and more flexible traffic control and the effect of reducing operator costs is achieved.

CN113810314BActive Publication Date: 2025-02-28ZTE CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202010544387.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-06-15
Publication Date
2025-02-28
Estimated Expiration
2040-06-15

AI Technical Summary

Technical Problem

The existing QoS technology can only be scheduled based on the priority fields of the packet, and the factors based on them are relatively single, which cannot meet the needs of different users, resulting in limited application scenarios.

Method used

By determining the target tunnel based on the user instructions of the data to be scheduled, the data is placed in the target priority subqueue, and scheduling through the target tunnel and port scheduling nodes, bandwidth control is realized for different users.

Benefits of technology

It improves the scheduling flexibility of QoS technology, can provide different traffic control methods according to user needs, and reduces the maintenance costs of operators.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113810314B_ABST
    Figure CN113810314B_ABST
Patent Text Reader

Abstract

The present application discloses a data scheduling method, device and storage medium, which belongs to the technical field of layered flow control. The method includes: determining the target tunnel corresponding to the data to be scheduled according to the user indication information of the data to be scheduled, placing the data to be scheduled into the target priority subqueue corresponding to the priority field of the data to be scheduled, scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel, and scheduling the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port, wherein the target port is the port corresponding to the target tunnel. The data scheduling method can provide different flow control methods for different users, meet the needs of users, improve the scheduling flexibility of QoS technology, and at the same time, reduce the maintenance cost of operators.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present invention relate to the technical field of layered flow control, and in particular to a data scheduling method, device and storage medium. Background Art

[0002] Quality of Service (QoS) technology is a network security mechanism used to solve problems such as network delay and congestion.

[0003] The current QoS technology can only map packets to different sending queues according to the priority field in the packets, and then implement sending queue scheduling and bandwidth allocation through different scheduling algorithms between sending queues.

[0004] However, the scheduling basis of the above-mentioned QoS technology is different priorities of messages, and the factors based thereon are relatively single, which results in limited application scenarios of the current QoS technology. Summary of the invention

[0005] The main purpose of the embodiments of the present invention is to provide a data scheduling method, device and storage medium, aiming to achieve independent bandwidth control for different users and improve the scheduling flexibility of QoS technology.

[0006] To achieve the above object, an embodiment of the present invention provides a data scheduling method, the method comprising the following steps:

[0007] Determining a target tunnel corresponding to the data to be scheduled according to user indication information of the data to be scheduled;

[0008] Putting the data to be scheduled into the target priority subqueue corresponding to the priority field of the data to be scheduled;

[0009] Scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel;

[0010] The data in the target tunnel scheduling node is scheduled through the target port scheduling node corresponding to the target port; wherein the target port is the port corresponding to the target tunnel.

[0011] To achieve the above-mentioned purpose, an embodiment of the present invention also proposes a data scheduling device, which includes a memory, a processor, a program stored in the memory and executable on the processor, and a data bus for realizing connection and communication between the processor and the memory, and the program implements the steps of the aforementioned method when executed by the processor.

[0012] To achieve the above objectives, an embodiment of the present invention provides a storage medium for computer-readable storage, wherein the storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement the steps of the aforementioned method.

[0013] The data scheduling method, device and storage medium proposed in the present application include: determining the target tunnel corresponding to the data to be scheduled according to the user indication information of the data to be scheduled, placing the data to be scheduled into the target priority subqueue corresponding to the priority field of the data to be scheduled, scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel, and scheduling the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port, wherein the target port is the port corresponding to the target tunnel. The data scheduling method can determine the target tunnel corresponding to the data to be scheduled according to the user indication information of the data to be scheduled, schedule the target priority queue where the data to be scheduled is located through the target tunnel scheduling node corresponding to the target tunnel, and then schedule the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port. Since the target tunnel is determined according to the user indication information of the data to be scheduled, the data to be scheduled can be scheduled in combination with the priority field of the data to be scheduled and the user indication information, that is, different flow control methods are provided for different users to meet the needs of users, improve the scheduling flexibility of QoS technology, and at the same time, reduce the maintenance cost of operators. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 A flow chart of a data scheduling method provided by an embodiment;

[0015] Figure 2 A flow chart of a data scheduling method provided by another embodiment;

[0016] Figure 3 A schematic diagram of the structure of a data scheduling device provided by an embodiment;

[0017] Figure 4 A schematic diagram of the structure of a service access unit in a data scheduling device provided by an embodiment;

[0018] Figure 5 A schematic diagram of the structure of a hierarchical scheduling unit in a data scheduling device provided by an embodiment;

[0019] Figure 6 A schematic diagram of the principle of bandwidth allocation when a tunnel scheduling node is a null node provided by an embodiment;

[0020] Figure 7 A schematic diagram of the principle of bandwidth allocation when a pseudowire scheduling node is a null node provided by an embodiment;

[0021] Figure 8 A flow chart of a data scheduling method provided in yet another embodiment;

[0022] Fig. 9 for Figure 8 The corresponding principle diagram;

[0023] Fig.10 A flow chart of a data scheduling method provided in yet another embodiment;

[0024] Fig.11 for Fig.10 The corresponding principle diagram;

[0025] Fig.12 A flow chart of a data scheduling method provided by another embodiment;

[0026] Fig.13 for Fig.12 The corresponding principle diagram;

[0027] Fig.14 A flow chart of a data scheduling method provided by another embodiment;

[0028] Fig.15 for Fig.14 The corresponding principle diagram;

[0029] Fig.16 A schematic diagram of the structure of a data scheduling device provided by an embodiment;

[0030] Fig.17 A schematic diagram of the structure of a data scheduling device provided in an embodiment. DETAILED DESCRIPTION

[0031] It should be understood that the specific embodiments described herein are only used to explain the embodiments of the present invention, and are not used to limit the embodiments of the present invention.

[0032] In the subsequent description, the use of suffixes such as "module", "component" or "unit" to represent elements is only to facilitate the description of the embodiments of the present invention, and has no specific meaning in itself. Therefore, "module", "component" or "unit" can be used in a mixed manner. It should be noted that the concepts of "first", "second" and the like mentioned in this application are only used to distinguish different parameters, devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these parameters, devices, modules or units.

[0033] With the development of network technology, enterprise users are increasingly relying on the services provided by the network and hope that operators can provide secure and reliable dedicated lines, such as Voice over Internet Protocol (VoIP) and video conference calls, so as to reduce the operating costs of enterprises. Individual users are no longer satisfied with simple services such as surfing the Internet or downloading files, but hope to get a better experience through the network, such as high-quality video chat, real-time gaming and other services. With the construction of the fifth generation mobile communication technology (5G), operators are also required to provide users with high-speed and low-latency service experience.

[0034] How to provide different service qualities for different users requires the use of QoS technology. However, the current QoS technology can only be scheduled based on the priority field of the message, which is based on a relatively single factor and cannot meet the needs of different users.

[0035] This embodiment provides a data scheduling method, including: determining the target tunnel corresponding to the data to be scheduled according to the user indication information of the data to be scheduled, placing the data to be scheduled in the target priority subqueue corresponding to the priority field of the data to be scheduled, scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel, and scheduling the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port, wherein the target port is the port corresponding to the target tunnel. The data scheduling method can determine the target tunnel corresponding to the data to be scheduled according to the user indication information of the data to be scheduled, schedule the target priority queue where the data to be scheduled is located through the target tunnel scheduling node corresponding to the target tunnel, and then schedule the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port. Since the target tunnel is determined according to the user indication information of the data to be scheduled, the data to be scheduled can be scheduled in combination with the priority field of the data to be scheduled and the user indication information, that is, different flow control methods are provided for different users to meet the needs of users, improve the scheduling flexibility of QoS technology, and reduce the maintenance cost of operators.

[0036] Figure 1 The flowchart of a data scheduling method provided by an embodiment. This embodiment is applicable to a scenario of scheduling data. This embodiment can be executed by a data scheduling device, which can be implemented by software and / or hardware. The data scheduling device can be integrated into a communication device with a packet switching function, and the communication device with a packet switching function can be set in a packet switching system. Figure 1 As shown, the data scheduling method provided in this embodiment includes the following steps:

[0037] Step 101: Determine a target tunnel corresponding to the data to be scheduled according to user indication information of the data to be scheduled.

[0038] In one embodiment, the communication device with packet switching function may be an optical transport network (OTN) device. The OTN device may be connected to a switch via a packet transport network (PTN) device. The device receives data from an upstream switch, schedules the received data, and transmits the data to a downstream switch.

[0039] Optionally, the data to be scheduled in this embodiment may be data in a Multi-Protocol Label Switching (MPLS) system.

[0040] The user indication information may include: the device port receiving the data to be scheduled and / or the number of the virtual local area network (VLAN) where the scheduling data is located. The device port receiving the data to be scheduled refers to the port of the communication device with packet switching function receiving the data to be scheduled. It should be noted that the user indication information may be encapsulated in the data to be scheduled or may not be encapsulated in the data to be scheduled, and this embodiment is not limited to this.

[0041] In one embodiment, different tunnels transmit the data to be scheduled of different users, that is, the tunnels correspond to the users.

[0042] The data scheduling device may determine the target tunnel corresponding to the data to be scheduled according to the user indication information in the data to be scheduled. In this embodiment, there may be multiple data to be scheduled. In step 101, the data scheduling device may determine the target tunnel corresponding to the data to be scheduled according to the user indication information of each data to be scheduled. Exemplarily, the user indication information may be an identifier of a device port, for example, "port 1".

[0043] Step 102: Put the data to be scheduled into the target priority subqueue corresponding to the priority field of the data to be scheduled.

[0044] In one embodiment, the data to be scheduled is encapsulated with a priority field, and optionally, the length of the priority field may be 3 bits. According to the priority field of the data to be scheduled, its corresponding priority may be determined, and the priority corresponds to the priority subqueue. Therefore, the target priority subqueue corresponding to the data to be scheduled may be determined according to the priority field of the data to be scheduled.

[0045] The target priority subqueue belongs to the target priority queue. The target priority queue in this embodiment includes multiple priority subqueues including the target priority subqueue. Optionally, the priority queue may have a mapping relationship with the tunnel. After the target tunnel corresponding to the data to be scheduled is determined in step 101, in step 102, the target priority queue corresponding to the target tunnel may be determined based on the mapping relationship between the priority queue and the tunnel and the target tunnel, and then the corresponding target priority subqueue may be determined based on the priority field of the data to be scheduled.

[0046] For example, assuming that the target priority queue includes 8 priority subqueues: subqueue 0, subqueue 1, subqueue 2, subqueue 3, ..., subqueue 7, the priority field of the data to be scheduled is 110, and the priority of the data to be scheduled is determined to be 6 according to the priority field, and the corresponding subqueue is subqueue 6. Therefore, in step 102, the data to be scheduled is put into subqueue 6.

[0047] After determining the target priority subqueue corresponding to the data to be scheduled, the data to be scheduled is placed in the target priority subqueue to wait for scheduling.

[0048] Step 103: Schedule the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel.

[0049] In one embodiment, the target tunnel corresponds to a target tunnel scheduling node, and the target tunnel scheduling node is used to schedule data in the target priority queue.

[0050] In one embodiment, the target priority subqueue corresponds to the third target minimum required bandwidth. The target priority queue is a set of at least two priority subqueues, and the at least two priority subqueues include the target priority subqueue. That is, the target priority queue is a set of multiple priority subqueues including the target priority subqueue, and each priority subqueue corresponds to the third minimum required bandwidth. The target tunnel scheduling node corresponds to the first target maximum required bandwidth. When the priority subqueue is the target priority subqueue, the third target minimum required bandwidth and the third minimum required bandwidth represent the same concept.

[0051] In one implementation, when the sum of traffic of all priority sub-queues included in the target priority queue is less than or equal to the first target maximum required bandwidth, data in multiple priority sub-queues can pass through the target tunnel at the same time.

[0052] In another implementation, when the sum of the traffic of all priority subqueues included in the target priority queue is greater than the first target maximum required bandwidth, it indicates that the target tunnel is congested. In this implementation, it is necessary to determine the third actual bandwidth corresponding to the target priority subqueue according to the third target minimum required bandwidth corresponding to the target priority subqueue, and send the data in the target priority subqueue according to the third actual bandwidth.

[0053] Optionally, the process of determining the third actual bandwidth can be: determining the sum of the third minimum required bandwidths of all priority subqueues in the target priority queue connected to the target tunnel scheduling node, allocating the remaining bandwidth after subtracting the sum of the third minimum required bandwidths of all priority subqueues from the first target maximum required bandwidth according to the preset third bandwidth allocation rule, determining the third target allocated bandwidth corresponding to the target priority subqueue, and determining the sum of the third target minimum required bandwidth corresponding to the target priority subqueue and the third target allocated bandwidth as the third actual bandwidth corresponding to the data in the target priority subqueue. This allocation method can ensure that when congestion occurs in the target tunnel, the minimum required bandwidth of each priority subqueue is prioritized.

[0054] The preset third bandwidth allocation rule here may be to allocate all the remaining bandwidth to a number of priority sub-queues with higher priorities, or to allocate each priority sub-queue according to a preset ratio. This embodiment is not limited thereto.

[0055] It should be noted that the sum of the traffic of all priority subqueues included in the target priority queue refers to the sum of the traffic of data in all priority subqueues included in the target priority queue. The traffic or bandwidth in this embodiment refers to the transmission rate of data.

[0056] After the target tunnel scheduling node schedules the data in the target priority queue, the data will flow into the target tunnel. Since the target tunnel corresponds to the target tunnel scheduling node, it can also be said that the data will flow into the target tunnel scheduling node.

[0057] Step 104: Schedule the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port.

[0058] The destination port is the port corresponding to the destination tunnel.

[0059] In some scenarios, enterprise users' VoIP calls need to ensure low latency and high real-time performance. However, individual users' web browsing is not sensitive to the browsing network speed. Therefore, it is necessary to perform separate bandwidth control for different users' data.

[0060] In one embodiment, in order to realize bandwidth control for different users, a target port scheduling node corresponding to the target port is provided. The target port scheduling node can be connected to at least two tunnel scheduling nodes, and the at least two tunnel scheduling nodes include the target tunnel scheduling node. That is, the target port scheduling node is connected to multiple tunnel scheduling nodes including the target tunnel scheduling node. Based on the above description, it can be known that each tunnel corresponds to the data of one user, and thus, the target port scheduling node can schedule multiple tunnels, that is, the data of multiple users, to realize providing different flow control methods for different users, meet the needs of users, and improve the scheduling flexibility of QoS technology.

[0061] In one embodiment, the target tunnel scheduling node corresponds to the first target minimum required bandwidth, and the target port scheduling node corresponds to the target total bandwidth.

[0062] In one implementation, when the sum of the traffic of all data in multiple tunnel scheduling nodes connected to the target port scheduling node is less than or equal to the target total bandwidth, the data in the multiple tunnel scheduling nodes can be sent out from the target port at the same time.

[0063] In another implementation, when the sum of all data traffic in at least two tunnel scheduling nodes connected to the target port scheduling node is greater than the target total bandwidth, the target port is determined to be congested; when the target port is congested, the first actual bandwidth corresponding to the data in the target tunnel scheduling node is determined through the target port scheduling node and based on the first target minimum required bandwidth; the data in the target tunnel scheduling node is sent through the target port scheduling node according to the first actual bandwidth.

[0064] More specifically, each of the at least two tunnel scheduling nodes corresponds to a first minimum required bandwidth. The process of determining the first actual bandwidth may be: determining the sum of the first minimum required bandwidths of all tunnel scheduling nodes connected to the target port scheduling node; allocating the remaining bandwidth after subtracting the sum of the first minimum required bandwidth from the target total bandwidth according to a preset first bandwidth allocation rule to determine the first target allocated bandwidth corresponding to the target tunnel scheduling node; determining the sum of the first target minimum required bandwidth corresponding to the target tunnel scheduling node and the first target allocated bandwidth as the first actual bandwidth corresponding to the data in the target tunnel scheduling node.

[0065] The preset first bandwidth allocation rule here may be to allocate all remaining bandwidth in the target port scheduling node to several tunnel scheduling nodes with higher first minimum required bandwidth, or to allocate to each tunnel scheduling node according to a preset ratio. This embodiment is not limited thereto.

[0066] It should be noted that the third target minimum required bandwidth, the third minimum required bandwidth, the first target maximum required bandwidth, the first target minimum required bandwidth, the first minimum required bandwidth and the target total bandwidth can all be pre-configured. Exemplarily, they can be pre-configured by a user for the data scheduling device, or they can be configured by other devices for the data scheduling device.

[0067] This embodiment provides a data scheduling method, including: determining the target tunnel corresponding to the data to be scheduled according to the user indication information of the data to be scheduled, placing the data to be scheduled in the target priority subqueue corresponding to the priority field of the data to be scheduled, scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel, and scheduling the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port, wherein the target port is the port corresponding to the target tunnel. The data scheduling method can determine the target tunnel corresponding to the data to be scheduled according to the user indication information of the data to be scheduled, schedule the target priority queue where the data to be scheduled is located through the target tunnel scheduling node corresponding to the target tunnel, and then schedule the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port. Since the target tunnel is determined according to the user indication information of the data to be scheduled, the data to be scheduled can be scheduled in combination with the priority field of the data to be scheduled and the user indication information, that is, different flow control methods are provided for different users to meet the needs of users, improve the scheduling flexibility of QoS technology, and at the same time, reduce the maintenance cost of operators.

[0068] Figure 2 This is a flow chart of a data scheduling method provided by another embodiment. Figure 1 Based on the illustrated embodiment and various optional solutions, other steps included in the data scheduling method are described in detail. Figure 2 As shown, the data scheduling method provided in this embodiment includes the following steps:

[0069] Step 201: Determine a target tunnel corresponding to the data to be scheduled according to user indication information of the data to be scheduled.

[0070] Step 202: Put the data to be scheduled into the target priority subqueue corresponding to the priority field of the data to be scheduled.

[0071] Step 203: Determine a target pseudowire corresponding to the data to be scheduled according to the service indication information of the data to be scheduled.

[0072] In this embodiment, in addition to determining the target tunnel corresponding to the data to be scheduled based on the user indication information of the data to be scheduled, the target pseudo wire (PW) corresponding to the data to be scheduled may also be determined based on the service indication information of the data to be scheduled.

[0073] The target pseudowire is connected to the target tunnel. The target tunnel may connect at least two pseudowires, the at least two pseudowires including the target pseudowire. Exemplarily, the at least two pseudowires may be pseudowire 1 and pseudowire 2, wherein pseudowire 1 may be the target pseudowire.

[0074] In one implementation, the service indication information in this embodiment may be the device port receiving the data to be scheduled and / or the number of the VLAN where the scheduled data is located. After determining the target pseudowire corresponding to the data to be scheduled, the target tunnel corresponding to the data to be scheduled may be determined based on the mapping relationship between the pseudowire and the tunnel and the target pseudowire. It can be seen that in this implementation, the user indication information may be the mapping relationship between the pseudowire and the tunnel.

[0075] In other words, in this implementation, multiple pseudowires are connected to the target tunnel, the target tunnel corresponds to the user, and different pseudowires correspond to the data of different services of the user. Therefore, this embodiment can not only schedule the data of different users, but also schedule the data of different services of the same user, further improving the flexibility of scheduling.

[0076] In some scenarios, the network speeds required by different services of the same user are different. For example, the VoIP service of an individual user needs to ensure low latency and high real-time performance, while browsing the web is not sensitive to the network speed. This embodiment can perform separate bandwidth control for different services of different users, reducing the maintenance cost of the operator.

[0077] Figure 3 The structure diagram of a data scheduling device provided by an embodiment is as follows. The device comprises a service access unit 31 and a service hierarchical scheduling unit 32.

[0078] User services are encapsulated into different tunnels and pseudowires through the service access unit 31. In the service hierarchical scheduling unit 32, tunnels correspond to tunnel scheduling nodes, pseudowires correspond to pseudowire scheduling nodes, and ports correspond to port scheduling nodes. Each message corresponds to a different priority subqueue according to different priorities. Bandwidth is allocated to each scheduling node, that is, the maximum required bandwidth and the minimum required bandwidth are set, so that flow control of different services of different users can be achieved.

[0079] Figure 4 FIG. 1 is a schematic diagram of the structure of a service access unit in a data scheduling device provided in an embodiment. Figure 4As shown, users passing through the same port are divided into different tunnels, and different services of users are divided into different pseudo wires. For example, enterprise user 1 is on tunnel 1, enterprise user 1's voip service is on pseudo wire PW11, network transmission service is on pseudo wire PW12, ..., enterprise user 1's service n is on pseudo wire PW1n; personal user 2 is on tunnel 2, personal user 2's call is on pseudo wire PW23, network transmission service is on pseudo wire PW24; ...; user n is on tunnel n, user n's service 1 is on pseudo wire PWn1, service 2 is on pseudo wire PWn2, ..., service n is on pseudo wire PWnn. In this way, different users and different services can be distinguished by classification. Afterwards, these classified data are mapped to different scheduling nodes of the hierarchical scheduling unit to enter hierarchical flow control. Figure 4 Tunnel 1, tunnel 2, ... and tunnel n in the data scheduling device are connected to ports. The port here refers to the port that sends data in the data scheduling device.

[0080] Figure 5 FIG. 1 is a schematic diagram of the structure of a hierarchical scheduling unit in a data scheduling device provided in an embodiment. Figure 5 As shown, under one port, there are four scheduling levels: the first level scheduling is port-level scheduling, that is, the port scheduling node, all scheduling will be summarized to the port scheduling node, and the port can be shaped and allocated with flow control; the second level scheduling is the tunnel scheduling node, and the service access unit allocates different users to different tunnels, which reflects different users on the tunnel scheduling node. According to the needs of users, flow control can be allocated by configuring the maximum and minimum bandwidth; the third level scheduling is the PW scheduling node, and different services of the same user are mapped to different PWs. Different services are reflected on this scheduling node, and flow control can be allocated by configuring the maximum and minimum bandwidth according to the needs of the services; the last level scheduling is the queue scheduling node, which is divided into multiple priority scheduling sub-queues according to the priority of the message. For example, it can be 8 priority scheduling sub-queues, and the bandwidth of each queue can be controlled, and the message can be scheduled according to the priority.

[0081] Step 204: Schedule the target priority queue to which the target priority subqueue belongs through the target pseudowire scheduling node corresponding to the target pseudowire.

[0082] Among them, the target priority queue, the target pseudowire scheduling node, the target tunnel scheduling node and the target port scheduling node are connected in sequence.

[0083] In this embodiment, the pseudowire scheduling node schedules data in the priority queue, the tunnel scheduling node schedules data in its corresponding pseudowire scheduling node, and the port scheduling node schedules data in its corresponding tunnel scheduling node.

[0084] After the data scheduling device receives the data to be scheduled, the target tunnel corresponding to the data to be scheduled is determined through step 201, the target pseudowire corresponding to the data to be scheduled is determined through step 203, and the data to be scheduled is placed in the target priority subqueue corresponding to the priority field of the data to be scheduled through step 202. It should be noted that there is no timing relationship between step 201 and step 203.

[0085] Thereafter, step 204 is executed to schedule the target priority queue to which the target priority subqueue belongs through the target pseudowire scheduling node corresponding to the target pseudowire.

[0086] The target priority subqueue corresponds to the third target minimum required bandwidth. The target pseudowire scheduling node corresponds to the second target maximum required bandwidth. The target priority queue is a collection of multiple priority subqueues including the target priority subqueue, and each priority subqueue corresponds to the third minimum required bandwidth.

[0087] In one implementation, the specific scheduling process of step 204 may be: when the sum of the traffic of all priority subqueues included in the target priority queue is less than or equal to the second target maximum required bandwidth, data in multiple priority subqueues may pass through the target pseudowire at the same time.

[0088] In another implementation, the specific scheduling process of step 204 can be: when the sum of the traffic of all priority sub-queues included in the target priority queue is greater than the second target maximum required bandwidth, the target pseudo-wire is determined to be congested; when the target pseudo-wire is congested, the third actual bandwidth corresponding to the target priority sub-queue is determined through the target pseudo-wire scheduling node according to the third target minimum required bandwidth corresponding to the target priority sub-queue; and the data in the target priority sub-queue is sent through the target pseudo-wire scheduling node according to the third actual bandwidth.

[0089] Optionally, the process of determining the third actual bandwidth can be: determining the sum of the third minimum required bandwidths of all priority subqueues in the target priority queue connected to the target pseudowire scheduling node, allocating the remaining bandwidth after subtracting the sum of the third minimum required bandwidths of all priority subqueues from the second target maximum required bandwidth according to a preset third bandwidth allocation rule, determining the third target allocated bandwidth corresponding to the target priority subqueue, and determining the sum of the third target minimum required bandwidth corresponding to the target priority subqueue and the third target allocated bandwidth as the third actual bandwidth corresponding to the data in the target priority subqueue. This allocation method can ensure that when congestion occurs in the target pseudowire, the minimum required bandwidth of each priority subqueue is prioritized.

[0090] After the target pseudowire scheduling node schedules the data in the target priority queue, the data flows into the target pseudowire. Since the target pseudowire corresponds to the target pseudowire scheduling node, it can also be said that the data flows into the target pseudowire scheduling node.

[0091] Step 205: Schedule the data in the target pseudowire scheduling node through the target tunnel scheduling node corresponding to the target tunnel.

[0092] After the data flows into the target pseudowire scheduling node, the data in the target pseudowire scheduling node is scheduled through the target tunnel scheduling node corresponding to the target tunnel.

[0093] Optionally, the target pseudowire scheduling node corresponds to the second target minimum required bandwidth. The target tunnel scheduling node corresponds to the first target maximum required bandwidth. The at least two pseudowire scheduling nodes connected to the target tunnel scheduling node include the target pseudowire scheduling node. That is, the target tunnel scheduling node connects at least two pseudowire scheduling nodes including the target pseudowire scheduling node.

[0094] In one implementation, the specific scheduling process of step 205 may be: when the sum of the traffic of all data in at least two pseudowire scheduling nodes connected to the target tunnel scheduling node is less than or equal to the first target maximum required bandwidth, the data in multiple pseudowire scheduling nodes may pass through the target tunnel simultaneously.

[0095] In another implementation, the specific scheduling process of step 205 may be: when the sum of the traffic of all data in at least two pseudo-wire scheduling nodes connected to the target tunnel scheduling node is greater than the first target maximum required bandwidth, the target tunnel is determined to be congested; when the target tunnel is congested, the second actual bandwidth corresponding to the data in the target pseudo-wire scheduling node is determined through the target tunnel scheduling node and based on the second target minimum required bandwidth; and the data in the target pseudo-wire scheduling node is sent through the target tunnel scheduling node according to the second actual bandwidth.

[0096] Optionally, each of the at least two pseudowire scheduling nodes corresponds to a second minimum required bandwidth. The process of determining the second actual bandwidth may be: determining the sum of the second minimum required bandwidths of all pseudowire scheduling nodes connected to the target tunnel scheduling node; allocating the remaining bandwidth after subtracting the sum of the second minimum required bandwidth from the first target maximum required bandwidth according to a preset second bandwidth allocation rule to determine the second target allocated bandwidth corresponding to the target pseudowire scheduling node; determining the sum of the second target minimum required bandwidth corresponding to the target pseudowire scheduling node and the second target allocated bandwidth as the second actual bandwidth corresponding to the data in the target pseudowire scheduling node.

[0097] After the target tunnel scheduling node schedules the data in the target pseudowire, the data will flow into the target tunnel. Since the target tunnel corresponds to the target tunnel scheduling node, it can also be said that the data will flow into the target tunnel scheduling node.

[0098] Step 206: Schedule the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port.

[0099] The destination port is the port corresponding to the destination tunnel.

[0100] In one embodiment, the target tunnel scheduling node corresponds to the first target minimum required bandwidth, and the target port scheduling node corresponds to the target total bandwidth.

[0101] In one implementation, when the sum of the traffic of all data in at least two tunnel scheduling nodes connected to the target port scheduling node is less than or equal to the target total bandwidth, the data in the at least two tunnel scheduling nodes can be sent out from the target port at the same time.

[0102] In another implementation, when the sum of all data traffic in at least two tunnel scheduling nodes connected to the target port scheduling node is greater than the target total bandwidth, the target port is determined to be congested; when the target port is congested, the first actual bandwidth corresponding to the data in the target tunnel scheduling node is determined through the target port scheduling node and based on the first target minimum required bandwidth; the data in the target tunnel scheduling node is sent through the target port scheduling node according to the first actual bandwidth.

[0103] More specifically, each of the at least two tunnel scheduling nodes corresponds to a first minimum required bandwidth. The process of determining the first actual bandwidth may be: determining the sum of the first minimum required bandwidths of all tunnel scheduling nodes connected to the target port scheduling node; allocating the remaining bandwidth after subtracting the sum of the first minimum required bandwidth from the target total bandwidth according to a preset first bandwidth allocation rule to determine the first target allocated bandwidth corresponding to the target tunnel scheduling node; determining the sum of the first target minimum required bandwidth corresponding to the target tunnel scheduling node and the first target allocated bandwidth as the first actual bandwidth corresponding to the data in the target tunnel scheduling node.

[0104] It should be noted that the specific contents of the first bandwidth allocation rule, the second bandwidth allocation rule and the fourth bandwidth allocation rule are already in Figure 1 It has been described in the illustrated embodiment and will not be repeated here.

[0105] The above-mentioned process of determining the first actual bandwidth, the second actual bandwidth and the third actual bandwidth when the scheduling node is congested can ensure the minimum required bandwidth of the previous level scheduling node and will not affect the normal operation of the service.

[0106] The target tunnel corresponds to the target tunnel scheduling node. After the target tunnel is determined in step 201 and before step 205, in one embodiment, the target tunnel scheduling node corresponding to the target tunnel needs to be determined. The specific determination process can be: if it is determined that the target tunnel has a corresponding tunnel scheduling node in the second mapping relationship according to the preset second mapping relationship between the tunnel and the tunnel scheduling node and the target tunnel, then the tunnel scheduling node corresponding to the target tunnel in the second mapping relationship is determined as the target tunnel scheduling node; if it is determined that the target tunnel does not have a corresponding tunnel scheduling node in the second mapping relationship according to the preset second mapping relationship between the tunnel and the tunnel scheduling node and the target tunnel, then the empty tunnel scheduling node connected to the target port scheduling node is determined as the target tunnel scheduling node. Among them, the first maximum required bandwidth of the empty tunnel scheduling node is the remaining bandwidth after deducting the first maximum required bandwidth of other connected tunnel scheduling nodes from the target total bandwidth of the target port scheduling node.

[0107] In the above process, if there is a tunnel scheduling node corresponding to the target tunnel in the pre-set second mapping relationship, the tunnel scheduling node corresponding to the target tunnel in the second mapping relationship is determined as the target tunnel scheduling node. The tunnel scheduling node in the second mapping relationship has been pre-configured with the maximum and minimum bandwidths. If there is no tunnel scheduling node corresponding to the target tunnel in the pre-set second mapping relationship, it is necessary to determine the empty tunnel scheduling node connected to the target port scheduling node as the target tunnel scheduling node. The empty tunnel scheduling node is not pre-configured with the maximum and minimum bandwidths. Therefore, it is necessary to determine the remaining bandwidth after deducting the first maximum required bandwidth of other connected tunnel scheduling nodes from the target total bandwidth of the target port node as the first maximum required bandwidth of the empty tunnel scheduling node.

[0108] The target pseudowire corresponds to the target pseudowire scheduling node. After the target pseudowire is determined in step 203 and before step 204, in one embodiment, the target pseudowire scheduling node corresponding to the target pseudowire needs to be determined. The specific determination process can be: if it is determined that the target pseudowire has a corresponding pseudowire scheduling node in the first mapping relationship according to the preset first mapping relationship between the pseudowire and the pseudowire scheduling node and the target pseudowire, then the pseudowire scheduling node corresponding to the target pseudowire in the first mapping relationship is determined as the target pseudowire scheduling node; if it is determined that the target pseudowire does not have a corresponding pseudowire scheduling node in the first mapping relationship according to the preset first mapping relationship between the pseudowire and the pseudowire scheduling node and the target pseudowire, then the empty pseudowire scheduling node connected to the target tunnel scheduling node is determined as the target pseudowire scheduling node. Among them, the second maximum required bandwidth of the empty pseudowire scheduling node is the remaining bandwidth after the first target maximum required bandwidth of the target tunnel scheduling node is subtracted from the second maximum required bandwidth of other connected pseudowire scheduling nodes.

[0109] In the above process, if there is a pseudowire scheduling node corresponding to the target pseudowire in the pre-set first mapping relationship, the pseudowire scheduling node corresponding to the target pseudowire in the first mapping relationship is determined as the target pseudowire scheduling node. The pseudowire scheduling node in the first mapping relationship has been pre-configured with the maximum and minimum bandwidths. If there is no pseudowire scheduling node corresponding to the target pseudowire in the pre-set first mapping relationship, it is necessary to determine the empty pseudowire scheduling node connected to the target tunnel scheduling node as the target pseudowire scheduling node. The empty pseudowire scheduling node is not pre-configured with the maximum and minimum bandwidths. Therefore, it is necessary to determine the remaining bandwidth after deducting the second maximum required bandwidth of other connected pseudowire scheduling nodes from the target total bandwidth of the target tunnel node as the second maximum required bandwidth of the empty pseudowire scheduling node.

[0110] It should be noted that an empty pseudowire scheduling node refers to a pseudowire scheduling node that is not bound to a pseudowire, and an empty tunnel scheduling node refers to a tunnel scheduling node that is not bound to a tunnel.

[0111] Figure 6 FIG. 1 is a schematic diagram of the principle of bandwidth allocation when a tunnel scheduling node is a null node provided in an embodiment. Figure 6 As shown in the figure, there is an empty node in the second-layer tunnel scheduling node. Here, the total bandwidth allocated to the port is 100Mbps, the bandwidth allocated to tunnel scheduling node 1 is 20Mbps, and the bandwidth allocated to tunnel scheduling node 2 is 30Mbps. Then all other services under this port go through the empty tunnel scheduling node. The bandwidth allocated to the empty tunnel scheduling node is the remaining value of the port bandwidth minus the node bandwidth allocated to tunnel scheduling node 1 and tunnel scheduling node 2, that is, 100-20-30=50Mbps. Here, 20Mbps refers to the maximum required bandwidth of tunnel scheduling node 1, and 30Mbps refers to the maximum required bandwidth of tunnel scheduling node 2.

[0112] Figure 7 FIG. 1 is a schematic diagram of the principle of bandwidth allocation when the pseudowire scheduling node is a null node provided by an embodiment. Figure 7 As shown in the figure, there is an empty node in the third layer PW scheduling node. Here, the tunnel allocation bandwidth is 80Mbps, the PW1 allocation bandwidth is 40Mbps, and the PW2 allocation bandwidth is 10Mbps. Then other PW services under this tunnel all go through the empty pseudowire scheduling node. The bandwidth allocated by the empty pseudowire scheduling node is the remaining value of the tunnel bandwidth minus the node bandwidth allocated to PW1 and PW2, that is, 80-40-10=30Mbps.

[0113] The above method of allocating bandwidth to air-conditioned nodes can ensure that services that are not allocated bandwidth control also have appropriate bandwidth available to meet the bandwidth requirements of other services. At the same time, it ensures that the bandwidth of low-level nodes does not exceed that of high-level nodes, ensuring the rationality of bandwidth allocation.

[0114] The data scheduling method provided in this embodiment can determine the target tunnel corresponding to the data to be scheduled based on the user indication information of the data to be scheduled, and can also determine the target pseudo-wire corresponding to the data to be scheduled based on the service indication information of the data to be scheduled, and schedule the target priority queue to which the target priority subqueue belongs through the target pseudo-wire scheduling node corresponding to the target pseudo-wire, schedule the data in the target pseudo-wire scheduling node through the target tunnel scheduling node corresponding to the target tunnel, and schedule the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port. Therefore, not only can different flow control methods be provided for different users, but also different flow control methods can be provided for different services of different users, thereby further improving the flexibility of scheduling.

[0115] The process of the data scheduling method provided in this embodiment is described below with reference to several specific scenarios.

[0116] The first scenario is when the target pseudowire scheduling node is an empty pseudowire scheduling node. In this scenario, the maximum and minimum bandwidths can be configured on the tunnel scheduling node to achieve the purpose of controlling traffic.

[0117] Figure 8 FIG. 1 is a flow chart of a data scheduling method provided by another embodiment. Figure 8 As shown, the data scheduling method includes the following steps:

[0118] Step 801: Obtain the correspondence between the pseudowire and the tunnel configured by the user, configure the committed information rate (CIR) and peak information rate (PIR) of the tunnel scheduling node, and create a scheduling hierarchy tree according to the requirements.

[0119] Among them, the scheduling hierarchy tree refers to the scheduling level: four scheduling levels are allocated, the first level is port scheduling, the second level is tunnel scheduling node scheduling, the third level is empty pseudo-wire scheduling node scheduling, and the fourth level is queue scheduling.

[0120] Step 802: Determine a target pseudowire corresponding to the data to be scheduled according to the port or port+vlan of the data to be scheduled.

[0121] Step 803: According to the configured correspondence relationship between pseudo wires and tunnels, a target tunnel corresponding to multiple pseudo wires including the target pseudo wire is determined.

[0122] Step 804: Bind the target tunnel to the assigned target tunnel scheduling node.

[0123] Step 805: The data to be scheduled enters the target priority queue corresponding to the target tunnel scheduling node according to different priorities.

[0124] Step 806: In the target priority queue, scheduling is performed according to the priority and fed into the upper scheduling node.

[0125] Step 807: Pass through the empty pseudowire scheduling node and merge into the upper-level scheduling node.

[0126] Step 808: The target tunnel scheduling node controls the egress rate of the data to be scheduled according to the allocated flow, and imports the data into the target port scheduling node.

[0127] Step 809: The target port scheduling node aggregates the traffic and sends the data to be scheduled.

[0128] Fig. 9 for Figure 8 The corresponding principle diagram. Fig. 9 As shown, the priority queue includes 8 priority sub-queues, and the target pseudowire scheduling node is an empty pseudowire scheduling node.

[0129] The second scenario is when the target tunnel scheduling node is an empty tunnel scheduling node. In this scenario, the maximum and minimum bandwidths can be configured on the pseudowire scheduling node to achieve the purpose of controlling traffic.

[0130] Fig.10 A flowchart of a data scheduling method provided in yet another embodiment. Fig.10 As shown, the data scheduling method includes the following steps:

[0131] Step 1001: Obtain the correspondence between the pseudowire and the tunnel configured by the user, configure the CIR and PIR of the pseudowire scheduling node, and create a scheduling hierarchy tree according to the requirements.

[0132] Among them, the scheduling hierarchy tree refers to the scheduling level: four scheduling levels are allocated, the first level is port scheduling, the second level is empty tunnel scheduling node scheduling, the third level is pseudo-wire scheduling node scheduling, and the fourth level is queue scheduling.

[0133] Step 1002: Determine a target pseudowire corresponding to the data to be scheduled according to the port or port+vlan of the data to be scheduled.

[0134] Step 1003: According to the configured correspondence relationship between pseudo wires and tunnels, a target tunnel corresponding to multiple pseudo wires including the target pseudo wire is determined.

[0135] Step 1004: Bind the target pseudowire to the assigned target pseudowire scheduling node.

[0136] Step 1005: The data to be scheduled enters the target priority queue corresponding to the target pseudowire scheduling node according to different priorities.

[0137] Step 1006: In the target priority queue, scheduling is performed according to the priority and merging into the upper scheduling node.

[0138] Step 1007: The target pseudowire scheduling node controls the egress rate of the data to be scheduled according to the allocated flow rate and imports it into the upper-level scheduling node.

[0139] Step 1008: Pass through the empty tunnel scheduling node and merge into the target port scheduling node.

[0140] Step 1009: The target port scheduling node aggregates the traffic and sends the data to be scheduled.

[0141] Fig.11 for Fig.10 The corresponding principle diagram. Fig.11 As shown, the priority queue includes 8 priority sub-queues, and the target tunnel scheduling node is an empty tunnel scheduling node.

[0142] The third scenario is when neither the target tunnel scheduling node nor the target pseudowire scheduling node is an air scheduling node. In this scenario, you can configure the maximum and minimum bandwidth on the tunnel scheduling node and the maximum and minimum bandwidth on the pseudowire scheduling node to achieve the purpose of traffic control.

[0143] Fig.12 FIG. 1 is a flow chart of a data scheduling method provided by another embodiment. Fig.12 As shown, the data scheduling method includes the following steps:

[0144] Step 1201: Obtain the correspondence between the pseudowire and the tunnel configured by the user, configure the CIR and PIR of the tunnel scheduling node, configure the CIR and PIR of the pseudowire scheduling node, and create a scheduling hierarchy tree according to the requirements.

[0145] Among them, the scheduling hierarchy tree refers to the scheduling level: four scheduling levels are allocated, the first level is port scheduling, the second level is tunnel scheduling node scheduling, the third level is pseudo-wire scheduling node scheduling, and the fourth level is queue scheduling.

[0146] Step 1202: Determine a target pseudowire corresponding to the data to be scheduled according to the port or port+vlan of the data to be scheduled.

[0147] Step 1203: According to the configured correspondence relationship between pseudo wires and tunnels, a target tunnel corresponding to multiple pseudo wires including the target pseudo wire is determined.

[0148] Step 1204: Bind the target pseudowire to the assigned target pseudowire scheduling node.

[0149] Step 1205: The data to be scheduled enters the target priority queue corresponding to the target pseudowire scheduling node according to different priorities.

[0150] Step 1206: On the target priority queue, if the bandwidth of the upper scheduling node (ie, the target pseudowire scheduling node) is congested, the message will be scheduled according to the priority queue to ensure that the high priority message is scheduled first.

[0151] Step 1207: the queue-scheduled message is imported into the target pseudowire scheduling node. The target pseudowire scheduling node controls the message export rate according to the allocated flow and then imports it into the upper-level scheduling node (ie, the target tunnel scheduling node).

[0152] Step 1208: the message scheduled by the target pseudowire scheduling node is imported into the target tunnel scheduling node. The target tunnel scheduling node controls the message export rate according to the allocated flow and then imports it into the upper-level scheduling node (ie, the target port scheduling node).

[0153] Step 1209: The target port scheduling node aggregates the traffic and sends the data to be scheduled.

[0154] Fig.13 for Fig.12 The corresponding principle diagram. Fig.13 As shown, the priority queue includes 8 priority sub-queues. Neither the target pseudowire scheduling node nor the target tunnel scheduling node is an empty scheduling node.

[0155] The fourth scenario is a scenario where the target tunnel scheduling node and / or the target pseudowire scheduling node is an empty scheduling node. In this scenario, various situations are combined.

[0156] Fig.14 A flowchart of a data scheduling method provided by another embodiment. Fig.15 for Fig.14 The corresponding principle diagram. Fig.14 As shown, the data scheduling method includes the following steps:

[0157] Step 1401: Obtain the correspondence between the pseudowire and the tunnel configured by the user, configure the CIR and PIR of the tunnel scheduling node, configure the CIR and PIR of the pseudowire scheduling node, and create a scheduling hierarchy tree according to the requirements.

[0158] like Fig.15As shown in the figure, the scheduling is divided into four layers. The first layer is the port scheduling node, the second layer is the tunnel scheduling node, the third layer is the pseudowire scheduling node, and the fourth layer is the queue scheduling node. In the first part, pseudowire scheduling node 1 and pseudowire scheduling node 2 share tunnel scheduling node 1. The user configures the bandwidth control of tunnel scheduling node 1 and configures the bandwidth control of pseudowire scheduling node 1 at the same time. Pseudowire scheduling node 2 is not configured with bandwidth control. Pseudowire scheduling node 2 is allocated to the empty pseudowire scheduling node, and the remaining bandwidth is the bandwidth of tunnel scheduling node 1 minus the bandwidth allocated by pseudowire scheduling node 1. In the second part, for tunnel scheduling node 2, the user configures the bandwidth control of tunnel scheduling node 2, and the pseudowire scheduling nodes under it are not configured with bandwidth control. An empty pseudowire scheduling node is allocated to the third layer, and the data in all pseudowires under tunnel scheduling node 2 go through this scheduling node. In the third part, pseudowire scheduling node 3 belongs to tunnel scheduling node 3. The user only configures the bandwidth control of pseudowire scheduling node 3. Tunnel scheduling node 3 is allocated an empty tunnel scheduling node, and the bandwidth is the remaining bandwidth after the port bandwidth is subtracted from the bandwidth allocated by tunnel scheduling node 1 and tunnel scheduling node 2. The fourth part is the Layer 4 scheduling assigned by default to the port. All other services that are not assigned a scheduling node under this port follow this scheduling level.

[0159] Step 1402: Determine a target pseudowire corresponding to the data to be scheduled according to the port or port+vlan of the data to be scheduled.

[0160] Step 1403: According to the configured correspondence relationship between pseudo wires and tunnels, a target tunnel corresponding to multiple pseudo wires including the target pseudo wire is determined.

[0161] Step 1404: the data in the pseudowire scheduling node 1 is processed according to the processing flow of the third scenario.

[0162] Step 1405: The service in the pseudowire scheduling node 2 is not rate-limited, and the traffic is merged into the tunnel scheduling node 1. The tunnel scheduling node 1 controls the traffic of the pseudowire scheduling node 1 and the pseudowire scheduling node 2 in a unified manner according to the CIR and PIR.

[0163] Step 1406: The data in the tunnel scheduling node 2 is processed according to the processing flow of the first scenario.

[0164] Step 1407: the data in the pseudowire scheduling node 3 is processed according to the processing flow of the second scenario.

[0165] Step 1408: Other services on this port are scheduled according to the Layer 4 scheduling corresponding to the port and processed according to the remaining bandwidth.

[0166] The data scheduling methods provided in the above four scenarios can not only provide different flow control methods for different users, but also provide different flow control methods for different services of different users, further improving the flexibility of scheduling.

[0167] Fig.16 FIG. 1 is a schematic diagram of the structure of a data scheduling device provided by an embodiment. Fig.16 As shown, the data scheduling device provided in this embodiment includes the following modules: a first determination module 161 , an input module 162 , a first scheduling module 163 and a second scheduling module 164 .

[0168] The first determining module 161 is configured to determine a target tunnel corresponding to the data to be scheduled according to user indication information of the data to be scheduled.

[0169] The placing module 162 is configured to place the data to be scheduled into a target priority subqueue corresponding to the priority field of the data to be scheduled.

[0170] The first scheduling module 163 is configured to schedule the target priority queue to which the target priority sub-queue belongs through the target tunnel scheduling node corresponding to the target tunnel.

[0171] The second scheduling module 164 is configured to schedule data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port.

[0172] The destination port is the port corresponding to the destination tunnel.

[0173] Optionally, the device also includes: a second determination module and a third scheduling module.

[0174] The second determining module is configured to determine a target pseudo wire corresponding to the data to be scheduled according to the service indication information of the data to be scheduled.

[0175] The third scheduling module is configured to schedule the target priority queue to which the target priority sub-queue belongs through the target pseudo wire scheduling node corresponding to the target pseudo wire.

[0176] Among them, the target priority queue, the target pseudowire scheduling node, the target tunnel scheduling node and the target port scheduling node are connected in sequence.

[0177] The first scheduling module 163 is specifically configured to schedule data in the target pseudowire scheduling node through the target tunnel scheduling node corresponding to the target tunnel.

[0178] Optionally, the target tunnel scheduling node corresponds to the first target minimum required bandwidth. The target port scheduling node corresponds to the target total bandwidth. The at least two tunnel scheduling nodes connected to the target port scheduling node include the target tunnel scheduling node. That is, the target port scheduling node connects multiple tunnel scheduling nodes including the target tunnel scheduling node.

[0179] Optionally, the second scheduling module 164 is specifically used to: determine that the target port is congested when the sum of the traffic of all data in at least two tunnel scheduling nodes connected to the target port scheduling node is greater than the target total bandwidth; when the target port is congested, determine the first actual bandwidth corresponding to the data in the target tunnel scheduling node through the target port scheduling node and based on the first target minimum required bandwidth; and send the data in the target tunnel scheduling node through the target port scheduling node according to the first actual bandwidth.

[0180] More specifically, each of the at least two tunnel scheduling nodes corresponds to a first minimum required bandwidth. In terms of determining the first actual bandwidth corresponding to the data in the target tunnel scheduling node through the target port scheduling node and according to the first target minimum required bandwidth, the second scheduling module 164 is specifically used to: determine the sum of the first minimum required bandwidths of all tunnel scheduling nodes connected to the target port scheduling node; allocate the remaining bandwidth after subtracting the sum of the first minimum required bandwidth from the target total bandwidth according to a preset first bandwidth allocation rule to determine the first target allocated bandwidth corresponding to the target tunnel scheduling node; determine the sum of the first target minimum required bandwidth corresponding to the target tunnel scheduling node and the first target allocated bandwidth as the first actual bandwidth corresponding to the data in the target tunnel scheduling node.

[0181] Optionally, the target pseudowire scheduling node corresponds to the second target minimum required bandwidth. The target tunnel scheduling node corresponds to the first target maximum required bandwidth. At least two pseudowire scheduling nodes connected to the target tunnel scheduling node include the target pseudowire scheduling node. That is, the target tunnel scheduling node connects multiple pseudowire scheduling nodes including the target pseudowire scheduling node. The first scheduling module 163 is specifically used to: determine that the target tunnel is congested when the sum of the traffic of all data in at least two pseudowire scheduling nodes connected to the target tunnel scheduling node is greater than the first target maximum required bandwidth; when the target tunnel is congested, determine the second actual bandwidth corresponding to the data in the target pseudowire scheduling node through the target tunnel scheduling node and based on the second target minimum required bandwidth; and send the data in the target pseudowire scheduling node through the target tunnel scheduling node according to the second actual bandwidth.

[0182] More specifically, each of the at least two pseudowire scheduling nodes corresponds to a second minimum required bandwidth. In terms of determining the second actual bandwidth corresponding to the data in the target pseudowire scheduling node through the target tunnel scheduling node and according to the second target minimum required bandwidth, the first scheduling module 163 is specifically used to: determine the sum of the second minimum required bandwidths of all pseudowire scheduling nodes connected to the target tunnel scheduling node; allocate the remaining bandwidth after subtracting the sum of the second minimum required bandwidth from the first target maximum required bandwidth according to a preset second bandwidth allocation rule to determine the second target allocated bandwidth corresponding to the target pseudowire scheduling node; determine the sum of the second target minimum required bandwidth corresponding to the target pseudowire scheduling node and the second target allocated bandwidth as the second actual bandwidth corresponding to the data in the target pseudowire scheduling node.

[0183] Optionally, the target priority subqueue corresponds to a third target minimum required bandwidth, the target pseudowire scheduling node corresponds to a second target maximum required bandwidth, the target priority queue is a set of at least two priority subqueues, and at least two priority subqueues include the target priority subqueue. That is, the target priority queue is a set of multiple priority subqueues including the target priority subqueue, and each priority subqueue corresponds to the third minimum required bandwidth. The third scheduling module is specifically used to: determine that the target pseudowire is congested when the sum of the traffic of all priority subqueues included in the target priority queue is greater than the second target maximum required bandwidth; when the target pseudowire is congested, determine the third actual bandwidth corresponding to the target priority subqueue through the target pseudowire scheduling node according to the third target minimum required bandwidth corresponding to the target priority subqueue; and send the data in the target priority subqueue through the target pseudowire scheduling node according to the third actual bandwidth.

[0184] Optionally, the device further includes: a third determining module and a fourth determining module.

[0185] The third determination module is configured to determine the pseudowire scheduling node corresponding to the target pseudowire in the first mapping relationship as the target pseudowire scheduling node if it is determined that the target pseudowire has a corresponding pseudowire scheduling node in the first mapping relationship based on the preset first mapping relationship between the pseudowire and the pseudowire scheduling node and the target pseudowire.

[0186] The fourth determination module is configured to determine the empty pseudowire scheduling node connected to the target tunnel scheduling node as the target pseudowire scheduling node if it is determined that the target pseudowire does not have a corresponding pseudowire scheduling node in the first mapping relationship based on the preset first mapping relationship between the pseudowire and the pseudowire scheduling node and the target pseudowire.

[0187] The second maximum required bandwidth of the empty pseudowire scheduling node is the remaining bandwidth after deducting the second maximum required bandwidth of other connected pseudowire scheduling nodes from the first target maximum required bandwidth of the target tunnel scheduling node.

[0188] Optionally, the device further includes: a fifth determining module and a sixth determining module.

[0189] The fifth determination module is configured to determine the tunnel scheduling node corresponding to the target tunnel in the second mapping relationship as the target tunnel scheduling node if it is determined that the target tunnel has a corresponding tunnel scheduling node in the second mapping relationship based on the preset second mapping relationship between the tunnel and the tunnel scheduling node and the target tunnel.

[0190] The sixth determination module is configured to determine the empty tunnel scheduling node connected to the target port scheduling node as the target tunnel scheduling node if it is determined that there is no corresponding tunnel scheduling node in the second mapping relationship between the preset tunnel and the tunnel scheduling node and the target tunnel.

[0191] The first maximum required bandwidth of the empty tunnel scheduling node is the remaining bandwidth after deducting the first maximum required bandwidth of other connected tunnel scheduling nodes from the target total bandwidth of the target port scheduling node.

[0192] The data scheduling device provided in this embodiment is used to execute the data scheduling method of any of the above embodiments. The implementation principle and technical effect of the data scheduling device provided in this embodiment are similar and will not be repeated here.

[0193] Fig.17 FIG. 1 is a schematic diagram of the structure of a data scheduling device provided by an embodiment. Fig.17 As shown, the data scheduling device includes a processor 171 and a memory 172; the number of the processor 171 in the data scheduling device can be one or more. Fig.17 In the example, a processor 171 is used; the processor 171 and the memory 172 in the data scheduling device can be connected by a bus or other means. Fig.17 The example of connecting through bus is taken in the following.

[0194] The memory 172 is a computer-readable storage medium that can be used to store software programs, computer executable programs and modules, such as program instructions / modules corresponding to the data scheduling method in the embodiment of the present application (for example, the first determination module 161, the placement module 162, the first scheduling module 163 and the second scheduling module 164 in the data scheduling device). The processor 171 runs the software programs, instructions and modules stored in the memory 172, thereby implementing various functional applications and data processing of the data scheduling device, that is, realizing the above-mentioned data scheduling method.

[0195] The memory 172 may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system and an application required for at least one function; the data storage area may store data created according to the use of the data scheduling device, etc. In addition, the memory 172 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage devices.

[0196] The embodiment of the present application further provides a storage medium containing computer executable instructions, and when the computer executable instructions are executed by a computer processor, they are used to execute a data scheduling method, the method comprising:

[0197] Determining a target tunnel corresponding to the data to be scheduled according to user indication information of the data to be scheduled;

[0198] Putting the data to be scheduled into the target priority subqueue corresponding to the priority field of the data to be scheduled;

[0199] Scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel;

[0200] The data in the target tunnel scheduling node is scheduled through the target port scheduling node corresponding to the target port; wherein the target port is the port corresponding to the target tunnel.

[0201] Of course, the storage medium containing computer executable instructions provided by the present application is not limited to the method operations described above, and the computer executable instructions can also execute related operations in the data scheduling method provided in any embodiment of the present application.

[0202] The above description is merely an exemplary embodiment of the present application and is not intended to limit the protection scope of the present application.

[0203] In general, various embodiments of the present application can be implemented in hardware or dedicated circuits, software, logic or any combination thereof. For example, some aspects can be implemented in hardware, while other aspects can be implemented in firmware or software that can be executed by a controller, microprocessor or other computing device, although the present application is not limited thereto.

[0204] Those skilled in the art will appreciate that all or some of the steps in the methods disclosed above, and the functional modules / units in the systems and devices may be implemented as software, firmware, hardware, or a suitable combination thereof.

[0205] In hardware implementation, the division between the functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed by several physical components in cooperation. Some physical components or all physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor or a microprocessor, or implemented as hardware, or implemented as an integrated circuit, such as an application-specific integrated circuit. Such software may be distributed on a computer-readable medium, which may include a computer storage medium (or non-transitory medium) and a communication medium (or temporary medium). As known to those of ordinary skill in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by a computer. Furthermore, it is well known to those skilled in the art that communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.

[0206] The preferred embodiments of the present invention are described above with reference to the accompanying drawings, but the scope of the rights of the embodiments of the present invention is not limited thereby. Any modification, equivalent substitution and improvement made by those skilled in the art without departing from the scope and essence of the embodiments of the present invention shall be within the scope of the rights of the embodiments of the present invention.

Claims

1. A data scheduling method, the method comprising: Determine the target tunnel corresponding to the data to be scheduled according to the user indication information of the data to be scheduled; wherein each tunnel corresponds to the data to be scheduled of one user, and different tunnels transmit the data to be scheduled of different users; Putting the data to be scheduled into the target priority subqueue corresponding to the priority field of the data to be scheduled; Scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel; Scheduling the data in the target tunnel scheduling node through the target port scheduling node corresponding to the target port; wherein the target port is the port corresponding to the target tunnel; Before scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel, the method further includes: determining the target pseudowire corresponding to the data to be scheduled according to the service indication information of the data to be scheduled; scheduling the target priority queue to which the target priority subqueue belongs through the target pseudowire scheduling node corresponding to the target pseudowire; wherein the target priority queue, the target pseudowire scheduling node, the target tunnel scheduling node and the target port scheduling node are connected in sequence, the target tunnel connects multiple pseudowires including the target pseudowire, and different pseudowires among the multiple pseudowires correspond to data of different services of the same user; Scheduling the target priority queue to which the target priority subqueue belongs through the target tunnel scheduling node corresponding to the target tunnel includes: scheduling data in the target pseudowire scheduling node through the target tunnel scheduling node corresponding to the target tunnel.

2. The method according to claim 1, characterized in that The target tunnel scheduling node corresponds to a first target minimum required bandwidth; the target port scheduling node corresponds to a target total bandwidth; the at least two tunnel scheduling nodes connected to the target port scheduling node include the target tunnel scheduling node; The step of scheduling the data in the target tunnel scheduling node by the target port scheduling node corresponding to the target port includes: When the sum of all data flows in the at least two tunnel scheduling nodes connected to the target port scheduling node is greater than the target total bandwidth, determining that the target port is congested; When the target port is congested, determining a first actual bandwidth corresponding to the data in the target tunnel scheduling node through the target port scheduling node and according to the first target minimum required bandwidth; The data in the target tunnel scheduling node is sent through the target port scheduling node according to the first actual bandwidth.

3. The method according to claim 2, characterized in that Each of the at least two tunnel scheduling nodes corresponds to a first minimum required bandwidth; The determining, by the target port scheduling node and according to the first target minimum required bandwidth, a first actual bandwidth corresponding to the data in the target tunnel scheduling node includes: Determine the sum of first minimum required bandwidths of all tunnel scheduling nodes connected to the target port scheduling node; Allocate the remaining bandwidth after subtracting the first minimum required bandwidth from the target total bandwidth according to a preset first bandwidth allocation rule to determine a first target allocated bandwidth corresponding to the target tunnel scheduling node; The sum of a first target minimum required bandwidth corresponding to the target tunnel scheduling node and the first target allocated bandwidth is determined as a first actual bandwidth corresponding to the data in the target tunnel scheduling node.

4. The method according to claim 1, characterized in that: The target pseudowire scheduling node corresponds to the second target minimum required bandwidth; the target tunnel scheduling node corresponds to the first target maximum required bandwidth; the at least two pseudowire scheduling nodes connected to the target tunnel scheduling node include the target pseudowire scheduling node; The scheduling of data in the target pseudowire scheduling node through the target tunnel scheduling node corresponding to the target tunnel includes: When the sum of the traffic of all data in the at least two pseudowire scheduling nodes connected to the target tunnel scheduling node is greater than the first target maximum required bandwidth, determining that the target tunnel is congested; When the target tunnel is congested, determining, through the target tunnel scheduling node and according to the second target minimum required bandwidth, a second actual bandwidth corresponding to the data in the target pseudowire scheduling node; The data in the target pseudowire scheduling node is sent through the target tunnel scheduling node according to the second actual bandwidth.

5. The method according to claim 4, characterized in that Each of the at least two pseudowire scheduling nodes corresponds to a second minimum required bandwidth; The determining, through the target tunnel scheduling node and according to the second target minimum required bandwidth, a second actual bandwidth corresponding to the data in the target pseudowire scheduling node includes: Determine the sum of the second minimum required bandwidths of all pseudowire scheduling nodes connected to the target tunnel scheduling node; Allocate the remaining bandwidth after subtracting the second minimum required bandwidth from the first target maximum required bandwidth according to a preset second bandwidth allocation rule to determine a second target allocated bandwidth corresponding to the target pseudowire scheduling node; The sum of the second target minimum required bandwidth corresponding to the target pseudowire scheduling node and the second target allocated bandwidth is determined as the second actual bandwidth corresponding to the data in the target pseudowire scheduling node.

6. The method according to claim 1, characterized in that The target priority subqueue corresponds to a third target minimum required bandwidth, the target pseudowire scheduling node corresponds to a second target maximum required bandwidth, the target priority queue is a set of at least two priority subqueues, the at least two priority subqueues include the target priority subqueue, and each priority subqueue corresponds to the third minimum required bandwidth; The step of scheduling the target priority queue to which the target priority subqueue belongs through the target pseudowire scheduling node corresponding to the target pseudowire includes: When the sum of the traffic of all priority sub-queues included in the target priority queue is greater than the second target maximum required bandwidth, determining that the target pseudo wire is congested; When the target pseudo wire is congested, determining, by the target pseudo wire scheduling node, a third actual bandwidth corresponding to the target priority subqueue according to the third target minimum required bandwidth corresponding to the target priority subqueue; The data in the target priority subqueue is sent through the target pseudowire scheduling node according to the third actual bandwidth.

7. The method according to claim 1, characterized in that Before scheduling the target priority queue to which the target priority subqueue belongs through the target pseudowire scheduling node corresponding to the target pseudowire, the method further includes: If, according to a preset first mapping relationship between a pseudowire and a pseudowire scheduling node and the target pseudowire, it is determined that the target pseudowire has a corresponding pseudowire scheduling node in the first mapping relationship, the pseudowire scheduling node corresponding to the target pseudowire in the first mapping relationship is determined as the target pseudowire scheduling node; If, based on a preset first mapping relationship between a pseudowire and a pseudowire scheduling node and the target pseudowire, it is determined that the target pseudowire does not have a corresponding pseudowire scheduling node in the first mapping relationship, an empty pseudowire scheduling node connected to the target tunnel scheduling node is determined as the target pseudowire scheduling node; wherein the second maximum required bandwidth of the empty pseudowire scheduling node is the remaining bandwidth after deducting the second maximum required bandwidth of other connected pseudowire scheduling nodes from the first target maximum required bandwidth of the target tunnel scheduling node.

8. The method according to claim 1, characterized in that Before scheduling the data in the target pseudowire scheduling node through the target tunnel scheduling node corresponding to the target tunnel, the method further includes: If, according to the preset second mapping relationship between tunnels and tunnel scheduling nodes and the target tunnel, it is determined that the target tunnel has a corresponding tunnel scheduling node in the second mapping relationship, the tunnel scheduling node corresponding to the target tunnel in the second mapping relationship is determined as the target tunnel scheduling node; If, based on the preset second mapping relationship between the tunnel and the tunnel scheduling node and the target tunnel, it is determined that the target tunnel does not have a corresponding tunnel scheduling node in the second mapping relationship, the empty tunnel scheduling node connected to the target port scheduling node is determined as the target tunnel scheduling node; wherein the first maximum required bandwidth of the empty tunnel scheduling node is the remaining bandwidth after deducting the first maximum required bandwidth of other connected tunnel scheduling nodes from the target total bandwidth of the target port scheduling node.

9. A data scheduling device, characterized in that: The device includes a memory, a processor, a program stored in the memory and executable on the processor, and a data bus for realizing connection and communication between the processor and the memory. When the program is executed by the processor, the steps of the data scheduling method as described in any one of claims 1 to 8 are realized.

10. A storage medium for computer-readable storage, characterized in that: The storage medium stores one or more programs, and the one or more programs can be executed by one or more processors to implement the steps of the data scheduling method described in any one of claims 1 to 8.

Citation Information

Patent Citations

  • Service scheduling method and service scheduling device based on Layer 2 Virtual Private Networks (L2VPN)

    CN102546395A