Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7750423B2 - Packet transfer control device, packet transfer control method, distribution simulation device, and program - Google Patents
[go: Go Back, main page]

JP7750423B2 - Packet transfer control device, packet transfer control method, distribution simulation device, and program - Google Patents

Packet transfer control device, packet transfer control method, distribution simulation device, and program

Info

Publication number
JP7750423B2
JP7750423B2 JP2024541373A JP2024541373A JP7750423B2 JP 7750423 B2 JP7750423 B2 JP 7750423B2 JP 2024541373 A JP2024541373 A JP 2024541373A JP 2024541373 A JP2024541373 A JP 2024541373A JP 7750423 B2 JP7750423 B2 JP 7750423B2
Authority
JP
Japan
Prior art keywords
candidate
hash
information
flow
calculation algorithm
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2024541373A
Other languages
Japanese (ja)
Other versions
JPWO2024038579A1 (en
Inventor
俊宏 横井
康行 松岡
このみ 望月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2024038579A1 publication Critical patent/JPWO2024038579A1/ja
Application granted granted Critical
Publication of JP7750423B2 publication Critical patent/JP7750423B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

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

Description

本発明は、パケットの分散制御を実現する、パケット転送制御装置、パケット転送制御方法、振分シミュレーション装置、および、プログラムに関する。 The present invention relates to a packet forwarding control device, a packet forwarding control method, a distribution simulation device, and a program that realizes distributed control of packets.

データセンタ内のパケット転送アーキテクチャでは、例えば、リーフ&スパイン型を採用し、安全性確保や負荷分散のための冗長構成を構築している。リーフスイッチは、複数のスパインスイッチの一つを選択して、データパケットを転送する。その際、どのスパインスイッチを選択するかは、負荷分散のアルゴリズムに依存し、フロー単位での分散や、パケット単位での分散が既存技術として知られている。 In datacenters, packet forwarding architectures, for example, employ a leaf-and-spine architecture to build a redundant configuration for ensuring security and load balancing. The leaf switch selects one of multiple spine switches to forward the data packet. The choice of which spine switch to select depends on the load balancing algorithm, and existing technologies are known to distribute loads on a per-flow or per-packet basis.

フロー単位での分散では、特定のサービスに属する、送信元IPアドレスや宛先IPアドレスを同一とするパケット群を、フローとしてまとめて(フロー単位で)の分散を行う。分散時の帯域情報などをもとにパスを動的に選択することで、帯域の偏りを生じさせないようにすることができる(非特許文献1参照)一方、パケット単位で分散を行うことにより、フロー単位よりも帯域の偏りを生じさせないようにすることができる(非特許文献2参照)。 In flow-based distribution, packets belonging to a specific service with the same source IP address and destination IP address are grouped together as a flow (flow-by-flow) and distributed. By dynamically selecting a path based on bandwidth information at the time of distribution, it is possible to prevent bandwidth imbalances (see non-patent document 1). On the other hand, by distributing on a packet-by-packet basis, it is possible to prevent bandwidth imbalances even more effectively than with flow-by-flow distribution (see non-patent document 2).

Tat Wing Chim, et al.,“Traffic Distribution over Equal-Cost-Multi-Paths,”IEEE Communications Society 2004Tat Wing Chim, et al., “Traffic Distribution over Equal-Cost-Multi-Paths,” IEEE Communications Society 2004 Jiawei Huang,et al.,“QDAPS: Queueing Delay Aware Packet Spraying for Load Balancing in Data Center,”2018 IEEE DOI 10.1109/ICNP.2018.000017Jiawei Huang,et al.,“QDAPS: Queueing Delay Aware Packet Spraying for Load Balancing in Data Center,”2018 IEEE DOI 10.1109/ICNP.2018.000017

フロー単位のL3(Layer 3)ルーティングにおけるECMP(Equal Cost Multi Path:等コストマルチパス)や、リンクアグリゲーションでは、フロー毎に得られる5タプル等の計算パラメータのハッシュ値を計算することにより負荷分散している。しかしながら、このような従来の静的なハッシュに従ったフロー単位の分散では、特定のフローの帯域が大きい場合や、多段でハッシュをかける場合において、帯域の偏りが生じる場合がある。なお、多段でハッシュかける場合では、多段接続で同じロードバランス手法(ハッシュ計算アルゴリズム)を採用すると後続のルータで同じ値が算出され、ロードバランスしないケースが生じることがある。 In ECMP (Equal Cost Multi Path) and link aggregation, which are used in per-flow L3 (Layer 3) routing, load balancing is achieved by calculating hash values of calculation parameters, such as the 5-tuple obtained for each flow. However, with this type of flow-based distribution based on traditional static hashing, bandwidth imbalances can occur when a specific flow has a large bandwidth or when multi-stage hashing is used. Furthermore, when multi-stage hashing is used, using the same load balancing method (hash calculation algorithm) across multiple connections can result in the same value being calculated on subsequent routers, resulting in poor load balancing.

また、フロー単位の分散において、分散時の帯域情報などをもとにパスを動的に選択する技術もあるが、その場合には、フロー毎に選択したパス情報を保持する等の追加となる処理(状態管理)が必要となる。
一方、パケット単位での負荷分散では、パケットの到着順序の逆転や、障害時の影響が全フローに波及してしまうという問題があり、セル単位の分散では、フロー単位やパケット単位とは異なる転送方式を新たに導入しなければならないという問題があった。
In addition, when distributing on a per-flow basis, there is technology that dynamically selects paths based on bandwidth information at the time of distribution, but in that case, additional processing (state management) is required, such as maintaining information on the path selected for each flow.
On the other hand, load balancing on a packet basis has problems such as packets arriving in the wrong order and the impact of a failure spreading to all flows, while cell-based balancing has the problem of having to introduce a new transfer method that is different from flow-based or packet-based methods.

このような点を鑑みて本発明がなされたのであり、本発明は、パケットの負荷分散制御において、帯域の偏りの発生を抑制することを課題とする。 The present invention was made in consideration of these points, and its objective is to prevent bandwidth imbalances in packet load balancing control.

本発明に係るパケット転送制御装置は、パケットの転送処理における各リンクへの切り替えを制御するパケット転送制御装置であって、前記パケットから収集されフローを特定する情報を含むパケット収集情報、および、当該フローが利用する帯域の情報、を含むフロー情報を取得するフロー情報取得部と、前記パケット収集情報を用いて構成される情報であり、予め設定されるハッシュキー候補の中から1つを選択するハッシュキー選択部と、予め設定されたハッシュ計算アルゴリズム候補の中から1つを選択するハッシュ計算アルゴリズム選択部と、選択された前記ハッシュキー候補を用いて、選択された前記ハッシュ計算アルゴリズム候補により、前記フローの振り分け先となるリンクを算出するシミュレーションを、前記ハッシュキー候補および前記ハッシュ計算アルゴリズム候補のすべての組合せについて実行するシミュレーション実行部と、前記シミュレーションの結果として得られた、前記ハッシュキー候補および前記ハッシュ計算アルゴリズム候補に応じた、前記フローの振り分け先となるリンクの情報の中から、前記フローの帯域の情報を用いて各リンクの利用帯域を算出し、所定のアルゴリズム決定ロジックに基づき、各リンクの利用帯域が最も分散している、前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組を選択し、選択された前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組の情報を出力する振分アルゴリズム決定部と、選択された前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組の情報を取得して、前記パケットを各リンクへ振り分ける振分処置機能に送信することにより、前記パケットの振り分け先となるリンクの設定を切り替えさせる振分アルゴリズム切替コントローラと、を備えることを特徴とする。 The packet forwarding control device of the present invention is a packet forwarding control device that controls switching to each link in packet forwarding processing, and includes a flow information acquisition unit that acquires packet collection information including information collected from the packets to identify the flow, and flow information including information on the bandwidth used by the flow; a hash key selection unit that selects one of pre-set hash key candidates, which is information constructed using the packet collection information; a hash calculation algorithm selection unit that selects one of pre-set hash calculation algorithm candidates; and a simulation unit that uses the selected hash key candidate to calculate the link to which the flow is to be assigned, for all combinations of the hash key candidate and the hash calculation algorithm candidate. The system is characterized by comprising: an execution unit; a distribution algorithm determination unit that calculates the bandwidth usage of each link using information on the bandwidth of the flow from information on links to which the flow is to be distributed according to the hash key candidate and the hash calculation algorithm candidate obtained as a result of the simulation, selects the pair of hash key candidate and hash calculation algorithm candidate that has the most variance in the bandwidth usage of each link based on a predetermined algorithm determination logic, and outputs information on the selected pair of hash key candidate and hash calculation algorithm candidate; and a distribution algorithm switching controller that acquires information on the selected pair of hash key candidate and hash calculation algorithm candidate and sends it to a distribution processing function that distributes the packets to each link, thereby switching the setting of the link to which the packets are to be distributed.

本発明に係るパケット転送制御装置は、パケットの負荷分散制御において、帯域の偏りの発生を抑制することができる。 The packet forwarding control device of the present invention can suppress the occurrence of bandwidth imbalances in packet load balancing control.

本実施形態に係るパケット転送制御装置の構成を示すブロック図である。1 is a block diagram showing a configuration of a packet transfer control device according to an embodiment of the present invention; 本実施形態に係るパケット転送制御装置が実行する処理の流れを示すフローチャートである。10 is a flowchart showing the flow of processing executed by the packet transfer control device according to the embodiment. 本実施形態に係るフロー情報のデータ構成例を示す図である。FIG. 4 is a diagram illustrating an example of a data configuration of flow information according to the embodiment. 本実施形態に係るシミュレーション結果情報のデータ構成例を示す図である。FIG. 10 is a diagram illustrating an example of a data configuration of simulation result information according to the present embodiment. 本実施形態に係るシミュレーション結果情報の他のデータ構成例を示す図である。FIG. 10 is a diagram showing another example of the data configuration of the simulation result information according to the embodiment. 本実施形態の変形例に係る振分シミュレーション装置の構成を示すブロック図である。FIG. 10 is a block diagram showing the configuration of a load balancing simulation device according to a modified example of the present embodiment. 本実施形態に係るパケット転送制御装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。FIG. 2 is a hardware configuration diagram illustrating an example of a computer that realizes the functions of the packet transfer control device according to the present embodiment.

次に、本発明を実施するための形態(以下、「本実施形態」と称する。)について説明する。
本実施形態に係るパケット転送制御装置1は、現時点のフロー情報を取得し、ハッシュキーやハッシュ計算アルゴリズムを変更しながら負荷分散状況をシミュレーションし、最適なシミュレーションの結果(振分結果)となったハッシュキーおよびハッシュ計算アルゴリズムを選択し、転送処理の切り替えを行うことを特徴とする。また、パケット転送制御装置1は、所定時間ごとに、その時点のフロー情報を取得し、負荷分散状況のシミュレーションを繰り返すことにより、フローごとの帯域の変動に対応して動的に転送処理の切り替えを行う。これにより、パケット転送制御装置1は、フロー単位の分散制御において、帯域の偏りの発生を抑制することができる。
Next, an embodiment of the present invention (hereinafter referred to as "the present embodiment") will be described.
The packet transfer control device 1 according to this embodiment acquires current flow information, simulates the load balancing situation while changing the hash key and hash calculation algorithm, selects the hash key and hash calculation algorithm that produce the optimal simulation result (allocation result), and switches the transfer process. Furthermore, the packet transfer control device 1 acquires current flow information at predetermined time intervals and repeatedly simulates the load balancing situation, thereby dynamically switching the transfer process in response to fluctuations in the bandwidth of each flow. This allows the packet transfer control device 1 to suppress the occurrence of bandwidth imbalances in the distributed control on a per-flow basis.

図1は、本実施形態に係るパケット転送制御装置1の構成を示すブロック図である。
パケット転送制御装置1は、図示を省略した、制御部、入出力部および記憶部を備えるコンピュータにより実現される。また、パケット転送制御装置1は、ASIC100(Application Specific Integrated Circuit:特定用途向け集積回路)等により構成される振分処理機能を備え、パケットの各フローへの振り分けが行われる。
FIG. 1 is a block diagram showing the configuration of a packet transfer control device 1 according to this embodiment.
The packet transfer control device 1 is realized by a computer including a control unit, an input/output unit, and a storage unit (not shown). The packet transfer control device 1 also has a distribution processing function configured by an ASIC 100 (Application Specific Integrated Circuit) or the like, and distributes packets to each flow.

入出力部は、パケットの入力元となる通信装置や、パケットの出力先となる複数の通信装置との間の情報について入出力を行う。なお、パケット転送制御装置1は、パケットの出力先となる複数の通信装置との間に設けられた複数のリンク(リンク#0,リンク#1,…)にパケットを振り分けることが可能であり、後記するシミュレーション結果に基づき、より負荷分散されるように、つまり、帯域の偏りの発生が抑制されるように、各フローを流すリンク(リンク#0,リンク#1,…)を選択して、パケットを出力する。
この入出力部は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力装置やモニタ等の出力装置との間で情報の入出力を行う入出力インタフェースとから構成される。
The input/output unit inputs and outputs information between a communication device that is an input source of a packet and multiple communication devices that are output destinations of the packets. The packet forwarding control device 1 can distribute packets to multiple links (link #0, link #1, ...) provided between the packet forwarding control device 1 and the multiple communication devices that are output destinations of the packets, and based on the simulation results described below, selects a link (link #0, link #1, ...) through which each flow will flow so as to better distribute the load, that is, to suppress the occurrence of bandwidth imbalance, and outputs the packets.
This input/output unit is composed of a communication interface that transmits and receives information via a communication line, and an input/output interface that inputs and outputs information between an input device such as a keyboard and an output device such as a monitor (not shown).

記憶部は、ハードディスクやフラッシュメモリ、RAM(Random Access Memory)等により構成される。
この記憶部には、制御部の各機能を実行させるためのプログラムや、制御部の処理に必要な情報が一時的に記憶される。また、この記憶部には、ハッシュキーとハッシュ計算アルゴリズムとを組み合わせてシミュレーションした結果である、各フローを収容するリンクの情報(後記する図4,図5のシミュレーション結果情報300のフロー振分結果情報)が格納される。
The storage unit is configured with a hard disk, flash memory, RAM (Random Access Memory), and the like.
This storage unit temporarily stores programs for executing the functions of the control unit and information necessary for the processing of the control unit. This storage unit also stores information on the links that accommodate each flow, which is the result of simulating a combination of hash keys and hash calculation algorithms (flow allocation result information in the simulation result information 300 in Figures 4 and 5, which will be described later).

制御部は、パケット転送制御装置1が実行する処理の全般を司り、図1で示すように、トラヒック情報取得部11と、振分シミュレーション部12と、振分アルゴリズム切替コントローラ13とを備える。 The control unit is responsible for all processing performed by the packet forwarding control device 1, and as shown in Figure 1, it comprises a traffic information acquisition unit 11, an allocation simulation unit 12, and an allocation algorithm switching controller 13.

トラヒック情報取得部11は、所定の時間間隔ごとに、他の通信装置から受信したパケットからトラヒック情報を取得する。
トラヒック情報の中には、5タプル(5tuple)の情報(送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル番号)や、トラヒック量の情報が含まれる。
The traffic information acquisition unit 11 acquires traffic information from packets received from other communication devices at predetermined time intervals.
The traffic information includes 5-tuple information (source IP address, source port number, destination IP address, destination port number, protocol number) and traffic volume information.

振分シミュレーション部12は、現時点のフロー情報を取得し、ハッシュキーやハッシュ計算アルゴリズムを変更しながら負荷分散状況をシミュレーションし、各フローの振り分け先となるリンクを算出する。そして、振分シミュレーション部12は、シミュレーション結果のうちの最適なシミュレーションの結果、つまり、各リンクの帯域の偏りが少ないフローの振り分けとなる、ハッシュキーおよびハッシュ計算アルゴリズムを選択する。
この振分シミュレーション部12は、フロー情報取得部121、ハッシュキー選択部122、ハッシュ計算アルゴリズム選択部123、シミュレーション実行部124および振分アルゴリズム決定部125を備える。
The distribution simulation unit 12 acquires current flow information, simulates the load distribution status while changing the hash key and hash calculation algorithm, and calculates the link to which each flow is to be distributed.The distribution simulation unit 12 then selects the optimal simulation result from the simulation results, that is, the hash key and hash calculation algorithm that will result in distribution of flows with minimal imbalance in the bandwidth of each link.
The distribution simulation unit 12 includes a flow information acquisition unit 121 , a hash key selection unit 122 , a hash calculation algorithm selection unit 123 , a simulation execution unit 124 , and a distribution algorithm determination unit 125 .

フロー情報取得部121は、トラヒック情報取得部11が取得したトラヒック情報に基づき、各フローのフロー情報を取得する。ここで、フロー情報取得部121が取得するフロー情報は、例えば、5タプルの情報である、送信元IPアドレス(Src IP)、送信元ポート番号(Src port)、宛先IPアドレス(Dst IP)、宛先ポート番号(Dst port)、プロトコル番号等の中で、予め設定した情報と、フローごとに利用する帯域(幅)(Bandwidth)の情報である。なお、5タプル等の情報であり、パケットから収集されたフローと特定する情報のうち、予め設定された情報を本実施形態では「パケット収集情報」と称する。また、フローごとに利用する帯域(幅)の情報は、トラヒック情報取得部11が取得したトラヒック量の情報等に基づき、フロー情報取得部121が算出すること等により取得してもよいし、トラヒック情報取得部11が、フローごとに利用する帯域(幅)を算出するようにしてもよい。The flow information acquisition unit 121 acquires flow information for each flow based on the traffic information acquired by the traffic information acquisition unit 11. The flow information acquired by the flow information acquisition unit 121 includes, for example, five-tuple information, such as source IP address (Src IP), source port number (Src port), destination IP address (Dst IP), destination port number (Dst port), and protocol number, which are preset information, as well as information on the bandwidth (width) used for each flow. In this embodiment, the preset information among the five-tuple information, such as information identifying a flow collected from packets, is referred to as "packet collection information." The bandwidth (width) used for each flow may be acquired by the flow information acquisition unit 121, for example, by calculation based on traffic volume information acquired by the traffic information acquisition unit 11, or the traffic information acquisition unit 11 may calculate the bandwidth (width) used for each flow.

ハッシュキー選択部122は、予め設定されたハッシュキー候補の中から1つを選択する。ハッシュキー選択部122は、例えば、送信元IPアドレスおよび宛先IPアドレスの2つタプル情報を選択したり、送信元IPアドレス、宛先IPアドレスおよび送信元ポート番号の3つのタプル情報を選択したりする。
例えば5タプル等のパケット収集情報のうちのどの情報の組を、ハッシュキー候補として採用するかは、予めハッシュキー選択部122に設定される。
The hash key selection unit 122 selects one of preset hash key candidates. For example, the hash key selection unit 122 selects two-tuple information of a source IP address and a destination IP address, or selects three-tuple information of a source IP address, a destination IP address, and a source port number.
Which set of information from the collected packet information, such as five tuples, is to be adopted as a hash key candidate is set in advance in the hash key selection unit 122 .

ハッシュ計算アルゴリズム選択部123は、予め設定されたハッシュ計算アルゴリズム候補の中から、1つのハッシュ計算アルゴリズム候補を選択する。
予め設定されるハッシュ計算アルゴリズム候補は、任意のハッシュ計算アルゴリズム(例えば、MD5,SHA-1,SHA-2,SHA-3)を設定することができる。また、ハッシュ計算アルゴリズム候補として、より詳細なアルゴリズムを設定してもよい。例えば、ハッシュ計算において行われる「XOR(排他的論理和)演算後の15ビット目を剰余算する」「XOR演算後の16ビット目を剰余算する」等の設定しておく。
The hash calculation algorithm selection unit 123 selects one hash calculation algorithm candidate from among preset hash calculation algorithm candidates.
Any hash calculation algorithm (e.g., MD5, SHA-1, SHA-2, SHA-3) can be set as a candidate hash calculation algorithm in advance. Also, a more detailed algorithm may be set as a candidate hash calculation algorithm. For example, "calculate the remainder of the 15th bit after the XOR (exclusive OR) operation" or "calculate the remainder of the 16th bit after the XOR operation" that are performed in hash calculations can be set.

シミュレーション実行部124は、ハッシュキー選択部122が選択したハッシュキー候補を用いて、ハッシュ計算アルゴリズム選択部123が選択したハッシュ計算アルゴリズム候補により、ハッシュ計算することにより、そのフローの振り分け先となるリンクを算出(シミュレーション)する。シミュレーション実行部124は、設定されたハッシュキー候補と、設定されたハッシュ計算アルゴリズム候補についてのすべての組合せについてシミュレーションを実行する。
そして、シミュレーション実行部124は、そのシミュレーションの結果である、フロー振分結果情報300を記憶部に格納する(後記する図4,図5参照)。
The simulation execution unit 124 calculates (simulates) the link to which the flow is to be allocated by performing a hash calculation using the hash key candidate selected by the hash key selection unit 122 and the hash calculation algorithm candidate selected by the hash calculation algorithm selection unit 123. The simulation execution unit 124 executes simulations for all combinations of the set hash key candidate and the set hash calculation algorithm candidate.
The simulation execution unit 124 then stores the flow allocation result information 300, which is the result of the simulation, in the storage unit (see FIGS. 4 and 5, which will be described later).

振分アルゴリズム決定部125は、シミュレーション実行部124のシミュレーション結果であるフロー振分結果情報300を用いて、所定のアルゴリズム決定ロジックに基づき、最も各リンクの利用帯域が分散されている「ハッシュキー」と「ハッシュ計算アルゴリズム」の組を選択する。 The allocation algorithm determination unit 125 uses the flow allocation result information 300, which is the simulation result of the simulation execution unit 124, to select the combination of "hash key" and "hash calculation algorithm" that best distributes the bandwidth usage of each link based on a predetermined algorithm determination logic.

この所定のアルゴリズム決定ロジックは、例えば、以下のロジックである。
<アルゴリズム決定ロジック「1」>ハッシュキー候補とハッシュ計算アルゴリズム候補の組それぞれで算出された各リンクの中で最も利用帯域が大きいリンクのうち、当該利用帯域が最小となるリンクが算出されたハッシュキー候補とハッシュ計算アルゴリズム候補の組を選択する。つまり、最もトラヒックの集中しているリンクの利用帯域が最小の「ハッシュキー」と「ハッシュ計算アルゴリズム」の組を選択する。
<アルゴリズム決定ロジック「2」>各リンクの利用帯域の分散を算出し、最も分散の値が低い「ハッシュキー」と「ハッシュ計算アルゴリズム」の組を選択する。
This predetermined algorithm decision logic is, for example, the following logic.
<Algorithm determination logic "1"> Among the links calculated for each pair of hash key candidate and hash calculation algorithm candidate, the pair of hash key candidate and hash calculation algorithm candidate that has calculated the link with the smallest bandwidth utilization is selected. In other words, the pair of "hash key" and "hash calculation algorithm" that has the smallest bandwidth utilization of the link with the most concentrated traffic is selected.
<Algorithm Determination Logic "2"> The variance of the bandwidth used for each link is calculated, and the pair of "hash key" and "hash calculation algorithm" with the lowest variance value is selected.

そして、振分アルゴリズム決定部125は、選択した「ハッシュキー」と「ハッシュ計算アルゴリズム」の組について、リンクの振り分けに関する変更処理(振分アルゴリズム変更処理)を行うか否かを、所定の変更処理判定ロジックに基づき判定する。
所定の変更処理判定ロジックは、例えば、「各リンクの利用帯域が所定の閾値以下であること」の条件を満たす場合に変更処理を実行する、一方、この条件を満たさない場合には変更処理を実行しない、というロジックである。また、所定の変更処理判定ロジックは、「各リンクの利用帯域の分散が、所定の閾値以下である」の条件を満たす場合に変更処理を実行する、一方、この条件を満たさない場合には変更処理を実行しない、というロジックでもよい。
Then, the distribution algorithm determination unit 125 determines whether or not to perform a change process (distribution algorithm change process) regarding link distribution for the selected pair of "hash key" and "hash calculation algorithm" based on a predetermined change process determination logic.
The predetermined change process determination logic is, for example, a logic that executes the change process when the condition "the bandwidth usage of each link is equal to or less than a predetermined threshold" is satisfied, and does not execute the change process when this condition is not satisfied. Alternatively, the predetermined change process determination logic may be a logic that executes the change process when the condition "the variance of the bandwidth usage of each link is equal to or less than a predetermined threshold" is satisfied, and does not execute the change process when this condition is not satisfied.

振分アルゴリズム決定部125は、所定の変更処理判定ロジックに基づく条件を満たすと判定した場合には、選択した「ハッシュキー」と「ハッシュ計算アルゴリズム」の組の情報を新たな振分アリゴリズムとして、振分アルゴリズム切替コントローラ13へ出力する。 If the allocation algorithm determination unit 125 determines that the conditions based on the specified change processing determination logic are met, it outputs information on the selected pair of "hash key" and "hash calculation algorithm" to the allocation algorithm switching controller 13 as a new allocation algorithm.

振分アルゴリズム切替コントローラ13は、取得した「ハッシュキー」と「ハッシュ計算アルゴリズム」の組みの情報(振分アルゴリズム)に基づき、ハッシュキーとハッシュ計算アルゴリズムの切り替え情報を、振分処理機能(ここでは、ASIC100)に送信する。 The distribution algorithm switching controller 13 sends switching information for the hash key and hash calculation algorithm to the distribution processing function (here, ASIC 100) based on the acquired combination of "hash key" and "hash calculation algorithm" information (distribution algorithm).

ASIC100のハッシュ切替機能部101は、取得した「ハッシュキー」と「ハッシュ計算アルゴリズム」の情報に、振分アルゴリズムを切り替える。これにより、ASIC100は、受信したパケットを、新たに設定した振分先のリンク(リンク#0,#1,…)に振り分けて転送する。
なお、この振分処理機能は、ASIC100に限定されず、例えば、FPGA(Field Programmable Gate Array)等であってもよい。
また、図1においては、ASIC100等の振分処理機能(スイッチ)を、パケット転送制御装置1の内部に備えるものとしたが、パケット転送制御装置1を、ASIC100等の振分処理機能(スイッチ)とは別筐体の装置として外部に設けてもよい。
The hash switching function unit 101 of the ASIC 100 switches the sorting algorithm based on the acquired "hash key" and "hash calculation algorithm" information. As a result, the ASIC 100 sorts and transfers the received packets to the newly set sorting destination links (links #0, #1, ...).
It should be noted that this allocation processing function is not limited to the ASIC 100, and may be, for example, an FPGA (Field Programmable Gate Array) or the like.
Also, in Figure 1, the distribution processing function (switch) such as ASIC 100 is provided inside the packet forwarding control device 1, but the packet forwarding control device 1 may also be provided externally as a device in a separate housing from the distribution processing function (switch) such as ASIC 100.

<パケット転送制御装置の処理>
次に、パケット転送制御装置1が実行する処理の流れについて説明する。
図2は、本実施形態に係るパケット転送制御装置1が実行する処理の流れを示すフローチャートである。
<Processing of the packet transfer control device>
Next, the flow of processing executed by the packet transfer control device 1 will be described.
FIG. 2 is a flowchart showing the flow of processing executed by the packet transfer control device 1 according to this embodiment.

まず、パケット転送制御装置1のトラヒック情報取得部11は、所定の時間間隔が経過したか否かを判定する(ステップS1)。所定の時間が経過していなければ(ステップS1→No)、ステップS1に戻る。一方、所定の時間が経過した場合には(ステップS1→Yes)、ステップS2へ進む。First, the traffic information acquisition unit 11 of the packet forwarding control device 1 determines whether a predetermined time interval has elapsed (step S1). If the predetermined time has not elapsed (step S1 → No), the process returns to step S1. On the other hand, if the predetermined time has elapsed (step S1 → Yes), the process proceeds to step S2.

ステップS2において、トラヒック情報取得部11は、他の通信装置から受信したパケットからトラヒック情報を取得する。このトラヒック情報には、予め設定された5タプル等の情報うちのいずれかの情報や、トラヒック量の情報が含まれる。In step S2, the traffic information acquisition unit 11 acquires traffic information from packets received from other communication devices. This traffic information includes information such as a preset 5-tuple, as well as information on traffic volume.

次に、振分シミュレーション部12は、現時点のフロー情報を取得し、ハッシュキーやハッシュ計算アルゴリズムを変更しながら負荷分散状況をシミュレーションし、各フローの振り分け先となるリンクを算出する。そして、振分シミュレーション部12は、最もトラヒックが分散されている「ハッシュキー」と「ハッシュ計算アルゴリズム」の組を決定する。具体的には、以下の処理を実行する。Next, the distribution simulation unit 12 acquires the current flow information, simulates the load distribution status while changing the hash key and hash calculation algorithm, and calculates the link to which each flow will be distributed.The distribution simulation unit 12 then determines the combination of "hash key" and "hash calculation algorithm" that distributes traffic the most. Specifically, it performs the following process.

まず、振分シミュレーション部12のフロー情報取得部121は、ステップS2において、トラヒック情報取得部11が取得したトラヒック情報に基づき、各フローのフロー情報200を取得する(ステップS3)。 First, in step S2, the flow information acquisition unit 121 of the distribution simulation unit 12 acquires flow information 200 for each flow based on the traffic information acquired by the traffic information acquisition unit 11 (step S3).

図3は、フロー情報取得部121が取得したフロー情報200のデータ構成例を示す図である。
図3で示すように、フロー情報200には、各フローのフローID(#1,#2)に対応付けて、予め5タプル等の情報のうちから設定されたトラヒックの情報(パケット収集情報)と帯域(幅)(Bandwidth)の情報が格納される。図3においては、5タプルの情報うちの、送信元IPアドレス(Src IP)、宛先IPアドレス(Dst IP)、送信元ポート番号(Src port)がパケット収集情報として設定される例を示している。なお、このフローを特定するこの5タプル等のパケット収集情報が、「ハッシュキー」として用いられる。
FIG. 3 is a diagram showing an example of the data structure of the flow information 200 acquired by the flow information acquisition unit 121. As shown in FIG.
As shown in Fig. 3, the flow information 200 stores traffic information (packet collection information) and bandwidth information, which are set in advance from information such as a 5-tuple, in association with the flow ID (#1, #2) of each flow. Fig. 3 shows an example in which the source IP address (Src IP), destination IP address (Dst IP), and source port number (Src port) of the 5-tuple information are set as packet collection information. Note that this 5-tuple packet collection information, such as the 5-tuple, that identifies this flow is used as a "hash key."

次に、振分シミュレーション部12のハッシュキー選択部112は、予め設定されたハッシュキー候補の中から1つを選択する(ステップS4)。
ここでは、例えば、以下に示す、2つのハッシュキー候補が予め設定されているものとする。
ハッシュキー候補#1:<Src IP/Dst IP> …(送信元IPアドレスおよび宛先IPアドレス)
ハッシュキー候補#2:<Src IP/Dst IP/Src port> …(送信元IPアドレス、宛先IPアドレスおよび送信元ポート番号)
そして、ここでは、ハッシュキー選択部112は、ハッシュキー候補#1を選択したものとして、以下において説明する。
Next, the hash key selection unit 112 of the distribution simulation unit 12 selects one hash key candidate from among preset candidates (step S4).
Here, for example, it is assumed that the following two hash key candidates are set in advance.
Hash key candidate #1: <Src IP/Dst IP> (source IP address and destination IP address)
Hash key candidate #2: <Src IP/Dst IP/Src port> (source IP address, destination IP address, and source port number)
Here, the following description will be given assuming that the hash key selection unit 112 selects hash key candidate #1.

続いて、振分シミュレーション部12のハッシュ計算アルゴリズム選択部123は、予め設定されたハッシュ計算アルゴリズム候補の中から1つを選択する(ステップS5)。
ここでは、例えば、以下に示す1つのハッシュ計算アルゴリズム候補が設定されているものとする。
ハッシュ計算アルゴリズム候補#1:「XOR演算後15ビット目を剰余算する」
そして、ここでハッシュ計算アルゴリズム選択部123は、ハッシュ計算アルゴリズム候補#1を選択する。
Next, the hash calculation algorithm selection unit 123 of the distribution simulation unit 12 selects one from among the hash calculation algorithm candidates set in advance (step S5).
Here, for example, it is assumed that one hash calculation algorithm candidate shown below is set.
Hash calculation algorithm candidate #1: "XOR operation followed by modulo calculation of the 15th bit"
Here, the hash calculation algorithm selection unit 123 selects hash calculation algorithm candidate #1.

次に、振分シミュレーション部12のシミュレーション実行部124は、ステップS4においてハッシュキー選択部122が選択したハッシュキー候補を用いて、ステップS5においてハッシュ計算アルゴリズム選択部123が選択したハッシュ計算アルゴリズム候補により、ハッシュ計算することにより、そのフローの振り分け先となるリンクを算出するシミュレーション(ハッシュ計算シミュレーション)を実行する(ステップS6)。
そして、シミュレーション実行部124は、そのシミュレーション結果を、シミュレーション結果情報300として、図示を省略した記憶部に格納する。
Next, the simulation execution unit 124 of the distribution simulation unit 12 performs a simulation (hash calculation simulation) to calculate the link to which the flow will be distributed by performing a hash calculation using the hash key candidate selected by the hash key selection unit 122 in step S4 and the hash calculation algorithm candidate selected by the hash calculation algorithm selection unit 123 in step S5 (step S6).
The simulation execution unit 124 then stores the simulation results as simulation result information 300 in a storage unit (not shown).

図4は、シミュレーション実行部124が生成したシミュレーション結果情報300のデータ構成例を示す図である。
図4で示すように、シミュレーション結果情報300には、ハッシュキー候補およびハッシュ計算アルゴリズム候補に対応付けてフロー振分結果情報が格納される。
図4のシミュレーション結果情報300の1行目(符号301)では、ハッシュキー候補が「#1:<Src IP/Dst IP>」であり、ハッシュ計算アルゴリズム候補が「#1」:「XOR演算後15ビット目を剰余算する」であるときのシミュレーション結果として、以下のフロー振分結果情報が得られたことを示している。
フロー#1:リンク#0
フロー#2:リンク#0
このフロー振分結果情報は、フロー#1をリンク#0に振り分け、フロー#2をリンク#0に振り分けるシミュレーション結果であることを示している。
FIG. 4 is a diagram showing an example of the data structure of the simulation result information 300 generated by the simulation execution unit 124. As shown in FIG.
As shown in FIG. 4, the simulation result information 300 stores flow allocation result information in association with hash key candidates and hash calculation algorithm candidates.
The first line (reference numeral 301) of the simulation result information 300 in FIG. 4 indicates that the following flow allocation result information was obtained as a simulation result when the hash key candidate was "#1: <Src IP/Dst IP>" and the hash calculation algorithm candidate was "#1": "XOR operation followed by modulo calculation of the 15th bit."
Flow #1: Link #0
Flow #2: Link #0
This flow allocation result information indicates that the simulation results show that flow #1 is allocated to link #0 and flow #2 is allocated to link #0.

続いて、シミュレーション実行部124は、ハッシュ計算アルゴリズム候補が残っているか否かを判定する(ステップS7)。ここで、シミュレーション実行部124は、選択していないハッシュ計算アルゴリズム候補が残っていれば(ステップS7→Yes)、ステップS5に戻り、処理を続ける。一方、シミュレーション実行部124は、選択していないハッシュ計算アルゴリズム候補が残っていなければ(ステップS7→No)、次のステップS8へ進む。
なお、ここでは、ハッシュ計算アルゴリズム候補が残っていないので、ステップS8へ進む。
Next, the simulation execution unit 124 determines whether any hash calculation algorithm candidates remain (step S7). If there are any unselected hash calculation algorithm candidates remaining (step S7 → Yes), the simulation execution unit 124 returns to step S5 and continues processing. On the other hand, if there are no unselected hash calculation algorithm candidates remaining (step S7 → No), the simulation execution unit 124 proceeds to the next step S8.
At this point, since there are no hash calculation algorithm candidates remaining, the process proceeds to step S8.

次に、シミュレーション実行部124は、ハッシュキー候補が残っているか否かを判定する(ステップS8)。ここで、シミュレーション実行部124は、選択していないハッシュキー候補が残っていれば(ステップS8→Yes)、ステップS4に戻り、処理を続ける。一方、シミュレーション実行部124は、選択していないハッシュキー候補が残っていなければ(ステップS8→No)、次のステップS9へ進む。Next, the simulation execution unit 124 determines whether any hash key candidates remain (step S8). If there are any unselected hash key candidates remaining (step S8 → Yes), the simulation execution unit 124 returns to step S4 and continues processing. On the other hand, if there are no unselected hash key candidates remaining (step S8 → No), the simulation execution unit 124 proceeds to the next step S9.

なお、ここでは、ハッシュキー候補#2が残っているので、ステップS4へ戻り、ステップS4~S8までの処理が実行される。その結果、図4のシミュレーション結果情報300の2行目(符号302)で示すように、ハッシュキー候補が「#2:<Src IP/Dst IP/Src port>」であり、ハッシュ計算アルゴリズム候補が「#1」:「XOR演算後15ビット目を剰余算する」であるときのシミュレーション結果として、以下のフロー振分結果情報が得られる。
フロー#1:リンク#0
フロー#2:リンク#1
このフロー振分結果情報は、フロー#1をリンク#0に振り分け、フロー#2をリンク#1に振り分けるシミュレーション結果であることを示している。
In this case, hash key candidate #2 remains, so the process returns to step S4, and steps S4 to S8 are executed. As a result, as shown in the second line (reference numeral 302) of the simulation result information 300 in Fig. 4, the following flow allocation result information is obtained as the simulation result when the hash key candidate is "#2: <Src IP/Dst IP/Src port>" and the hash calculation algorithm candidate is "#1": "XOR operation followed by modulo calculation of the 15th bit."
Flow #1: Link #0
Flow #2: Link #1
This flow allocation result information indicates that the simulation results show that flow #1 is allocated to link #0 and flow #2 is allocated to link #1.

次に、ステップS8において、ハッシュキー候補が残っていない場合(ステップS8→No)、振分シミュレーション部12の振分アルゴリズム決定部125は、シミュレーション結果情報400(図4)のフロー振分結果情報を参照し、所定のアルゴリズム決定ロジックに基づき、最も各リンクの利用帯域が分散されている「ハッシュキー」と「ハッシュ計算アルゴリズム」の組を選択する(ステップS9)。 Next, in step S8, if there are no hash key candidates remaining (step S8 → No), the distribution algorithm determination unit 125 of the distribution simulation unit 12 refers to the flow distribution result information in the simulation result information 400 (Figure 4) and, based on a predetermined algorithm determination logic, selects the combination of "hash key" and "hash calculation algorithm" that best distributes the bandwidth usage of each link (step S9).

ここで、振分アルゴリズム決定部125において、所定のアルゴリズム決定ロジックとして、上記した<アルゴリズム決定ロジック「1」>である、最もトラヒックの集中しているリンクの利用帯域が最小の「ハッシュキー」と「ハッシュ計算アルゴリズム」の組を選択する、が設定されていたものとする。 Here, it is assumed that the allocation algorithm determination unit 125 has set the predetermined algorithm determination logic to the above-mentioned <algorithm determination logic "1">, which selects the pair of "hash key" and "hash calculation algorithm" with the smallest bandwidth usage on the link with the most concentrated traffic.

この場合、図4の符号301で示すシミュレーションのフロー振分結果情報では、フロー#1およびフロー#2が同じリンク#0に収容されるため、図3で示す帯域(幅)(Bandwidth)に基づき、リンク#0の利用帯域の合計が100+100=200(Mbps)となる。またリンク#1の帯域(幅)(Bandwidth)は、0(Mbps)となる。よって、符号301で示すシミュレーションの最もトラヒックの集中しているリンクの利用帯域は、リンク#0の「200(Mbps)」である。In this case, in the flow allocation result information of the simulation indicated by reference numeral 301 in Figure 4, since flow #1 and flow #2 are accommodated on the same link #0, the total bandwidth usage of link #0 is 100 + 100 = 200 (Mbps) based on the bandwidth (width) shown in Figure 3. Furthermore, the bandwidth (width) of link #1 is 0 (Mbps). Therefore, the bandwidth usage of the link with the most concentrated traffic in the simulation indicated by reference numeral 301 is link #0, 200 (Mbps).

これに対し、図4の符号302で示すシミュレーションのフロー振分結果情報では、フロー#1がリンク#0に収容され、フロー#2がリンク#1に収容されるため、図3で示す帯域(幅)(Bandwidth)に基づき、フロー#1の利用帯域が100(Mbps)、フロー#2の利用帯域も100(Mbps)となる。よって、符号302で示すシミュレーションの最もトラヒックの集中しているリンクの利用帯域は、リンク#0,#1の「100(Mbps)」である。 In contrast, in the flow allocation result information of the simulation indicated by reference numeral 302 in Figure 4, flow #1 is accommodated in link #0 and flow #2 is accommodated in link #1, so based on the bandwidth shown in Figure 3, the bandwidth used for flow #1 is 100 (Mbps) and the bandwidth used for flow #2 is also 100 (Mbps). Therefore, the bandwidth used for the link with the most concentrated traffic in the simulation indicated by reference numeral 302 is "100 (Mbps)" for links #0 and #1.

つまり、振分シミュレーション部12は、符号301で示すシミュレーションでは、フロー#1およびフロー#2が同一リンクとなり(図5の符号a)、一方、符号302で示すシミュレーションでは、フロー#1とフロー#2が複数のリンクに分散される(図5の符号b)。
この結果、振分アルゴリズム決定部125は、最もトラヒックの集中しているリンクの利用帯域が最小(ここでは、「100(Mbps)」)となる、即ち、最もトラヒックが分散されている、符号302で示すシミュレーションの「ハッシュキー」と「ハッシュ計算アルゴリズム」の組を選択する。
That is, in the simulation indicated by the symbol 301, the distribution simulation unit 12 assigns flow #1 and flow #2 to the same link (symbol a in FIG. 5), while in the simulation indicated by the symbol 302, flow #1 and flow #2 are distributed to multiple links (symbol b in FIG. 5).
As a result, the allocation algorithm determination unit 125 selects the combination of the simulation "hash key" and "hash calculation algorithm" indicated by the symbol 302, which results in the smallest bandwidth usage (here, "100 (Mbps)") for the link with the most concentrated traffic, i.e., the link with the most dispersed traffic.

図5は、シミュレーション実行部124が生成したシミュレーション結果情報300の他のデータ構成例を示す図である。
ここでは、1つのハッシュキー候補と、2つのハッシュ計算アルゴリズム候補が予め設定され、シミュレーション実行部124が、ステップS6のハッシュ計算シミュレーションを実行した結果を示している。
FIG. 5 is a diagram showing another example of the data structure of the simulation result information 300 generated by the simulation execution unit 124. In FIG.
Here, one hash key candidate and two hash calculation algorithm candidates are set in advance, and the simulation execution unit 124 executes the hash calculation simulation in step S6, and the results are shown.

図5のシミュレーション結果情報300の1行目(符号303)では、ハッシュキー候補が「#1:<Src IP/Dst IP/Src port>」であり、ハッシュ計算アルゴリズム候補が「#1」:「XOR演算後16ビット目を剰余算する」であるときのシミュレーション結果として、以下のフロー振分結果情報が得られたことを示している。
フロー#1:リンク#0
フロー#2:リンク#0
このフロー振分結果情報は、フロー#1をリンク#0に振り分け、フロー#2をリンク#0に振り分ける、つまり同一リンクに振り分けるシミュレーション結果であることを示している(図5の符号c)。
The first line (reference numeral 303) of the simulation result information 300 in FIG. 5 indicates that the following flow allocation result information was obtained as a simulation result when the hash key candidate was "#1: <Src IP/Dst IP/Src port>" and the hash calculation algorithm candidate was "#1": "XOR operation followed by modulo calculation of the 16th bit."
Flow #1: Link #0
Flow #2: Link #0
This flow allocation result information indicates that flow #1 is allocated to link #0 and flow #2 is allocated to link #0, that is, the simulation result shows that flow #1 and flow #2 are allocated to the same link (symbol c in FIG. 5).

また、図5のシミュレーション結果情報300の2行目(符号304)では、ハッシュキー候補が「#1:<Src IP/Dst IP/Src port>」であり、ハッシュ計算アルゴリズム候補が「#2」:「XOR演算後15ビット目を剰余算する」であるときのシミュレーション結果として、以下のフロー振分結果情報が得られたことを示している。
フロー#1:リンク#0
フロー#2:リンク#1
このフロー振分結果情報は、フロー#1をリンク#0に振り分け、フロー#2をリンク#1に振り分ける、つまり複数のリンクに分散するシミュレーション結果であることを示している(図5の符号d)。
Furthermore, the second line (reference numeral 304) of the simulation result information 300 in FIG. 5 indicates that the following flow allocation result information was obtained as a simulation result when the hash key candidate was "#1: <Src IP/Dst IP/Src port>" and the hash calculation algorithm candidate was "#2": "XOR operation followed by modulo calculation of the 15th bit."
Flow #1: Link #0
Flow #2: Link #1
This flow allocation result information indicates that flow #1 is allocated to link #0 and flow #2 is allocated to link #1, that is, the simulation result shows that flow is distributed to a plurality of links (symbol d in FIG. 5).

このように、振分シミュレーション部12では、予め設定された、ハッシュキー候補と振分アルゴリズム候補のすべての組合せについて、ハッシュ計算シミュレーションを実行し、最も各リンクの利用帯域が分散されている「ハッシュキー」と「ハッシュ計算アルゴリズム」の組を選択する。 In this way, the distribution simulation unit 12 performs hash calculation simulation for all combinations of pre-set hash key candidates and distribution algorithm candidates, and selects the combination of "hash key" and "hash calculation algorithm" that best distributes the bandwidth usage of each link.

続いて、振分アルゴリズム決定部125は、振分アルゴリズムの変更処理を行うか否かを、所定の変更処理判定ロジックに基づき判定する(ステップS10)。
ここで、所定の変更処理判定ロジックが、例えば、「各リンクの利用帯域が所定の閾値以下であることの条件を満たす場合に、変更処理を実行する」である場合を例に説明する。この場合、振分アルゴリズム決定部125は、ステップS9において選択された、例えば、図4の符号302で示すシミュレーションの「ハッシュキー」と「ハッシュ計算アルゴリズム」の組のフロー振分結果情報に基づき、フロー#1の利用帯域(100Mbps)およびフロー#2の利用帯域(100Mbps)が、所定の閾値以下であるかを判定する。
Next, the allocation algorithm determination unit 125 determines whether or not to change the allocation algorithm based on a predetermined change process determination logic (step S10).
Here, an example will be described in which the predetermined change process determination logic is, for example, "execute change process if the condition that the bandwidth usage of each link is equal to or less than a predetermined threshold is satisfied." In this case, the allocation algorithm determination unit 125 determines whether the bandwidth usage of flow #1 (100 Mbps) and flow #2 (100 Mbps) is equal to or less than a predetermined threshold, based on the flow allocation result information of the combination of the "hash key" and "hash calculation algorithm" of the simulation selected in step S9, for example, denoted by reference numeral 302 in FIG.

ここで、例えば、所定の閾値が200Mbpsに設定されていれば、振分アルゴリズム決定部125は、所定の変更処理判定ロジックに基づく条件を満たすとして(ステップS10→Yes)、次のステップS11へ進む。このとき、振分アルゴリズム決定部125は、選択した「ハッシュキー」と「ハッシュ計算アルゴリズム」の組の情報を、振分アルゴリズム切替コントローラ13へ出力する。
一方、例えば、所定の閾値が80Mbpsに設定されていれば、振分アルゴリズム決定部125は、所定の変更処理判定ロジックに基づく条件を満たさないとして(ステップS10→No)、振分アルゴリズムの変更処理を行わずに、ステップS1へ戻る。
If the predetermined threshold is set to 200 Mbps, for example, the allocation algorithm determination unit 125 determines that the condition based on the predetermined change process determination logic is met (step S10 → Yes), and proceeds to the next step S11. At this time, the allocation algorithm determination unit 125 outputs information about the selected pair of "hash key" and "hash calculation algorithm" to the allocation algorithm switching controller 13.
On the other hand, if the specified threshold is set to 80 Mbps, for example, the distribution algorithm determination unit 125 determines that the conditions based on the specified change processing judgment logic are not met (step S10 → No), and returns to step S1 without performing the distribution algorithm change processing.

ステップS11において、振分アルゴリズム切替コントローラ13は、取得した「ハッシュキー」と「ハッシュ計算アルゴリズム」の組みの情報(振分アルゴリズム)に基づき、ハッシュキーとハッシュ計算アルゴリズムの切り替え情報を、振分処理機能(ここでは、ASIC100)に送信する。これにより、ASIC100のハッシュ切替機能部101により、振分アルゴリズムの変更が行われる。In step S11, the sorting algorithm switching controller 13 transmits hash key and hash calculation algorithm switching information to the sorting processing function (here, ASIC 100) based on the acquired information (sorting algorithm) of the pair of "hash key" and "hash calculation algorithm." As a result, the sorting algorithm is changed by the hash switching function unit 101 of ASIC 100.

なお、パケット転送制御装置1は、所定の時間間隔ごとに、この負荷分散状況のシミュレーションを繰り返すことにより、フローごとの帯域の変動に対応して動的に転送処理の切り替えを行う。よって、パケット転送制御装置1は、フロー単位の分散制御において、帯域の偏りの発生を抑制することができる。 The packet forwarding control device 1 repeats this load balancing simulation at predetermined time intervals, dynamically switching forwarding processes in response to fluctuations in bandwidth for each flow. Therefore, the packet forwarding control device 1 can suppress the occurrence of bandwidth imbalances in distributed control on a per-flow basis.

≪本実施形態の変形例≫
本実施形態の変形例として、図1に示す振分シミュレーション部12の機能のみを備える装置(振分シミュレーション装置2)を説明する。
図6に示す振分シミュレーション装置2は、図1で示す、フロー情報取得部121、ハッシュキー選択部112、ハッシュ計算アルゴリズム選択部123、シミュレーション実行部124および振分アルゴリズム決定部125の機能を備える。これにより、振分シミュレーション装置2は、任意のフロー情報を入力することにより、各フローの振分先となるリンクの情報をシミュレーションし出力する。
<Modification of this embodiment>
As a modification of this embodiment, a device (traffic allocation simulation device 2) having only the functions of the traffic allocation simulation unit 12 shown in FIG. 1 will be described.
The distribution simulation device 2 shown in Fig. 6 has the functions of the flow information acquisition unit 121, hash key selection unit 112, hash calculation algorithm selection unit 123, simulation execution unit 124, and distribution algorithm determination unit 125 shown in Fig. 1. As a result, by inputting any flow information, the distribution simulation device 2 simulates and outputs information on links to which each flow is to be distributed.

通常、ECMPを採用している場合において、各フローがどのリンクを通っているかを判定することは難しい。これに対し、振分シミュレーション装置2を用いれば、例えば障害が発生した場合に、該当パスがどのリンクを通っているかを、フロー情報等に基づき迅速に確定することができる。これにより、障害発生後の対応をより早く行うことが可能となる。 Normally, when ECMP is used, it is difficult to determine which link each flow passes through. In contrast, by using the distribution simulation device 2, if a failure occurs, for example, it is possible to quickly determine which link the path in question passes through based on flow information, etc. This makes it possible to respond more quickly after a failure occurs.

<ハードウェア構成>
本実施形態に係るパケット転送制御装置1は、例えば図7に示すような構成のコンピュータ900によって実現される。
図7は、本実施形態に係るパケット転送制御装置1の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。コンピュータ900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM903、HDD(Hard Disk Drive)904、入出力I/F(Interface)905、通信I/F906およびメディアI/F907を有する。
<Hardware configuration>
The packet transfer control device 1 according to this embodiment is realized by a computer 900 having a configuration as shown in FIG. 7, for example.
7 is a hardware configuration diagram showing an example of a computer 900 that realizes the functions of the packet transfer control device 1 according to this embodiment. The computer 900 has a CPU (Central Processing Unit) 901, a ROM (Read Only Memory) 902, a RAM 903, an HDD (Hard Disk Drive) 904, an input/output I/F (Interface) 905, a communication I/F 906, and a media I/F 907.

CPU901は、ROM902またはHDD904に記憶されたプログラムに基づき作動し、図1に示す各機能部による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラム等を記憶する。 The CPU 901 operates based on programs stored in the ROM 902 or HDD 904, and controls each functional unit shown in Figure 1. The ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started, as well as programs related to the computer 900's hardware.

CPU901は、入出力I/F905を介して、マウスやキーボード等の入力装置910、および、ディスプレイやプリンタ等の出力装置911を制御する。CPU901は、入出力I/F905を介して、入力装置910からデータを取得するともに、生成したデータを出力装置911へ出力する。なお、パケット転送制御装置1が、ASIC100等(図1参照)の振分処理機能を備える場合には、入出力I/F905を介して、情報の送受信を行う。 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 I/F 905. The CPU 901 acquires data from the input device 910 via the input/output I/F 905, and outputs generated data to the output device 911. If the packet transfer control device 1 has a distribution processing function such as an ASIC 100 (see Figure 1), it sends and receives information via the input/output I/F 905.

HDD904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータ等を記憶する。通信I/F906は、通信網(例えば、NW(Network)920)を介して他の装置からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。 HDD 904 stores programs executed by CPU 901 and data used by the programs. Communication I/F 906 receives data from other devices via a communication network (e.g., NW (Network) 920) and outputs the data to CPU 901, and also transmits data generated by CPU 901 to other devices via the communication network.

メディアI/F907は、記録媒体912に格納されたプログラムまたはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、目的の処理に係るプログラムを、メディアI/F907を介して記録媒体912からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体912は、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、磁気記録媒体、半導体メモリ等である。 The media I/F 907 reads the program or data stored on the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads the program related to the target processing from the recording medium 912 onto the RAM 903 via the media I/F 907, and executes the loaded program. The recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a semiconductor memory, etc.

例えば、コンピュータ900が本実施形態に係るパケット転送制御装置1として機能する場合、コンピュータ900のCPU901は、RAM903上にロードされたプログラムを実行することにより、パケット転送制御装置1の機能を実現する。また、HDD904には、RAM903内のデータが記憶される。CPU901は、目的の処理に係るプログラムを記録媒体912から読み取って実行する。この他、CPU901は、他の装置から通信網(NW920)を介して目的の処理に係るプログラムを読み込んでもよい。 For example, when the computer 900 functions as the packet transfer control device 1 according to this embodiment, the CPU 901 of the computer 900 executes a program loaded onto the RAM 903 to realize the functions of the packet transfer control device 1. In addition, the HDD 904 stores data in the RAM 903. The CPU 901 reads and executes a program related to the target processing from the recording medium 912. Additionally, the CPU 901 may read a program related to the target processing from another device via the communication network (NW 920).

<効果>
以下、本発明に係るパケット転送制御装置1等の効果について説明する。
本発明に係るパケット転送制御装置は、パケットの転送処理における各リンクへの切り替えを制御するパケット転送制御装置1であって、パケットから収集されフローを特定する情報を含むパケット収集情報、および、当該フローが利用する帯域の情報、を含むフロー情報を取得するフロー情報取得部121と、パケット収集情報を用いて構成される情報であり、予め設定されるハッシュキー候補の中から1つを選択するハッシュキー選択部122と、予め設定されたハッシュ計算アルゴリズム候補の中から1つを選択するハッシュ計算アルゴリズム選択部123と、選択されたハッシュキー候補を用いて、選択されたハッシュ計算アルゴリズム候補により、フローの振り分け先となるリンクを算出するシミュレーションを、ハッシュキー候補およびハッシュ計算アルゴリズム候補のすべての組合せについて実行するシミュレーション実行部124と、シミュレーションの結果として得られた、ハッシュキー候補およびハッシュ計算アルゴリズム候補に応じた、フローの振り分け先となるリンクの情報の中から、フローの帯域の情報を用いて各リンクの利用帯域を算出し、所定のアルゴリズム決定ロジックに基づき、各リンクの利用帯域が最も分散している、ハッシュキー候補とハッシュ計算アルゴリズム候補の組を選択し、選択されたハッシュキー候補とハッシュ計算アルゴリズム候補の組の情報を出力する振分アルゴリズム決定部125と、選択されたハッシュキー候補とハッシュ計算アルゴリズム候補の組の情報を取得して、パケットを各リンクへ振り分ける振分処置機能に送信することにより、パケットの振り分け先となるリンクの設定を切り替えさせる振分アルゴリズム切替コントローラ13と、を備えることを特徴とする。
<Effects>
The effects of the packet transfer control device 1 and the like according to the present invention will be described below.
The packet transfer control device according to the present invention is a packet transfer control device 1 that controls switching to each link in packet transfer processing, and includes a flow information acquisition unit 121 that acquires packet collection information including information collected from packets to identify a flow and flow information including information on a bandwidth used by the flow, a hash key selection unit 122 that selects one of preset hash key candidates, which is information configured using the packet collection information, a hash calculation algorithm selection unit 123 that selects one of preset hash calculation algorithm candidates, and a simulation that uses the selected hash key candidate to calculate a link to which a flow is to be allocated, for all combinations of hash key candidates and hash calculation algorithm candidates. The system is characterized by comprising: a simulation execution unit 124; an allocation algorithm determination unit 125 that calculates the bandwidth usage of each link using flow bandwidth information from information on links to which flows are to be allocated according to the hash key candidates and hash calculation algorithm candidates obtained as a result of the simulation, selects a pair of hash key candidates and hash calculation algorithm candidates that has the most variance in the bandwidth usage of each link based on a predetermined algorithm determination logic, and outputs information on the selected pair of hash key candidates and hash calculation algorithm candidates; and an allocation algorithm switching controller 13 that acquires information on the selected pair of hash key candidates and hash calculation algorithm candidates and sends it to an allocation processing function that allocates packets to each link, thereby switching the setting of the link to which the packets are to be allocated.

このようにパケット転送制御装置1は、ハッシュキー候補とハッシュ計算アルゴリズム候補のすべての組み合わせについて、フローの振り分け先となるリンクを算出するシミュレーションを実行し、最も各リンクの利用帯域が分散されているハッシュキーとハッシュ計算アルゴリズムの組を選択することができる。これにより、パケット転送制御装置1は、各リンクの帯域の偏りの発生を抑制することができる。
また、パケット転送制御装置1は、このシミュレーションを、所定の時間間隔で繰り返すことにより、各フローの帯域変動に対応して最適なフローの負荷分散を実現することができる。
In this way, the packet transfer control device 1 executes a simulation to calculate the links to which flows will be allocated for all combinations of hash key candidates and hash calculation algorithm candidates, and can select the combination of hash key and hash calculation algorithm that best distributes the bandwidth usage of each link. This enables the packet transfer control device 1 to prevent imbalances in the bandwidth of each link.
Furthermore, by repeating this simulation at predetermined time intervals, the packet transfer control device 1 can achieve optimal load distribution of flows in response to fluctuations in the bandwidth of each flow.

また、パケット転送制御装置1において、所定のアルゴリズム決定ロジックは、ハッシュキー候補とハッシュ計算アルゴリズム候補の組それぞれで算出された各リンクの中で最も利用帯域が大きいリンクのうち、当該利用帯域が最小となるリンクが算出されたハッシュキー候補とハッシュ計算アルゴリズム候補の組を選択するロジックであることを特徴とする。 Furthermore, in the packet forwarding control device 1, the specified algorithm determination logic is characterized by selecting a pair of hash key candidate and hash calculation algorithm candidate that has calculated the link with the smallest bandwidth utilization from among the links calculated for each pair of hash key candidate and hash calculation algorithm candidate.

このような、アルゴリズム決定ロジックを用いることにより、パケット転送制御装置1は、各リンクの利用帯域を分散させ、帯域の偏りの発生を確実に抑制することができる。 By using such algorithm determination logic, the packet forwarding control device 1 can distribute the bandwidth usage of each link and reliably prevent bandwidth imbalances.

また、パケット転送制御装置1において、所定のアルゴリズム決定ロジックは、ハッシュキー候補とハッシュ計算アルゴリズム候補の組それぞれの各リンクの利用帯域についての分散を算出し、最も分散の値が低い、ハッシュキー候補とハッシュ計算アルゴリズム候補の組を選択するロジックであることを特徴とする。 Furthermore, in the packet forwarding control device 1, the specified algorithm determination logic is characterized by calculating the variance of the bandwidth usage of each link for each pair of hash key candidate and hash calculation algorithm candidate, and selecting the pair of hash key candidate and hash calculation algorithm candidate with the lowest variance value.

このような、アルゴリズム決定ロジックを用いることにより、パケット転送制御装置1は、各リンクの利用帯域を分散させ、帯域の偏りの発生を確実に抑制することができる。 By using such algorithm determination logic, the packet forwarding control device 1 can distribute the bandwidth usage of each link and reliably prevent bandwidth imbalances.

本発明に係る振分シミュレーション装置2は、パケットから収集されフローを特定する情報を含むパケット収集情報、および、当該フローが利用する帯域の情報、を含むフロー情報を取得するフロー情報取得部121と、パケット収集情報を用いて構成される情報であり、予め設定されるハッシュキー候補の中から1つを選択するハッシュキー選択部122と、予め設定されたハッシュ計算アルゴリズム候補の中から1つを選択するハッシュ計算アルゴリズム選択部123と、選択されたハッシュキー候補を用いて、選択されたハッシュ計算アルゴリズム候補により、フローの振り分け先となるリンクを算出するシミュレーションを、ハッシュキー候補およびハッシュ計算アルゴリズム候補のすべての組合せについて実行するシミュレーション実行部124と、シミュレーションの結果として得られた、ハッシュキー候補およびハッシュ計算アルゴリズム候補に応じた、フローの振り分け先となるリンクの情報の中から、フローの帯域の情報を用いて各リンクの利用帯域を算出し、所定のアルゴリズム決定ロジックに基づき、各リンクの利用帯域が最も分散している、ハッシュキー候補とハッシュ計算アルゴリズム候補の組を選択し、選択されたハッシュキー候補とハッシュ計算アルゴリズム候補の組の情報を出力する振分アルゴリズム決定部125と、を備えることを特徴とする。The distribution simulation device 2 according to the present invention is characterized by comprising: a flow information acquisition unit 121 that acquires packet collection information including information collected from packets that identifies the flow, and flow information including information on the bandwidth used by the flow; a hash key selection unit 122 that selects one of a set of pre-defined hash key candidates, which is information constructed using the packet collection information; a hash calculation algorithm selection unit 123 that selects one of a set of pre-defined hash calculation algorithm candidates; a simulation execution unit 124 that uses the selected hash key candidate to perform a simulation for all combinations of hash key candidate and hash calculation algorithm candidate to calculate the link to which the flow is to be distributed using the selected hash calculation algorithm candidate; and a distribution algorithm determination unit 125 that uses flow bandwidth information to calculate the bandwidth usage of each link from the information on the links to which the flow is to be distributed according to the hash key candidate and hash calculation algorithm candidate obtained as a result of the simulation, selects a combination of hash key candidate and hash calculation algorithm candidate that has the most diversified bandwidth usage for each link based on a predetermined algorithm determination logic, and outputs information on the selected combination of hash key candidate and hash calculation algorithm candidate.

このように、振分シミュレーション装置2は、例えば、障害が発生した場合に、該当パスがどのリンクを通っているかを、フロー情報等に基づき迅速に確定することができる。 In this way, the distribution simulation device 2 can quickly determine which link the path in question passes through based on flow information, etc., when a failure occurs, for example.

なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。 The present invention is not limited to the embodiments described above, and many modifications are possible within the technical spirit of the present invention by those skilled in the art.

1 パケット転送制御装置
2 振分シミュレーション装置
11 トラヒック情報取得部
12 振分シミュレーション部
13 振分アルゴリズム切替コントローラ
100 ASIC(振分処理機能)
101 ハッシュ切替機能部
121 フロー情報取得部
122 ハッシュキー選択部
123 ハッシュ計算アルゴリズム選択部
124 シミュレーション実行部
125 振分アルゴリズム決定部
200 フロー情報
300 シミュレーション結果情報
REFERENCE SIGNS LIST 1 Packet transfer control device 2 Distribution simulation device 11 Traffic information acquisition unit 12 Distribution simulation unit 13 Distribution algorithm switching controller 100 ASIC (distribution processing function)
REFERENCE SIGNS LIST 101 Hash switching function unit 121 Flow information acquisition unit 122 Hash key selection unit 123 Hash calculation algorithm selection unit 124 Simulation execution unit 125 Allocation algorithm determination unit 200 Flow information 300 Simulation result information

Claims (6)

パケットの転送処理における各リンクへの切り替えを制御するパケット転送制御装置であって、
前記パケットから収集されフローを特定する情報を含むパケット収集情報、および、当該フローが利用する帯域の情報、を含むフロー情報を取得するフロー情報取得部と、
前記パケット収集情報を用いて構成される情報であり、予め設定されるハッシュキー候補の中から1つを選択するハッシュキー選択部と、
予め設定されたハッシュ計算アルゴリズム候補の中から1つを選択するハッシュ計算アルゴリズム選択部と、
選択された前記ハッシュキー候補を用いて、選択された前記ハッシュ計算アルゴリズム候補により、前記フローの振り分け先となるリンクを算出するシミュレーションを、前記ハッシュキー候補および前記ハッシュ計算アルゴリズム候補のすべての組合せについて実行するシミュレーション実行部と、
前記シミュレーションの結果として得られた、前記ハッシュキー候補および前記ハッシュ計算アルゴリズム候補に応じた、前記フローの振り分け先となるリンクの情報の中から、前記フローの帯域の情報を用いて各リンクの利用帯域を算出し、所定のアルゴリズム決定ロジックに基づき、各リンクの利用帯域が最も分散している、前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組を選択し、選択された前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組の情報を出力する振分アルゴリズム決定部と、
選択された前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組の情報を取得して、前記パケットを各リンクへ振り分ける振分処置機能に送信することにより、前記パケットの振り分け先となるリンクの設定を切り替えさせる振分アルゴリズム切替コントローラと、
を備えることを特徴とするパケット転送制御装置。
A packet transfer control device that controls switching to each link in packet transfer processing,
a flow information acquisition unit that acquires packet collection information including information collected from the packets and identifying a flow, and flow information including information on a bandwidth used by the flow;
a hash key selection unit that selects one hash key from among preset hash key candidates, the hash key candidates being information configured using the packet collection information;
a hash calculation algorithm selection unit that selects one from preset hash calculation algorithm candidates;
a simulation execution unit that uses the selected hash key candidate to execute a simulation for calculating a link to which the flow is to be allocated using the selected hash calculation algorithm candidate, for all combinations of the hash key candidate and the hash calculation algorithm candidate;
an allocation algorithm determination unit that calculates the bandwidth usage of each link from information on links to which the flows are allocated according to the hash key candidates and the hash calculation algorithm candidates, obtained as a result of the simulation, using information on the bandwidth of the flows, selects a pair of the hash key candidate and the hash calculation algorithm candidate that has the most variance in the bandwidth usage of each link based on a predetermined algorithm determination logic, and outputs information on the selected pair of the hash key candidate and the hash calculation algorithm candidate;
an allocation algorithm switching controller that acquires information on the selected pair of hash key candidate and hash calculation algorithm candidate, and transmits the information to an allocation processing function that allocates the packets to each link, thereby switching the setting of the link to which the packets are allocated;
A packet transfer control device comprising:
前記所定のアルゴリズム決定ロジックは、前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組それぞれで算出された各リンクの中で最も利用帯域が大きいリンクのうち、当該利用帯域が最小となるリンクが算出された前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組を選択するロジックであること
を特徴とする請求項1に記載のパケット転送制御装置。
2. The packet forwarding control device according to claim 1, wherein the predetermined algorithm determination logic is logic for selecting the pair of the hash key candidate and the hash calculation algorithm candidate that has calculated the link with the smallest bandwidth utilization among the links with the largest bandwidth utilization calculated for each pair of the hash key candidate and the hash calculation algorithm candidate.
前記所定のアルゴリズム決定ロジックは、前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組それぞれの各リンクの利用帯域についての分散を算出し、最も分散の値が低い、前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組を選択するロジックであること
を特徴とする請求項1に記載のパケット転送制御装置。
2. The packet forwarding control device according to claim 1, wherein the predetermined algorithm determination logic is logic that calculates a variance of the bandwidth usage of each link for each pair of the hash key candidate and the hash calculation algorithm candidate, and selects the pair of the hash key candidate and the hash calculation algorithm candidate with the lowest variance value.
パケットの転送処理における各リンクへの切り替えを制御するパケット転送制御装置のパケット転送制御方法であって、
前記パケット転送制御装置は、
前記パケットから収集されフローを特定する情報を含むパケット収集情報、および、当該フローが利用する帯域の情報、を含むフロー情報を取得するステップと、
前記パケット収集情報を用いて構成される情報であり、予め設定されるハッシュキー候補の中から1つを選択するステップと、
予め設定されたハッシュ計算アルゴリズム候補の中から1つを選択するステップと、
選択された前記ハッシュキー候補を用いて、選択された前記ハッシュ計算アルゴリズム候補により、前記フローの振り分け先となるリンクを算出するシミュレーションを、前記ハッシュキー候補および前記ハッシュ計算アルゴリズム候補のすべての組合せについて実行するステップと、
前記シミュレーションの結果として得られた、前記ハッシュキー候補および前記ハッシュ計算アルゴリズム候補に応じた、前記フローの振り分け先となるリンクの情報の中から、前記フローの帯域の情報を用いて各リンクの利用帯域を算出し、所定のアルゴリズム決定ロジックに基づき、各リンクの利用帯域が最も分散している、前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組を選択し、選択された前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組の情報を出力するステップと、
選択された前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組の情報を取得して、前記パケットを各リンクへ振り分ける振分処置機能に送信することにより、前記パケットの振り分け先となるリンクの設定を切り替えさせるステップと、
を実行することを特徴とするパケット転送制御方法。
A packet transfer control method for a packet transfer control device that controls switching to each link in packet transfer processing, comprising:
The packet transfer control device
acquiring packet collection information including information collected from the packets and identifying a flow, and flow information including information on a bandwidth used by the flow;
selecting one of preset hash key candidates, the hash key candidates being information configured using the packet collection information;
selecting one of preset hash calculation algorithm candidates;
a step of performing a simulation for calculating a link to which the flow is to be allocated using the selected hash key candidate and the selected hash calculation algorithm candidate, for all combinations of the hash key candidate and the hash calculation algorithm candidate;
a step of calculating the bandwidth usage of each link from information on links to which the flow is allocated according to the hash key candidate and the hash calculation algorithm candidate obtained as a result of the simulation, using information on the bandwidth of the flow, selecting the pair of the hash key candidate and the hash calculation algorithm candidate that has the most variance in the bandwidth usage of each link based on a predetermined algorithm determination logic, and outputting information on the selected pair of the hash key candidate and the hash calculation algorithm candidate;
acquiring information on the selected pair of the hash key candidate and the hash calculation algorithm candidate, and transmitting the information to a distribution processing function that distributes the packet to each link, thereby switching the setting of the link to which the packet is to be distributed;
A packet transfer control method comprising:
パケットから収集されフローを特定する情報を含むパケット収集情報、および、当該フローが利用する帯域の情報、を含むフロー情報を取得するフロー情報取得部と、
前記パケット収集情報を用いて構成される情報であり、予め設定されるハッシュキー候補の中から1つを選択するハッシュキー選択部と、
予め設定されたハッシュ計算アルゴリズム候補の中から1つを選択するハッシュ計算アルゴリズム選択部と、
選択された前記ハッシュキー候補を用いて、選択された前記ハッシュ計算アルゴリズム候補により、前記フローの振り分け先となるリンクを算出するシミュレーションを、前記ハッシュキー候補および前記ハッシュ計算アルゴリズム候補のすべての組合せについて実行するシミュレーション実行部と、
前記シミュレーションの結果として得られた、前記ハッシュキー候補および前記ハッシュ計算アルゴリズム候補に応じた、前記フローの振り分け先となるリンクの情報の中から、前記フローの帯域の情報を用いて各リンクの利用帯域を算出し、所定のアルゴリズム決定ロジックに基づき、各リンクの利用帯域が最も分散している、前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組を選択し、選択された前記ハッシュキー候補と前記ハッシュ計算アルゴリズム候補の組の情報を出力する振分アルゴリズム決定部と、
を備えることを特徴とする振分シミュレーション装置。
a flow information acquisition unit that acquires packet collection information including information collected from packets and identifying a flow, and flow information including information on a bandwidth used by the flow;
a hash key selection unit that selects one hash key from among preset hash key candidates, the hash key candidates being information configured using the packet collection information;
a hash calculation algorithm selection unit that selects one from preset hash calculation algorithm candidates;
a simulation execution unit that uses the selected hash key candidate to execute a simulation for calculating a link to which the flow is to be allocated using the selected hash calculation algorithm candidate, for all combinations of the hash key candidate and the hash calculation algorithm candidate;
an allocation algorithm determination unit that calculates the bandwidth usage of each link from information on links to which the flows are allocated according to the hash key candidates and the hash calculation algorithm candidates, obtained as a result of the simulation, using information on the bandwidth of the flows, selects a pair of the hash key candidate and the hash calculation algorithm candidate that has the most variance in the bandwidth usage of each link based on a predetermined algorithm determination logic, and outputs information on the selected pair of the hash key candidate and the hash calculation algorithm candidate;
A distribution simulation device comprising:
コンピュータを、請求項1乃至請求項3の何れか1項に記載のパケット転送制御装置として機能させるためのプログラム。 A program for causing a computer to function as a packet forwarding control device described in any one of claims 1 to 3.
JP2024541373A 2022-08-19 2022-08-19 Packet transfer control device, packet transfer control method, distribution simulation device, and program Active JP7750423B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/031353 WO2024038579A1 (en) 2022-08-19 2022-08-19 Packet forwarding control device, packet forwarding control method, assigning simulation device, and program

Publications (2)

Publication Number Publication Date
JPWO2024038579A1 JPWO2024038579A1 (en) 2024-02-22
JP7750423B2 true JP7750423B2 (en) 2025-10-07

Family

ID=89941620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024541373A Active JP7750423B2 (en) 2022-08-19 2022-08-19 Packet transfer control device, packet transfer control method, distribution simulation device, and program

Country Status (2)

Country Link
JP (1) JP7750423B2 (en)
WO (1) WO2024038579A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015050527A (en) 2013-08-30 2015-03-16 日本電信電話株式会社 Packet transfer device, packet transfer system, and packet transfer method
JP2018534830A (en) 2015-09-24 2018-11-22 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited Method, apparatus and system for controlling service transmission rate

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015050527A (en) 2013-08-30 2015-03-16 日本電信電話株式会社 Packet transfer device, packet transfer system, and packet transfer method
JP2018534830A (en) 2015-09-24 2018-11-22 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited Method, apparatus and system for controlling service transmission rate

Also Published As

Publication number Publication date
WO2024038579A1 (en) 2024-02-22
JPWO2024038579A1 (en) 2024-02-22

Similar Documents

Publication Publication Date Title
Shafiee et al. A simple congestion-aware algorithm for load balancing in datacenter networks
CN107852368B (en) Highly available service chaining for network services
EP2656546B1 (en) Communications network management
CN1918861B (en) Traffic Flow Determination in Communication Networks
EP2901650B1 (en) Securing software defined networks via flow deflection
US20190190816A1 (en) Weighted-cost multi-pathing using range lookups
US12375402B2 (en) Traffic monitoring and orchestration
Kar et al. The budgeted maximum coverage problem in partially deployed software defined networks
JPWO2011049135A1 (en) Network system, control method therefor, and controller
Han et al. Software defined networking-based traffic engineering for data center networks
US20160043933A1 (en) Peer-influenced aggregate member selection
Wang et al. SDN‐based dynamic multipath forwarding for inter–data center networking
US20150003252A1 (en) Methods and apparatuses for automating return traffic redirection to a service appliance by injecting traffic interception/redirection rules into network nodes
Chahlaoui et al. Performance analysis of load balancing mechanisms in SDN networks
Dinh et al. MSDN-TE: Multipath based traffic engineering for SDN
Nepolo et al. A predictive ECMP routing protocol for fat-tree enabled data centre networks
US20220124038A1 (en) Device and method for improved load balancing with limited forwarding rules in software defined networks
US20210218683A1 (en) System and method for reactive path selection
Li et al. Efficient routing for middlebox policy enforcement in software-defined networking
JP7750423B2 (en) Packet transfer control device, packet transfer control method, distribution simulation device, and program
Medagliani et al. Global optimization for hash-based splitting
Ferraz et al. A high-performance Two-Phase Multipath scheme for data-center networks
CN116545935A (en) Method, device, equipment and storage medium for scheduling anti-affinity service flow
Zhang et al. Congestion-aware adaptive forwarding in datacenter networks
KR20160139591A (en) Method and apparatus for routing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250908

R150 Certificate of patent or registration of utility model

Ref document number: 7750423

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150