WO2020031996A1 - 負荷分散システム及び負荷分散方法 - Google Patents

負荷分散システム及び負荷分散方法 Download PDF

Info

Publication number
WO2020031996A1
WO2020031996A1 PCT/JP2019/030813 JP2019030813W WO2020031996A1 WO 2020031996 A1 WO2020031996 A1 WO 2020031996A1 JP 2019030813 W JP2019030813 W JP 2019030813W WO 2020031996 A1 WO2020031996 A1 WO 2020031996A1
Authority
WO
WIPO (PCT)
Prior art keywords
flow
packet
packet transfer
load
transfer device
Prior art date
Application number
PCT/JP2019/030813
Other languages
English (en)
French (fr)
Inventor
明寛 木村
伸也 河野
土屋 英雄
昭宏 岡田
克真 宮本
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/265,991 priority Critical patent/US11632331B2/en
Publication of WO2020031996A1 publication Critical patent/WO2020031996A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows

Definitions

  • the present invention relates to a load distribution system and a load distribution method.
  • a technique for distributing the load of a packet transfer device such as a router has been conventionally known.
  • a technique is known in which a plurality of packet transfer apparatuses and a plurality of transfer paths are prepared as packet transfer destinations, and traffic is evenly applied to each transfer path to distribute the load of the packet transfer apparatus.
  • a technique called ECMP (Equal / Cost / Multi / Path) or ECMP routing is also known.
  • ECMP is a load distribution technique for uniformly applying traffic to a transfer path having the same cost among a plurality of transfer paths described above.
  • bps bits per second
  • pps packets per second
  • these transfer capacities have upper limits unique to the packet transfer device.
  • bps may be limited by a line rate of a physical NIC (Network Interface Card)
  • pps may be a packet processing of software such as an OS (Operating System) or an application. May be limited by speed.
  • a flow refers to a packet (traffic) or a group of packets having the same flow information.
  • the flow information is specified by header information included in the packet, and refers to, for example, 5-tuple (source IP (Internet @ Protocol) address, destination IP address, source port number, destination port number, protocol type).
  • traffic such as moving images has the property of having many long packets. For this reason, when traffic such as moving images is concentrated, the transfer capacity of the data amount is depleted, while the transfer capacity of the number of packets has a margin.
  • traffic such as VoIP (Voice over Internet Protocol) and telemetry has the property that there are many short packets. For this reason, when traffic such as VoIP and telemetry converges, the transfer capacity for the data amount has room, but the transfer capacity for the number of packets is depleted.
  • the load distribution of a server that hosts a vCPE Virtualized CPE that virtualizes a part of the function of an in-home device (Customer ⁇ Premises ⁇ Equipment) is determined based on the load state of the server in terms of bps and pps and the packet length of the flow.
  • vCPE Virtualized CPE
  • There is a load distribution method to be performed for example, Non-Patent Document 1).
  • embodiments of the present invention provide information on flow characteristics indicating whether a flow composed of packets is a flow that tends to have many short packets or a flow that tends to have many long packets.
  • Storage means for storing the packet in association with the destination information of the packet, when the input port receives the packet, determination means for determining a flow characteristic of a flow constituted by the packet based on the storage means, and determination by the determination means
  • Output means for outputting a packet received by the input port to a packet transfer device in a load state indicating that the load due to the flow having the flow characteristic is small, among a plurality of packet transfer devices, , Is characterized by having.
  • the purpose is to determine the flow characteristics efficiently and accurately.
  • FIG. 1 is a diagram illustrating an example of an overall configuration of a load distribution system according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating an example of a functional configuration of the load distribution system according to the first embodiment.
  • FIG. 3 is a diagram illustrating an example of a database according to the first embodiment.
  • FIG. 4 is a diagram illustrating an example of an ECMP path table according to the first embodiment.
  • FIG. 5 is a diagram illustrating an example of a flow of a process of changing an ECMP path table according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of a flow of a packet transfer process according to the first embodiment.
  • FIG. 1 is a diagram illustrating an example of an overall configuration of a load distribution system according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating an example of a functional configuration of the load distribution system according to the first embodiment.
  • FIG. 3 is a diagram illustrating an example of a database according to the first
  • FIG. 7 is a diagram illustrating an example of a flow of a registration process of a flow characteristic according to the first embodiment.
  • FIG. 8 is a diagram illustrating an example of the flow of a new registration process.
  • FIG. 9 is a diagram illustrating an example of a database according to the second embodiment.
  • FIG. 10 is a diagram illustrating an example of a hardware configuration of a computer.
  • a load distribution system 1 that performs load distribution according to flow characteristics will be described.
  • the flow characteristics include a “high bps flow” indicating that there are many long packets and a “high pps flow” indicating that there are many short packets.
  • FIG. 1 is a diagram illustrating an example of an overall configuration of a load distribution system 1 according to an embodiment of the present invention.
  • a load distribution system 1 includes a load monitoring device 10, a first packet transfer device 20, a second packet transfer device 30, and a statistical information collection device 40. And a database 50.
  • the load monitoring device 10 is, for example, a computer or a computer system, and monitors the traffic flow of the second packet transfer device 30 to be load-balanced. Then, when the traffic flow rate of the second packet transfer device 30 exceeds a predetermined threshold value (or when the traffic flow value falls below the predetermined threshold value), the load monitoring device 10 performs the load distribution (or cancels the load distribution). Is transmitted to the first packet transfer device 20.
  • the first packet transfer device 20 is, for example, a router or the like, and transfers a packet from the network N1 to the second packet transfer device 30.
  • the first packet transfer device 20 refers to a predetermined table used for load distribution and, among the plurality of second packet transfer devices 30, the second packet transfer device 30 corresponding to the flow characteristic. Transfer the packet.
  • the first packet transfer device 20 changes a predetermined table used for load distribution according to a command from the load monitoring device 10.
  • the second packet transfer device 30 is, for example, a router or the like, and transfers the packet transferred from the first packet transfer device 20 to the network N2.
  • the plurality of second packet transfer devices 30 are distinguished from each other, they are represented as “second packet transfer device 30-1”, “second packet transfer device 30-2”, and the like.
  • the statistical information collection device 40 receives the flow characteristic notification for notifying the flow characteristics from the second packet transfer device 30, and updates the database 50.
  • the database 50 stores statistical information on flow characteristics.
  • the configuration of the load distribution system 1 shown in FIG. 1 is an example, and another configuration may be used.
  • the first packet transfer device 20 and the second packet transfer device 30 may be virtual routers or the like constructed on a computer or the like by a network virtualization technique.
  • Example 1 of the load distribution system 1 according to the embodiment of the present invention will be described.
  • FIG. 2 is a diagram illustrating an example of a functional configuration of the load distribution system 1 according to the first embodiment.
  • the load monitoring device 10 includes a flow rate monitoring unit 101, a load distribution determination unit 102, and a command transmission unit 103.
  • the flow monitoring unit 101 monitors the traffic flow of the second packet transfer devices 30 from the statistical information of the second packet transfer devices 30 in terms of the data amount (bps) and the number of packets (pps). That is, the flow monitoring unit 101 obtains the data amount (bps) and the number of packets (pps) as the monitoring result for each second packet transfer device 30.
  • the data amount (bps) obtained as the monitoring result is referred to as “bps result value”
  • the number of packets (pps) obtained as the monitoring result is referred to as “pps result value”.
  • the load distribution determining unit 102 determines whether to execute or cancel the load distribution. That is, the load distribution determination unit 102 determines whether the bps result value exceeds or falls below a preset bps threshold. Similarly, the load balancing determination unit 102 determines whether the pps result value has exceeded or falls below a preset pps threshold.
  • the load distribution determination unit 102 determines that the bps result value has exceeded the bps threshold, it determines that load distribution is to be performed. On the other hand, when it is determined that the bps result value has fallen below the bps threshold, the load distribution determination unit 102 determines to release the load distribution.
  • the load distribution determination unit 102 determines that the pps result value has exceeded the pps threshold.
  • the load distribution determination unit 102 determines to perform load distribution.
  • the load distribution determination unit 102 determines to release the load distribution.
  • the command transmission unit 103 transmits a predetermined command to the first packet transfer device 20 when the load distribution determination unit 102 determines that the load distribution should be performed or when it determines that the load distribution should be released.
  • the command includes “threshold value type”, “command type”, and “identification information of target device”.
  • the “threshold type” is a type of a threshold value that has exceeded the monitoring result or a threshold value that has fallen below the monitoring result. Either information indicating the bps threshold or information indicating the pps threshold is set. In the “instruction type”, information indicating whether to execute or cancel the load distribution is set.
  • the “identification information of the target device” is identification information of the second packet transfer device 30 whose monitoring result exceeds or falls below the threshold, and for example, the IP address of the second packet transfer device 30 is set. However, in addition to the IP address, for example, an ID, a MAC (Media Access Control) address, a host name, and the like of the second packet transfer device 30 may be set in the “identification information of the target device”.
  • the second packet transfer device 30 includes a statistical information recording unit 301.
  • the statistical information recording unit 301 notifies the statistical information collection device 40 of the flow information (5-tuple) and the flow characteristics of the flow using the flow characteristic notification. .
  • the statistical information collection device 40 specifies the flow based on the flow characteristic notification, updates the statistical information if the statistical information on the characteristics of the specified flow is registered in the database 50, and updates the flow characteristics if the statistical information is not registered. A record is created based on the notification and added to the database 50.
  • FIG. 3 is a diagram illustrating an example of the database 50 according to the first embodiment.
  • the database 50 stores flow characteristic statistical information as records.
  • the flow characteristic statistical information includes a “destination IP address”, a “destination port”, a “flow characteristic counter”, and a “score”.
  • the “destination IP address” the IP address of the destination of the packet is set.
  • the output port of the packet is set in the “destination port”.
  • the “flow characteristic counter” includes two counters “short (A)” and “long (B)”. The number of flows centered on short packets is set in the short counter, and the number of flows centered on long packets is set in the long counter.
  • the “score” is a normalized value obtained by dividing the difference (A ⁇ B) obtained by subtracting the value of the long counter (B) from the value of the short counter (A) by the total value (A + B) of both counters. Is set. If the “score” is a positive value, the characteristics of the flow identified by the “destination IP address” and the “destination port” are mainly short packet, and if the “score” is a negative value, the “destination IP address” The characteristics of the flow identified by the “destination port” are centered on long packets.
  • the statistical information collection device 40 When the flow characteristic included in the flow characteristic notification is “high pps flow”, the statistical information collection device 40 adds “1” to the short counter and sets the flow characteristic included in the flow characteristic notification to “high bps flow”. If, "1" is added to the long counter. When adding a record, the statistical information collection device 40 sets the short counter or the long counter to “1” based on the flow characteristics included in the flow characteristic notification, and sets the other counters to “0”. I do.
  • the statistical information collection device 40 creates records using only the destination information of the “destination IP address” and the “destination port”.
  • the number of records can be reduced by creating a record using only the destination information, but the determination accuracy of the flow characteristics is lower than in the case of creating a record by 5-tuple. For example, even if the destination information is the same, if the flow characteristics differ depending on the transmission source, the accuracy of determining the flow characteristics is reduced. Therefore, the statistical information collection device 40 replaces records so that records with high accuracy of flow characteristics are preferentially left in the database 50 while suppressing the number of records by limiting the key of record creation to destination information. Do.
  • the statistical information collecting apparatus 40 selects the record to be deleted based on the absolute value a of the “score”.
  • a record is selected based on LRU (Least ⁇ Recently ⁇ Used) to be deleted.
  • w is an arbitrary positive number.
  • the statistical information collection device 40 changes the elapsed time based on a so that a record having a small a, that is, a record having a small bias in the flow characteristics and a low determination accuracy of the flow characteristics is disadvantageously evaluated by the LRU. Apply LRU. For this reason, the statistical information collection device 40 can cause the record whose flow characteristic determination accuracy is high to remain in the database 50.
  • the statistical information collection device 40 and the database 50 may be included in, for example, the first packet transfer device 20.
  • the database 50 is realized by, for example, a RAM (Random Access Memory), an auxiliary storage device, a dedicated memory device, or the like.
  • the first packet transfer device 20 includes an instruction receiving unit 201, a route table changing unit 202, an input port 203, a flow information obtaining unit 204, an application determining unit 205, a route determination unit 206, a routing unit 207, an output port 208, and an input buffer 209.
  • Each of these functional units is realized by, for example, a process in which one or more programs installed in the first packet transfer device 20 cause a CPU or the like to execute.
  • the command receiving unit 201 receives a command from the load monitoring device 10.
  • the path table changing unit 202 changes the ECMP path table 1000 according to the command received by the command receiving unit 201.
  • the ECMP path table 1000 is a table that stores path information as an entry.
  • the ECMP path table 1000 is stored in, for example, an auxiliary storage device or a dedicated memory device. The details of the ECMP path table 1000 according to the first embodiment will be described later.
  • the input port 203 receives a packet from the network N1. Then, the input port 203 stores the received packet in the input buffer 209.
  • the input buffer 209 is a storage area for temporarily storing received packets, and is realized by, for example, a RAM, an auxiliary storage device, a dedicated memory device, or the like.
  • the flow information acquisition unit 204 generates a hash value from the flow information (for example, 5-tuple) of the packet stored in the input buffer 209. Also, the flow information acquisition unit 204 refers to the flow table 2000 and determines whether there is an entry including a hash value that matches the generated hash value.
  • the flow table 2000 is a table that stores, as an entry, flow transfer information in which a hash value is associated with information indicating the output port 208 (output port information).
  • the output port information is information for specifying one of the plurality of output ports 208.
  • the flow table 2000 is stored in, for example, a RAM, an auxiliary storage device, a dedicated memory device, or the like.
  • the flow information acquisition unit 204 determines that the corresponding entry exists, the flow information acquisition unit 204 notifies the routing unit 207 of the entry.
  • the flow information acquisition unit 204 determines that the packet is a packet of a new flow, and notifies the application determination unit 205 that the corresponding entry does not exist.
  • the flow information acquisition unit 204 notifies the application determination unit 205 of, for example, 5-tuple or L7 information of the packet (for example, L7 header information) and a hash value.
  • the entry (flow transfer information) stored in the flow table 2000 may be deleted (cleared) at predetermined time intervals by, for example, the route determination unit 206 or the like.
  • the application determining unit 205 searches the database 50 using the destination information as a key, and specifies the flow characteristics of the new flow. If the “score” is a positive value, the application determination unit 205 specifies the new flow as a flow centered on the short packet, and if the “score” is a negative value, specifies the new flow as a flow centered on the long packet. Then, the application determination unit 205 notifies the route determination unit 206 of the specified flow characteristics. At this time, the application determination unit 205 notifies the route determination unit 206 of, for example, 5-tuple, flow characteristics, and a hash value.
  • the route determination unit 206 determines the output port 208 from the flow characteristics specified by the application determination unit 205 with reference to the ECMP route table 1000. Further, the path determination unit 206 stores, in the flow table 2000, flow transfer information in which information indicating the determined output port 208 is associated with a hash value. Then, the route determination unit 206 notifies the routing unit 207 of the entry (flow transfer information) stored in the flow table 2000.
  • the routing unit 207 acquires the output port information included in the entry (flow transfer information) notified from the flow information acquisition unit 204 or the route determination unit 206. Then, the routing unit 207 transmits the packet to the output port 208 indicated by the obtained output port information.
  • the output port 208 outputs the packet received from the routing unit 207.
  • the output port 208 exists, for example, for each second packet transfer device 30.
  • the output port 208 includes an output port 208-1 corresponding to the second packet transfer device 30-1, an output port 208-2 corresponding to the second packet transfer device 30-2, and the like.
  • the output port 208 may be a physical port or a logical port.
  • FIG. 4 is a diagram illustrating an example of the ECMP path table 1000 according to the first embodiment.
  • the ECMP path table 1000 stores path information as an entry.
  • the route information includes “destination network”, “subnet mask”, “list of gateways”, “output port information”, “load state of data amount (bps)”, and “number of packets (pps). ) Load state ”.
  • IP In the “destination network”, the IP address or default of the network to which the packet is transferred is set. In “Subnet mask”, a subnet mask corresponding to the destination network is set.
  • IP In the “gateway list”, the IP address of the gateway (second packet transfer device 30) corresponding to the destination network is set. In the “gateway list”, IP addresses of one or more gateways are set for one destination network.
  • “eth1” indicating the output port 208-2 is associated with the gateway “192.168.1.1”. This indicates that when transmitting a packet from the gateway “192.168.1.1”, the packet is transmitted from the output port 208-2.
  • the load state of the data amount (bps) in the gateway is set.
  • the load state of the data amount (bps) in the corresponding gateway is “low load”. It is shown that.
  • “1” is set in “load state of data amount (bps)”, it indicates that the load state of the data amount (bps) in the corresponding gateway is “high load”.
  • the load state of the number of packets (pps) in the gateway is set for each gateway (IP address) set in the “list of gateways”.
  • IP address IP address
  • the load state of the number of packets (pps) in the corresponding gateway is “low load”. It is shown that.
  • “1” is set in “the load state of the number of packets (pps)”, it indicates that the load state of the number of packets (pps) in the corresponding gateway is “high load”.
  • the ECMP path table 1000 stores, for each destination network, path information including one or more gateways to the destination network, and output port information and load status of each gateway. ing.
  • each gateway when the load status of each gateway (the second packet transfer device 30) exceeds (or falls below) the threshold, the load status corresponding to the gateway is changed, and When transferring a packet, load distribution is performed by transmitting a packet from a gateway in a low load state according to the flow characteristics.
  • FIG. 5 is a diagram illustrating an example of a flow of a process of changing the ECMP path table 1000 according to the first embodiment.
  • the flow rate monitoring unit 101 of the load monitoring device 10 acquires the bps result value and the pps result value of the second packet transfer device 30 from the statistical information of the second packet transfer device 30 (Step S101).
  • the flow monitoring unit 101 acquires the bps result value and the pps result value of each second packet transfer device 30 at predetermined time intervals, for example.
  • the statistical information can be obtained by, for example, netstat.
  • the load distribution determining unit 102 of the load monitoring device 10 determines whether to execute or cancel the load distribution (Step S102). That is, the load balancing determination unit 102 determines whether the bps result value has exceeded or fell below the bps threshold. Similarly, the load balancing determination unit 102 determines whether the pps result value has exceeded or fell below the pps threshold.
  • the bbs threshold and the pps threshold may be the same value for all the second packet transfer devices 30, or may be determined for each of the second packet transfer devices 30. Alternatively, for example, a value may be determined for each group after one or more second packet transfer devices 30 are grouped on a predetermined basis.
  • the load distribution determination unit 102 determines that the bps result value has exceeded the bps threshold, it determines that load distribution is to be performed. On the other hand, when it is determined that the bps result value has fallen below the bps threshold, the load distribution determination unit 102 determines to release the load distribution.
  • the load distribution determination unit 102 determines that the pps result value has exceeded the pps threshold.
  • the load distribution determination unit 102 determines to perform load distribution.
  • the load distribution determination unit 102 determines to release the load distribution.
  • step S102 if neither execution of load distribution nor release of load distribution is determined, the load monitoring device 10 returns to step S101.
  • the instruction transmitting unit 103 of the load monitoring device 10 transmits a predetermined instruction to the first packet transfer device 20. (Step S103).
  • the command receiving unit 201 of the first packet transfer device 20 receives a command from the load monitoring device 10 (Step S104).
  • the route table changing unit 202 of the first packet transfer device 20 changes the ECMP route table 1000 according to the command received by the command receiving unit 201 (Step S105).
  • bps threshold is set in “threshold type”
  • load distribution is performed” in “command type”
  • 192.168.1.0 is set in “identification information of target device”.
  • the routing table changing unit 202 receives the “data amount (bps) load status” for each entry of the ECMP routing table 1000. To “1”.
  • the routing table change unit 202 changes the “data amount (bps) load status” for the gateway whose IP address is “192.168.1.2” for each entry of the ECMP routing table 1000 to “ To "0".
  • pps threshold is set in “threshold type”
  • load distribution is performed” in “command type”
  • 192.168.1.1 is set in “identification information of target device”.
  • the routing table changing unit 202 changes the “load state of the number of packets (pps)” for the gateway whose IP address is “192.168.1.1” for each entry of the ECMP routing table 1000 to “ 1 ”.
  • the routing table change unit 202 sets the “load state of the number of packets (pps)” for the gateway whose IP address is “192.168.1.0” to “entry” for each entry of the ECMP routing table 1000. To "0".
  • the load distribution system 1 sets the ECMP routing table 1000 when the bps result value or the pps result value of the second packet transfer device 30 to be load-balanced exceeds or falls below the threshold. For each entry stored in the second packet transfer device 30, the load state of the second packet transfer device 30 is changed. Thus, the load state (the load state of the data amount (bps) and the load state of the number of packets (pps)) of each second packet transfer device 30 is managed by each entry stored in the ECMP path table 1000. .
  • FIG. 6 is a diagram illustrating an example of a flow of a packet transfer process according to the first embodiment.
  • the input port 203 of the first packet transfer device 20 receives a packet from the network N1 (Step S201).
  • the input port 203 of the first packet transfer device 20 stores the packet received in step S201 in the input buffer 209 (step S202).
  • the flow information acquisition unit 204 of the first packet transfer device 20 generates a hash value from the flow information (for example, 5-tuple) of the packet stored in the input buffer 209 (Step S203).
  • a hash value from the flow information (for example, 5-tuple) of the packet stored in the input buffer 209 (Step S203).
  • any hash function can be used for generating the hash value.
  • the flow information acquisition unit 204 of the first packet transfer device 20 determines whether an entry (flow transfer information) including a hash value that matches the hash value generated in step S203 is stored in the flow table 2000. It is determined whether or not it is (step S204).
  • step S204 when it is determined that the entry is stored in the flow table 2000, the first packet transfer device 20 proceeds to the process of step S208 described below.
  • the application determination unit 205 of the first packet transfer device 20 uses the database 50 to change the flow characteristics of the packet. It is specified (step S205). That is, the application determination unit 205 specifies whether the flow characteristic of the flow due to the packet is “high bps flow” or “high pps flow”. The application determining unit 205 can specify the flow characteristic based on whether the “score” corresponding to the flow by the packet is positive or negative.
  • the route determination unit 206 of the first packet transfer device 20 determines the output port 208 from the flow characteristics specified in step S205 with reference to the ECMP route table 1000 (step S206).
  • the route determining unit 206 determines the output port 208 according to, for example, the following steps S1 to S3.
  • the path determination unit 206 searches the ECMP path table 1000 for an entry corresponding to the network address of the destination IP address included in 5-tuple notified from the application determination unit 205. At this time, the route determination unit 206 searches for an entry by, for example, longest match. When the entry corresponding to the network address is searched, the route determination unit 206 refers to this entry. On the other hand, when the entry corresponding to the network address is not searched, the route determination unit 206 refers to the entry in which “default” is set in the destination network.
  • the route determining unit 206 searches for a gateway in a low load state from the “gateway list” included in the entry being referred to, according to the flow characteristics.
  • the route determination unit 206 determines “load state of data amount (bps)” in “list of gateways” included in the entry. Are searched in order from the top.
  • the route determination unit 206 determines the “packet number (pps)” in the “gateway list” included in the entry.
  • the gateways in which “0” is set in the “load state” are searched in order from the top.
  • the route determination unit 206 determines the output port 208 indicated by the output port information corresponding to the gateway retrieved in S2 as the output port 208 of the packet.
  • the route determination unit 206 determines the output port 208 indicated by the output port information corresponding to the gateway in the high load state as the output port 208 of the packet. For example, if the flow characteristic specified in step S205 is “high bps flow” and there is no gateway for which “0” is set in the “load amount of data (bps)”, the route determination unit 206 The output port 208 indicated by the output port information corresponding to the gateway for which “1” is set in the “load state of data amount (bps)” is determined as the output port 208 of the packet.
  • the route determination unit 206 determines the output port 208 indicated by the output port information corresponding to the gateway for which “1” is set in the “load state of the number of packets (pps)” as the output port 208 of the packet.
  • the route determination unit 206 may move the gateway corresponding to the determined output port 208 to the end of the “gateway list”. good. For example, when the output port information “eth0” of the gateway “192.168.1.0” of the destination network “default” is determined as the output port 208 in the ECMP routing table 1000 illustrated in FIG. 4, the gateway “192. 168.1.0 ”may be moved to the end of the list (ie, after the gateway“ 192.168.1.2 ”). Thereby, further load distribution can be expected by changing the output port 208 for the same destination network by round robin.
  • the route determination unit 206 of the first packet transfer device 20 associates the hash value notified from the application determination unit 205 with the information (output port information) indicating the output port 208 determined in step S206.
  • the attached flow transfer information is stored in the flow table 2000 (step S207).
  • the routing unit 207 of the first packet transfer device 20 obtains the output port information from the corresponding entry (the entry whose hash value is determined to match in the above step S204 or the entry stored in the above step S207) ( Step S208). Then, the routing unit 207 transmits the packet to the output port 208 indicated by the obtained output port information.
  • the output port 208 of the first packet transfer device 20 transmits the packet received from the routing unit 207 (Step S209).
  • FIG. 7 is a diagram illustrating an example of a flow of a registration process of a flow characteristic according to the first embodiment.
  • the statistical information collection device 40 receives a flow characteristic notification from the second packet transfer device 30 (Step S301).
  • the statistical information collection device 40 determines whether or not the flow specified by the destination information included in the flow characteristic notification is registered in the database 50 (Step S302).
  • the statistical information collection device 40 sets the “flow characteristic counter” in the record of the flow based on the flow characteristic included in the flow characteristic notification. "1" is added (step S303). If the flow characteristic included in the flow characteristic notification is “high pps flow”, the statistical information collection device 40 adds “1” to the short counter, and the flow characteristic included in the flow characteristic notification is “high bps flow”. If “1", "1" is added to the long counter.
  • step S302 determines whether the flow is not registered in the database 50. If it is determined in step S302 that the flow is not registered in the database 50, the statistical information collection device 40 performs a new registration process of creating a record of the flow and registering the record in the database 50 (step S304). .
  • the statistical information collection device 40 updates the “score” of the record of the flow (step S305).
  • the statistical information collection device 40 adds “1” to the “flow characteristic counter”, If not registered, a record is created and registered in the database 50.
  • the first packet transfer device 20 can specify the flow characteristics of the received packet with reference to the database 50.
  • FIG. 8 is a diagram for explaining an example of the flow of the new registration process.
  • the statistical information collection device 40 creates a record using the destination information and the flow characteristics included in the flow characteristic notification (step S401).
  • the flow characteristic included in the flow characteristic notification is “high pps flow”
  • the statistical information collection device 40 sets “1” to the short counter, sets “0” to the long counter, and sets the flow characteristic notification. If the included flow characteristic is “high bps flow”, “1” is set in the long counter and “0” is set in the short counter.
  • the statistical information collection device 40 determines whether a record can be added (step S402).
  • step S402 the statistical information collection device 40 adds the created record to the database 50 (step S403).
  • the statistical information collection device 40 determines whether or not there is a record whose “score” is “0” (step S404).
  • step S404 If there is a record with “score” of “0” in step S404, the statistical information collecting device 40 replaces the record with “score” of “0” with the created record (step S405).
  • the load distribution system 1 according to the first embodiment has a low The packet is transferred to the second packet transfer device 30 under load.
  • the load distribution of the second packet transfer device 30 can be realized. For this reason, for example, it is possible to prevent a situation where packets of a high bps flow are concentrated in a certain second packet forwarding apparatus 30 or a situation where packets of a high pps flow are concentrated. The capacity can be maximized.
  • the load distribution system 1 stores the flow characteristic statistical information in the database 50. Then, when receiving the packet, the first packet transfer device 20 determines the characteristics of the flow formed by the received packet with reference to the database 50. For this reason, the first packet transfer device 20 can efficiently and accurately determine the flow characteristics.
  • the database 50 can store flow characteristic statistical information.
  • the first packet transfer device 20 efficiently determines flow characteristics. be able to.
  • the statistical information collection device 40 deletes the record whose “score” is “0”, and if there is no record whose “score” is “0”, A deletion target is selected by LRU using a value obtained by adding w / a to time. For this reason, the first packet transfer device 20 can accurately determine the flow characteristics while suppressing the number of records.
  • Example 2 If the purpose of the server that transmits and receives packets changes with the passage of time, the flow characteristics change even if the destination information is the same. In order to cope with such a situation, in the second embodiment, the database 50 stores the “flow characteristic counter” in a plurality of periods.
  • FIG. 9 is a diagram illustrating an example of the database 50 according to the second embodiment.
  • the “flow characteristic counter” is a counter that counts information from 0 to 1 month ago, a counter that counts information from 1 to 2 months ago, and counts information from 2 to 3 months ago. Divided into counters. Although one month is shown in FIG. 9, the period may be another unit such as two weeks or two months.
  • the “flow characteristic counter” has a weight coefficient used for calculating the “score” for each period.
  • the “score” is calculated as follows using the weight coefficient (F), the value (G) of the short counter two to three months ago, the value (H) of the long counter, and the weight coefficient (I).
  • the database 50 has a plurality of pairs of short counters and long counters for each period, and the statistical information collection device 40 stores the “score” in each set of short counters and long counters. The calculation is based on the difference between the counters and the weight coefficient. For this reason, the first packet transfer device 20 can accurately determine the flow characteristics even when the flow characteristics change.
  • FIG. 10 is a diagram illustrating an example of a hardware configuration of the computer 500.
  • the computer 500 shown in FIG. 10 includes a CPU (Central Processing Unit) 501, a RAM 502, a ROM (Read Only Memory) 503, an external I / F 504, a communication I / F 505, and an auxiliary storage device 506. Each of these pieces of hardware is communicably connected via a bus B.
  • CPU Central Processing Unit
  • RAM Random Access Memory
  • ROM Read Only Memory
  • I / F communication I / F 505
  • Each of these pieces of hardware is communicably connected via a bus B.
  • the CPU 501 is an arithmetic unit that reads a program or data from the ROM 503, the auxiliary storage device 506, or the like onto the RAM 502 and executes a process.
  • the RAM 502 is a volatile semiconductor memory that temporarily stores programs and data.
  • the ROM 503 is a nonvolatile semiconductor memory that can retain programs and data even when the power is turned off.
  • the ROM 503 stores, for example, OS settings and network settings.
  • the external I / F 504 is an interface with an external device.
  • the external device includes a recording medium 504a and the like.
  • the computer 500 can read and write the recording medium 504a and the like via the external I / F 504.
  • the recording medium 504a includes, for example, a flexible disk, a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital Memory card), and a USB (Universal Serial Bus) memory card.
  • a flexible disk for example, a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital Memory card), and a USB (Universal Serial Bus) memory card.
  • the communication I / F 505 is an interface for communicating with another device. Note that the first packet transfer device 20 and the second packet transfer device 30 have a plurality of communication I / Fs 505.
  • the auxiliary storage device 506 is, for example, a hard disk drive (HDD) or a solid state drive (SSD), and is a nonvolatile storage device that stores programs and data.
  • the programs and data stored in the auxiliary storage device 506 include, for example, an OS and an application program that implements various functions on the OS.
  • the load monitoring device 10, the first packet transfer device 20, the second packet transfer device 30, and the statistic information collection device 40 use the one or more computers 500 shown in FIG.
  • Various processes can be executed.
  • each functional unit of the load monitoring device 10 is realized by a process in which one or more programs stored in the auxiliary storage device 506 cause the CPU 501 or the like to execute.
  • each functional unit included in the first packet transfer device 20 is realized by a process for causing the CPU 501 or the like to execute one or more programs stored in the auxiliary storage device 506, a communication I / F 505, or the like.
  • the load monitoring device 10 may include at least one of a display device such as a display and an input device such as a keyboard and a mouse.
  • the packet transfer device that performs load distribution is the first packet transfer device 20, and the packet transfer device to be load-balanced is the second packet transfer device 30. It does not mean that the packet transfer device that functions as either the first packet transfer device 20 or the second packet transfer device 30 at all times.
  • the same packet transfer device may function as the first packet transfer device 20 and also function as the second packet transfer device 30.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

