(57)【要約】【課題】イーサネット（登録商標）で使用されるＭＡＣアドレス、ＶＬＡＮタグにおいて、その一部のビットをフロー識別子として使用し、フロー識別子として使用しなかったビットを、ＭＡＣアドレスやＶＬＡＮ  ＩＤとして解釈し直す。【解決手段】ＭＡＣアドレスの上位２４ビットが、特別な値の特殊上位ビットとなっている場合、その下位２４ビットのうちの何ビットかをフロー情報に使用する部分（特殊フィールド）として扱う。特別な値は、通信装置に設定する。また、ＶＬＡＮ  ＩＤの１２ビットのうち、ＶＬＡＮ  ＩＤとして使わないビットを決定し、通信装置に設定する。このビットも特殊フィールドとして扱う。例えば、送信元ＭＡＣアドレスの特殊フィールドを最上位、宛先ＭＡＣアドレスの特殊フィールドを最下位、ＶＬＡＮ  ＩＤの特殊フィールドを中間として、特殊フロー情報を生成してフローテーブル中のヒットするエントリの検索に使用する。【選択図】図２
2011188433.tif 000002
【特許請求の範囲】
【請求項１】
受信したフレームのヘッダのフィールドのうち、ＭＡＣアドレスのフィールドに埋め込まれた第１の特殊フィールドを抽出する手段と、
前記フレームのヘッダのフィールドのうち、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のフィールドに埋め込まれた第２の特殊フィールドを抽出する手段と、
前記第１の特殊フィールドと前記第２の特殊フィールドとを所定の規則で使用して特殊検索キーを作成する手段と、
前記特殊検索キーを基に、フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに基づいて、前記フレームに対する処理を実行する手段と
を具備する
通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記ＭＡＣアドレスの全ビットを前半と後半に分け、前記ＭＡＣアドレスの前半の所定のビットが特殊な値の特殊上位ビットであるか確認する手段と、
前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットである場合、前記ＭＡＣアドレスの後半のビットから、前記第１の特殊フィールドを抽出する手段と、
前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）から、前記第２の特殊フィールドを抽出する手段と、
前記フローテーブル中のヒットしたエントリに、ＭＡＣアドレスの書き換え指示がある場合、前記ＭＡＣアドレスを書き換える手段と、
前記ＭＡＣアドレスの書き換え指示が無く、前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットである場合、出力するフレームのＭＡＣアドレスに、前記第１の特殊フィールドを埋め込む手段と、
前記フローテーブル中のヒットしたエントリに、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示がある場合、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）を書き換える手段と、
前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示が無い場合、出力するフレームのＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に、前記第２の特殊フィールドを埋め込む手段と、
前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットでない場合、前記フレームのヘッダの所定のフィールドを使用して通常検索キーを生成する手段と、
前記通常検索キーを基に、前記フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに、ＭＡＣアドレス及びＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示がある場合、前記ＭＡＣアドレスの前半の所定のビットを前記特殊上位ビットに書き換え、前記ＭＡＣアドレスの後半のビットに前記第１の特殊フィールドを埋め込み、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に前記第２の特殊フィールドを埋め込む手段と
を更に具備する
通信装置。
【請求項３】
請求項１又は２に記載の通信装置であって、
Ｌ２（レイヤ２）／Ｌ３（レイヤ３）転送を行う際、前記ＭＡＣアドレスのうち、前記第１の特殊フィールドの全ビットを０にしたものを正式なＭＡＣアドレスと解釈する手段と、
前記Ｌ２／Ｌ３転送を行う際、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のうち、前記第２の特殊フィールドの全ビットを０にしたものを正式なＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）と解釈する手段と
を更に具備する
通信装置。
【請求項４】
通信装置により実施される通信制御方法であって、
受信したフレームのヘッダのフィールドのうち、ＭＡＣアドレスのフィールドに埋め込まれた第１の特殊フィールドを抽出することと、
前記フレームのヘッダのフィールドのうち、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のフィールドに埋め込まれた第２の特殊フィールドを抽出することと、
前記第１の特殊フィールドと前記第２の特殊フィールドとを所定の規則で使用して特殊検索キーを作成することと、
前記特殊検索キーを基に、フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに基づいて、前記フレームに対する処理を実行することと
を含む
通信制御方法。
【請求項５】
請求項４に記載の通信制御方法であって、
前記ＭＡＣアドレスの全ビットを前半と後半に分け、前記ＭＡＣアドレスの前半の所定のビットが特殊な値の特殊上位ビットであるか確認することと、
前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットである場合、前記ＭＡＣアドレスの後半のビットから、前記第１の特殊フィールドを抽出することと、
前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）から、前記第２の特殊フィールドを抽出することと、
前記フローテーブル中のヒットしたエントリに、ＭＡＣアドレスの書き換え指示がある場合、前記ＭＡＣアドレスを書き換えることと、
前記ＭＡＣアドレスの書き換え指示が無く、前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットである場合、出力するフレームのＭＡＣアドレスに、前記第１の特殊フィールドを埋め込むことと、
前記フローテーブル中のヒットしたエントリに、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示がある場合、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）を書き換えることと、
前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示が無い場合、出力するフレームのＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に、前記第２の特殊フィールドを埋め込むことと、
前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットでない場合、前記フレームのヘッダの所定のフィールドを使用して通常検索キーを生成することと、
前記通常検索キーを基に、前記フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに、ＭＡＣアドレス及びＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示がある場合、前記ＭＡＣアドレスの前半の所定のビットを前記特殊上位ビットに書き換え、前記ＭＡＣアドレスの後半のビットに前記第１の特殊フィールドを埋め込み、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に前記第２の特殊フィールドを埋め込むことと
を更に含む
通信制御方法。
【請求項６】
請求項４又は５に記載の通信制御方法であって、
Ｌ２（レイヤ２）／Ｌ３（レイヤ３）転送を行う際、前記ＭＡＣアドレスのうち、前記第１の特殊フィールドの全ビットを０にしたものを正式なＭＡＣアドレスと解釈することと、
前記Ｌ２／Ｌ３転送を行う際、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のうち、前記第２の特殊フィールドの全ビットを０にしたものを正式なＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）と解釈することと
を更に含む
通信制御方法。
【請求項７】
受信したフレームのヘッダのフィールドのうち、ＭＡＣアドレスのフィールドに埋め込まれた第１の特殊フィールドを抽出するステップと、
前記フレームのヘッダのフィールドのうち、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のフィールドに埋め込まれた第２の特殊フィールドを抽出するステップと、
前記第１の特殊フィールドと前記第２の特殊フィールドとを所定の規則で使用して特殊検索キーを作成するステップと、
前記特殊検索キーを基に、フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに基づいて、前記フレームに対する処理を実行するステップと
を通信装置に実行させるための
通信制御用プログラム。
【請求項８】
請求項７に記載の通信制御用プログラムであって、
前記ＭＡＣアドレスの全ビットを前半と後半に分け、前記ＭＡＣアドレスの前半の所定のビットが特殊な値の特殊上位ビットであるか確認するステップと、
前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットである場合、前記ＭＡＣアドレスの後半のビットから、前記第１の特殊フィールドを抽出するステップと、
前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）から、前記第２の特殊フィールドを抽出するステップと、
前記フローテーブル中のヒットしたエントリに、ＭＡＣアドレスの書き換え指示がある場合、前記ＭＡＣアドレスを書き換えるステップと、
前記ＭＡＣアドレスの書き換え指示が無く、前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットである場合、出力するフレームのＭＡＣアドレスに、前記第１の特殊フィールドを埋め込むステップと、
前記フローテーブル中のヒットしたエントリに、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示がある場合、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）を書き換えるステップと、
前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示が無い場合、出力するフレームのＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に、前記第２の特殊フィールドを埋め込むステップと、
前記ＭＡＣアドレスの前半の所定のビットが前記特殊上位ビットでない場合、前記フレームのヘッダの所定のフィールドを使用して通常検索キーを生成するステップと、
前記通常検索キーを基に、前記フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに、ＭＡＣアドレス及びＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え指示がある場合、前記ＭＡＣアドレスの前半の所定のビットを前記特殊上位ビットに書き換え、前記ＭＡＣアドレスの後半のビットに前記第１の特殊フィールドを埋め込み、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に前記第２の特殊フィールドを埋め込むステップと
を更に通信装置に実行させるための
通信制御用プログラム。
【請求項９】
請求項７又は８に記載の通信制御用プログラムであって、
Ｌ２（レイヤ２）／Ｌ３（レイヤ３）転送を行う際、前記ＭＡＣアドレスのうち、前記第１の特殊フィールドの全ビットを０にしたものを正式なＭＡＣアドレスと解釈するステップと、
前記Ｌ２／Ｌ３転送を行う際、前記ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のうち、前記第２の特殊フィールドの全ビットを０にしたものを正式なＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）と解釈するステップと
を更に通信装置に実行させるための
通信制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関し、特に集中制御型ネットワークに属する通信装置に関する。
【背景技術】
【０００２】
従来、キャリアネットワークやインターネット等のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｌ）をベースとするネットワークは、各ノードが自律分散的に動作していた。
【０００３】
近年、ＩＰをベースとするネットワークの分野において、オープンフローコンソーシアム（非特許文献１参照）が推進するオープンフロー（ＯｐｅｎＦｌｏｗ）のような技術や、各社の独自技術として、通信装置をネットワーク経由で集中制御する技術が発展している。
【０００４】
［集中制御型ネットワークの例］
図１に、オープンフローの技術を用いた集中制御型ネットワークの例を示す。図１では、コントローラ１が、ルータ３、ルータ４、ルータ５等のネットワーク上のノードの設定を動的に変えて、フローベースで経路制御して負荷を分散する。或いは、コントローラ１が、特定のフローに対する統計情報を収集して、ネットワークの負荷状況をフローベースで把握して詳細に制御を行う。なお、フローとは、所定の規則（ルール）に適合するパケットに対して行うべき所定の処理（アクション）を定義したものである。
【０００５】
上記の技術では、ルータ３とルータ５間の２本の回線のうち、優先したいフローが１本を占有するようにし、他のフローを残りの１本にまとめる。或いは、遅延の影響も無いトラフィックはルータ４を経由するようにする。この技術では、コントローラ１から、ルータ３、ルータ４、ルータ５に、フロー情報と経路を明示的に指定することで制御する。
【０００６】
また、オープンフローでは、フロー情報として、パケットを運ぶフレーム（ｆｒａｍｅ）のヘッダのフィールド（領域）に含まれている情報を用い、フローベースで動作指定を行うことができる。フレームは、イーサネット（登録商標）のＰＤＵ（Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）であり、パケットは、ＴＣＰ／ＩＰのＰＤＵである。
【０００７】
なお、イーサネット（登録商標）のフレームフォーマットでは、フレームのヘッダのフィールドには、「ＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）」、「ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）  ｐｒｉｏｒｉｔｙ」、「ＶＬＡＮ  ＩＤ（ＶＬＡＮ  Ｉｄｅｎｔｉｆｉｅｒ：ＶＩＤ）」、「ＥｔｈｅｒＴｙｐｅ」、「ＩＰアドレス」、「ＩＰ  ＴＯＳ（Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ）」、「ＩＰプロトコル番号」、「ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）ポート番号」等の情報が含まれている。オープンフローでは、これらの情報のいくつか又は全てを使用して、フローのルールが決められる。また、上記に加えて、入力ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）の情報も、フローのルールとして使用することが可能である。
【０００８】
また、フローベースの制御に近いものとして、従来よりＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）という技術がある。
【０００９】
なお、オープンフローにおいては、フレームのヘッダのフィールドは多くのビット（ｂｉｔ）からなっており、ビット列も規則性が無いため、フロー情報を格納するフローテーブルから、該当するエントリを検索する際の処理負荷が大きい。また、フローテーブルに格納できるエントリ情報が少ない。例えば、１つのフローあたりのフローの特定のために多くのフィールドを使用すると、消費するメモリ量も大きくなるため、装置に搭載されるメモリ量が同じならば、少ないビット数にフロー情報が集約されている場合に比べて格納できるエントリ数が少なくなる。
【００１０】
また、ＭＰＬＳを既存の非ＭＰＬＳネットワークに導入するには、全体的にネットワークを設計し直し、ネットワークを構成する装置を入れ替える必要がある。
【００１１】
更に、従来のフレームフォーマットでは、パケットの識別をするためのフィールドが少なく、パケットの種類を細かく種類分けして個別の処理を行うのが難しい。
【００１２】
このため、ＭＡＣアドレス、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）、ＩＰアドレス、ＴＣＰ／ＵＤＰポート番号等のフィールド値を参照してフロー識別を行い、個別の処理を行うポリシー制御が行われていた。
【００１３】
この方法では、多くのフィールドを検索しなければならないため、ハードウェアの検索負荷が大きくなるという問題があった。また、１つのフロー当たりに多くのビットを使うために情報量が大きくなり、保持できるフロー情報の数が少なくなるという問題があった。
【００１４】
また、ＭＡＣアドレスやＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）へのフロー情報の埋め込み（付加）は、ＦＤＢ（Ｆｉｌｔｅｒｉｎｇ  ＤａｔａＢａｓｅ）のエントリのサイズを増加させ、ＩＰインタフェースに対応するＭＡＣアドレスの管理を煩雑化させてしまう。
【００１５】
しかし、全てをフローベースで転送制御を行うようにすると、ＦＤＢのサイズの増加やＩＰインタフェース管理の煩雑さはなくなるが、フロー情報により経路制御する方法は、ネットワーク全体のフロー設計が必要となり、管理負担が大きいため、フロー識別のみで経路制御する新技術を採用すると負担が大きくなるといった課題がある。
【先行技術文献】
【非特許文献】
【００１６】
【非特許文献１】Ｔｈｅ  ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｃｏｎｓｏｒｔｉｕｍ  ＜ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／＞
【発明の概要】
【発明が解決しようとする課題】
【００１７】
本発明の目的は、検索に必要なフロー情報を、ある程度規則性のあるビット列に変換しながらデータ長も短くし、パケットを運ぶフレームのヘッダのフィールドであるＭＡＣアドレス内、ＶＬＡＮタグ内に埋め込む通信装置、通信制御方法、及び通信制御用プログラムを提供することにある。
【課題を解決するための手段】
【００１８】
本発明の通信装置は、受信したフレームのヘッダのフィールドのうち、ＭＡＣアドレスのフィールドに埋め込まれた第１の特殊フィールドを抽出する手段と、フレームのヘッダのフィールドのうち、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のフィールドに埋め込まれた第２の特殊フィールドを抽出する手段と、第１の特殊フィールドと第２の特殊フィールドとを所定の規則で使用して特殊検索キーを作成する手段と、特殊検索キーを基に、フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに基づいて、フレームに対する処理を実行する手段とを具備する。
【００１９】
本発明の通信制御方法は、通信装置により実施される通信制御方法である。この通信制御方法では、受信したフレームのヘッダのフィールドのうち、ＭＡＣアドレスのフィールドに埋め込まれた第１の特殊フィールドを抽出する。また、フレームのヘッダのフィールドのうち、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のフィールドに埋め込まれた第２の特殊フィールドを抽出する。また、第１の特殊フィールドと第２の特殊フィールドとを所定の規則で使用して特殊検索キーを作成する。また、特殊検索キーを基に、フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに基づいて、フレームに対する処理を実行する。
【００２０】
本発明の通信制御用プログラムは、受信したフレームのヘッダのフィールドのうち、ＭＡＣアドレスのフィールドに埋め込まれた第１の特殊フィールドを抽出するステップと、フレームのヘッダのフィールドのうち、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のフィールドに埋め込まれた第２の特殊フィールドを抽出するステップと、第１の特殊フィールドと第２の特殊フィールドとを所定の規則で使用して特殊検索キーを作成するステップと、特殊検索キーを基に、フローテーブル中からヒットするエントリを検索し、ヒットしたエントリに基づいて、フレームに対する処理を実行するステップとを通信装置に実行させるためのプログラムである。なお、本発明の通信制御用プログラムは、記憶装置や記憶媒体に格納することが可能である。
【発明の効果】
【００２１】
より多くのフロー情報を格納しながら検索処理負荷も削減し、従来のＩＰネットワークと使い勝手を同じにして、コントローラの導入は必要だが、ネットワーク全体の通信装置の入れ替え無しに、部分的にコントローラの導入ができる。
【図面の簡単な説明】
【００２２】
【図１】集中制御型ネットワークの構成例を示す概念図である。
【図２】本発明におけるＭＡＣフレームのフレームフォーマットの構成例を説明するための図である。
【図３】本発明におけるＬ２スイッチングの制御方法を説明するための図である。
【図４】本発明におけるＩＰ転送の制御方法を説明するための図である。
【図５】本発明における通常フロー転送の制御方法を説明するための図である。
【図６】本発明における特殊フロー転送の制御方法を説明するための図である。
【図７】本発明を適用した通信装置の構成例を示すブロック図である。
【図８Ａ】本発明を適用した通信装置の動作を示すフローチャート（１）である。
【図８Ｂ】本発明を適用した通信装置の動作を示すフローチャート（２）である。
【図８Ｃ】本発明を適用した通信装置の動作を示すフローチャート（３）である。
【図９】本発明における通常フロー情報の検索キーの作り方を説明するための図である。
【図１０】本発明における特殊フロー情報の検索キーの作り方を説明するための図である。
【図１１】本発明における通常フローエントリの検索と特殊フローエントリの検索を説明するための図である。
【図１２】本発明における特殊フィールドと他のフィールドを組み合わせた検索を説明するための図である。
【発明を実施するための形態】
【００２３】
＜第１実施形態＞
以下に、本発明の第１実施形態について説明する。
【００２４】
［本発明におけるＭＡＣフレームのフレームフォーマットの構成例］
図２を参照して、本発明におけるＭＡＣフレームのフレームフォーマットの構成例と、ＭＡＣアドレスとＶＬＡＮタグへのフロー情報の埋め込みについて説明する。
【００２５】
通常のＭＡＣフレームは、通常の宛先ＭＡＣアドレスと、通常の送信元ＭＡＣアドレスと、通常のＶＬＡＮタグと、ＩＰパケットと、ＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）のフィールド（領域）を含む。
【００２６】
宛先ＭＡＣアドレスは、フレームの宛先（送信先）を示すＭＡＣアドレスである。送信元ＭＡＣアドレスは、フレームの送信元を示すＭＡＣアドレスである。
【００２７】
通常のＭＡＣアドレスは、上位２４ビットと下位２４ビットを合わせた４８ビットのアドレスである。
【００２８】
通常のＭＡＣアドレスの上位２４ビットは、企業等の組織を表すＯＵＩ（Ｏｒｇａｎｉｚａｔｉｏｎ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）と、ローカル／グローバルを表すビットと、マルチキャストを表すビットを有する。ＯＵＩは、ＩＥＥＥにより管理され、組織に対して割り当てられる。ＭＡＣアドレスの下位２４ビットは、製造者が独自に重複しないように割り当てた番号である。
【００２９】
通常のＶＬＡＮタグは、３２ビットで構成されている。この３２ビットのうち１２ビットがＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）であり、ＶＬＡＮの識別子として使用される。
【００３０】
本発明では、ＭＡＣアドレスの上位２４ビットが特別な値となっているとき、その下位２４ビットのうちの何ビットかを特殊フィールドとして扱う。ネットワーク管理者は、特別な値を決定し、本発明を適用した通信装置に設定する。本発明では、このときの上位２４ビットの特殊な値を特殊上位ビットと呼ぶ。すなわち、本発明において、特殊上位ビットは、ＭＡＣアドレスの上位２４ビットである。
【００３１】
同様に、ネットワーク管理者は、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に関して、１２ビットのうちの何ビットかを、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）として使わないビットとして決定し、本発明を適用した通信装置に設定する。このＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）として使わないビットも特殊フィールドとして扱う。ネットワーク管理者は、何ビット分を特殊フィールドとして使用するか決める。
【００３２】
ここでは、ＭＡＣアドレスの下位２４ビットのうちの先頭の１６ビット（下位先頭１６ビット）を特殊フィールドとして扱う。また、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の１２ビットのうちの一部を特殊フィールドとして扱う。但し、ビット数は一例に過ぎない。実際には、これらの例に限定されない。
【００３３】
更に、ＭＡＣアドレスの下位２４ビットのうち、特殊フィールドを除いた残りの部分を、残余フィールドとして扱う。また、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の１２ビットのうち、特殊フィールドを除いた残りの部分を、残余フィールドとして扱う。
【００３４】
従って、図２に示すように、本発明におけるＭＡＣフレームでは、特殊上位ビット１０１と、特殊フィールド１０２と、残余フィールド１０３は、通常の宛先ＭＡＣアドレスのフィールドに格納される。また、特殊上位ビット２０１と、特殊フィールド２０２と、残余フィールド２０３は、通常の送信元ＭＡＣアドレスのフィールドに格納される。また、ＶＬＡＮタグの全ビットのうち、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）以外の部分であるタグ領域３０１と、特殊フィールド３０２と、残余フィールド３０３は、通常のＶＬＡＮタグのフィールドに格納される。このとき、特殊フィールド３０２と、残余フィールド３０３は、通常のＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のフィールドに格納される。
【００３５】
更に、特殊フィールド１０２と、特殊フィールド２０２と、特殊フィールド３０２を、所定の規則に基づいて組み合わせたものを特殊フロー情報４００として使用する。なお、特殊フロー情報４００は、特殊フィールド１０２、特殊フィールド２０２、及び特殊フィールド３０２のいずれか１つを使用したものでも良い。
【００３６】
ネットワーク管理者は、特殊フロー情報の値の計算方法を決定する。例えば、ネットワーク管理者は、特殊フロー情報４００の最上位の領域に、送信元ＭＡＣアドレスの特殊フィールド２０２を使用することを決定する。また、特殊フロー情報４００の中間の領域に、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の特殊フィールド３０２を使用することを決定する。また、特殊フロー情報４００の最下位の領域に、宛先ＭＡＣアドレスの特殊フィールド１０２を使用することを決定する。
【００３７】
また、通常のＭＡＣアドレスの全ビット（４８ビット）のうち、特殊フィールド以外のビットを、本発明におけるＭＡＣアドレスとして扱う。同様に、通常のＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の全ビット（１２ビット）のうち、特殊フィールド以外のビットを、本発明におけるＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）として扱う。
【００３８】
ここでは、通常の宛先ＭＡＣアドレスの全ビットのうち、特殊フィールド１０２の全ビットを０と解釈したものが、本発明における宛先ＭＡＣアドレスとなる。正確には、特殊上位ビット１０１と、特殊フィールド１０２の全ビットを０に変換したものと、残余フィールド１０３を組み合わせたものを、正式なＭＡＣアドレスの値として解釈するという意味である。宛先ＭＡＣアドレスの全ビットは、４８ビットのままである。
【００３９】
また、通常の送信元ＭＡＣアドレスの全ビット（４８ビット）のうち、特殊フィールド２０２の全ビットを０と解釈したものが、本発明における送信元ＭＡＣアドレスとなる。正確には、特殊上位ビット２０１と、特殊フィールド２０２の全ビットを０に変換したものと、残余フィールド２０３を組み合わせたものを、正式なＭＡＣアドレスの値として解釈するという意味である。送信元ＭＡＣアドレスの全ビットは、４８ビットのままである。
【００４０】
また、通常のＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の全ビット（１２ビット）のうち、特殊フィールド３０２の全ビットを０と解釈したものが、本発明におけるＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）となる。正確には、特殊フィールド３０２の全ビットを０に変換したものと、残余フィールド３０３を組み合わせたものを、正式なＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の値として解釈するという意味である。ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の全ビットは、１２ビットのままである。
【００４１】
なお、ＦＤＢ（Ｆｉｌｔｅｒｉｎｇ  ＤａｔａＢａｓｅ）やルーティングテーブルにおいては、ＭＡＣアドレスやＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）のうち、特殊フロー情報４００に使用する部分（特殊フィールド）の全ビットを０と解釈（又は０に変換）する。すなわち、ＦＤＢやルーティングテーブルの登録・参照を行う際には、本発明におけるＭＡＣフレームにおける特殊フィールド１０２、特殊フィールド２０２、及び特殊フィールド３０２の全ビットを０と解釈する。
【００４２】
［本発明におけるＬ２スイッチング］
図３を参照して、本発明を適用した通信装置におけるＬ２スイッチング（Ｌ２転送）の詳細について説明する。なお、Ｌ２（レイヤ２）とは、ＯＳＩ参照モデルのデータリンク層（第２層）のことである。
【００４３】
この場合、通信装置は、Ｌ２スイッチとして機能する。本発明では、通信装置は、入力されたＭＡＣフレームのＭＡＣアドレスが、予め設定された特殊上位ビットを持っていれば、特殊フィールドの全ビットを０と解釈したものを、正式なＭＡＣアドレスと解釈する。このため、通信装置は、特殊フィールドのビットが異なっていても、残りの部分が同じであれば、同じＭＡＣアドレスと解釈する。また、通信装置は、正式なＭＡＣアドレスをキーにしてＦＤＢを検索し、ＦＤＢ中のヒット（合致）した１つのエントリに基づいて、出力先を決定している。
【００４４】
例えば、通信装置は、受信したＭＡＣフレームについて、宛先ＭＡＣアドレスの上位２４ビットが特殊上位ビット１０１であれば、特殊フィールド１０２の全ビットを０に変換したものを、本発明における正式な宛先ＭＡＣアドレスと解釈する。通信装置は、特殊フィールド１０２が異なっている場合でも、特殊フィールド１０２の値を無視し、本発明における正式な宛先ＭＡＣアドレスをキーに、ＦＤＢ中からヒットするエントリを検索し、ヒットしたエントリに基づいて、出力先を決定する。
【００４５】
［本発明におけるＩＰ転送］
図４を参照して、本発明を適用した通信装置におけるＩＰ転送（Ｌ３転送）の詳細について説明する。なお、Ｌ３（レイヤ３）とは、ＯＳＩ参照モデルのネットワーク層（第３層）のことである。
【００４６】
この場合、通信装置は、ルータ（又はＬ３スイッチ）として機能する。本発明では、通信装置は、入力されたＭＡＣフレームのＭＡＣアドレスが、予め設定された特殊上位ビットを持っていれば、特殊フィールドの全ビットを０と解釈したものを、正式なＭＡＣアドレスと解釈する。このため、通信装置は、特殊フィールドのビットが異なっていても、残りの部分が同じであれば、同じＭＡＣアドレスと解釈する。また、通信装置は、特殊フィールドのビットが異なっていても、予め設定された特殊上位ビットを持つＭＡＣアドレスを、自分宛ＭＡＣアドレスと解釈してイーサネット（登録商標）を終端し、ＩＰ転送（ＩＰルーティングやＩＰフォワード）する。通信装置は、フレームの入力時（フレームの受信の際）に、ＭＡＣアドレスから、特殊フロー情報４００に使用する部分（特殊フィールド）の値を抽出し、抽出した値を、フレームの出力時（フレームの送信の際）に、新しいＭＡＣアドレスに埋め込んでいる。
【００４７】
例えば、通信装置は、受信したＭＡＣフレームについて、宛先ＭＡＣアドレスの上位２４ビットが特殊上位ビット１０１であれば、特殊フィールド１０２の全ビットを０に変換したものを、本発明における正式な宛先ＭＡＣアドレスと解釈する。通信装置は、特殊フィールド１０２が異なっている場合でも、特殊上位ビット１０１の値が、予め設定された値と同じであれば、宛先ＭＡＣアドレス全体の値に関わらず自分宛と解釈して一旦イーサネット（登録商標）を終端する。通信装置は、本発明における正式な宛先ＭＡＣアドレスをキーに、ルーティングテーブル／ＡＲＰテーブル中からヒットするエントリを検索し、ヒットしたエントリに基づいて、宛先ＩＰアドレスを決定する。ルーティングテーブルとは、パケットの配送先をＩＰアドレスで示した経路情報である。ＡＲＰテーブルとは、ＩＰアドレスとＭＡＣアドレスの対応表である。ここでは、ルーティングテーブル／ＡＲＰテーブルは、宛先ＭＡＣアドレスと宛先ＩＰアドレスの対応表となっている。通信装置は、宛先ＩＰアドレスに基づいて、ＩＰ転送により新しいＭＡＣフレームを送信する。なお、通信装置は、ＭＡＣフレームの受信時に特殊フィールド１０２のビット列を抽出し、ＩＰ転送の際の新しいＭＡＣフレームの送信時に、このＭＡＣフレームの宛先ＭＡＣアドレスのフィールドに特殊フィールド１０２のビット列を埋め込んでいる。送信元ＭＡＣアドレスの場合も、宛先ＭＡＣアドレスと同様である。このとき、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に、特殊フロー情報４００に使用する部分（特殊フィールド３０２）を埋め込んでも良い。
【００４８】
［本発明における通常フロー転送］
図５を参照して、本発明を適用した通信装置における通常フロー転送の詳細について説明する。
【００４９】
この場合、通信装置は、フロースイッチとして機能する。本発明では、フロースイッチとは、集中制御型ネットワークにおいて、フロー情報を基に経路制御を行うスイッチのことである。フロースイッチは、Ｌ２スイッチ、Ｌ３スイッチ、及びＬ４スイッチの機能を持つスイッチであると好適である。また、フロースイッチは、Ｌ７スイッチ（アプリケーションスイッチ）やマルチレイヤスイッチでも良い。
【００５０】
本発明では、通信装置は、受信したＭＡＣフレームを、通常フローとして扱うことができる。通信装置は、受信したＭＡＣフレームについて、ＭＡＣアドレス、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）、ＩＰアドレス、ＴＣＰ／ＵＤＰポート番号等のフィールド値の全て又はいくつかを組み合わせて生成したフロー情報を、通常フロー情報として認識する。本発明では、通信装置は、フローテーブルに通常フロー情報のエントリを登録し、通常フロー情報のエントリにおいて、通常フローに対する動作を指定する。通信装置は、受信したＭＡＣフレームの通常フロー情報をキーに、フローテーブル中からヒットするエントリを検索し、フローテーブル中にヒットするエントリがある場合、ヒットするエントリにおいて指定された処理を実行する。
【００５１】
なお、フローテーブルとは、フロー情報と、当該フロー情報に対応する処理の対応表である。例えば、通信装置は、ＭＡＣフレームを受信した際、受信したＭＡＣフレームのフロー情報をキーに、フローテーブル中からヒットするエントリを検索し、ヒットするエントリがあれば、このＭＡＣフレームに対して、当該エントリにおいて指定された処理を行う。
【００５２】
図５の例では、通信装置は、フローテーブルを参照し、受信したＭＡＣフレームの宛先ＵＤＰポート番号が６０００の場合に、通常の宛先ＭＡＣアドレスを、特殊上位ビット１０１を持つアドレス（本発明における宛先ＭＡＣアドレス）に書き換え、特殊フロー情報４００に使用する部分（特殊フィールド１０２）を埋め込んで、新たなＭＡＣフレームとして出力している。送信元ＭＡＣアドレスの場合も、宛先ＭＡＣアドレスと同様である。このとき、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に、特殊フロー情報４００に使用する部分（特殊フィールド３０２）を埋め込んでも良い。ここでは、管理されたネットワークの入り口で、新たなＭＡＣフレームに特殊フィールドを埋め込む際の動作を示している。
【００５３】
［本発明における特殊フロー転送］
図６を参照して、本発明を適用した通信装置における特殊フロー転送の詳細について説明する。
【００５４】
この場合、通信装置は、フロースイッチとして機能する。本発明では、通信装置は、受信したＭＡＣフレームを、特殊フローとして扱うことができる。通信装置は、受信したＭＡＣフレームから抽出した特殊フィールドの全て又はいくつかを組み合わせて生成したフロー情報を、特殊フロー情報として認識する。本発明では、通信装置は、フローテーブルに特殊フロー情報のエントリを登録し、特殊フロー情報のエントリにおいて、特殊フローに対する動作を指定する。通信装置は、受信したＭＡＣフレームの特殊フロー情報をキーに、フローテーブル中からヒットするエントリを検索し、フローテーブル中にヒットするエントリがある場合、ヒットするエントリにおいて指定された処理を実行する。
【００５５】
図６の例では、通信装置は、受信したＭＡＣフレームの宛先ＭＡＣアドレス内の特殊上位ビット１０１を検出した場合、特殊フロー情報４００に使用する部分（特殊フィールド１０２）を参照して、この部分（特殊フィールド１０２）をキーに、フローテーブル中からヒットするエントリを検索し、ヒットするエントリにおいて指定された処理を実行する。図６の例では、ヒットするエントリにおいて指定された処理として、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え、或いは、特殊フロー情報４００に使用する部分（特殊フィールド１０２）の書き換えを行い、出力先の振り分けを行っている。送信元ＭＡＣアドレスの場合も、宛先ＭＡＣアドレスと同様である。このとき、ヒットするエントリにおいて指定された処理として、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に、特殊フロー情報４００に使用する部分（特殊フィールド３０２）を埋め込んでも良い。
【００５６】
ここでは、説明の簡略化のため、特殊フィールド１０２単体を、特殊フロー情報４００として扱っている。言い換えれば、特殊フィールド１０２のみを使用して特殊フロー情報４００を生成している。
【００５７】
上記においては、本発明を適用した通信装置の例として、計算機やネットワーク機器を想定している。なお、本発明を適用した通信装置は、計算機やネットワーク機器そのものに限らず、イーサネット（登録商標）に対応した基板（マザーボードやＩ／Ｏボード）等の半導体集積回路、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークアダプタ、或いは、同様の拡張カード等でも良い。また、通信装置は、計算機やネットワーク機器上で動作する仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＶＭ））環境でも良い。但し、実際には、これらの例に限定されない。
【００５８】
本発明では、イーサネット（登録商標）のＭＡＣアドレスとＶＬＡＮのフィールドの一部に、特殊フロー情報に使用する部分（特殊フィールド）を埋め込んでいることにより、既存のＩＰネットワークにおいて、本発明を適用した通信装置を組み込んだとしても、既存のＩＰパケットに影響を与えずに、通常フロー情報と特殊フロー情報を両方とも取り扱うことができる。また、複数のＭＡＣアドレスについて、特殊フィールドの部分を０と解釈した後、特殊フィールド以外の部分が共通する場合、これらのＭＡＣアドレスを同一のＭＡＣアドレスとして扱うことで、本発明を適用した通信装置のＩＰインタフェースに対応するＭＡＣアドレスの管理が簡素化される。ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の管理についても同様である。また、複数のＭＡＣアドレスを同一のＭＡＣアドレスとして扱うことで、管理対象となるＭＡＣアドレスの総数が少なくて済むため、Ｌ２スイッチングに用いられるＦＤＢのサイズを抑えることができる。
【００５９】
また、図３、図４、図５、図６に示したような、通常のＦＤＢやＩＰルーティングテーブルを利用した転送とフローを利用した転送を組み合わせた通信制御が可能であり、既存ネットワークの一部へ部分的に適用することができる。また、ＭＡＣアドレスとＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の一部に特殊な情報（特殊フィールド）を埋め込んでいることにより、アクセスコントロールリストと呼ばれる、パケットの各フィールド情報に基づいて処理を行う機能の識別子としても利用できるため、通常のＩＰネットワークとの親和性も良い。
【００６０】
要点について述べると、本発明では、ＩＥＥＥ８０２．３で標準化されているイーサネット（登録商標）のフレームフォーマットで使用されるＭＡＣアドレス内、及びＶＬＡＮタグ内に、特殊フロー情報に使用する部分（特殊フィールド）を埋め込む（付加する）。具体的には、ＭＡＣアドレスやＶＬＡＮタグの一部のビットを、フロー識別子として使用する。また、ＭＡＣアドレスやＶＬＡＮタグについては、フロー識別子として使用したビットを全て０に変換したものを、正式なＭＡＣアドレスやＶＬＡＮタグとして解釈し直す。
【００６１】
上記の手法によって、イーサネット（登録商標）によって運ばれる既存のＩＰパケット自体に修正を加えずに、パケットを処理するための特別なフロー情報を、パケットを運ぶフレームに付加し、特別なフロー情報が付加されたフレームに対して特別な経路制御や特殊な処理を実施する。また、従来のイーサネット（登録商標）やＩＰによる転送（Ｌ２／Ｌ３転送）を実施することも可能である。
【００６２】
なお、既存のネットワークにおいて、ＭＡＣアドレスは、世界中で一意になるように４８ビットの空間を使用しているが、特定のネットワークの中で使用する場合、４８ビット全部を使用することはまず無いため、ＭＡＣアドレスの一部をフロー識別子に使用しても影響が無い場合が多い。
【００６３】
また、ユーザが通信に使用する情報（データ）はＩＰパケットに記載されている。ＩＰパケット部分には手を加えず、フロー識別子をイーサネット（登録商標）のフレームのヘッダのフィールドの一部に埋め込むと、ＩＰパケットへの影響が無い。フレームのヘッダのフィールドは、宛先／送信元ＭＡＣアドレスの下位２４ビットとＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）をあわせて６０ビットがあり、ホスト識別のためにいくつかのビットを残すことを考慮しても十分に大きな空間を取れる。
【００６４】
また、フレームのヘッダのフィールドを検索する際、検索するフィールドやビット数が
従来よりも少なくて済むため、ハードウェアの検索負荷が減る。また、フローテーブルに登録する個々のフローエントリのサイズが小さくなるため、より多くのフローエントリを登録できるようになり、フロー数も大きく取れる。すなわち、判別可能なフローの種類が増える。これにより、より詳細にトラフィックを種類分けして管理することが可能になる。
【００６５】
ネットワークの中でも、部門単位のように小さなネットワークでは、小さなフロー空間のみを使用する等の工夫することで、規模に合わせて保持するフロー情報数を削減できる。
【００６６】
管理されたネットワークの入り口でのみ、イーサネット（登録商標）のフレームフォーマットのヘッダのフィールドに埋め込まれた特定のフィールド、又は複数のフィールドを検索してフローを識別するため、ネットワーク内部での検索負荷を小さくできる。
【００６７】
また、通常は、ＭＡＣアドレスに情報を埋め込むと、ＩＰインタフェースに対応するＭＡＣアドレスの管理が複雑になり、イーサネット（登録商標）によるＬ２スイッチングにおけるＦＤＢのサイズが増加するが、本発明では、ＭＡＣアドレスに埋め込まれた特殊フィールドの値を無視し、同一の特殊上位ビット及び残余フィールドを持つＭＡＣアドレスを共通化することで、ＦＤＢのサイズの増加を軽減できる。
【００６８】
更に、通常のイーサネット（登録商標）のフレームフォーマットのヘッダのフィールドに特別な情報を埋め込んで、ＩＰ転送やイーサネット（登録商標）スイッチングを行う方式を取るため、フロー識別による通信制御と従来の転送技術が併用でき、一度にネットワーク全体の再構築を行う必要は無く、部分的に適用することができる。
【００６９】
［通信装置の構成］
図７を参照して、本発明を適用した通信装置の構成例について説明する。
【００７０】
本発明の通信装置５００は、受信制御部５０１と、ＭＡＣアドレス学習部５０２と、特殊フィールド情報記憶部５０３と、フロー情報抽出部５０４と、フローテーブル検索部５０５と、フローテーブル５０６と、入力時動作処理部５０７と、転送先検索部５０８と、Ｌ２／Ｌ３テーブル５０９と、出力時動作処理部５１０と、送信制御部５１１を備える。
【００７１】
受信制御部５０１は、ネットワークから、パケットを運ぶフレームを受信する。
【００７２】
ＭＡＣアドレス学習部５０２は、フレームのヘッダのフィールドを解析し、ＭＡＣアドレスの上位２４ビットが特殊上位ビットの場合に、特殊フィールドを０として学習し、ＦＤＢに登録する。ここでは、ＭＡＣアドレス学習部５０２は、宛先ＭＡＣアドレスの上位２４ビットが特殊上位ビット１０１の場合、特殊フィールド１０２を０として学習し、送信元ＭＡＣアドレスの上位２４ビットが特殊上位ビット２０１の場合に、特殊フィールド２０２を０として学習し、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の特殊フィールド３０２を０として学習し、ＦＤＢに登録する。すなわち、ＭＡＣアドレス学習部５０２は、受信したフレームが、本発明におけるＭＡＣフレームのフォーマットである場合には、特殊フロー情報に使用する部分（特殊フィールド）を０として学習した上で、ＦＤＢに登録する。また、ＭＡＣアドレス学習部５０２は、受信したフレームが、通常の（既存の）ＭＡＣフレームのフォーマットである場合には、そのままＦＤＢに登録する。
【００７３】
特殊フィールド情報記憶部５０３は、ＭＡＣアドレス学習部５０２が特殊フィールドを０として学習する際の条件・ルールに関する情報を記憶する。特殊フィールド情報記憶部５０３に記憶される情報の例として、「特殊上位ビット」、「ＭＡＣＤＡ（ＭＡＣ  Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ：宛先ＭＡＣアドレス）埋込ビット数」、「ＭＡＣＳＡ（ＭＡＣ  Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ：送信元ＭＡＣアドレス）埋込ビット数」、「ＶＬＡＮＩＤ（ＶＬＡＮ  ＩＤ：ＶＬＡＮ識別情報）埋込ビット数」、「特殊フィールドのビットの並び順」等が考えられる。なお、特殊フィールドのビットの並び順とは、例えば、図２に示すように、特殊フィールド１０２、２０２、３０２の全て又はいくつかを組み合わせて特殊フロー情報４００を構成したときのビットの並び順のことである。ＭＡＣアドレス学習部５０２は、フレームのヘッダのフィールドを解析し、特殊フィールド情報記憶部５０３に記憶された情報が含まれている場合に、特殊フィールドを０として学習する。ここでは、ＭＡＣアドレス学習部５０２は、特殊フィールド情報記憶部５０３に記憶された情報として、特殊上位ビットを採用するものとする。
【００７４】
フロー情報抽出部５０４は、フレームのヘッダのフィールドから、フロー情報を抽出する。ここでは、フロー情報抽出部５０４は、通常フロー情報と特殊フロー情報を抽出する。通常フロー情報とは、受信したＭＡＣフレームについて、ＭＡＣアドレス、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）、ＩＰアドレス、ＴＣＰ／ＵＤＰポート番号等のフィールド値の全て又はいくつかを組み合わせて生成したフロー情報のことである。特殊フロー情報とは、受信したＭＡＣフレームから抽出した特殊フィールドの全て又はいくつかを組み合わせて生成したフロー情報のことである。フロー情報抽出部５０４は、フレームのＭＡＣアドレスから特殊フロー情報を抽出する際、特殊上位ビットを含まない場合には、該当するビットを０とみなす。また、フロー情報抽出部５０４は、特に指示が無い限り、受信したフレームのヘッダのフィールドから抽出したフロー情報を、出力時動作処理部５１０に通知するために、保持または伝送する。
【００７５】
フローテーブル検索部５０５は、抽出されたフロー情報を参照し、フローテーブル５０６中からヒットするエントリを検索する。なお、フローテーブル検索部５０５は、抽出されたフロー情報を、入力時動作処理部５０７に伝送しても良い。
【００７６】
フローテーブル５０６は、「通常フロー情報」と、「特殊フロー情報」と、「上記のいずれにもヒットしない場合」のエントリを保持する。なお、「通常フロー情報」と、「特殊フロー情報」と、「上記のいずれにもヒットしない場合」は、それぞれ独立したフローテーブルでも良い。「通常フロー情報」には、受信したフレームに対して通常フロー転送を行う際の条件・ルールに関する情報と、そのフレームに対する動作（図５に示す通常フロー転送）が記載されている。「特殊フロー情報」には、受信したフレームに対して特殊フロー転送を行う際の条件・ルールに関する情報と、そのフレームに対する動作（図６に示す特殊フロー転送）が記載されている。「上記のいずれにもヒットしない場合」には、上記のいずれでもないフレームに対する動作が記載されている。すなわち、フローテーブル５０６には、受信したフレームがどのように処理されるか動作指定されている。ここで指定された動作に基づいて、入力時動作処理部５０７、転送先検索部５０８、出力時動作処理部５１０で処理が行われる。特殊フロー情報と通常フロー情報の優先度は、ネットワーク設計により決める。
【００７７】
入力時動作処理部５０７は、フレームの入力時にフロー毎の帯域制限がある場合に帯域を上回ったパケットを廃棄する等の処理を行う。例えば、入力時動作処理部５０７は、帯域制御やファイアウォールとしての処理等を行う。本発明では、特にこの段階で実施する特徴的な処理は無い。なお、入力時動作処理部５０７は、抽出されたフロー情報を、転送先検索部５０８や、出力時動作処理部５１０に伝送しても良い。
【００７８】
転送先検索部５０８は、Ｌ２／Ｌ３テーブル５０９を検索し、図３に示すＬ２スイッチング、又は図４に示すＩＰ転送を行い、転送先の決定と、出力時のアドレスを決定する。ここでは、転送先検索部５０８は、フローテーブル５０６にヒットするエントリが存在しなかった場合、又はフローテーブル５０６にヒットするエントリが存在して、当該エントリにおいてＬ２／Ｌ３転送を行うように動作指定されていた場合（例えばフローテーブル５０６の「上記のいずれにもヒットしない場合」）に、Ｌ２／Ｌ３テーブル５０９を検索し、転送先の決定と、出力時のアドレスを決定する。Ｌ２／Ｌ３転送とは、Ｌ２スイッチングやＩＰ転送のことである。なお、転送先検索部５０８は、抽出されたフロー情報を、出力時動作処理部５１０に伝送しても良い。
【００７９】
Ｌ２／Ｌ３テーブル５０９は、通常のＬ２スイッチングのためのＦＤＢと、ＩＰ転送のためのルーティングテーブル／ＡＲＰテーブルを有する。図中では、記載の簡略化のため、ルーティングテーブル／ＡＲＰテーブルは、ルーティングテーブルと記載する。ＦＤＢやルーティングテーブル／ＡＲＰテーブルは一般的なものであり、詳細は割愛する。
【００８０】
出力時動作処理部５１０は、出力前にフローに対する優先制御やスケジューリング等を行う。例えば、出力時動作処理部５１０は、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）制御やロードバランシング等を行う。本発明において、この段階における特徴的な処理は、ＭＡＣアドレスの書き換え、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え、特殊フロー情報４００に使用する部分（特殊フィールド）の書き戻し、又は書き換え動作である。書き換える値は、フローテーブル５０６の動作指定の中で指定される。また、出力時動作処理部５１０は、フローテーブル５０６の動作指定の中で、書き換える値が特に指定されていない場合、新たなフレームの出力前に、新たなフレームに対して、受信したフレームのヘッダのフィールドから抽出されたフロー情報を埋め込む。すなわち、出力時動作処理部５１０は、送信するフレームに対して、フロー情報の書き戻しを行う。なお、出力時動作処理部５１０は、保持されたフロー情報、又は伝送されたフロー情報を取得する。
【００８１】
送信制御部５１１は、以上の処理を終えたフレームを送信する。
【００８２】
なお、受信制御部５０１、ＭＡＣアドレス学習部５０２、特殊フィールド情報記憶部５０３、フロー情報抽出部５０４、フローテーブル検索部５０５、フローテーブル５０６、入力時動作処理部５０７、転送先検索部５０８、Ｌ２／Ｌ３テーブル５０９、出力時動作処理部５１０、及び送信制御部５１１は、プログラムで駆動される処理装置等のハードウェアと、そのハードウェアを駆動して所望の処理を実行させるプログラム等のソフトウェアと、そのソフトウェアや各種データを格納する記憶装置によって実現される。或いは、専用の回路・装置によって実現される。
【００８３】
上記の処理装置の例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラ、或いは、同様の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＩＣ））等が考えられる。なお、通信装置がＮＩＣ等のネットワークアダプタである場合には、処理装置はネットワークプロセッサ（Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ）でも良い。但し、実際には、これらの例に限定されない。
【００８４】
上記の記憶装置の例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）やＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等のリムーバブルディスクや記憶媒体（メディア）等が考えられる。但し、実際には、これらの例に限定されない。
【００８５】
［通信装置の動作］
以下、図８Ａ、図８Ｂ、図８Ｃに示すフローチャートを参照して、図７に示す通信装置の動作を説明する。
【００８６】
（１）ステップＳ１０１
通信装置５００は、フレームの入力を受け付ける。ここでは、受信制御部５０１は、パケットを運ぶフレームを受信する。
【００８７】
（２）ステップＳ１０２
ＭＡＣアドレス学習部５０２は、受信したフレームのヘッダのフィールドを解析し、送信元ＭＡＣアドレスが特殊上位ビットを含むか確認する。なお、ここでは、実施例として、送信元ＭＡＣアドレスを使用する場合について説明するが、実際には、宛先ＭＡＣアドレスを使用しても良い。
【００８８】
（３）ステップＳ１０３
ＭＡＣアドレス学習部５０２は、送信元ＭＡＣアドレスが特殊上位ビットを含む場合、入力されたフレームのＭＡＣアドレスを学習する。ここでは、ＭＡＣアドレス学習部５０２は、送信元ＭＡＣアドレスとＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の特殊フィールドの全ビットを０にしてＦＤＢに登録する。
【００８９】
（４）ステップＳ１０４
ＭＡＣアドレス学習部５０２は、送信元ＭＡＣアドレスが特殊上位ビットを含まない場合、受信したパケットのＭＡＣアドレスを学習する。ここでは、ＭＡＣアドレス学習部５０２は、送信元ＭＡＣアドレスとＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）をそのままＦＤＢに登録する。
【００９０】
（５）ステップＳ１０５
次に、フロー情報抽出部５０４は、フレームのヘッダのフィールドからフロー情報を抽出する。ここでは、フロー情報抽出部５０４は、フロー情報として、通常フロー情報と特殊フロー情報を、それぞれ抽出する。
【００９１】
［通常フロー情報の抽出方法］
図９を参照して、図７のフロー情報抽出部５０４における通常フロー情報の抽出方法について説明する。
【００９２】
ここでは、通常フロー情報として、「入力ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）」、「ＭＡＣアドレス」、「ＶＬＡＮ  ｐｒｉｏｒｉｔｙ」、「ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）」、「ＥｔｈｅｒＴｙｐｅ」、「ＩＰアドレス」、「ＩＰ  ＴＯＳ」、「ＩＰプロトコル番号」、「ＴＣＰ／ＵＤＰポート番号」を想定している。フロー情報抽出部５０４は、フレームを受信した際に、「入力ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）」の情報を示す値を取得し、「入力ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）」以外の情報についてはフレームのヘッダのそれぞれのフィールドから値を抽出し、検索キーを作成する。
【００９３】
［特殊フロー情報の抽出方法］
図１０を参照して、図７のフロー情報抽出部５０４における特殊フロー情報の抽出方法について説明する。
【００９４】
フロー情報抽出部５０４は、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）フィールドから、特殊フロー情報４００に使用する部分（特殊フィールド）の値を抽出し、ネットワーク管理者が決めた順に従って、抽出した値を並べて特殊フロー情報４００を生成する。
【００９５】
この際、フロー情報抽出部５０４は、ＭＡＣアドレスについては、上位２４ビットが特殊上位ビットで無い場合、特殊フロー情報４００に使用する部分（特殊フィールド）の値を抽出せず、特殊フィールドの値を０とみなす。また、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）については、無条件に、特殊フロー情報４００に使用する部分（特殊フィールド）の値を抽出する。フロー情報抽出部５０４は、ＭＡＣアドレスから特殊フィールドの値を抽出しなかった場合、ＭＡＣアドレスの特殊フィールドの代わりとなる０のビット列と、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）から抽出した特殊フィールドの値を組み合わせて、特殊フロー情報４００を生成する。なお、場合によっては、ＭＡＣアドレスの特殊フィールドや、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の特殊フィールドを、単体で特殊フロー情報４００として使用することも可能である。
【００９６】
（６）ステップＳ１０６
次に、フローテーブル検索部５０５は、抽出されたフロー情報を基に、フローテーブル５０６中からヒットするエントリがあるか検索する。
【００９７】
（７）ステップＳ１０７
フローテーブル検索部５０５は、検索の結果、ヒットするエントリがあれば、エントリに記載された処理を、このフレームに対する処理として決定する。ここでは、ヒットするエントリがある場合は、入力時動作処理（ステップＳ１０８）へ進む。ヒットするエントリがない場合は、転送先検索（ステップＳ１１０）へ進む。
【００９８】
［通常フローエントリの検索と特殊フローエントリの検索］
図１１を参照して、図７のフローテーブル検索部５０５における通常フローエントリの検索と特殊フローエントリの検索の様子について説明する。
【００９９】
なお、通常フローエントリとは、フローテーブル中の通常フロー情報のエントリである。また、特殊フローエントリとは、フローテーブル中の特殊フロー情報のエントリである。
【０１００】
フローテーブル検索部５０５は、図９に示す通常フロー情報の検索キー（通常検索キー）と、図１０に示す特殊フロー情報の検索キー（特殊検索キー）を利用して、フローテーブル５０６中からヒットするエントリがあるか検索する。このとき、フローテーブル検索部５０５は、図９に示す通常フロー情報の検索キーに基づいて、フローテーブル５０６中からヒットする通常フロー情報のエントリを検索する。また、フローテーブル検索部５０５は、図１０に示す特殊フロー情報の検索キーに基づいて、フローテーブル５０６中からヒットする特殊フロー情報のエントリを検索する。
【０１０１】
なお、図１０に示す特殊フロー情報の検索キーは、図２に示す特殊フロー情報４００と同じである。すなわち、特殊フロー情報４００は、フローテーブル中の特殊フロー情報のエントリを検索するための検索キーとなる。
【０１０２】
まず、フローテーブル検索部５０５は、フローテーブルの検索において、フローテーブルの通常フロー情報と、抽出した通常フロー情報を比較し、一致するものがあれば、その最も優先度の高いものにヒットしたとみなし、ヒットしたエントリに対する処理の内容を読み出す。この場合は、入力時動作処理（ステップＳ１０８）へ進む。
【０１０３】
フローテーブル検索部５０５は、通常フロー情報に一致するものが無ければ、特殊フロー情報と抽出した特殊フロー情報を比較し、一致するものがあれば、ヒットしたエントリに対する処理の内容を読み出す。この場合は、入力時動作処理（ステップＳ１０８）へ進む。
【０１０４】
フローテーブル検索部５０５は、通常フロー情報にも特殊フロー情報にも一致するものがない場合は、いずれにもヒットしない場合のエントリに対する処理の内容を読み出す。この場合は、入力時動作処理（ステップＳ１０８）へ進む。
【０１０５】
フローテーブル検索部５０５は、いずれにもヒットしない場合の処理が特に無い、又はＬ２／Ｌ３転送であれば、何もせずに転送先検索（ステップＳ１１０）へ進む。
【０１０６】
情報の比較においては、比較対象としないビット情報を指定し、そのビットを比較しないようにもできる。この動作を行うかどうかはネットワーク管理者が決めれば良い。
【０１０７】
実現性は、装置のテーブルの実現方法による。優先度は、特殊フローを先に検索し、通常フローを後に検索する形にしても良い。
【０１０８】
［特殊フィールドと他のフィールドを組み合わせた検索］
図１２を参照して、特殊フィールドと他のフィールドを組み合わせた検索の様子について説明する。
【０１０９】
本発明におけるフレームフォーマットにおいて、特殊フィールドに使用する部分を持つＭＡＣアドレスやＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）以外のフィールドは、既存のＭＡＣフレームのフレームフォーマットにおける通常フィールドである。従って、特殊フィールドに使用する部分と通常フィールドを組み合わせた検索キーを作成することもできる。
【０１１０】
図１２に示すように、特殊フロー情報４００に使用する部分と他の通常フィールドを組み合わせて検索する場合、予めフローテーブル５０６に対して、特殊フロー情報４００に使用する部分（特殊フィールド）をＭＡＣアドレスとＶＬＡＮに埋め込んだ通常フロー情報のエントリを登録しておけば良い。すなわち、特殊フィールドを持つフレーム（特殊フロー）を、そのまま「通常フロー」とみなして、この「通常フロー」に対応する通常フロー情報のエントリを登録しておけば良い。
【０１１１】
また、特殊フロー情報４００に使用する部分（特殊フィールド）と他の通常フィールドを組み合わせた情報を、通常フロー情報のエントリとして、フローテーブル５０６に登録しておくことも考えられる。この場合、フロー情報抽出部５０４は、特殊フロー情報４００に使用する部分（特殊フィールド）と他の通常フィールドを組み合わせた検索キーを作成する。フローテーブル検索部５０５は、作成された検索キーに基づいて、フローテーブル５０６の通常フロー情報のエントリを検索するようにする。
【０１１２】
（８）ステップＳ１０８
入力時動作処理部５０７は、フローテーブル５０６に記載された入力時動作を実施する。通常、入力フローに対して帯域制限をかける場合等の一般的な処理は、この段階で実施する。本発明で特徴的な処理は、この段階には無い。
【０１１３】
（９）ステップＳ１０９
入力時動作処理部５０７は、Ｌ２／Ｌ３転送がフローテーブル５０６の動作指定に記載されているか確認する。Ｌ２／Ｌ３転送がフローテーブル５０６の動作指定に記載されている場合は、転送先検索（ステップＳ１１０）へ進む。Ｌ２／Ｌ３転送がフローテーブル５０６の動作指定に記載されていない場合は、出力時動作処理（ステップＳ１２１）へ進む。
【０１１４】
（１０）ステップＳ１１０
転送先検索部５０８は、Ｌ２／Ｌ３テーブルを検索し、通常のＬ２スイッチングやＩＰ転送を実施する。本発明の特徴によって、この段階においては、受信したフレームの全ビットのうち、特殊フロー情報４００に使用する部分（特殊フィールド）の値を０として、Ｌ２／Ｌ３テーブルを検索して転送先と出力時のアドレスを決定する。
【０１１５】
（１１）ステップＳ１１１
転送先検索部５０８は、受信したフレームの宛先ＭＡＣアドレスが特殊上位ビットを含むか確認する。
【０１１６】
（１２）ステップＳ１１２
転送先検索部５０８は、宛先ＭＡＣアドレスが特殊上位ビットを含む場合、宛先ＭＡＣアドレスの全ビットのうち、特殊フロー情報４００に使用する部分（特殊フィールド１０２）の全ビットを０にする。なお、０にするとは、０と解釈、又は０に変換することである。
【０１１７】
（１３）ステップＳ１１３
転送先検索部５０８は、受信したフレームの送信元ＭＡＣアドレスが特殊上位ビットを含むか確認する。
【０１１８】
（１４）ステップＳ１１４
転送先検索部５０８は、送信元ＭＡＣアドレスが特殊上位ビットを含む場合、送信元ＭＡＣアドレスの全ビットのうち、特殊フロー情報４００に使用する部分（特殊フィールド２０２）の全ビットを０にする。
【０１１９】
（１５）ステップＳ１１５
転送先検索部５０８は、受信したフレームのＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の全ビットのうち、特殊フロー情報４００に使用する部分（特殊フィールド３０２）の全ビットを０にする。
【０１２０】
（１６）ステップＳ１１６
転送先検索部５０８は、Ｌ２／Ｌ３テーブル５０９を検索する。ここでは、転送先検索部５０８は、通常のＬ２スイッチングのためのＦＤＢと、ＩＰ転送のためのルーティングテーブル／ＡＲＰテーブルを検索する。
【０１２１】
（１７）ステップＳ１１７
転送先検索部５０８は、Ｌ２／Ｌ３テーブル５０９の検索の結果から、宛先（転送先）が本装置（通信装置５００）宛てであるか確認する。
【０１２２】
（１８）ステップＳ１１８
転送先検索部５０８は、宛先（転送先）が本装置（通信装置５００）宛てである場合、フレームを、本装置（通信装置５００）内で処理し、イーサネット（登録商標）を終端する。このとき、転送先検索部５０８は、フレーム内のＩＰパケットを、本装置（通信装置５００）に搭載されているＣＰＵや他のデバイスに渡す。
【０１２３】
（１９）ステップＳ１１９
転送先検索部５０８は、Ｌ２／Ｌ３テーブル５０９のルーティングテーブル／ＡＲＰテーブルで、ＩＰネクストホップ（ネクストホップＩＰアドレス）が指定されているか確認する。なお、ネクストホップとは、ルーティングの際にパケットが次に行く場所である。
【０１２４】
（２０）ステップＳ１２０
転送先検索部５０８は、ＩＰネクストホップ（ネクストホップＩＰアドレス）が指定されている場合、ＩＰネクストホップを基にＡＲＰテーブルを検索して宛先ＭＡＣアドレスを決定し、受信したフレームの宛先ＭＡＣアドレスを、決定した宛先ＭＡＣアドレスに書き換える。
【０１２５】
（２１）ステップＳ１２１
出力時動作処理部５１０は、フレームの出力前に、フローテーブル５０６に記載された出力時動作を実行する。例えば、出力時動作処理部５１０は、フローに対する優先制御やスケジューリング等を行う。本発明においては、ＭＡＣアドレスの書き換え、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え、特殊フロー情報４００に使用する部分（特殊フィールド）の値の書き戻し、又は書き換えを行う。書き換える値は、フローテーブル５０６の動作指定の中で指定される。
【０１２６】
（２２）ステップＳ１２２
出力時動作処理部５１０は、ＭＡＣアドレスの書き換えをフローテーブル５０６で指定されているか確認する。
【０１２７】
（２３）ステップＳ１２３
出力時動作処理部５１０は、ＭＡＣアドレスの書き換えをフローテーブル５０６で指定されている場合、フローテーブル５０６の指定に従って、ＭＡＣアドレスについて、フロー情報のビットまで含めて４８ビット全てを書き換える。その後、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換え判定処理（ステップＳ１２８）へ進む。
【０１２８】
（２４）ステップＳ１２４
出力時動作処理部５１０は、ＭＡＣアドレスの書き換えをフローテーブル５０６で指定されていない場合、受信したフレームの宛先ＭＡＣアドレスが特殊上位ビットを含むか確認する。
【０１２９】
（２５）ステップＳ１２５
転送先検索部５０８は、宛先ＭＡＣアドレスが特殊上位ビットを含む場合、宛先ＭＡＣアドレスの特殊フィールドに、フロー情報として使用するビット列（フロー情報ビット）を上書きする。このフロー情報ビットは、受信したフレームの宛先ＭＡＣアドレスから抽出された特殊フィールドの値である。ここでは、転送先検索部５０８は、宛先ＭＡＣアドレスの特殊フィールド１０２のビットを、フロー情報ビットに書き換える。
【０１３０】
（２６）ステップＳ１２６
転送先検索部５０８は、受信したフレームの送信元ＭＡＣアドレスが特殊上位ビットを含むか確認する。
【０１３１】
（２７）ステップＳ１２７
転送先検索部５０８は、送信元ＭＡＣアドレスが特殊上位ビットを含む場合、送信元ＭＡＣアドレスの特殊フィールドに、フロー情報として使用するビット列（フロー情報ビット）を上書きする。このフロー情報ビットは、受信したフレームの送信元ＭＡＣアドレスから抽出された特殊フィールドの値である。ここでは、転送先検索部５０８は、送信元ＭＡＣアドレスの特殊フィールド２０２のビットを、フロー情報ビットに書き換える。
【０１３２】
（２８）ステップＳ１２８
出力時動作処理部５１０は、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換えをフローテーブル５０６で指定されているか確認する。
【０１３３】
（２９）ステップＳ１２９
出力時動作処理部５１０は、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換えをフローテーブル５０６で指定されている場合、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換えも、ＭＡＣアドレスと同様に、フローテーブル５０６の指定に従って、特殊フィールド３０２のビットを含めて１２ビット全てを書き換える。
【０１３４】
（３０）ステップＳ１３０
出力時動作処理部５１０は、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の書き換えをフローテーブル５０６で指定されていない場合、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の特殊フィールドに、フロー情報として使用するビット列（フロー情報ビット）を上書きする。このフロー情報ビットは、受信したフレームのＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）から抽出された特殊フィールドの値である。ここでは、転送先検索部５０８は、ＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）の特殊フィールド３０２のビットを、フロー情報ビットに書き換える。
【０１３５】
（３１）ステップＳ１３１
送信制御部５１１は、以上の処理を終えたフレームを送信する。
【０１３６】
すなわち、出力時動作処理部５１０は、宛先ＭＡＣアドレスの書き換えが指定されていなければ、宛先ＭＡＣアドレスのうち、特殊フロー情報４００に使用する部分（特殊フィールド）に、受信したフレームから抽出したフロー情報ビットの書き戻し・書き換えを行う。
【０１３７】
宛先ＭＡＣアドレスの書き換えが指定されていたときは、宛先ＭＡＣアドレス自体を書き換えるため、特殊フロー情報４００に使用する部分（特殊フィールド）へのフロー情報ビットの書き戻しも書き換えも行わない。
【０１３８】
同様に、送信元ＭＡＣアドレスやＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）も書き換えが指定されていれば、特殊フロー情報４００に使用する部分（特殊フィールド）へのフロー情報ビットの書き戻しも書き換えも行わない。
【０１３９】
以上の動作によって、図３、図４、図５、図６に示した動作（転送処理）が、本発明を適用した装置上で実施される。
【０１４０】
＜第２実施形態＞
本発明の第２実施形態として、基本的な構成は第１実施形態と同様にした上で、特殊フロー情報４００について、更に工夫することができる。
【０１４１】
本実施形態では、特殊フロー情報４００を、ルート用フィールドとクラスフィールドに分割し、複数フィールド構造にすることもできる。通信装置５００は、経路制御の際には、ルート用フィールドを見て転送制御し、各種フィールド書き換え処理等のその他の処理の際には、クラスフィールドを見て処理を決定する。経路は共通のフローも多いため、共通化すると処理が簡素化されるケースもある。
【０１４２】
本実施形態では、ＭＡＣアドレスやＶＬＡＮ識別情報（ＶＬＡＮ  ＩＤ）に分散している特殊フィールドを一旦組み合わせて特殊フロー情報４００を生成し、この特殊フロー情報４００の前半と後半を別々の情報として扱う。例えば、特殊フロー情報４００が８ビットである場合、前半の４ビットをルート用フィールドとし、後半の４ビットをクラスフィールドとして別々のテーブルを検索するようにする。ルート用フィールドは、ルートを決めるための検索に使用される。クラスフィールドは、書き換え処理等に使用される。
【０１４３】
＜第３実施形態＞
本発明の第３実施形態として、従来のネットワークに対して、本発明の第１、第２実施形態での適用が困難である場合の解決案について説明する。
【０１４４】
本発明の第１、第２実施形態での適用が困難である場合の例として、ＭＡＣアドレスがプロトコルで決まっている場合が考えられる。例えば、ＶＲＲＰ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｅｒ  Ｒｅｄｕｎｄａｎｔ  Ｐｒｏｔｏｃｏｌ）においては、仮想ＩＰアドレスに対応する仮想ＭＡＣアドレスが決まっている。そのため、ＭＡＣアドレスに、特殊上位ビットや特殊フィールドを埋め込むことができない。
【０１４５】
このような場合には、本発明を適用する通信装置のみ、プロトコル用のＭＡＣアドレスを別の値にするように設定して扱えるようにすることが考えられる。ＭＡＣアドレスがプロトコルで決まっているシステムにおいて、プロトコル用のＭＡＣアドレスの値を変更しても問題ない場合には、このような対応が可能である。
【０１４６】
＜第４実施形態＞
本発明の第４実施形態として、通信装置が、図８Ａ、図８Ｂ、図８Ｃに示したフローチャートの処理を完全には実行できない場合の対処方法について説明する。
【０１４７】
通信装置が、図８Ａ、図８Ｂ、図８Ｃに示したフローチャートの処理を順番に実行できるように作りこまれていない場合でも、「アクセスコントロールリスト（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ：ＡＣＬ）」と呼ばれる技術を使用して、図８Ａ、図８Ｂ、図８Ｃに示したフローチャートの処理を順番に実行して得られる結果を予めフローテーブルにて動作指定しておくことで、通信装置に、本発明の動作の一部だけ実施させることも可能であると考えられる。
【０１４８】
なお、上記の各実施形態は、組み合わせて実施することも可能である。
【０１４９】
＜本発明の利用分野＞
現在、ネットワークの可視化や、より高度な仮想化を実現するため、自律分散のＩＰ技術にコントローラを介した制御を行う需要が増えている。フロー単位に統計情報を収集したり、フローベースに経路を制御したりする用途が増えている。
【０１５０】
前者は、ネットワークの可視化用途であり、フローをアプリケーションやユーザ、部門単位の集まりとして設定し、どのトラフィックがどれくらいどの位置で発生しているかを把握するために使われる。このため、通信装置において、フロー識別を行い、それぞれのフローの統計情報を収集する。収集した統計情報は、コントローラから定期収集するか、通信装置から自発的にコントローラへ報告する。フロー識別を細かく行うためには対応できるフロー数を増やす必要がある。
【０１５１】
後者は、輻輳が発生するような状況において、優先したいトラフィック用の回線を別に用意し、特定フローのみ特定の経路を通るように制御し、トラフィックの経路を分散する用途に使われる。
【０１５２】
上記の双方において、転送は通常のルーティングテーブルを使用し、可視化の部分だけをコントローラで制御したり、特定のフローのみを特定経路に転送したりすることで、ネットワーク設計の負荷を下げることができる。
【０１５３】
他に、仮想化用途では、ユーザ毎に自由にＩＰアドレスを付与して、仮想的にネットワークを構成する用途があり、転送をフローベースで行うことにより、別のアドレス体系で同じＩＰアドレスを使用している複数のネットワークを同一のネットワーク上で転送処理するような使い方である。
【０１５４】
いずれの用途も、フローの数を増やすことと、既存のＩＰネットワーク技術との親和性を確保することが、導入を容易にし、ネットワークの細やかな制御を可能にする。
【０１５５】
また、トラフィックが少ない時間帯と多い時間帯でトラフィックの経路を変えて、少ない時間帯はトラフィックを少数の装置に集中させて残りの装置の電源をダウンさせるといった省電力向けの用途も検討されつつある。
【０１５６】
＜本発明による効果＞
本発明では、通常のフレームフォーマットにおけるＭＡＣアドレスやＶＬＡＮに、フロー情報に使用する部分（特殊フィールド）を埋め込んでいるが、ＭＡＣアドレスとＶＬＡＮを、フロー情報に使用する部分（特殊フィールド）以外のビット（残りの部分のビット）で判定する制御方法となっている。すなわち、ＭＡＣアドレスとＶＬＡＮについては、特別な定義情報や付加情報を使用することなく、従来のフォーマットのサイズで解釈することができる。
【０１５７】
このため、ＦＤＢやＩＰインタフェースのＭＡＣアドレス管理が煩雑化せず、また、エントリ数が急増するのを防ぐことができる。
【０１５８】
また、既存のＩＰネットワークへの導入が容易で、通常のＩＰ転送やＬ２スイッチと共存させやすい。例えば、ルーティング制御は従来通り行い、導入した部分から、順次、フロー制御を取り入れることができる。
【０１５９】
また、本発明では、通常のフレームフォーマットにおけるＭＡＣアドレスやＶＬＡＮに、特殊なフロー情報に使用する部分（特殊フィールド）を埋め込んだことで、ＩＰパケットに影響を与えず、通常のフロー情報を含めて多くのフロー情報を扱うことができ、検索負荷も低い。
【０１６０】
また、本発明では、通常のフレームフォーマットにおけるＭＡＣアドレスやＶＬＡＮに、フロー情報に使用する部分（特殊フィールド）を埋め込んだことで、当該フレームを通常フローとしても使用することができる。すなわち、通常フローでの検索をすることによって、他のフィールドと組み合わせたフロー制御ができる。途中の経路までは特殊フロー検索を行い、途中から条件によって分岐させるために通常フロー検索をするということも可能である。
【０１６１】
また、本発明では、通常のフレームフォーマットにおけるＭＡＣアドレスやＶＬＡＮに、フロー情報に使用する部分（特殊フィールド）を埋め込んでいることから、従来のルータ、Ｌ２スイッチにおける、アクセスコントロールリストという技術を用いて本発明の一部を実現することもでき、従来技術と親和性がある。
【０１６２】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【０１６３】
１…  コントローラ
２、６…  端末
３、４、５…  ルータ
１０１、２０１…  特殊上位ビット
３０１…  タグ領域
１０２、２０２、３０２…  特殊フィールド
１０３、２０３、３０３…  残余フィールド
４００…  特殊フロー情報
５００…  通信装置
５０１…  受信制御部
５０２…  ＭＡＣアドレス学習部
５０３…  特殊フィールド情報記憶部
５０４…  フロー情報抽出部
５０５…  フローテーブル検索部
５０６…  フローテーブル
５０７…  入力時動作処理部
５０８…  転送先検索部
５０９…  Ｌ２／Ｌ３テーブル
５１０…  出力時動作処理部
５１１…  送信制御部
【図１】
2011188433.tif 000003
【図２】
2011188433.tif 000004
【図３】
2011188433.tif 000005
【図４】
2011188433.tif 000006
【図５】
2011188433.tif 000007
【図６】
2011188433.tif 000008
【図７】
2011188433.tif 000009
【図８Ａ】
2011188433.tif 000010
【図８Ｂ】
2011188433.tif 000011
【図８Ｃ】
2011188433.tif 000012
【図９】
2011188433.tif 000013
【図１０】
2011188433.tif 000014
【図１１】
2011188433.tif 000015
【図１２】
2011188433.tif 000016