Network system

WO2026176587A1PCT designated stage Publication Date: 2026-08-27NT T INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/005849
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-20
Publication Date
2026-08-27

Smart Images

  • Figure JP2025005849_27082026_PF_FP_ABST
    Figure JP2025005849_27082026_PF_FP_ABST
Patent Text Reader

Abstract

This network system (10) comprises a plurality of local networks (refer to data center 500), and a plurality of lines connecting two local networks. Upon receiving a communication flow path setting request, a controller (200) acquires, from a policy determination device (400), a policy for determining the order of priority in which communication packets are distributed to the plurality of lines, and notifies a pre-stage switch (100) of the policy. The pre-stage switch (100) distributes the communication packets to gateways (300) in accordance with the policy.
Need to check novelty before this filing date? Find Prior Art

Description

Network System

[0001] This invention relates to a network system that employs spraying technology and connects local networks via multiple lines.

[0002] To make effective use of network bandwidth, spraying technology has been proposed, which distributes communication packets contained in a single communication flow across multiple paths for forwarding (see Non-Patent Documents 1 and 2). However, because delays differ depending on the path, reordering of communication packets is likely to occur, and protocols such as TCP require longer retransmission timers (see Non-Patent Document 3). As a result, detection and retransmission of packet loss may be delayed, potentially leading to a decrease in throughput.

[0003] A. Dixit, P. Prakash, YC Hu, and RR Kompella, "On the impact of packet spraying in data center networks," Proceedings of IEEE INFOCOM, 2013, pp.2130-2138. D. Shokarev, "To Spray or Not to Spray," [online], Juniper Networks, Nov. 21, 2023, [Retrieved February 12, 2025], Internet<URL: https: / / community.juniper.net / blogs / dmitry-shokarev1 / 2023 / 11 / 21 / to-spray-or-not-to-spray> V. Paxson, M. Allman, J. Chu, and M. Sargent, "Computing TCP's Retransmission Timer," [online], RFC 6298, June 2011, [Retrieved February 12, 2025], Internet<URL: https: / / www.rfc-editor.org / rfc / rfc6298.html>

[0004] When connecting data centers located remotely with optical paths (lines) of redundant routes, the routes of the lines are significantly different in order to reduce the risk of failure. Then, the physical distances of the lines are also significantly different, and the propagation delays are significantly different, so throughput may further decrease due to spreading. The present invention has been made in view of such a background, and aims to improve the throughput reduction when using the spreading technology.

[0005] To solve the aforementioned problems, the network system according to the present invention is configured to include a plurality of local networks, a plurality of lines connecting two of the local networks, and a controller, wherein the local networks are configured to include gateways that are endpoints of the plurality of lines, and upstream switches connected to the plurality of gateways, and the controller includes a policy acquisition unit that, upon receiving a routing request for a communication flow between a source host connected to the source local network which is the local network, and a destination host connected to the destination local network which is the local network, queries a policy determination device to obtain a policy for distributing the communication packets included in the communication flow to the plurality of lines, and notifies the upstream switches, wherein the policy determines the priority for distributing the communication packets to the plurality of lines based on the characteristics of the lines The upstream switch includes a distribution policy which is a policy for determining the distribution of communication packets to each line, and a distribution ratio which is the proportion of the communication packets to each line. The upstream switch includes a line information acquisition unit which acquires the characteristic values ​​of the line, an interface correspondence calculation unit which calculates the proportion of communication packets included in the communication flow to be distributed to a gateway connected to the line and the communication interface connected to the gateway, based on the policy and the characteristic values ​​of the line, a forwarding table setting unit which sets a forwarding table which includes the proportion of communication packets included in the communication flow to be distributed to a gateway connected to the line and the communication interface connected to the gateway, based on the calculation results of the interface correspondence calculation unit, and a packet forwarding unit which forwards the communication packets included in the communication flow according to the forwarding table.

[0006] Furthermore, the network system according to the present invention comprises a plurality of local networks, a plurality of lines connecting two of the local networks, and a controller, wherein the local networks comprise gateways that are endpoints of the plurality of lines, and upstream switches connected to the plurality of gateways, and the controller comprises a line information acquisition unit that acquires the characteristic values ​​of the lines, and a policy acquisition unit that, upon receiving a routing request for a communication flow between a source host connected to the source local network which is the local network, and a destination host connected to the destination local network which is the local network, queries a policy determination device to acquire a policy for distributing the communication packets included in the communication flow to the plurality of lines, wherein the policy is a priority for distributing the communication packets to the plurality of lines based on the characteristics of the lines The controller includes a distribution policy which is a policy for determining the order, and a distribution ratio which is the proportion of the communication packets for each line, and each of the upstream switches further includes an interface correspondence calculation unit which calculates the proportion of communication packets included in the communication flow to be distributed to gateways connected to the line, and the gateways, and notifies the upstream switch of the above, based on the policy and the characteristics of the line, and the upstream switch includes a forwarding table setting unit which sets a forwarding table which includes the proportion of communication packets included in the communication flow to be distributed to gateways connected to the line, and the communication interfaces connected to the gateways, based on the notification from the controller, and a packet forwarding unit which forwards the communication packets included in the communication flow according to the forwarding table.

[0007] According to the present invention, it is possible to improve the throughput reduction when using spraying technology.

[0008] This is an overall configuration diagram of the network system according to the first embodiment. This is a functional block diagram of the front-end switch according to the first embodiment. This is a data configuration diagram of the policy management database according to the first embodiment. This is a data configuration diagram of the gateway information database according to the first embodiment. This is a data configuration diagram of the output destination management database according to the first embodiment. This is a data configuration diagram of the interface-compatible database according to the first embodiment. This is a data configuration diagram of the forwarding table according to the first embodiment. This is a functional block diagram of the gateway according to the first embodiment. This is a functional block diagram of the controller according to the first embodiment. This is a data configuration diagram of the data center network management database according to the first embodiment. This is a data configuration diagram of the front-end switch management database according to the first embodiment. This is a data configuration diagram of the interface management database according to the first embodiment. This is a data configuration diagram of the flow policy management database according to the first embodiment. This is a flowchart of the route setting process according to the first embodiment. This is a functional block diagram of the controller according to the second embodiment. This is a data configuration diagram of the interface-compatible database according to the second embodiment. This is a functional block diagram of the front-end switch according to the second embodiment. This is a flowchart of the route setting process according to the second embodiment. This is a hardware configuration diagram showing an example of a computer that implements the functions of the front-end switch and controller according to the above embodiment.