パケットにより構成されるフローがショートパケットが多い傾向のフロー又はロングパケットが多い傾向のフローのいずれであるかを示すフロー特性に関する情報を該パケットの宛先情報に対応付けて記憶する記憶手段と、入力ポートがパケットを受信すると、該パケットにより構成されるフローのフロー特性を前記記憶手段に基づいて判定する判定手段と、前記判定手段により判定されたフロー特性に応じて、複数のパケット転送装置のうち、前記フロー特性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置に対して前記入力ポートが受信したパケットを出力する出力手段と、を有することを特徴とする。

Description

負荷分散システム及び負荷分散方法
 本発明は、負荷分散システム及び負荷分散方法に関する。
 ルータ等のパケット転送装置の負荷を分散させる技術が従来から知られている。例えば、パケットの転送先として複数のパケット転送装置と複数の転送経路とを用意し、それぞれの転送経路にトラヒックを均等に印加することで、パケット転送装置の負荷を分散する技術が知られている。また、このような負荷分散技術として、ECMP(Equal Cost Multi Path)又はECMPルーティングと呼ばれる技術も知られている。ECMPは、上述した複数の転送経路のうち、等コストとなる転送経路にトラヒックを均等に印加する負荷分散技術である。
 ECMPを用いた負荷分散システムにおいて、パケット転送装置の出力物理ポートの出力バッファを監視し、この出力バッファの使用量又はパケット流量が閾値を超えた場合、転送経路を切り替える技術が知られている(例えば、特許文献1)。
 パケット転送装置における転送容量の指標として、bps(bits per second)で表されるデータ量の転送容量と、pps(packets per second)で表されるパケット数の転送容量とがある。また、これらの転送容量には、パケット転送装置に固有の上限値がある。例えば、パケット転送装置をネットワーク仮想化技術により実現した場合、bpsは物理NIC(Network Interface Card)のラインレートに律速されることがあり、ppsはOS(Operating System)やアプリケーション等のソフトウェアのパケット処理速度に律速されることがある。
 ECMPでは、フロー特性、すなわちロングパケット中心のフローかショートパケット中心のフローかを考慮していないため、パケット転送装置が転送するパケット長に偏りがある場合に、パケット転送装置の転送容量を最大限に活用することができないことがある。ここで、フローとは、フロー情報が同一のパケット(トラヒック)又はパケット群のことを言う。フロー情報は、パケットに含まれるヘッダ情報により特定され、例えば、5-tuple(送信元IP(Internet Protocol)アドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、プロトコルタイプ)のことを言う。
 例えば、動画等のトラヒックはロングパケットが多いという性質がある。このため、動画等のトラヒックが集中した場合、データ量の転送容量は枯渇する一方で、パケット数の転送容量には余裕がある状態となる。他方で、例えば、VoIP(Voice over Internet Protocol)やテレメトリング等のトラヒックはショートパケットが多いという性質がある。このため、VoIPやテレメトリング等のトラヒックが集中した場合、データ量の転送容量には余裕がある一方で、パケット数の転送容量が枯渇する状態となる。
 そこで、フロー特性を考慮して負荷を分散する技術がある。例えば、宅内装置(Customer Premises Equipment)の一部機能を仮想化するvCPE(Virtualized CPE)をホストするサーバの負荷分散を、サーバのbps及びppsの観点での負荷状態とフローのパケット長に基づいて行う負荷分散方式がある(例えば、非特許文献1)。
