The present disclosure relates to a communication control technique.
IEEE802.1Q-2018 defines a Time Aware Shaper (TAS). The TAS is a mechanism for transferring in an Ethernet (registered trademark) network in a time-division manner, communication frames (hereinafter, also simply referred to as frames) each of which is at a different priority level.
A switch conforming to the TAS maintains a gate for each queue of a transmission port. At the gate, the transmission of a frame or the suspension of the transmission is performed. When the gate is Open, the frame is transmitted. On the other hand, when the gate is Close, the transmission of the frame is suspended.
A controller connected to the network calculates opening and closing timings of the gate for each queue. The controller sets a calculation result (a schedule) to each switch. By setting the calculation result to each switch, the controller can limit the flow rate of a frame at each priority level, and can control an End-to-End delay.
Conventional scheduling methods are broadly classified into two types which are Stream-Based (SB) and Class-Based (CB) (for example, Non-Patent Literature 1).
The SB is a method of securing an Open time (hereinafter, the Open time is referred to as a time slot) of the gate in a unit of frame. On the other hand, the CB is a method of securing the time slot in a unit of group of frames having the same priority levels. Specifically, the CB is a method of securing the time slot in a unit of class of queues.
In general, the number of constraint conditions for generating the schedule is greater in the SB than in the CB, and precise scheduling in the unit of frame is implemented in the SB. Further, a queuing delay can be theoretically controlled to 0 in the SB. Therefore, the SB has higher delay guarantee performance for an End-to-End communication stream (hereinafter, simply also referred to as a stream), compared to that of the CB.
In the CB, the time slot is set only once for each class within a cycle time. Therefore, in the CB, resources (a memory of a computer and an arithmetic operation time) necessary for scheduling do not depend on the scale of the network, and fewer resources are necessary for the scheduling, compared to those in the SB.
The SB scheduling is an NP-hard problem. Further, the SB requires many resources for the scheduling as the scale of the network increases. Further, another problem is that the number of time slots is generally greater than that of CB.
Further, in the CB scheduling, transmission requests may be issued in a time slot for a plurality of frames which belong to different streams. Therefore, a queuing delay may occur in the CB scheduling. Therefore, the CB has the problem of lower delay guarantee performance in the End-to-End stream, compared to that of the SB.
Furthermore, a decision whether the SB is necessary or the CB is sufficient for a certain stream is made depending on network configurations such as characteristics (a transmission cycle, a priority level, and the like) of the stream and requirements (an End-to-End allowable delay and the like). Therefore, it is difficult to selectively use the SB and the CB appropriately for each stream. That is, the problem is that it is difficult to apply to a single network, scheduling having the SB and the CB combined.
Further, failing to selectively use the SB and the CB appropriately, for example, using the SB excessively, arises a problem of consuming too much resource and generating more time slots than necessary.
One of main purposes of the present disclosure is to solve problems such as above. More specifically, the present disclosure mainly aims to decide to a communication stream, an appropriate method for allocating a time slot.
A communication control apparatus according to the present disclosure includes:
According to the present disclosure, it is possible to decide to a communication stream, an appropriate method for allocating a time slot.
Embodiments will be described hereinafter with reference to the drawings. In the following description of the embodiments and the drawings, portions denoted by the same reference signs indicate the same or corresponding portions.
In the present embodiment, a configuration will be described in which an appropriate method for allocating a time slot is decided to each communication stream accommodated in a network.
More specifically, the present embodiment deices to each communication stream, either of a method (a frame allocation method) for allocating the time slot in a unit of communication frame and a method (a group allocation method) for allocating the time slot in a unit of group of one or more communication frames that have common attributes.
In the present embodiment, the description will be continued using the SB as a specific example of the frame allocation method and using the CB as a specific example of the group allocation method.
The network 1000 according to the present embodiment is configured with one controller 100, three switches 200, and two nodes 300. The configuration of the network 1000 illustrated in
In the present embodiment, a plurality of communication frames that belongs to a plurality of communication streams is transmitted and received between the node 300 and the node 300 via one or more switches 200.
The controller 100 decides to each communication stream, the allocation method of the time slot, and calculates a schedule. Further, the controller 100 sets the schedule obtained by the calculation to each of the switches 200.
The controller 100 is equivalent to a communication control apparatus. An operational procedure of the controller 100 is equivalent to a communication control method. Further, a program that implements operation of the controller 100 is equivalent to a communication control program.
The switch 200 is a transfer device that transfers a communication frame. The communication frame is, for example, an Ethernet (registered trademark) frame.
The node 300 transmits and receives the plurality of communication frames that belongs to the plurality of communication streams, via the switches 200.
The controller 100 according to the present embodiment is a computer.
The controller 100 includes a processor 901, a main storage device 902, an auxiliary storage device 903, a communication interface 904, and an input/output device 905, as pieces of hardware.
The auxiliary storage device 903 stores programs that implement functions of a network information acquisition unit 101, a network information processing unit 102, a schedule policy decision unit 103, a schedule calculation unit 104, and a schedule result output unit 105 to be described below.
These programs are loaded from the auxiliary storage device 903 into the main storage device 902. Then, the processor 901 executes these programs and performs operation of the network information acquisition unit 101, the network information processing unit 102, the schedule policy decision unit 103, the schedule calculation unit 104, and the schedule result output unit 105 to be described below.
Further, the processor 901 performs writing and reading of values of various variable values used in the schedule calculation to and from the main storage device 902.
The communication interface 904 transmits to each of the switches 200, the schedule obtained by the calculation.
The input/output device 905 receives input of network information to be described below. Further, the input/output device 905 outputs the schedule. When a result of “no solution exists” to be described below is obtained, the input/output device 905 outputs a message that notifies of the result of “no solution exists”.
The network information acquisition unit 101 acquires network information.
Details of the network information will be described below.
The network information processing unit 102 generates parameters necessary for the schedule calculation.
The schedule policy decision unit 103 decides to each communication stream, a method for allocating the time slot. The time slot is, as described above, an Open time at a gate in the switch 200. That is, the time slot is a time for transmitting a communication frame.
The schedule policy decision unit 103 decides to each communication stream, according to which of the SB (the frame allocation method) or the CB (the group allocation method) the time slot is allocated to the communication frame.
More specifically, the schedule policy decision unit 103 determines for each communication stream, whether a delay that is estimated to occur when the CB is applied to the communication frame included in the communication stream is allowed or not. Then, when the delay is allowed, the schedule policy decision unit 103 decides to allocate the time slot according to the CB. On the other hand, when the delay is not allowed, the schedule policy decision unit 103 decides to allocate the time slot according to the SB.
The schedule policy decision unit 103 is equivalent to an allocation method decision unit. Further, a process performed by the schedule policy decision unit 103 is equivalent to an allocation method decision process.
The schedule calculation unit 104 performs calculation (calculates the schedule) to allocate the time slot to the communication frame included in each communication frame according to the allocation method decided by the schedule policy decision unit 103.
The schedule calculation unit 104 is equivalent to a time slot allocation unit. Further, a process performed by the schedule calculation unit 104 is equivalent to a time slot allocation process.
The schedule result output unit 105 outputs to the input/output device 905, a schedule result by the schedule calculation unit 104. Further, when the result of “no solution exists” to be described below is obtained, the schedule result output unit 105 outputs to the input/output device 905, a message that notifies of the result of “no solution exists”.
The schedule result output unit 105 is equivalent to a notification unit.
Next, an operational example of the controller 100 according to the present embodiment will be described.
Here, the operational example of the controller 100 from acquiring the network information to outputting a schedule result will be described with reference to
First, in step S101, the network information acquisition unit 101 acquires the network information. The network information acquisition unit 101 outputs the acquired network information to the network information processing unit 102 and the schedule calculation unit 104.
Here, the network information includes the following information.
The topology information indicates the topology of the network 1000. That is, the topology information indicates connection relations between devices included in the network 1000.
Specifically, the topology information indicates which node 300 is connected to which switch 200, and which switch 200 is connected to which switch 200.
The link speed information indicates a communication speed of a link, for each link included in the network 1000.
Specifically, the link speed information indicates the communication speed of each of a link between a node and a switch and a link between a switch and a switch.
The stream information is information on a communication stream. The stream information indicates a transmission source node, a transmission destination node, a communication path, a transmission cycle, a priority level, an End-to-End allowable delay, and the like, for each communication stream.
The transmission source node is the node 300 at a transmission source of the communication frame.
The transmission destination node is the node 300 at a transmission destination of the communication frame.
The communication path is a relay path of the communication frame between the transmission source node and the transmission destination node.
The transmission cycle is a cycle at which the transmission source node transmits the communication frame.
The priority level is a priority level set to the communication frame.
The End-to-End allowable delay is an allowable value of a delay time for the communication frame transmitted from the transmission source node to arrive at the transmission destination node.
Next, in step S102, the network information processing unit 102 generates from the network information, parameters necessary for the schedule calculation.
The parameters necessary for the schedule calculation include a frame transmission time, a cycle time (AdminCycleTime defined in IEEE 802.1Q-2018), and the like, of each communication stream.
The cycle time is calculated by, for example, the least common multiple or the greatest common divisor of the transmission cycle of a stream accommodated in the network.
The network information processing unit 102 notifies the schedule policy decision unit 103 and the schedule calculation unit 104 of the generated parameters.
Next, in step S103, the schedule policy decision unit 103 decides to each communication stream, the allocation method of the time slot. That is, the schedule policy decision unit 103 decides to each communication stream, whether the time slot is allocated to a communication frame included in the communication stream according to the SB or according to the CB. The allocation method (the SB or the CB) of the time slot for each communication frame decided by the schedule policy decision unit 103 is referred to as a schedule policy for each communication stream.
Further, the schedule policy decision unit 103 decides the number of classes to be used in the SB and the number of classes to be used in the CB.
The schedule policy decision unit 103 notifies the schedule calculation unit 104 of the schedule policy for each communication stream, the number of classes to be used in the SB, and the number of classes to be used in the CB.
Details of step S103 will be described below with reference to
Next, in step S104, the schedule calculation unit 104 generates constraint conditions of the schedule based on the following information. Further, the schedule calculation unit 104 calculates a solution (=a schedule) that satisfies all of the constraint conditions.
The constraint conditions includes a constraint condition that is common to the SB and the CB, and a constraint condition that is different between the SB and the CB.
As the constraint condition common to the SB and the CB, there is a constraint condition that an End-to-End delay that occurs when a communication frame is transferred according to the schedule obtained by the calculation must not exceed an End-to-End allowable delay of the corresponding communication stream, for example.
Each of a constraint condition specific to the SB and a constraint condition specific to the CB can be arbitrarily set by an administrator of the network 1000 according to the operational policy of the network 1000.
Since the SB is decided as the schedule policy for a communication stream whose allowable delay is severe, the SB is set to a high priority class and the CB is set to a low priority class.
In the example of
The schedule calculation unit 104 may generate the schedule common to all of the switches 200 or may generate the schedule for each of the switches 200, depending on the stream information.
In a case of “solution exists” in step S104, the process of step S105 is performed. The “solution exists” case is a case where the schedule that satisfies all of the constraint conditions is generated. That is, the “solution exists” case is a case where the result (the allocation result) of allocating the time slot to the communication frame of each communication stream according to the schedule policy satisfies the constraint conditions.
In the case of “solution exists”, the schedule result output unit 105 outputs the schedule in step S105.
The schedule result output unit 105 may output the schedule to the input/output device 905, or may output the schedule to the communication interface 904. When the schedule result output unit 105 outputs the schedule to the input/output device 905, the schedule can be presented to the administrator of the network 1000 who operates the controller 100. Further, when the schedule result output unit 105 outputs the schedule to the communication interface 904, the schedule is transmitted from the communication interface 904 to each of the switches 200.
On the other hand, in a case of “no solution exists” in step S104, the process of step S106 is performed. The “no solution exists” case is a case where the schedule that satisfies all of the constraint conditions cannot be generated. That is, the “no solution exists” case is a case where the result (the allocation result) of allocating the time slot to the communication frame of each communication stream according to the schedule policy does not satisfy the constraint conditions.
In the case of “no solution exists”, the schedule result output unit 105 outputs in step S106, a message that notifies of “no solution exists” and a cause of “no solution exists”. Specifically, the schedule result output unit 105 outputs to the input/output device 905, the message that notifies of “no solution exists” and the cause of “no solution exists”.
Thereby, the administrator of the network 1000 who operates the controller 100 can recognize the fact of “no solution exists” and the cause of “no solution exists”.
The schedule result output unit 105 notifies of a constraint condition that is not satisfied, as the cause of “no solution exists”, for example.
The administrator of the network 1000 can consider a countermeasure for obtaining the solution (=the schedule), by referring to the cause of “no solution exists” notified by the schedule result output unit 105. The administrator can reconsider the configuration of the network 1000, elements defined in the stream information, and a threshold value calculation method (step S201) to be described below, as the countermeasure for obtaining the solution, for example. The elements defined in the stream information are, as described above, the transmission source node, the transmission destination node, the communication path, the transmission cycle, the priority level, the End-to-End allowable delay, and the like.
Further, the schedule result output unit 105 may notify of the countermeasure for obtaining the solution, in addition to the cause of “no solution exists”. That is, the schedule result output unit 105 may notify of the countermeasure that enables the allocation result of the time slot to satisfy the constraint conditions. The schedule result output unit 105 notifies of, for example, a modification proposal for the configuration of the network 1000, a modification proposal for the elements defined in the stream information, a modification proposal for the threshold value calculation method (step S201), and the like, as the countermeasure for obtaining the solution.
Next, details of step S103 (a schedule policy decision process) of
First, in step S201, the schedule policy decision unit 103 calculates a threshold value.
The threshold value obtained in step S201 is a value to be compared with AD_i to be described below.
The schedule policy decision unit 103 calculates one value that is applied throughout the network 1000, as the threshold value. The schedule policy decision unit 103 can obtain the threshold value by dividing the cycle time obtained in step S102 by the number of classes of transmission queues to be used in each of the switches 200, for example. When the cycle time is 80 ms and the number of classes is 8, the schedule policy decision unit 103 obtains 10 ms as the threshold value, for example.
Steps S202 to S208 is a loop process performed for each stream.
Here, “i” is a variable value for counting the number of streams. The value of “i” is incremented each time when the loop process of steps S202 to S208 ends. When the value of “i” reaches the number of streams that are in the network 1000, the loop process is completed.
In step S203, the schedule policy decision unit 103 determines whether or not the stream information on a stream i is known.
“The stream information is known” means that the stream information includes information necessary for calculation of AD_i. When the stream information does not include the information necessary for the calculation of AD_i, the schedule policy decision unit 103 determines that the stream information is not known. Further, when the stream information on the stream i has not been obtained, the schedule policy decision unit 103 determines that the stream information is not known.
When the stream information on the stream i is not known (NO in step S203), the process proceeds to step S204.
In step S204, the schedule policy decision unit 103 classifies the stream i into the CB.
That is, the schedule policy decision unit 103 determines that the time slot of the communication frame included in the stream i is allocated according to the CB.
On the other hand, when the stream information on the stream i is known (YES in step S203), the process proceeds to step S205.
In step S205, the schedule policy decision unit 103 calculates AD_i for the stream i.
AD_i is an index value of a queuing delay allowed on the stream i. The queuing delay is a delay that occurs due to queuing in one of the switches 200, and strictly speaking, is a time during which a frame remains in a queue because the gate is Close or another fame is transmitted earlier even if the gate is Open. Here, a specific example of AD_i (the index vlaue) will be described with reference to
Further. AD_i may be an index value of a fluctuation in a queuing delay allowed on the stream i.
The fluctuation in the queuing delay is a difference between a maximum delay time in the queuing delay and a minimum delay time in the queuing delay. When the End-to-End allowable delay is set to the stream i, AD_i may be an index value of the queuing delay allowed on the stream i, and when the End-to-End allowable delay fluctuation is set to the stream i, AD_i may be an index value of the fluctuation in the queuing delay allowed on the stream i.
The schedule policy decision unit 103 calculates AD_i, using parameters such as the number of hops of the stream i, a transmission cycle, an End-to-End allowable delay, and an End-to-End allowable delay fluctuation. Specifically, as described in the description of the specific example of AD_i, AD_i is a value obtained by dividing by the number of hops of the stream i, a time obtained by subtracting from the End-to-End allowable delay, the End-to-End delay in the case where no queuing delay occurs at all of the switches on the communication path. The End-to-End allowable delay in the present calculation formula may be replaced with the transmission cycle of the stream i, or the End-to-End allowable delay fluctuation.
The number of hops of the stream i is the number of switches through which a communication frame included in the stream i is transferred from the node 300 at the transmission source to the node 300 at the transmission destination.
The transmission cycle is a transmission cycle of a communication frame in the node 300 at the transmission source of the communication frame included in the stream i.
The End-to-End allowable delay is an allowable value for a delay time of a communication frame included in the stream i, from the node 300 at the transmission source to the node 300 at the transmission destination.
The End-to-End allowable delay fluctuation is an allowable value for a fluctuation in a delay time of a communication frame included in the stream i, from the node 300 at the transmission source to the node 300 at the transmission destination. The fluctuation in the delay time is a difference between a maximum delay time and a minimum delay time.
Next, in step S206, the schedule policy decision unit 103 compares the threshold value obtained in step S201 to AD_i obtained in S205.
When AD_i is less than the threshold value (YES in step S206), the process proceeds to step S207.
On the other hand, when AD_i is equal to or greater than the threshold value (NO in step S206), the process proceeds to step S204.
In step S207, since it is likely that the CB does not satisfy the allowable delay, the schedule policy decision unit 103 classifies the stream i into the SB.
That is, the schedule policy decision unit 103 determines that a delay (a delay at one of the switches 200) estimated to occur when the CB is applied to the stream i is not allowed, and decides that the time slot of the communication frame included in the stream i is allocated according to the SB.
In such a manner, the schedule policy decision unit 103 determines whether or not the delay estimated to occur when the CB is applied is allowed in the stream i, by comparing AD_i to the threshold value.
On the other hand, in step S204, since it is likely that the CB satisfies the allowable delay, the schedule policy decision unit 103 classifies the stream i into the CB.
That is, the schedule policy decision unit 103 determines that a delay (a delay at one of the switches 200) estimated to occur when the CB is applied to the stream i is allowed, and decides that the time slot of the communication frame included in the stream i is allocated according to the CB.
Finally, in step S209, the schedule policy decision unit 103 decides each of the number of classes for the SB and the number of classes for the CB in such a way that the sum of the number of classes for the SB and the number of classes for the CB is equal to the number of classes of transmission queues used at each of the switches 200. The schedule policy decision unit 103 can flexibly modify the decision procedure of the number of classes depending on stream information, an object (a resource consumption amount or the like) to be optimized, or the like.
As described above, in the present embodiment, scheduling is performed by appropriately combining the SB and the CB. Therefore, according to the present embodiment, while an allowable delay of each stream is satisfied, consumptions of resources (a memory of a computer and an arithmetic operation time) and the number of time slots to be generated can be reduced, and optimal scheduling can be realized.
The procedures described in the present embodiment are examples.
Therefore, only a part of the procedures described in the present embodiment may be implemented.
Alternatively, at least a part of the procedures described in the present embodiment and a procedure not described in the present embodiment may be implemented in combination.
Further, the configurations and procedures described in the present embodiment may be modified as necessary.
Finally, a supplementary description of a hardware configuration of the controller 100 will be given.
The processor 901 illustrated in
The processor 901 is a Central Processing Unit (CPU), a Digital Signal Processor (DSP), or the like.
The main storage device 902 illustrated in
The auxiliary storage device 903 illustrated in
The communication interface 904 illustrated in
The communication interface 904 is, for example, a communication chip or a Network Interface Card (NIC).
The input/output device 905 illustrated in
Further, the auxiliary storage device 903 also stores an Operating System (OS).
Then, at least a part of the OS is executed by the processor 901.
While executing at least the part of the OS, the processor 901 executes programs that implement functions of the network information acquisition unit 101, the network information processing unit 102, the schedule policy decision unit 103, the schedule calculation unit 104, and the schedule result output unit 105.
By the processor 901 executing the OS, task management, memory management, file management, communication control, and the like are performed.
Further, at least one of information, data, a signal value, and a variable value that indicate results of processes of the network information acquisition unit 101, the network information processing unit 102, the schedule policy decision unit 103, the schedule calculation unit 104, and the schedule result output unit 105 is stored in at least one of the main storage device 902, the auxiliary storage device 903, and a register and a cache memory in the processor 901.
Further, the programs that implement the functions of the network information acquisition unit 101, the network information processing unit 102, the schedule policy decision unit 103, the schedule calculation unit 104, and the schedule result output unit 105 may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disc, a compact disc, a Blu-ray (registered trademark) disc, or a DVD. Then, the portable recording medium storing the programs that implement the functions of the network information acquisition unit 101, the network information processing unit 102, the schedule policy decision unit 103, the schedule calculation unit 104, and the schedule result output unit 105 may be distributed.
Further, the “unit” of at least one of the network information acquisition unit 101, the network information processing unit 102, the schedule policy decision unit 103, the schedule calculation unit 104, and the schedule result output unit 105 may be read as a “circuit”, “step”, “procedure”, “process”, or “circuitry”.
Further, the controller 100 may be implemented by a processing circuit. The processing circuit is, for example, a logic Integrated Circuit (IC), a Gate Array (GA), an Application Specific Integrated Circuit (ASIC), or a Field-Programmable Gate Array (FPGA).
In this case, each of the network information acquisition unit 101, the network information processing unit 102, the schedule policy decision unit 103, the schedule calculation unit 104, and the schedule result output unit 105 is implemented as a part of the processing circuit.
In the present description, a superordinate concept of the processor and the processing circuit is referred to as “processing circuitry”.
That is, each of the processor and the processing circuit is a specific example of the “processing circuitry”.
This application is a Continuation of PCT International Application No. PCT/JP2022/020278, filed on May 13, 2022, all of which is hereby expressly incorporated by reference into the present application.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2022/020278 | May 2022 | WO |
Child | 18907204 | US |