[0009] <<Overview of the Network System>> The following describes the overview of the network system in an embodiment for carrying out the present invention. The network system connects local networks, including a data center, with multiple lines (e.g., optical paths). The distance between the local networks is such that the propagation delay is greater than the transfer delay (e.g., 100 km or more), and the lengths (distances) of the multiple lines are different. Such situations occur when it is desirable to reduce the risk of failure or when optical paths need to be rerouted in the event of a failure.

[0010] Within a local network (data center), communication packets are distributed and transmitted via multiple paths using spraying technology, which effectively compresses transmission delays. Between local networks, communication flows are allocated to specific paths. For example, communication packets from high-priority communication flows are allocated to short-distance lines. Communication packets from best-effort communication flows with no quality requirements are allocated equally between short-distance and long-distance lines, for example.

[0011] In such a network system, the distribution of round-trip times for communication packets can be reduced, resulting in a smaller retransmission timer and, consequently, improved throughput. Furthermore, by routing only acknowledgments (ACKs) for received communication packets to short-distance paths, the round-trip time can be reduced, leading to further improvements in throughput. In the following explanation, the local network will be considered as a data center (a network within a data center).

[0012] <Network System Configuration> Figure 1 is an overall configuration diagram of the network system 10 according to the first embodiment. The network system 10 is composed of data centers 810, 820, and 830 (local network). Multiple lines connect the data centers 810 and 820, and the data centers 820 and 830, forming redundant sections.

[0013] The network configuration of data center 830 is described below. Data center 830 includes gateways 831 and 832, to which lines are connected to data center 820. Gateway 831 is connected by a line to gateway 821 of data center 820. Gateway 832 is also connected by a line to gateway 822 of data center 820.

[0014] The upstream switches 836 and 837 are connected to gateways 831 and 832 in a full mesh network. Switch 840 is also connected to upstream switches 836 and 837 in a full mesh network. Host 850 is connected to one of the switches 840. Data center 820 includes gateways 821 and 822 to which lines to data centers 810 and 830 are connected. Data center 810 also includes gateways 811 and 812 to which lines to data center 820 are connected.

[0015] Gateway 821 is connected to gateways 811 and 831 by a line. Gateway 822 is also connected to gateways 812 and 832 by a line. Front-end switches 826 and 827 are connected to gateways 821 and 822 in a full mesh network. Front-end switches 816 and 817 are also connected to gateways 811 and 812 in a full mesh network. Data centers 810 and 820 also have switches and hosts, but they are not shown in Figure 1.

[0016] The controller 200 and the policy determination device 400 are connected to the network within the data center 830. Hereinafter, gateways 811, 812, 821, 822, 831, and 832 will be collectively referred to as gateway 300. Also, the front-end switches 816, 817, 826, 827, 836, and 837 will be collectively referred to as front-end switch 100. In addition, data centers 810, 820, and 830 will be collectively referred to as data center 500. Note that the controller 200 and the policy determination device 400 may be located outside of data centers 810, 820, and 830, as long as they can communicate with the front-end switch 100 and gateway 300.

[0017] <Configuration of the Front-End Switch> Figure 2 is a functional block diagram of the front-end switch 100 according to the first embodiment. The front-end switch 100 is a computer and comprises a control unit 110, a storage unit 120, and a communication unit 180. The communication unit 180 is equipped with a communication device (communication interface) and is capable of sending and receiving data with the gateway 300 and other devices.

[0018] <<Pre-switch: Memory Unit>> The memory unit 120 is composed of memory devices such as ROM (Read Only Memory), RAM (Random Access Memory), and SSD (Solid State Drive). The memory unit 120 stores a policy management database 130, a gateway information database 140, an output destination management database 150, an interface-compatible database 160, a forwarding table 170, and a program 121. The program 121 contains descriptions of the processes to be executed by the functional units provided in the control unit 110, which will be described later. The various contents of the memory unit 120 may be stored in an external storage device such as a cloud server and read as needed.

[0019] ≪Pre-switch: Memory unit: Policy management database≫ Figure 3 is a data configuration diagram of the policy management database 130 according to the first embodiment. The policy management database 130 is, for example, tabular data. One row (record) of the policy management database 130 represents a policy (also written as a distribution policy) that distributes communication packets belonging to one communication flow to multiple lines between data centers 500. The record includes columns (fields, attributes) for identification information, policy name, parameters, and priority.

[0020] The identification information (labeled "ID" in Figure 3) and policy name are the identification information and name of the distribution policy. The parameters indicate the parameters (characteristics) of the circuit that are referenced when distributing communication packets. Examples of parameters include propagation delay, residual bandwidth, and bandwidth. The priority indicates the priority order of the parameter values. In Figure 3, the name of the distribution policy with identification information of "1" is "Propagation Delay Priority," indicating that circuits with smaller propagation delays have higher priority and more communication packets are distributed to them.

[0021] ≪Pre-stage switch: Storage unit: Gateway information database≫ Figure 4 is a data configuration diagram of the gateway information database 140 according to the first embodiment. The gateway information database 140 is, for example, tabular data. One row (record) of the gateway information database 140 shows information relating to the gateway 300 adjacent to the pre-stage switch 100. From the perspective of the pre-stage switch 100, the line, the gateway 300 to which the line is connected, and the communication interface (actual interface) connected to the gateway 300 correspond one-to-one and can be considered identical.

[0022] The record includes columns (fields, attributes) for interface, gateway, delay, and residual bandwidth. Interface is the identification information of the communication interface provided in the communication unit 180 to which gateway 300 is connected. Gateway is the identification information of gateway 300. Delay is the propagation delay of the line connected to gateway 300. Residual bandwidth is the residual bandwidth of the line connected to gateway 300.

[0023] ≪Pre-switch: Storage unit: Output destination management database≫ Figure 5 is a data configuration diagram of the output destination management database 150 according to the first embodiment. The output destination management database 150 is, for example, tabular data. One row (record) of the output destination management database 150 shows a distribution policy including the percentage of a communication flow to be distributed to a line. The record includes columns (fields, attributes) for flow, policy, and virtual interface.

[0024] The flow is the identification information for the communication flow. In Figure 5 and other figures, the identification information for the communication flow is shown as a string such as "NF003845," but within the upstream switch 100, it is shown as a tuple of, for example, the destination address, source address, destination port, source port, and protocol ID. The policy is the identification information for the distribution policy (see Figure 3) applied to the communication flow. The virtual interface indicates the correspondence between the proportion of communication packets distributed to multiple lines (also referred to as the distribution ratio) and the virtual interface.

[0025] The distribution policy applied to the communication flow with identification information "NF083745" is the "Residual Bandwidth Priority" policy with identification number "2" (see Figure 3). In this distribution policy, communication packets are distributed in descending order of residual bandwidth priority, meaning that lines with larger residual bandwidth are given priority. "VIFA" and "VIFB" indicate virtual interfaces, with priority increasing in ascending order of the last character.