特開2004-350078号公報
木村 明寛、宮本 克真、河野 伸也、土屋 英雄、岡田 昭宏、「フロー特性に基づくvCPEサーバの負荷分散方式」、電子情報通信学会2018年総合大会講演論文集,Vol.2018年_通信(2),p.90 b-6-90
 フロー特性に基づいて負荷分散を行う場合、いかにフロー特性を効率良く正確に判定するかが課題となる。
 本発明の実施の形態は、上記の点に鑑みてなされたもので、フロー特性を効率良く正確に判定することを目的とする。
 上記目的を達成するため、本発明の実施の形態は、パケットにより構成されるフローがショートパケットが多い傾向のフロー又はロングパケットが多い傾向のフローのいずれであるかを示すフロー特性に関する情報を該パケットの宛先情報に対応付けて記憶する記憶手段と、入力ポートがパケットを受信すると、該パケットにより構成されるフローのフロー特性を前記記憶手段に基づいて判定する判定手段と、前記判定手段により判定されたフロー特性に応じて、複数のパケット転送装置のうち、前記フロー特性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置に対して前記入力ポートが受信したパケットを出力する出力手段と、を有することを特徴とする。
 フロー特性を効率良く正確に判定することを目的とする。
図1は、本発明の実施の形態における負荷分散システムの全体構成の一例を示す図である。 図2は、実施例1における負荷分散システムの機能構成の一例を示す図である。 図3は、実施例1におけるデータベースの一例を示す図である。 図4は、実施例1におけるECMP経路テーブルの一例を示す図である。 図5は、実施例1におけるECMP経路テーブルの変更処理の流れの一例を説明するための図である。 図6は、実施例1におけるパケット転送処理の流れの一例を説明するための図である。 図7は、実施例1におけるフロー特性の登録処理の流れの一例を説明するための図である。 図8は、新規登録処理の流れの一例を説明するための図である。 図9は、実施例2におけるデータベースの一例を示す図である。 図10は、コンピュータのハードウェア構成の一例を示す図である。
 以下、本発明の実施の形態について説明する。本発明の実施の形態では、フロー特性に応じて、負荷分散を行う負荷分散システム1について説明する。また、以降では、フロー特性には、ロングパケットが多いフローであることを示す「高bpsフロー」と、ショートパケットが多いフローであることを示す「高ppsフロー」とがあるものとする。
 <全体構成>
 まず、本発明の実施の形態における負荷分散システム1の全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における負荷分散システム1の全体構成の一例を示す図である。
 図1に示すように、本発明の実施の形態における負荷分散システム1には、負荷監視装置10と、第1のパケット転送装置20と、第2のパケット転送装置30と、統計情報収集装置40と、データベース50とが含まれる。
 負荷監視装置10は、例えばコンピュータ又はコンピュータシステム等であり、負荷分散対象である第2のパケット転送装置30のトラヒック流量を監視する。そして、負荷監視装置10は、第2のパケット転送装置30のトラヒック流量が所定の閾値を超えた場合(又は、所定の閾値を下回った場合)に、負荷分散の実施(又は負荷分散の解除)を示す命令を第1のパケット転送装置20に送信する。
 第1のパケット転送装置20は、例えばルータ等であり、ネットワークN1側からのパケットを第2のパケット転送装置30に転送する。このとき、第1のパケット転送装置20は、負荷分散に用いられる所定のテーブルを参照して、複数の第2のパケット転送装置30のうち、フロー特性に応じた第2のパケット転送装置30に当該パケットを転送する。
 また、第1のパケット転送装置20は、負荷監視装置10からの命令に応じて、負荷分散に用いられる所定のテーブルを変更する。
 第2のパケット転送装置30は、例えばルータ等であり、第1のパケット転送装置20から転送されたパケットをネットワークN2側に転送する。以降では、複数の第2のパケット転送装置30の各々を区別する場合は、「第2のパケット転送装置30-1」、「第2のパケット転送装置30-2」等と表す。
 統計情報収集装置40は、第2のパケット転送装置30からフロー特性を通知するフロー特性通知を受信してデータベース50を更新する。データベース50は、フロー特性に関する統計情報を記憶する。
 なお、図1に示す負荷分散システム1の構成は一例であって、他の構成であっても良い。例えば、第1のパケット転送装置20及び第2のパケット転送装置30は、ネットワーク仮想化技術によってコンピュータ上等に構築された仮想的なルータ等であっても良い。
 (実施例1)
 以降では、本発明の実施の形態における負荷分散システム1の実施例1について説明する。
 <機能構成>
 まず、実施例1における負荷分散システム1の機能構成について、図2を参照しながら説明する。図2は、実施例1における負荷分散システム1の機能構成の一例を示す図である。
 図2に示すように、実施例1における負荷監視装置10は、流量監視部101と、負荷分散決定部102と、命令送信部103とを有する。
 流量監視部101は、第2のパケット転送装置30の統計情報から、これらの第2のパケット転送装置30のトラヒック流量をデータ量(bps)及びパケット数(pps)それぞれの観点で監視する。すなわち、流量監視部101は、各第2のパケット転送装置30について、監視結果として、データ量(bps)及びパケット数(pps)を得る。以降では、監視結果とした得られたデータ量(bps)を「bps結果値」、監視結果として得られたパケット数(pps)を「pps結果値」と表す。
 負荷分散決定部102は、負荷分散を実施又は解除するかを決定する。すなわち、負荷分散決定部102は、bps結果値が、予め設定されたbps閾値を超えたか又は下回ったかを判定する。同様に、負荷分散決定部102は、pps結果値が、予め設定されたpps閾値を超えたか又は下回ったかを判定する。
 そして、負荷分散決定部102は、bps結果値がbps閾値を超えたと判定した場合、負荷分散を実施すると決定する。一方で、負荷分散決定部102は、bps結果値がbps閾値を下回ったと判定した場合、負荷分散を解除すると決定する。
 同様に、負荷分散決定部102は、pps結果値がpps閾値を超えたと判定した場合、負荷分散を実施すると決定する。一方で、負荷分散決定部102は、pps結果値がpps閾値を下回ったと判定した場合、負荷分散を解除すると決定する。
 命令送信部103は、負荷分散決定部102によって負荷分散を実施すると決定された場合又は負荷分散を解除すると判定された場合、所定の命令を第1のパケット転送装置20に送信する。
 ここで、命令には、「閾値種別」と、「命令種別」と、「対象装置の識別情報」とが含まれる。「閾値種別」は、監視結果が超えた閾値又は監視結果が下回った閾値の種別であり、bps閾値を示す情報又はpps閾値を示す情報のいずれかが設定される。「命令種別」は、負荷分散の実施又は解除のいずれであるかを示す情報が設定される。「対象装置の識別情報」は、監視結果が閾値を超えた又は下回った第2のパケット転送装置30の識別情報であり、例えば、当該第2のパケット転送装置30のIPアドレスが設定される。ただし、「対象装置の識別情報」には、IPアドレス以外にも、例えば、当該第2のパケット転送装置30のID、MAC(Media Access Control)アドレス、ホスト名等が設定されても良い。
 また、図2に示すように、実施例1における第2のパケット転送装置30は、統計情報記録部301を有する。統計情報記録部301は、第2のパケット転送装置30がフローの転送を完了すると、当該フローのフロー情報(5-tuple)とフロー特性を統計情報収集装置40にフロー特性通知を用いて通知する。
 統計情報収集装置40は、フロー特性通知に基づいてフローを特定し、特定したフローの特性に関する統計情報がデータベース50に登録されていれば当該統計情報を更新し、登録されていなければ、フロー特性通知に基づいてレコードを作成し、データベース50に追加する。
 図3は、実施例1におけるデータベース50の一例を示す図である。図3に示すように、データベース50には、レコードとしてフロー特性統計情報が格納されている。また、フロー特性統計情報には、「宛先IPアドレス」と、「宛先ポート」と、「フロー特性のカウンタ」と、「スコア」とが含まれる。
 「宛先IPアドレス」には、パケットの宛先のIPアドレスが設定される。「宛先ポート」には、パケットの出力ポートが設定される。「フロー特性のカウンタ」には、「ショート(A)」と「ロング(B)」の2つのカウンタが含まれる。ショートカウンタには、ショートパケット中心のフロー数が設定され、ロングカウンタには、ロングパケット中心のフロー数が設定される。
 「スコア」には、ショートカウンタの値(A)からロングカウンタの値(B)を引いた差の値(A-B)を、両カウンタの合計値(A+B)で割って正規化した値が設定される。「スコア」が正の値であれば「宛先IPアドレス」と「宛先ポート」で識別されるフローの特性はショートパケット中心であり、「スコア」が負の値であれば「宛先IPアドレス」と「宛先ポート」で識別されるフローの特性はロングパケット中心である。
 図3に示す例では、「宛先IPアドレス」が「10.0.0.10」であり「宛先ポート」が「5004」であるフローについて、ショートパケット中心のフロー数は「1000」であり、ロングパケット中心のフロー数は「0」であり、「スコア」は「1」である。
 統計情報収集装置40は、フロー特性通知に含まれるフロー特性が「高ppsフロー」である場合には、ショートカウンタに「1」を加え、フロー特性通知に含まれるフロー特性が「高bpsフロー」である場合には、ロングカウンタに「1」を加える。また、統計情報収集装置40は、レコードを追加する場合には、フロー特性通知に含まれるフロー特性に基づいてショートカウンタ又はロングカウンタを「1」に設定し、他のカウンタを「0」に設定する。
 データベース50の検索速度を上げるためには、レコード数を減らすことが重要となる。5-tuple全ての組み合わせでレコードを作成するとレコード数が膨大となるため、統計情報収集装置40は、「宛先IPアドレス」と「宛先ポート」の宛先情報のみを用いてレコードを作成する。
 ただし、宛先情報のみでレコードを作成するとレコード数を抑制できるが、5-tupleでレコードを作成する場合に比べてフロー特性の判定精度が低下する。例えば、宛先情報は同一でも送信元によってフロー特性が異なる場合にフロー特性の判定精度が低下する。そこで、統計情報収集装置40は、レコード作成のキーを宛先情報に限定することでレコード数を抑制しつつ、フロー特性の判定精度が高いレコードを優先的にデータベース50に残すようにレコードの置換を行う。
 すなわち、統計情報収集装置40は、データベース50が一杯の状態でレコードの置換が必要な場合に、削除するレコードを「スコア」の絶対値aに基づいて選択する。統計情報収集装置40は、まずa=0であるレコードを選択する。そして、a=0であるレコードがない場合には、統計情報収集装置40は、レコードが最後に参照されてからの経過時間にw/aを加算した後、直近で最も使用されなかったレコードから削除していくLRU(Least Recently Used)に基づいてレコードを選択する。ここで、wは任意の正数である。
 このように、統計情報収集装置40は、aが小さいレコード、すなわちフロー特性に偏りが少なくフロー特性の判定精度が低いレコードがLRUで不利に評価されるように経過時間をaに基づいて変更してLRUを適用する。このため、統計情報収集装置40は、フロー特性の判定精度が高いレコードがデータベース50に残るようにすることができる。
 なお、統計情報収集装置40及びデータベース50は、例えば、第1のパケット転送装置20に含まれても良い。また、データベース50は、例えば、RAM(Random Access Memory)や補助記憶装置、専用のメモリ装置等により実現される。
 また、図2に示すように、実施例1における第1のパケット転送装置20は、命令受信部201と、経路テーブル変更部202と、入力ポート203と、フロー情報取得部204と、アプリ判定部205と、経路決定部206と、ルーティング部207と、出力ポート208と、入力バッファ209とを有する。これら各機能部は、例えば、第1のパケット転送装置20にインストールされた1以上のプログラムがCPU等に実行させる処理により実現される。
 命令受信部201は、負荷監視装置10からの命令を受信する。経路テーブル変更部202は、命令受信部201が受信した命令に応じて、ECMP経路テーブル1000を変更する。ECMP経路テーブル1000は、エントリとして経路情報を格納しているテーブルである。なお、ECMP経路テーブル1000は、例えば、補助記憶装置や専用のメモリ装置等に格納されている。実施例1におけるECMP経路テーブル1000の詳細については後述する。
 入力ポート203は、ネットワークN1側からのパケットを受信する。そして、入力ポート203は、受信したパケットを入力バッファ209に格納する。なお、入力バッファ209は、受信したパケットを一時的に格納しておくための記憶領域であり、例えばRAMや補助記憶装置、専用のメモリ装置等により実現される。
 フロー情報取得部204は、入力バッファ209に格納されているパケットのフロー情報(例えば、5-tuple)からハッシュ値を生成する。また、フロー情報取得部204は、フローテーブル2000を参照して、生成したハッシュ値と一致するハッシュ値が含まれるエントリが存在するか否かを判定する。フローテーブル2000は、エントリとして、ハッシュ値と、出力ポート208を示す情報(出力ポート情報)とが対応付けられたフロー転送情報を格納しているテーブルである。出力ポート情報は、複数の出力ポート208のうちのいずれか1つの出力ポート208を特定するための情報である。なお、フローテーブル2000は、例えば、RAMや補助記憶装置、専用のメモリ装置等に格納されている。
 そして、フロー情報取得部204は、該当のエントリが存在すると判定した場合、当該エントリをルーティング部207に通知する。一方で、フロー情報取得部204は、該当のエントリが存在しないと判定した場合、当該パケットを新規フローのパケットと判断して、該当のエントリが存在しない旨をアプリ判定部205に通知する。このとき、フロー情報取得部204は、例えば、5-tuple又は当該パケットのL7情報(例えば、L7のヘッダ情報等)とハッシュ値とをアプリ判定部205に通知する。
 なお、フローテーブル2000に格納されているエントリ(フロー転送情報)は、例えば、経路決定部206等によって所定の時間毎に削除(クリア)されても良い。
 アプリ判定部205は、フロー情報取得部204からの通知に応じて、宛先情報をキーとしてデータベース50を検索し、新規フローのフロー特性を特定する。アプリ判定部205は、「スコア」が正の値であれば新規フローをショートパケット中心のフローと特定し、「スコア」が負の値であれば新規フローをロングパケット中心のフローと特定する。そして、アプリ判定部205は、特定したフロー特性を経路決定部206に通知する。このとき、アプリ判定部205は、例えば、5-tupleと、フロー特性と、ハッシュ値とを経路決定部206に通知する。
 経路決定部206は、ECMP経路テーブル1000を参照して、アプリ判定部205が特定したフロー特性から出力ポート208を決定する。また、経路決定部206は、決定した出力ポート208を示す情報と、ハッシュ値とを対応付けたフロー転送情報をフローテーブル2000に格納する。そして、経路決定部206は、フローテーブル2000に格納したエントリ(フロー転送情報)をルーティング部207に通知する。
 ルーティング部207は、フロー情報取得部204又は経路決定部206から通知されたエントリ(フロー転送情報)に含まれる出力ポート情報を取得する。そして、ルーティング部207は、取得した出力ポート情報が示す出力ポート208に当該パケットを送信する。
 出力ポート208は、ルーティング部207から受け取ったパケットを出力する。ここで、出力ポート208は、例えば、第2のパケット転送装置30毎に存在する。例えば、出力ポート208には、第2のパケット転送装置30-1に対応する出力ポート208-1、第2のパケット転送装置30-2に対応する出力ポート208-2等がある。なお、出力ポート208は、物理ポートであっても良いし、論理ポートであっても良い。
 ここで、実施例1におけるECMP経路テーブル1000について、図4を参照しながら説明する。図4は、実施例1におけるECMP経路テーブル1000の一例を示す図である。
 図4に示すように、実施例1におけるECMP経路テーブル1000には、エントリとして経路情報が格納されている。また、経路情報には、「宛先ネットワーク」と、「サブネットマスク」と、「ゲートウェイのリスト」と、「出力ポート情報」と、「データ量(bps)の負荷状態」と、「パケット数(pps)の負荷状態」とが含まれる。
 「宛先ネットワーク」には、パケットの転送先のネットワークのIPアドレス又はdefaultが設定される。「サブネットマスク」には、宛先ネットワークに対応するサブネットマスクが設定される。
 「ゲートウェイのリスト」には、宛先ネットワークに対応するゲートウェイ(第2のパケット転送装置30)のIPアドレスが設定される。なお、「ゲートウェイのリスト」には、1つの宛先ネットワークに対して、1つ以上のゲートウェイのIPアドレスが設定される。
 「出力ポート情報」には、「ゲートウェイのリスト」に設定されている各ゲートウェイ(のIPアドレス)に対する出力ポート208を示す情報がそれぞれ設定される。
 図4に示す例では、ゲートウェイ「192.168.1.0」に対して、出力ポート208-1を示す「eth0」が対応付けられている。これは、ゲートウェイ「192.168.1.0」からパケットを送信する場合、出力ポート208-1から送信されることを示している。
 同様に、例えば、ゲートウェイ「192.168.1.1」に対して、出力ポート208-2を示す「eth1」が対応付けられている。これは、ゲートウェイ「192.168.1.1」からパケットを送信する場合、出力ポート208-2から送信されることを示している。他のゲートウェイについても同様である。
 「データ量(bps)の負荷状態」には、「ゲートウェイのリスト」に設定されている各ゲートウェイ(のIPアドレス)に対して、当該ゲートウェイにおけるデータ量(bps)の負荷状態が設定される。ここで、図4に示す例では、「データ量(bps)の負荷状態」に「0」が設定されている場合、該当のゲートウェイにおけるデータ量(bps)の負荷状態が「低負荷」であることを示している。一方で、「データ量(bps)の負荷状態」に「1」が設定されている場合、該当のゲートウェイにおけるデータ量(bps)の負荷状態が「高負荷」であることを示している。
 「パケット数(pps)の負荷状態」には、「ゲートウェイのリスト」に設定されている各ゲートウェイ(のIPアドレス)に対して、当該ゲートウェイにおけるパケット数(pps)の負荷状態が設定される。ここで、図4に示す例では、「パケット数(pps)の負荷状態」に「0」が設定されている場合、該当のゲートウェイにおけるパケット数(pps)の負荷状態が「低負荷」であることを示している。一方で、「パケット数(pps)の負荷状態」に「1」が設定されている場合、該当のゲートウェイにおけるパケット数(pps)の負荷状態が「高負荷」であることを示している。
 このように、実施例1におけるECMP経路テーブル1000には、宛先ネットワーク毎に、当該宛先ネットワークに対する1以上のゲートウェイと、これらの各ゲートウェイの出力ポート情報及び負荷状態とが含まれる経路情報が格納されている。
 後述するように、実施例1では、各ゲートウェイ(第2のパケット転送装置30)の負荷状態が閾値を超えた場合(又は下回った場合)に、当該ゲートウェイに対応する負荷状態を変更すると共に、パケットを転送する際に、フロー特性に応じて低負荷状態のゲートウェイからパケットを送信することで、負荷分散が行われる。
 <ECMP経路テーブルの変更処理>
 以降では、実施例1におけるECMP経路テーブル1000の変更処理について、図5を参照しながら説明する。図5は、実施例1におけるECMP経路テーブル1000の変更処理の流れの一例を説明するための図である。
 まず、負荷監視装置10の流量監視部101は、第2のパケット転送装置30の統計情報から、これらの第2のパケット転送装置30のbps結果値及びpps結果値を取得する(ステップS101)。ここで、流量監視部101は、例えば、所定の時間毎に、各第2のパケット転送装置30のbps結果値及びpps結果値を取得する。なお、統計情報は、例えば、netstat等により取得することができる。
 次に、負荷監視装置10の負荷分散決定部102は、負荷分散を実施又は解除するかを決定する(ステップS102)。すなわち、負荷分散決定部102は、bps結果値がbps閾値を超えたか又は下回ったかを判定する。同様に、負荷分散決定部102は、pps結果値がpps閾値を超えたか又は下回ったかを判定する。なお、bbs閾値及びpps閾値は、全ての第2のパケット転送装置30で同一の値が決められても良いし、第2のパケット転送装置30毎に値が決められても良い。又は、例えば、1以上の第2のパケット転送装置30を所定の基準でグループ化した上で、グループ毎に値が決められても良い。
 そして、負荷分散決定部102は、bps結果値がbps閾値を超えたと判定した場合、負荷分散を実施すると決定する。一方で、負荷分散決定部102は、bps結果値がbps閾値を下回ったと判定した場合、負荷分散を解除すると決定する。
 同様に、負荷分散決定部102は、pps結果値がpps閾値を超えたと判定した場合、負荷分散を実施すると決定する。一方で、負荷分散決定部102は、pps結果値がpps閾値を下回ったと判定した場合、負荷分散を解除すると決定する。
 ステップS102において、負荷分散の実施及び負荷分散の解除のいずれも決定されなかった場合、負荷監視装置10は、上記のステップS101に戻る。
 一方で、ステップS102において、負荷分散の実施又は負荷分散の解除の少なくとも一方が決定された場合、負荷監視装置10の命令送信部103は、所定の命令を第1のパケット転送装置20に送信する(ステップS103)。
 第1のパケット転送装置20の命令受信部201は、負荷監視装置10からの命令を受信する(ステップS104)。
 次に、第1のパケット転送装置20の経路テーブル変更部202は、命令受信部201が受信した命令に応じて、ECMP経路テーブル1000を変更する(ステップS105)。
 具体的には、例えば、「閾値種別」に「bps閾値」、「命令種別」に「負荷分散の実施」、「対象装置の識別情報」に「192.168.1.0」がそれぞれ設定されている通知を受信した場合、経路テーブル変更部202は、ECMP経路テーブル1000の各エントリについて、IPアドレスが「192.168.1.0」であるゲートウェイに対する「データ量(bps)の負荷状態」を「1」に変更する。
 同様に、例えば、「閾値種別」に「bps閾値」、「命令種別」に「負荷分散の解除」、「対象装置の識別情報」に「192.168.1.2」がそれぞれ設定されている通知を受信した場合、経路テーブル変更部202は、ECMP経路テーブル1000の各エントリについて、IPアドレスが「192.168.1.2」であるゲートウェイに対する「データ量(bps)の負荷状態」を「0」に変更する。
 同様に、例えば、「閾値種別」に「pps閾値」、「命令種別」に「負荷分散の実施」、「対象装置の識別情報」に「192.168.1.1」がそれぞれ設定されている通知を受信した場合、経路テーブル変更部202は、ECMP経路テーブル1000の各エントリについて、IPアドレスが「192.168.1.1」であるゲートウェイに対する「パケット数(pps)の負荷状態」を「1」に変更する。
 同様に、例えば、「閾値種別」に「pps閾値」、「命令種別」に「負荷分散の解除」、「対象装置の識別情報」に「192.168.1.0」がそれぞれ設定されている通知を受信した場合、経路テーブル変更部202は、ECMP経路テーブル1000の各エントリについて、IPアドレスが「192.168.1.0」であるゲートウェイに対する「パケット数(pps)の負荷状態」を「0」に変更する。
 以上のように、実施例1における負荷分散システム1は、負荷分散対象である第2のパケット転送装置30のbps結果値又はpps結果値が閾値を超えた場合又は下回った場合、ECMP経路テーブル1000に格納されている各エントリにおいて、これらの第2のパケット転送装置30の負荷状態を変更する。これにより、ECMP経路テーブル1000に格納されている各エントリによって、各第2のパケット転送装置30の負荷状態(データ量(bps)の負荷状態及びパケット数(pps)の負荷状態)が管理される。
 <パケット転送処理>
 以降では、実施例1におけるパケット転送処理について、図6を参照しながら説明する。図6は、実施例1におけるパケット転送処理の流れの一例を説明するための図である。
 まず、第1のパケット転送装置20の入力ポート203は、ネットワークN1側からのパケットを受信する(ステップS201)。
 次に、第1のパケット転送装置20の入力ポート203は、上記のステップS201で受信したパケットを入力バッファ209に格納する(ステップS202)。
 次に、第1のパケット転送装置20のフロー情報取得部204は、入力バッファ209に格納されているパケットのフロー情報(例えば、5-tuple)からハッシュ値を生成する(ステップS203)。なお、ハッシュ値の生成に用いられるハッシュ関数は任意のものを用いることができる。
 次に、第1のパケット転送装置20のフロー情報取得部204は、上記のステップS203で生成したハッシュ値と一致するハッシュ値が含まれるエントリ(フロー転送情報)がフローテーブル2000に格納されているか否かを判定する(ステップS204)。
 ステップS204において、当該エントリがフローテーブル2000に格納されていると判定された場合、第1のパケット転送装置20は、後述するステップS208の処理に進む。
 一方で、ステップS204において、当該エントリがフローテーブル2000に格納されていないと判定された場合、第1のパケット転送装置20のアプリ判定部205は、データベース50を用いて、当該パケットのフロー特性を特定する(ステップS205)。すなわち、アプリ判定部205は、当該パケットによるフローのフロー特性が「高bpsフロー」又は「高ppsフロー」のいずれであるかを特定する。アプリ判定部205は、当該パケットによるフローに対応する「スコア」が正であるか負であるかに基づいてフロー特性を特定することができる。
 次に、第1のパケット転送装置20の経路決定部206は、ECMP経路テーブル1000を参照して、上記のステップS205で特定したフロー特性から出力ポート208を決定する(ステップS206)。経路決定部206は、例えば、次のS1~S3の手順により出力ポート208を決定する。
 S1)まず、経路決定部206は、アプリ判定部205から通知された5-tupleに含まれる宛先IPアドレスのネットワークアドレスに対応するエントリをECMP経路テーブル1000から検索する。このとき、経路決定部206は、例えば、ロンゲストマッチでエントリを検索する。当該ネットワークアドレスに対応するエントリが検索された場合、経路決定部206は、このエントリを参照する。一方で、当該ネットワークアドレスに対応するエントリが検索されなかった場合、経路決定部206は、宛先ネットワークに「default」が設定されているエントリを参照する。
 S2)次に、経路決定部206は、フロー特性に応じて、参照しているエントリに含まれる「ゲートウェイのリスト」の中から低負荷状態のゲートウェイを検索する。
 例えば、上記のステップS205で特定したフロー特性が「高bpsフロー」である場合、経路決定部206は、当該エントリに含まれる「ゲートウェイのリスト」のうち、「データ量(bps)の負荷状態」に「0」が設定されているゲートウェイを上から順番に検索する。
 一方で、例えば、上記のステップS205で特定したフロー特性が「高ppsフロー」である場合、経路決定部206は、当該エントリに含まれる「ゲートウェイのリスト」のうち、「パケット数(pps)の負荷状態」に「0」が設定されているゲートウェイを上から順番に検索する。
 S3)そして、経路決定部206は、上記のS2で検索されたゲートウェイに対応する出力ポート情報が示す出力ポート208を、当該パケットの出力ポート208に決定する。
 なお、上記のS2でゲートウェイが検索されなかった場合、経路決定部206は、高負荷状態のゲートウェイに対応する出力ポート情報が示す出力ポート208を、当該パケットの出力ポート208に決定する。例えば、上記のステップS205で特定したフロー特性が「高bpsフロー」で、「データ量(bps)の負荷状態」に「0」が設定されているゲートウェイが存在しない場合、経路決定部206は、「データ量(bps)の負荷状態」に「1」が設定されているゲートウェイに対応する出力ポート情報が示す出力ポート208を、当該パケットの出力ポート208に決定する。同様に、例えば、上記のステップS205で特定したフロー特性が「高ppsフロー」で、「パケット数(pps)の負荷状態」に「0」が設定されているゲートウェイが存在しない場合、経路決定部206は、「パケット数(pps)の負荷状態」に「1」が設定されているゲートウェイに対応する出力ポート情報が示す出力ポート208を、当該パケットの出力ポート208に決定する。
 ここで、同一の宛先ネットワークに対する出力ポート208をラウンドロビンで変更したい場合は、経路決定部206は、決定した出力ポート208に対応するゲートウェイを、「ゲートウェイのリスト」の最後尾に移動させても良い。例えば、図4に示すECMP経路テーブル1000において、宛先ネットワーク「default」のゲートウェイ「192.168.1.0」の出力ポート情報「eth0」が出力ポート208に決定された場合、このゲートウェイ「192.168.1.0」をリストの最後尾(すなわち、ゲートウェイ「192.168.1.2」の後ろ)に移動させても良い。これにより、同一の宛先ネットワークに対する出力ポート208をラウンドロビンで変更することで、更なる負荷分散が期待できる。
 次に、第1のパケット転送装置20の経路決定部206は、アプリ判定部205から通知されたハッシュ値と、上記のステップS206で決定した出力ポート208を示す情報(出力ポート情報)とを対応付けたフロー転送情報をフローテーブル2000に格納する(ステップS207)。
 第1のパケット転送装置20のルーティング部207は、該当のエントリ(上記のステップS204でハッシュ値が一致すると判定されたエントリ又は上記のステップS207で格納されたエントリ)から出力ポート情報を取得する(ステップS208)。そして、ルーティング部207は、取得した出力ポート情報が示す出力ポート208に当該パケットを送信する。
 第1のパケット転送装置20の出力ポート208は、ルーティング部207から受け取ったパケットを送信する(ステップS209)。
 <フロー特性の登録処理>
 以降では、実施例1におけるフロー特性の登録処理について、図7を参照しながら説明する。図7は、実施例1におけるフロー特性の登録処理の流れの一例を説明するための図である。
 まず、統計情報収集装置40は、第2のパケット転送装置30からフロー特性通知を受信する(ステップS301)。
 次に、統計情報収集装置40は、フロー特性通知に含まれる宛先情報で特定されるフローがデータベース50に登録されているか否かを判定する(ステップS302)。
 ステップS302において、当該フローがデータベース50に登録されていると判定した場合、統計情報収集装置40は、フロー特性通知に含まれるフロー特性に基づいて、当該フローのレコードの「フロー特性のカウンタ」に「1」を加算する(ステップS303)。統計情報収集装置40は、フロー特性通知に含まれるフロー特性が「高ppsフロー」である場合にはショートカウンタに「1」を加算し、フロー特性通知に含まれるフロー特性が「高bpsフロー」である場合にはロングカウンタに「1」を加算する。
 一方、ステップS302において、当該フローがデータベース50に登録されていないと判定した場合、統計情報収集装置40は、当該フローのレコードを作成してデータベース50に登録する新規登録処理を行う(ステップS304)。
 次に、統計情報収集装置40は、当該フローのレコードの「スコア」を更新する(ステップS305)。
 以上のように、統計情報収集装置40は、フロー特性通知に含まれる宛先情報で特定されるフローがデータベース50に登録されている場合には「フロー特性のカウンタ」に「1」を加算し、登録されていない場合にはレコードを作成してデータベース50の登録する。これにより、第1のパケット転送装置20は、受信したパケットのフロー特性をデータベース50を参照して特定することができる。
 図8は、新規登録処理の流れの一例を説明するための図である。統計情報収集装置40は、フロー特性通知に含まれる宛先情報とフロー特性を用いてレコードを作成する(ステップS401)。統計情報収集装置40は、フロー特性通知に含まれるフロー特性が「高ppsフロー」である場合にはショートカウンタに「1」を設定してロングカウンタに「0」を設定し、フロー特性通知に含まれるフロー特性が「高bpsフロー」である場合にはロングカウンタに「1」を設定してショートカウンタに「0」を設定する。
 次に、統計情報収集装置40は、レコードの追加が可能であるか否かを判定する(ステップS402)。
 ステップS402において、レコードの追加が可能である場合、統計情報収集装置40は、データベース50に作成したレコードを追加する(ステップS403)。
 一方、ステップS402において、レコードの追加が可能でない場合、統計情報収集装置40は、「スコア」が「0」のレコードがあるか否かを判定する(ステップS404)。
 ステップS404において、「スコア」が「0」のレコードがある場合、統計情報収集装置40は、「スコア」が「0」のレコードを、作成したレコードで置換する(ステップS405)。
 一方、ステップS404において、「スコア」が「0」のレコードがない場合、統計情報収集装置40は、全てのレコードについて、「スコア」に基づく値b=w/aを経過時間に加算する(ステップS406)。そして、統計情報収集装置40は、bが加算された経過時間が最大のレコードを特定し(ステップS407)、特定したレコードを、作成したレコードで置換する(ステップS408)。
 以上のように、実施例1における負荷分散システム1は、第1のパケット転送装置20から第2のパケット転送装置30にパケットを転送する際に、当該パケットによるフローのフロー特性に応じて、低負荷状態の第2のパケット転送装置30に当該パケットを転送する。これにより、実施例1における負荷分散システム1では、第2のパケット転送装置30の負荷分散を実現することができる。このため、例えば、或る第2のパケット転送装置30に高bpsフローのパケットが集中する事態や高ppsフローのパケットが集中する事態を防止することができ、第2のパケット転送装置30の転送容量を最大限に活かすことができるようになる。
 また、実施例1における負荷分散システム1は、フロー特性統計情報をデータベース50に記憶する。そして、第1のパケット転送装置20は、パケットを受信すると、受信したパケットが構成するフローの特性をデータベース50を参照して判定する。このため、第1のパケット転送装置20は、フロー特性を効率良く正確に判定することができる。
 また、統計情報収集装置40は第2のパケット転送装置30からフロー特性通知を受信する毎にデータベース50を更新するため、データベース50は、フロー特性統計情報を記憶することができる。
 また、データベース50は5-tupleではなく宛先情報に対応付けて「フロー特性のカウンタ」及び「スコア」をフロー毎に記憶するため、第1のパケット転送装置20は、フロー特性を効率良く判定することができる。
 また、統計情報収集装置40は、データベース50のレコードを置換するときに「スコア」が「0」であるレコードを削除対象とし、「スコア」が「0」であるレコードがない場合には、経過時間にw/aを加算した値を用いてLRUにより削除対象を選択する。このため、第1のパケット転送装置20は、レコード数を抑えつつフロー特性を正確に判定することができる。
 (実施例2)
 時間経過によってパケットを送受信するサーバの用途が変化すると、宛先情報が同一でもフロー特性が変化する。このような状況に対処するため、実施例2では、データベース50は、「フロー特性のカウンタ」を複数の期間に分けて記憶する。
 図9は、実施例2におけるデータベース50の一例を示す図である。図9に示すように、「フロー特性のカウンタ」は、0~1ヶ月前の情報をカウントするカウンタ、1~2ヶ月前の情報をカウントするカウンタ、及び2~3ヶ月前の情報をカウントするカウンタに分けられる。図9では1ヶ月であるが、期間は、2週間、2ヶ月など他の単位でも良い。また、「フロー特性のカウンタ」は、期間毎に「スコア」の計算に用いられる重み係数を有する。
 0~1ヶ月前のショートカウンタの値(A)とロングカウンタの値(B)と重み係数(C)、1~2ヶ月前のショートカウンタの値(D)とロングカウンタの値(E)と重み係数(F)、及び2~3ヶ月前のショートカウンタの値(G)とロングカウンタの値(H)と重み係数(I)を用いて「スコア」は以下のように計算される。
 「スコア」={(A-B)×C+(D-E)×F+(G-H)×I}÷{(A+B)×C+(D+E)×F+(G+H)×I}
 なお、図9では、C=10、F=5、I=1として「スコア」が計算されている。例えば、「宛先IPアドレス」が「20.0.0.15」であり「宛先ポート」が「443」であるフローの「スコア」は以下のように計算される。
 「スコア」={(1000-0)×10+(0-1000)×5+(0-1000)×1}÷{(1000+0)×10+(0+1000)×5+(0+1000)×1}={10000-5000-1000}÷{10000+5000+1000}=0.25
 以上のように、実施例2における負荷分散システム1では、データベース50はショートカウンタとロングカウンタの組を期間毎に複数有し、統計情報収集装置40は「スコア」を各組のショートカウンタとロングカウンタの差及び重み係数に基づいて計算する。このため、第1のパケット転送装置20は、フロー特性が変化する場合にもフロー特性を正確に判定することができる。
 <ハードウェア構成>
 最後に、本発明の実施の形態における負荷監視装置10、第1のパケット転送装置20、第2のパケット転送装置30及び統計情報収集装置40のハードウェア構成について説明する。本発明の実施の形態における負荷監視装置10、第1のパケット転送装置20、第2のパケット転送装置30及び統計情報収集装置40は、例えば図10に示すコンピュータ500を1台以上用いることにより実現される。図10は、コンピュータ500のハードウェア構成の一例を示す図である。
 図10に示すコンピュータ500は、CPU(Central Processing Unit)501と、RAM502と、ROM(Read Only Memory)503と、外部I/F504と、通信I/F505と、補助記憶装置506とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
 CPU501は、ROM503や補助記憶装置506等からプログラムやデータをRAM502上に読み出して処理を実行する演算装置である。
 RAM502は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM503は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM503には、例えば、OS設定やネットワーク設定等が格納されている。
 外部I/F504は、外部装置とのインタフェースである。外部装置には、記録媒体504a等がある。コンピュータ500は、外部I/F504を介して、記録媒体504a等の読み取りや書き込み等を行うことができる。
 記録媒体504aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
 通信I/F505は、他の装置と通信を行うためのインタフェースである。なお、第1のパケット転送装置20及び第2のパケット転送装置30は、複数の通信I/F505を有する。
 補助記憶装置506は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置506に格納されているプログラムやデータには、例えば、OS、当該OS上において各種機能を実現するアプリケーションプログラム等がある。
 本発明の実施の形態における負荷監視装置10、第1のパケット転送装置20、第2のパケット転送装置30及び統計情報収集装置40は、図10に示すコンピュータ500を1台以上用いることにより、上述した各種処理を実行することができる。例えば、負荷監視装置10が有する各機能部は、補助記憶装置506に格納された1以上のプログラムがCPU501等に実行させる処理により実現される。また、例えば、第1のパケット転送装置20が有する各機能部は、補助記憶装置506に格納された1以上のプログラムがCPU501等に実行させる処理や通信I/F505等により実現される。
 なお、負荷監視装置10は、例えばディスプレイ等の表示装置と、例えばキーボードやマウス等の入力装置とのうちの少なくとも一方を有していても良い。
 本発明は、具体的に開示された上記の実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、上記の実施の形態では、負荷分散を行うパケット転送装置を第1のパケット転送装置20、負荷分散の対象となるパケット転送装置を第2のパケット転送装置30としたが、これは、或るパケット転送装置が常に第1のパケット転送装置20又は第2のパケット転送装置30のいずれかとして機能することを意味するものではない。例えば、同一のパケット転送装置が第1のパケット転送装置20として機能し、かつ、第2のパケット転送装置30としても機能しても良い。
 1     負荷分散システム
 10    負荷監視装置
 20    第1のパケット転送装置
 30    第2のパケット転送装置
 40    統計情報収集装置
 50    データベース
 101   流量監視部
 102   負荷分散決定部
 103   命令送信部
 201   命令受信部
 202   経路テーブル変更部
 203   入力ポート
 204   フロー情報取得部
 205   アプリ判定部
 206   経路決定部
 207   ルーティング部
 208   出力ポート
 209   入力バッファ
 301   統計情報記録部
 N1、N2 ネットワーク

