(57)【要約】【課題】分割不可の通信プロトコルを使用（ＵＤＰなど）し、目的ノードまでの経路が複数あるネットワーク構成の通信ネットワークにおける、通信経路間の送信量の偏りの改善。【解決手段】中継装置は、経路ごとにトラヒックからフローを一意に特定するための情報とプロトコル情報、送信先ポート番号、送信量とを対応付けて格納するフロー情報保持メモリ２０５と、一定時間ごとに前記メモリの情報と当該ヘッダの情報とに基づいて伝送先装置を判定するフロー振り分け部Ｂ２０３と、一定時間ごとに経路ごとの送信量を測定するフロー測定部２０４を有する。フロー測定部２０４の測定結果に基づいて、フロー振り分け部Ｂ２０３が判定した転送先に送受信部２０６がフローを分散する。【選択図】  図２
2016100849.tif 000002
【特許請求の範囲】
【請求項１】
中継装置であって、
プロトコル種別を含みフローを一意に特定する情報、前記プロトコル種別によるフローの分割可否、送信先ポート、送信量、分割可否が否のフローの場合に前記送信量がコピーされ、分割可否が可のフローで０の値の場合に前記送信量がコピーされた送信量設定、を対応付けたフロー情報を格納するフロー情報保持メモリと、
一定時間ごとに前記フロー情報保持メモリのフロー情報に基づいて転送先装置を判定する第１のフロー振り分け部と、
を備え、
前記第１のフロー振り分け部は、
前記フロー情報保持メモリを参照し、全フローの送信量の合計値を各送信先ポートの帯域幅の割合に応じて各送信先ポートに配分した送信量である第１の値と、送信先ポートごとの分割不可なフローの送信量設定の合計値である第２の値とを求め、
送信先ポートごとに、前記第１の値より前記第２の値の方が大きい送信先ポートがあるか判定し、
前記大きい送信先ポートがない場合、各送信先ポートのフローの送信量設定の合計値が前記第１の値又は前記第１の値以下になるように、分割可能なフローの送信量設定をひとつ又は複数の送信先ポートに分割して割り当て、
新たに分割したフローについて、前記割り当てた送信先ポート及び送信量設定を含むひとつ又は複数のフロー情報を、前記フロー情報保持メモリに格納して更新する
中継装置。
【請求項２】
前記第１のフロー振り分け部は、
送信先ポートごとに、前記第１の値より前記第２の値の方が大きい送信先ポートがあるか判定したとき、前記大きい送信先ポートがある場合、
全送信先ポートのフローの送信量の合計値から前記大きい送信先ポートの分割不可なフローの送信量を引いた値を、前記大きい送信先ポートを除いた各送信先ポートの帯域幅の割合に応じて配分した送信量である第３の値を求め、前記大きい送信先ポートを除いた全送信先ポートのそれぞれに対し、送信先ポートごとの分割不可なフローの送信量設定の合計値である第４の値を求め、
前記第３の値と前記第４の値を新たな前記第１の値と前記第２の値として、各送信先ポートのフローの送信量設定の合計値が前記第１の値又は前記第１の値以下になるように、分割可能なフローを他のひとつ又は複数の送信先ポートに分割して割り当てる
請求項１に記載の中継装置。
【請求項３】
受信したパケットのヘッダの情報を検出し、前記ヘッダの情報に基づいて新規に受信したフローであると判定したら前記ヘッダの情報を出力するフロー判定部と、
前記フロー判定部より入力した前記ヘッダの情報から、予め保持している転送先経路の判定ルールに基づいて新規フローの送信先ポートを計算し、前記フロー情報保持メモリに前記新規フローの送信先ポートを格納する第２のフロー振り分け部をさらに備えた請求項１に記載の中継装置。
【請求項４】
一定時間ごとに送信先ポートごとの送信量を測定し、該当フローが一定時間で送信した送信量を、前記フロー情報保持メモリの送信量に格納し、
前記フロー情報保持メモリを参照して、該当フローが、分割不可なフローである又は、分割可能なフローでかつ送信量設定が０である場合、該当フローの送信量設定に送信量の値をコピーし、
該当フローの前記フロー情報保持メモリの送信量が予め定められた期間又は回数連続して０となっている場合、該当フローを前記フロー情報保持メモリから削除する、
フロー測定部をさらに備えた請求項１に記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置に係り、特に、通信プロトコルの特性を利用してフローを分散するネットワーク中継装置に関する。また、本発明は、例えば、分割不可の通信プロトコルを使用（ＵＤＰなど）し、目的ノードまでの経路が複数あるネットワーク構成（ＬＡＧ（ｌｉｎｋ  ａｇｇｒｅｇａｔｉｏｎ）やマルチパスなど）の通信ネットワークのフローを分散するネットワーク中継装置に関するものである。
【背景技術】
【０００２】
一般に、ネットワークではノード間に複数の経路を設定でき、各経路の帯域幅に応じてトラヒックを公平に流すように負荷分散することが課題となっている。従来技術としてはＬＡＧがあり、トラヒックに付加される送信元アドレスおよび宛先アドレスの情報等によりトラヒックを一意に特定したフローを一単位として、ハッシュ関数を用いた確率による負荷分散を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２５１５３７号公報
【非特許文献】
【０００４】
【非特許文献１】ＩＥＥＥ  ８０２．３ａｄ  Ｌｉｎｋ  Ａｇｇｒｅｇａｔｉｏｎ（ＬＡＧ）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のフロー制御ではハッシュ関数などを用いた確率による各経路を流れるトラヒックの均一化を図っているが、各経路の特性の差やユーザごとの通信の量／頻度／種類が異なることにより、各経路の帯域が利用される割合に偏りが生じる場合が想定される。帯域の利用される割合の偏りは、通信リソースを十分に利用できないだけでなく、トラヒックの棄却率を高め、輻輳を生じさせる可能性がある。したがって、経路の特性やユーザの通信状況に影響されないフロー制御が課題となっている。特許文献１では一方の経路の選択に応じて対向装置からの経路を選択することにより回線の負荷状況を考慮して経路のトラヒックの負荷分散を行うことを述べているが、この発明では送信元ＩＰアドレス、宛先ＩＰアドレスに加え、ポート番号を使用したフローでの負荷分散にとどまり、さらに柔軟な負荷分散は必ずしも実現できていない。
ここで、順序制御機能を持つプロトコルのフローの場合、フロー内のパケットを各経路にばらばらに振り分けてしまうと、到着順序が逆転して再送が増えることにつながるため、受信側で受信したパケットをシーケンス番号順に並べ替える必要がある。ただし、受信側の装置で並べ替える処理を実施していると転送遅延が大きくなる場合があるため、パケットを並べ替えることは一般的でない。
【０００６】
なお、本明細書では、トラヒックは経路を流れる通信を一括して表現しており、フローはトラヒックを送信元／宛先／プロトコルなどによって特定した通信を表現するものとする。
【０００７】
本発明は、以上の点に鑑み、各経路の帯域幅に応じてフローを帯域幅に対して均等な割合になるように負荷分散することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の解決手段によると、
中継装置であって、
プロトコル種別を含みフローを一意に特定する情報、前記プロトコル種別によるフローの分割可否、送信先ポート、送信量、分割可否が否のフローの場合に前記送信量がコピーされ、分割可否が可のフローで０の値の場合に前記送信量がコピーされた送信量設定、を対応付けたフロー情報を格納するフロー情報保持メモリと、
一定時間ごとに前記フロー情報保持メモリのフロー情報に基づいて転送先装置を判定する第１のフロー振り分け部と、
を備え、
前記第１のフロー振り分け部は、
前記フロー情報保持メモリを参照し、全フローの送信量の合計値を各送信先ポートの帯域幅の割合に応じて各送信先ポートに配分した送信量である第１の値と、送信先ポートごとの分割不可なフローの送信量設定の合計値である第２の値とを求め、
送信先ポートごとに、前記第１の値より前記第２の値の方が大きい送信先ポートがあるか判定し、
前記大きい送信先ポートがない場合、各送信先ポートのフローの送信量設定の合計値が前記第１の値又は前記第１の値以下になるように、分割可能なフローの送信量設定をひとつ又は複数の送信先ポートに分割して割り当て、
新たに分割したフローについて、前記割り当てた送信先ポート及び送信量設定を含むひとつ又は複数のフロー情報を、前記フロー情報保持メモリに格納して更新する
中継装置が提供される。
【発明の効果】
【０００９】
本発明によると、各経路の帯域幅に応じてフローを帯域幅に対して均等な割合になるように負荷分散することが可能である。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態の中継装置のハード構成を示すブロック図である。
【図２】本実施の形態の中継装置のソフト構成を示すブロック図である。
【図３】本実施の形態の中継装置の送受信部が持つ送信先ポートに対して、どのようなフローを割り当てているかのイメージ図の例である。
【図４】本実施の形態の中継装置の送受信部が持つ送信先ポートに対して、どのようなフローを割り当てているかのイメージ図の例である。
【図５】本実施の形態の中継装置の送受信部が持つ送信先ポートに対して、どのようなフローを割り当てているかのイメージ図の例である。
【図６】本実施の形態の中継装置が保持するフロー情報保持メモリの例である。
【図７】本実施の形態の中継装置が保持するフロー情報保持メモリの例である。
【図８】本実施の形態の中継装置が保持するフロー情報保持メモリの例である。
【図９】本実施の形態の中継装置の送受信部の受信処理のフローチャートである。
【図１０】本実施の形態の中継装置の送受信部の送信処理のフローチャートである。
【図１１】本実施の形態の中継装置のフロー判定部の処理を示すフローチャートである。
【図１２】本実施の形態の中継装置のフロー振り分け部Ａの処理を示すフローチャートである。
【図１３】本実施の形態の中継装置のフロー振り分け部Ｂの処理を示すフローチャートである。
【図１４】本実施の形態の中継装置のフロー測定部の処理を示すフローチャートである。
【図１５】本実施の形態の中継装置が保持するフロー情報保持メモリの他の例である。
【図１６】本実施の形態の中継装置が保持するフロー情報保持メモリの他の例である。
【発明を実施するための形態】
【００１１】
Ａ．概要
前述の課題を解決するため、本実施の形態の中継装置では受信側で順序制御機能を持たない通信プロトコルのフローをより細かい単位のフローに分割し、経路の帯域に応じて振り分ける。
ここで、順序制御機能を持つプロトコルは、フローの分割によってパケットの到着順序が入れ替わる可能性があり、それに応じてパケットを適切に並べ替える必要がある。したがって、フローの分割を不可とし、順序制御機能を持つプロトコルを「分割不可なプロトコル」と記載し、そのフローを「分割不可なフロー」と記載する。同様に、順序制御機能を持たないプロトコルは分割可能であるので「分割可能なプロトコル」と記載し、そのフローを「分割可能なフロー」と記載する。
具体的な手段としては、例えば、中継装置で各経路を通るフローの送信量を定期的に測定しておき、測定した送信量を用いて、フローを各経路の送信量が帯域幅に対して均等の割合になるように分割可能なフローをさらに細かく分割し、振り分ける。この処理は一定時間経過するたびに再実施する。この処理によって、中継装置はより細やかなフローの単位で各経路に負荷分散して転送することができ、より柔軟な負荷分散が実現できる。
【００１２】
Ｂ．中継装置
図１は本実施の形態の中継装置のハード構成を示すブロック図である。中継装置１０はメインボード１０１、インターフェース１０２−ｉ  （ｉ＝１，２，３・・・ｎ）を有する。中継装置１０のメインボード１０１はスイッチ処理部１０１１、ＣＰＵ１０１２、一時メモリ１０１３を有する。
本中継装置のＯＳは装置起動時に一時メモリ１０１３にロードされる。ＣＰＵ１０１１はソフトウェアの指示に従い一時メモリ１０１３に各種情報の計算・書き込み等を行う。スイッチ処理部１０１１は一時メモリに格納されたフローの振り分け先に応じて、インターフェース１０２−ｉにフローを流す。一時メモリ１０１３はＣＰＵ１０１１から書き込まれた情報を保持する。インターフェース１０２−ｉはスイッチ処理部と連携してフローの送受信を行う。
【００１３】
図２は本実施の形態の中継装置のソフトウェア構成を示すブロック図である。中継装置１０は、フロー判定部２０１、フロー振り分け部Ａ２０２、フロー振り分け部Ｂ２０３、フロー測定部２０４、フロー情報保持メモリ２０５、送受信部２０６、受信キュー２０７を有する。
【００１４】
図６は、本実施の形態の中継装置が保持するフロー情報保持メモリの例である。
フロー情報保持メモリ２０５はフロー番号、送信元アドレス、宛先アドレス、プロトコル／ポート番号、分割可否、送信先ポート、送信量設定、送信量を保持する。分割可否の情報は、プロトコル種別により定めることができる。また送信量設定は、分別可否に応じて後述のように送信量がコピーされた値とすることができる。
【００１５】
フロー判定部２０１は送受信部２０６から受信したパケットのヘッダからフローを一意に特定するための情報を検出し、当該ヘッダの情報に基づいて新規に受信したフローであるかをフロー情報保持メモリ２０５の情報と比較し判定する。ヘッダ情報にはトラヒックからフローを一意に特定するための情報が含まれていればよい（例えば、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコルの種類、ＴＣＰのポート番号などである）。新規に受信したフローである場合は、当該ヘッダ情報をフロー振り分け部Ａ２０２に転送する。
【００１６】
フロー振り分け部Ａ２０２はフロー判定部２０１より受信した当該ヘッダの情報から新規フローを特定するための情報として送信元アドレス、宛先アドレス、プロトコルの種類、ポート番号（以後プロトコルの種類とポート番号をまとめてプロトコル／ポート番号とする）を抽出し、フロー情報保持メモリ２０５の該当欄に格納する。なお、フロー振り分け部Ａ２０２は、フロー番号を、順番又はシーケンシャル又はランダム等により適宜割当てることができ、またフロー番号を省略してもよい。その後、フロー振り分け部Ａ２０２は、予め保持している転送先経路の判定ルールに基づいて、フローの送受信に使用する送受信部の送信先ポートを計算し、フロー情報保持メモリ２０５の当該フローの送信先ポート欄に計算結果を格納する。予め保持している転送先経路の判定ルールとしては、ＬＡＧ等で使われる送信先ポート（振り分けポート）を計算するためのアルゴリズムを使用すればよく、送信元アドレス、宛先アドレス、プロトコル／ポート番号からハッシュ計算を行うなどにより送信先ポートを求めることが一般的であり、本実施の形態ではその３つの情報から送信先ポートを求めているものとする。
【００１７】
フロー振り分け部Ｂ２０３は一定時間おきにフロー情報保持メモリ２０５のフローの情報に基づいて、後述の図１３に示すフローチャートに従い、ＵＤＰ等の分割可能なプロトコルのフローの送信に使用する送信先ポートを計算し、計算結果をフロー情報保持メモリの当該フローの送信先ポートの欄にその情報を格納する。図１３のフローチャートについては、後ほど、具体的な例と共に説明する。
【００１８】
フロー測定部２０４は各フローの送信量を測定しており、一定時間おきに、各フローが一定時間で送信した送信量を、フロー情報保持メモリ２０５の当該フローの送信量の欄に格納する。
次に、フロー測定部２０４は、フロー情報保持メモリ２０５が保持する分割可否が否のフローの場合、フロー情報保持メモリ２０５の当該フローの送信量の欄の値を送信量設定の欄にコピーする。フロー測定部２０４は、フロー情報保持メモリ２０５が保持する分割可否が可のフローの場合、フロー情報保持メモリ２０５の当該フローの送信量設定の欄が０のフローのみ、当該フローの送信量の欄の値を送信量設定の欄へコピーする。フロー測定部２０４は、送信量の欄に当該フローが複数行ある場合は、その全てのフローの送信量の欄に格納する。
フロー測定部２０４は、あるフローにおいて、複数回（何回でも良い。仮に３回とする）、フロー情報保持メモリ２０５が保持する送信量が０であることが続いた場合、フロー情報保持メモリ２０５から該当するフローの行を削除する。
【００１９】
送受信部２０６は経路からフローを送受信する。パケットを受信すると、パケットのヘッダ情報をフロー判定部２０１に転送し、パケットを受信キュー２０７に格納する。また、送受信部２０６は、一定時間おきに受信キューからパケットを取り出し、取り出したパケットのヘッダ情報からフローを特定し、フロー情報保持メモリ２０５の該当フローの送信先ポートの欄を見てパケットを送信先ポートから送信をする。なお、フロー判定部２０１はフロー振り分け部Ａ２０２と連携して、フロー情報保持メモリ２０５に送信先ポートをすぐ格納しており、受信キューから取り出したパケットの転送の際には、フロー情報保持メモリ２０５に送信先ポートは記載されているものとする。
受信キュー２０７は送受信部２０６が受信したパケットを格納する。
【００２０】
以降で、例を用い説明する。
図３は送信先ポートごとにフローを割り当てたイメージ図を示している。この例ではフローは送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル／ポート番号を使用して一意に特定しているものとする。以降、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル／ポート番号を「フローを一意に特定する情報」と記載する。分割可能なフローかどうかが重要であるため、フロー名にはプロトコル名等のプロトコル種別を記載することとする。なお、フロー名は説明のため便宜上つけたものであり、フロー情報保持メモリ２０５に保持する必要はない。分割可能なプロトコルの例としてＵＤＰ、分割不可なプロトコルの例としてＴＣＰを使用して以下説明するが、分割可能なプロトコルおよび分割不可なプロトコルは、ＵＤＰおよびＴＣＰである必要はなくほかのプロトコルでもよい。
この例では、中継装置は送受信部としてポート番号１、２、３を持つものとする。図３では、ポート番号１には一つのフローが割り当てられている。ポート番号１の場合、分割不可なプロトコルのフローとして、ＴＣＰのフローを一つ割り当てており、フロー名をＴＣＰ＿１とする。フローＴＣＰ＿１の送信量は２０Ｍｂｐｓとする。
同様にポート２にはＴＣＰのフローＴＣＰ＿２、ポート３にはＵＤＰのフローＵＤＰ＿１を割り当てている。
各ポートの帯域幅は１００Ｍｂｐｓとする。
なお、各送信量、帯域幅等は一例であり、これら値に限られない。
【００２１】
図６は、図３のフローの割り当て状況における、フロー情報保持メモリ２０５の例を示している。フロー情報保持メモリ２０５はフローを一意に特定する情報を持ち、フローごとに分割可否、送信先ポート、送信量を保持する。
【００２２】
図３は、ポート番号１のポートを使用して送信するフローとして、ＴＣＰ＿１が割り当てられていることを示している。また、ＴＣＰ＿１は図６において送信元ＩＰがＡで宛先ＩＰがＡ’でプロトコルがＴＣＰであることから分割可否は否となっており、送信量は２０Ｍｂｐｓである。
送信先ポート２以降も同様である。
【００２３】
図３のフローの割り当て状況のときに、分割可能なプロトコルであるＵＤＰの新規パケットを受信した際のソフトウェアの処理を以下説明する。
【００２４】
［送受信部］
図９は図２の送受信部２０６の受信処理、図１０は図２の送受信部２０６の送信処理を示すフローチャートである。
まず、図９をもとに送受信部２０６の受信処理の動作を説明する。
送受信部２０６はパケットを受信すると処理を開始し（Ｓ９００）、フロー判定部２０１にパケットのヘッダ情報を転送（Ｓ９０１）し、受信したパケットは送受信部２０６内の受信キュー２０７の最後尾に格納し（Ｓ９０２）、処理を終了する（Ｓ９０３）。ここでキューはＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）とする。ヘッダ情報は、パケットの中のデータ部以外の情報を意味しており、ＵＤＰのパケットを例に取るとＵＤＰのデータ部分以外の情報であり、ＭＡＣヘッダ、ＩＰヘッダ、ＵＤＰヘッダを含む情報を指す。
【００２５】
つぎに、図１０をもとに送受信部２０６の送信処理の動作を説明する。
送受信部２０６の送信処理は、定期的（かなり短い時間。一般的に数マイクロ秒程度。）に動作しており（Ｓ１０００）、受信キュー２０７にパケットがあるかを確認し、パケットがない場合は次の確認タイミングまで何もしない。パケットがある場合、パケットを先頭から取り出し、取り出したパケットに対してパケット転送処理を行う。パケットがなくなるまでパケット転送処理を繰り返す。パケット転送処理を以下に示す。
【００２６】
＜パケット転送処理＞
送受信部２０６は、受信キュー２０７の先頭からパケットをひとつ取り出し、ヘッダ情報からフローの判定に必要な「フローを一意に特定する情報」を読み出す（Ｓ１００１）。
次に送受信部２０６は、読み出した「フローを一意に特定する情報」を基に、取り出したパケットのフロー（以下、本フローとする）と同じ「フローを一意に特定する情報」のフローがあるか、フロー情報保持メモリ２０５に存在しているかを確認して判定する。（Ｓ１００２）。
送受信部２０６は、同じフローが無い場合、「分割可否」を基に中継装置に予め定めた送信先ポート（例えば先頭のポート）からパケットを転送する（Ｓ１００３）。
送受信部２０６は、同じフローがある場合、本フローが分割可能（複数のポートに分けて転送可能）なフローのパケットであり、分割されているかを判定する（Ｓ１００４）。
送受信部２０６は、分割不可のフローまたは未分割の分割可能なフローである場合、同じフローの送信先ポートからパケットを転送する（Ｓ１００６）。
送受信部２０６は、分割可能なフローであり、同じフローが複数ある場合、フロー情報保持メモリ２０５の同じフローの送信量設定の割合と同じになるように送信先ポートを選択してパケットを転送し（Ｓ１００５）、処理を終了する（Ｓ１００７）。
【００２７】
［判定部］
図１１は図２のフロー判定部２０１の処理を示すフローチャートである。
フロー判定部２０１は送受信部２０６からパケットのヘッダ情報を受信すると処理を開始し（Ｓ１１００）、新規フローかどうかを判定する（Ｓ１１０１）。Ｓ１１０１の処理をＵＤＰパケットを例に説明すると、フロー判定部２０１は、ヘッダ情報に含まれるＩＰヘッダから、送信元ＩＰアドレス、宛先ＩＰアドレスを、ＵＤＰヘッダからプロトコルとポート番号を取得し、フロー情報保持メモリ２０５に送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル／ポート番号が同じ値となっているものがないか確認する。同じ値の組がある場合は、既存の同じフローがある。フロー判定部２０１は、同じ値の組がない場合は、新規フローと判定する。フロー判定部２０１は、ヘッダの情報をフロー振り分け部Ａ２０２へ転送し（Ｓ１１０２）、処理を終了する（Ｓ１１０３）。
【００２８】
図４に、ここで図３の状態から、ＵＤＰの新規フローＵＤＰ＿２が新たに加わった例を図４に示す。フロー判定部２０１は新規フローと判定し、フロー振り分け部Ａ２０２へヘッダ情報を転送する。
なお、フロー判定部２０１が新規フローと判定しなかった場合は、何もせず終了する。
【００２９】
［フロー振り分け部Ａ］
図１２は図２のフロー振り分け部Ａ２０２の処理を示すフローチャートである。
フロー振り分け部Ａ２０２はＵＤＰの新規フローのヘッダ情報を受信すると処理を開始し（Ｓ１２００）、予め設定された振り分けルールに従い、このフローの「パケットの転送に使用する送信先ポート」を計算する（Ｓ１２０１）。この計算には通常ハッシュ関数が使われることが多く、ここでは、送信元ＩＰアドレス、宛先ＩＰアドレス、プロトコル／ポート番号を用いてハッシュ計算により、中継装置の持つポート１〜３の中から１つのポートを求めるものとし、送信先ポートとして１が計算により求められたものとする。ハッシュ計算にはどのような計算方法を使用してもよい。
フロー振り分け部Ａ２０２は、計算後、フロー情報保持メモリ２０５に、新規フローとして「フローを一意に特定する情報」とＳ１２０１の算出結果を追記する（Ｓ１２０２）。フロー振り分け部Ａ２０２は、ＵＤＰ＿２を新規フローとして、フロー情報保持メモリ２０５に、送信元ＩＰがＤ、宛先ＩＰがＤ’、プロトコル／ポート番号がＵＤＰ／２００００、分割可否は否、送信先ポートは計算結果の１、送信量設定は０Ｍｂｐｓ、送信量は０  Ｍｂｐｓとして、４行目に追記する。フロー振り分け部Ａ２０２は、Ｓ１２０１の結果を追記後、処理を終了する（Ｓ１２０３）。
【００３０】
図６に追記した後の図が図７である。
中継装置が新規のフローとなるパケットを受信した場合は、同じ処理が行われ、フロー情報保持メモリ２０５の行が同様に１行増えることとなる。
【００３１】
［フロー振り分けＢ］
図１３はフロー振り分け部Ｂ２０３のフローチャートである。ここで、フロー振り分け部Ｂ２０３のフローチャート（図１３）の処理は一定時間おきに行われているものとする。図４のフローの割り当て状況のときのフロー振り分け部Ｂ２０３の動作を以降で説明する。
フロー振り分け部Ｂ２０３は処理を開始すると（Ｓ１３００）、フロー情報保持メモリ２０５から送信量が０であるフローがあるか確認する（Ｓ１３０１）。送信量が０であるフローがある場合は、フロー振り分け部Ｂ２０３は、本処理はここで終了する（Ｓ１３０７）。
フロー振り分け部Ｂ２０３は、送信量が０であるフローが無い場合は以下の処理を行う。
フロー振り分け部Ｂ２０３は、送信先ポートごとに、「全フローの送信量の合計値を送信先ポートの帯域幅の割合に応じて各送信先ポートに配分した送信量」＜１＞、「各送信先ポートごとの分割不可なフローの送信量設定の合計値」＜２＞を求める（Ｓ１３０２）。
フロー振り分け部Ｂ２０３は、送信先ポートごとに、＜１＞と＜２＞を比較する（Ｓ１３０３）。フロー振り分け部Ｂ２０３は、＜１＞より＜２＞の方が大きいポートがないと判定した場合、Ｓ１３０４に進む。一方、フロー振り分け部Ｂ２０３は、Ｓ１３０３の比較により＜１＞より＜２＞の方が大きいポートがあると判定した場合、以下の再計算処理を行う。
・「全フローの送信量の合計値から該当送信先ポートの分割不可なフローの送信量を引き、該当送信先ポートを除いた全送信先ポートのそれぞれに対し、各送信先ポートの帯域幅の割合に応じて配分した値」＜３＞を求める。
・当該送信先ポートを除いた全送信先ポートのそれぞれに対し「各送信先ポートごとの分割不可なフローの送信量設定の合計値」＜４＞を求める（Ｓ１３０４）。
・＜３＞と＜４＞を新たな＜１＞と＜２＞として、Ｓ１３０３の処理を行う。
【００３２】
次に、フロー振り分け部Ｂ２０３は、各送信先ポートのフローの送信量設定の合計値がＳ１３０２（Ｓ１３０４の処理をした場合、Ｓ１３０４）で求めた送信量＜１＞（又は、送信量＜１＞以下）になるように、分割可能なフローを他の送信先ポートに適切に分割して割り当てなおす（Ｓ１３０５）。割り当て方は複数考えられるが、どのフローをどのように分割して送信先ポートに割り当ててもよい。
送信先ポートを割り当てなおすフローは、フロー振り分け部Ｂ２０３が、フロー情報保持メモリ２０５の元の情報を削除し、新たに分割したフローをそれぞれ格納し更新する（Ｓ１３０６）。その後、処理を終了する（Ｓ１３０７）。
【００３３】
図４を例にフロー振り分け部Ｂ２０３の処理を実施した場合の処理の流れを以下に示す。なお、図７のフロー番号４の「送信量設定」及び「送信量」は、後述のフロー測定部２０４の処理によりそれぞれ１５Ｍｂｐｓ及び１５Ｍｂｐｓに設定されているとする。
図４ではＳ１３０１はＮとなる。
次にＳ１３０２では「全フローの送信量の合計値を送信先ポートの帯域幅の割合に応じて配分した送信量」＜１＞を求める。
送信先ポート１〜３は帯域幅がいずれも１００Ｍｂｐｓなので、送信先ポートの帯域幅の割合は１：１：１となる。
送信先ポートごとに、ポート番号１のフローＵＤＰ＿２（１５Ｍｂｐｓ）およびＴＣＰ＿１（２０Ｍｂｐｓ）、ポート番号２のフローＴＣＰ＿２（１０Ｍｂｐｓ）、ポート番号３のフローＵＤＰ＿１（１５Ｍｂｐｓ）の合計値６０Ｍｂｐｓを配分した値を求めると、いずれも各ポートの＜１＞は６０×１／３＝２０Ｍｂｐｓとなる。
Ｓ１３０３では求めた各ポートの＜１＞（２０Ｍｂｐｓ）と各ポートの分割不可なＴＣＰのフロー量を比較し、分割不可なフローの方が大きいポートがあるかを確認する（Ｓ１３０３）。
まず、ポート番号１の場合、Ｓ１３０２で求めた＜１＞の値は２０Ｍｂｐｓ、ＴＣＰのフロー量はＴＣＰ＿１（２０Ｍｂｐｓ）であり、分割不可なＴＣＰのフローの方が大きいポートではないのでＳ１３０３の条件でＮとなる。同様に、ポート番号２、３もＮとなる。Ｓ１３０４の処理が必要な送信先ポートがないのでＳ１３０５に進む。
Ｓ１３０５では各送信先ポートのフローの送信量設定の合計値がＳ１３０２で求めた各ポートの送信量＜１＞（又は、送信量＜１＞以下）（２０Ｍｂｐｓ）となるように、分割可能なＵＰＰのフローを他の送信先ポートに適切に分割する（例えば、送信量設定の合計値を、各ポート毎に均等又はほぼ均等な送信量設定及び／又は送信量となるように等、予め定めた適宜の手順により分割する）。
【００３４】
分割の一例として、「＜１＞の値」から「送信先ポートごとにすでに割り当てられている分割不可のフローの送信量設定」を引いた余りの送信量を分割可能なフローに割り当てる方法を以下に示す。
【００３５】
送信先ポート１の場合、分割不可のフローはＴＣＰ＿１（２０Ｍｂｐｓ）であるので、＜１＞の値との差はなく、分割可能なフローは割り当てない。
次に、送信先ポート２の場合、ＴＣＰ＿２（１０Ｍｂｐｓ）であるので、差は２０−１０＝１０Ｍｂｐｓである。したがって、分割可能なフローを１０Ｍｂｐｓ配分できる。
最後に、送信先ポート３の場合、分割不可のＴＣＰのフローはないため、分割可能なＵＤＰのフローを２０Ｍｂｐｓ分、配分できる。
分割可能なフローは送信先ポート１にＵＤＰ＿２（１５Ｍｂｐｓ）、送信先ポート３にＵＤＰ＿１（１５Ｍｂｐｓ）あり、合計は１５＋１５＝３０Ｍｂｐｓである。これを送信先ポート２に１０Ｍｂｐｓ（ＵＤＰ＿１を１０Ｍｂｐｓ分）、送信先ポート３に２０Ｍｂｐｓ（ＵＤＰ＿１を５Ｍｂｐｓ分＋ＵＤＰ＿２）として配分する。
【００３６】
次に、フロー振り分け部Ｂ２０３は、Ｓ１３０５で決めた配分をフロー情報保持メモリ２０５に書き込む（Ｓ１３０６）。
この例では、ＵＤＰ＿１のフローはいままで送信先ポートが１であったが、フロー情報保持メモリのＵＤＰ＿１のフローを、送信先ポートが２で送信量設定が１０Ｍｂｐｓのフローと、送信先ポートが３で送信量設定が５Ｍｂｐｓのフローの２つに分割する。分割の際、送信量は送信量設定の割合に合わせて変更する。（このケースでは送信量も１０Ｍｂｐｓと５Ｍｂｐｓに更新する）。
【００３７】
図５は、本実施の形態の中継装置の送受信部が持つ送信先ポートに対して、どのようなフローを割り当てているかのイメージ図の例である。また、図８は、上述のように図４から図５のように分割可能なフローを分割して配分する場合のフロー情報保持メモリ２０５の状態である。
ＵＤＰ＿１のフローは送信先ポート２と送信先ポート３に分割されるので、図７フロー番号３のフローが図８では送信先ポートごとにフローの列を分けて保持する。なお、フローの分け方は一例であり、ＵＤＰ＿２を分割して配分してもよい。
【００３８】
つぎに、他の例について、説明する。
図１５及び図１６は、本実施の形態の中継装置が保持するフロー情報保持メモリの他の例である。以下に、図１５に示したフロー情報保持メモリの内容に従い、Ｓ１３０４の処理した場合の例を以下に示す。
まず、＜１＞は２０Ｍｂｐｓである。そして、送信先ポート１の場合、分割不可のフローはＴＣＰ＿１（３０Ｍｂｐｓ）であるので、＜２＞が＜１＞の値より大きいので、フロー振り分け部Ｂ２０３は、Ｓ１３０４に移行して処理を行う。Ｓ１３０４の処理により、＜３＞は送信ポート２及び３にそれぞれ１：１で割り当てた値の１５Ｍｂｐｓ、＜４＞は送信先ポート２の分割不可なフローが１０Ｍｂｐｓ、送信先ポート３の分割不可なフローが０Ｍｂｐｓとなる。そして、新たな＜１＞が１５Ｍｂｐｓ、＜２＞が送信先ポート２は１０Ｍｂｐｓ、送信先ポート３は０Ｍｂｐｓとなる。
そして、送信先ポート２の場合、ＴＣＰ＿２（１０Ｍｂｐｓ）であるので、差は１５−１０＝５Ｍｂｐｓである。したがって、分割可能なＵＤＰのフローを５Ｍｂｐｓ配分できる。
最後に、送信先ポート３の場合、分割不可のＴＣＰのフローはないため、分割可能なＵＤＰのフローを１５Ｍｂｐｓ分、配分できる。
分割可能なフローは送信先ポート１にＵＤＰ＿２（１０Ｍｂｐｓ）、送信先ポート３にＵＤＰ＿１（１０Ｍｂｐｓ）あり、合計は１０＋１０＝２０Ｍｂｐｓである。これを送信先ポート２に５Ｍｂｐｓ（ＵＤＰ＿１を５Ｍｂｐｓ分）、送信先ポート３に１５Ｍｂｐｓ（ＵＤＰ＿１を５Ｍｂｐｓ分＋ＵＤＰ＿２を１０Ｍｂｐｓ分）として配分する。
【００３９】
［フロー測定部］
フロー測定部２０４はフロー情報保持メモリのフローすべてに対し、定期的に以下の処理を行う。図１４はフロー測定部２０４のフローチャートである。
フロー測定部２０４は、前回のフロー測定から一定時間経過すると処理を開始し（Ｓ１４００）、該当フローの送信量を測定し、該当フローが一定時間で送信した送信量を、フロー情報保持メモリ２０５の当該フローの送信量の欄に格納する（Ｓ１４０１）。フロー測定部２０４は、フロー情報保持メモリ２０５を確認した結果、該当フローが「分割不可なフローである」または、「分割可能なフローでかつ送信量設定の欄が０である」かどうか判定する（Ｓ１４０２）。フロー測定部２０４は、Ｓ１４０２に該当する場合、該当フローの送信量設定の欄に送信量の欄の値をコピーする（Ｓ１４０３）。その後、フロー測定部２０４は、該当フローのフロー情報保持メモリ２０５の送信量欄が０となっている場合、フロー測定部２０４は、複数回（予め設定した値でよい）連続して０になっているか判定する（Ｓ１４０４）。Ｓ１４０４でＹＥＳの場合、該当するフローをフロー情報保持メモリ２０５から削除し（Ｓ１４０５）、処理を終了する（Ｓ１４０６）。
【００４０】
Ｃ．付記
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれている。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００４１】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００４２】
１０  中継装置
２０１  フロー判定部
２０２  フロー振り分け部Ａ
２０３  フロー振り分け部Ｂ
２０４  フロー測定部
２０５  フロー情報保持メモリ
２０６  送受信部
２０７  受信キュー
【図１】
2016100849.tif 000003
【図２】
2016100849.tif 000004
【図３】
2016100849.tif 000005
【図４】
2016100849.tif 000006
【図５】
2016100849.tif 000007
【図６】
2016100849.tif 000008
【図７】
2016100849.tif 000009
【図８】
2016100849.tif 000010
【図９】
2016100849.tif 000011
【図１０】
2016100849.tif 000012
【図１１】
2016100849.tif 000013
【図１２】
2016100849.tif 000014
【図１３】
2016100849.tif 000015
【図１４】
2016100849.tif 000016
【図１５】
2016100849.tif 000017
【図１６】
2016100849.tif 000018