[0026] Figure 5 shows that communication packets are allocated to the "VIFA" interface in a 60:40 ratio, with priority given to the "VIFB" interface. Note that there is a one-to-one correspondence between the line, the gateway 300 to which the line is connected, and the communication interface connected to the gateway 300; therefore, allocating to an interface is equivalent to allocating to a line.

[0027] <<Pre-switch: Storage unit: Interface-compatible database>> Figure 6 is a data configuration diagram of the interface-compatible database 160 according to the first embodiment. The interface-compatible database 160 is, for example, tabular data. One row (record) of the interface-compatible database 160 shows the correspondence between a virtual interface and a communication interface (actual interface) related to one communication flow. The record includes columns (fields, attributes) corresponding to the flow and interface.

[0028] A flow is the identification information of a communication flow. Interface correspondence indicates the correspondence between a virtual interface (see Figure 5) and the communication interface provided in the communication unit 180. By referring to the output destination management database 150 and the interface correspondence database 160, it is possible to determine what percentage of communication packets belonging to a communication flow should be allocated to which communication interface.

[0029] ≪Pre-switch: Storage unit: Forwarding table≫ Figure 7 is a data configuration diagram of the forwarding table 170 according to the first embodiment. The forwarding table 170 is, for example, tabular data. One row (record) of the forwarding table 170 represents the distribution algorithm for communication packets belonging to one communication flow. The packet forwarding unit 111 provided in the control unit 110, which will be described later, refers to the forwarding table 170 and transmits the received communication packets via the communication interface.

[0030] The records in forwarding table 170 include columns (fields, attributes) for flow, distribution algorithm, and interface. Flow is the identification information for the communication flow. Distribution algorithm indicates the algorithm for distributing communication packets to the communication interface. Interface indicates the communication interface that is a parameter of the distribution algorithm.

[0031] The allocation policy for the communication flow identified as "NF083745" allocates 60% to the interface with the larger remaining bandwidth and 40% to the interface with the smaller remaining bandwidth (see Figure 5). In Figure 7, the allocation algorithm and interface for "NF083745" show that 60% of the communication packets are allocated to the communication interface identified as "IF01" and 40% to the communication interface identified as "IF02". Note that while round-robin is one algorithm for allocating communication packets to multiple communication interfaces, it is not limited to this. For example, an algorithm that randomly allocates packets in a specified proportion may also be used.

[0032] Some distribution algorithms change the destination communication interface depending on the communication packet. For example, there is an algorithm that allocates communication packets with a length below a predetermined value, or communication packets containing acknowledgments, to the communication interface connected to gateway 300, which is connected to the line with the minimum latency.

[0033] <<Pre-stage switch: Control unit>> Returning to Figure 2, the control unit 110 will be explained. The control unit 110 is configured to include a CPU (Central Processing Unit). The control unit 110 includes a packet forwarding unit 111, a gateway information acquisition unit 112, an interface correspondence calculation unit 113, and a forwarding table setting unit 114. The control unit 110 may also be configured to include an NPU (Network Processing Unit), FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit), etc.

[0034] <<Phase Switch: Control Unit: Packet Forwarding Unit>> The packet forwarding unit 111 refers to the forwarding table 170 (see Figure 7) and transmits the received communication packets via the communication interface. The packet forwarding unit 111 identifies the communication flow based on the communication packets and transmits them via the communication interface according to the distribution algorithm corresponding to the communication flow. When transmitting via multiple communication interfaces, the packet forwarding unit 111 distributes and transmits the communication packets at the rates indicated by the distribution algorithm. The packet forwarding unit 111 also distributes and transmits communication packets according to their conditions (e.g., length).

[0035] <<Pre-stage switch: Control unit: Gateway information acquisition unit>> The gateway information acquisition unit 112 acquires information about the gateway 300 connected to the pre-stage switch 100 at predetermined timings and stores it in the gateway information database 140 (see Figure 4). The gateway information acquisition unit 112 periodically acquires, for example, the remaining bandwidth and stores it in the remaining bandwidth column of the gateway information database 140. The information acquired by the gateway information acquisition unit 112 includes not only the remaining bandwidth but also information about the line such as propagation delay and bandwidth, so it is also referred to as the line information acquisition unit.

[0036] <<Pre-switch: Control unit: Interface correspondence calculation unit>> The interface correspondence calculation unit 113 receives the communication flow, the distribution policy to be applied to the communication flow, and the distribution ratio from the controller 200 (described later) and stores them in the output destination management database 150 (see Figure 5). Regarding the correspondence between the distribution ratio and the virtual interface, virtual interfaces such as "VIFA", "VIFB", "VIFC", etc. are assigned in order from the largest distribution ratio. For example, if the distribution ratio is 60 to 40, 60 is assigned to "VIFA" and 40 to "VIFB", and these are stored in the virtual interface column of the output destination management database 150.

[0037] Next, the interface correspondence calculation unit 113 refers to the policy management database 130 (see Figure 3) to obtain the characteristics (parameters) and priority of the lines referenced by the distribution policy. Then, the interface correspondence calculation unit 113 refers to the gateway information database 140 (see Figure 4) to identify the priority of the communication interface based on the characteristics and priority. Subsequently, the interface correspondence calculation unit 113 associates the communication interface with the virtual interface ("VIFA", "VIFB", etc.) based on the priority and stores it in the interface correspondence database 160 (see Figure 6) along with the communication flow identification information.

[0038] In this manner, the interface correspondence calculation unit 113 stores the communication interfaces and distribution ratios for which communication packets belonging to the communication flow are distributed in the interface correspondence database 160 and the output destination management database 150, based on the distribution policy and distribution ratio of the communication flow. The distribution ratio to a communication interface can be considered as the distribution ratio to the gateway 300 connected to that communication interface, and further as the distribution ratio to the line connected to the gateway 300.

[0039] <<Pre-switch: Control Unit: Forwarding Table Setting Unit>> The forwarding table setting unit 114 sets the forwarding table 170 by referring to the output destination management database 150 and the interface correspondence database 160. More specifically, the forwarding table setting unit 114 refers to the output destination management database 150 to obtain the virtual interface and distribution ratio corresponding to the communication flow. The forwarding table setting unit 114 also refers to the interface correspondence database 160 to obtain the correspondence between the virtual interface and communication interface corresponding to the communication flow. Subsequently, the forwarding table setting unit 114 calculates the communication interface and distribution ratio corresponding to the communication flow and stores the distribution algorithm and communication interface in the forwarding table 170.

