(57)【要約】      （修正有）【課題】ノードの重要度／通信頻度を考慮したＭＡＣ学習テーブルへの登録を可能にする。【解決手段】各ノードは、登録／削除／参照のコマンドのＭＡＣ学習プロトコルＤをスイッチングハブ１０に送信する。スイッチングハブ１０は、受信したプロトコルＤのコマンドが登録であればＭＡＣ学習設定テーブル１５に指示された設定データを登録する一方、コマンドが削除であれば両テーブル１４、１５の該当情報を削除する。その後にテーブル１５上で同一のハッシュ値を持つ設定データ群を優先度順にソートし、ソート結果がＭＡＣ学習テーブル１４上の同一ハッシュ値の個数制限内で変化していれば、テーブル１４の内容を該ソート結果に沿って修正する。コマンドが参照であれば、両テーブル１４、１５の登録状況を参照し、参照した結果を各ノードに返信する。【選択図】図２
2018157460.tif 000002
【特許請求の範囲】
【請求項１】
スイッチングハブのポートと、ポートに接続されたノードのＭＡＣアドレスとを対応付けた情報をＭＡＣ学習テーブルに登録するＭＡＣアドレスの学習方法であって、
ノードが、ＭＡＣアドレスの登録を優先度付で指示するコマンドを含むＭＡＣ学習プロトコルをスイッチングハブに送信するプロトコル送信ステップと、
スイッチングハブが、ＭＡＣアドレス毎にハッシュ変換のハッシュ値および優先度がＭＡＣ学習テーブルの設定データとして登録されたＭＡＣ学習設定テーブルに対して、前記プロトコルの受信に応じて前記コマンドで指示されたＭＡＣアドレスの設定データを登録するテーブル処理ステップと、
スイッチングハブが、ＭＡＣ学習設定テーブルにおいて同一のハッシュ値を持つ設定データ群を優先度順にソートし、ソート結果がＭＡＣ学習テーブル上の同一ハッシュ値の個数制限内で変化していれば、ＭＡＣ学習テーブルの内容を該ソート結果に沿って修正するテーブル修正ステップと、
を有することを特徴とするＭＡＣアドレスの学習方法。
【請求項２】
スイッチングハブのポートと、ポートに接続されたノードのＭＡＣアドレスとを対応付けた情報をＭＡＣ学習テーブルに登録するＭＡＣアドレスの学習方法であって、
ノードが、ＭＡＣアドレスの削除を指示するコマンドを含むＭＡＣ学習プロトコルをスイッチングハブに送信するプロトコル送信ステップと、
スイッチングハブが、前記プロトコルの受信に応じて前記コマンドで指定されたＭＡＣアドレスの前記情報をＭＡＣ学習テーブルから削除する第１テーブル処理ステップと、
スイッチングハブが、ＭＡＣアドレス毎にハッシュ変換後のハッシュ値および優先度がＭＡＣ学習テーブルの設定データとして登録されたＭＡＣ学習設定テーブルに対して、前記コマンドで指示されたＭＡＣアドレスの設定データを削除する第２テーブル処理ステップと、
スイッチングハブが、ＭＡＣ学習設定テーブルにおいて同一のハッシュ値を持つ設定データ群を優先度順にソートし、ソート結果がＭＡＣ学習テーブル上の同一ハッシュ値の個数制限内で変化していれば、ＭＡＣ学習テーブルの内容を該ソート結果に沿って修正するテーブル修正ステップと、
を有することを特徴とするＭＡＣアドレスの学習方法。
【請求項３】
プロトコル送信ステップが、前記両テーブルの参照を指示するコマンドを含むＭＡＣ学習プロトコルを送信するステップを有し、
スイッチングハブが、前記参照を指示するコマンドを含むＭＡＣ学習プロトコルの受信に応じて前記両テーブルのそれぞれの登録状況を参照し、参照した結果をノードに返信するステップをさらに有する
ことを特徴とする請求項１または２のいずれか１項に記載のＭＡＣアドレスの学習方法。
【請求項４】
プロトコル送信ステップにおいて、請求項１〜３のいずれか１項に記載のＭＡＣ学習プロトコルを周期的にスイッチングハブに送信する
ことを特徴とする請求項１〜３のいずれか１項に記載のＭＡＣアドレスの学習方法。
【請求項５】
第１テーブル処理ステップにおいて、ＭＡＣ学習設定テーブルに設定保持時間が記録されていれば、設定保持時間の経過したＭＡＣアドレスの前記情報をＭＡＣ学習テーブルから削除し、
第２テーブル処理ステップにおいて、設定保持時間の経過したＭＡＣアドレスの設定データをＭＡＣ学習設定テーブルから削除する
ことを特徴とする請求項２記載のＭＡＣアドレスの学習方法。
【請求項６】
スイッチングハブのポートと、ポートに接続されたノードのＭＡＣアドレスとを対応付けた情報をＭＡＣ学習テーブルに登録するＭＡＣアドレスの学習方法であって、
スイッチハブにノードから送信元ＭＡＣアドレスを含むＰＤＵ（プロトコル・データ・ユニット）が送信されるとＭＡＣ学習テーブルを検索し、未登録であればＭＡＣ学習テーブルに登録するステップと、
ＭＡＣ学習テーブルをエージング時間毎に参照して前記検索が無かったＭＡＣアドレスの前記情報の登録を削除するステップと、を有し、
エージング時間の長さをＭＡＣ学習テーブルの状況に応じて動的に調整可能なことを特徴とするＭＡＣアドレスの学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチングハブ（以下、スイッチと略する。）において、どのポートにどのノードが接続されていのかを記憶して学習するＭＡＣアドレスの学習方法に関する。
【背景技術】
【０００２】
一般的にスイッチは、受け取ったパケットの送信元ＭＡＣアドレスを調べ、各ポートに接続されたノード（サーバ，クライアント端末などの装置）のＭＡＣアドレスを記憶して学習する。すなわち、スイッチは、パケットを受信すると受信したポートとパケット中の送信元ＭＡＣアドレスとを対応付けてＭＡＣ学習テーブルに登録する。
【０００３】
また、パケットの送信先ＭＡＣアドレスをＭＡＣ学習テーブルから検索し、該テーブルに登録されていれば該当ポートへパケットを転送する。一方、パケットの送信先ＭＡＣアドレスがＭＡＣ学習テーブルに登録されていなければ、パケットを受信したポートを除く全ポートにパケットを転送する（フラディング）。以下、図１に基づき一般的なスイッチのＭＡＣアドレスの学習方法を説明する。
【０００４】
Ｓ０１，Ｓ０２：スイッチ１０にクライアント端末１１−１から送信元ＭＡＣアドレスＢ（ＭＡＣ−Ｂ）としてパケットＰ１が送信されると（Ｓ０１）、パケットＰ１がパケットバッファ１３へ格納される（Ｓ０２）。
【０００５】
Ｓ０３，Ｓ０４：パケットＰ１を受信したポート番号１と送信元ＭＡＣアドレス（ＭＳＣ−Ｂ）についてＭＡＣ学習テーブル１４を検索し、未登録であれば登録する（Ｓ０３）。なお、「送信先ＭＡＣアドレス＝ＭＡＣ−Ａ」がＭＡＣ学習テーブル１４に未登録であれば、フラディングの送信が実行され（Ｓ０４）、ポート番号「２．３．．．Ｎ」の各ポートにパケットＰ１のデータが送信される。
【０００６】
Ｓ０５，Ｓ０６：スイッチ１０にサーバ１２から送信先ＭＡＣアドレスＢ（ＭＡＣ−Ｂ）としてパケットＰ２が送信されると（Ｓ０５）、パケットＰ２がパケットバッファ１３へ格納される（Ｓ０６）。
【０００７】
Ｓ０７〜Ｓ１０：送信先のポート番号を得るため、あて先ＭＡＣアドレス（ＭＡＣ−Ｂ）で検索し（Ｓ０７）、ポート番号１の検索結果を得る（Ｓ０８）。その後にバッファ１３に格納されたパケットＰ２のデータをポート番号１のポートからクライアント端末１１−１に送信する（Ｓ０９）。このとき送信元ＭＡＣアドレス（ＭＡＣ−Ａ）とその受信ポート（ポート２）とは、ＭＡＣ学習テーブル１４に未登録なため、Ｓ０３に示すように、ＭＡＣ学習テーブル１４に登録される。
【０００８】
このようにスイッチ１０は、各ポートに接続されたノード（クライアント端末１１−１．．．１１−Ｎ，サーバ１２）からの通信に応じてＭＡＣ学習テーブル１４の検索・登録を実行する。なお、ノード（クライアント端末１１−１．．．１１−Ｎ，サーバ１２）は、以下ではノード１１，１２とする。
【０００９】
スイッチ１０は、ＭＡＣ学習テーブル１４の検索・登録を繰り返すことにより各ポートに接続されたノード１１，１２のＭＡＣアドレスを学習する。このときエージング時間、即ちＭＡＣ学習テーブルから削除するためのタイムアウト時間の経過にて前記検索が実行されなかった項目は削除されている。
【００１０】
その結果、スイッチ１０は、パケットを受信すると送信元ＭＡＣアドレスをＭＡＣ学習テーブルにコピーし、送信を開始するまでに送信先のポート番号を確定しなければならない。特にフレームサイズが小さく、全ポートで同時に受信処理をするときには、送信開始前までにＭＡＣ学習テーブル１４の検索・登録を実行する必要があり、通信速度が高速化すると時間的余裕が少ない。
【００１１】
この送信が遅れるとワイヤーレート（伝送速度の100％負荷）の能力を発揮できず、ＭＡＣ学習テーブル１４の容量や検索方式などが制限されてしまう。一般的にスイッチ１０はワイヤレートの能力が必要であるため、ＭＡＣ学習テーブル１４の検索・登録に許される時間は短い。
【００１２】
確かに１０Ｍｂｐｓの通信速度であればＭＡＣ学習テーブル１４上の検索時間は余裕があるため、ＭＡＣ学習テーブル１４の記憶容量を増やすことも可能である。一方、１０００Ｍｂｐｓの通信速度では時間的余裕は１０Ｍｂｐｓの１／１００なため、時間的制約が厳しい。そこで、ＭＡＣ学習テーブル１４を順次検索するのではなく、ＭＡＣアドレスをハッシュ変換し、そのハッシュ値を元にＭＡＣ学習テーブル１４を検索する。このＭＡＣ学習テーブル１４の検索・登録・削除が特許文献１，２に記載されている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−２５３４３３
【特許文献２】特開２０１０−２０８２１
【発明の概要】
【発明が解決しようとする課題】
【００１４】
（１）従来のＭＡＣアドレスの学習方法によれば、パケットを受信したポートのポート番号と送信元ＭＡＣアドレスについてＭＡＣ学習テーブル１４を検索し、ＭＡＣ学習テーブル１４に未登録であれば、該ポート番号とＭＡＣアドレスとが登録される。
【００１５】
ところが、ＭＡＣ学習テーブル１４にはパケットの受信順にＭＡＣアドレスが登録される。すなわち、ＭＡＣアドレスの登録はシステム上の重要度や通信頻度とは関係がなく、重要なサーバのＭＡＣアドレスが登録されないおそれがある。
【００１６】
（２）従来は、ＭＡＣ学習テーブル１４の検索にＭＡＣアドレスをハッシュ変換したハッシュ値を使用している。しかしながら、ハッシュ変換はハードウェア回路による方法なため、高価な装置の場合には短時間で大量のデータを扱う回路を用意できるものの、安価な装置の場合には簡易な回路が使用され、ＭＡＣ学習テーブル１４の構成が制約を受けてしまう。
【００１７】
この制約によりハッシュの分解能が小さく、同一ハッシュ値となるＭＡＣアドレスが複数存在することが少なくない。このとき同一ハッシュ値のＭＡＣアドレスが数個であれば各個に順次アクセスして検索するが、検索時間の制約からＭＡＣ学習テーブル１４への登録には個数制限が加えられている。
【００１８】
特に大量のノード１１，１２をスイッチ１０に接続するシステムでは、同一ハッシュ値となるＭＡＣアドレスが複数存在するため、ＭＡＣ学習テーブル１４上の登録数が前記個数制限に達する場合がある。この場合には新規のＭＡＣアドレスは登録されず、スイッチ１０はフラディングの転送をはじめる。
【００１９】
この状態から脱却するためにはＭＡＣ学習テーブル１４上の同一ハッシュ値のＭＡＣアドレスが削除されなければならない。この場合にはＭＡＣ学習テーブル１４上の同一ハッシュ値のノード１１，１２による通信がなく、エージング時間（ＭＡＣ学習テーブルから削除するためのタイムアウト時間）が経過する必要があるが、該ノード１１，１２の通信が継続すると削除処理が実行されず、フラディング状態のままとなる。
【００２０】
このフラディングにより、すべてのノード１１，１２にフレームが送信されるため、ネットワークの負荷が増加するおそがある。このときフレームが送信先以外の他のノード１１，１２でも観測されるため、セキュリティ上の問題が発生するおそれもある。
【００２１】
（３）スイッチ１０に接続された各ノード１１，１２を停止または取り外し、再接続するとＭＡＣ学習テーブル１４からＭＡＣアドレスが削除される。このため、通常の起動順序では正常に動作していても、途中で再起動した場合にはＭＡＣ学習テーブル１４にＭＡＣアドレスがなく、フラディング状態となるおそれがある。
【００２２】
この場合もネットワーク上の負荷が増加し、またセキュリティ上の問題が発生するおそれがある。なお、インテリジェントなＨＵＢ（スイッチングハブ＋ＳＮＭＰエージェント機能）は、あらかじめＭＡＣ学習テーブル１４へ登録可能であるが、ＭＡＣアドレスが変更されると再登録が必要となるため、同様な問題が生じうる。
【００２３】
本発明は、上述のような従来技術の問題点を解決するためになされたものであり、ノードの重要度／通信頻度を考慮したＭＡＣ学習テーブルへの登録を可能とすることでフラディング状態を改善し、ネットワーク負荷・セキュリティの改善に貢献することを解決課題としている。
【課題を解決するための手段】
【００２４】
本発明の一態様は、スイッチングハブのポートと、ポートに接続されたノードのＭＡＣアドレスとを対応付けた情報をＭＡＣ学習テーブルに登録するＭＡＣアドレスの学習方法であって、ノードが、ＭＡＣアドレスの登録を優先度付で指示するコマンドを含むＭＡＣ学習プロトコルをスイッチングハブに送信するプロトコル送信ステップと、スイッチングハブが、ＭＡＣアドレス毎にハッシュ変換のハッシュ値および優先度がＭＡＣ学習テーブルの設定データとして登録されたＭＡＣ学習設定テーブルに対して、前記プロトコルの受信に応じて前記コマンドで指示されたＭＡＣアドレスの設定データを登録するテーブル処理ステップと、スイッチングハブが、ＭＡＣ学習設定テーブルにおいて同一のハッシュ値を持つ設定データ群を優先度順にソートし、ソート結果がＭＡＣ学習テーブル上の同一ハッシュ値の個数制限内で変化していれば、ＭＡＣ学習テーブルの内容を該ソート結果に沿って修正するテーブル修正ステップと、を有することを特徴としている。
【００２５】
本発明の他の態様は、スイッチングハブのポートと、ポートに接続されたノードのＭＡＣアドレスとを対応付けた情報をＭＡＣ学習テーブルに登録するＭＡＣアドレスの学習方法であって、ノードが、ＭＡＣアドレスの削除を指示するコマンドを含むＭＡＣ学習プロトコルをスイッチングハブに送信するプロトコル送信ステップと、スイッチングハブが、前記プロトコルの受信に応じて前記コマンドで指定されたＭＡＣアドレスの前記情報をＭＡＣ学習テーブルから削除する第１テーブル処理ステップと、スイッチングハブが、ＭＡＣアドレス毎にハッシュ変換後のハッシュ値および優先度がＭＡＣ学習テーブルの設定データとして登録されたＭＡＣ学習設定テーブルに対して、前記コマンドで指示されたＭＡＣアドレスの設定データを削除する第２テーブル処理ステップと、スイッチングハブが、ＭＡＣ学習設定テーブルにおいて同一のハッシュ値を持つ設定データ群を優先度順にソートし、ソート結果がＭＡＣ学習テーブル上の同一ハッシュ値の個数制限内で変化していれば、ＭＡＣ学習テーブルの内容を該ソート結果に沿って修正するテーブル修正ステップと、を有することを特徴としている。
【００２６】
前記両態様によれば、ＭＡＣアドレスの前記情報がＭＡＣ学習テーブルに追記されるか否かは優先度の順位に左右され、優先度に応じたＭＡＣ学習テーブルへの登録が可能となる。このときプロトコル送信ステップが、前記両テーブルの参照を指示するコマンドを含むＭＡＣ学習プロトコルを送信するステップを有し、スイッチングハブが、前記参照を指示するコマンドを含むＭＡＣ学習プロトコルの受信に応じて前記両テーブルのそれぞれの登録状況を参照し、参照した結果をノードに返信するステップをさらに有する態様としてもよい。これによりノード側で前記両テーブル上に同一ハッシュ値の登録に余裕があるか否かを把握することができる。
【００２７】
また、プロトコル送信ステップにおいてＭＡＣ学習プロトコルを周期的にスイッチングハブに送信することもできる。さらに第１テーブル処理ステップにおいて、ＭＡＣ学習設定テーブルに設定保持時間が記録されていれば、設定保持時間の経過したＭＡＣアドレスの前記情報をＭＡＣ学習テーブルから削除し、第２テーブル処理ステップにおいて、設定保持時間の経過したＭＡＣアドレスの設定データをＭＡＣ学習設定テーブルから削除してもよい。これによりポートに接続されたノードが取り外されれば、設定保持時間の経過によりＭＡＣ学習テーブルからＭＡＣアドレスの前記情報を削除することができる。
【００２８】
本発明のさらに他の態様は、スイッチングハブのポートと、ポートに接続されたノードのＭＡＣアドレスとを対応付けた情報をＭＡＣ学習テーブルに登録するＭＡＣアドレスの学習方法であって、スイッチハブにノードから送信元ＭＡＣアドレスを含むＰＤＵ（プロトコル・データ・ユニット）が送信されるとＭＡＣ学習テーブルを検索し、未登録であればＭＡＣ学習テーブルに登録するステップと、ＭＡＣ学習テーブルをエージング時間毎に参照して前記検索が無かったＭＡＣアドレスの前記情報の登録を削除するステップと、を有し、エージング時間の長さをＭＡＣ学習テーブルの状況に応じて動的に調整可能なことを特徴としている。
【００２９】
例えばＭＡＣ学習テーブルが同一ハッシュ値の個数制限に到達あるいは近づいたときにエージング時間を短縮させることができる。これにより通信周期の短いノードほどＭＡＣ学習テーブルに登録され易くなる。
【発明の効果】
【００３０】
本発明によれば、ノードの重要度や通信頻度を考慮したネットワークが構築でき、ネットワーク効率の改善に貢献できる。特にＭＡＣ学習テーブルが同一ハッシュ値の個数制限に達した場合であっても、優先度によってはＭＡＣ学習テーブルに登録でき、この点でフラディング状態を緩和してネットワーク負荷やセキュリティの改善に貢献する。
【図面の簡単な説明】
【００３１】
【図１】スイッチングハブの一般的なＭＡＣアドレスの学習方法の説明図。
【図２】本発明の実施形態に係るＭＡＣアドレスの学習方法におけるＭＡＣ学習プロトコルによるＭＡＣアドレスの学習方法の説明図。
【図３】同  エージング時間の調整の説明図。
【発明を実施するための形態】
【００３２】
以下、図面に基づき本発明の実施形態に係るＭＡＣアドレスの学習方法の実施形態を説明する。ここでは図１と同様にスイッチ１０は、ポート番号１〜ＮのＮ個のポートとを備え、各ポートにはノードとしてクライアント端末１１−１．．．１１−Ｎおよびサーバ１２が接続されているものとする。以下、クライアント端末１１−１．．．１１−Ｎとサーバ１２を、背景技術の説明と同様にノード１１，１２と略して示す。
【００３３】
≪ＭＡＣアドレス学習プロトコルによる学習≫
本実施形態のＭＡＣアドレスの学習方法は、ネットワーク上の各ノード１１，１２からスイッチ１０のＩＰアドレスに対して独自のＭＡＣ学習プロトコルＤを使用してＭＡＣアドレスの登録・削除などが可能な点で従来の学習方法と異なる。
【００３４】
ここでは各ノード１１，１２は、周期的にＭＡＣアドレス学習プロトコルＤとしてユニキャストあるいはブロードキャストをスイッチ１０へ送信するものとする。この送信の周期は各ノード１１，１２に予め設定しておくものとする。
【００３５】
ＭＡＣ学習プロトコルＤは、図２に示すように、コマンド／ＭＡＣａｄｄｒｅｓｓ（以下、ＭＡＣアドレスとする。）／優先度により構成されている。一方、スイッチ１０は、ノード１１，１２からの受信パケットを一次記憶するパケットバッファ１３と、受信パケットのＭＡＣアドレスを記憶して学習するためのＭＡＣ学習テーブル１４と、ＭＡＣ学習テーブル１４の設定データが登録されたＭＡＣ学習設定テーブル１５とを備えている。
【００３６】
このＭＡＣ学習テーブル１４にはハッシュ値毎にＭＡＣアドレスとポート番号とを対応づけた情報（以下、ＭＡＣアドレスの情報と省略する。）が登録されている一方、ＭＡＣ学習設定テーブル１５の設定データとしてはＭＡＣアドレス毎にハッシュ値，優先度，タイマの値（固定値）が記録されている。
【００３７】
＜コマンドの説明＞
ＭＡＣ学習プロトコルＤのコマンドには「登録」・「削除」・「参照」の三種類が使用される。この「登録」のコマンドは、指定したＭＡＣアドレス（０はそのパケットの送信元ＭＡＣアドレス）を登録処理することを命令する。また、「削除」のコマンドは、指定したＭＡＣアドレス（０はそのパケットの送信元ＭＡＣアドレス）の削除を命令する。なお、コマンドの種類に応じてＭＡＣアドレス学習プロトコルＤの送信周期を変更することもできる。
【００３８】
（１）コマンド「登録」の説明
ＭＡＣ学習プロトコルＤのコマンドが「登録」であれば、スイッチ１０は指定されたＭＡＣアドレスと併せてハッシュ演算後のハッシュ値および優先度をＭＡＣ学習設定テーブル１５に設定データとして新規登録する。ただし、ＭＡＣ学習設定テーブル１５に指定されたＭＡＣアドレスが既に登録済みであれば、上書き登録される。
【００３９】
このときＭＡＣ学習設定テーブル１５にはタイマの値（時間の固定値）がセットされる。このタイマの値は設定保持時間に相当し、時間経過によりカウントダウンされ、「０」になれば設定データが削除される。これによりポートに接続されたノード１１，１２が存在しなくなれば、タイマの値の経過により設定データが削除され、その設定データがそのまま残ることが防止される。したがって、各ノード１１，１２は、タイマ値よりも短い周期でコマンド「登録」を含むＭＡＣ学習プロトコルをスイッチ１０に送信し、再登録を行う必要がある。
【００４０】
また、設定データの新規登録／上書登録後は、ＭＡＣ学習設定テーブル１５上で同一ハッシュ値を有する設定データが収集され、収集された設定データ群が優先度順にソートされる。このソート結果がＭＡＣ学習テーブル１４上の同一ハッシュ値の個数制限（以下、ＭＡＣ学習テーブル１４の個数制限とする。）内で変化していれば、該ソート結果に沿ってＭＡＣ学習テーブル１４の登録内容が修正される。この点で前記コマンドの登録指定によりＭＡＣ学習テーブル１４に登録されるか否かは他のノード１１，１２の優先度の状況に左右される。
【００４１】
（２）コマンド「削除」の説明
ＭＡＣ学習プロトコルＤのコマンドが「削除」であれば、ＭＡＣ学習テーブル１４から指定されたＭＡＣアドレスの情報を削除する。また、ＭＡＣ学習設定テーブル１５から指定されたＭＡＣアドレスの設定データを削除する。この削除によって優先度の順位がＭＡＣ学習テーブル１４の個数制限内に繰り上がる設定データが存在する場合がある。
【００４２】
そこで、スイッチ１０は、前記削除後にも同一ハッシュ値の設定データを収集し、設定データ群を優先度順にソートし、ソート結果がＭＡＣ学習テーブル１４の個数制限内で変化していれば、ソート結果に沿ってＭＡＣ学習テーブル１４の登録内容を修正する。この処理は前記タイマの値がカウントダウンにより「０」となって設定データが削除されたときにも実行される。
【００４３】
（３）コマンド「参照」の説明
「参照」のコマンドは、ＭＡＣ学習テーブル１４およびＭＡＣ学習設定テーブル１５の登録状態を参照し、参照結果を返信することを命令する。このとき各テーブル１４，１５の登録状態としては、指定したＭＡＣアドレスと同一のハッシュ値も参照することできる。
【００４４】
この参照結果を各ノード１１，１２に返信することにより、指定したＭＡＣアドレスと同一ハッシュ値の他のＭＡＣアドレスを存在が判明し、各テーブル１４，１５上に同一ハッシュ値の登録に余裕があるか否かを把握することができる。
【００４５】
＜具体的な処理内容＞
以下、ＭＡＣ学習プロトコルＤを用いたＭＡＣアドレスの学習方法をステップ毎に説明する。ここではコマンドが登録／削除の場合の処理と、タイマ値のカウントダウンによる削除処理とを説明する。
【００４６】
（１）コマンドが登録の場合
Ｓ１１〜Ｓ１４：スイッチングハブ１０が、ＭＡＣ学習プロトコルＤを受信すると、該プロトコルＤから各データ「コマンド／ＭＡＣアドレス／優先度」を抽出し、コマンド（登録）に応じて「ＭＡＣＭＡＣアドレス／優先度」」をＭＡＣ学習設定テーブル１５に登録する（Ｓ１１）。具体的にはＭＡＣ学習プロトコルＤの「ＭＡＣアドレス」と同一の「ＭＡＣアドレス」がＭＡＣ学習設定テーブル１５に存在すれば上書き登録する一方、存在しなければ新規登録をする。
【００４７】
また、「ＭＡＣアドレス」をＳ１１とは別系統で抽出し（Ｓ１２）、抽出された「ＭＡＣアドレス」をハッシュ演算処理し（Ｓ１３）、該演算処理後のハッシュ値をＭＡＣ学習設定テーブル１５に登録する（Ｓ１４）。この登録時に「ＭＡＣアドレス」毎にタイマの値がセットされ、これによりＭＡＣ学習設定テーブル１５には設定データとして「ＭＡＣアドレス／ハッシュ値／優先度／タイマの値」が登録される。
【００４８】
なお、タイマの値は時間によりカウントダウンし「０」にて設定データを削除するので、各ノード１１，１２は一定周期的に「登録」のコマンドを含むＭＡＣ学習プロトコルＤを送信する必要がある。
【００４９】
Ｓ１５：ＭＡＣ学習設定テーブル１５上で同一のハッシュ値の設定データを収集し、収集された設定データ群を優先度の順でソートする。このソート後においてＳ１１〜Ｓ１４で登録された設定データの優先度の順位がＭＡＣ学習テーブル１４の個数制限内であれば、該設定データに応じたＭＡＣ学習テーブルのハッシュ値の蘭にＭＡＣアドレスの情報を新たに登録する。
【００５０】
したがって、ＭＡＣ学習テーブル１４に登録されるか否かは優先度の順位に左右され、この点で優先度に応じたＭＡＣアドレスの登録が可能となる。すなわち、各ノード１１，１２からＭＡＣ学習プロトコルを送信することでＭＡＣ学習の登録を優先度の指定付で行うことができる。ここでは各ノード１１，１２が自ノードの優先度を自己申告することにより、スイッチングハブ１０が優先度の順位に従ってＭＡＣアドレスの情報をＭＡＣ学習テーブル１４に登録する。
【００５１】
その結果、受信パケットの到達順位により登録されていたＭＡＣ学習テーブル１４への登録が、各ノード１１，１２で指定された優先度の順位に左右され、この意味でノードの重要度に応じたネットワークが構築される。
【００５２】
このときＭＡＣ学習テーブル１４の個数制限に達していても、優先度によってはＭＡＣアドレスの情報が登録可能なため、フラディング状態を緩和してネットワーク負荷やセキュリティを改善することもできる。なお、ＭＡＣ学習プロトコルＤにおいて優先度を指定しないノード１１，１２は、スイッチ１０において優先度が最低と扱われる。
【００５３】
（２）コマンドが削除の場合
Ｓ２１，Ｓ２２：スイッチングハブ１０が、ＭＡＣ学習プロトコルＤのパケットを受信すると、該プロトコルＤから各データ「コマンド／ＭＡＣアドレス／優先度」を抽出する（Ｓ２１）。
【００５４】
ここで抽出された「ＭＡＣアドレス」と同一「ＭＡＣアドレス」がＭＡＣ学習設定テーブル１５に存在するか否か検索し、同一「ＭＡＣアドレス」が存在しなければ処理を終了する一方、同一「ＭＡＣアドレス」が存在すればＭＡＣ学習設定テーブル１５から削除する。また、Ｓ２１で抽出された「ＭＡＣアドレス」、即ち削除対象のＭＡＣアドレスの情報をＭＡＣ学習テーブル１４から削除する（Ｓ２２）。
【００５５】
Ｓ２３：ＭＡＣ学習設定テーブル１５上で同一のハッシュ値の設定データを収集し、収集された設定データ群を優先度の順でソートする。このソート後にＳ２２の削除の結果、優先度の順位がＭＡＣ学習テーブル１４の個数制限内に繰り上がった設定データがあれば、該設定データに応じたＭＡＣ学習テーブルのハッシュ値の蘭にＭＡＣアドレスの情報を新たに登録する。この点でも優先度に応じたＭＡＣアドレスの登録が可能となる。
【００５６】
なお、ＭＡＣ学習設定テーブル１５に登録されたタイマの値をカウントダウンし、「０」となった場合も同様な処理が実行される。すなわち、タイマの値が「０」となれば、そのＭＡＣアドレスの設定データはＭＡＣ学習設定テーブルから削除される。ここで削除されたＭＡＣアドレスの情報がＭＡＣ学習テーブル１４に存在すれば、同様に削除される。その後にＳ２３と同様な処理が実行され、ＭＡＣ学習テーブル１４に新たなＭＡＣアドレスの情報が登録可能となる。
【００５７】
≪エージング時間の調整≫
図３に基づきスイッチ１０のＭＡＣアドレスの学習におけるエージング時間の調整を説明する。このスイッチ１０は、矢印Ｘに示すように、通常のスイッチと同様にタイマに記録されたエージング時間毎にＭＡＣ学習テーブル１４を参照し、登録のための検索が無かった項目を削除する。ただし、スイッチ１０は、エージング時間をＭＡＣ学習テーブルの状況に応じて動的に調整可能な点で従来のスイッチと異なる。
【００５８】
ここではスイッチ１０は、図３のエージングテーブル１６を有しているものとする。このエージングテーブル１６にはハッシュ値毎に登録個数／設定値／タイマが記録されている。この各記録データ中、登録個数はＭＡＣ学習テーブル１４上の同一ハッシュ値の登録個数を表示している。すなわち、ＭＡＣ学習テーブル１４におけるハッシュ値の蘭の登録データの個数を示し、ハッシュ値の蘭のデータ登録／削除に応じて数値が更新される。また、設定値はＭＡＣ学習テーブル１４上のハッシュ値の蘭を更新処理する時間を表示し、タイマは更新処理までの時間を表示している。このタイマには設定値がセットされ、カウントダウンにより「０」となればスイッチ１０がハッシュ値の更新処理を開始する。
【００５９】
このエージング調整の詳細を説明すれば、スイッチ１０の起動時は未学習なため、設定値とタイマとに固定値のエージング時間がセットされ、登録個数には「０」と記録される。ここでは予め定められた一定時間毎にタイマの値をカウントダウンし、タイマの値が「０」となれば矢印Ｙの更新処理を実行する。この更新処理としては、そのハッシュ値について登録のための検索が無かった項目（ＭＡＣアドレスに関する情報）を削除する処理が実行される。この更新処理の後に設定値がタイマにセットされ、次回の処理が実行される。
【００６０】
ここで設定値は次の条件で決定される。（１）起動時は固定値、（２）登録個数の記録値がＭＡＣ学習テーブル１４の個数制限に対して少なく余裕がある場合は固定値、（３）登録個数の記録値がＭＡＣ学習テーブル１４の個数制限と同数／僅かに少ない（ＭＡＣ学習テーブル１４の個数制限数−記録値＝１）場合には前回の設定値を短縮する、（４）前記設定値を短縮するときには予め定められた最小値までとする。このとき事前設定の数値毎に段階的に短縮することができる。
【００６１】
そして、スイッチ１０の起動後にＭＡＣ学習テーブル１４への登録／削除に応じてエージングテーブル１６上の登録個数の記録値が変更された場合には以下の処理が実行される。すなわち、エージングテーブル１６上の登録個数の記録値がＭＡＣ学習テーブル１４の個数制限までに余裕があれば、設定値は固定値を維持する。ここでは「個数制限値−登録個数の記録値≧２」が成立すれば、余裕があると取り扱われるものとする。
【００６２】
一方、登録個数の記録値がＭＡＣ学習テーブル１４の制限個数と同数に達した場合／僅かに少ない数値となった場合には設定値の値が短縮される。ここでは設定値のタイムアップにより更新処理が実行され、更新処理後に設定値の値がセットされるため、次回の更新処理までの時間が短縮される。もし更新処理後に登録個数の値が減少し、「個数制限値−登録個数の記録値≧２」が成立すれば、設定値が固定値に戻されて次々回の更新処理までの時間を長くする。
【００６３】
したがって、本実施形態のエージング時間の調整によれば、ＭＡＣ学習テーブル１４のエージング時間の長さがハッシュ値毎の混雑状況、即ちＭＡＣ学習テーブル１４の個数制限まで余裕があるか否かにより自動調整される。特にエージングテーブル１６の登録個数の記録値が、ＭＡＣ学習テーブル１４の個数制限に達してパンクした場合や同個数制限までの残りが僅かな場合には短い間隔で更新処理が実行される。
【００６４】
このときＭＡＣ学習テーブル１４のハッシュ値に対する更新処理のタイミングが短縮されるため、通信頻度の少ないノード１１，１２のＭＡＣアドレスの情報はから削除され易く、削除により通信頻度の高い新たなノード１１，１２のＭＡＣアドレスの情報がＭＡＣ学習テーブル１４に登録されて学習される。
【００６５】
一方、優先度による指定を伴うプロトコルＤを送信しないノード１１，１２であっても、スイッチへの通信周期が短ければＭＡＣ学習テーブル１４にＭＡＣアドレスの情報が登録され易く、この点で通信負荷による順序でＭＡＣアドレスが学習され、ネットワーク効率を改善できる。
【００６６】
このときスイッチ１０のＭＡＣアドレスの学習は、パケットの送信元を参照するため、例えば送受信するノード１１，１２間の通信頻度が非対称な場合には上記エージング時間の調整が有効に動作できないおそれがある。もっとも、一般的には要求に対する応答が非対称でも要求が多いならば応答も多く、他のノード１１，１２間との比較では正しく動作する。
【００６７】
なお、本発明は、上記実施形態に限定されるものではなく、各請求項に記載された範囲内で変形して実施することができる。例えばスイッチ１０のＭＡＣアドレスの学習方法は、ＭＡＣアドレス学習プロトコルによる学習と、エージング時間の調整の双方を実行する設計でなくてもよく、いずれか一方を実行する設計でもよい。
【００６８】
また、ＭＡＣ学習プロトコルＤのコマンドは、必ずしも「登録」・「削除」・「参照」の三種類を使用する設計でなくてもよい。すなわち、前記コマンドとして「登録」または「削除」のみを使用する設計でもよく、「登録」と「参照」の二種類を使用する設計でもよく、「削除」と「参照」の二種類を使用する設計でもよい。
【符号の説明】
【００６９】
１０…スイッチングハブ
１１…クライアント端末（ノード）
１２…サーバ（ノード）
１３…パケットバッファ
１４…ＭＡＣ学習テーブル
１５…ＭＡＣ学習設定テーブル
１６…エージングテーブル
Ｄ…ＭＡＣ学習プロトコル
Ｐ…パケット
【図１】
2018157460.tif 000003
【図２】
2018157460.tif 000004
【図３】
2018157460.tif 000005