COMMUNICATION DEVICE, SCHEDULING METHOD, AND PROGRAM

JP7652258B2Active Publication Date: 2025-03-27NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023533026
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-07-09
Publication Date
2025-03-27
Estimated Expiration
2041-07-09

AI Technical Summary

Benefits of technology

【0015】 本発明は、複数のキューそれぞれに流入するトラヒックが時々刻々と変化する状況であってもバッファ溢れを防ぐことができる通信装置、スケジューリング方法、及びプログラムを提供することができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007652258000001
    Figure 0007652258000001
  • Figure 0007652258000002
    Figure 0007652258000002
  • Figure 0007652258000003
    Figure 0007652258000003
Patent Text Reader

Abstract

The purpose of the present invention is to provide a communication device, a scheduling method, and a program that can prevent a buffer overflow even in a situation in which traffic flowing into each of multiple queues changes from moment to moment. A communication device according to the present invention includes: a remaining queue amount monitoring unit 14 that obtains a queue length of each of multiple queues 13; an inflow amount monitoring unit 15 that obtains the amount of data inflow into each of the queues 13; and a controller 17 that calculates, for each of the queues 13, a remaining time until a buffer overflow occurs on the basis of the queue length and the amount of data inflow, calculates the ratio of the reciprocal of the remaining time for each of the queues 13, and sets the product of an amount of data, which can be output from an output unit 11 per unit time, and the ratio as a data output amount of each of the queues 13.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a communication device, a scheduling method, and a program that utilizes QoS (Quality of Service). [Background technology]

[0002] With the spread of IoT (Internet of Things) and remote work, communication traffic continues to increase year by year. As one method of efficiently handling the ever-increasing traffic, QoS, which schedules packets according to the characteristics of the application, is used in communication networks. Various QoS algorithms are used to meet delay and bandwidth requirements. When there are multiple queues, round-robin scheduling is used, but a method that allocates transmission opportunities equally to all queues is often adopted.

[0003] For example, Patent Document 1 discloses a rate control method that dynamically controls bandwidth allocation for input traffic with a quality of service. This method sets a threshold for queues, and when a high-priority queue exceeds the set threshold, it deals with an increase in traffic by lowering the transmission rate of queues other than high-priority and increasing the transmission rate of the high-priority queue. This method prevents quality degradation due to delays within the class by increasing the transmission rate of the class queue where traffic has increased. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2002-344509 A Summary of the Invention [Problem to be solved by the invention]

[0005] The technology of Patent Document 1 prevents quality degradation due to delays by increasing the transmission rate of one specific queue, and also prevents packet discards due to buffer overflow. However, the technology of Patent Document 1 has a problem in that it is difficult to prevent packet discards and buffer overflows in other queues because it lowers the transmission rate of other queues.

[0006] In addition, the technology in Patent Document 1 monitors the amount of packets accumulated in the queue to control the transmission rate, but because it does not take into account the amount of packets flowing into the queue, there is an issue that it is difficult to correctly predict the risk of buffer overflow.

[0007] Specifically, when comparing a situation where the amount of packets stored in the queue is small but the amount of packets flowing into the queue increases rapidly with a situation where the amount of packets stored in the queue is large but the amount of packets flowing into the queue is small, the former is more likely to cause a buffer overflow. However, it is difficult to predict the possibility of a buffer overflow occurring in the former case by simply monitoring the amount of packets stored in the queue.

[0008] Therefore, in order to solve the above problem, the present invention aims to provide a communication device, a scheduling method, and a program that can prevent buffer overflow even in a situation where the traffic flowing into each of multiple queues changes from moment to moment. [Means for solving the problem]

[0009] In order to achieve the above object, the scheduling method of the present invention monitors both the amount of packets accumulated in a queue and the amount of packets flowing into the queue, and determines the output amount from each queue from these two observed amounts.

[0010] Specifically, the communication device according to the present invention comprises: a queue remaining amount monitoring unit for acquiring queue lengths of a plurality of queues; an inflow monitoring unit for acquiring the amount of data inflow into each of the queues; a controller that calculates, for each of the queues, a remaining time until a buffer overflow occurs from the queue length and the amount of data inflow, calculates a ratio for each of the queues with respect to the inverse of the remaining time, and determines the data output amount of each of the queues as the product of the ratio and the amount of data per unit time that can be output from an output port; Equipped with.