[0040] Furthermore, the forwarding table setting unit 114 receives notifications (instructions) regarding elephant flows from the forwarding setting instruction unit 214 provided in the controller 200, which will be described later. The forwarding table setting unit 114 then sets the forwarding table 170 so that all communication packets of a predetermined length or less destined for the host 850 that is the source of the elephant flow are distributed to lines with low propagation delay. The forwarding table setting unit 114 may also set the forwarding table 170 so that all communication packets, including acknowledgments, destined for the host 850 that is the source of the elephant flow are distributed to lines with low propagation delay. In this way, the packet forwarding unit 111 distributes the communication packets of acknowledgments to the source of the elephant flow to lines with low propagation delay.

[0041] ≪Gateway Configuration≫ Figure 8 is a functional block diagram of the gateway 300 according to the first embodiment. The gateway 300 is a computer and comprises a control unit 310, a storage unit 320, and a communication unit 380. The communication unit 380 is equipped with a communication device and is capable of sending and receiving data with the upstream switch 100 and other devices.

[0042] <<Gateway: Memory Unit>>The memory unit 320 is configured to include memory devices such as ROM, RAM, and SSD. The memory unit 320 stores a forwarding table 330 and a program 321. In the forwarding table 330, the destination of a communication packet and the device that becomes the transfer destination of the communication packet or the communication interface (see communication unit 380) connected to the device are associated and stored. The program 321 includes a description of the processing executed by the functional units provided in the control unit 310 described later. Note that various stored contents of the memory unit 320 may be read as needed from those stored in an external storage device such as a cloud server.

[0043] <<Gateway: Control Unit>>The control unit 310 is configured to include a CPU and includes a packet transfer unit 311, a previous-stage switch identification unit 312, a measurement unit 313, and an elephant flow detection unit 314. The control unit 310 may be configured to include an NPU, FPGA, ASIC, etc.

[0044] <<Gateway: Control Unit: Packet Transfer Unit>>The packet transfer unit 311 refers to the forwarding table 330 and transmits the received communication packet via the communication interface.

[0045] <<Gateway: Control Unit: Previous-Stage Switch Identification Unit>> The previous-stage switch identification unit 312 identifies the adjacent previous-stage switch 100 and notifies the controller 200. For example, the previous-stage switch identification unit 312 obtains the address of the previous-stage switch 100 using RARP (Reverse Address Resolution Protocol) for communication interfaces other than the communication interface connecting the line and notifies the controller 200.

[0046] <<Gateway: Control Unit: Measurement Unit>> The measurement unit 313 measures the propagation delay, bandwidth, and remaining bandwidth of the connected line and notifies the adjacent upstream switch 100 and the controller 200. There is a reference (1) for the measurement method of the propagation delay.Reference (1) D. Constantinescu, et al., "Measurement of One-Way Internet Packet Delay," [online], [Search Date: 2025.2.12], Internet <URL: https: / / www.diva-portal.org / smash / get / diva2:837449 / FULLTEXT01.pdf>

[0047] <<Gateway: Control Unit: Elephant Flow Detection Unit>> The elephant flow detection unit 314 detects an elephant flow in the communication flows passing through the line connected to itself (gateway 300) and notifies the controller 200 of the identification information of the communication flow. An elephant flow is a communication flow with a traffic volume larger than a predetermined value. The elephant flow detection unit 314, for example, detects a communication flow with a traffic volume of 10 GB / 10 seconds or more and notifies the controller 200.

[0048] <<Configuration of the Controller>> Fig. 9 is a functional block diagram of the controller 200 according to the first embodiment. The controller 200 is a computer and includes a control unit 210, a storage unit 220, and a communication unit 280. The communication unit 280 includes a communication device and can transmit and receive data to and from the upstream switch 100 and other devices.

[0049] ≪Controller: Memory Unit≫ The memory unit 220 is composed of memory devices such as ROM, RAM, and SSD. The memory unit 220 stores the data center network management database 230, the upstream switch management database 240, the interface management database 250, the policy management database 260, the flow policy management database 270, and the program 221. The program 221 contains descriptions of the processes to be executed by the functional units provided in the control unit 210, which will be described later. The various contents of the memory unit 220 may be stored in an external storage device such as a cloud server and read as needed.

[0050] ≪Controller: Storage Unit: Inter-Datacenter Network Management Database≫ Figure 10 is a data configuration diagram of the inter-datacenter network management database 230 according to the first embodiment. The inter-datacenter network management database 230 is, for example, tabular data. One row (record) of the inter-datacenter network management database 230 contains information relating to the lines between data centers 500. The record includes columns (fields, attributes) for record identification information (labeled "ID" in Figure 10), data center, and section information.

[0051] The data center includes identification information for two data centers 500. The section information includes information about the lines between the data centers 500 stored in the data center, such as identification information for the gateway 300 which is the endpoint of the line, and the characteristics of the line. Characteristics include propagation delay, bandwidth, and residual bandwidth. Since there are multiple lines between the data centers 500, the section information stores information related to multiple lines.

[0052] ≪Controller: Storage Unit: Front-end Switch Management Database≫ Figure 11 is a data configuration diagram of the front-end switch management database 240 according to the first embodiment. The front-end switch management database 240 is, for example, tabular data. One row (record) of the front-end switch management database 240 contains connection information between the front-end switch 100 and the gateway 300 in the data center 500. The record includes columns (fields, attributes) for data center, destination, and connection information.

[0053] The data center includes identification information for the data center 500, which has a front-end switch 100 and a gateway 300. The connection destination includes identification information for the data center 500 to which the data center 500 identified by the data center is connected by a line.

[0054] The connection information includes identification information for the gateway 300 located in the data center 500, which is connected to the data center 500 indicated as the destination, and for the upstream switch 100 which has the gateway 300 as an adjacent node. Since the data centers 500 are connected by multiple lines, the connection information includes multiple pieces of information.

[0055] ≪Controller: Storage Unit: Interface Management Database≫ Figure 12 is a data configuration diagram of the interface management database 250 according to the first embodiment. The interface management database 250 is, for example, tabular data. One row (record) of the interface management database 250 contains information relating to the communication interfaces of the upstream switch 100, switch 840, and gateway 300 located in the data center 500. The record includes columns (fields, attributes) for data center, switch, configuration interface, and data interface.

[0056] The data center is the identification information for data center 500, which contains the upstream switch 100, switch 840, and gateway 300. The switches are the identification information for the upstream switch 100, switch 840, and gateway 300.