Claims (6)

  1.  パケットにより構成されるフローがショートパケットが多い傾向のフロー又はロングパケットが多い傾向のフローのいずれであるかを示すフロー特性に関する情報を該パケットの宛先情報に対応付けて記憶する記憶手段と、
     入力ポートがパケットを受信すると、該パケットにより構成されるフローのフロー特性を前記記憶手段に基づいて判定する判定手段と、
     前記判定手段により判定されたフロー特性に応じて、複数のパケット転送装置のうち、前記フロー特性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置に対して前記入力ポートが受信したパケットを出力する出力手段と、
     を有することを特徴とする負荷分散システム。
  2.  前記パケット転送装置がフローの転送を完了すると、該フローの宛先情報とフロー特性を前記パケット転送装置から受信して前記記憶手段を更新する更新手段
     を有することを特徴とする請求項1に記載の負荷分散システム。
  3.  前記フロー特性に関する情報は、ショートパケットが多い傾向のフローの数を示すショートカウンタと、ロングパケットが多い傾向のフローの数を示すロングカウンタと、前記ショートカウンタとロングカウンタの差に基づくスコアを含み、
     前記判定手段は、前記スコアに基づいて前記フロー特性を判定することを特徴とする請求項2に記載の負荷分散システム。
  4.  前記更新手段は、前記記憶手段のエントリを置換するときに、前記スコアが0であるエントリがある場合は、前記スコアが0であるエントリを置換されるエントリとして選択し、前記スコアが0であるエントリがない場合は、各エントリが前記記憶手段に登録されてからの経過時間に前記スコアの逆数に基づく第1の値を加えた第2の値を用いてLRUに従って、置換されるエントリを選択することを特徴とする請求項3に記載の負荷分散システム。
  5.  前記フロー特性に関する情報は、前記ショートカウンタとロングカウンタの組を期間毎に複数含み、前記スコアは、各組のショートカウンタとロングカウンタの差に基づく値であることを特徴とする請求項3又は4に記載の負荷分散システム。
  6.  パケットにより構成されるフローがショートパケットが多い傾向のフロー又はロングパケットが多い傾向のフローのいずれであるかを示すフロー特性に関する情報を該パケットの宛先情報に対応付けて記憶手段に記憶する手順と、
     入力ポートがパケットを受信すると、該パケットにより構成されるフローのフロー特性を前記記憶手段に基づいて判定する判定手順と、
     前記判定手順により判定されたフロー特性に応じて、複数のパケット転送装置のうち、前記フロー特性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置に対して前記入力ポートが受信したパケットを出力する出力手順と、
     を負荷分散システムが実行することを特徴とする負荷分散方法。
