Control device and communication method
7 claims: 2 independent, 5 dependent
- 1ネットワーク中の複数の転送装置の各々から所定の周期で処理負荷の大きさを表わす負荷情報を受信するとともに、前記複数の転送装置のうちの1つ以上を介した通信を行う複数の通信装置の各々から、該通信装置が送信するフローの情報を報告する報告パケットを受信する受信部と、 輻輳の予兆の検出に用いる検出閾値よりも処理負荷の大きい転送装置である対象装置を介して転送されるフローを、前記輻輳が発生した際に経路を変更するフローの候補である候補フローとして、前記報告パケットを用いて特定する特定部と、 前記候補フローの情報を含む第1の報告パケットの送信周期の短縮を要求するパケットと、前記対象装置を経由せずに前記ネットワーク中で転送されるフローの情報を報告する第2の報告パケットの送信周期の延長を要求するパケットとを送信する送信部 を備えることを特徴とする制御装置。
- 2前記第1および第2の報告パケットから前記複数の通信装置の間で送受信されるフローの転送レートを取得して、前記複数の転送装置の間を結ぶリンクの各々でのリンク使用率を計算する計算部と、 前記対象装置に接続されているリンクの使用率が、前記対象装置での輻輳の発生が予測されるときの使用率である予測値まで上昇すると、前記候補フローから転送経路を変更する対象となる対象フローを選択する選択部と、 前記対象フローに対する転送経路の変更を指示する指示パケットを生成する生成部 を備え、 前記送信部は、前記対象装置と、前記対象装置に代わって前記対象フローの転送を開始する転送装置に、前記指示パケットを送信する ことを特徴とする請求項1に記載の制御装置。
- 3前記対象装置の処理負荷と前記検出閾値との差が大きいほど前記第1の報告パケットの送信周期が短くなるように、前記第1の報告パケットの送信周期を決定すると共に、前記制御装置が所定の時間中に受信するパケット数が変動しないように、前記第2の報告パケットの送信周期を決定する決定部 をさらに備えることを特徴とする請求項1または2に記載の制御装置。
- 4前記第1の報告パケットは、前記候補フローの送信元、前記候補フローの宛先、および、前記候補フローに対して決定されたサンプルレートで前記候補フロー中のパケットを採取することにより、前記第1の報告パケットの送信周期で得られるデータ量を含み、 前記決定部は、前記第1の報告パケットの送信周期を第1の周期から前記第1の周期よりも短い第2の周期に変更する場合、前記第1の周期で採取されるパケット数と、前記第2の周期で採取されるパケット数が同数になるように、前記第2の周期で使用するサンプルレートを決定する ことを特徴とする請求項3に記載の制御装置。
- 5前記計算部は、前記第2の報告パケットで情報が通知されるフローを転送しており、かつ、前記候補フローを転送していない転送装置について、前記検出閾値を、前記第2の報告パケットの送信周期の延長量が大きいほど小さくなるように設定された値で置き換える ことを特徴とする請求項2~4のいずれか1項に記載の制御装置。
- 6ネットワーク中の経路を制御する制御装置に、 前記ネットワーク中の複数の転送装置の各々から所定の周期で処理負荷の大きさを表わす負荷情報を受信し、 前記複数の転送装置のうちの1つ以上を介した通信を行う複数の通信装置の各々から、該通信装置が送信するフローの情報を報告する報告パケットを受信し、 前記処理負荷の大きさが前記ネットワークでの輻輳の予兆の検出に用いる検出閾値を超えた転送装置である対象装置を介して転送されるフローを、前記輻輳が発生した際に経路を変更するフローの候補である候補フローとして、前記報告パケットを用いて特定し、 前記候補フローの情報を含む第1の報告パケットの送信周期の短縮と、前記対象装置を経由せずに前記ネットワーク中で転送されるフローの情報を報告する第2の報告パケットの送信周期の延長を前記複数の通信装置に要求する 処理を行わせることを特徴とする通信方法。
- 7前記第1および第2の報告パケットから前記複数の通信装置の間で送受信されるフローの転送レートを取得し、前記複数の転送装置の間を結ぶリンクの各々でのリンク使用率を計算し、 前記対象装置に接続されているリンクの使用率が、前記対象装置での輻輳の発生が予測されるときの使用率である予測値まで上昇すると、前記候補フローから転送経路を変更する対象となる対象フローを選択し、 前記対象フローに対する転送経路の変更を指示する指示パケットを生成し 前記対象装置と、前記対象装置に代わって前記対象フローの転送を開始する転送装置に、前記指示パケットを送信する 処理を前記制御装置に行わせることを特徴とする請求項6に記載の通信方法。
Independent claims7
134 paragraphs, as filed
The present invention relates to a communication method in a network including a plurality of devices.
In a data center, a network may be formed using multiple servers and multiple switches. One or more virtual machines (Virtual Machines, VMs) may be running on each of the plurality of servers. Communication between multiple virtual machines is relayed using a switch. Multiple servers also include a management server. The management server holds the topology information of the entire network and manages the communication path in the network. Each switch notifies the management server of information indicating the state of the switch itself at a predetermined cycle. In addition, each server notifies the management server of information (flow information) regarding the flow from which the virtual machine running on the server is the source. The management server uses the information obtained from the switch to detect the occurrence of congestion in the network. After that, using the flow information acquired from the server, the management server eliminates the congestion by performing a process for changing the transfer route of the flow passing through the switch in which the congestion has occurred.
As related technologies, a failure management device that analyzes the history of failures that have occurred in the system and predicts failures that may occur in electronic devices after a lapse of a predetermined period, and a system that includes the device management device have been proposed. There is. The device management device shortens the interval for acquiring information from an electronic device in which a failure is predicted to occur (for example, Patent Document 1). When the copier receives a notification of an abnormal state, some host machines request the copier in the abnormal state to send a periodic operation information notification at a communication interval shorter than the initial communication interval until a predetermined time. Proposed. This host machine requires a copying machine that is not in an abnormal state to notify operation information at intervals longer than the initial communication interval until a predetermined time (for example, Patent Document 2). Media Access of own node A switch that transmits a loop detection packet in which a Control (MAC) address is registered and notifies a management device when a loop detection packet including the MAC address of its own node is received is also known (for example, Patent Document 3). There is also known an analyzer that determines that communication is an attack flow when it detects that a packet exceeding a specified value is transmitted to the same host in a certain period of time (for example, Patent Document 4).
<p num="0004"><patcit num="1"><text>Japanese Unexamined Patent Publication No. 2013-61840</text></patcit><patcit num="2"><text>Japanese Patent Application Laid-Open No. 2005-242564</text></patcit><patcit num="3"><text>Japanese Unexamined Patent Publication No. 2011-166466</text></patcit><patcit num="4"><text>Japanese Unexamined Patent Publication No. 2006-164038</text></patcit></p>
<p num="0005"> Each switch in the network notifies the management server of the switch status at a predetermined cycle, so even if congestion occurs in the network, the management server keeps the switch until information is sent after the congestion occurs. The occurrence of congestion cannot be detected. Further, the notification of the flow information from each server on which the virtual machine is operating to the management server is also performed at predetermined intervals set in advance. Since the management server uses the flow information after the occurrence of congestion to perform processing to avoid congestion, even if congestion occurs, the route is changed until new flow information is sent from each server. Wait without performing any processing to avoid congestion. Therefore, the process for avoiding congestion starts further after the detection of the occurrence of congestion. By shortening the cycle in which the management server acquires information from the switch or server, the time from the occurrence of congestion to the detection of congestion can be shortened, but the amount of information processed by the management server increases too much, which puts a load on the management server. It is expensive and inefficient.</p><p num="0006"> Regardless of which of the technologies mentioned as related technologies is applied, it is difficult for the management server to obtain information for eliminating congestion at an early stage. For example, even if a technology that shortens the notification cycle from an abnormal copier and lengthens the notification cycle from another copier is applied, there is a problem with the server that is sending the flow that causes congestion. If this does not occur, the transmission cycle of flow information from the server cannot be shortened.</p><p num="0007"> As one aspect of the present invention, it is an object of the present invention to quickly and efficiently acquire information used for resolving congestion.</p>
<p num="0008"> A control device according to an embodiment includes a receiving unit, a specific unit, and a transmitting unit. The receiving unit receives load information indicating the magnitude of the processing load from each of the plurality of transfer devices in the network at a predetermined cycle. Further, the receiving unit receives a report packet that reports information on the flow transmitted by the communication device from each of the plurality of communication devices that communicate via one or more of the plurality of transfer devices. The specific unit is a candidate for a flow that changes the route of a flow transferred via a target device, which is a transfer device having a processing load larger than the detection threshold used for detecting a sign of congestion, when the congestion occurs. As a candidate flow, the report packet is used for identification. The transmission unit reports the packet requesting the shortening of the transmission cycle of the first report packet including the information of the candidate flow and the information of the flow transferred in the network without passing through the target device. The packet that requests the extension of the transmission cycle of the report packet of is transmitted.</p>
<p num="0009"> One aspect is that the information used to eliminate congestion can be obtained quickly and efficiently.</p>
<figref num="1">It is a figure explaining the example of the method concerning embodiment.</figref><figref num="2">It is a figure which shows the example of the structure of the transfer device.</figref><figref num="3">It is a figure which shows the example of the forwarding table.</figref><figref num="4">It is a figure which shows the example of the configuration of a communication device.</figref><figref num="5">It is a figure which shows the example of the structure of the control device.</figref><figref num="6">It is a figure which shows the example of the hardware configuration of a transfer device.</figref><figref num="7">It is a figure which shows the example of the hardware composition of a communication device and a control device.</figref><figref num="8">It is a figure which shows the example of the connection state of a network.</figref><figref num="9">It is a figure which shows the example of the topology information.</figref><figref num="10">It is a figure which shows the example of the transfer path before the sign of congestion is detected.</figref><figref num="11">It is a figure which shows the example of the timer value in each communication device and the timer value held by a control device.</figref><figref num="12">It is a figure which shows the example of the selection method of the packet as a sample.</figref><figref num="13">It is a figure which shows the example of the flow information obtained by each communication device, and the flow information held by a control device.</figref><figref num="14">It is a figure which shows the example of the flow analysis data.</figref><figref num="15">It is a figure which shows the detection example of the sign of congestion.</figref><figref num="16">It is a figure which shows the modification example of a timer value table.</figref><figref num="17">It is a figure which shows the example of the packet used for changing the transmission timing of flow information, and the example of changing the transmission timing of flow information.</figref><figref num="18">It is a figure which shows the modification example of a timer value table.</figref><figref num="19">It is a figure which shows the example of the link utilization rate table.</figref><figref num="20">It is a figure which shows the calculation example of the usage rate for each flow.</figref><figref num="21">It is a figure which shows the example of the flow analysis data.</figref><figref num="22">It is a figure which shows the modification example of a forwarding information table.</figref><figref num="23">It is a figure which shows the example of the instruction packet.</figref><figref num="24">It is a figure which shows the example of changing a route.</figref><figref num="25">It is a flowchart explaining an example of processing of a control device when a packet is received from a transfer device.</figref><figref num="26">It is a flowchart explaining an example of processing of a control device when a packet is received from a communication device.</figref><figref num="27">It is a figure explaining the example of the method of determining the transmission cycle of the report packet in the 2nd Embodiment.</figref><figref num="28">It is a figure explaining the example of the method of determining the transmission cycle of the report packet in the 3rd Embodiment.</figref><figref num="29">It is a flowchart explaining the example of the processing of the control device in 4th Embodiment.</figref>
FIG. 1 is a diagram illustrating an example of the method according to the embodiment. The network N1 includes a control device 60, a communication device 30 (30a, 30b), and a transfer device 10 (10a, 10b). The control device 60 operates as a management server and can determine the route of the flow transmitted and received in the network N1. It is assumed that the virtual machines of VM1 to VM3 operate in the communication device 30a, and the virtual machines of VM4 to VM6 operate in the communication device 30b. In the example of FIG. 1, it is assumed that the flow in which data is transmitted from VM4 to VM3 and the flow in which data is transmitted from VM5 to VM2 are transferred via the transfer device 10b. Further, it is assumed that the flow from VM1 to VM6 is transferred via the transfer device 10a. Note that FIG. 1 is an example, and the number of transfer devices 10 and communication devices 30 in the network and the number of virtual machines operating in each communication device 30 can be arbitrarily changed.
The control device 60 detects a sign of congestion by acquiring load information indicating the magnitude of the load applied to the transfer device 10 at predetermined time intervals from each of the transfer device 10a and the transfer device 10b. Information such as buffer usage is used as load information. Here, the "predictor of congestion" indicates a state in which the transfer rate has increased to the extent that the possibility of occurrence of congestion has increased, but no congestion has occurred. The control device 60 acquires information about each flow being transmitted from the communication device 30a and the communication device 30b. Here, the communication device 30a transmits the flow information transmitted from VM1 to the control device 60, and the communication device 30b transmits the flow information transmitted from each of VM4 and VM5 to the control device 60. .. Information about a flow is a combination of source address, destination address, data transfer rate or data that can be used to calculate the transfer rate. In the example of network N1, the flow information about the data sent from VM4 to VM3 is shown by the diagonally filled rectangles. On the other hand, the flow information related to the data transmitted from VM5 to VM2 is shown by a white square. In addition, the flow information regarding the data transmitted from VM1 to VM6 is indicated by a quadrangle with rounded corners. For the sake of simplicity, it is assumed that in the initial state, information about each flow is transmitted to the controller 60 at the same time interval.
The control device 60 determines that there is a sign of congestion when the buffer usage rate in the transfer device 10b becomes larger than the threshold value Th1. Therefore, the control device 60 identifies the flow to be transferred via the transfer device 10b by using the topology information held in advance and the information acquired from the communication devices 30a and 30b. In the example of network N1, controller 60 identifies that the flow transmitted from VM4 to VM3 and the flow transmitted from VM5 to VM2 are being transferred via transfer device 10b. .. Then, the control device 60 sets the flow via the transfer device 10b, which may cause congestion, as a candidate flow (candidate flow) for changing the route when congestion occurs. Further, the control device 60 requests the communication device 30b in which the virtual machine that is the source of the candidate flow is running to shorten the transmission interval of information about the specified flow. Further, the control device 60 increases the interval for reporting the flow information for the flow that does not pass through the transfer device 10b where congestion may occur. In the example of network N1, the controller 60 requires the communication device 30a to extend the reporting cycle of information about the flow transmitted from the VM1.
An example in which the transmission cycle of information about the flow is changed in response to the request from the control device 60 is shown in network N2. In the state shown in network N2, the cycle in which the communication device 30b transmits information about the flow transmitted from VM4 and the flow transmitted from VM5 to the control device 60 is shorter than the state shown in network N1. It has become. The control device 60 observes the fluctuation of the usage rate of the link connected to the transfer device 10b by using the transfer rate of the flow in which the transmission cycle of the flow information is shortened in order to detect the occurrence of congestion at an early stage. Since the control device 60 can determine that congestion has occurred when the usage rate of the link connected to the transfer device 10b exceeds a preset value, the link to be observed is within the shortened flow information reporting cycle. The occurrence of congestion can be detected.
On the other hand, the cycle in which the communication device 30a transmits information about the flow transmitted from the VM1 to the control device 60 is longer in the network N2 than in the network N1. In this way, the control device 60 increases the amount of information processed by the control device 60 by lengthening the flow information transmission cycle for flows that are not transferred using a route that is likely to cause congestion. The increase can be suppressed.
Further, since the control device 60 detects the occurrence of congestion by using the link usage rate calculated from the flow information, the information itself used for detecting the congestion is used to perform processing for avoiding congestion. be able to. Therefore, the controller 60 not only detects the occurrence of congestion at an early stage, but also detects the occurrence of congestion by shortening the cycle of acquiring information on the flow transferred via the link where congestion is likely to occur. Processing for eliminating congestion can be started at the same time as detection. Therefore, the control device 60 can eliminate the congestion by changing the flow route in a relatively short time after detecting the occurrence of the congestion.
<Device configuration> FIG. 2 shows an example of the configuration of the transfer device 10. The transfer device 10 includes a transmission / reception unit 11, a communication unit 12, a storage unit 15, and a control unit 20. It is assumed that the storage unit 15 holds the forwarding table 16 and the Management Information Base (MIB) 17. The storage unit 15 also includes a buffer 18. The control unit 20 includes a switching unit 21, an update unit 22, and a notification unit 23.
The transmission / reception unit 11 transmits / receives packets to / from the communication device 30 and other transfer devices in the network. The transmission / reception unit 11 outputs the received packet to the switching unit 21. The switching unit 21 selects the output port of the input packet by referring to the forwarding table 16.
FIG. 3 shows an example of forwarding table 16. The forwarding table 16 records the output port number of the packet in association with the destination address. In the example of FIG. 3, the packet addressed to MAC1 and the packet addressed to MAC4 are output from port Po3, and the packet addressed to MAC2 and the packet addressed to MAC3 are output from port Po2.
The switching unit 21 outputs the packet to the transmission / reception unit 11 together with the information of the output port. The transmission / reception unit 11 transmits the packet input from the switching unit 21 using the designated port. The buffer 18 is used to store packets waiting to be processed by the switching unit 21.
The communication unit 12 is used for communication between the transfer device 10 and the control device 60. When the communication unit 12 receives the instruction packet from the control device 60, the communication unit 12 outputs the instruction packet to the update unit 22. The update unit 22 updates the forwarding table 16 by using the instruction packet. Here, it is assumed that the instruction packet contains information requesting rewriting of the forwarding table 16. An example of the format of the instruction packet and an example of processing using the instruction packet will be described later. The notification unit 23 generates a notification packet for notifying the control device 60 of the information recorded in the MIB 17 at a preset cycle.
FIG. 4 is a diagram showing an example of the configuration of the communication device 30. The communication device 30 includes a transmission unit 31, a reception unit 32, a communication unit 33, a packet processing unit 34, a control unit 40, and a storage unit 50. The control unit 40 includes a generation unit 41 and a control packet processing unit 42. The storage unit 50 stores the flow information 51 and the timer value table 52. In the flow information 51, information such as a source address, a destination address, and data used for calculating a transfer rate is recorded for each flow regarding the flow transmitted from the virtual machine operating in the communication device 30. The timer value table 52 includes information such as a time interval when the communication device 30 reports flow information to the control device 60. An example of the flow information 51 and the timer value table 52 will be described later.
The transmitting unit 31 and the receiving unit 32 are used for communication between the communication device 30 and the control device 60. The communication unit 33 is used for communication between the communication device 30 and other communication devices in the network. The packet processing unit 34 operates as an arbitrary number of virtual machines and processes packets using an application. When the packet processing unit 34 operates as a plurality of virtual machines, the packet processing unit 34 also operates as a virtual switch.
The generation unit 41 generates a report packet for reporting the information in the flow information 51 to the control device 60 for each cycle recorded in the timer value table 52. Therefore, it can be said that the generation unit 41 performs the same processing as the exporter in the flow measurement technology such as NetFlow. The control packet processing unit 42 changes the set value of the timer value table 52 by processing the control packet input from the receiving unit 32.
FIG. 5 is a diagram showing an example of the configuration of the control device 60. The control device 60 includes a receiving unit 61, a transmitting unit 62, a control unit 70, and a storage unit 90. The control unit 70 includes a detection unit 71, a specific unit 72, a calculation unit 73, and a flow control unit 80. The flow control unit 80 includes a determination unit 81, a selection unit 82, and an instruction packet generation unit 83. The storage unit 90 holds the topology information 91, the flow information 92, the timer value table 93, the flow analysis data 94, the link utilization rate table 95, and the forwarding information table 96.
The topology information 91 is information indicating which port is connected to which device for each transfer device 10 in the network. The flow information 92 is information on each flow transmitted and received in the network, and is generated and updated by the specific unit 72 and the calculation unit 73. The timer value table 93 shows the period for each communication device 30 in the network to generate a report packet for reporting the transfer rate for the flow being transmitted. The flow analysis data 94 is an analysis result of the flow transmitted from each communication device 30. The link utilization table 95 contains analysis results for the information transmitted from each transfer device 10 in the network. The forwarding information table 96 aggregates the information of the forwarding table 16 used by each transfer device 10 operating in the network. Therefore, the control device 60 can analyze the transfer path of the flow performed by each transfer device 10 by using the topology information 91 and the forwarding information table 96.
The receiving unit 61 receives a packet from the transfer device 10 and the communication device 30. The receiving unit 61 outputs the packet received from the transfer device 10 to the detection unit 71, and outputs the packet received from the communication device 30 to the specific unit 72 and the calculation unit 73.
The detection unit 71 uses the information transmitted from the transfer device 10 to identify a location in the network where a sign of congestion has occurred. The detection unit 71 shall hold two threshold values, a threshold value Th1 and a threshold value Th2. It is assumed that the threshold value Th1 is a value used for determining whether or not there is a sign of congestion, and the threshold value Th2 is a value used for detecting the occurrence of congestion. For example, when the buffer usage rate in the transfer device 10b exceeds the threshold value Th1, the detection unit 71 determines that there is a sign of congestion in the route passing through the transfer device 10b. Even if the threshold value Th1 is exceeded, the buffer usage rate of the transfer device 10b further increases, and when the threshold value Th2 is reached, the detection unit 71 determines that congestion has occurred in the transfer device 10b. In other words, it can be said that the detection unit 71 performs the same processing as the collector in the flow measurement technology such as NetFlow. The detection unit 71 notifies the specific unit 72 of the transfer device 10 whose buffer usage rate exceeds the threshold Th1.
The detection unit 71 further determines that the transmission cycle of the report packet can be returned to the default state when the sign of congestion disappears in any of the transfer devices 10 due to processing such as changing the route. .. When the detection unit 71 detects that the sign of congestion has disappeared in any of the transfer devices 10, the detection unit 71 notifies the determination unit 81 of the disappearance of the sign of congestion.
The specific unit 72 stores the flow information notified from the communication device 30 in the flow information 92. Further, the identification unit 72 specifies a transfer route for each flow by using the topology information 91 and the flow information 92. The identification unit 72 records the identified route as flow analysis data 94. When the detection unit 71 notifies the transfer device 10 whose buffer usage rate exceeds the threshold Th1, the identification unit 72 outputs information for identifying the flow via the notified transfer device 10 to the determination unit 81.
The calculation unit 73 calculates the utilization rate of each link using the obtained analysis result. The calculation unit 73 records the calculation result in the link utilization rate table 95. When the utilization rate of the link exceeds a predetermined value (threshold value Th3), the calculation unit 73 determines to change the route to prevent congestion at the link. The calculation unit 73 outputs information for identifying a link whose utilization rate exceeds the threshold value Th3 to the selection unit 82.
The determination unit 81 determines the transmission cycle for the flow notified by the specific unit 72. In addition, a notification packet is generated to notify the communication device 30 of the transmission source of the flow whose transmission cycle has been changed to notify the transmission cycle after the change.
Further, when the detection unit 71 notifies the detection unit 71 that the sign of congestion has been resolved, the determination unit 81 determines to return the report packet generation cycle to the default value for each of the flows in which the report packet generation cycle is changed. It is assumed that the determination unit 81 stores in advance the default value of the report packet generation cycle for each flow.
The selection unit 82 determines the estimated transfer rate and the link about the flow for each of the flows transferred using the link notified by the calculation unit 73 that the utilization rate exceeds the threshold value Th3. Find values such as usage rate. The selection unit 82 selects a flow for changing the transfer route in order to reduce the usage rate of the link notified by the calculation unit 73. The selection unit 82 outputs the information of the selected flow and the changed route to the instruction packet generation unit 83. The instruction packet generation unit 83 generates an instruction packet addressed to the transfer device 10 in order to change the route of the flow specified by the selection unit 82. The instruction packet is a control packet for requesting the destination transfer device 10 to rewrite the forwarding table 16.
FIG. 6 is a diagram showing an example of the hardware configuration of the transfer device 10. The transfer device 10 includes a processor 101, a switching circuit 102, a memory 103, a network interface 104 (104a to 104e), and a bus 105. The transfer device 10 can be realized as a switch or a router. Processor 101 can be any processing circuit that includes a Central Processing Unit (CPU). In the transfer device 10, the processor 101 operates as the update unit 22 and the notification unit 23, and the memory 103 operates as the storage unit 15. Further, the switching unit 21 is realized by the switching circuit 102 and the processor 101. Further, the network interfaces 104 (104a to 104d) connected to the network for data communication operate as the transmission / reception unit 11. On the other hand, the network interface 104e connected to the control network operates as the communication unit 12.
FIG. 7 is a diagram showing an example of the hardware configuration of the communication device 30 and the control device 60. Both the communication device 30 and the control device 60 include a processor 101, a memory 103, a network interface 104, a bus 105, and a storage device 106. Both the communication device 30 and the control device 60 can be realized as a computer. The bus 105 connects the processor 101, the memory 103, the network interfaces 104 (104a, 104b), and the storage device 106 so that data can be transmitted and received to each other. The processor 101 can execute, for example, a program stored in the storage device 106. The memory 103 also appropriately stores the data obtained by the operation of the processor 101 and the data used for the processing of the processor 101.
In the communication device 30, the processor 101 operates as the packet processing unit 34 and the control unit 40, and the memory 103 operates as the storage unit 50. In the communication device 30, the network interface 104a connected to the network for data communication operates as the communication unit 33. On the other hand, since the network interface 104b is connected to the control network, it operates as the transmitting unit 31 and the receiving unit 32.
In the control device 60, the processor 101 operates as the control unit 70, and the memory 103 operates as the storage unit 90. In the control device 60, the receiving unit 61 and the transmitting unit 62 are realized by the network interface 104a connected to the control network and the processor 101. In the control device 60, the network interface 104b is an option and may not be included in the control device 60 if the control device 60 does not send or receive user data.
<First embodiment> In the following description, in order to make it easier to distinguish the communication device performing the processing, the alphabet assigned to the communication device performing the operation is described after the reference numeral. For example, the control packet processing unit 42a indicates the control packet processing unit 42 in the communication device 30a.
FIG. 8 is a diagram showing an example of a network connection state. Hereinafter, a specific example of the processing in the transfer device 10, the communication device 30, and the control device 60 will be described by taking the communication processing performed in the network shown in FIG. 8 as an example. In the example of FIG. 8, the transfer device 10 is a switch (SW1 to SW4). The thick solid line in Figure 8 shows the network used to send and receive user data. In the example of FIG. 8, it is assumed that the communication device 30a is connected to the switch SW2 and the communication device 30b is connected to the switch SW4. Further, it is assumed that the switch SW1 is connected to the switch SW2 and the switch SW4, but not to the switch SW3. Similarly, switch SW3 is also connected to switch SW2 and switch SW4, but not to switch SW1.
The dashed line in FIG. 8 indicates the network used to send and receive control data. Each of the switches SW1 to SW4, the communication device 30a, and the communication device 30b are all connected so that control data can be transmitted and received to and from the control device 60.
In the communication device 30a, the virtual machine VM1, the virtual machine VM2, and the virtual switch 35a are operating. Also assume that virtual machine VM1 is assigned an address called MAC3, and virtual machine VM2 is assigned two addresses, MAC2 and MAC6. Furthermore, in the communication device 30b, the virtual machine VM3, the virtual machine VM4, and the virtual switch 35b are operating. Assume that virtual machine VM3 is assigned MAC4, and virtual machine VM4 is assigned two addresses, MAC1 and MAC5. Further, it is assumed that the address used for transmitting and receiving control data is MAC12 for the communication device 30a, MAC11 for the communication device 30b, and MAC10 for the control device 60.
Note that FIG. 8 is just an example of a network. It is assumed that an arbitrary number of transfer devices 10 and communication devices 30 are included in the network depending on the implementation. Further, the number of virtual machines operating on the individual communication devices 30 can also be arbitrarily changed depending on the implementation.
FIG. 9 is a diagram showing an example of topology information 91. The topology information 91 is the topology information 91 held by the control device 60 when the network shown in FIG. 8 is formed. In the topology information 91, the identifier of the device, the identifier of the device to which each port is connected, and the capacity of the link between the switches are recorded for each transfer device 10. Further, the topology information 91 also includes the address assigned to the virtual machine operating in each communication device 30.
In the example of FIG. 9, in the switch SW1, the port Po1 is connected to the control device 60, the port Po2 is connected to the switch SW2, and the port Po3 is connected to the switch SW4. Therefore, port Po1 of switch SW1 is used for communication with the control network. Similarly, for communication with the control network, port Po3 is used for switch SW2, port Po1 is used for switch SW3, and port Po3 is used for switch SW4. In switch SW2, port Po1 is connected to switch SW3, port Po2 is connected to switch SW1, and port Po4 is connected to the communication device 30b, which is used for transmitting and receiving user data. In switch SW3, port Po2 is connected to switch SW2 and port Po3 is connected to switch SW4. Further, in the switch SW4, the port Po1 is connected to the switch SW3, the port Po2 is connected to the switch SW1, and the port Po4 is connected to the communication device 30a.
The capacity of the link between switches is the maximum transfer rate that can be used between the switch and the switch to which the port is connected, as recorded in the device column. In the example of FIG. 9, the link between switch SW1 and switch SW2 and the link between switch SW1 and switch SW4 can use transfer rates up to 160 Mbps. Further, it is assumed that a transfer rate of up to 100 Mbps can be used for the link between the switch SW2 and the switch SW3, and a transfer rate of up to 120 Mbps can be used for the link between the switch SW3 and the switch SW4.
Further, it is assumed that the topology information 91 records that all of MAC1, MAC4, MAC5, and MAC11 are addresses assigned to the communication device 30b or the virtual machine operating in the communication device 30b. Similarly, regarding the communication device 30a, it is recorded that all of MAC2, MAC3, MAC6, and MAC12 are assigned to the communication device 30a or the virtual machine operating in the communication device 30a.
The connection relationship described with reference to FIG. 9 is a network connection relationship generated by using the physical port. Therefore, even if the route is changed, the connection relationship between the physical ports and the capacity of the link recorded in the topology information 91 shall not change.
(1) Processing that has been performed before the sign of congestion is detected FIG. 10 is a diagram showing an example of a transfer route before a sign of congestion is detected. Hereinafter, with reference to FIG. 10, an example of processing performed before a sign of congestion is detected will be described. Note that FIG. 10 does not show the connection relationship of the lines used for transmitting and receiving user data in order to make the figure easier to see, but also in FIG. 10, the network for transmitting and receiving user data is shown in FIGS. It shall be as explained with reference to 9. The virtual switch 35 is also omitted in FIG. 10 to make the figure easier to see.
In the example of FIG. 10, it is assumed that the virtual machine VM4 sends data to MAC2 of the virtual machine VM2 with MAC1 as the source address. In addition, virtual machine VM4 sends data to MAC6 of virtual machine VM2 with MAC5 as the source address, and virtual machine VM1 sends data to MAC4 of virtual machine VM3 with MAC3 as the source address. Suppose you are. Before a sign of congestion is detected, data sent from MAC1 to MAC2 is transferred from virtual machine VM4 to virtual machine VM2 via switches SW4, SW3, SW2, as indicated by the thick solid arrow. It is assumed that it has been done. It is assumed that the data transmitted from MAC3 to MAC4 is transferred from the virtual machine VM1 to the virtual machine VM3 via the switches SW2, SW3, and SW4 as shown by the thick dashed arrow. Further, it is assumed that the data transmitted from MAC5 to MAC6 is transferred from the virtual machine VM4 to the virtual machine VM2 via the switches SW4, SW1 and SW2 as indicated by the arrow of the thin alternate long and short dash line.
Further, it is assumed that a flow ID is assigned to each flow in order to identify each flow. In the following description, the flow (thick solid arrow) in which MAC1 is the source address and MAC2 is the destination address is assumed to be flow ID = 1. Similarly, the flow ID of a flow (thick dashed arrow) where MAC3 is the source address and MAC4 is the destination address is 2, and MAC5 is the source address and MAC6 is the destination address (thin dashed arrow). Let the flow ID be 3.
FIG. 11 is a diagram showing an example of a timer value table 52 held by each communication device 30 and a timer value table 93 held by the control device 60. Hereinafter, it is assumed that the communication device 30b holds the timer value table 52b in FIG. 11, and the communication device 30a holds the timer value table 52a in FIG. It is assumed that the control device 60 holds the timer values set in all the communication devices 30 in the network in the timer value table 93.
The timer value table 52 contains a source address, a destination address, a transmission timer value, and a sample rate for each flow transmitted from the virtual machine running on the communication device 30 that holds the table. There is. For example, in the entry with flow ID = 1 in the timer value table 52b, the transmission timer value is 2 seconds and the sample rate is 1/2. The transmission timer value indicates the transmission cycle of the report packet. The sample rate indicates the percentage of packets in the flow that the generator 41 uses to generate the report packet.
FIG. 12 is a diagram showing an example of a method of selecting a sample packet. FIG. 12 shows a state in which the generation unit 41b selects a sample packet for generating a report packet for a flow with flow ID = 1. As shown in the timer value table 52b of FIG. 11, the sample rate for the flow with flow ID = 1 is 1/2. Therefore, the generation unit 41b uses the packet with the flow ID = 1 generated by the packet processing unit 34b as a sample at a ratio of one in two. In the example of FIG. 12, the generation unit 41b uses the packet Pa1 as a sample and does not use the packet Pa2 transmitted after the packet Pa1 as a sample. Similarly, for packet Pa3 and subsequent packets, the generation unit 41b selects every other sample packet from the packets with flow ID = 1. The generation unit 41b calculates the total number of packets selected as a sample and the integrated value of the amount of data transmitted by the selected packets, and records them in association with the flow ID. By such processing, in the communication device 30b that stores the timer value table 52b shown in FIG. 11, the generation unit 41b controls the information about the flow with the flow ID = 1 at a cycle of once every two seconds. Generate flow information to notify 60. In the integrated value calculated by the generation unit 41, the lengths of both the header and the payload of the packet are transmitted in one packet so that the control device 60 can accurately calculate the transfer rate. It shall be calculated as the length of the data.
The same processing is performed for other flows in which the transmission timer values are recorded in the timer value tables 52a and 52b shown in FIG. For example, for a flow with flow ID = 3, the transmission timer value is set to 10 seconds, so the generator 41b controls the information about the flow with flow ID = 3 in a cycle of once every 10 seconds. Generate flow information 51 to notify 60. At this time, since the sample rate for the flow with flow ID = 3 is 1/10, the generation unit 41b samples one packet for every 10 packets for the flow with flow ID = 3 to generate flow information 51. To do. Also in the communication device 30a, the generation unit 41a generates a report packet according to the transmission timer value in the timer value table 52a. Therefore, the generation unit 41a updates the flow information 51 for reporting information such as the transfer rate for the flow with the flow ID = 2, once every 30 seconds. At this time, out of 100 packets. Calculate the number of packets, etc. using one packet of.
FIG. 13 shows an example of the flow information 51 in each communication device 30 and the flow information 92 held by the control device 60. The flow information 51 associates the number of packets transmitted and the amount of data transmitted in one transmission cycle with the combination of the flow ID, the source address of the flow, and the destination dress by the processing in the generation unit 41. Information. The flow information 51b is an example of information generated for the flows of flow IDs 1 and 3 by the generation unit 41b in the communication device 30b. On the other hand, the flow information 51a is an example of information generated for a flow with a flow ID = 2 by the generation unit 41a in the communication device 30a.
The generation unit 41 updates the information of the entry in the flow information 51, and generates a transmission packet for transmitting the information included in the updated entry to the control device 60. For example, the generation unit 41b updates the entry of flow ID = 1 in the flow information 51b once every two seconds, and generates a report packet with the content of the updated entry as the payload to the control device 60. At this time, the generation unit 41b sets the address (MAC11) assigned to the control unit 40 to the address of the source of the report packet. Therefore, when the flow information 51b is generated as shown in FIG. 13, a report packet containing the following information elements is generated. Source address: MAC11 Destination address: MAC10 Flow ID: 1 Flow source address: MAC1 Flow destination address: MAC2 Number of packets collected: 23 Data sent in the collected packets: 23000 bytes
The generation unit 41b performs the same processing for the flow with the flow ID = 3. Therefore, 3 packets of flow ID = 3 destined from MAC5 to MAC6 are collected, and 4500 bytes of data are sampled, which is written in the report packet addressed to the controller 60. The generation unit 41b transmits the report packet to the control device 60 via the transmission unit 31b.
Further, in the communication device 30a, when the generation unit 41a updates the flow information with the flow ID = 2, the generation unit 41a also generates a report packet addressed to the control device 60. When the flow information 51a is updated as shown in FIG. 13, the generator 41a generates a report packet indicating that 125 packets in the flow with flow ID = 2 from MAC3 to MAC4 contain 150,000 bytes. To do. At this time, the generation unit 41a sets the address (MAC12) assigned to the control unit 40a to the address of the source of the report packet. The generation unit 41a also transmits the report packet to the control device 60 via the transmission unit 31a.
Next, the processing of the control device 60 when the report packet is received will be described. The receiving unit 61 outputs the packet received from the communication device 30b or the communication device 30a to the specific unit 72 and the calculation unit 73. The receiving unit 61 stores in advance the address used when each communication device 30 communicates with the control device 60 using the control network, and uses the address of the received packet. , The output destination shall be determined.
The identification unit 72 stores the payload information in the report packet received from each communication device 30 in the flow information 92. The flow information 92 when the report packet reporting the information in the flow information 51b of FIG. 13 is transmitted from the communication device 30b and the report packet reporting the information in the flow information 51a of FIG. 13 is transmitted from the communication device 30a. It is shown in FIG. The calculation unit 73 calculates the transfer rate in each flow by using the information of the flow information 92 and the timer value table 93 (FIG. 11). The calculation unit 73 calculates the transfer rate (bps) using the following equation. R = (B × 8) × (1 / P) × (1 / T) Here, R is the transfer rate (bps), B is the number of bytes of data accumulated in the transmission cycle for the flow to be calculated for the transfer rate, P is the sample rate for the flow to be calculated, and T is the flow to be calculated. Indicates the transmission cycle of the report packet for. The calculation unit 73 reads the number of bytes of the flow to be calculated from the flow information 92, and reads the sample rate and the transmission cycle from the timer value table 93.
The identification unit 72 uses the topology information 91 and the forwarding information table 96 to obtain the transfer route for each flow, and specifies the switch through which each flow passes. Further, the specific unit 72 acquires the source address of the report packet as a notification destination when notifying the control information about the flow.
FIG. 14 shows an example of flow analysis data 94. The flow analysis data 94 records the transfer rate, transfer route information, and control information notification destination for each flow. Here, the transfer rate in the flow analysis data 94 is a value calculated by the calculation unit 73 using the flow information 92 and the timer value table 93. Further, the transfer path of each flow is the information shown in the order of passing through the switches, which is the result of analysis by the specific unit 72 using the topology information 91 and the forwarding information table 96. Here, it is assumed that the route information shown in FIG. 14 is information indicating the route described with reference to FIG.
(2) Processing of the control device 60 when detecting a sign of congestion Next, an example of operation with the switch and detection of a sign will be described.
The transmission / reception unit 11 of each switch outputs a received packet to the switching unit 21. The switching unit 21 identifies an output port using the forwarding table 16, and outputs a packet to the transmission / reception unit 11 together with the specified information. The transmission / reception unit 11 transmits a packet from the designated port. The notification unit 23 updates the information of the MIB 17 according to the processing in the switching unit 21 and the storage status of the packet in the buffer 18. Further, the notification unit 23 generates a packet for notifying the control device 60 of information indicating the magnitude of the processing load at a predetermined cycle. The information in the MIB 17 of each switch may be used as the information indicating the magnitude of the processing load. Hereinafter, a case where the amount of data stored in the switch is used as a value indicating the magnitude of the processing load will be described as an example. The notification unit 23 transmits the generated packet to the control device 60 via the communication unit 12.
When the receiving unit 61 receives a packet including a value indicating the processing load from each switch, the receiving unit 61 outputs the received packet to the detecting unit 71. The receiving unit 61 stores in advance the address used when each switch communicates using the control network, and determines the output destination of the received packet by using the source address of the received packet.
FIG. 15 is a diagram showing an example of detecting a sign of congestion. Graph G1 in FIG. 15 shows an example of the relationship between the threshold value and the switch state. In the example of graph G1, the threshold Th1 is the maximum amount of data that can be stored in the switch buffer 18 if it can be determined that the link connected to the switch has a negligible risk of congestion. is there. Therefore, it is determined that the operating state is normal for the switch in which the amount of data stored in the buffer 18 is smaller than the threshold value Th1. The threshold Th2 is the minimum value of the amount of data that is expected to be stored in the buffer 18 of the switch under the condition that the link connected to the switch is likely to be congested. Therefore, when the amount of data stored in the buffer 18 of the switch exceeds the threshold Th2, it is determined that congestion has occurred in the switch and one or more links connected to the switch. It is assumed that a switch in which the amount of data in the buffer 18 is between the threshold value Th1 and the threshold value Th2 is determined to have a sign of congestion. The values of the threshold value Th1 and the threshold value Th2 are set for each switch according to the size of the buffer 18 provided in the switch and the processing performance of the switch.
The determination process using the relationship between the threshold value shown in the graph G1 and the amount of data in the buffer 18 is performed by the detection unit 71 in the control device 60. It is assumed that the detection unit 71 holds a threshold value for comparing each switch with the amount of data stored in the buffer 18 of the switch. In the example of FIG. 15, as shown in the table T1, the threshold Th1 for the switch SW1 is 100 Mbytes, and the threshold Th2 is 150 Mbytes. Therefore, the detection unit 71 determines that the operation is normal until the amount of data stored in the buffer 18 of the switch SW1 reaches 100 Mbytes, but when the stored data is 100 to 150 Mbytes, congestion occurs. Judge that there is a sign. Similarly, for other switches, the determination using the threshold value Th1 and the threshold value Th2 is performed.
Table T1 in FIG. 15 shows an example of the determination result for each switch. Table T1 of FIG. 15 shows an example in which the amount of data stored in the buffer 18 is 50 Mbytes for switch SW1, 40 Mbytes for switch SW2, 120 Mbytes for switch SW3, and 70 Mbytes for switch SW4. Since the amount of data stored in the switch SW1 is less than the threshold Th1 (100 Mbytes) for the switch SW1, the detection unit 71 determines that the switch SW1 is operating normally. In the detection unit 71, the amount of data accumulated in switch SW2 is less than the threshold Th1 in switch SW2, and the amount of data accumulated in switch SW4 is also less than the threshold Th1 in switch SW4, so that switches SW2 and SW4 are also normal. It is determined that the transfer process is being performed. The amount of data stored in the buffer 18 of the switch SW3 is 120 Mbytes, whereas the threshold Th1 and the threshold Th2 of the switch SW3 are 150 Mbytes. Therefore, the detection unit 71 determines that the switch SW3 has detected a sign of congestion. The detection unit 71 notifies the identification unit 72 that a sign of congestion has been detected for the switch SW3.
The identification unit 72 identifies the flow transferred via the switch notified from the detection unit 71 as a flow that shortens the transmission cycle of the report packet. Since the detection unit 71 has notified that a sign of congestion has occurred in the switch SW3, the specific unit 72 acquires the flow ID of the flow transferred via the switch SW3 from the flow analysis data 94. As shown in FIG. 14, flow IDs 1 and 2 are transferred via the switch SW3. Therefore, the specific unit 72 notifies the determination unit 81 that the flow IDs 1 and 2 are being transferred via the switch SW3.
The determination unit 81 shortens the transmission cycle for the flows of flow IDs 1 and 2, and also shortens the sample rate so that the fluctuation rate of the transmission cycle and the fluctuation rate of the sampling packet interval are the same. Specifically, the determination unit 81 changes the sample rate to the product of the reciprocal of the ratio of the changed transmission cycle to the original transmission cycle and the currently used sample rate. By this process, even if the transmission cycle is changed from the first cycle to the second cycle, the number of packets collected in the first cycle and the number of packets collected in the second cycle are the same. The determination unit 81 stores the timer value indicating the newly determined transmission cycle and the sample rate in the timer value table 93.
FIG. 16 shows an example of the changed timer value table 93. In the flow with flow ID = 1, the transmission timer value is 2 seconds before the change (Fig. 11), but it is shortened to 1.5 seconds after the change (Fig. 16), and the transmission cycle of the report packet is 3/4. It has become. On the other hand, regarding the sample rate, the determination unit 81 changes the transmission timer value to 2/3, which is 4/3 times the value before the change (1/2), because the transmission timer value is 3/4 times. For the flow with flow ID = 2, the transmission timer value and sample rate are changed by the same method. In the example of FIG. 16, the determination unit 81 shortens the transmission timer value for the flow with the flow ID = 2 from 30 seconds to 3 seconds. Further, since the determination unit 81 has set the transmission timer value to 1/10, the sample rate for the flow with the flow ID = 2 is multiplied by 10. Therefore, the sample rate for the flow with flow ID = 2 is changed to 1/10.
Further, the determination unit 81 lengthens the transmission cycle of the report packet for the flow that is transferred without passing through the switch in which the sign of congestion is detected, in order to prevent the load on the control device 60 from increasing. The determination unit 81 also refers to the flow analysis data 94 when identifying the flow that is being transferred without going through the switch in which the sign of congestion is detected. Here, the flow with flow ID = 3 is transferred without going through the switch SW3. Therefore, the determination unit 81 lengthens the transmission timer value used to generate the report packet of the flow with the flow ID = 3. In the example of FIG. 16, the determination unit 81 changes the transmission timer value for the flow with the flow ID = 3 to 40 seconds, which is four times the setting in FIG. The determination unit 81 multiplies the sample rate for the flow with flow ID = 3 by 1/4 as the transmission timer value changes. Therefore, in FIG. 16, the sample rate for the flow with flow ID = 3 is set to 1/40.
FIG. 17 shows an example of a packet used for changing the transmission timing of flow information and an example of changing the transmission timing of flow information. The determination unit 81 generates a notification packet for notifying each communication device 30 of the transmission timer value and the sample rate in the changed timer value table 93. F1 of FIG. 17 shows an example of the format of the notification packet generated by the determination unit 81 when the transmission timer value is changed to a small value. The notification packet includes a source address, a destination address, a request operation, a flow ID, and a transmission timer value. The source address in the notification packet is the address (MAC10) set in the controller 60. The notification destination address of the flow analysis data 94 is set as the destination address. Since F1 is the data for setting the timer value of flow ID = 1, the destination address is set to MAC11 from the flow analysis data 94 (FIG. 14). The value of the request operation field is a value indicating that it is a value for notifying the change of the transmission timer value, and is 1 in F1 of FIG. As the transmission timer value, the newly set value is recorded in the timer value table 93. Similarly, a notification packet is generated for a flow with flow ID = 2. Therefore, the packet used to change the transmission timer value of the flow with flow ID = 2 contains the following information elements. Source address: MAC10 Destination address: MAC12 Requested action: 1 Flow ID: 2 Transmission timer value: 3
The format of the notification packet used to lengthen the transmission timer value is the same as in F1. For example, when the transmission timer value for a flow with flow ID = 3 is changed from 10 seconds to 40 seconds, a packet containing the information element shown in F2 is generated. Since the flow with flow ID = 3 is also transmitted from the communication device 30b, the destination address is set to MAC11.
Graph G2 of FIG. 17 is a schematic diagram illustrating an example of changing the reception frequency of the report packet by changing the transmission timer value. A shows an example of the transmission frequency of the report packet of the flow transferred through the switch in which the sign is detected, such as flow IDs 1 and 2. As shown in A, the control device 60 shortens the transmission timer value for the flow transferred via the switch that detects the sign, so the time from the discovery of the sign to the acquisition of a new report packet is It can be shorter than the transmission interval of the report packet before the discovery of the sign. On the other hand, for the flow transferred without going through the switch that detected the sign, the control device 60 determines the time from the discovery of the sign to the acquisition of a new report packet before the discovery of the sign, as shown in B. It can be longer than the transmission interval of the report packet.
(3) Update processing of transmission timer value in communication device 30 Hereinafter, an example of processing in the communication device 30 when a notification packet is received from the control device 60 will be described. The receiving unit 32 outputs the received packet to the control packet processing unit 42. The control packet processing unit 42 changes the information of the entry in the timer value table 52 regarding the flow for which the transmission timer value is requested to be changed in the notification packet.
FIG. 18 shows an example of modification of the timer value table 52. The timer value table 52b-2 is the updated timer value table 52 obtained by the processing of the control packet processing unit 42b. When the control packet processing unit 42b receives the notification packet shown in F1 of FIG. 17, the control packet processing unit 42b sets the transmission timer value for the flow with flow ID = 1 to the value notified by the notification packet. Furthermore, the ratio of the current set value to the changed value is obtained, and the product of the reciprocal of the obtained value and the current value of the sample rate is set to the new sample rate. That is, the control packet processing unit 42b shortens the transmission timer value to 1.5 seconds by using the notification packet shown in F1 of FIG. Further, since the transmission timer value before the change is 2 seconds, the control packet processing unit 42b calculates that the transmission cycle of the report packet has become 3/4. Further, the control packet processing unit 42b sets the new sample rate to 4/3 times the sample rate before the change because the sample rate before the change for the flow with the flow ID = 1 is 1/2. Set to 3.
Further, since the control packet processing unit 42b also acquires the notification packet F2 shown in FIG. 17 via the receiving unit 32, the transmission timer value for the flow with the flow ID = 3 is extended to 40 seconds. Furthermore, since the transmission timer value was set to 40 seconds, which is four times the setting in FIG. 11, the determination unit 81 is 1/40, which is 1/4 times the current setting for the flow with flow ID = 3. Set to.
Further, in the communication device 30a as well, the same processing is performed by the control packet processing unit 42a processing the notification packet. The control packet processing unit 42a shortens the transmission timer value for the flow with flow ID = 2 from 30 seconds to 3 seconds, and changes the sample rate from 1/100 to 1/10. As a result, the timer value table 52a-2 shown in FIG. 18 is obtained.
When the update of the timer value table 52 is completed, the generation unit 41 updates the flow information 51 and generates a report packet according to the updated transmission timer value. Therefore, after the update to the timer value table 52b-2 in the communication device 30b is completed, the generation unit 41b sends a report packet regarding the flow with the flow ID = 1 once every 1.5 seconds via the transmission unit 31b. Send to controller 60. Further, the generation unit 41b generates a report packet regarding the flow with the flow ID = 3 once every 40 seconds and sends it to the control device 60. On the other hand, in the communication device 30a, the generation unit 41a generates a report packet regarding the flow with the flow ID = 2 once every 3 seconds and transmits it to the control device 60.
(4) Occurrence of congestion and change of route When the control device 60 receives the report packet from the communication device 30 in the network after changing the transmission timer value, the control device 60 performs the same analysis as before detecting the sign of congestion. Therefore, the data of the flow analysis data 94 is updated.
FIG. 19 shows an example of the link utilization table 95. After detecting the sign, the calculation unit 73 uses the flow analysis data 94 to identify the usage rate for each link. Hereinafter, an example of processing by the calculation unit 73 when updating the data in the link utilization rate table 95 will be described.
The calculation unit 73 acquires the connection relationship between the switches and the capacity of the link between the switches from the topology information 91 (FIG. 9). By this process, the values of the link column and the capacity column of the link utilization rate table 95 are specified.
Next, the calculation unit 73 specifies the flow via each link in order to obtain the total transfer rate of the data transferred via the link for each link connecting the switches in the network. To do. In the following description, the case where the flow analysis data 94 after updating using the report packet received by the control device 60 after detecting the sign or changing the transmission timer value is as shown in FIG. 14 is taken as an example. Then, since the flow with flow ID = 1 is transferred via switches SW4, SW3, and SW2, the calculation unit 73 tells the calculation unit 73 that the flow with flow ID = 1 is the link between switches SW4 and SW3 and switches SW3 and SW2. Determined to go through the link between. In addition, since the flow with flow ID = 2 is also transferred via switches SW4, SW3, and SW2, the calculation unit 73 indicates that the flow with flow ID = 2 is also the link between switches SW4 and SW3 and the switch SW3. Determined to go through the link between SW2. Furthermore, since the flow with flow ID = 3 is transferred via switches SW4, SW1 and SW2, the calculation unit 73 tells the calculation unit 73 that the flow with flow ID = 1 is the link between switches SW4 and SW1 and switches SW1 and SW2. Determined to go through the link between.
Next, the calculation unit 73 specifies which flow is used for the transfer process for each link, and obtains the total transfer rate of the flows being transferred. Both the link between switches SW1 and SW2 and the link between switches SW1 and SW4 are used to transfer the flow with flow ID = 3. On the other hand, the link between switches SW2 and SW3 and the link between switches SW3 and SW4 are both used for the transfer of two flows with flow IDs 1 and 3. Here, the transfer rate of each flow is as follows from FIG. Flow ID = 10: 10Mbps Flow ID = 2: 80Mbps Flow ID = 3: 20Mbps Therefore, as shown in the transfer rate column of FIG. 19, the transfer rate of the link between the switches SW1 and SW2 and the link between the switches SW1 and SW4 is 20 Mbps. On the other hand, the transfer rate of the link between switches SW2 and SW3 and the link between switches SW3 and SW4 is 90 Mbps.
For each link, the calculation unit 73 uses the percentage of the transfer rate with respect to the capacity of the link as the link usage rate. For example, in the link between switches SW1 and SW2, the capacity is 160 Mbps, while the transfer rate is 20 Mbps, so the usage rate is 12.5%. The calculation unit 73 performs the same calculation for other links. In the example in Figure 19, the utilization of the link between switches SW1 and SW4 is 12.5%, the utilization of the link between switches SW2 and SW3 is 90%, and the utilization of the link between switches SW3 and SW4 is 75%. Is calculated to be.
The calculation unit 73 notifies the selection unit 82 of the link whose utilization rate of the link exceeds the threshold value Th3 as a target for lowering the transfer rate in order to prevent congestion. Here, the threshold value Th3 is a predicted value of the usage rate of the link connected to the switch whose processing load approaches the threshold value Th2 used for detecting congestion. That is, the threshold value Th3 is a predicted value of the utilization rate of the link such that the usage rate of the buffer 18 at the switch connected to the link becomes the threshold value Th2, and is set based on an empirical rule. For example, it is assumed that the threshold Th3 is set to the link utilization rate = 85%. In this case, if the usage rate of the link between switches SW3 and SW2 exceeds 85% and the flow is being transmitted from switch SW3 to SW2, the usage rate of buffer 18 on switch SW3 will increase. It means that it has risen to around the threshold Th2. In FIG. 19, since the usage rate of the link between the switches SW2 and SW3 is 90%, the calculation unit 73 notifies the selection unit 82 of the link between the switches SW2 and SW3 as a target for lowering the transfer rate.
FIG. 20 shows an example of calculating the usage rate for the flow using the link notified by the calculation unit 73. A method of calculating the link utilization rate for each flow in which the selection unit 82 uses the link notified by the calculation unit 73 will be described with reference to FIG. 20.
The selection unit 82 identifies the flow via the notified link by searching the flow analysis data 94 (FIG. 14) using the link notified from the calculation unit 73 as a key. Since the link between the switches SW2 and SW3 is notified here, the selection unit 82 acquires the flow ID of the flow included in the switch passing through both the switches SW2 and SW3 from the flow analysis data 94. Further, the selection unit 82 also reads the transfer rate associated with the acquired flow ID from the flow analysis data 94. By this process, the flow via the link between switches SW2 and SW3 is the flow with flow ID = 1 and 2, and the transfer rate of the flow with flow ID = 1 is 10 Mbps, and the flow with flow ID = 2 is transferred. The rate is identified as 80 Mbps. In other words, by these processes, the selection unit 82 acquires the values in the flow ID and transfer rate columns in FIG. 20. In FIG. 20, the combination of the source address and the destination address is also included as the flow information in order to make the figure easier to see, but the source address and the destination address may be acquired by the selection unit 82. Also, you do not have to acquire it.
Further, the selection unit 82 also acquires the capacity of the link notified from the calculation unit 73 by using the topology information 91 (FIG. 9). Here, the capacity of the link between switches SW2 and SW3 is 100 Mbps. The selection unit 82 calculates the percentage of the transfer rate of each flow to the capacity of the link for the transfer rate of each flow. As a result, as shown in FIG. 20, the usage rate of the link between switches SW2 and SW3 for the flow with flow ID = 1 is 10%. By the same calculation, in the flow with flow ID = 2, the usage rate is 80%. The selection unit 82 selects, among the flows for which the link usage rate is calculated, a flow having a relatively large usage rate as a flow for changing the transfer route. In the example of FIG. 20, the selection unit 82 selects the flow with the flow ID = 2 as the flow for changing the route.
Next, the selection unit 82 searches for a transfer route that does not pass through the link whose utilization rate of the link exceeds the threshold value Th3 for the selected flow. For example, the selection unit 82 searches for a route to transfer the flow with the flow ID = 2 without going through the link between the switches SW2 and SW3. That is, in the selection unit 82, the virtual machine to which MAC4 is assigned operates from the communication device 30a in which the virtual machine VM1 to which MAC3 is assigned operates without going through the link between switches SW2 and SW3. Search for the route to the communication device 30b. At the time of the search, the selection unit 82 refers to the topology information 91 as appropriate. As a result of the search, the selection unit 82 uses the manual route from the communication device 30a via the switch SW2, the switch SW1, and the switch SW4 to perform the flow with the flow ID = 2 without passing through the link between the switch SW2 and SW3. Suppose you identify that you can transfer. The selection unit 82 updates the flow analysis data 94 using the obtained route.
FIG. 21 shows an example of updated flow analysis data. In FIG. 21, it is recorded that the flow path of flow ID = 2 passes through switch SW2, switch SW1, and switch SW4. Therefore, among the information in FIG. 21, the information surrounded by the thick line is different from that in FIG. When the newly selected route is written in the flow analysis data 94, the selection unit 82 notifies the instruction packet generation unit 83 that the route with the flow ID = 2 is changed.
FIG. 22 shows an example of modification of the forwarding information table 96. An example of processing performed by the instruction packet generation unit 83 will be described as an example in which the forwarding information table 96-1 is changed to the forwarding information table 96-2 with reference to FIG. 22.
The forwarding information table 96-1 is a table that aggregates the information of the forwarding table 16 used by each switch before the route is changed. That is, the forwarding information table 96-1 shows from which port of the switch each switch outputs for each address specified as the destination. For example, packets destined for MAC4 are currently being output from port Po1 on switch SW2. Port Po1 of switch SW2 is connected to switch SW3 as shown in topology information 91 (Fig. 9). Therefore, the switch SW2 outputs the packet addressed to MAC4 from the port Po1, so that the packet addressed to MAC4 (flow ID = 2) is transferred from the switch SW2 to the switch SW3. In addition, packets addressed to MAC4 are output from port Po3 of switch SW3. Port Po3 on switch SW3 is connected to switch SW4 (see Figure 9). Therefore, the switch SW3 outputs the packet addressed to MAC4 from the port Po3, so that the packet addressed to MAC4 (flow ID = 2) is transferred from the switch SW3 to the switch SW4.
First, the instruction packet generation unit 83 identifies a switch whose transfer destination is changed due to the change of the route in order to change the route of the flow ID = 2 as shown in the changed flow analysis data 94. The route before the change for flow ID = 2 is switch SW2 SW3 SW4, while the route after the change is switch SW2 SW1 SW4. Therefore, the instruction packet generation unit 83 specifies that the transfer destination of the packet addressed to MAC4 is changed from SW3 to SW1 in the switch SW2 by changing the route. Further, the instruction packet generation unit 83 also specifies that the switch SW1 newly starts the transfer of the packet addressed to the MAC4, and the switch SW3 does not transfer the packet addressed to the MAC4. Therefore, the instruction packet generation unit 83 determines that the switches SW1, SW2, and SW3 change the forwarding table 16.
Next, the instruction packet generation unit 83 determines the information of the output port to be set to use the new forwarding route by using the forwarding information table 96-1 and the topology information 91 (Fig. 9). For example, since the port Po2 of the switch SW2 is connected to the switch SW1, the instruction packet generation unit 83 determines the output port of the packet addressed to MAC4 in the switch SW2 to the port Po2. Similarly, since the port Po3 of the switch SW1 is connected to the switch SW4, the instruction packet generator 83 determines the output port of the packet addressed to MAC4 in the switch SW1 to the port Po3. In addition, the instruction packet generation unit 83 also determines that the information of the output port addressed to MAC4 in the switch SW3 is deleted from the forwarding table 16 of the switch SW3. The instruction packet generation unit 83 generates an instruction packet for notifying each switch of the determined information.
FIG. 23 is a diagram showing an example of an instruction packet. The instruction packet contains a source address, a destination address, a request operation to the switch, and entry information. The instruction packet generation unit 83 records the address (MAC10) assigned to the control device 60 in the source address field. The instruction packet generation unit 83 records the address assigned to the switch of the destination of the instruction packet in the destination address field. In the request action field, a value indicating whether to add a new entry, change the contents of an existing entry, or delete an entry is recorded in the forwarding table 16. In the example of FIG. 23, the value indicating the addition of a new entry is 11, the value indicating the content change of the existing entry is 12, and the value indicating the deletion of the entry is 13. In the entry information field, the information of the entry that is the target of the action specified in the request action field is recorded. The information of an entry is represented by the combination of the MAC address contained in the entry and the port number of the output destination.
The instruction packet is transmitted to the switch on which the sign of congestion is detected and the switch that starts the transfer of the flow whose transfer path is to be changed on behalf of the switch on which the sign of congestion is detected. Further, the instruction packet is also transmitted to the switch that is transferring the flow for which the transfer route is to be changed to the switch in which the sign of congestion is detected.
F3 in FIG. 23 is a packet instructing the switch SW1 to write information for outputting a packet addressed to MAC4 from port Po3 to the forwarding table 16. In the example of FIG. 23, it is assumed that the address of the switch SW1 is MAC31, the address of the switch SW2 is MAC32, and the address of the switch SW3 is MAC33. Similarly, F4 in FIG. 23 is an instruction packet for instructing the switch SW2 to rewrite the forwarding table 16 so that the output destination of the packet addressed to MAC4 is changed to the port Po2. Further, F5 in FIG. 23 is an instruction packet for instructing the switch SW3 to delete the entry specifying the output destination of the packet addressed to MAC4 to the port Po3 from the forwarding table 16. When the instruction packet generation unit 83 generates the packets shown in F3 to F5, it outputs them to the transmission unit 62. The transmission unit 62 transmits an instruction packet to the destination switch using the control network.
As shown in FIG. 22, the instruction packet generation unit 83 also performs a process of updating the forwarding information table 96-1 to the forwarding information table 96-2. The forwarding information table 96-2 aggregates the information of the forwarding table 16 held by each switch when the forwarding table 16 is rewritten according to the instruction packet in each packet. When a new entry is added to the switch SW1 according to F3 in FIG. 23, it is registered in the forwarding table 16 of the changed switch SW1 that the output destination of the packet addressed to the MAC4 is the port Po3. Further, when the entry is changed in the switch SW2 according to F4 in FIG. 23, the output destination of the packet addressed to the MAC4 is the port Po2 in the forwarding table 16 of the changed switch SW2. Further, when the entry is changed in the switch SW3 according to F5 in FIG. 23, the data of the forwarding destination of the packet addressed to the MAC4 is deleted in the forwarding table 16 of the changed switch SW3. In FIG. 22, the changes in the forwarding table are shown by thick lines.
Next, the operation of each switch when the instruction packet is received will be described. When the communication unit 12 of the switch SW1 receives the instruction packet from the control device 60, the communication unit 12 outputs the instruction packet to the update unit 22. The update unit 22 rewrites the forwarding table 16 by performing the operation specified in the request operation field for the information in the entry information field of the instruction packet. In the case of the switch SW1, since the instruction packet shown in F3 of FIG. 23 is received, the update unit 22 writes the information for outputting the packet addressed to the MAC4 from the port Po3 to the forwarding table 16. Therefore, the forwarding table 16 of the switch SW1 matches the information associated with the switching SW1 of the forwarding information table 96-2 of FIG.
Similarly, in the switch SW2 and the switch SW3, the processing specified in the request operation field is performed for the information in the entry information field of the instruction packet. That is, the update unit 22 of the switch SW2 changes the output port of the packet addressed to MAC4 from Po1 to Po2. Therefore, the forwarding table 16 of the switch SW2 becomes the information associated with the switch SW2 of the forwarding information table 96-2 of FIG. In addition, the update unit 22 of the switch SW3 deletes the information of the output port of the packet destined for MAC4 from the forwarding table 16. Therefore, the forwarding table 16 of the switch SW3 matches the information associated with the switch SW3 of the forwarding information table 96-2 of FIG.
FIG. 24 is a diagram showing an example of changing the route. Since the forwarding table 16 is rewritten in each of the switches SW2 to SW4, the flow with the flow ID = 2 (thick dashed arrow) is transferred via the switches SW2, SW1, and SW4 as shown in FIG. .. Since the transfer path of the flow with flow ID = 1 and 3 is not changed, the link between switches SW2 and SW3 is used only for the transfer of the flow with flow ID = 1. Then, the transfer rate of the link between switches SW2 and SW3 drops to the transfer rate (10 Mbps) of the flow with flow ID = 1, so that the congestion of the link between switches SW2 and SW3 is eliminated. As the link between switches SW2 and SW3 is decongested, the amount of data stored in buffer 18 on switch SW3 also decreases.
Since the detection of the sign of congestion, the communication between the control device 60 and the communication device 30 has been described in detail. However, even after the sign of congestion is detected, the switches SW1 to SW4 have a predetermined cycle. The control device 60 is notified of the amount of data stored in the buffer 18. The detection unit 71 uses the packets notified from each switch to determine whether the usage of the buffer 18 in all the switches is below the threshold Th1. When the amount of buffer 18 used by all the switches falls below the threshold value Th1, the detection unit 71 determines that all the switches are operating normally. Then, the detection unit 71 requests the determination unit 81 to return the transmission cycle of the report packet to the default for all the flows. The determination unit 81 stores the default value of the transmission cycle for each flow in advance. Therefore, the determination unit 81 transmits a notification packet having the transmission timer value set to the default transmission cycle for each flow to the communication device 30 that is the source of the flow via the transmission unit 62. The generation unit 41 of each communication device 30 acquires the notification packet from the control device 60 via the reception unit 61. The generation unit 41 updates the timer value table 52 according to the notification packet in the same manner as when a sign of congestion is detected. Therefore, when the operation returns to normal on all switches, the transmission cycle of the report packet for each flow returns to the default cycle.
FIG. 25 is a flowchart illustrating an example of processing of the control device 60 when a packet is received from the transfer device 10. In FIG. 25, as an example, the transmission timer value of the report packet is modified so as not to increase until the transfer rate of the control packet received by the control device 60 reaches a predetermined value (threshold value Th4). Shown.
When the receiving unit 61 receives the packet from the transfer device 10, it outputs the packet to the detecting unit 71 (step S1). The detection unit 71 determines whether the utilization rate of the buffer 18 in the transmission device 10 of the transmission source is less than the threshold value Th1 (step S2). When the utilization rate of the buffer 18 in the transmission device 10 of the transmission source is equal to or higher than the threshold value Th1, the detection unit 71 notifies the specific unit 72 that a sign of congestion has been detected (No in step S2). The identification unit 72 identifies the flow that passes through the source transfer device 10 (step S3). The determination unit 81 shortens the value of the transmission timer (report packet generation cycle) used when generating the report packet for the flow specified by the specific unit 72, and raises the sample rate (step S4). The detection unit 71 observes the total transfer rate of the report packet from the communication device 30 and the packet received from each transfer device 10 (step S5). The detection unit 71 determines whether the total value of the observed transfer rates exceeds the threshold value Th4 (step S6). When the total transfer rate of the control packets transmitted to the control device 60 exceeds the threshold Th4, the detection unit 71 requests the determination unit 81 to select a flow that can lengthen the generation cycle of the report packet (step). Yes on S6). The determination unit 81 selects a flow in which the utilization rate of the buffer 18 is transferred without passing through the transfer device 10 that exceeds the threshold value Th1 (step S7). The decision unit 81 lengthens the generation cycle of the report packet and lowers the sample rate for the selected flow (step S8).
On the other hand, if it is determined in step S2 that the utilization rate of the buffer 18 in the source transfer device 10 is less than the threshold Th1, no sign of congestion has been detected for the source transfer device 10 (Yes in step S2). ). The detection unit 71 determines whether the utilization rate of the buffer 18 is less than Th1 even in the other transfer device 10 (step S9). If the utilization rate of the buffer 18 is Th1 or higher in any of the transfer devices 10 in the network, a sign of congestion has been detected, so the detection unit 71 ends the process (No in step S9). On the other hand, if the utilization rate of the buffer 18 is less than Th1 in any of the transfer devices 10 in the network, the sign of congestion is also eliminated, so the detection unit 71 sets the generation cycle of the report packet to the determination unit 81 as the default value. Request to return (Yes in step S9). The determination unit 81 determines whether there is a flow in which the generation cycle of the report packet is changed (step S10). If there is a flow in which the generation cycle of the report packet is changed, the determination unit 81 sends an instruction packet for returning the generation cycle of the report packet to the default value, and ends the process (Yes in step S10, step S11). On the other hand, if there is no flow in which the generation cycle of the report packet is changed, the determination unit 81 ends the process (No in step S10).
FIG. 26 is a flowchart illustrating an example of processing of the control device 60 when a packet is received from the communication device 30. When the receiving unit 61 receives the report packet from the communication device 30, it outputs it to the calculation unit 73 and the specific unit 72 (step S21). The calculation unit 73 calculates the transfer rate of each flow using the report packet (step S22). Further, the calculation unit 73 calculates the usage rate of each link by using the calculation result of the transfer flow and the topology information 91 (step S23). The calculation unit 73 determines whether or not there is a link whose link usage rate is the threshold value Th3 or higher (step S24). When there is a link whose link usage rate is the threshold value Th3 or more, the selection unit 82 identifies the flow to be transferred using the link (Yes in step S24, step S25). The selection unit 82 seeks a change route to avoid congestion (step S26). The instruction packet generation unit 83 generates an instruction packet to be transmitted to the transfer device 10 in order to perform the requested route change, and transmits the instruction packet to the transfer device 10 via the transmission unit 62 (step S27). On the other hand, if there is no link whose link usage rate is equal to or higher than the threshold value Th3, the calculation unit 73 ends the process (No in step S24).
As described above, in the method according to the first embodiment, the location where congestion is likely to occur is identified by the notification from the transfer device 10 at the stage when the sign of congestion occurs, and the flow transfer that can cause congestion is transferred. Shorten the rate acquisition cycle. Therefore, it is possible to shorten the time from the occurrence of congestion to the detection that the occurrence of congestion or the possibility of occurrence of congestion is increasing by using the link usage rate. Furthermore, since the data itself used for detecting congestion is used to perform processing for avoiding congestion, the time from detection of congestion to processing such as route change to eliminate congestion can be shortened. .. Further, it is highly possible that the control device 60 can prevent the congestion in advance by changing the transfer route of the flow in the network at the stage when the state where the congestion occurs is approached.
Further, the control device 60 can reduce the number of packets processed by the control device 60 by lengthening the cycle of acquiring the transfer rate for the flow that is unlikely to affect the occurrence of congestion. Therefore, it is possible to detect congestion in a short period of time from the occurrence of congestion without increasing the load on the control device 60. Further, since the processing load of the control device 60 is adjusted so as not to be large, the transfer rate acquisition process is less likely to interfere with the derivation of the transfer path after the change in the control device 60. Therefore, the control device 60 can efficiently detect and avoid congestion by reducing the amount of processing of information that is unlikely to be used for detecting congestion and avoiding congestion as much as possible.
<Second embodiment> In the second embodiment, a modified example of the method of determining the transmission cycle of the report packet will be described. The first implementation is the processing before the sign of congestion is detected, the method of detecting the sign of congestion, the method of specifying the flow for shortening the transmission cycle of the report packet, the method of notifying the transmission timer value indicating the transmission cycle, and the like. Similar to form.
FIG. 27 is a diagram illustrating an example of a method of determining the transmission interval of the report packet. In the example of FIG. 27, for each transfer device 10, the transmission timer value In1 used when the buffer usage is less than the threshold Th1 and the transmission timer value In2 used when the buffer usage is the threshold Th2 or more. Has been decided. When the buffer usage is between the threshold Th1 and the threshold Th2, the larger the value notified as the buffer usage, the shorter the buffer usage is set. At this time, the amount of shortening of the transmission timer value increases in proportion to the magnitude of the value obtained by subtracting the threshold value Th1 from the value notified as the buffer usage amount. Therefore, when the transmission cycle of the report packet is plotted against the buffer usage, it is represented by the graph shown in FIG. 27. When the amount of buffer 18 used by the transfer device 10 is x, the transmission timer value y is calculated by the following equation. y = (In1-In2) / (Th1-Th2) × (x-Th2) + In2 For example, for a certain flow, the transmission timer value (In1) is 30 seconds when the buffer usage is less than the threshold Th1, and the transmission timer value (In2) is 2 seconds when the buffer usage is the threshold Th2 or more. Suppose there is. Further, it is assumed that the threshold Th1 = 100MB and the threshold Th2 = 300MB. If the usage of the buffer 18 in the transfer device 10 in which the sign is detected is x = 200MB, the transmission cycle of the shortened report packet is calculated from the following formula for the flow. y = (30-2) / (100-300) × (200-300) +2 = 16 (seconds) The determination unit 81 can obtain the shortened transmission timer value by using the same calculation for other flows.
Next, a method of determining the transmission cycle for the flow for lengthening the transmission cycle will be described. The transmission cycle is determined by the determination unit 81 so that the number of packets received by the control device 60 per unit time before the sign of congestion is detected is the same value even after the sign of congestion is detected. For example, it is assumed that all n1 + n2 flows are transmitted to the control device 60 in a cycle of y0 before the detection of the sign. Of these, it is assumed that n1 flows are related to the occurrence of congestion, and that the transmission cycle of the report packet is changed to y1 by the above method. On the other hand, for n2 flows, since the relationship with the occurrence of congestion is weak, it is assumed that the transmission cycle is set to y2, which is a longer value than the current value. In this case, the total number M of the report packets received by the control device 60 per unit time does not change before and after the change of the transmission cycle, and thus can be expressed by Eq. (1). M = (1 / y0) × (n1 + n2) = {(1 / y1) × n1} + {(1 / y2) × n2} (1) By transforming Eq. (1), the transmission timer value y2 for the flow that extends the transmission cycle of the report packet can be expressed by Eq. (2). y2 = {y0 × y1 × n2} / {y1 × (n1 + n2)-(y0 × n1)} (2) For example, for multiple flows, the transmission cycle (y0) before the detection of the sign is 30 seconds, and the value (y1) after the change of the transmission timer in the flow that shortens the transmission cycle of the report packet is 16 seconds. .. Further, it is assumed that the number of flows (n1) for which the transmission cycle of the report packet is shortened is 2 (pieces) and the number of flows (n2) for which the transmission cycle of the report packet is extended is 8 (pieces). In this case, the transmission timer value for the flow in which the transmission cycle is extended is obtained as follows. y = {30 × 16 × 8} / {16 × (2 + 8)-(30 × 2)} = 38.4 (seconds)
When the determination unit 81 calculates the transmission timer value as described in the second embodiment, the frequency of acquiring report packets for flows that are likely to cause congestion without changing the total amount of packets processed by the control device 60. Can be enhanced.
<Third embodiment> Also in the third embodiment, a modified example of the method of determining the transmission cycle of the report packet will be described. The first implementation is the processing before the sign of congestion is detected, the method of detecting the sign of congestion, the method of specifying the flow for shortening the transmission cycle of the report packet, the method of notifying the transmission timer value indicating the transmission cycle, and the like. Similar to form. Further, the method of determining the transmission timer value for the flow for lengthening the transmission cycle is the same as that of the second embodiment.
FIG. 28 is a diagram illustrating an example of a method of determining the transmission interval of the report packet. Also in the example of FIG. 28, for each transfer device 10, the transmission timer value In1 used when the buffer usage is less than the threshold Th1 and the transmission timer value In2 used when the buffer usage is the threshold Th2 or more. Has been decided. In the example of FIG. 28, the transmission timer value is the buffer amount in the transfer device 10 so that the larger the value notified as the buffer usage is, the shorter the buffer usage is between the threshold value Th1 and the threshold value Th2. It fluctuates by drawing a quadratic curve. In the graph shown in FIG. 28, assuming that the amount of buffer 18 used by the transfer device 10 is x, the transmission timer value y is calculated by the following equation. y = (In1-In2) / (Th1-Th2)<sup>2</sup>× (x-Th2)<sup>2</sup>+ In2 For example, for a certain flow, the transmission timer value (In1) is 30 seconds when the buffer usage is less than the threshold Th1, and the transmission timer value (In2) is 2 seconds when the buffer usage is the threshold Th2 or more. Suppose there is. Further, it is assumed that the threshold Th1 = 100MB and the threshold Th2 = 300MB. If the usage of the buffer 18 in the transfer device 10 in which the sign is detected is x = 200MB, the transmission cycle of the shortened report packet is calculated from the following formula for the flow. y = (30-2) / (100-300)<sup>2</sup>×(200-300)<sup>2</sup>+2 = 9 (seconds)
When the transmission timer value is calculated by the determination unit 81 as described in the third embodiment, the usage amount of the buffer 18 in the transfer device 10 sets the threshold Th1 as compared with the case of calculating by the method shown in the second embodiment. The transmission cycle of the report packet can be set short even if the excess amount is small. Therefore, when the third embodiment is used, the timing of detecting congestion in the control device 60 can be efficiently advanced.
<Fourth embodiment> In the fourth embodiment, the method of setting the transmission cycle of the report packet for the flow transferred without going through the transfer device 10 in which the sign of congestion is detected is set so that the flow having a smaller transfer rate fluctuation becomes longer. Will be described. The processing before the sign of congestion is detected, the method of detecting the sign of congestion, the method of specifying the flow for shortening the transmission cycle of the report packet, the method of notifying the transmission timer value indicating the transmission cycle, etc. are the first to the first. It is the same as the embodiment of 3.
The calculation unit 73 classifies the flow in which the transfer processing is performed without going through the transfer device 10 in which the sign of congestion is detected into a plurality of classes using the fluctuation amount of the transfer rate of the flow. The amount of fluctuation shall be expressed as the ratio of the deviation of a certain flow to the average value of that flow. It is expected that the fluctuation of the transfer rate is relatively small even after the flow of the class in which the fluctuation amount of the transfer rate is small in a predetermined time. Therefore, the calculation unit 73 notifies the determination unit 81 of the identifier of the flow in which the fluctuation of the transfer rate is relatively small among the flows transferred without going through the transfer device 10 in which the sign of congestion is detected. ..
The determination unit 81 lengthens the transmission cycle (transmission timer value) of the notified report packet, and fluctuates the transfer rate even if the flow is transferred without going through the transfer device 10 in which a sign of congestion is detected. For flows with a large value, the transmission timer value is not changed.
The calculation unit 73 reduces the predictive threshold value in the transfer device 10 used for transferring the flow with the long transmission cycle in order to prevent the detection of congestion caused by the flow with the long transmission cycle from being delayed. For this reason, the transfer device 10 used for forwarding a flow having an extended transmission cycle of the report packet can easily detect a sign of congestion, and thus congestion occurs due to the flow having a long transmission cycle of the report packet. However, the detection of congestion is not delayed.
The calculation unit 73 may divide the fluctuation amount of the flow transfer rate into two or more classes. In this case, the calculation unit 73 uses two threshold values, Th5 and Th6, in order to perform classification according to the fluctuation amount of the transfer rate. Here, it is assumed that the threshold value Th5 is smaller than the threshold value Th6. The calculation unit 73 notifies the determination unit 81 of the flow in which the fluctuation amount of the transfer rate is less than the threshold value Th5 and the flow in which the fluctuation amount of the transfer rate is from the threshold value Th5 to the threshold value Th6 as a target for lengthening the transmission timer value. At this time, the calculation unit 73 also notifies the determination unit 81 which class the flow to be notified is classified into.
The determination unit 81 changes the transmission timer value and the threshold value Th1 in the transfer device 10 that is transferring the flow according to the classified class. For a flow whose fluctuation is smaller than the threshold value Th5, the fluctuation amount of the transmission timer value is made larger than that of the flow whose fluctuation is smaller than the threshold values Th5 to Th6.
FIG. 29 is a flowchart illustrating an example of processing of the control device 60 when a sign of congestion is detected. Note that FIG. 29 is an example, and the amount of change in the transmission timer value of the flow and the amount of change in the threshold value Th1 used for detecting the sign in the transfer device 10 can be changed depending on the implementation. Further, the order of steps S37 and S38 may be changed to each other, and the order of steps S39 and S40 may be changed to each other.
The detection unit 71 waits until it detects a sign of congestion (No in step S31). When the detection unit 71 detects a sign of congestion, the identification unit 72 identifies a flow that is not transferred by the transfer device 10 in which the sign is detected (Yes in step S31, step S32). The calculation unit 73 calculates the amount of change in the transfer rate of each specified flow at a predetermined time (step S33). The calculation unit 73 sets the variable n to 1 and selects the nth flow (steps S34 and S35). The calculation unit 73 compares the fluctuation amount in the selected flow with the threshold value (step S36). When the fluctuation amount in the selected flow is less than the threshold value Th5, the determination unit 81 decides to increase the transmission timer value of the notified flow by 20%, and sends a request packet for changing the transmission timer value to the communication device. Send to 30 (step S37). When the fluctuation amount in the selected flow is less than the threshold value Th5, the calculation unit 73 further transfers the nth flow, and the threshold value in the transfer device 10 which does not transfer the flow whose transmission timer value is shortened. Reduce Th1 by 20% (step S38).
When the fluctuation amount in the selected flow is from the threshold value Th5 to Th6, the determination unit 81 decides to increase the transmission timer value of the notified flow by 10%, and requests a request packet for changing the transmission timer value. It is transmitted to the communication device 30 (step S39). When the fluctuation amount in the selected flow is from the threshold value Th5 to Th6, the calculation unit 73 further transfers the nth flow and does not transfer the flow whose transmission timer value is shortened. The threshold Th1 of is reduced by 10% (step S40).
On the other hand, when the fluctuation amount in the selected flow is the threshold value Th6 or more, the calculation unit 73 determines not to change the transmission timer value for the nth flow (larger than Th6 in step S36).
After that, the calculation unit 73 determines whether the value of n is less than the constant N (step S41). Here, it is assumed that the constant N is the total number of flows that are not transferred by the transfer device 10 in which the sign is detected. If the value of n is less than the constant N, the calculator 73 increments n by one and returns to step S35 (Yes in step S41, step S42). If the value of n is equal to or greater than the constant N, the calculation unit 73 ends the process (No in step S41).
As described above, in the fourth embodiment, the flow for lengthening the transmission timer of the report packet is limited to the flow in which the fluctuation of the transfer rate is relatively small in the transfer device 10 in which the sign of congestion is detected. For this reason, there is less risk of overlooking the occurrence of congestion due to congestion occurring in a flow in which the transmission interval of report packets is long. Further, in the fourth embodiment, since the threshold value used by the calculation unit 73 when detecting the sign of flow transfer is reduced, the risk of overlooking the sign of congestion is also reduced.
<Other> The embodiment is not limited to the above, and can be variously modified. Some examples are given below.
The parameters used for detecting congestion and determining whether congestion may occur are not limited to the buffer usage rate of the transfer device 10. That is, depending on the implementation, congestion can be detected and whether or not congestion may occur can be determined by using arbitrary parameters that can be used to evaluate the processing load of the transfer device 10.
The format of the notification packet shown in FIG. 17 is an example, and other information elements may be included depending on the implementation. For example, when the sample rate is included in the notification packet, the switch (transfer device 10) does not have to calculate the sample rate, so that the processing load on the switch is reduced.
In this specification, for the sake of readability, the wording used when expressing the unit of information transmitted and received in the network is merely unified to "packet". Therefore, depending on the implementation, the word "packet" can be read as "frame" as appropriate.
The information elements in the tables and packets described above are examples, and the information elements may be changed depending on the implementation.
10 Transporter 11 Transmitter / receiver 12, 33 Communication Department 15, 50, 90 Memory 16 Forwarding table 17 MIB 18 buffer 20, 40, 70 Control 21 Switching section 22 Update Department 23 Notification section 30 Communication equipment 31, 62 transmitter 32, 61 receiver 34 Packet processing unit 35 virtual switch 41 Generator 42 Control packet processing unit 51 Flow information 52, 93 Timer value table 60 Control unit 71 Detector 72 Analysis Department 80 Flow control unit 81 Requests 82 Selection 83 Instruction packet generator 91 Topology information 92 Flow information 94 Flow analysis data 95 Link utilization table 96 Forwarding information table 101 processor 102 Switching circuit 103 memory 104 Network Interface 105 bus 106 Storage device
29 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP2013175912A | Cites | Japan |
| JP2005086803A | Cites | Japan |
| JP2000049940A | Cites | Japan |
| US07944836B1 | Cites | United States of America |
| US20080028467A1 | Cites | United States of America |
| WO2014024620A1 | Cites | World Intellectual Property Organization (WIPO) |
4 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 2014065392 | Japan | A | |
| JP20140065392 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US2015281100A1 | United States of America | A1 | |
| JP2015188186A | Japan | A | |
| US9602418B2 | United States of America | B2 | |
| JP6237397B2This record | Japan | B2 |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 6237397
- Publication, DOCDB
- 6237397
- Publication, EPODOC
- JP6237397B
- Application
- 65392
- Application, DOCDB
- 2014065392
- Application, EPODOC
- JP20140065392
Titles2
- Japanese
- 制御装置、および、通信方法
- English
- Control device and communication method
Classification
- CPC, 9
- H04L47/263
- H04L47/115
- H04L45/127
- H04L47/28
- H04L47/127
- H04L43/062
- H04L43/0882
- Y02D30/50
- H04L43/20
- IPC, 7
- H04L47 2466
- H04L45 125
- H04L45 42
- H04L12 855
- H04L12 70
- H04L12 729
- H04L12 717