[0057] The configuration interface is a network address used for control communication, such as instructing the upstream switch 100, switch 840, and gateway 300 to configure settings or to obtain information. The data interface is a network address used for data (user data) communication between the upstream switch 100, switch 840, and gateway 300. The data interface has multiple network addresses.

[0058] ≪Controller: Memory Unit: Policy Management Database≫ The policy management database 260 has the same configuration as the policy management database 130 (see Figure 3) provided in the upstream switch 100.

[0059] ≪Controller: Storage Unit: Flow Policy Management Database≫ Figure 13 is a data configuration diagram of the flow policy management database 270 according to the first embodiment. The flow policy management database 270 is, for example, tabular data. One row (record) of the flow policy management database 270 contains information related to the communication flow. The record includes columns (fields, attributes) for flow, route, and policy.

[0060] The flow is the identification information for the communication flow. The path is the identification information for the data center 500 through which the communication flow passes. The policy is the distribution policy and distribution ratio for the communication flow.

[0061] ≪Controller: Control Unit≫ Returning to Figure 9, the control unit 210 will be explained. The control unit 210 is configured to include a CPU and includes a gateway information acquisition unit 211, a route calculation unit 212, a policy acquisition unit 213, and a transfer setting instruction unit 214. The control unit 210 may also be configured to include an NPU, FPGA, ASIC, etc.

[0062] ≪Controller: Control Unit: Gateway Information Acquisition Unit≫ The gateway information acquisition unit 211 acquires information about the gateway 300 at predetermined timings and stores it in the section information of the inter-data center network management database 230 (see Figure 10). The gateway information acquisition unit 211 periodically acquires, for example, the remaining bandwidth and stores it in the remaining bandwidth of the line corresponding to the gateway 300, which is included in the section information of the inter-data center network management database 230. The gateway information acquisition unit 211 is also referred to as the line information acquisition unit, similar to the gateway information acquisition unit 112.

[0063] ≪Controller: Control Unit: Route Calculation Unit≫ The route calculation unit 212 calculates the data centers 500 through which the communication flow (communication packet), including the source and destination, passes, and stores it in the route in the flow policy management database 270 (see Figure 13). The route calculation unit 212 may also calculate the route by referring to the inter-data center network management database 230, the upstream switch management database 240, and the interface management database 250.

[0064] ≪Controller: Control Unit: Policy Acquisition Unit≫ The policy acquisition unit 213 queries the policy determination device 400 to acquire the policy of the communication flow and stores it in the policy of the flow policy management database 270 (see Figure 13). More specifically, the policy acquisition unit 213 transmits the communication flow (destination and source addresses, ports, and protocol) and the requested quality to the policy determination device 400 and acquires a policy including the distribution policy and distribution ratio. The policy acquisition unit 213 may transmit the data center 500 that will serve as the route instead of the communication flow.

[0065] The policy acquisition unit 213 notifies the upstream switch 100 of the data center 500 through which the communication flow passes of the acquired policy, thereby instructing the settings of the line through which the communication flow passes. The upstream switch 100 sets the forwarding table 170 (see Figure 7) according to the policy and distributes and transmits the communication packets of the communication flow to the line.

[0066] The policy determination device 400 determines the optimal policy based on the source, destination, and required quality of the communication flow. For example, for a communication flow where delay is important, the policy determination device 400 selects the "propagation delay priority" policy (see Figure 3). Also, for a communication flow that transmits a large amount of data and where transfer time is important, it selects, for example, the "residual bandwidth priority" policy.

[0067] ≪Controller: Control Unit: Transfer Setting Instruction Unit≫ When the transfer setting instruction unit 214 receives notification of a communication flow which is an elephant flow from the gateway 300, it instructs the upstream switch 100 to distribute the return communication packets of the said communication flow.

[0068] To explain in more detail, the forwarding setting instruction unit 214 instructs the upstream switch 100 to distribute all communication packets of a predetermined length or less to the line with the lowest propagation delay. The forwarding setting instruction unit 214 may also instruct (notify) the upstream switch 100 to distribute all communication packets, including acknowledgments, to the line with the lowest propagation delay.

[0069] The forwarding switch 100 that receives the instruction is the forwarding switch 100 belonging to the data center 500 to which the gateway 300 that detected the elephant flow belongs. The forwarding switch 100 sets the forwarding table 170 in response to the instruction and distributes the specified communication packets to the line with the smallest propagation delay.

[0070] <<Routing Process>> Figure 14 is a flowchart of the routing process according to the first embodiment. The process of setting the lines through which the communication flow will pass will be explained with reference to Figure 14. In the following explanation, it is assumed that before the start of the communication flow, the administrator of the network system 10 or the source host 850 sends a routing request including the communication flow and the required quality to the controller 200.

[0071] In step S11, the route calculation unit 212 of the controller 200 receives a route setting request for the communication flow and calculates the data center 500 that will be the route. In step S12, the policy acquisition unit 213 of the controller 200 transmits the communication flow and required quality to the policy determination device 400 and acquires the policy.

[0072] In step S13, the policy acquisition unit 213 starts the process of repeating steps S14 to S17 for each data center 500 in the route. In step S14, the policy acquisition unit 213 starts the process of repeating steps S15 to S17 for each upstream switch 100 in the data center 500. In step S15, the policy acquisition unit 213 notifies the upstream switch 100 belonging to the data center 500 of the policy.

[0073] In step S16, the interface correspondence calculation unit 113 of the upstream switch 100 calculates the interface correspondence based on the policy. More specifically, the interface correspondence calculation unit 113 calculates the communication interface and distribution ratio to which communication packets are distributed. The interface correspondence calculation unit 113 sets the output destination management database 150 and the interface correspondence database 160 based on the calculation results. In step S17, the forwarding table setting unit 114 of the upstream switch 100 sets the forwarding table 170 based on the calculation results from step S16.

[0074] After the routing process, the forwarding table 170 of the upstream switch 100 is configured according to the policy (distribution policy and distribution ratio). The packet forwarding unit 111 distributes communication packets to the communication interface according to the settings in the forwarding table 170. The communication packets are sent to the data center 500, which is the destination of the line, via the gateway 300 and the line.

[0075] ≪Network System Features≫ In the network system 10, communication packets are distributed to one or more lines between data centers 500 according to a distribution policy and distribution ratio defined for each communication flow. For example, communication packets of high-priority communication flows are distributed to short-distance lines. Communication packets of best-effort communication flows with no quality requirements are distributed equally between short-distance and long-distance lines.

[0076] In such a network system 10, the distribution of round-trip times of communication packets can be suppressed, resulting in a smaller retransmission timer and, consequently, an improvement in throughput degradation. Furthermore, with regard to elephant flows, by routing only acknowledgments for received communication packets to paths with low latency, the round-trip time can be reduced, and further improvements in throughput degradation can be expected.