PCT/JP2019/030813 2018-08-07 2019-08-06 負荷分散システム及び負荷分散方法 WO2020031996A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/265,991 US11632331B2 (en) 2018-08-07 2019-08-06 Load distribution system and load distribution method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018148940A JP7003873B2 (ja) 2018-08-07 2018-08-07 負荷分散システム及び負荷分散方法
JP2018-148940 2018-08-07

Publications (1)

Publication Number Publication Date
WO2020031996A1 true WO2020031996A1 (ja) 2020-02-13

Family

ID=69414777

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/030813 WO2020031996A1 (ja) 2018-08-07 2019-08-06 負荷分散システム及び負荷分散方法

Country Status (3)

Country Link
US (1) US11632331B2 (ja)
JP (1) JP7003873B2 (ja)
WO (1) WO2020031996A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015233221A (ja) * 2014-06-10 2015-12-24 日本電信電話株式会社 統計情報メモリシステム、ネットワーク機器、および統計情報蓄積方法
JP2016525846A (ja) * 2013-07-31 2016-08-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ・パケットを処理するための方法、システム、およびコンピュータ・プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004350078A (ja) 2003-05-23 2004-12-09 Fujitsu Ltd 方路分散伝送システム
FR2908575B1 (fr) * 2006-11-09 2009-03-20 At & T Corp Methode et appareil pour fournir un equilibrage de charge base sur le flux
US7729278B2 (en) * 2007-02-14 2010-06-01 Tropos Networks, Inc. Wireless routing based on data packet classifications
JP5014282B2 (ja) * 2008-08-06 2012-08-29 アラクサラネットワークス株式会社 通信データ統計装置、通信データ統計方法およびプログラム
US10749795B2 (en) * 2018-07-06 2020-08-18 Citrix Systems, Inc. Systems and methods for selecting communication paths for applications sensitive to bursty packet drops

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016525846A (ja) * 2013-07-31 2016-08-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ・パケットを処理するための方法、システム、およびコンピュータ・プログラム
JP2015233221A (ja) * 2014-06-10 2015-12-24 日本電信電話株式会社 統計情報メモリシステム、ネットワーク機器、および統計情報蓄積方法