[0011] Further, the scheduling method according to the present invention comprises: Getting the queue lengths of multiple queues; acquiring an amount of data flowing into each of the queues; calculating, for each of the queues, a remaining time until a buffer overflow occurs from the queue length and the amount of data inflow; calculating a ratio for each of the queues of the inverse of the remaining time; and The product of the amount of data per unit time that can be output from an output port and the ratio is set as the data output amount of each of the queues. It is characterized by:

[0012] The scheduling method of the present communication device determines the queue output amount taking into consideration the amount of packets flowing into each queue (buffer), and is therefore able to track changes in the amount of inflow. Furthermore, the scheduling method of the present communication device determines the queue output amount taking into consideration the remaining amount of the queue, making it difficult for buffer overflow to occur. Thus, the present invention can provide a communication device and a scheduling method that can prevent buffer overflow even in a situation where the traffic flowing into each of a plurality of queues changes from moment to moment.

[0013] The present invention also relates to a program for operating a computer as the communication device. The data collection device of the present invention can also be realized by a computer and a program, and the program can be recorded on a recording medium or provided via a network.

[0014] The above-mentioned inventions can be combined as much as possible. Effect of the Invention

[0015] The present invention can provide a communication device, a scheduling method, and a program that can prevent buffer overflow even in a situation where the traffic flowing into each of a plurality of queues changes from moment to moment. [Brief description of the drawings]

[0016] [Figure 1] FIG. 1 is a diagram illustrating a communication device according to the present invention. [Diagram 2] FIG. 2 is a diagram illustrating a scheduling method according to the present invention. [Diagram 3] FIG. 1 is a diagram illustrating the effects of the present invention. [Figure 4] FIG. 1 is a diagram illustrating the effects of the present invention. [Diagram 5] FIG. 1 is a diagram illustrating the effects of the present invention. [Figure 6] FIG. 1 is a diagram illustrating the effects of the present invention. [Figure 7] FIG. 1 is a diagram illustrating the effects of the present invention. [Figure 8] FIG. 1 is a diagram illustrating the effects of the present invention. [Figure 9] FIG. 2 is a diagram illustrating a controller provided in a communication device according to the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] The embodiments of the present invention will be described with reference to the accompanying drawings. The embodiments described below are examples of the present invention, and the present invention is not limited to the following embodiments. Note that components with the same reference numerals in this specification and drawings indicate the same components.

[0018] (Embodiment 1) FIG. 1 is a block diagram for explaining a communication device according to the present embodiment. A queue remaining amount monitor 14 for acquiring queue lengths of a plurality of queues 13; an inflow monitoring unit 15 for acquiring the amount of data inflow into each queue 13; a controller 17 for calculating, for each queue 13, the remaining time until a buffer overflow occurs from the queue length and the amount of data inflow, calculating a ratio for each queue 13 of the inverse of the remaining time, and determining the data output amount of each queue 13 as the product of the amount of data per unit time that can be output from an output unit 11 and the ratio; Equipped with. The communication device in FIG. 1 has a configuration in which the number of queues is four, but the number of queues is not limited to four.

[0019] The communication device is, for example, a router. The input unit 16 receives packets transmitted from outside the communication device. The input unit 16 distributes the received packets to a plurality of queues 13 according to priority order or application. The inflow amount monitoring unit 15 monitors how much data (packets) is flowing into each queue 13 . The queue remaining capacity monitoring unit 14 monitors the remaining capacity (queue length) of each queue 13 . The reading unit 12 reads data from the queue 13 by the output amount notified by the controller 17 . The output unit 11 collects the data output from each queue 13 and outputs it to the outside of the communication device.

[0020] The controller 17 obtains information from the inflow amount monitor 15 and the queue remaining amount monitor 14 at each predetermined control cycle, and determines the output amount of all the queues 13 as shown in FIG. Step S01: The current remaining amount (queue length) of each queue 13 is obtained from the queue remaining amount monitor 14. Step S02: The amount of data flowing into each queue 13 is obtained from the flow amount monitor 15. Step S03: From the acquired queue length and data inflow amount, the remaining time until the buffer of each queue 13 overflows is calculated. Step S04: Calculate the ratio of the reciprocal of the time until the buffer of each queue 13 overflows, and determine the product of this ratio and the amount of data that can be output as the output amount from each queue 13. Here, the "amount of data that can be output" refers to the amount of data per unit time that can be output from the output unit 11. For example, if the output bandwidth of the output unit 11 is 1 Gbps, the amount of data that can be output is 1 Gbps if the output bandwidth can be fully used, but if only 500 Mbps is available due to bandwidth control or the like, the amount of data that can be output is 500 Mbps. Step S05: The output amount of each queue is notified to the reading unit 12. Step S06: The above steps S01 to S05 are repeated at a predetermined interval (control cycle).