[0077] ≪Second Embodiment≫ In the first embodiment, the upstream switch 100 receives the policy of the communication flow, sets the output destination management database 150 and the interface-compatible database 160 according to the policy, and further sets the forwarding table 170.

[0078] In the second embodiment, the controller 200 creates settings corresponding to the output destination management database 150 and the interface-compatible database 160, and notifies the upstream switch 100. Upon receiving the notification, the upstream switch 100 sets the forwarding table 170.

[0079] ≪Second Embodiment: Controller≫ Figure 15 is a functional block diagram of the controller 200A according to the second embodiment. Compared to the controller 200 according to the first embodiment (see Figure 9), the policy acquisition unit 213A is different, an interface correspondence calculation unit 215 is added to the control unit 210, and an interface correspondence database 275 is added to the storage unit 220. The policy acquisition unit 213 according to the first embodiment notifies the upstream switch 100 of the acquired policy, but the policy acquisition unit 213A does not notify.

[0080] ≪Second Embodiment: Controller: Interface-Compatible Database≫ Figure 16 is a data configuration diagram of the interface-compatible database 275 according to the second embodiment. The interface-compatible database 275 is, for example, tabular data. One row (record) of the interface-compatible database 275 contains information related to the communication flow. The record includes columns (fields, attributes) for flow, policy, virtual interface, and virtual interface gateway correspondence. The flow, policy, and virtual interface are the same as in the output destination management database 150 (see Figure 5). The virtual interface gateway correspondence indicates the correspondence between the virtual interface and the gateway 300 adjacent to the upstream switch 100A (see Figure 17 described later).

[0081] Let's explain the second record. "VIFA:SW325-GW273" indicates that in the front-end switch 100A identified as "SW325", the communication interface corresponding to the virtual interface "VIFA" is the communication interface connected to the gateway 300 identified as "GW273". Also, "VIFB:SW325-GW274" indicates that in the front-end switch 100A identified as "SW325", the communication interface corresponding to the virtual interface "VIFB" is the communication interface connected to the gateway 300 identified as "GW274".

[0082] Thus, the interface-compatible database 275 shows the relationship between the virtual interface in each of the communication flows, distribution policies, distribution ratios, and upstream switches 100A, and the gateways 300 adjacent to those upstream switches 100A. In one upstream switch 100A, there is a one-to-one correspondence between the communication interface and the adjacent gateway 300. For this reason, the interface-compatible database 275 can be considered as data combining the output destination management database 150 and the interface-compatible database 160.

[0083] ≪Second Embodiment: Controller: Interface Compatibility Calculation Unit≫ Returning to Figure 15, the control unit 210 of the controller 200A will be described. The processing of the interface compatibility calculation unit 215 is the same as that of the interface compatibility calculation unit 113 provided in the upstream switch 100 according to the first embodiment.

[0084] The interface correspondence calculation unit 113 according to the first embodiment calculates the virtual interface to which the communication flow related to itself (the upstream switch 100) will be distributed, the distribution ratio, and the correspondence between the virtual interface and the communication interface. Next, the interface correspondence calculation unit 113 stores the calculation results in the output destination management database 150 and the interface correspondence database 160.

[0085] Meanwhile, the interface correspondence calculation unit 215 similarly calculates the virtual interface to which the communication flow will be distributed, the distribution ratio, and the correspondence between the virtual interface and the gateway 300 for each upstream switch 100A of the data center 500 through which the communication flow passes. Next, the interface correspondence calculation unit 215 stores the calculation results in the interface correspondence database 275. Subsequently, the interface correspondence calculation unit 215 notifies each upstream switch 100A of the communication flow, distribution policy, distribution ratio, and the correspondence between the virtual interface and the gateway 300.

[0086] ≪Second Embodiment: Pre-stage Switch≫ Figure 17 is a functional block diagram of the pre-stage switch 100A according to the second embodiment. Compared to the pre-stage switch 100 according to the first embodiment (see Figure 2), the control unit 110 lacks the gateway information acquisition unit 112 and the interface correspondence calculation unit 113, and the forwarding table setting unit 114A is different. Also, the storage unit 120 lacks the policy management database 130, gateway information database 140, output destination management database 150, and interface correspondence database 160.

[0087] The forwarding table setting unit 114A sets the forwarding table 170 based on notifications from the controller 200A. Regarding the correspondence between the virtual interface included in the notification and the gateway 300, the gateway 300 is considered as the communication interface connected to the gateway 300. For instructions (notifications) from the controller 200A related to Elephant Flow, the forwarding table setting unit 114A sets the forwarding table 170 in the same manner as the forwarding table setting unit 114.

[0088] ≪Second Embodiment: Route Setting Process≫ Figure 18 is a flowchart of the route setting process according to the second embodiment. The process of setting the line through which the communication flow will pass will be explained with reference to Figure 18. In the following explanation, it is assumed that the network system administrator or the source host 850 sends a route setting request including the communication flow and the required quality to the controller 200A before the start of the communication flow.

[0089] Steps S21 to S24 are the same as steps S11 to S14 (see Figure 14). In step S22, the policy acquisition unit 213A of the controller 200A sets the flow, policy and virtual interface of the interface-compatible database 275 based on the distribution policy and distribution ratio included in the acquired policy.

[0090] In step S25, the interface correspondence calculation unit 215 of the controller 200A calculates the correspondence between the virtual interface in the upstream switch 100A and the gateway 300 based on the policy and stores it in the virtual interface / gateway correspondence of the interface correspondence database 275.

[0091] In step S26, the interface correspondence calculation unit 215 notifies the upstream switch 100A belonging to the data center 500 of the correspondence between the communication flow, policy, virtual interface and gateway. In step S27, the forwarding table setting unit 114A of the upstream switch 100A sets the forwarding table 170 based on the notification.

[0092] ≪Second Embodiment: Features of the Network System≫ In the first embodiment, each upstream switch 100 calculates the correspondence between the virtual interface and the communication interface. In contrast, in the second embodiment, the controller 200A calculates the correspondence between the virtual interface and the gateway 300 for each upstream switch 100A. This reduces the load on the upstream switches 100A and does not interfere with the packet forwarding process, which is the primary processing of the upstream switches 100A.

[0093] <<Modification: Timing of Policy Acquisition>> In the embodiment described above, the policy acquisition units 213 and 213A acquire the policy by transmitting the required quality of the communication flow to the policy determination device 400. The route setting process may be repeated based on the round trip time of the communication packets measured after the start of the communication flow. Here, the policy determination device 400 will determine the optimal policy by referring to the round trip time of the communication packets in addition to the communication flow and required quality.