Also Published As

Publication number Publication date
JP2020025202A (ja) 2020-02-13
JP7003873B2 (ja) 2022-01-21
US11632331B2 (en) 2023-04-18
US20210297357A1 (en) 2021-09-23

Similar Documents

Publication Publication Date Title
US10257066B2 (en) Interconnect congestion control in a storage grid
US10075396B2 (en) Methods and systems for managing distributed media access control address tables
US10404622B2 (en) Servers, switches, and systems with virtual interface to external network connecting hardware and integrated networking driver
US10135714B2 (en) Servers, switches, and systems with switching module implementing a distributed network operating system
US9680714B2 (en) Methods, systems, and fabrics implementing a distributed network operating system
US9742697B2 (en) Integrated server with switching capabilities and network operating system
US10581734B2 (en) Methods, systems, and fabrics implementing a distributed network operating system
US9304782B2 (en) Network switch, systems, and servers implementing boot image delivery
US20110134761A1 (en) Dynamically provisioning virtual machines
JP6015744B2 (ja) 輻輳制御方法、輻輳制御装置、通信システム及び輻輳制御プログラム
WO2020036162A1 (ja) 負荷分散システム及び負荷分散方法
WO2013146808A1 (ja) コンピュータシステム、及び通信経路変更方法
JP6888566B2 (ja) 負荷分散システム及び負荷分散方法
JP7255675B2 (ja) 仮想マシン監視装置、仮想マシン監視方法およびプログラム
WO2020031996A1 (ja) 負荷分散システム及び負荷分散方法
JP6669807B2 (ja) 計算機システムおよび計算機
WO2020162185A1 (ja) 負荷分散システム及び負荷分散方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19848093

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19848093

Country of ref document: EP

Kind code of ref document: A1