(57)【要約】【課題】複数の物理回線を有効に使用すること。【解決手段】通信装置２００において、回線ＩＦ部２１０が、フレームのサービスタイプとフロー識別テーブル２１１とを比較して、フレームのフローＩＤを特定する。また、回線ＩＦ部２１０は、フローＩＤとハッシュルールテーブルとを比較して、フレームのハッシュルールを特定する。回線ＩＦ部２１０、ハッシュルールに基づいて、フレームのハッシュ値を演算し、フローＩＤとハッシュ値との組合せと宛先管理テーブル２１５とを比較して、フレームの送信先となる物理回線ポートを特定する。【選択図】図２
2011077946.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されて、入力されたフレームのフローを識別し、前記フレームをいずれかのポートへ出力する通信装置であって、
前記入力されたフレームが属するフロー毎のフロー識別子を取得し、前記取得したフロー識別子に基づいて、フロー識別子毎のハッシュルールを取得するフロー識別部と、
前記フロー識別部で取得したハッシュルールにより前記入力されたフレームのハッシュ値を演算して取得し、前記取得したフロー識別子とハッシュ値との組み合わせに基づいて、前記入力されたフレームの出力ポートを決定する転送先制御部と、
前記転送先制御部で決定した前記出力ポートへ前記入力されたフレームを出力するフレーム出力部と、
を備えたことを特徴とする通信装置。
【請求項２】
前記フロー識別部は、前記フロー識別子に基づいて、ハッシュ値の演算の実施要否フラグを含むフロー情報を取得し、
前記転送先制御部は、前記取得したフロー情報に基づいて、前記ハッシュ値の演算が不要と判断した場合は、前記フロー識別子のハッシュ値の演算に変えて前記フロー識別子のハッシュルールを前記フロー識別子のハッシュ値とした
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記ハッシュルールは、前記フレームに含まれる情報のうち、ハッシュ演算対象となる情報を識別する情報を有し、前記転送先制御部は、演算対象となる情報を基にハッシュ値を演算することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記ハッシュルールは、前記フレームに含まれる情報のうち、ハッシュ演算対象となる情報を複数識別する情報を有し、前記転送先制御部は、演算対象となる情報を基にハッシュ値を演算することを特徴とする請求項１または２に記載の通信装置。
【請求項５】
ネットワークに接続されて、入力されたフレームのフローを識別し、前記フレームをいずれかのポートへ出力する通信装置のフレーム送信方法であって、
前記入力されたフレームが属するフロー毎のフローの識別子を取得し、前記取得したフロー識別子に基づいて、フロー識別子毎のハッシュルールを取得するフロー識別工程と、
前記フロー識別工程で取得したハッシュルールにより前記入力されたフレームのハッシュ値を演算して取得し、前記取得したフロー識別子とハッシュ値とに基づいて、前記入力されたフレームの出力ポートを決定する転送先制御工程と、
前記転送先制御工程で決定した前記出力ポートへ前記入力されたフレームを出力するフレーム出力工程と、
を備えたことを特徴とする通信装置のフレーム送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置等に関する。
【背景技術】
【０００２】
近年、複数の物理回線を１本の仮想回線として取り扱うＬＡＧ（Link  Aggregation）と呼ばれる技術が普及している。例えば、ＬＡＧでは、１本あたりの通信帯域が１００Ｍｂｐｓの物理回線をＮ本に束ねたものを、通信帯域が１００Ｍｂｐｓ×Ｎとなる仮想回線として取り扱う。
【０００３】
このＬＡＧを利用することで、柔軟かつ効率的なネットワークを構築することができる。例えば、仮想的な回線に含まれる各物理回線のうち、いずれかの物理回線に障害が発生しても、障害の発生していない残りの物理回線を利用して、通信を継続することができる。また、ＬＡＧは、単一のサービスタイプだけで無く、VLAN(Virtual  LAN)  over  Ethernet（登録商標）、IP(Internet  Protocol)  over  Ethernet（登録商標）、MPLS(Multi  Protocol  Label  Switching)  over  Ethernet（登録商標）等の異なるサービスタイプをまとめて処理することができる。すなわち、ＬＡＧは、サービスタイプの異なるフレームを、同一の仮想回線上で送受信することができる。
【０００４】
なお、ＬＡＧに含まれる各物理回線のうち、一部の物理回線ばかりにフレームが集中し、残りの物理回線が使用されていない状態となると、ＬＡＧで構築した通信帯域を有効に利用できていない。したがって、従来の技術では、フレームがなるべく一部の物理回線に集中しないように、フレームを各物理回線に振り分ける。
【０００５】
続いて、ＬＡＧを利用した従来のネットワークの構成について説明する。図１１は、従来のネットワークの構成例を示す図である。図１１に示すように、このネットワークは、ユーザ端末１０ａ〜１０ｈ、通信装置２０ａ〜２０ｆを有する。以下の説明では適宜、ユーザ端末１０ａ〜１０ｈをユーザ端末１０、通信装置２０ａ〜２０ｆを通信装置２０と表記する。
【０００６】
ユーザ端末１０は、各通信装置２０を介して、フレームを宛先に送信する装置である。また、ユーザ端末１０は、各通信装置２０を介して、他のユーザ端末から送信されたフレームを受信する。通信装置２０は、ユーザ端末２０から送信されるフレームを受信し、フレーム内に格納されたアドレス情報等を基にして、該当する宛先にフレームを転送する装置である。例えば、ユーザ端末１０が、フレームを送信した場合、通信装置２０は、フレーム内に格納されたＭＡＣアドレスまたはＩＰアドレス等を基にフレーム転送を行う。
【０００７】
続いて、図１１に示した通信装置２０の構成について説明する。図１２は、従来の通信装置２０の構成を示す図である。図１２に示すように、通信装置２０は、回線ＩＦ（Interface）部２１〜２４、ＳＷ（switch）部２５、制御部２６を有する。また、制御部２６は、制御端末２７に接続する。
【０００８】
回線ＩＦ部２１〜２４は、複数の物理的な回線ポートを接続し、外部装置とのインターフェースとして機能し、フレームの送受信処理等を行う装置である。ＳＷ部２５は、各回線ＩＦ部と接続し、各回線ＩＦ部の間のフレーム転送のスイッチ機能を提供する装置である。ＳＷ部２５および回線ＩＦ部２１〜２４は、フレーム等のデータ信号を送受信する。
【０００９】
制御部２６は、回線ＩＦ部２１〜２４およびＳＷ部２５との間で制御信号を送受信し、回線ＩＦ部２１〜２４およびＳＷ部２５の各種設定を行う装置である。また、制御部２６は、制御端末２７に接続し、回線ＩＦ部２１〜２４およびＳＷ部２５から取得した情報を制御端末２７に通知する。回線ＩＦ部２１〜２４およびＳＷ部２５から取得する情報は、例えば、障害が発生しているか否かの情報を含む。
【００１０】
図１２に示した、回線ＩＦ部２１〜２４、ＳＷ部２５および制御部２６は、一般的に、着脱可能なモジュールやカードとして提供される。なお、回線ＩＦ部２１〜２４、ＳＷ部２５および制御部２６は、通信装置２０のマザーボードと一体化していてもよい。
【００１１】
続いて、図１１に示した各通信装置２０の間でＬＡＧを構築している場合の構成について説明する。図１３は、ＬＡＧを構築する通信装置の構成例を示す図である。図１３では一例として、通信装置２０ａと通信装置２０ｂとの間でＬＡＧが構築された場合を示す。
【００１２】
図１３において、通信装置２０ａに含まれる回線ＩＦ部２１ａ〜２４ａ、ＳＷ部２５ａは、図１２で説明した回線ＩＦ部２１〜２４、ＳＷ部２５に対応する。また、通信装置２０ｂに含まれる回線ＩＦ部２１ｂ〜２４ｂ、ＳＷ部２５ｂは、図１２で説明した回線ＩＦ部２１〜２４、ＳＷ部２５に対応する。回線ＩＦ部２３ａ，２１ｂは、物理回線ポート＃０ａ〜＃７ａを有する。回線ＩＦ部２４ａ，２２ｂは、物理回線ポート＃０ｂ〜＃７ｂを有する。
【００１３】
図１３では、物理回線ポート＃０ａ〜＃７ａに接続する物理回線を束ねて１つの仮想回線を構築し、物理回線ポート＃０ｂ〜＃７ｂに接続する物理回線を束ねて１つの仮想回線を構築する。物理回線ポート＃０ａ〜＃７ａに接続する物理回線をまとめてＬＡＧ＃Ａと表記し、物理回線ポート＃０ｂ〜＃７ｂに接続する物理回線をまとめてＬＡＧ＃Ｂと表記する。また、ＬＡＧ＃ＡのパスをWorkパス、ＬＡＧ＃ＢのパスをProtectionパスと表記する。WorkパスおよびProtectionパスは、他のノードを経由する場合もある。図１３では、Protectionパスは、他のノード５を介して、通信装置２０ａと通信装置２０ｂとを接続する。
【００１４】
通信装置２０ａ，２０ｂは、Workパスを現用系として運用し、Protectionパスを予備系として運用することで冗長化を図っている。すなわち、Workパスに障害が発生していない場合には、通信装置２０ａ，２０ｂは、Workパスを利用してフレームを転送する。Workパスに障害が発生した場合には、通信装置２０ａ，２０ｂは、WorkパスからProtectionパスに切り替えてフレームの転送を継続する。
【００１５】
ここで、ユーザ端末１０ａがユーザ端末１０ｃ宛にフレームを送信した場合のフレームの流れについて説明する。まず、回線ＩＦ部２１ａは、ユーザ端末１０ａからフレームを受信すると、受信したフレームを転送する物理回線ポートを選択する。具体的に、回線ＩＦ部２１ａは、運用系のＬＡＧ＃Ａに設定されたハッシュ（Hash）ルールを基にしてハッシュ値を算出し、ハッシュ値に対応する物理回線ポートを物理回線ポート＃０ａ〜＃７ａの中から選択する。
【００１６】
回線ＩＦ部２１ａの選択した物理回線ポートが物理回線ポート＃０ａの場合には、フレームは、ＳＷ部２５ａ、回線ＩＦ部２３ａ、物理回線＃０ａを介して通信装置２０ｂに到達する。そして、フレームは、回線ＩＦ部２１ｂ、ＳＷ部２５ｂ、回線ＩＦ部２３ｂを介して、ユーザ端末１０ｃに到達する。
【００１７】
続いて、図１３に示した回線ＩＦ部２１ａの構成について説明する。図１４は、従来の回線ＩＦ部の構成を示す図である。図１４に示すように、この回線ＩＦ部２１ａは、フロー識別部３０、ＬＡＧ管理テーブル３１、ＬＡＧハッシュ演算部３２、転送先制御部３３、ＣＰＵ（Central  Processing  Unit）部３４を有する。また、ＣＰＵ部３４はＣＰＵカード３５に接続し、ＣＰＵカード３５は外部モニタ４０に接続する。
【００１８】
フロー識別部３０は、外部からフレームを取得した際に、取得したフレームを転送先制御部３３に出力する処理部である。ＬＡＧ管理テーブル３１は、ＬＡＧ毎のハッシュルールを記憶するテーブルである。図１５は、ＬＡＧ管理テーブル３１のデータ構造の一例を示す図である。図１５に示すように、ＬＡＧ管理テーブル３１は、ＬＡＧ種別とハッシュルールとを対応付けて記憶する。ここで、ＬＡＧ種別は各ＬＡＧを識別する情報である。ハッシュルールは、ハッシュ値を演算する場合に利用する情報を特定するための情報である。例えば、ＬＡＧ＃Ａを利用してフレームを転送する場合には、ハッシュ演算は、フレーム中のＭＡＣアドレスを利用して行われる。
【００１９】
ＬＡＧハッシュ演算部３２は、ハッシュの演算対象となる情報を転送先制御部３３から取得し、取得した情報を基にハッシュ演算する処理部である。ここで、ハッシュの演算対象となる情報は、例えば、ＭＡＣアドレスやＩＰアドレスとなる。ＬＡＧハッシュ演算部３２は、演算結果のハッシュ値を転送先制御部３３に出力する。演算対象となる情報が同一の場合には、ＬＡＧハッシュ演算部３２が演算するハッシュ値は同一となる。
【００２０】
転送先制御部３３は、ＬＡＧ管理テーブル３１とＬＡＧハッシュ演算部３２とを利用して、フレームを転送する物理回線ポートを判定する処理部である。
【００２１】
まず、転送先制御部３３は、フレームを転送するＬＡＧの種別とＬＡＧ管理テーブル３１とを比較して、ハッシュルールを判定する。転送先制御部３３は、判定したハッシュルールに基づいて、フレームからハッシュの演算対象となる情報をＬＡＧハッシュ演算部３２に出力し、ＬＡＧハッシュ演算部３２からハッシュ値を取得する。
【００２２】
例えば、フレームを転送するＬＡＧがＬＡＧ＃Ａの場合には、ハッシュルールは「ＭＡＣアドレス」となる。転送先制御部３３は、フレームのＭＡＣアドレスをＬＡＧハッシュ演算部３２に出力し、ハッシュ値をＬＡＧハッシュ演算部３２から取得する。
【００２３】
転送制御部３３は、ハッシュ値と物理回線ポート番号とが一対一に対応する選択テーブルを有している。転送制御部３３は、ＬＡＧハッシュ演算部３２から取得するハッシュ値と選択テーブルと比較することで、フレームを転送する物理回線ポートを判定する。
【００２４】
ＣＰＵ部３４は、ＣＰＵカード３５から取得する各種の制御信号に基づいて、フロー識別部３０、ＬＡＧ管理テーブル３１、ＬＡＧハッシュ演算部３２、転送先制御部３３の設定を行う処理部である。
【００２５】
ＣＰＵカード３５は、フロー識別部３０、ＬＡＧ管理テーブル３１、ＬＡＧハッシュ演算部３２、転送先制御部３３の設定を行うために、各種の制御信号をＣＰＵ部３４に出力する装置である。また、ＣＰＵカード３５は、設定結果などの情報を外部モニタ４０に出力する。
【先行技術文献】
【特許文献】
【００２６】
【特許文献１】特開２００７−１８０８９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２７】
しかしながら、上述した従来の技術は、フレームの送信先となる物理回線ポートが一部の物理回線ポートに集中する場合があり、複数の物理回線を有していても各物理回線を有効に使用できないという問題があった。
【００２８】
フレームの送信先となる物理回線ポートが一部の物理回線ポートに集中する問題は、例えば、ハッシュ演算対象となる情報が複数のフレームで同じとなる場合に発生する。ハッシュの演算対象となる情報が同じ場合には、演算結果のハッシュ値も同じとなり、ハッシュ値と物理回線ポートとが一対一に対応しているためである。
【００２９】
例えば、サービスタイプの異なる複数のフレームを転送する際、宛先が同一の場合には、各フレームのＭＡＣアドレス・ＩＰアドレスはすべて同じとなる。そして、ＬＡＧのハッシュルールが、ＭＡＣアドレスやＩＰアドレスに設定されている場合には、各フレームのハッシュ値が全て同じとなり、特定の物理回線にフレームが集中してしまう。
【００３０】
開示の技術は、上記に鑑みてなされたものであって、複数の物理回線を有効に使用することができる通信装置およびフレーム送信方法を提供することを目的とする。
【課題を解決するための手段】
【００３１】
本願の開示する通信装置は、入力されたフレームが属するフロー毎のフロー識別子を取得し、取得したフロー識別子に基づいて、フロー識別子毎のハッシュルールを取得する。続いて、開示の通信装置は、ハッシュルールにより入力されたフレームのハッシュ値をハッシュ演算して取得し、取得したフロー識別子とハッシュ値との組み合わせに基づいて、入力されたフレームの出力ポートを決定する。そして、開示の通信装置は、決定した出力ポートへ入力されたフレームを出力するフレーム出力することを要件とする。
【発明の効果】
【００３２】
本願の開示する通信装置の一つの態様によれば、複数の物理回線を有効に使用することができるという効果を奏する。
【図面の簡単な説明】
【００３３】
【図１】図１は、本実施例１にかかる通信装置の構成を示す図である。
【図２】図２は、実施例２にかかる通信装置の構成を示す図である。
【図３】図３は、本実施例２にかかるフロー識別テーブルのデータ構造の一例を示す図である。
【図４】図４は、本実施例２にかかるハッシュルールテーブルのデータ構造の一例を示す図である。
【図５】図５は、本実施例２にかかる宛先管理テーブルのデータ構造の一例を示す図である。
【図６】図６は、回線ＩＦ部の処理手順を示すフローチャートである。
【図７】図７は、本実施例３にかかる通信装置の構成を示す図である。
【図８】図８は、本実施例３にかかるフロー識別テーブルのデータ構造の一例を示す図である。
【図９】図９は、本実施例３にかかるハッシュルールテーブルのデータ構造の一例を示す図である。
【図１０】図１０は、本実施例３にかかる宛先管理テーブルのデータ構造の一例を示す図である。
【図１１】図１１は、従来のネットワークの構成例を示す図である。
【図１２】図１２は、従来の通信装置の構成を示す図である。
【図１３】図１３は、ＬＡＧを構築する通信装置の構成例を示す図である。
【図１４】図１４は、従来の回線ＩＦ部の構成を示す図である。
【図１５】図１５は、ＬＡＧ管理テーブルのデータ構造の一例を示す図である。
【発明を実施するための形態】
【００３４】
以下に、本願の開示する通信装置およびフレーム送信方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００３５】
本実施例１にかかる通信装置の構成について説明する。図１は、本実施例１にかかる通信装置の構成を示す図である。図１に示すように、通信装置１００は、フロー識別部１１０、転送先制御部１２０、フレーム出力部１３０を有する。
【００３６】
フロー識別部１１０は、入力されたフレームが属するフロー毎のフロー識別子を取得し、取得したフロー識別子に基づいて、フロー識別毎のハッシュルールを取得する処理部である。
【００３７】
転送先制御部１２０は、フロー識別部１１０で取得したハッシュルールにより入力されたフレームのハッシュ値を演算して取得し、取得したフロー識別子とハッシュ値との組み合わせに基づいて、入力されたフレームの出力ポートを決定する処理部である。
【００３８】
フレーム出力部１３０は、転送先制御手段で決定した出力ポートへ入力されたフレームを出力する処理部である。
【００３９】
上述した通信装置１００によれば、転送先制御部１２０がフロー識別子とハッシュ値との組合せに基づいて、フレームの出力ポートを決定するので、複数の物理回線を有効に使用することができる。
【実施例２】
【００４０】
次に、本実施例２にかかる通信装置について説明する。図２は、実施例２にかかる通信装置の構成を示す図である。図２に示すように、通信装置２００は、回線ＩＦ部２１０〜２３０、ＳＷ部２４０、ＣＰＵカード２５０を有する。また、ＣＰＵカード２５０は、外部モニタ２６０に接続する。
【００４１】
回線ＩＦ部２１０〜２３０は、複数の物理的な回線ポートを有し、外部装置とのインターフェース機能、フレームの送受信処理等を行う装置である。ここでは一例として、回線ＩＦ部２１０は、複数の物理回線ポートを有し、外部のユーザ端末に接続する。回線ＩＦ部２２０，２３０は、複数の物理回線ポートを有し、他の通信端末に接続する。
【００４２】
回線ＩＦ部２２０は、物理回線ポート＃０ａ〜＃７ａを有する。そして、通信装置２００は、物理回線ポート＃０ａ〜＃７ａに接続する物理回線を束ねて１つの仮想回線を構築する。物理回線ポート＃０ａ〜＃７ａに接続する物理回線をまとめてＬＡＧ＃Ａと表記する。
【００４３】
回線ＩＦ部２３０は、物理回線ポート番号＃０ｂ〜＃７ｂを有する。そして、通信装置２００は、物理回線ポート＃０ｂ〜＃７ｂに接続する物理回線を束ねて１つの仮想回線を構築する。物理回線ポート＃０ｂ〜＃７ｂに接続する物理回線をまとめてＬＡＧ＃Ｂと表記する。
【００４４】
ＬＡＧ＃ＡのパスをWorkパスとし、ＬＡＧ＃ＢのパスをProtectionパスとする。通信装置２００は、Workパスを現用系として運用し、Protectionパスを予備系として運用することで冗長化を図っている。すなわち、Workパスに障害が発生していない場合には、通信装置２００は、Workパスを利用してフレームを転送する。Workパスに障害が発生した場合には、通信装置２００は、WorkパスからProtectionパスに切り替えてフレームの転送を継続する。
【００４５】
ＳＷ部２４０は、回線ＩＦ部２１０〜２３０と接続し、各回線ＩＦ部の間のフレーム転送のスイッチ機能を提供する装置である。ＳＷ部２４０および回線ＩＦ部２１０〜２３０は、フレームなどのデータ信号を送受信する。
【００４６】
ＣＰＵカード２５０は、回線ＩＦ部２１０の各種の設定を行う装置である。ＣＰＵカード２５０は、設定結果などの情報を外部モニタ２６０に出力する。外部モニタ２６０は、ＣＰＵカード２５０から取得する設定結果などの情報を表示する装置である。
【００４７】
図２に示した回線ＩＦ部２１０〜２３０、ＳＷ部２４０、ＣＰＵカード２５０は、一般的に、着脱可能なモジュールやカードとして提供される。なお、回線ＩＦ部２１０〜２３０、ＳＷ部２４０、ＣＰＵカード２５０は、マザーボードと一体化していてもよい。
【００４８】
続いて、回線ＩＦ部２１０の構成について説明する。図２に示すように、この回線ＩＦ部２１０は、フロー識別テーブル２１１、ハッシュルールテーブル２１２、フロー識別部２１３、ＬＡＧハッシュ演算部２１４、宛先管理テーブル２１５、転送先制御部２１６を有する。
【００４９】
フロー識別テーブル２１１は、フレームのサービスタイプとフローＩＤ（Identification）とフロー情報とを対応付けて記憶するテーブルである。ここで、サービスタイプは、通信サービスの種別である。具体的に、サービスタイプは、VLAN(Virtual  LAN)  over  Ethernet（登録商標）、IP(Internet  Protocol)  over  Ethernet（登録商標）、MPLS(Multi  Protocol  Label  Switching)  over  Ethernet（登録商標）等を含む。通信装置２００に入力するフレームは、サービスタイプを識別する情報を有しているものとする。
【００５０】
フローＩＤは、管理者がサービスタイプ毎に設定する識別子である。フロー情報は、ハッシュの演算を実行するか否かの情報等を有する。
【００５１】
ハッシュルールテーブル２１２は、フローＩＤとハッシュルールとを対応付けて記憶するテーブルである。ハッシュルールは、ハッシュ演算に利用する情報を特定するものである。例えば、ハッシュルールには、ＭＡＣアドレス、ＩＰアドレス等が含まれる。ハッシュルールがＭＡＣアドレスの場合には、フレームのＭＡＣアドレスを利用してハッシュ演算を行いハッシュ値を取得する。
【００５２】
フロー識別部２１３は、フレームを取得した際に、フレームに対応するフローＩＤ、フロー情報およびハッシュルールを判定し、判定結果およびフレームを転送先制御部２１６に出力する処理部である。具体的に、フロー識別部２１３は、フレームのサービスタイプとフロー識別テーブル２１１とを比較して、フレームに対応するフローＩＤおよびフロー情報を判定する。そして、フロー識別部２１３は、フローＩＤとハッシュルールテーブル２１２とを比較してハッシュルールを判定する。
【００５３】
ＬＡＧハッシュ演算部２１４は、ハッシュ演算対象となる情報を転送先制御部２１６から取得し、取得した情報を基にハッシュ値を算出する処理部である。ＬＡＧハッシュ値演算部２１４は、演算結果のハッシュ値を転送先制御部２１６に出力する。
【００５４】
ＬＡＧハッシュ演算部２１４が、ハッシュ値を演算する方法は、従来の如何なる技術を用いても構わない。例えば、ＬＡＧハッシュ演算部２１４は、所定のハッシュ関数に、演算対象となる情報を代入することで、ハッシュ値を得る。
【００５５】
宛先管理テーブル２１５は、フローＩＤおよびハッシュ値の組合せと物理回線ポートとを対応付けて記憶するテーブルである。
【００５６】
転送先制御部２１６は、フロー識別部２１３から判定結果およびフレームを取得した場合に、フレームを転送する物理回線ポートを判定する処理部である。そして、転送先制御部２１６は、判定した物理回線ポートにフレームを出力する。具体的に、転送先制御部２１６は、ハッシュルールにより特定されるフレーム内の情報を、ＬＡＧハッシュ演算部２１４に出力することでハッシュ値を取得する。そして、ハッシュ値およびフローＩＤと、宛先管理テーブル２１５とを比較することで、物理回線ポートを判定する。
【００５７】
次に、図２に示したフロー識別テーブル２１１のデータ構造について説明する。図３は、本実施例２にかかるフロー識別テーブル２１１のデータ構造の一例を示す図である。図３に示すように、このフロー識別テーブル２１１は、サービスタイプと、フローＩＤと、フロー情報とを対応付けて記憶する。なお、フロー情報は、ハッシュ実施判定フラグとオフセット情報とを含む。
【００５８】
ハッシュ実施判定フラグは、ハッシュ演算を実行するか否かを識別する情報である。具体的に、ハッシュ実施判定フラグが「ＯＮ」となっている場合には、フレームのハッシュ値を演算する。ハッシュ実施判定フラグが「ＯＦＦ」となっている場合には、フレームのハッシュ値を演算しないで、予め設定された値をハッシュ値として利用する。なお、オフセット情報は、ＬＡＧハッシュ演算部２１４がハッシュ値を算出する場合に利用する情報である。例えば、オフセット情報は、演算対象となる情報が格納されたフレーム内の位置を示す。
【００５９】
図３において、フレームのサービスタイプが「サービスタイプ１」の場合には、フレームのフローＩＤ「フローＩＤ＃ＡＡ」、ハッシュ実施判定フラグ「ＯＮ」、オフセット情報「オフセット＃ＡＡ」となる。フレームのサービスタイプが「未登録のサービスタイプ」の場合には、フレームのフローＩＤ「フローＩＤ＃ＸＸ」、ハッシュ実施判定フラグ「ＯＮ」、オフセット情報「０」となる。
【００６０】
次に、図２に示したハッシュルールテーブル２１２のデータ構造について説明する。図４は、本実施例２にかかるハッシュルールテーブル２１２のデータ構造の一例を示す図である。図４に示すように、このハッシュルールテーブル２１２は、フローＩＤとハッシュルールとを対応付けて記憶する。
【００６１】
図４において、フローＩＤが「フローＩＤ＃ＡＡ」の場合には、ハッシュルールは「ＭＰＬＳラベル」となる。フローＩＤが「フローＩＤ＃ＢＢ」の場合には、ハッシュルールは「ＶＩＤ（VLAN  Identifier）」となる。ハッシュルールが位置情報の場合には、指定された位置情報の情報からフレーム内から抜き出しハッシュ演算を行う。
【００６２】
フローＩＤが「フローＩＤ＃ＣＣ」の場合には、ハッシュルールは「ＩＰアドレスとＭＡＣアドレス」となる。フローＩＤが「フローＩＤ＃ＤＤ」の場合には、ハッシュルールは「所定のハッシュ値」となる。ハッシュルールが所定のハッシュ値の場合には、ハッシュ演算が行われず、所定のハッシュ値を用いる。フローＩＤが「フローＩＤ＃ＸＸ」の場合には、ハッシュルールは「ＭＡＣアドレス」となる。
【００６３】
次に、図２に示した宛先管理テーブル２１５のデータ構造について説明する。図５は、本実施例２にかかる宛先管理テーブル２１５のデータ構造の一例を示す図である。図５に示すように、この宛先管理テーブル２１５は、フローＩＤ／ハッシュ値と、物理回線ポートとを対応付けて記憶する。フローＩＤ／ハッシュ値は、フローＩＤとハッシュ値との組合せである。
【００６４】
例えば、フローＩＤとハッシュ値との組合せが「フローＩＤ＃ＡＡ」と「ハッシュ値＃ＡＡ」の場合には物理回線ポートが「物理回線ポート＃０」となる。ここで、Workパスにてフレームを転送する場合には、回線ＩＦ部２２０の物理回線ポート＃０ａにフレームが出力される。Protectionパスにてフレームを転送する場合には、回線ＩＦ部２３０の物理回線ポート＃０ｂにフレームが出力される。
【００６５】
次に、図２に示した回線ＩＦ部２１０の処理手順について説明する。図６は、回線ＩＦ部の処理手順を示すフローチャートである。図６に示すように、回線ＩＦ部２１０が、フレームを取得し（ステップＳ１０１）、フレームのサービスタイプとフロー識別テーブル２１１とを基にして、フローＩＤおよびフロー情報を取得する（ステップＳ１０２）。
【００６６】
そして、回線ＩＦ部２１０は、フローＩＤとハッシュルールテーブル２１２とを基にして、ハッシュルールを取得する（ステップＳ１０３）。回線ＩＦ部２１０は、フロー情報に含まれるハッシュ実施判定フラグがＯＮであるか否かを判定する（ステップＳ１０４）。
【００６７】
回線ＩＦ部２１０は、ハッシュ実施判定フラグがＯＦＦの場合には（ステップＳ１０５，Ｎｏ）、ステップＳ１０７に移行する。一方、回線ＩＦ部２１０は、ハッシュ実施判定フラグがＯＮの場合には（ステップＳ１０５，Ｙｅｓ）、ＬＡＧハッシュ演算部２１４にてハッシュ演算を実施し、ハッシュ値を取得する（ステップＳ１０６）。
【００６８】
回線ＩＦ部２１０は、宛先管理テーブル２１５、フローＩＤ、ハッシュ値を基にして、物理回線ポートを判定し（ステップＳ１０７）、判定結果に対応する物理回線ポートにフレームを送信する（ステップＳ１０８）。
【００６９】
上述したように、本実施例２にかかる通信装置２００は、ハッシュ値とサービスタイプ毎にユニークなフローＩＤとの組合せに基づいて、フレームを転送する物理回線ポートを選択する。したがって、宛先が同一のフレームが存在し、各フレームのハッシュ値が同一となる場合でも、各フレームのフローＩＤは異なるので、各フレームを振り分けることができる。
【実施例３】
【００７０】
次に、本実施例３にかかる通信装置３００について説明する。図７は、本実施例３にかかる通信装置３００の構成を示す図である。図７に示すように、通信装置３００は、回線ＩＦ部３１０〜３３０、ＳＷ部３４０、ＣＰＵカード３５０を有する。また、ＣＰＵカード３５０は、外部モニタ３６０に接続する。
【００７１】
ここで、ＳＷ部３４０、ＣＰＵカード３５０、外部モニタ３６０に関する説明は、実施例２で説明したＳＷ部２４０、ＣＰＵカード２５０、外部モニタ２６０に関する説明と同様である。
【００７２】
回線ＩＦ部３１０〜３３０は、複数の物理的な回線ポートを有し、外部装置とのインターフェース機能、フレームの送受信処理を行う装置である。ここでは一例として、回線ＩＦ部３１０は、複数の物理回線ポートを有し、外部のユーザ端末に接続する。回線ＩＦ部３２０，３３０は、複数の物理回線ポートを有し、他の通信端末に接続する。
【００７３】
回線ＩＦ部３２０は、物理回線ポート＃０ａ〜＃７ａを有する。そして、通信装置３００は、物理回線ポート＃０ａ〜＃７ａに接続する物理回線を束ねて１つの仮想回線を構築する。物理回線ポート＃０ａ〜＃７ａに接続する物理回線をまとめてＬＡＧ＃Ａと表記する。
【００７４】
回線ＩＦ部３３０は、物理回線ポート番号＃０ｂ〜＃７ｂを有する。そして、通信装置３００は、物理回線ポート＃０ｂ〜＃７ｂに接続する物理回線を束ねて１つの仮想回線を構築する。物理回線ポート＃０ｂ〜＃７ｂに接続する物理回線をまとめてＬＡＧ＃Ｂと表記する。なお、実施例２と同様にして、ＬＡＧ＃ＡのパスをWorkパスとし、ＬＡＧ＃ＢのパスをProtectionパスとする。
【００７５】
図７に示した回線ＩＦ部３１０〜３３０、ＳＷ部３４０、ＣＰＵカード３５０は、一般的に、着脱可能なモジュールやカードとして提供される。なお、回線ＩＦ部３１０〜３３０、ＳＷ部３４０、ＣＰＵカード３５０は、マザーボードと一体化していてもよい。
【００７６】
続いて、回線ＩＦ部３１０の構成について説明する。図７に示すように、この回線ＩＦ部３１０は、フロー識別テーブル３１１、ハッシュルールテーブル３１２、フロー識別部３１３、ＬＡＧハッシュ演算部３１４、宛先管理テーブル３１５、転送先制御部３１６を有する。
【００７７】
フロー識別テーブル３１１は、フレームのサービスタイプとフローＩＤとフロー情報とを対応付けて記憶するテーブルである。ハッシュルールテーブル３１２は、フローＩＤとハッシュルールとを対応付けて記憶するテーブルである。
【００７８】
フロー識別部３１３は、フレームを取得した際に、フレームに対応するフローＩＤ、フロー情報およびハッシュルールを判定し、判定結果およびフレームを転送先制御部３１６に出力する処理部である。具体的に、フロー識別部３１３は、フレームのサービスタイプとフロー識別テーブル３１１とを比較して、フレームに対応するフローＩＤおよびフロー情報を判定する。そして、フロー識別部３１３は、フローＩＤとハッシュルールテーブル３１２とを比較してハッシュルールを判定する。
【００７９】
ＬＡＧハッシュ演算部３１４は、ハッシュ演算対象となる情報を転送先制御部３１６から取得し、取得した情報を基にハッシュ値を演算する処理部である。ＬＧＡハッシュ値演算部３１４は、演算結果のハッシュ値を転送先制御部３１６に出力する。
【００８０】
ＬＡＧハッシュ演算部３１４が、ハッシュ値を演算する方法は、従来の如何なる技術を用いても構わない。例えば、ＬＡＧハッシュ演算部３１４は、所定のハッシュ関数に、演算対象となる情報を代入することで、ハッシュ値を得る。
【００８１】
宛先管理テーブル３１５は、フローＩＤおよびハッシュ値の組合せと物理回線ポートとを対応付けて記憶するテーブルである。
【００８２】
転送先制御部３１６は、フロー識別部３１３から判定結果およびフレームを取得した場合に、フレームを転送する物理回線ポートを判定する処理部である。そして、転送先制御部３１６は、判定した物理回線ポートにフレームを出力する。具体的に、転送先制御部３１６は、ハッシュルールにより特定されるフレーム内の情報を、ＬＡＧハッシュ演算部３１４に出力することでハッシュ値を取得する。そして、ハッシュ値およびフローＩＤと、宛先管理テーブル３１５とを比較することで、物理回線ポートを判定する。
【００８３】
次に、図７に示したフロー識別テーブル３１１のデータ構造について説明する。図８は、本実施例３にかかるフロー識別テーブル３１１のデータ構造の一例を示す図である。図８に示すように、このフロー識別テーブル３１１は、サービスタイプと、フローＩＤと、フロー情報とを対応付けて記憶する。フロー情報は、ハッシュ実施判定フラグ、ＭＰＬＳオフセット、ＩＰオフセット、ＶＬＡＮオフセット、付加情報を有する。
【００８４】
サービスタイプは、サービスタイプ１〜４、未登録のサービスタイプを有する。例えば、サービスタイプ１はMPLS  over  Ethernet（登録商標）に対応し、サービスタイプ２は、VLAN  over  Ethernet（登録商標）に対応する。サービスタイプ３はIP  over  Ethernet（登録商標）に対応し、サービスタイプ４はNative  Ethernet（登録商標）に対応する。また、図８に示すように、各サービスタイプ１〜４は、それぞれ、複数のサービスタイプに分かれる。
【００８５】
ハッシュ実施判定フラグは、ハッシュ演算を実行するか否かを識別する情報である。具体的に、ハッシュ実施判定フラグが「１」の場合には、フレームのハッシュ値を演算する。ハッシュ実施判定フラグが「０」となっている場合には、フレームのハッシュ値を演算しないで、所定のハッシュ値を利用する。
【００８６】
ＭＰＬＳオフセット、ＩＰオフセット、ＶＬＡＮオフセット、付加情報を含むオフセット情報は、ＬＡＧハッシュ演算部３１４がハッシュ値を算出する場合に利用する情報である。例えば、オフセット情報は、演算対象となる情報が格納されたフレーム内の位置を示す。
【００８７】
次に、図７に示したハッシュルールテーブル３１２のデータ構造について説明する。図９は、本実施例３にかかるハッシュルールテーブル３１２のデータ構造の一例を示す図である。図９に示すように、このハッシュルールテーブル３１２は、フローＩＤとハッシュルールとを対応付けて記憶する。例えば、フローＩＤが「０」の場合には、ハッシュルールは「ＭＡＣアドレス」となる。
【００８８】
次に、図７に示した宛先管理テーブル３１５のデータ構造について説明する。図１０は、本実施例３にかかる宛先管理テーブル３１５のデータ構造の一例を示す図である。図１０に示すように、フローＩＤと、ハッシュ値と、物理回線ポート番号とを対応付けて記憶する。物理回線ポート番号１〜７は、物理回線ポート＃０〜＃７にそれぞれ対応する。
【００８９】
例えば、フローＩＤ「０」、ハッシュ値「０」の場合には物理回線ポートが「０」となるので、フレームは、物理回線ポート＃０に出力される。
【００９０】
次に、回線ＩＦ部３１０がフレームを取得した場合の処理を具体的に説明する。ここではまず、ＭＡＣアドレスが同一の３つのフレームを取得した場合を例にして説明する。３つのフレームをそれぞれフレームＡ，Ｂ，Ｃとする。
【００９１】
図８に示すように、ここでは一例として、フレームＡのサービスタイプをサービスタイプ２（TPID:0x8100、VID:0x001）とする。フレームＢのサービスタイプをサービスタイプ３（Type:0x0800、IP  DA:102030405060）とする。フレームＣのサービスタイプをサービスタイプ１（Type:0x8847、label:３段）とする。
【００９２】
フロー識別部３１３は、フレームＡ，Ｂ，Ｃとフロー識別テーブル３１１とを比較して、各フレームに対応するフローＩＤとフロー情報とを判定する。フレームＡのフローＩＤは「１０」、ハッシュ実施判定フラグ「１」、ＶＬＡＮオフセット「１２」、その他のオフセットは「０」となる。フレームＢのフローＩＤは「２０」、ハッシュ実施判定フラグ「１」、ＩＰオフセット「２６」、その他のオフセットは「０」となる。フレームＣのフローＩＤは「１」、ハッシュ実施判定フラグ「１」、ＭＰＬＳオフセット「１２」、付加情報「３」、その他のオフセットは「０」となる。
【００９３】
フロー識別部３１３は、各フレームのフローＩＤとフロー情報とを判定した後に、フローＩＤとハッシュルールテーブル３１２とを比較して、各フレームのハッシュルールを判定する。フレームＡのフローＩＤは「１０」であるため、図９に示すように、フレームＡのハッシュルールは「ＶＩＤ」となる。フレームＢのハッシュルールのフローＩＤは「２０」であるため、フレームＢのハッシュルールは「ＭＡＣアドレスとＩＰアドレス」となる。フレームＣのフローＩＤは「１」であるため、フレームＣのハッシュルールは「ＭＰＬＳラベル」となる。
【００９４】
フロー識別部３１３は、判定結果となる各フレームＡ〜ＣのフローＩＤ、フロー情報、ハッシュルールを、各フレームＡ〜Ｃと対応付けて転送先制御部３１６に出力する。
【００９５】
転送先制御部３１６は、フレームＡ〜Ｃのハッシュ実施判定フラグを参照し、フレームＡ〜Ｃのハッシュ値を演算するか否かを判定する。ここでは、各フレームのハッシュ実施判定フラグが全て「１」であるため、転送先制御部３１６は、各フレームのハッシュ値を演算する。
【００９６】
転送先制御部３１６は、ＬＡＧハッシュ演算部３１４を利用してハッシュ値を演算する。具体的に、転送先制御部３１６は、フレームのハッシュルールに基づいて、ハッシュ演算対象となる情報をフレームから取得し、取得した情報をＬＡＧハッシュ演算部３１４に出力することで、フレームのハッシュ値を得る。以下の説明において、ハッシュ演算対象となる情報を、ハッシュ演算キーと表記する。本実施例３では、ハッシュ演算キーのデータサイズを１２８ビットに統一するものとする。
【００９７】
フレームＡのハッシュルールは「ＶＩＤ」であり、ＶＬＡＮオフセットは「１２」である。転送先制御部３１６は、ＶＬＡＮオフセットに基づいて、ＶＩＤを格納するフレームＡ内の位置を特定し、特定した位置の情報を取り出す。そして、転送先制御部３１６は、ハッシュ演算キーのＭＳＢ（Most  Significant  Bit）側から、ＶＩＤの情報を格納し、０のビット列を残りに付加することで、１２８ビットのハッシュ演算キーを生成する。
【００９８】
フレームＢのハッシュルールは「ＭＡＣアドレスとＩＰアドレス」であり、ＩＰオフセットは「２６」である。転送先制御部３１６は、フレームＢのＭＡＣアドレスに格納された情報を特定し、特定した情報を取り出す。ＭＡＣアドレスは、フレームの先頭に格納されているものとする。また、転送先制御部３１６はＩＰオフセットに基づいて、ＩＰアドレスを格納するフレームＢの位置を特定し、特定した位置の情報を取り出す。
【００９９】
ただし、ＭＡＣアドレスは９６ビット、ＩＰアドレスは６４ビットであるため、ＭＡＣアドレスとＩＰアドレスに対応する情報をそのまま加工すると、１６０ビットとなり、ハッシュ演算キーのデータサイズを超えてしまう。このため、例えば、転送先制御部３１６は、ＭＡＣアドレスとして、ＭＡＣアドレス中のＤＡ（Destination  address）・ＳＡ（Source  address）の各ＬＳＢ（Least  Significant  Bit）から３２ビットずつ取り出してもよい。ＤＡ・ＳＡから３２ビットずつ取り出すことで、ＭＡＣアドレスの情報を６４ビットにでき、ＭＡＣアドレスとＩＰアドレスに対応する情報を合計１２８ビットに抑えることができる。なお、結果的に、ＭＡＣアドレスとＩＰアドレスに対応する情報を合計１２８ビットに抑えることができるのなら、転送先制御部３１６は、ＭＡＣアドレスとＩＰアドレスをどのように加工してもよい。
【０１００】
フレームＣのハッシュルールは「ＭＰＬＳラベル」であり、ＭＰＬＳオフセットは「１１２」、付加情報は「３」である。転送先制御部３１６は、ＭＰＬＳオフセットに基づいて、フレームＣのＭＰＬＳラベルに格納された情報を特定する。また、付加情報が「３」であるため、転送先制御部３１６は、ＭＰＬＳラベルのうち、３段分のＭＰＬＳラベルを取り出す。転送先制御部３１６は、取り出した情報に０のビット列を付加することで、１２８ビットのハッシュ演算キーを生成する。
【０１０１】
転送先制御部３１６は、フレームＡ〜Ｃのハッシュ演算キーを取得した後に、取得したハッシュ演算キーをＬＡＧハッシュ演算部３１４に出力する。そして、転送先制御部３１６は、ＬＡＧハッシュ演算部３１４からフレームＡ〜Ｃのハッシュ値を取得する。例えば、フレームＡのハッシュ値を「０」、フレームＢのハッシュ値を「１」、フレームＣのハッシュ値を「７」とする。
【０１０２】
転送先制御部３１６は、フレームのフローＩＤおよびハッシュ値の組合せと、宛先管理テーブル３１５とを比較することで、フレームＡ〜Ｃの物理回線ポートを判定する。フレームＡのフローＩＤは「１０」、ハッシュ値は「０」であるため、図１０に示すように、物理回線ポート番号は「２」となる。転送先制御部３１６は、物理回線ポート番号「２」に対応する物理回線ポートにフレームＡを送信する。
【０１０３】
フレームＢのフローＩＤは「２０」、ハッシュ値は「１」であるため、物理回線ポート番号は「３」となる。転送先制御部３１６は、物理回線ポート番号「３」に対応する物理回線ポートにフレームＢを送信する。フレームＢのフローＩＤは「１」、ハッシュ値は「７」であるため、物理回線ポート番号は「７」となる。転送先制御部３１６は、物理回線ポート番号「７」に対応する物理回線ポートにフレームＣを送信する。
【０１０４】
次に、ハッシュ実施判定フラグが「０」となる場合の回線ＩＦ部３１０の処理について説明する。ここでは一例として、フレームＤを用いて説明する。フレームＤのサービスタイプをサービスタイプ２（TPID:0x8100、VID:Don't  care）とする。
【０１０５】
フロー識別部３１３は、フレームＤとフロー識別テーブル３１１とを比較して、各フレームに対応するフローＩＤとフロー情報とを判定する。図８に示すように、フレームＤのフローＩＤは「１９」、その他のオフセットは「０」となる。
【０１０６】
フロー識別部３１３は、フレームＤのフローＩＤとフロー情報とを判定した後に、フローＩＤとハッシュルールテーブル３１２とを比較して、フレームＤのハッシュルールを判定する。フレームＤのフローＩＤは「１９」であるため、ハッシュルールは所定のハッシュ値となる。例えば、所定のハッシュ値を「０」とする。
【０１０７】
フロー識別部３１３は、判定結果となるフレームＤのフローＩＤとフロー情報、ハッシュルールを、フレームＤと対応付けて転送先制御部３１６に出力する。
【０１０８】
転送先制御部３１６は、フレームＤのハッシュ実施判定フラグを参照し、フレームＤのハッシュ値を演算するか否かを判定する。ここでは、フレームＤのハッシュ実施判定フラグが「０」であるため、各フレームＤのハッシュ演算を行わない。転送先制御部３１６は、ハッシュ演算を行わない場合には、フレームＤのハッシュルールに格納されたハッシュ値をそのまま利用する。図９に示すように、フレームＤのハッシュルールに格納されたハッシュ値は「０」である。
【０１０９】
転送先制御部３１６は、フレームＤのフローＩＤおよびハッシュ値の組合せと、宛先管理テーブル３１５とを比較することで、フレームＤの物理回線ポートを判定する。図１０に示すように、フレームＤのフローＩＤは「１９」、ハッシュ値は「０」であるため、物理ポート番号は「０」となる。転送先制御部３１６は、物理回線ポート番号「０」に対応する物理回線ポートにフレームＤを送信する。
【０１１０】
このように、ハッシュ実施判定フラグを「０」にしておくことで、ハッシュ演算を省略することができ、フレームの送信先を判定する時間を省略することができる。また、ハッシュ演算を行わないため、ハッシュ演算実施時と比較すると消費電力を抑えることもできる。
【０１１１】
次に、回線ＩＦ部３１０が、サービスタイプが登録済みのフレームとサービスタイプが未登録のフレームとを取得した場合の処理について説明する。ここでは一例として、フレームＥとフレームＦとを用いて説明する。フレームＥのサービスタイプをサービスタイプ４（MAC  DA:0x123456789ABC  MAC  SA:0xDEF00FEDCBA9）とする。フレームＦのサービスタイプを未登録のサービスタイプとする。
【０１１２】
フロー識別部３１３は、フレームＥ，Ｆとフロー識別テーブル３１１とを比較して、各フレームに対応するフローＩＤとフロー情報とを判定する。フレームＥのフローＩＤは「３０」、ハッシュ実施判定フラグは「１」、各オフセットは「０」となる。フレームＦのフローＩＤは「０」、ハッシュ実施判定フラグは「１」、各オフセットは「０」となる。
【０１１３】
フロー識別部３１３は、フレームＥ，ＦのフローＩＤとフロー情報とを判定した後に、フローＩＤとハッシュルールテーブル３１２とを比較して、各フレームのハッシュルールを判定する。図９に示すように、フレームＥのフローＩＤは「３０」であるため、フレームＥのハッシュルールは「フローＩＤ」となる。フレームＦのフローＩＤは「０」であるため、フレームＦのハッシュルールは「ＭＡＣアドレス」となる。
【０１１４】
フロー識別部３１３は、判定結果となる各フレームＥ，ＦのフローＩＤ、フロー情報、ハッシュルールを、各フレームＥ，Ｆと対応付けて転送先制御部３１６に出力する。
【０１１５】
転送先制御部３１６は、フレームＥ，Ｆのハッシュ実施判定フラグを参照し、フレームＥ，Ｆのハッシュ値を演算するか否かを判定する。ここでは、フレームＥ，Ｆのハッシュ実施判定フラグが「１」であるため、転送先制御部３１６は、フレームＥ，Ｆのハッシュ値を演算する。
【０１１６】
転送先制御部３１６は、ＬＡＧハッシュ演算部３１４を利用してハッシュ値を演算する。転送先制御部３１６は、フレームのハッシュルールに基づいて、ハッシュ演算対象となる情報をフレームから取得し、取得した情報をＬＡＧハッシュ演算部３１４に出力することで、フレームのハッシュ値を得る。
【０１１７】
フレームＥのハッシュルールは「フローＩＤ」である。転送先制御部３１６は、フレームＥに対応するフローＩＤ「３０」に、０のビット列を付加することで、１２８ビットのハッシュ演算キーを生成する。
【０１１８】
フレームＦのハッシュルールは「ＭＡＣアドレス」である。転送先制御部３１６は、フレームＦのＭＡＣアドレスに格納された情報を特定し、特定した情報を取り出す。転送先制御部３１６は、取り出した情報に、０のビット列を付加することで、１２８ビットのハッシュ演算キーを生成する。
【０１１９】
転送先制御部３１６は、フレームＥ，Ｆのハッシュ演算キーを取得した後に、ハッシュ演算キーをＬＡＧハッシュ演算部３１４に出力する。そして、転送先制御部３１６は、ＬＡＧハッシュ演算部３１４からフレームＥ，Ｆのハッシュ値を取得する。例えば、フレームＥのハッシュ値を「０」、フレームＥのハッシュ値を「１」とする。
【０１２０】
転送先制御部３１６は、フレームのフローＩＤおよびハッシュ値の組合せと、宛先管理テーブル３１５とを比較することで、フレームＥ，Ｆの物理回線ポートを判定する。図１０に示すように、フレームＥのフローＩＤは「３０」、ハッシュ値は「０」であるため、物理回線ポート番号は「７」となる。転送先制御部３１６は、物理回線ポート番号「７」に対応する物理回線ポートにフレームＥを送信する。
【０１２１】
フレームＦのフローＩＤは「０」、ハッシュ値は「１」であるため、物理回線ポート番号は「１」となる。転送先制御部３１６は、物理回線ポート番号「１」に対応する物理回線ポートにフレームＦを送信する。
【０１２２】
上述してきたように、本実施例３にかかる通信装置３００の回線ＩＦ部３１０は、フローＩＤとハッシュ値との組合せに基づいて、フレームを物理回線ポートに振り分ける。したがって、各フレームの宛先が同一で、ハッシュ値が同一となる場合でも、特定の物理回線ポートにフレームが集中することを防止することができる。また、ハッシュ演算キーは、任意に設定が可能であり、例えば、ＭＡＣアドレスとＩＰアドレスとを組み合わせたものをハッシュ演算キーに設定することができる。
【０１２３】
また、本実施例３にかかる通信装置３００は、ハッシュ実施判定フラグを「０」にしておくことで、ハッシュ演算を省略することができ、フレームの送信先を判定する時間の省略や消費電力を抑えることができる。
【０１２４】
また、本実施例３にかかる通信装置３００は、未登録のサービスタイプのフレームにフレームＩＤを割当て、ハッシュルールを設定している。したがって、未登録のサービスタイプのフレームを取得した場合にでも、取得したフレームを物理回線ポートに割り振ることができる。また、フレーム自体に格納された情報以外を用いた場合でも、ハッシュ演算キーを生成でき、フレームを物理回線ポートに割り振ることができる。上述の例では、フローＩＤを用いて、ハッシュ演算キーを生成する例を示した。
【０１２５】
なお、ＣＰＵカード３５０は、フロー識別部３１３、フロー識別テーブル３１１、ハッシュルールテーブル３２１、ＬＡＧハッシュ演算部３１４、宛先管理テーブル３１５、転送先制御部３１６に設定した情報を、外部モニタ３６０に出力する。これにより、管理者は、フロー識別テーブル３１１、ハッシュルールテーブル３１２、宛先管理テーブル３１５に設定された情報を確認することができる。そして、例えば、物理回線ポートに障害が発生した場合には、管理者は、入力装置を操作して、障害の発生した物理回線ポートの番号を、宛先管理テーブル３１５から除外する。
【０１２６】
ところで、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、回線ＩＦ部２１０〜２３０、ＳＷ部２４０、ＣＰＵカード２５０を同一のカード上に含ませてもよい。
【０１２７】
ところで、図２に示した本実施例にかかる表示装置２００の構成は、要旨を逸脱しない範囲で種々に変更することができる。例えば、回路ＩＦ部２１０の機能をソフトウェアとして実装し、これをコンピュータで実行することにより、回路ＩＦ部２１０と同等の機能を実現することもできる。
【０１２８】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２９】
（付記１）ネットワークに接続されて、入力されたフレームのフローを識別し、前記フレームをいずれかのポートへ出力する通信装置であって、
前記入力されたフレームが属するフロー毎のフロー識別子を取得し、前記取得したフロー識別子に基づいて、フロー識別子毎のハッシュルールを取得するフロー識別部と、
前記フロー識別部で取得したハッシュルールにより前記入力されたフレームのハッシュ値を演算して取得し、前記取得したフロー識別子とハッシュ値との組み合わせに基づいて、前記入力されたフレームの出力ポートを決定する転送先制御部と、
前記転送先制御部で決定した前記出力ポートへ前記入力されたフレームを出力するフレーム出力部と、
を備えたことを特徴とする通信装置。
【０１３０】
（付記２）前記フロー識別部は、前記フロー識別子に基づいて、ハッシュ値の演算の実施要否フラグを含むフロー情報を取得し、
前記転送先制御部は、前記取得したフロー情報に基づいて、前記ハッシュ値の演算が不要と判断した場合は、前記フロー識別子のハッシュ値の演算に変えて前記フロー識別子のハッシュルールを前記フロー識別子のハッシュ値とした
ことを特徴とする付記１に記載の通信装置。
【０１３１】
（付記３）前記ハッシュルールは、前記フレームに含まれる情報のうち、ハッシュ演算対象となる情報を識別する情報を有し、前記転送先制御部は、演算対象となる情報を基にハッシュ値を演算することを特徴とする付記１または２に記載の通信装置。
【０１３２】
（付記４）前記ハッシュルールは、前記フレームに含まれる情報のうち、ハッシュ演算対象となる情報を複数識別する情報を有し、前記転送先制御部は、演算対象となる情報を基にハッシュ値を演算することを特徴とする付記１または２に記載の通信装置。
【０１３３】
（付記５）前記ハッシュルールは前記フロー識別子を含み、前記転送先制御部は、前記ハッシュルールがフロー識別子の場合に、フロー識別子に基づいてハッシュ値を算出することを特徴とする付記１〜４のいずれか一つに記載の通信装置。
【０１３４】
（付記６）ネットワークに接続されて、入力されたフレームのフローを識別し、前記フレームをいずれかのポートへ出力する通信装置のフレーム送信方法であって、
前記入力されたフレームが属するフロー毎のフローの識別子を取得し、前記取得したフロー識別子に基づいて、フロー識別子毎のハッシュルールを取得するフロー識別工程と、
前記フロー識別工程で取得したハッシュルールにより前記入力されたフレームのハッシュ値を演算して取得し、前記取得したフロー識別子とハッシュ値とに基づいて、前記入力されたフレームの出力ポートを決定する転送先制御工程と、
前記転送先制御工程で決定した前記出力ポートへ前記入力されたフレームを出力するフレーム出力工程と、
を備えたことを特徴とする通信装置のフレーム送信方法。
【０１３５】
（付記７）前記フロー識別工程は、前記フロー識別子に基づいて、ハッシュ値の演算の実施要否フラグを含むフロー情報を取得し、
前記転送先制御工程は、前記取得したフロー情報に基づいて、前記ハッシュ値の演算が不要と判断した場合は、前記フロー識別子のハッシュ値の演算に変えて前記フロー識別子のハッシュルールを前記フロー識別子のハッシュ値とした
ことを特徴とする付記６に記載のフレーム送信方法。
【０１３６】
（付記８）コンピュータに、
前記入力されたフレームが属するフロー毎のフローの識別子を取得し、前記取得したフロー識別子に基づいて、フロー識別子毎のハッシュルールを取得するフロー識別手順と、
前記フロー識別手順で取得したハッシュルールにより前記入力されたフレームのハッシュ値を演算して取得し、前記取得したフロー識別子とハッシュ値とに基づいて、前記入力されたフレームの出力ポートを決定する転送先制御手順と、
前記転送先制御工程で決定した前記出力ポートへ前記入力されたフレームを出力するフレーム出力手順と、
を実行させることを特徴とするフレーム送信プログラム。
【０１３７】
（付記９）前記フロー識別手順は、前記フロー識別子に基づいて、ハッシュ値の演算の実施要否フラグを含むフロー情報を取得し、
前記転送先制御手順は、前記取得したフロー情報に基づいて、前記ハッシュ値の演算が不要と判断した場合は、前記フロー識別子のハッシュ値の演算に変えて前記フロー識別子のハッシュルールを前記フロー識別子のハッシュ値とした
ことを特徴とする付記８に記載のフレーム送信プログラム。
【符号の説明】
【０１３８】
１００    通信装置
１１０    フロー識別部
１２０    転送先制御部
１３０    フレーム出力部
【図１】
2011077946.tif 000003
【図２】
2011077946.tif 000004
【図３】
2011077946.tif 000005
【図４】
2011077946.tif 000006
【図５】
2011077946.tif 000007
【図６】
2011077946.tif 000008
【図７】
2011077946.tif 000009
【図８】
2011077946.tif 000010
【図９】
2011077946.tif 000011
【図１０】
2011077946.tif 000012
【図１１】
2011077946.tif 000013
【図１２】
2011077946.tif 000014
【図１３】
2011077946.tif 000015
【図１４】
2011077946.tif 000016
【図１５】
2011077946.tif 000017