[0094] When the policy acquisition units 213 and 213A receive the round-trip time of the communication packet from the source host 850, they may query and acquire the policy, including the round-trip time, and then perform route setting processing. In this way, it becomes possible to distribute the communication packet to the line based on a policy optimized according to the network environment, including the round-trip time.

[0095] <Other Modifications> Although several embodiments of the present invention have been described above, these embodiments are merely illustrative and do not limit the technical scope of the present invention. The present invention can take various other embodiments, and furthermore, various modifications such as omissions and substitutions can be made without departing from the spirit of the present invention. These embodiments and their variations are included in the scope and spirit of the invention as described herein and elsewhere, as well as in the scope of the invention and its equivalents as described in the claims.

[0096] ≪Hardware Configuration≫ The pre-stage switches 100, 100A and controllers 200, 200A according to the above-described embodiment are implemented by a computer 900 having a configuration such as that shown in Figure 19. Figure 19 is a hardware configuration diagram showing an example of a computer 900 that implements the functions of the pre-stage switches 100, 100A and controllers 200, 200A according to the above-described embodiment. The computer 900 includes a CPU 901, ROM 902, RAM 903, SSD 904, and an input / output interface 905 (labeled as input / output I / F (Interface) in Figure 19). Furthermore, the computer 900 includes a communication interface 906 (labeled as communication I / F in Figure 19) and a media interface 907 (labeled as media I / F in Figure 19). The computer 900 may have an HDD (Hard Disc Drive) instead of the SSD 904, or it may have an HDD in addition to the SSD 904.

[0097] The CPU 901 operates based on programs stored in the ROM 902 or SSD 904, and is controlled by the control units 110 and 210 shown in Figures 2, 9, 15, and 17. The ROM 902 stores boot programs executed by the CPU 901 when the computer 900 starts up, as well as programs related to the computer 900's hardware.

[0098] The CPU 901 controls input devices 910, such as a mouse and keyboard, and output devices 911, such as a display and printer, via the input / output interface 905. The CPU 901 acquires data from the input devices 910 and outputs the generated data to the output devices 911 via the input / output interface 905.

[0099] The SSD 904 stores programs executed by the CPU 901 and data used by those programs. The communication interface 906 receives data from other devices (e.g., gateway 300) not shown via the communication network and outputs it to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.

