(57)【要約】【課題】アドレス学習を効率よく行うこと。【解決手段】学習判定処理部４１０は、入力されたパケットに基づく学習情報が学習判定テーブル４２０に登録されていない場合に、入力されたパケットに基づく学習情報を学習処理バッファ４３０に格納し、その学習情報を学習判定テーブル４２０に登録する。学習処理部４４０は、学習処理バッファ４３０に格納された学習情報を読み出し、学習処理バッファ４３０から読み出した学習情報に基づくパケットのアドレスとポートとの対応関係を学習テーブル１４１に登録する。学習判定削除処理部４５０は、その学習情報の登録を学習判定テーブル４２０から削除する。【選択図】図４
2018006795.tif 000002
【特許請求の範囲】
【請求項１】
パケットのアドレスとポートとを対応付ける第１テーブルに基づいて、入力されたパケットの送信先のアドレスに対応するポートから前記入力されたパケットを出力するパケット処理装置であって、
前記入力されたパケットに基づく学習情報が登録される第２テーブルと、
前記入力されたパケットに基づく学習情報を格納可能なバッファと、
前記入力されたパケットに基づく学習情報が前記第２テーブルに登録されていない場合に、前記入力されたパケットに基づく学習情報を前記バッファに格納して前記入力されたパケットに基づく学習情報を前記第２テーブルに登録する格納部と、
前記バッファに格納された学習情報を読み出し、前記バッファから読み出した学習情報に基づいて前記第１テーブルを更新し、前記バッファから読み出した学習情報を前記第２テーブルから削除する処理部と、
を備えることを特徴とするパケット処理装置。
【請求項２】
前記第１テーブルは、前記バッファ、前記格納部および前記処理部を含む回路の外部のメモリに記憶され、前記第２テーブルは前記回路の内部のメモリに記憶されることを特徴とする請求項１に記載のパケット処理装置。
【請求項３】
パケットのアドレスとポートとを対応付ける第１テーブルに基づいて、入力されたパケットの送信先のアドレスに対応するポートから前記入力されたパケットを出力するパケット処理装置によるパケット処理方法であって、
前記入力されたパケットに基づく学習情報が第２テーブルに登録されていない場合に、前記入力されたパケットに基づく学習情報をバッファに格納して前記入力されたパケットに基づく学習情報を前記第２テーブルに登録し、
前記バッファに格納した学習情報を読み出し、前記バッファから読み出した学習情報に基づいて前記第１テーブルを更新し、前記バッファから読み出した学習情報を前記第２テーブルから削除する、
ことを特徴とするパケット処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット処理装置およびパケット処理方法に関する。
【背景技術】
【０００２】
ＬＡＮ等のネットワークにおいては、Ｌ２（レイヤ２）スイッチやＬ３（レイヤ３）スイッチなどのスイッチを介してパケットが伝送される。ＬＡＮはＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（構内通信網）の略である。また、ネットワークにおけるスイッチにおいて、入力されたパケットに基づくアドレス学習を行う技術が知られている（たとえば、下記特許文献１〜４参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−７２５８１号公報
【特許文献２】特開２００５−３０３４１０号公報
【特許文献３】特開２０１０−１６７７５号公報
【特許文献４】特開２００８−５４５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、たとえば入力されたパケットに基づく学習情報をバッファリングしてアドレス学習を行う構成において、アドレス学習を効率よく行うことができないという問題がある。たとえば、同一の学習情報が連続してバッファに格納されると、他の学習情報がバッファに格納されにくくなりアドレス学習に時間がかかる。このため、たとえばパケットのフラッディングが発生しやすくなる。
【０００５】
１つの側面では、本発明は、アドレス学習を効率よく行うことができるパケット処理装置およびパケット処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、パケットのアドレスとポートとを対応付ける第１テーブルに基づいて、入力されたパケットの送信先のアドレスに対応するポートから前記入力されたパケットを出力するパケット処理装置において、前記入力されたパケットに基づく学習情報が第２テーブルに登録されていない場合に、前記入力されたパケットに基づく学習情報をバッファに格納して前記入力されたパケットに基づく学習情報を前記第２テーブルに登録し、前記バッファに格納した学習情報を読み出し、前記バッファから読み出した学習情報に基づいて前記第１テーブルを更新し、前記バッファから読み出した学習情報を前記第２テーブルから削除するパケット処理装置およびパケット処理方法が提案される。
【発明の効果】
【０００７】
本発明の一側面によれば、アドレス学習を効率よく行うことができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかるパケット処理装置の一例を示す図である。
【図２】図２は、実施の形態にかかるパケット処理装置に記憶される学習テーブルの一例を示す図である。
【図３】図３は、実施の形態にかかるパケット転送回路へ入力されるパケットのフォーマットの一例を示す図である。
【図４】図４は、実施の形態にかかる学習処理部の一例を示す図である。
【図５】図５は、実施の形態にかかるパケット転送回路による処理の一例を示すフローチャート（その１）である。
【図６】図６は、実施の形態にかかるパケット転送回路による処理の一例を示すフローチャート（その２）である。
【図７】図７は、実施の形態にかかる学習処理バッファへのパケットの書き込みの一例を示す図である。
【図８】図８は、実施の形態にかかる学習判定処理部による学習判定処理の一例を示す図である。
【図９】図９は、実施の形態にかかる学習判定処理部による学習判定処理の他の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、本発明にかかるパケット処理装置およびパケット処理方法の実施の形態を詳細に説明する。
【００１０】
（実施の形態）
（実施の形態にかかるパケット処理装置）
図１は、実施の形態にかかるパケット処理装置の一例を示す図である。図１に示すように、実施の形態にかかるパケット処理装置１００は、たとえば、ＣＰＵ１１０と、ＰＨＹ／ＭＡＣ回路１２０と、パケット転送回路１３０と、外部メモリ１４０と、を備えるＬＡＮスイッチである。ＣＰＵ１１０は、パケット転送回路１３０の全体の制御を行う。ＣＰＵ１１０による制御には、たとえば各種のテーブルの設定や障害の監視等が含まれる。ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（中央処理装置）の略である。
【００１１】
ＰＨＹ／ＭＡＣ回路１２０は、複数の回線ポートを有し、パケットのＰＨＹ（Ｐｈｙｓｉｃａｌ）層およびＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）層の処理を行う。たとえば、ＰＨＹ／ＭＡＣ回路１２０は、複数の回線ポートから入力された各パケットを多重化部１２１により時間多重してパケット転送回路１３０へ出力する。
【００１２】
また、ＰＨＹ／ＭＡＣ回路１２０は、パケット転送回路１３０へ出力するパケットに、複数の回線ポートのうちのそのパケットが入力された入力ポートの識別子を示すポート情報を付加する。また、ＰＨＹ／ＭＡＣ回路１２０は、パケット転送回路１３０から出力されたパケットを、多重分離部１２２を介して、複数の回線ポートのうちのパケット転送回路１３０によりそのパケットに設定された出力ポートから他の装置へ送信する。
【００１３】
パケット転送回路１３０は、ＣＰＵ１１０からの制御により、ＰＨＹ／ＭＡＣ回路１２０から出力されたパケットに対して出力ポートを設定し、出力ポートを設定したパケットをＰＨＹ／ＭＡＣ回路１２０へ出力する。たとえば、パケット転送回路１３０は、パケット解析部１３１と、宛先検索部１３２と、出力ヘッダ処理部１３３と、学習処理部１３４と、を備える。
【００１４】
パケット解析部１３１は、ＰＨＹ／ＭＡＣ回路１２０から出力されたパケットのヘッダの解析を行う。たとえば、パケット解析部１３１は、解析対象のパケットのヘッダに含まれるタグのＶＩＤ（たとえば図３参照）を取得する。ＶＩＤは、パケットが属するＶＬＡＮの識別子である。ＶＬＡＮはＶｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（仮想構内通信網）の略である。
【００１５】
また、パケット解析部１３１は、解析対象のパケットのヘッダから取得したＶＩＤと、解析対象のパケットに付加されたポート情報（入力ポートの識別子）と、に対応した装置内ＩＤを取得する。装置内ＩＤは、ＰＨＹ／ＭＡＣ回路１２０の各回線ポートについてＶＩＤごと（１２［ｂｉｔ］＝４０９６通り）のサービスを区別するために割り当てる装置内のＶＬＡＮ  ＩＤである。パケット転送回路１３０においては、たとえば、装置内ＩＤによって内部の接続先が決定される。たとえば、装置内ＩＤが違えば、送信先のＭＡＣアドレスが同じでも未学習扱いとなる。また、装置内ＩＤが違えば、送信先のＭＡＣアドレスが同じでも別のポートから出力される場合がある。
【００１６】
たとえば、装置内ＩＤは、装置内のＶＬＡＮドメインと等価なＩＤであって、パケットのポート情報（入力ポートの識別子）とＶＩＤの組み合わせごとに生成されるＩＤである。ただし、入力ポートの識別子とＶＩＤの複数の組み合わせについて同一の装置内ＩＤが生成される場合もある。
【００１７】
たとえば、パケット解析部１３１は、解析対象のパケットのＶＩＤおよびポート情報（入力ポートの識別子）の組み合わせについての装置内ＩＤを生成済みである場合は、その装置内ＩＤを解析対象のパケットの装置内ＩＤとして取得する。また、パケット解析部１３１は、解析対象のパケットのＶＩＤおよびポート情報（入力ポートの識別子）の組み合わせについての装置内ＩＤを生成済みでない場合は、その組み合わせについて新たな装置内ＩＤを生成する。
【００１８】
パケット解析部１３１は、ヘッダの解析を行ったパケットを宛先検索部１３２へ出力する。また、パケット解析部１３１は、宛先検索部１３２へ出力するパケットに、そのパケットについて得られた情報を付加する。パケットについて得られた情報には、たとえば、そのパケットに付加されたポート情報（入力ポートの識別子）や、そのパケットのヘッダの解析により得られた装置内ＩＤが含まれる。
【００１９】
宛先検索部１３２は、調停処理部１３５を介して外部メモリ１４０の学習テーブル１４１にアクセスすることにより、パケット解析部１３１から出力されたパケットについての宛先検索を行う。たとえば、宛先検索部１３２は、パケット解析部１３１から出力されたパケットについて、そのパケットの送信先のＭＡＣアドレスと、そのパケットに付加された装置内ＩＤと、の組み合わせをキーとして学習テーブル１４１を検索する。
【００２０】
宛先検索部１３２が検索を行ったパケットについて学習処理部１３４が学習済みである場合は、検索の結果はヒットとなり、そのパケットの送信先のＭＡＣアドレスおよび装置内ＩＤの組み合わせに対応するポート情報が得られる。この場合は、宛先検索部１３２は、ＰＨＹ／ＭＡＣ回路１２０の各ポートのうち、得られたポート情報が示すポートをそのパケットの出力先ポートとして設定することにより、そのパケットについてユニキャスト転送を有効にする。
【００２１】
一方、宛先検索部１３２が検索を行ったパケットについて学習処理部１３４が学習済みでない場合は、検索の結果はミスヒットとなり、そのパケットの送信先のＭＡＣアドレスおよび装置内ＩＤの組み合わせに対応するポート情報は得られない。この場合は、宛先検索部１３２は、ＰＨＹ／ＭＡＣ回路１２０の各ポートをそのパケットの出力先ポートとして設定することにより、そのパケットについてフラッディング転送を有効にする。または、宛先検索部１３２は、ＰＨＹ／ＭＡＣ回路１２０の各ポートのうちのそのパケットと同一のＶＬＡＮドメインに対応する各ポートをそのパケットの出力先ポートとして設定することにより、そのパケットについてフラッディング転送を有効にしてもよい。
【００２２】
そして、宛先検索部１３２は、ユニキャスト転送またはフラッディング転送を有効にしたパケットを出力ヘッダ処理部１３３へ出力する。また、宛先検索部１３２は、出力ヘッダ処理部１３３へ出力するパケットに、そのパケットについて得られた情報を付加する。パケットについて得られた情報には、たとえば、そのパケットのポート情報（入力ポートの識別子）や装置内ＩＤ、そのパケットについて宛先検索部１３２が設定した出力先ポートの情報が含まれる。
【００２３】
出力ヘッダ処理部１３３は、宛先検索部１３２から出力されたパケットに対して所定のヘッダ書き換えを行う。出力ヘッダ処理部１３３が行うヘッダ書き換えは、たとえばＥｏＥ（Ｅｔｈｅｒｎｅｔ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）やＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）などのヘッダ書き換えである。なおＥｔｈｅｒｎｅｔは登録商標である。出力ヘッダ処理部１３３は、ヘッダ書き換えを行ったパケットを、学習処理部１３４およびＰＨＹ／ＭＡＣ回路１２０へ出力する。
【００２４】
学習処理部１３４は、調停処理部１３５を介して外部メモリ１４０の学習テーブル１４１にアクセスし、学習テーブル１４１を用いて学習処理（アドレス学習）を行う。たとえば、学習処理部１３４は、出力ヘッダ処理部１３３から出力されたパケットについて、そのパケットの装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報（入力ポートの識別子）の組み合わせを学習テーブル１４１に登録する。学習処理部１３４による学習処理については後述する（たとえば図４参照）。
【００２５】
調停処理部１３５は、宛先検索部１３２による学習テーブル１４１の検索と、学習処理部１３４による学習テーブル１４１の更新と、が競合しないようにアクセス調停を行う。調停処理部１３５は、たとえば外部メモリ１４０へのアクセスを行うためのインタフェースである。
【００２６】
パケット転送回路１３０は、たとえば、ネットワークプロセッサ（Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ）、ＦＰＧＡおよびＬＳＩの少なくともいずれかにより実現することができる。ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。ＬＳＩはＬａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ（大規模集積回路）の略である。ＬＳＩとしては、たとえばＡＳＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｓｔａｎｄａｒｄ  Ｐｒｏｄｕｃｅ）を用いることができる。ただし、パケット転送回路１３０は、これらの回路に限らず各種の回路により実現することができる。また、ＣＰＵ１１０、ＰＨＹ／ＭＡＣ回路１２０およびパケット転送回路１３０をＦＰＧＡやＬＳＩなどの１つの回路により実現してもよい。
【００２７】
外部メモリ１４０は、たとえばパケット転送回路１３０の外部に設けられたメモリである。また、外部メモリ１４０は、学習処理部１３４による学習処理に用いられる学習テーブル１４１を記憶する。たとえば、外部メモリ１４０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ランダムアクセスメモリ）により実現することができる。外部メモリ１４０に記憶される学習テーブルについては後述（たとえば図２参照）する。
【００２８】
（実施の形態にかかる学習テーブル）
図２は、実施の形態にかかるパケット処理装置に記憶される学習テーブルの一例を示す図である。図１に示した外部メモリ１４０には、たとえば図２に示す学習テーブル１４１が記憶される。図２に示す学習テーブル１４１には、装置内ＩＤと、ＭＡＣアドレスと、ポート情報と、の各組み合わせを示す情報が含まれる。たとえば、装置内ＩＤおよびＭＡＣアドレスを検索キーとして用いることにより、ポート情報が検索結果として得られる。
【００２９】
図１に示した宛先検索部１３２は、パケット解析部１３１から出力されたパケットの装置内ＩＤおよび送信先のＭＡＣアドレスの組み合わせをキーとして学習テーブル１４１を検索することで、そのパケットの出力先ポートを示すポート情報を取得する。また、学習処理部１３４は、出力ヘッダ処理部１３３から出力されたパケットの装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報の組み合わせを学習テーブル１４１に登録する。
【００３０】
（実施の形態にかかるパケット転送回路へ入力されるパケットのフォーマット）
図３は、実施の形態にかかるパケット転送回路へ入力されるパケットのフォーマットの一例を示す図である。図１に示したパケット転送回路１３０には、ＰＨＹ／ＭＡＣ回路１２０からたとえば図３に示すパケット３００が入力される。パケット３００は、ＤＡ３１０と、ＳＡ３２０と、ＴＰＩＤ３３０と、ＴＣＩ３４０と、Ｌ／Ｔ３５０と、ユーザデータ３６０と、ＦＣＳ３７０と、を含む。
【００３１】
ＤＡ３１０は、送信先のＭＡＣアドレスを示す４８ビットの情報である。ＤＡはＤｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓの略である。ＳＡ３２０は、送信元のＭＡＣアドレスを示す４８ビットの情報である。ＳＡはＳｏｕｒｃｅ  Ａｄｄｒｅｓｓの略である。
【００３２】
ＴＰＩＤ３３０およびＴＣＩ３４０はタグ（ＴＡＧ）である。ＴＰＩＤ３３０は、タグのプロトコルを示す１６ビットのタグプロトコル識別子である。ＴＰＩＤはＴａｇ  Ｐｒｏｔｏｃｏｌ  Ｉｄｅｎｔｉｆｉｅｒの略である。ＴＣＩ３４０は、１６ビットのタグ制御情報である。ＴＣＩはＴａｇ  Ｃｏｎｔｒｏｌ  Ｉｄｅｎｔｉｆｉｅｒの略である。
【００３３】
ＴＣＩ３４０は、ＰＣＰ３４１と、ＣＦＩ３４２と、ＶＩＤ３４３と、を含む。ＰＣＰ３４１は、フレームの優先度を示す３ビットの情報である。ＰＣＰはＰｒｉｏｒｉｔｙ  Ｃｏｄｅ  Ｐｏｉｎｔの略である。ＣＦＩ３４２は、ＭＡＣアドレスが正規フォーマットであるか否かを示す１ビットの情報である。ＣＦＩはＣａｎｏｎｉｃａｌ  Ｆｏｒｍａｔ  Ｉｎｄｉｃａｔｏｒの略である。
【００３４】
ＶＩＤ３４３は、パケット３００が属するＶＬＡＮの識別子を示す１２ビットの情報である。上述した装置内ＩＤは、ＶＩＤ３４３と、パケット３００の入力ポートを示すポート情報と、の組み合わせに応じて取得される。
【００３５】
Ｌ／Ｔ３５０は、パケット３００の長さおよびイーサネットタイプを示す２バイトの情報である。なおイーサネットは登録商標である。ユーザデータ３６０は、パケット３００によって伝送されるデータ（トラフィック）である。ＦＣＳ３７０は、フレームチェック用の４バイトの付加情報である。ＦＣＳはＦｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅの略である。
【００３６】
（実施の形態にかかる学習処理部）
図４は、実施の形態にかかる学習処理部の一例を示す図である。図４において、図１に示した部分と同様の部分については同一の符号を付して説明を省略する。図１に示した学習処理部１３４は、たとえば、図４に示すように、学習判定処理部４１０と、学習判定テーブル４２０と、学習処理バッファ４３０と、学習処理部４４０と、学習判定削除処理部４５０と、を備える。
【００３７】
学習判定処理部４１０は、出力ヘッダ処理部１３３から出力されたパケットに基づく学習パケットをキーとして学習判定テーブル４２０を検索する学習判定テーブル検索を行う。パケットに基づく学習パケットには、たとえばそのパケットの装置内ＩＤ、ポート情報（入力ポートの識別子）および送信元のＭＡＣアドレスが含まれる。
【００３８】
学習判定テーブル検索の結果がミスヒットになった場合は、そのパケットと学習情報が同じパケットが学習処理バッファ４３０に格納されていないと判断することができる。この場合は、学習判定処理部４１０は、そのパケットを学習処理バッファ４３０に書き込む。また、学習判定処理部４１０は、学習処理バッファ４３０に書き込むパケットに、そのパケットの装置内ＩＤやポート情報（入力ポートの識別子）を付加する。また、この場合に、学習判定処理部４１０は、そのパケットに基づく学習情報（装置内ＩＤ、ポート情報および送信元のＭＡＣアドレスの組み合わせ）を学習判定テーブル４２０に登録する。
【００３９】
学習判定テーブル検索の結果がヒットになった場合は、そのパケットと学習情報が同じパケットが学習処理バッファ４３０に格納されていると判断することができる。この場合は、学習判定処理部４１０は、そのパケットを学習処理バッファ４３０に書き込まずに破棄する。また、この場合に、学習判定処理部４１０は、そのパケットに基づく学習情報を学習判定テーブル４２０に登録しない。
【００４０】
また、学習判定処理部４１０は、学習判定テーブル検索の結果がミスヒットになっても、学習処理バッファ４３０に所定の空き容量がない場合は、学習判定テーブル検索の結果がヒットになった場合と同様にそのパケットを破棄する。この場合に、学習判定処理部４１０は、そのパケットに基づく学習情報を学習判定テーブル４２０に登録しない。
【００４１】
学習判定テーブル４２０は、学習処理バッファ４３０に格納されているパケットの学習情報（装置内ＩＤ、ポート情報および送信元のＭＡＣアドレスの組み合わせ）を示すテーブルである。学習判定テーブル４２０は、たとえばパケット転送回路１３０の内部メモリに記憶される。
【００４２】
学習処理バッファ４３０は、学習判定処理部４１０によって書き込まれたパケットをバッファリングするＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ：先入れ先出し）メモリである。
【００４３】
学習処理部４４０は、学習処理バッファ４３０に書き込まれたパケットを順次読み出す。そして、学習処理部４４０は、パケットを読み出すことにより、調停処理部１３５を介して学習テーブル１４１にアクセスすることにより、読み出したパケットについての送信元検索を行う。たとえば、学習処理部４４０は、読み出したパケットの装置内ＩＤおよび送信元のＭＡＣアドレスの組み合わせをキーとして学習テーブル１４１を検索する送信元検索を行う。
【００４４】
送信元検索の結果がミスヒットであった場合は、そのパケットについて学習済みでないと判断することができる。この場合は、学習処理部４４０は、そのパケットの装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報（入力ポートの識別子）の組み合わせを学習テーブル１４１に新規登録する。
【００４５】
送信元検索の結果がヒットであった場合は、そのパケットについて学習済みであると判断することができる。この場合は、学習処理部４４０は、学習テーブル１４１におけるポート情報のうち、読み出したパケットの装置内ＩＤおよび送信元のＭＡＣアドレスの組み合わせに対応するポート情報を、読み出したパケットに付加されたポート情報に書き換える再学習を行う。なお、読み出したパケットの装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報（入力ポートの識別子）の組み合わせが学習テーブル１４１に登録されている場合は、学習処理部４４０はこの再学習を行わなくてもよい。
【００４６】
また、学習処理部４４０は、読み出したパケットを学習判定削除処理部４５０へ通知する。学習判定削除処理部４５０は、学習処理部４４０から通知されたパケットの装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報の組み合わせを学習判定テーブル４２０から削除する。これにより、学習判定テーブル４２０には、学習処理バッファ４３０に格納されているパケットに基づく学習情報が格納されることになる。
【００４７】
入力されたパケットに基づく学習情報が学習判定テーブル４２０に登録されていない場合にそのパケットに基づく学習情報を学習処理バッファ４３０に格納する格納部は、たとえば学習判定処理部４１０により実現することができる。学習処理バッファ４３０に格納された学習情報を読み出し、読み出した学習情報に基づいて学習テーブル１４１を更新する処理部は、たとえば学習処理部４４０により実現することができる。
【００４８】
（実施の形態にかかるパケット転送回路による処理）
図５および図６は、実施の形態にかかるパケット転送回路による処理の一例を示すフローチャートである。パケット転送回路１３０は、ＰＨＹ／ＭＡＣ回路１２０からのパケット入力時に、たとえば図５，図６に示す各ステップを実行する。
【００４９】
まず、パケット転送回路１３０は、入力されたパケットのヘッダを解析する（ステップＳ５０１）。ステップＳ５０１は、たとえばパケット解析部１３１により行われる。たとえば、パケット解析部１３１は、入力されたパケットのヘッダに含まれる送信先のＭＡＣアドレス、送信元のＭＡＣアドレスおよびＶＩＤを取得する。また、パケット解析部１３１は、取得したＶＩＤと、入力されたパケットに付加されたポート情報と、の組み合わせに対応する装置内ＩＤを取得する。
【００５０】
つぎに、パケット転送回路１３０は、入力されたパケットについての宛先検索を行い、そのパケットについて学習済みであるか否かを判断する（ステップＳ５０２）。ステップＳ５０２は、たとえば宛先検索部１３２により行われる。たとえば、宛先検索部１３２は、ステップＳ５０１の解析により得られた送信先のＭＡＣアドレスおよび装置内ＩＤの組み合わせをキーとして、調停処理部１３５を介して学習テーブル１４１を検索する。そして、宛先検索部１３２は、検索の結果がヒットであった場合はそのパケットについて学習済みであると判断し、検索の結果がミスヒットであった場合はそのパケットについて学習済みでないと判断する。
【００５１】
ステップＳ５０２において、学習済みである場合（ステップＳ５０２：Ｙｅｓ）は、パケット転送回路１３０は、入力されたパケットについてユニキャスト転送を有効にし（ステップＳ５０３）、ステップＳ５０５へ移行する。ステップＳ５０３は、たとえば宛先検索部１３２により行われる。たとえば、宛先検索部１３２は、ＰＨＹ／ＭＡＣ回路１２０における出力ポートのうちのステップＳ５０２の宛先検索によりヒットしたポート情報が示すポートを、入力されたパケットの出力先ポートとして設定する。
【００５２】
ステップＳ５０２において、学習済みでない場合（ステップＳ５０２：Ｎｏ）は、パケット転送回路１３０は、入力されたパケットについてフラッディング転送を有効にし（ステップＳ５０４）、ステップＳ５０５へ移行する。ステップＳ５０４は、たとえば宛先検索部１３２により行われる。たとえば、宛先検索部１３２は、ＰＨＹ／ＭＡＣ回路１２０におけるすべての出力ポートを、入力されたパケットの出力先ポートとして設定する。ただし、フラッディング転送の設定はこれに限らない。たとえば、宛先検索部１３２は、ＰＨＹ／ＭＡＣ回路１２０におけるポートのうちの、入力されたパケットのＶＩＤに対応付けられたすべてのポートを出力先ポートとして設定してもよい。
【００５３】
つぎに、パケット転送回路１３０は、入力されたパケットについて出力ヘッダ処理を行う（ステップＳ５０５）。ステップＳ５０５は、たとえば出力ヘッダ処理部１３３により行われる。たとえば、出力ヘッダ処理部１３３は、入力されたパケットについて、ＥｏＥやＭＰＬＳなどのヘッダ書き換えを行う。
【００５４】
つぎに、パケット転送回路１３０は、入力されたパケットを、ＰＨＹ／ＭＡＣ回路１２０における出力ポートのうちのそのパケットについて設定された出力先ポートへ出力する（ステップＳ５０６）。これにより、ＰＨＹ／ＭＡＣ回路１２０からパケット転送回路１３０へ入力されたパケットが、ＰＨＹ／ＭＡＣ回路１２０の出力ポートから他の装置へ転送される。ステップＳ５０６は、たとえば出力ヘッダ処理部１３３により行われる。
【００５５】
つぎに、パケット転送回路１３０は、入力されたパケットについての学習処理を行う。まず、パケット転送回路１３０は、入力されたパケットについての学習判定テーブル検索を行う（ステップＳ５０７）。ステップＳ５０７は、たとえば学習判定処理部４１０により行われる。たとえば、学習判定処理部４１０は、入力されたパケットの装置内ＩＤ、ポート情報および送信元のＭＡＣアドレスの組み合わせをキーとして学習判定テーブル４２０を検索する。
【００５６】
つぎに、パケット転送回路１３０は、ステップＳ５０７の学習判定テーブル検索の結果に基づいて、入力されたパケットが学習処理中であるか否かを判断する（ステップＳ５０８）。ステップＳ５０８は、たとえば学習判定処理部４１０により行われる。たとえば、学習判定処理部４１０は、ステップＳ５０７による学習判定テーブル検索の結果がヒットであれば学習処理中であると判断し、ステップＳ５０７による学習判定テーブル検索の結果がミスヒットであれば学習処理中でないと判断する。
【００５７】
ステップＳ５０８において、入力されたパケットが学習処理中である場合（ステップＳ５０８：Ｙｅｓ）は、パケット転送回路１３０は、入力されたパケットについての学習処理をスキップし（ステップＳ５０９）、一連の処理を終了する。この場合は、入力されたパケットは学習処理バッファ４３０に書き込まれない。
【００５８】
ステップＳ５０８において、入力されたパケットが学習処理中でない場合（ステップＳ５０８：Ｎｏ）は、パケット転送回路１３０は、入力されたパケットを格納可能な学習処理バッファ４３０の空きをチェックする（ステップＳ５１０）。ステップＳ５１０は、たとえば学習判定処理部４１０により行われる。たとえば、学習判定処理部４１０は、学習処理バッファ４３０の空き容量がパケット１個分の空き容量以上であるか否かをチェックする。
【００５９】
つぎに、パケット転送回路１３０は、ステップＳ５１０によるチェックの結果、入力されたパケットを格納可能な学習処理バッファ４３０の空きがあるか否かを判断する（ステップＳ５１１）。空きがない場合（ステップＳ５１１：Ｎｏ）は、パケット転送回路１３０は、入力されたパケットについての学習処理をスキップし（ステップＳ５１２）、一連の処理を終了する。この場合は、入力されたパケットは学習処理バッファ４３０に書き込まれない。
【００６０】
ステップＳ５１１において、空きがある場合（ステップＳ５１１：Ｙｅｓ）は、パケット転送回路１３０は、入力されたパケットに基づく学習情報を学習判定テーブル４２０へ登録する（ステップＳ５１３）。ステップＳ５１３は、たとえば学習判定処理部４１０により行われる。たとえば、学習判定処理部４１０は、入力されたパケットの装置内ＩＤ、ポート情報および送信元のＭＡＣアドレスの組み合わせを学習判定テーブル４２０へ登録する。
【００６１】
また、パケット転送回路１３０は、入力されたパケットを学習処理バッファ４３０へ書き込む（ステップＳ５１４）。ステップＳ５１４は、たとえば学習判定処理部４１０により行われる。たとえば、学習判定処理部４１０は、入力されたパケットを、そのパケットの装置内ＩＤおよびポート情報（入力ポートの識別子）とともに学習処理バッファ４３０へ書き込む。
【００６２】
つぎに、パケット転送回路１３０は、ステップＳ５１４によって学習処理バッファ４３０に書き込んだパケットを学習処理バッファ４３０から読み出す（ステップＳ５１５）。ステップＳ５１５は、たとえば学習処理部４４０により行われる。たとえば、学習処理部４４０は、ステップＳ５１４によって学習処理バッファ４３０に書き込まれたパケットの学習処理バッファ４３０からの読み出し順がくると、そのパケットを学習処理バッファ４３０から読み出す。
【００６３】
つぎに、パケット転送回路１３０は、ステップＳ５１５によって読み出したパケットについて送信元検索を行い、そのパケットについて学習済みであるか否かを判断する（ステップＳ５１６）。ステップＳ５１６は、たとえば学習処理部４４０により行われる。たとえば、学習処理部４４０は、ステップＳ５１５によって読み出したパケットの装置内ＩＤおよび送信元のＭＡＣアドレスの組み合わせをキーとして、調停処理部１３５を介して学習テーブル１４１を検索する。そして、学習処理部４４０は、検索の結果がヒットであった場合はそのパケットについて学習済みであると判断し、検索の結果がミスヒットであった場合はそのパケットについて学習済みでないと判断する。
【００６４】
ステップＳ５１６において、学習済みでない場合（ステップＳ５１６：Ｎｏ）は、パケット転送回路１３０は、ステップＳ５１５によって読み出したパケットを学習テーブル１４１に新規登録する（ステップＳ５１７）。ステップＳ５１７は、たとえば学習処理部４４０により行われる。たとえば、学習処理部４４０は、ステップＳ５１５によって読み出したパケットの装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報の組み合わせを、調停処理部１３５を介して学習テーブル１４１に追加する。
【００６５】
ステップＳ５１６において、学習済みである場合（ステップＳ５１６：Ｙｅｓ）は、パケット転送回路１３０は、ステップＳ５１５によって読み出したパケットを学習テーブル１４１に再登録する（ステップＳ５１８）。ステップＳ５１８は、たとえば学習処理部４４０により行われる。たとえば、学習処理部４４０は、学習テーブル１４１におけるポート情報のうち、ステップＳ５１５によって読み出したパケットの装置内ＩＤおよび送信元のＭＡＣアドレスの組み合わせに対応するポート情報を、そのパケットに付加されたポート情報に書き換える。
【００６６】
また、パケット転送回路１３０は、ステップＳ５１５によって読み出したパケットの登録を学習判定テーブル４２０から削除し（ステップＳ５１９）、一連の処理を終了する。ステップＳ５１９は、たとえば学習判定削除処理部４５０により行われる。たとえば、学習判定削除処理部４５０は、ステップＳ５１５によって読み出されたパケットの装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報の組み合わせを学習判定テーブル４２０から削除する。
【００６７】
図５，図６に示した各ステップにより、パケット転送回路１３０は、ＰＨＹ／ＭＡＣ回路１２０から出力されたパケットに対して出力ポートを設定し、出力ポートを設定したパケットをＰＨＹ／ＭＡＣ回路１２０へ出力することができる。また、学習処理において、学習処理バッファ４３０に格納されているパケットと学習情報が同じパケットについては学習処理バッファ４３０に格納しないようにすることができる。
【００６８】
これにより、たとえば、大容量の入力帯域のパケットによって学習処理バッファ４３０が占有されることを回避し、小容量の入力帯域のパケットの学習漏れを抑制することができる。このため、フラッディング転送が発生する頻度を減らし、パケット処理装置１００やネットワーク内のリソースを有効に利用することが可能になる。なお、ステップＳ５０６によるパケットの出力と、ステップＳ５０７〜Ｓ５１９による学習処理と、は並行して実行されてもよい。
【００６９】
（実施の形態にかかる学習処理バッファへのパケットの書き込み）
図７は、実施の形態にかかる学習処理バッファへのパケットの書き込みの一例を示す図である。図７に示すフロー７０１，７０２は、パケット転送回路１３０へ入力されるパケットの各フローである。フロー７０１は、フロー７０２より大容量の帯域のフローである。一例としては、フロー７０１は１００［Ｇｂｐｓ］のフローであり、フロー７０２は０．１［Ｇｂｐｓ］のフローである。
【００７０】
また、フロー７０１のパケットをパケット＜１＞とし、パケット＜１＞の装置内ＩＤを“Ａ”、パケット＜１＞のポート情報（入力ポートの識別子）を“１”とする。また、フロー７０２のパケットをパケット＜２＞とし、パケット＜２＞の装置内ＩＤを“Ｂ”、パケット＜２＞のポート情報（入力ポートの識別子）を“２”とする。
【００７１】
学習処理バッファ４３０には、フロー７０１のパケット＜１＞と、フロー７０２のパケット＜２＞と、が格納される。このとき、フロー７０１の複数のパケット＜１＞は互いに学習情報が重複する。このため、実施の形態にかかるパケット処理装置１００によれば、大容量のフロー７０１のパケット＜１＞であっても１個のパケットしか学習処理バッファ４３０に格納されない。このため、学習処理バッファ４３０が大容量のフロー７０１のパケット＜１＞によって占有されて小容量のフロー７０２のパケット＜２＞が学習処理バッファ４３０に書き込まれなくなることを回避することができる。
【００７２】
（実施の形態にかかる学習判定処理部による学習判定処理）
図８は、実施の形態にかかる学習判定処理部による学習判定処理の一例を示す図である。図８に示す状態８０１は、学習判定テーブル４２０および学習処理バッファ４３０の初期状態を示している。状態８０１においては、学習判定テーブル４２０および学習処理バッファ４３０は空である。
【００７３】
状態８０１において、たとえば図７に示したフロー７０１のパケット＜１＞がパケット転送回路１３０へ入力されたとする。また、パケット＜１＞の送信元のＭＡＣアドレスを“ｘｘ．ｘｘ．ｘｘ．ｘｘ．ｘｘ．ｘｘ”とする。この場合は、学習判定テーブル４２０および学習処理バッファ４３０は状態８０２のようになる。状態８０２においては、学習処理バッファ４３０にはパケット＜１＞が格納され、学習判定テーブル４２０にはパケット＜１＞に基づく学習情報が登録されている。学習情報には、装置内ＩＤ、ポート情報および送信元のＭＡＣアドレスが含まれる。
【００７４】
状態８０２において、たとえば図７に示したフロー７０１のパケット＜１＞がパケット転送回路１３０へ再度入力されたとする。この場合は、学習判定テーブル４２０および学習処理バッファ４３０は、状態８０２と同様の状態８０３のようになる。すなわち、再度入力されたパケット＜１＞の学習情報は学習判定テーブル４２０に登録済みであるため、このパケット＜１＞は学習処理バッファ４３０に格納されずに破棄される。これにより、重複フレームの学習を回避することができる。
【００７５】
状態８０２において、たとえば図７に示したフロー７０２のパケット＜２＞がパケット転送回路１３０へ入力されたとする。また、このパケット＜２＞の送信元のＭＡＣアドレスを“ｙｙ．ｙｙ．ｙｙ．ｙｙ．ｙｙ．ｙｙ”とする。この場合は、学習判定テーブル４２０および学習処理バッファ４３０は、状態８０４のようになる。すなわち、このパケット＜２＞に基づく学習情報は学習判定テーブル４２０に未登録であるため、パケット＜２＞は学習処理バッファ４３０におけるパケット＜１＞の後に格納される。また、パケット＜２＞に基づく学習情報が学習判定テーブル４２０に追加登録される。
【００７６】
図９は、実施の形態にかかる学習判定処理部による学習判定処理の他の一例を示す図である。図９に示す状態９０１は、たとえば図８に示した状態８０４と同様に、学習処理バッファ４３０にパケット＜１＞およびパケット＜２＞が格納され、学習判定テーブル４２０にパケット＜１＞およびパケット＜２＞に基づく各学習情報が格納されている状態である。
【００７７】
状態９０１において、パケット＜２＞の送信元、すなわち送信元のＭＡＣアドレスが“ｙｙ．ｙｙ．ｙｙ．ｙｙ．ｙｙ．ｙｙ”の端末の接続ポートが、ポート情報＝２が示すポートから、ポート情報＝３が示すポートに切り替わったとする（ポート変更）。また、その端末の移動先にも同一の装置内ＩＤが登録されているとする。この場合は、学習判定テーブル４２０および学習処理バッファ４３０は、状態９０１と同様の状態９０２のようになる。すなわち、ポート変更のみでは学習判定テーブル４２０および学習処理バッファ４３０の状態は変化しない。
【００７８】
状態９０２において、装置内ＩＤが“Ｂ”、ポート情報（入力ポートの識別子）が“３”、送信元のＭＡＣアドレスが“ｙｙ．ｙｙ．ｙｙ．ｙｙ．ｙｙ．ｙｙ”であるパケット＜３＞がパケット転送回路１３０へ入力されたとする。このパケットは、上述したポート変更があった端末からのパケットである。この場合は、学習判定テーブル４２０および学習処理バッファ４３０は、状態９０３のようになる。
【００７９】
すなわち、パケット＜３＞の学習情報のうちの装置内ＩＤおよび送信元のＭＡＣアドレスは学習判定テーブル４２０の内容と一致しているが、ポート情報は学習判定テーブル４２０の内容と一致していない。このため、パケット＜３＞は学習処理バッファ４３０におけるパケット＜２＞の後に格納される。また、パケット＜３＞の学習情報が学習判定テーブル４２０に追加登録される。
【００８０】
この場合に、ポート変更前のパケット＜２＞の内容が学習処理部４４０によって学習テーブル１４１に一時的に登録されることになるが、その後にポート変更後のパケット＜３＞の内容によって再登録（再学習）が行われる。このため、変更前のポートへパケットが転送される状態は一時的に留めることができる。
【００８１】
（学習処理バッファへの格納対象について）
学習処理バッファ４３０に対して学習対象のパケットおよびその装置内ＩＤおよびポート情報を格納する構成について説明したが、学習処理バッファ４３０にパケットを格納しなくてもよい。すなわち、学習処理バッファ４３０には少なくとも学習対象のパケットに基づく学習情報を格納すればよい。これにより、学習処理バッファ４３０に格納される情報の量を少なくすることができる。
【００８２】
たとえば、図４に示した学習判定処理部４１０は、学習処理バッファ４３０に対して、入力されたパケットの装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報の組み合わせを格納してもよい。この場合に、学習処理部４４０は、学習処理バッファ４３０から装置内ＩＤ、送信元のＭＡＣアドレスおよびポート情報の組み合わせを読み出し、読み出した組み合わせを学習テーブル１４１に登録する。
【００８３】
（学習テーブルの内容について）
装置内ＩＤおよびＭＡＣアドレスの組み合わせとポート情報とを対応付ける学習テーブル１４１を用いる構成について説明したが、学習テーブル１４１は少なくともパケットのアドレスとポート情報とを対応付けるテーブルであればよい。たとえば、学習テーブル１４１は、ＭＡＣアドレスとポート情報とを対応付けるテーブルであってもよい。
【００８４】
この場合に、上述した宛先検索は、たとえば送信先のＭＡＣアドレスをキーとして行われる。また、上述した送信元検索は、たとえば送信元のＭＡＣアドレスをキーとして行われる。また、上述したパケットに基づく学習情報には、送信元のＭＡＣアドレスおよびポート情報（入力ポートの識別子）が含まれる。
【００８５】
（パケット処理装置１００の適用先について）
パケット処理装置１００がＬＡＮスイッチである構成について説明したが、パケット処理装置１００はＬＡＮスイッチに限らず、各種のＬ２スイッチやＬ３スイッチ等とすることができる。
【００８６】
（学習テーブルの記憶領域について）
学習テーブル１４１がパケット転送回路１３０の外部の外部メモリ１４０に記憶される構成について説明したが、学習テーブル１４１はたとえばパケット転送回路１３０の内部のメモリに記憶されてもよい。このような構成においても、学習対象のパケットを学習処理バッファ４３０によってバッファリングする構成において、アドレス学習を効率よく行うことができる。
【００８７】
このように、実施の形態にかかるパケット処理装置１００は、入力されたパケットに基づく学習情報が学習判定テーブル４２０に登録されていない場合に、そのパケットに基づく学習情報を学習処理バッファ４３０に格納する。また、パケット処理装置１００は、この場合に、そのパケットに基づく学習情報を学習判定テーブル４２０に登録する。
【００８８】
また、パケット処理装置１００は、入力されたパケットに基づく学習情報が学習判定テーブル４２０に登録されている場合は、そのパケットに基づく学習情報を学習処理バッファ４３０に格納しない。また、パケット処理装置１００は、この場合に、そのパケットに基づく学習情報を学習判定テーブル４２０に登録しない。
【００８９】
そして、パケット処理装置１００は、学習処理バッファ４３０から読み出した学習情報に基づくパケットのアドレスとポートとの対応関係を学習テーブル１４１に登録し、その学習情報の登録を学習判定テーブル４２０から削除する。これにより、同一内容の複数の学習情報が学習処理バッファ４３０に格納されないようにし、アドレス学習を効率よく行うことができる。このため、たとえば小容量の入力帯域についてアドレス学習に時間がかかりフラッディングが発生しやすくなることを回避することができる。
【００９０】
また、学習処理部１３４を含むパケット転送回路１３０の外部の外部メモリ１４０に学習テーブル１４１が記憶され、学習処理部１３４を含むパケット転送回路１３０の内部のメモリに学習判定テーブル４２０が記憶されている構成としてもよい。これにより、学習テーブル１４１の大容量化を容易にすることができる。また、実施の形態によれば学習処理バッファ４３０に格納され学習テーブル１４１の更新に用いられる学習情報が少なくなるため、外部メモリ１４０へのアクセスがボトルネックとなることによる学習処理の遅延を抑制することができる。このため、学習処理の遅延を抑制しつつ学習テーブル１４１の大容量化を容易にすることができる。
【００９１】
以上説明したように、パケット処理装置およびパケット処理方法によれば、アドレス学習を効率よく行うことができる。
【００９２】
たとえば、入力された各パケットに対して学習処理（アドレス学習）を行うＬＡＮスイッチにおいては、学習テーブルの記憶領域として、大容量化が容易な外部メモリが用いられている。このため、近年のパケット処理の高速化により、外部メモリへのアクセスが学習処理のボトルネックとなっている。
【００９３】
これに対して、学習対象のパケットをバッファリングして学習速度を落とす構成が考えられる。しかしながら、このような構成においては、学習対象のパケットをバッファリングするバッファには大容量の入力帯域（フロー）のパケットが入る割合が多くなる。このため、小容量のパケットがバッファに入って学習されるまでに時間がかかる。
【００９４】
すなわち、大容量の入力帯域と小容量の入力帯域が混在していると、大容量の入力帯域のパケットでバッファが占有され、小容量の入力帯域のパケットが破棄され、小容量の入力帯域のパケットが学習できない、または学習されるまでに長い時間を要する。学習されるまでの時間が長いと、未学習パケットのフラッディングが行われるため、装置内やシステムのリソースを無駄に消費し、装置やシステムの性能低下を招く。性能低下には、たとえば処理速度の低下や、消費電力の増加などがある。
【００９５】
これに対して、上述した実施の形態によれば、学習予定のパケットを監視し、同じ入力帯域のパケットが重複して学習されることを避けることができる。これにより、フローの容量（たとえばユーザの使用帯域）によらず、各フローのアドレス学習を効率よく行うことができる。たとえば、アドレス学習の遅延を少なくすることで、フラッディングの発生を少なくすることができる。これにより、装置内やシステムのリソースを無駄に消費することによる装置やシステムの性能低下を抑制することができる。
【００９６】
一例として、一般的に音声や静止画データであれば１００Ｍ帯域、動画データであれば１Ｇ〜１０Ｇ帯域が使われる。このため、従来技術において、音声や静止画データが１フローあり動画データが１フローある場合に、音声や静止画データが学習される確率は、動画データの学習される確率の１０％（＝１００Ｍ／１Ｇ＊１００）となる。これに対して、上述した実施の形態によれば、同一の条件において、音声や静止画データが学習される確率は、動画データの学習される確率と同じ（１００％）となる。
【００９７】
また、ポート変更（端末移動）が発生した場合に、従来技術では過去のポートへの転送が継続しパケットのロスが発生し続けるが、上述した実施の形態によれば、ポート変更から短時間で再登録が行われるため、ロスするパケットを減らすことができる。
【００９８】
上述した各実施の形態に関し、さらに以下の付記を開示する。
【００９９】
（付記１）パケットのアドレスとポートとを対応付ける第１テーブルに基づいて、入力されたパケットの送信先のアドレスに対応するポートから前記入力されたパケットを出力するパケット処理装置であって、
前記入力されたパケットに基づく学習情報が登録される第２テーブルと、
前記入力されたパケットに基づく学習情報を格納可能なバッファと、
前記入力されたパケットに基づく学習情報が前記第２テーブルに登録されていない場合に、前記入力されたパケットに基づく学習情報を前記バッファに格納して前記入力されたパケットに基づく学習情報を前記第２テーブルに登録する格納部と、
前記バッファに格納された学習情報を読み出し、前記バッファから読み出した学習情報に基づいて前記第１テーブルを更新し、前記バッファから読み出した学習情報を前記第２テーブルから削除する処理部と、
を備えることを特徴とするパケット処理装置。
【０１００】
（付記２）前記格納部は、前記入力されたパケットに基づく学習情報が前記第２テーブルに登録されている場合に、前記入力されたパケットに基づく学習情報を前記バッファに格納せず前記入力されたパケットに基づく学習情報を前記第２テーブルに登録しないことを特徴とする付記１に記載のパケット処理装置。
【０１０１】
（付記３）前記第１テーブルは、前記バッファ、前記格納部および前記処理部を含む回路の外部のメモリに記憶され、前記第２テーブルは前記回路の内部のメモリに記憶されることを特徴とする付記１または２に記載のパケット処理装置。
【０１０２】
（付記４）前記パケットに基づく学習情報は、前記パケットの送信元のアドレスと、前記パケットが入力されたポートの識別子と、を含む情報であることを特徴とする付記１〜３のいずれか一つに記載のパケット処理装置。
【０１０３】
（付記５）前記処理部は、前記バッファから読み出した学習情報に基づいて、前記入力されたパケットの送信元のアドレスと、前記入力されたパケットが入力されたポートと、を対応付けて前記第１テーブルに登録することを特徴とする付記４に記載のパケット処理装置。
【０１０４】
（付記６）パケットのアドレスとポートとを対応付ける第１テーブルに基づいて、入力されたパケットの送信先のアドレスに対応するポートから前記入力されたパケットを出力するパケット処理装置によるパケット処理方法であって、
前記入力されたパケットに基づく学習情報が第２テーブルに登録されていない場合に、前記入力されたパケットに基づく学習情報をバッファに格納して前記入力されたパケットに基づく学習情報を前記第２テーブルに登録し、
前記バッファに格納した学習情報を読み出し、前記バッファから読み出した学習情報に基づいて前記第１テーブルを更新し、前記バッファから読み出した学習情報を前記第２テーブルから削除する、
ことを特徴とするパケット処理方法。
【符号の説明】
【０１０５】
１００  パケット処理装置
１１０  ＣＰＵ
１２０  ＰＨＹ／ＭＡＣ回路
１２１  多重化部
１２２  多重分離部
１３０  パケット転送回路
１３１  パケット解析部
１３２  宛先検索部
１３３  出力ヘッダ処理部
１３４，４４０  学習処理部
１３５  調停処理部
１４０  外部メモリ
１４１  学習テーブル
３００  パケット
３１０  ＤＡ
３２０  ＳＡ
３３０  ＴＰＩＤ
３４０  ＴＣＩ
３４１  ＰＣＰ
３４２  ＣＦＩ
３４３  ＶＩＤ
３５０  Ｌ／Ｔ
３６０  ユーザデータ
３７０  ＦＣＳ
４１０  学習判定処理部
４２０  学習判定テーブル
４３０  学習処理バッファ
４５０  学習判定削除処理部
７０１，７０２  フロー
８０１〜８０４，９０１〜９０３  状態
【図１】
2018006795.tif 000003
【図２】
2018006795.tif 000004
【図３】
2018006795.tif 000005
【図４】
2018006795.tif 000006
【図５】
2018006795.tif 000007
【図６】
2018006795.tif 000008
【図７】
2018006795.tif 000009
【図８】
2018006795.tif 000010
【図９】
2018006795.tif 000011