[0021] (Calculation example of step S04) There are three queues, and the time until each queue overflows is Assuming 15msec, 20msec, and 50msec, The reciprocal ratio is 1 / 15:1 / 20:1 / 50≒7:3:2 So, if the amount of output that can be produced is 1, The output per unit time from the three queues is The results are 7 / 12 (≒0.58), 3 / 12 (≒0.25), and 2 / 12 (≒0.17).

[0022] [Example] Changes in the amount of data flowing into each queue 13, the queue length of each queue, and the amount of data output in this communication device will now be described. The initial amounts of packets (queue lengths) stored in each queue are set to 10 for queue 13#1, 8 for queue 13#2, 5 for queue 13#3, and 5 for queue 13#4. The maximum queue lengths are all set to 20. The amount that can be output is also set to 8.

[0023] (Example 1) In this example, a case where the amount of data flowing into each queue 13 is constant as shown in Fig. 3 will be described. The horizontal axis of Fig. 3 is time (number of control cycles) and the vertical axis is the amount of data flowing in. The amount of data flowing in is 1 for queue 13#1, 2 for queue 13#2, 3 for queue 13#3, and 4 for queue 13#4.

[0024] Fig. 4 is a diagram for explaining the queue length of each queue 13 when this scheduling control is performed. The horizontal axis of Fig. 4 is time (number of control cycles), and the vertical axis is queue length. The graph shows that regardless of differences in inflow patterns, output adjustment is made so that all queues are filled to their maximum value, making it difficult for packet loss to occur.

[0025] Fig. 5 is a diagram for explaining the amount of data output from each queue 13 when this scheduling control is performed. The horizontal axis of Fig. 5 is time (number of control cycles), and the vertical axis is the amount of data output in the next cycle. The amount of data output corresponds to the amount of data inflow.

[0026] (Example 2) In this example, a case will be described in which the amount of data flowing into each queue 13 changes from moment to moment as shown in Fig. 6. The horizontal axis of Fig. 6 represents time (the number of control cycles), and the vertical axis represents the amount of data flowing.

[0027] Fig. 7 is a diagram for explaining the queue length of each queue 13 when this scheduling control is performed. The horizontal axis of Fig. 7 is time (number of control cycles), and the vertical axis is queue length. The graph shows that regardless of differences in inflow patterns, output adjustment is made so that all queues are filled to their maximum value, making it difficult for packet loss to occur.

[0028] Fig. 8 is a diagram for explaining the amount of data output from each queue 13 when this scheduling control is performed. The horizontal axis of Fig. 8 is time (number of control cycles), and the vertical axis is the amount of data output in the next cycle. The amount of data output can keep up with the change in the amount of data inflow.

[0029] (Embodiment 2) The controller 17 can also be realized by a computer and a program, and the program can be recorded on a recording medium or provided via a network. 11 shows a block diagram of a system 100. The system 100 includes a computer 105 connected to a network 135.

[0030] Network 135 is a data communications network. Network 135 may be a private or public network and may include any or all of the following: (a) a personal area network, e.g., covering a room; (b) a local area network, e.g., covering a building; (c) a campus area network, e.g., covering a campus; (d) a metropolitan area network, e.g., covering a city; (e) a wide area network, e.g., covering an area that crosses city, regional, or national boundaries; or (f) the Internet. Communications are conducted by electronic and optical signals over network 135.

[0031] Computer 105 includes a processor 110 and a memory 115 connected to processor 110. Although computer 105 is depicted herein as a stand-alone device, it is not limited to such, but rather may be connected to other devices not shown in a distributed processing system.

[0032] Processor 110 is an electronic device made up of logic circuits that responds to and executes instructions.

[0033] The memory 115 is a tangible computer-readable storage medium in which a computer program is encoded. In this regard, the memory 115 stores data and instructions, i.e., program code, that can be read and executed by the processor 110 to control the operation of the processor 110. The memory 115 can be implemented as a random access memory (RAM), a hard drive, a read-only memory (ROM), or a combination thereof. One component of the memory 115 is a program module 120.

[0034] The program modules 120 include instructions for controlling the processor 110 to perform the processes described herein. Although operations are described herein as being performed by the computer 105 or a method or process or sub-process thereof, those operations are actually performed by the processor 110.