[0100] The media interface 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads the program from the recording medium 912 onto the RAM 903 via the media interface 907 and executes the loaded program. The recording medium 912 can be an optical recording medium such as a DVD (Digital Versatile Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a conductive memory tape medium, or a semiconductor memory.

[0101] For example, when the computer 900 functions as the pre-stage switches 100, 100A and controllers 200, 200A according to the above embodiment, the CPU 901 of the computer 900 realizes the functions of the pre-stage switches 100, 100A and controllers 200, 200A by executing programs 121, 221 (see Figures 2, 9, 15, and 17) loaded on the RAM 903. The CPU 901 reads and executes the programs from the recording medium 912. Alternatively, the CPU 901 may read the programs from other devices via a communication network, or it may install and execute program 121 from the recording medium 912 onto the SSD 904.

[0102] <<Effects>> The effects of the network system 10 are explained below.

[0103] The network system 10 according to the above embodiment includes a plurality of local networks (see data center 500), a plurality of lines connecting two local networks, and a controller 200. The local network includes gateways 300 that are endpoints of the plurality of lines, and upstream switches 100 that are connected to the plurality of gateways 300. When the controller 200 receives a routing request for a communication flow between a source host connected to a source local network (a local network) and a destination host connected to a destination local network (a local network), it includes a policy acquisition unit 213 that queries a policy determination device 400 to obtain a policy for distributing the communication packets included in the communication flow to the plurality of lines, and notifies the upstream switch 100 of this policy. The policy includes a distribution policy, which is a policy for determining the priority of distributing communication packets to the plurality of lines based on the characteristics of the lines, and a distribution ratio, which is the proportion of communication packets per line. The upstream switch 100 includes a line information acquisition unit (see gateway information acquisition unit 112) that acquires values ​​of the characteristics of the lines. The front-end switch 100 includes an interface correspondence calculation unit 113 that calculates, based on policy and line characteristic values, the proportion of communication packets included in a communication flow to be distributed to the gateway 300 connected to the line, and the communication interface (see communication unit 180) connected to the gateway 300. The front-end switch 100 also includes a forwarding table setting unit 114 that sets a forwarding table 170 for a communication flow, including the proportion of communication packets included in the communication flow to be distributed to the gateway 300 connected to the line, and the communication interfaces connected to the gateway 300, based on the calculation results of the interface correspondence calculation unit 113. The front-end switch 100 also includes a packet forwarding unit 111 that forwards the communication packets included in the communication flow according to the forwarding table 170.

[0104] With such a network system 10, communication packets are distributed to one or more lines between local networks (data centers 500) according to a policy defined for each communication flow. Therefore, the network system 10 can suppress the distribution of round-trip times of communication packets, which reduces the retransmission timer and consequently improves throughput.

[0105] The network system 10 according to the above embodiment is configured to include a plurality of local networks, a plurality of lines connecting two local networks, and a controller 200A. The local network is configured to include gateways 300 that are endpoints of the plurality of lines, and upstream switches 100A connected to the plurality of gateways 300. The controller 200A includes a line information acquisition unit (see gateway information acquisition unit 211) that acquires values ​​of the characteristics of the lines. When the controller 200A receives a routing request for a communication flow between a source host connected to a source local network, which is a local network, and a destination host connected to a destination local network, which is a local network, it includes a policy acquisition unit 213A that queries a policy determination device 400 to acquire a policy for distributing the communication packets included in the communication flow to a plurality of lines. The policy includes a distribution policy, which is a policy for determining the priority of distributing communication packets to a plurality of lines based on the characteristics of the lines, and a distribution ratio, which is the proportion of communication packets per line. The controller 200A includes an interface correspondence calculation unit 215 that calculates the proportion of communication packets included in a communication flow to be distributed to a gateway 300 connected to the line, and the gateway 300, based on the policy and line characteristics of each preceding switch 100A, and notifies the preceding switch 100A of this. The preceding switch 100A includes a forwarding table setting unit 114A that sets a forwarding table 170 including the proportion of communication packets included in a communication flow to be distributed to a gateway 300 connected to the line, and the communication interface connected to the gateway, based on the notification from the controller 200A. The preceding switch 100A also includes a packet forwarding unit 111 that forwards communication packets included in a communication flow according to the forwarding table 170.

[0106] With such a network system 10, communication packets are distributed to one or more lines between local networks (data centers 500) according to a policy defined for each communication flow. Therefore, the network system 10 can suppress the distribution of round-trip times of communication packets, thus reducing the retransmission timer and improving throughput. In addition, the network system 10 can reduce the load on the upstream switch 100A because the controller 200A calculates the correspondence between the virtual interface and the gateway 300 for the upstream switch 100A, and does not interfere with the upstream switch 100A's original processing, which is packet forwarding.

[0107] The gateway 300 according to the above embodiment includes an elephant flow detection unit 314 that detects an elephant flow, which is a communication flow passing through a line connected to it and whose communication volume is greater than or equal to a predetermined value, and notifies the controllers 200 and 200A. The controllers 200 and 200A, upon receiving notification from the gateway 300, include a forwarding setting instruction unit 214 that notifies the upstream switches 100 and 100A, which are located in the local network to which the gateway 300 that sent the notification belongs, of the elephant flow. The forwarding table setting units 114 and 114A of the upstream switches 100 and 100A, upon receiving notification from the controllers 200 and 200A, set the forwarding table 170 so that communication packets to the source of the elephant flow that are less than or equal to a predetermined length, or that include an acknowledgment, are forwarded to the gateway 300 connected to a line with low propagation delay.

[0108] According to such a network system 10, the round-trip time is reduced by distributing acknowledgments for received communication packets to lines with low latency, and further improvements in throughput can be expected.

[0109] When the policy acquisition units 213 and 213A according to the above embodiment receive the round trip time of the communication packets included in the communication flow from the source host, they transmit the round trip time to the policy determination device 400 to acquire the policy.

[0110] According to such a network system 10, communication packets can be distributed to lines based on a policy optimized according to the network environment, including round-trip time. Therefore, the network system 10 can suppress the distribution of round-trip time of communication packets even when the communication environment changes, thus reducing the retransmission timer and, consequently, improving throughput.

[0111] 10 Network System 100, 100A, 816, 817, 826, 827, 836, 837 Front-end Switch 111 Packet Forwarding Unit 112 Gateway Information Acquisition Unit (Line Information Acquisition Unit) 113 Interface Correspondence Calculation Unit 114 Forwarding Table Setting Unit 130 Policy Management Database 140 Gateway Information Database 150 Output Destination Management Database 160 Interface Correspondence Database 170 Forwarding Table 200, 200A Controller 211 Gateway Information Acquisition Unit (Line Information Acquisition Unit) 212 Route Calculation Unit 213, 213A Policy Acquisition Unit 214 Forwarding Setting Instruction Unit 230 Inter-Data Center Network Management Database 240 Front-end Switch Management Database 250 Interface Management Database 260 Policy Management Database 270 Flow Policy Management Database 275 Interface Correspondence Database 300, 811, 812, 821, 822, 831, 832 Gateway 311 Packet forwarding unit 312 Pre-switch identification unit 313 Measurement unit 314 Elephant flow detection unit 400 Policy determination device 500, 810, 820, 830 Data center (local network)

Claims

1. The system comprises a plurality of local networks, a plurality of lines connecting two of the local networks, and a controller, wherein the local networks comprise gateways that are endpoints of the plurality of lines, and upstream switches connected to the plurality of gateways, and the controller includes a policy acquisition unit that, upon receiving a routing request for a communication flow between a source host connected to the source local network (which is the local network) and a destination host connected to the destination local network (which is the local network), queries a policy determination device to obtain a policy for distributing the communication packets included in the communication flow to the plurality of lines, and notifies the upstream switches, wherein the policy includes a distribution policy which is a policy for determining the priority of distributing the communication packets to the plurality of lines based on the characteristics of the lines, and a distribution ratio which is the proportion of the communication packets for each line, and the upstream switches include a line information acquisition unit which acquires the values ​​of the characteristics of the lines, and an interface correspondence calculation unit which calculates, based on the policy and the values ​​of the characteristics of the lines, the proportion of communication packets included in the communication flow to be distributed to gateways connected to the lines, and the communication interface connected to the gateways, A network system comprising: a forwarding table setting unit that sets a forwarding table for the communication flow, including the ratio of communication packets included in the communication flow to be distributed to gateways connected to the line, and the communication interface connected to the gateway, based on the calculation results of the interface correspondence calculation unit; and a packet forwarding unit that forwards the communication packets included in the communication flow according to the forwarding table.

2. The system comprises a plurality of local networks, a plurality of lines connecting two of the local networks, and a controller, wherein the local networks comprise gateways that are endpoints of the plurality of lines, and upstream switches connected to the plurality of gateways, the controller comprises a line information acquisition unit that acquires the characteristic values ​​of the lines, and a policy acquisition unit that, upon receiving a routing request for a communication flow between a source host connected to the source local network which is the local network, and a destination host connected to the destination local network which is the local network, queries a policy determination device to acquire a policy for distributing the communication packets included in the communication flow to the plurality of lines, the policy comprises a distribution policy which is a policy for determining the priority of distributing the communication packets to the plurality of lines based on the characteristics of the lines, and a distribution ratio which is the proportion of the communication packets to each line, the controller, Each of the preceding switches is further provided with an interface correspondence calculation unit that calculates the proportion of communication packets included in a communication flow to be distributed to gateways connected to the line, and the gateways, based on the policy and the characteristics of the line, and notifies the preceding switch of the said gateways, and the preceding switch is further provided with an interface correspondence calculation unit that does notify the preceding switch, and the preceding switch is further provided with an interface correspondence calculation unit that does notify the preceding switch of the proportion of communication packets included in a communication flow to be distributed to gateways connected to the line, and the forwarding table that includes the communication interfaces connected to the gateways, based on the notification from the controller, and a packet forwarding unit that forwards the communication packets included in the communication flow according to the forwarding table.

3. The network system according to claim 1 or 2, wherein the gateway includes an elephant flow detection unit that detects an elephant flow, which is a communication flow passing through a line connected to it and whose communication volume is greater than or equal to a predetermined value, and notifies the controller; the controller includes a forwarding setting instruction unit that, upon receiving the notification from the gateway, notifies the upstream switch in the local network to which the gateway that sent the notification belongs, of the elephant flow; and the forwarding table setting unit of the upstream switch, upon receiving the notification from the controller, sets the forwarding table so that communication packets to the source of the elephant flow that are less than or equal to a predetermined length, or that include an acknowledgment, are forwarded to the gateway connected to a line with low propagation delay.

4. The network system according to claim 1 or 2, wherein the policy acquisition unit, upon receiving the round trip time of the communication packets included in the communication flow from the source host, transmits the said round trip time to the policy determination device to acquire the policy.