Communication control device, communication control method, and communication control program
By determining the delay situation in the communication control device and deciding the time slot allocation method of frame or group unit, the problems of high resource consumption and low delay performance in the prior art are solved, and appropriate time slot allocation and resource optimization are achieved.
Patent Information
- Application Number
- CN202280095601.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-05-13
- Publication Date
- 2024-12-13
AI Technical Summary
In the prior art, the time-aware plastic scheduling method based on Stream-Based (SB) and Class-Based (CB) has problems such as high resource consumption, large number of time slots and low latency guaranteed performance, and it is difficult to properly distinguish the use of SB and CB results in over-consumption of resources and time slot generation.
By determining whether delay is allowed in the communication control device, a frame allocation method in the communication flow is determined, and a time slot allocation method is adopted in frame units or groups units to calculate appropriate time slot allocation to optimize resource usage and delay guarantee.
An appropriate time slot allocation method is realized, which reduces resource consumption and time slot number, and improves the delay guarantee performance of the communication flow.
Smart Images

Figure CN119137911A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to communication control technology. Background Art
[0002] IEEE 802.1Q-2018 defines a Time Aware Shaper (TAS). TAS is a mechanism for transferring communication frames (hereinafter referred to as frames) of different priorities in a time-division manner in an Ethernet (registered trademark) network.
[0003] A switch supporting TAS maintains a gate for each queue at its transmission port. Frames are sent or held in this gate. When the gate is open, the frame is sent. On the other hand, when the gate is closed, the frame is held.
[0004] The timing for opening and closing the gates of each queue is calculated by a controller connected to the network. The controller sets the calculated results (scheduling) to each switch. By setting the calculated results to each switch, the controller can limit the flow of frames of different priorities, thereby controlling end-to-end latency.
[0005] Conventional scheduling methods are broadly classified into two types: Stream-Based (SB: stream-based) and Class-Based (CB: class-based) (eg, Non-Patent Document 1).
[0006] SB is a system that guarantees the gate's open time (hereinafter referred to as a time slot) in units of frames. On the other hand, CB is a system that guarantees time slots in units of groups of frames with the same priority. Specifically, CB is a system that guarantees time slots in units of queue types.
[0007] Generally, SB uses more constraints to generate schedules than CB, enabling detailed scheduling on a per-frame basis. Furthermore, SB can theoretically suppress queuing delay to zero. Therefore, SB offers higher end-to-end delay guarantees for communication flows (hereinafter referred to as flows) than CB.
[0008] In CB, a time slot is set once for each class within the cycle time. Therefore, the resources required for scheduling in CB (computer memory, computing time) do not depend on the network scale, and the resources required for scheduling are smaller than those in SB.
[0009] Figure 7 An example of SB-based scheduling is shown. Figure 8 An example of CB-based scheduling is shown.
[0010] Prior art literature
[0011] Non-patent literature
[0012] Non-patent literature 1: D.Hellmanns, J.Falk, A.Glavackij, R.Hummen, S.Kehrer andF.Durr, "On the Performance of Stream-based, Class-based Time-aware Shaping and Frame Preemption in TSN," 2020 IEEE International Conference on Industrial Technology (ICIT), 2020, pp.298-303, doi:10.1109 / ICIT45562.2020.9067122. Summary of the Invention
[0013] Problems to be solved by the invention
[0014] Scheduling in SB is an NP-hard problem. Furthermore, in SB, scheduling requires more resources as the network scale increases. Furthermore, there is the issue of generally having more time slots than in CB.
[0015] Furthermore, with CB-based scheduling, multiple frame transmission requests belonging to different flows may occur within a time slot. Consequently, CB-based scheduling can cause queuing delays. Consequently, CB-based scheduling presents the issue of lower guaranteed end-to-end delay for flows than SB.
[0016] Furthermore, whether a particular flow must use SB or CB is determined based on the network structure, including the flow's characteristics (transmission cycle, priority, etc.) and requirements (end-to-end latency tolerance, etc.). Therefore, it is difficult to appropriately distinguish between SB and CB for each flow. In other words, it is difficult to apply a scheduling method that combines SB and CB to a single network.
[0017] Furthermore, if the use of SBs and CBs cannot be appropriately distinguished, for example, if too many SBs are allocated, there is a problem of excessive resource consumption, resulting in the generation of more time slots than necessary.
[0018] One of the main objects of the present invention is to solve the above-mentioned problems. More specifically, the main object of the present invention is to determine an appropriate time slot allocation method for a communication flow.
[0019] Means for solving problems
[0020] The communication control device of the present invention has:
[0021] an allocation method determining unit for determining whether to allow a delay estimated to occur when a group allocation method is applied to communication frames included in a communication flow, the group allocation method allocating time slots for transmitting communication frames in units of groups of one or more communication frames having a common attribute, and determining to allocate the time slots to the communication frames included in the communication flow in accordance with the group allocation method if the delay is allowed, and determining to allocate the time slots to the communication frames included in the communication flow in accordance with a frame allocation method allocating the time slots in units of communication frames if the delay is not allowed; and
[0022] A time slot allocating unit calculates allocation of the time slots to the communication frames included in the communication flow in accordance with the allocation method determined by the allocation method determining unit.
[0023] Effects of the Invention
[0024] According to the present invention, it is possible to determine an appropriate time slot allocation method for a communication flow. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] Figure 1 This is a diagram showing a configuration example of a network according to the first embodiment.
[0026] Figure 2 This is a diagram showing a hardware configuration example of the controller according to the first embodiment.
[0027] Figure 3 This is a diagram showing an example of the functional configuration of the controller according to the first embodiment.
[0028] Figure 4 This is a flowchart showing an example of the operation of the controller according to the first embodiment.
[0029] Figure 5 This is a flowchart showing the details of the scheduling policy determination process according to the first embodiment.
[0030] Figure 6 This is a diagram showing an example of scheduling according to the first embodiment.
[0031] Figure 7 This is a diagram showing an example of scheduling based on SB.
[0032] Figure 8 This is a diagram showing an example of CB-based scheduling. DETAILED DESCRIPTION
[0033] Hereinafter, the embodiment will be described using the drawings. In the following description of the embodiment and the drawings, parts denoted by the same reference numerals represent the same parts or corresponding parts.
[0034] Implementation Method 1
[0035] In this embodiment, a configuration will be described in which an appropriate time slot allocation method is determined for each communication flow accommodated in the network.
[0036] More specifically, for each communication flow, either a time slot allocation method in communication frame units (frame allocation method) or a time slot allocation method in groups of one or more communication frames having a common attribute (group allocation method) is determined.
[0037] In this embodiment, description is given using SB as a specific example of the frame allocation method and using CB as a specific example of the group allocation method.
[0038] ***Description of the structure***
[0039] Figure 1 A configuration example of a network 1000 according to this embodiment is shown.
[0040] The network 1000 of this embodiment is composed of one controller 100, three switches 200, and two nodes 300. Figure 1 The structure of the network 1000 shown is an example, and the number of controllers 100, the number of switches 200, and the number of nodes 300 are not limited to the following. Figure 1 In addition, the connection relationship between the controller 100, the switch 200 and the node 300 is not limited to Figure 1 Example shown.
[0041] In this embodiment, a plurality of communication frames belonging to a plurality of communication flows are transmitted and received between nodes 300 and 300 via one or more switches 200 .
[0042] The controller 100 determines a time slot allocation method for each communication flow and calculates a schedule. Furthermore, the controller 100 sets the calculated schedule to each switch 200 .
[0043] The controller 100 corresponds to a communication control device. The operation process of the controller 100 corresponds to a communication control method. In addition, the program that realizes the operation of the controller 100 corresponds to a communication control program.
[0044] The switch 200 is a transmission device that transfers communication frames. The communication frames are, for example, Ethernet (registered trademark) frames.
[0045] The node 300 transmits and receives a plurality of communication frames belonging to a plurality of communication flows via the switch 200 .
[0046] Figure 2 A hardware configuration example of the controller 100 according to this embodiment is shown.
[0047] The controller 100 in this embodiment is a computer.
[0048] The controller 100 includes, as hardware, a processor 901 , a main storage device 902 , an auxiliary storage device 903 , a communication interface 904 , and an input / output device 905 .
[0049] The auxiliary storage device 903 stores programs for realizing the functions of a network information acquisition unit 101 , a network information processing unit 102 , a scheduling policy determination unit 103 , a scheduling calculation unit 104 , and a scheduling result output unit 105 , which will be described later.
[0050] These programs are loaded from the auxiliary storage device 903 to the main storage device 902. The processor 901 then executes these programs to perform the operations of the network information acquisition unit 101, network information processing unit 102, scheduling policy determination unit 103, scheduling calculation unit 104, and scheduling result output unit 105 described later.
[0051] Furthermore, the processor 901 writes and reads values of various variables used for scheduling calculations into and from the main storage device 902 .
[0052] The communication interface 904 sends the calculated schedule to each switch 200 .
[0053] The input / output device 905 receives input of network information described below. Furthermore, the input / output device 905 outputs a schedule. Furthermore, if a result of "no solution" described below is obtained, the input / output device 905 outputs a message notifying the result of "no solution."
[0054] Figure 3 An example of the functional configuration of the controller 100 according to this embodiment is shown.
[0055] The network information acquisition unit 101 acquires network information.
[0056] The details of network information will be described later.
[0057] The network information processing unit 102 generates parameters required for scheduling calculation.
[0058] The scheduling policy determination unit 103 determines a time slot allocation method for each communication flow. As described above, a time slot is the open time of a gate in the switch 200. In other words, a time slot is the time for transmitting a communication frame.
[0059] The scheduling policy determination unit 103 determines, for each communication flow, whether to allocate time slots to communication frames using the SB (frame allocation scheme) or the CB (block allocation scheme).
[0060] More specifically, the scheduling policy determination unit 103 determines, for each communication flow, whether to allow a delay estimated to occur when applying a CB to a communication frame included in the communication flow. If the delay is allowed, the scheduling policy determination unit 103 determines to allocate time slots according to the CB. On the other hand, if the delay is not allowed, the scheduling policy determination unit 103 determines to allocate time slots according to the SB.
[0061] The scheduling policy determination unit 103 corresponds to the allocation method determination unit. The processing executed by the scheduling policy determination unit 103 corresponds to the allocation method determination processing.
[0062] The schedule calculation unit 104 calculates the time slots to be allocated to the communication frames included in each communication frame according to the allocation method determined by the scheduling policy determination unit 103 (calculates scheduling).
[0063] The schedule calculation unit 104 corresponds to the time slot allocation unit. In addition, the processing performed by the schedule calculation unit 104 corresponds to the time slot allocation processing.
[0064] The scheduling result output unit 105 outputs the scheduling result of the scheduling calculation unit 104 to the input / output device 905. When a "no solution" result is obtained, the scheduling result output unit 105 outputs a message notifying the "no solution" result to the input / output device 905.
[0065] The scheduling result output unit 105 corresponds to a notification unit.
[0066] ***Description of the action***
[0067] Next, an operation example of the controller 100 according to this embodiment will be described.
[0068] Here, refer to Figure 4 , an example of operations from the controller 100 acquiring network information to outputting scheduling results is described.
[0069] First, in step S101 , the network information acquisition unit 101 acquires network information and outputs the acquired network information to the controller 102 and the schedule calculation unit 104 .
[0070] Here, the network information includes the following information.
[0071] 1) Topology information
[0072] 2) Link speed information
[0073] 3) Flow information
[0074] The topology information indicates the topology of the network 1000. That is, the topology information indicates the connection relationship between devices included in the network 1000.
[0075] Specifically, the topology information shows which node 300 is connected to which switch 200 , and which switch 200 is connected to which switch 200 .
[0076] The link speed information indicates the communication speed of each link included in the network 1000 .
[0077] Specifically, the link speed information indicates the communication speed of each of the links between nodes and switches and the links between switches and switches.
[0078] Flow information is information about a communication flow and includes, for each communication flow, information such as a transmission source node, a transmission destination node, a communication path, a transmission cycle, a priority, and an end-to-end allowable delay.
[0079] The transmission source node refers to the transmission source node 300 of the communication frame.
[0080] The transmission destination node refers to the transmission destination node 300 of the communication frame.
[0081] The communication path refers to a relay path for communication frames between a transmission source node and a transmission destination node.
[0082] The sending period refers to the period during which the source node sends communication frames.
[0083] Priority refers to the priority set for communication frames.
[0084] The end-to-end permissible delay refers to the permissible value of the delay time until a communication frame transmitted from a transmission source node reaches a transmission destination node.
[0085] Next, in step S102 , the network information processing unit 102 generates parameters required for scheduling calculation based on the network information.
[0086] The parameters required for scheduling calculations include the frame transmission time and cycle time (AdminCycleTime specified in IEEE 802.1Q-2018) of each communication flow.
[0087] The cycle time is calculated, for example, by using the least common multiple or the greatest common divisor of the transmission cycles of the flows accommodated in the network.
[0088] The network information processing unit 102 notifies the scheduling policy determination unit 103 and the scheduling calculation unit 104 of the generated parameters.
[0089] Next, in step S103, the scheduling policy determination unit 103 determines a time slot allocation method for each communication flow. Specifically, the scheduling policy determination unit 103 determines for each communication flow whether to allocate time slots to the communication frames contained in that communication flow according to the SB or the CB. The time slot allocation method (SB or CB) determined by the scheduling policy determination unit 103 for each communication flow is also referred to as the scheduling policy for each communication flow.
[0090] Furthermore, the scheduling policy determination unit 103 determines the number of categories used in the SB and the number of categories used in the CB.
[0091] The scheduling policy determination unit 103 notifies the scheduling calculation unit 104 of the scheduling policy for each communication flow, the number of classes used in the SB, and the number of classes used in the CB.
[0092] In addition, for details of step S103, refer to Figure 5 I will talk about it later.
[0093] Next, in step S104, the schedule calculation unit 104 generates schedule constraints based on the following information: Then, the schedule calculation unit 104 calculates a solution (=schedule) that satisfies all the constraints.
[0094] 1) Network information acquired from the network information acquisition unit 101
[0095] 2) Parameters obtained from the network information processing unit 102
[0096] 3) The scheduling policy (SB or CB) for each communication flow obtained from the scheduling policy determination unit 103
[0097] 4) The number of categories used in SB and the number of categories used in CB obtained from the scheduling policy determination unit 103
[0098] Among the constraints, there are both common constraints in SB and CB and different constraints in SB and CB.
[0099] As a common constraint condition in SB and CB, there is, for example, the following constraint condition: the end-to-end delay generated when forwarding a communication frame according to the calculated schedule cannot exceed the end-to-end allowed delay of the corresponding communication flow.
[0100] The SB-specific constraint conditions and the CB-specific constraint conditions can each be arbitrarily set by the administrator of the network 1000 in accordance with the operation policy of the network 1000 .
[0101] In addition, since SB is determined as a scheduling policy that allows communication flows with strict delay, SB is set as a high-priority class and CB is set as a low-priority class.
[0102] Figure 6 An example of a schedule obtained by the schedule calculation unit 104 is shown.
[0103] exist Figure 6 In the example, the number of categories used in SB is 5 and the number of categories used in CB is 3.
[0104] Furthermore, the schedule calculation unit 104 may generate a schedule common to all switches 200 based on the flow information, or may generate a schedule individually for each switch 200 .
[0105] If the result of step S104 is "solution available," the process proceeds to step S105. A "solution available" means that a schedule has been generated that satisfies all constraints. In other words, a "solution available" means that the result of allocating time slots to communication frames of each communication flow (allocation result) according to the scheduling policy satisfies the constraints.
[0106] If “there is a solution”, in step S105 , the scheduling result output unit 105 outputs the schedule.
[0107] The schedule result output unit 105 may output the schedule to the input / output device 905 or 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. Furthermore, 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 switch 200.
[0108] On the other hand, if the result in step S104 is "No Solution," the process proceeds to step S106. A "No Solution" situation means that a schedule that satisfies all constraints cannot be generated. Specifically, a "No Solution" situation means that the result (allocation result) of allocating time slots to communication frames of each communication flow according to the scheduling policy does not satisfy the constraints.
[0109] If there is no solution, the scheduling result output unit 105 outputs a message notifying of the absence of a solution and the reason for the absence of a solution in step S106 . Specifically, the scheduling result output unit 105 outputs the message notifying of the absence of a solution and the reason for the absence of a solution to the input / output device 905 .
[0110] This allows the administrator of the network 1000 who operates the controller 100 to recognize the situation of “no solution” and the reason for “no solution”.
[0111] As the cause of “no solution”, the scheduling result output unit 105 notifies, for example, that a constraint condition is not satisfied.
[0112] The administrator of network 1000 can consider measures to find a solution (=scheduling) by referring to the reason for "no solution" notified by scheduling result output unit 105. For example, as a measure to find a solution, the administrator can review the structure of network 1000, the elements defined in flow information, and the threshold calculation method described below (step S201). As described above, the elements defined in flow information include the source node, destination node, communication path, transmission cycle, priority, and end-to-end allowed delay.
[0113] Furthermore, in addition to notifying the reason for "no solution," the scheduling result output unit 105 may also notify the solution-finding strategy. Specifically, the scheduling result output unit 105 may also notify the solution-finding strategy to ensure that the slot allocation results satisfy the constraints. For example, the scheduling result output unit 105 may notify the solution-finding strategy by modifying the network 1000 structure, modifying the elements defined in the flow information, or modifying the threshold calculation method (step S201).
[0114] Next, refer to Figure 5 illustrate Figure 4 Details of step S103 (scheduling policy determination processing).
[0115] First, in step S201 , the scheduling policy determination unit 103 calculates a threshold.
[0116] The threshold value obtained in step S201 is a value to be compared with AD_i described later.
[0117] The scheduling policy determination unit 103 calculates a threshold value that is applied to the entire network 1000. The scheduling policy determination unit 103 can obtain the threshold value by, for example, dividing the cycle time obtained in step S102 by the number of classes of the transmit queue used in each switch 200. For example, when the cycle time is 80 ms and the number of classes is 8, the scheduling policy determination unit 103 obtains 10 ms as the threshold value.
[0118] Steps S202 to S208 are loop processing performed for each flow.
[0119] Here, "i" is a variable for counting the number of flows. The value of "i" increases each time the loop processing of steps S202 to S208 ends. When the value of "i" reaches the number of flows existing in the network 1000, the loop processing is completed.
[0120] In step S203 , the scheduling policy determination unit 103 determines whether the flow information of the flow i is known.
[0121] "Flow information is known" means that the flow information includes the information required to calculate AD_i. If the flow information does not include the information required to calculate AD_i, the scheduling policy determination unit 103 determines that the flow information is not known. Furthermore, if the flow information cannot be obtained for flow i, the scheduling policy determination unit 103 determines that the flow information is not known.
[0122] When the flow information of the flow i is not known (NO in step S203 ), the process proceeds to step S204 .
[0123] In step S204 , the scheduling policy determination unit 103 classifies the flow i as CB.
[0124] That is, the scheduling policy determination unit 103 determines the time slots to be allocated to the communication frames included in the flow i according to the CB.
[0125] On the other hand, when the flow information of the flow i is known (YES in step S203 ), the process proceeds to step S205 .
[0126] In step S205 , the scheduling policy determination unit 103 calculates AD_i for flow i.
[0127] AD_i is the index value of the queue delay allowed in flow i. Queuing delay is the delay caused by queuing in a switch 200. Strictly speaking, it is the time that a frame stays in the queue because the door is closed or other frames are sent first even if the door is open. Figure 1 A specific example of AD_i (index value) is described. Figure 1 In a network, consider the communication with the node on the left as the source of flow i and the node on the right as the destination, passing through the lower left and lower right switches (not through the switch directly connected to the controller). In this case, the communication path is the source node → lower left switch → lower right switch → destination node. When the end-to-end allowable delay of flow i is set to 10ms and the end-to-end delay in the case where no queuing delay occurs in the two switches on the communication path is set to 2ms, the total allowable queuing delay of the two switches is 8ms. The total upper limit of the queuing delay, 8ms, is divided by the number of switches passed through, 2, to obtain 4ms, which is set as the reference value (index value) of the queuing delay allowed for each switch, AD_i. Of course, if the total is within 8ms, it is allowed. Therefore, for example, the scheduling of setting the queuing delay in the lower left switch to 3ms and the queuing delay in the lower right switch to 5ms is established. However, in this embodiment, for flows that are expected to have queuing delays exceeding the above-mentioned indicator value due to CB scheduling, it is expected that the end-to-end allowed delay will be judged to be strict, and the number of scheduling failures and scheduling recalculations will be suppressed by allocating SB scheduling.
[0128] Furthermore, AD_i may be an indicator value of the fluctuation of the queuing delay allowed in flow i.
[0129] The queuing delay fluctuation is the difference between the maximum and minimum queuing delays. If an end-to-end allowable delay is set for flow i, AD_i can be used as the indicator value for the allowable queuing delay for flow i. If an end-to-end allowable delay fluctuation is set for flow i, AD_i can be used as the indicator value for the allowable queuing delay fluctuation for flow i.
[0130] Scheduling policy determination unit 103 calculates AD_i using parameters such as the number of hops of flow i, the transmission cycle, the end-to-end allowed delay, and the end-to-end allowed delay variation. Specifically, as described in the specific example of AD_i, AD_i is calculated by subtracting the end-to-end delay, which would occur if no queuing delay occurred at all switches on the communication path, from the end-to-end allowed delay, and dividing it by the number of hops of flow i. Alternatively, the end-to-end allowed delay in this calculation formula can be replaced with the transmission cycle or end-to-end allowed delay variation of flow i.
[0131] The hop count of flow i is the number of switches through which a communication frame included in flow i passes when being transferred from the transmission source node 300 to the transmission destination node 300 .
[0132] The transmission period is a transmission period of communication frames in the transmission source node 300 of the communication frames included in the flow i.
[0133] The end-to-end allowed delay is an allowed value for the delay time from the transmission source node 300 to the transmission destination node 300 of the communication frame included in the flow i.
[0134] The end-to-end allowed delay fluctuation is an allowable value for delay time fluctuation from the transmission source node 300 to the transmission destination node 300 of the communication frame included in the flow i. The delay time fluctuation is the difference between the maximum delay time and the minimum delay time.
[0135] Next, in step S206 , the scheduling policy determination unit 103 compares the threshold value obtained in step S201 with AD_i obtained in step S205 .
[0136] If AD_i is smaller than the threshold value (YES in step S206 ), the processing proceeds to step S207 .
[0137] On the other hand, if AD_i is equal to or greater than the threshold value (NO in step S206 ), the process proceeds to step S204 .
[0138] In step S207 , since there is a high possibility that CB does not satisfy the allowed delay, the scheduling policy determination unit 103 classifies the flow i into SB.
[0139] That is, the scheduling policy determination unit 103 determines that the delay estimated to occur when CB is applied to flow i (delay in one switch 200 ) is not allowed, and decides to allocate time slots of communication frames included in flow i according to SB.
[0140] In this way, the scheduling policy determination unit 103 compares AD_i with the threshold value to determine whether the delay estimated to occur when CB is applied is allowed for the flow i.
[0141] On the other hand, in step S204 , since there is a high possibility that CB satisfies the allowable delay, the scheduling policy determination unit 103 classifies the flow i as CB.
[0142] That is, the scheduling policy determination unit 103 determines that the delay estimated to occur when the CB is applied to the flow i (the delay in one switch 200 ) is allowed, and determines to allocate time slots of the communication frames included in the flow i according to the CB.
[0143] Finally, in step S209 , the scheduling policy determination unit 103 determines the number of categories for SB and the number of categories for CB, respectively, so that the sum of the number of categories for SB and the number of categories for CB becomes the number of categories of the transmission queue used in each switch 200 .
[0144] Furthermore, the scheduling policy determination unit 103 can flexibly change the process of determining the number of categories according to flow information, an object to be optimized (resource consumption, etc.), and the like.
[0145] ***Description of the Effects of the Implementation Method***
[0146] As described above, in this embodiment, SB and CB are appropriately combined for scheduling. Therefore, according to this embodiment, while satisfying the allowable delay of each flow, resource consumption (computer memory, computing time) and the number of generated time slots can be suppressed, thereby achieving appropriate scheduling.
[0147] In addition, the process described in this embodiment is just an example.
[0148] Therefore, only a part of the process described in this embodiment may be implemented.
[0149] Furthermore, at least a part of the process described in this embodiment may be implemented in combination with a process not described in this embodiment.
[0150] Furthermore, the structures and processes described in this embodiment may be modified as needed.
[0151] ***Supplementary description of hardware structure***
[0152] Finally, a supplementary description of the hardware structure of the controller 100 will be given.
[0153] Figure 2 The processor 901 shown is an IC (Integrated Circuit) that performs processing.
[0154] The processor 901 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or the like.
[0155] Figure 2 The main storage device 902 shown is a RAM (Random Access Memory).
[0156] Figure 2 The auxiliary storage device 903 shown is a ROM (Read Only Memory), a flash memory, an HDD (Hard Disk Drive), or the like.
[0157] Figure 2 The illustrated communication interface 904 is an electronic circuit that performs data communication processing.
[0158] The communication interface 904 is, for example, a communication chip or a NIC (Network Interface Card).
[0159] Figure 2 The input and output device 905 shown is a keyboard, a mouse, a display, and the like.
[0160] Furthermore, the auxiliary storage device 903 also stores an OS (Operating System).
[0161] Furthermore, at least a portion of the OS is executed by the processor 901 .
[0162] The processor 901 executes at least a portion of the OS and also executes programs that implement the functions of the network information acquisition unit 101 , the network information processing unit 102 , the scheduling policy determination unit 103 , the scheduling calculation unit 104 , and the scheduling result output unit 105 .
[0163] The processor 901 executes the OS to perform task management, memory management, file management, communication control, and the like.
[0164] In addition, at least any one of the information, data, signal values and variable values representing the processing results of the network information acquisition unit 101, the network information processing unit 102, the scheduling strategy determination unit 103, the scheduling calculation unit 104 and the scheduling result output unit 105 is stored in the main storage device 902, the auxiliary storage device 903, the register within the processor 901 and at least any one of the cache memories.
[0165] Furthermore, the program that realizes the functions of the network information acquisition unit 101, the network information processing unit 102, the scheduling policy determination unit 103, the scheduling calculation unit 104, and the scheduling result output unit 105 may be stored on a removable recording medium such as a magnetic disk, a floppy disk, an optical disk, a compressed disk, a Blu-ray (registered trademark, Blu-ray) disk, or a DVD. Furthermore, a removable recording medium storing the program that realizes the functions of the network information acquisition unit 101, the network information processing unit 102, the scheduling policy determination unit 103, the scheduling calculation unit 104, and the scheduling result output unit 105 may also be distributed.
[0166] In addition, the "unit" of at least any one of the network information acquisition unit 101, the network information processing unit 102, the scheduling strategy determination unit 103, the scheduling calculation unit 104 and the scheduling result output unit 105 can be rewritten as "circuit", "step", "process", "processing" or "line".
[0167] Alternatively, the controller 100 may be implemented as a processing circuit such as a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
[0168] In this case, the network information acquisition unit 101 , the network information processing unit 102 , the scheduling policy determination unit 103 , the scheduling calculation unit 104 , and the scheduling result output unit 105 are each realized as a part of the processing circuit.
[0169] In this specification, a processor and a processing circuit are collectively referred to as a "processing circuit."
[0170] That is, the processor and the processing circuit are each a specific example of a “processing circuit”.
[0171] Description of labels
[0172] 100: Controller; 101: Network information acquisition unit; 102: Network information processing unit; 103: Scheduling strategy determination unit; 104: Scheduling calculation unit; 105: Scheduling result output unit; 200: Switch; 300: Node; 901: Processor; 902: Main storage device; 903: Auxiliary storage device; 904: Communication interface; 905: Input / output device; 1000: Network.
Claims
1. A communication control device, wherein: The communication control device has: an allocation method determining unit for determining whether to allow a delay estimated to occur when a group allocation method is applied to communication frames included in a communication flow, wherein the group allocation method allocates time slots for transmitting communication frames in units of groups of one or more communication frames having a common attribute, and, if the delay is allowed, determining to allocate the time slots to the communication frames included in the communication flow in accordance with the group allocation method, and, if the delay is not allowed, determining to allocate the time slots to the communication frames included in the communication flow in accordance with a frame allocation method that allocates the time slots in units of communication frames; as well as A time slot allocating unit calculates the time slots to be allocated to the communication frames included in the communication flow in accordance with the allocation method determined by the allocation method determining unit.
2. The communication control device according to claim 1, wherein: The allocation method determining unit determines, for each of a plurality of communication flows, one of the group allocation method and the frame allocation method as the allocation method of the time slots. The time slot allocating unit calculates, for each communication flow, the time slots to be allocated to the communication frames included in the communication flow in accordance with the allocation method determined by the allocation method determining unit.
3. The communication control device according to claim 2, wherein: The communication control device further includes a notification unit that notifies that the allocation result does not satisfy the constraint condition when an allocation result of the time slot allocation unit allocating the time slots to the plurality of communication flows according to the allocation method determined by the allocation method determination unit does not satisfy the constraint condition.
4. The communication control device according to claim 3, wherein: The notification unit notifies a reason why the allocation result does not satisfy the constraint condition.
5. The communication control device according to claim 3, wherein: The notification unit notifies a measure for making the allocation result satisfy the constraint condition.
6. A communication control method, wherein: The computer determines whether to allow a delay estimated to occur when a group allocation method is applied to communication frames included in a communication flow, wherein the group allocation method allocates time slots for sending communication frames in units of groups of one or more communication frames having a common attribute, and when the delay is allowed, determines to allocate the time slots to the communication frames included in the communication flow according to the group allocation method, and when the delay is not allowed, determines to allocate the time slots to the communication frames included in the communication flow according to a frame allocation method that allocates the time slots in units of communication frames, The computer performs calculations for allocating the time slots to the communication frames included in the communication flow according to the determined allocation method.
7. A communication control program, wherein: The communication control program enables the computer to execute: an allocation method determination process of determining whether to allow a delay estimated to occur when a group allocation method is applied to communication frames included in a communication flow, the group allocation method allocating time slots for transmitting communication frames in units of groups of one or more communication frames having a common attribute, and determining to allocate the time slots to the communication frames included in the communication flow in accordance with the group allocation method if the delay is allowed, and determining to allocate the time slots to the communication frames included in the communication flow in accordance with a frame allocation method allocating the time slots in units of communication frames if the delay is not allowed; and The time slot allocation processing performs calculation for allocating the time slots to the communication frames included in the communication flow according to the allocation method determined by the allocation method determination processing.