[0035] The term "module" is used herein to refer to a functional operation that may be embodied either as a stand-alone component or as an integrated configuration of multiple subcomponents. Thus, program module 120 may be implemented as a single module or as multiple modules operating in coordination with one another. Furthermore, although program module 120 is described herein as being installed in memory 115 and thus implemented in software, it may be implemented in any of hardware (e.g., electronic circuitry), firmware, software, or a combination thereof.

[0036] Although the program module 120 is shown as already loaded into the memory 115, it may be configured to be located on the storage device 140 for later loading into the memory 115. The storage device 140 is a tangible computer-readable storage medium that stores the program module 120. Examples of the storage device 140 include compact disks, magnetic tapes, read-only memories, optical storage media, memory units consisting of a hard drive or multiple parallel hard drives, and Universal Serial Bus (USB) flash drives. Alternatively, the storage device 140 may be a random access memory or other type of electronic storage device located in a remote storage system not shown and connected to the computer 105 via the network 135.

[0037] System 100 further includes data source 150A and data source 150B, collectively referred to herein as data sources 150, that are communicatively connected to network 135. In practice, data sources 150 may include any number of data sources, i.e., one or more data sources. Data sources 150 may include unstructured data and may include social media.

[0038] The system 100 further includes a user device 130 operated by the user 101 and connected to the computer 105 via a network 135. The user device 130 includes an input device, such as a keyboard or a voice recognition subsystem, to enable the user 101 to communicate information and command selections to the processor 110. The user device 130 further includes an output device, such as a display device or a printer or a voice synthesizer. A cursor control, such as a mouse, trackball, or touch-sensitive screen, enables the user 101 to manipulate a cursor on a display device to communicate further information and command selections to the processor 110.

[0039] The processor 110 outputs the results 122 of the execution of the program modules 120 to a user device 130. Alternatively, the processor 110 can provide the output to a storage device 125, such as a database or memory, or via a network 135 to a remote device, not shown.

[0040] 2 may be the program module 120. The system 100 may operate as the controller 17.

[0041] The term "comprising" or "comprising" is to be interpreted as specifying the presence of the stated features, integers, steps or components, but not excluding the presence of one or more other features, integers, steps or components or groups thereof. The terms "a" and "an" are indefinite articles and therefore do not exclude embodiments having a plurality thereof.

[0042] (Other embodiments) In addition, the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the present invention. In short, the present invention is not limited to the above-described embodiment, and the components can be modified and embodied without departing from the scope of the present invention at the implementation stage.

[0043] In addition, various inventions can be formed by appropriately combining the multiple components disclosed in the above embodiments. For example, some components may be deleted from all the components shown in the embodiments. Furthermore, components across different embodiments may be appropriately combined. [Explanation of symbols]

[0044] 11: Output section 12: Readout section 13: Queue 14: Queue remaining amount monitoring section 15:Inflow monitoring section 16: Input section 17: Controller 100: System 101:User 105: Computer 110: Processor 115: Memory 120: Program module 122:Result 125: Storage device 130: User device 135: Network 140: Storage device 150: Data source

Claims

1. A system comprising a queue remaining amount monitor, an inflow amount monitor, and a controller, The controller, for each predetermined control cycle, obtaining current queue lengths of the plurality of queues monitored by the queue remaining amount monitoring unit; acquiring the amount of data inflow into each of the queues monitored by the inflow amount monitoring unit; calculating, for each of the queues, a remaining time until a buffer overflow occurs from the queue length and the amount of data inflow; calculating a ratio for each of the queues of the inverse of the remaining time; and The product of the amount of data per unit time that can be output from an output port and the ratio is set as the data output amount of each of the queues. A communication device that performs output control including:

2. For each predetermined control cycle, Getting the current queue lengths of multiple queues; acquiring an amount of data flowing into each of the queues; calculating, for each of the queues, a remaining time until a buffer overflow occurs from the queue length and the amount of data inflow; calculating a ratio for each of the queues of the inverse of the remaining time; and The product of the amount of data per unit time that can be output from an output port and the ratio is set as the data output amount of each of the queues. A scheduling method for performing output control, comprising:

3. A program for causing a computer to operate as the communication device according to claim 1.

Citation Information

Patent Citations

  • Multiplex access scheduling system for dynamic image information

    JP1995093237A

  • Method and device for relaying data

    JP2002217969A

  • Method for controlling readout rate of router and packet and its process program

    JP2002344509A

  • Method for controlling charge in continuous heating furnace

    JP2003096519A

  • Optical network system, optical switch node, master node, and node

    WO2013187474A1