(57)【要約】【課題】処理負荷の増大を抑制しつつ、公平かつ効率的にテーブルの更新をすること。【解決手段】方路管理テーブル３３０は、送信元アドレスと受信ポート番号との対応関係を登録可能な各エントリに対して、対応関係が登録された最新時刻からの経過時間を管理する世代管理ビット列を保持している。上書エントリ選択部３４３は、方路管理テーブル３３０の世代管理ビット列を並べ替え、世代ごとの全エントリのビットを結合し、得られたビット列を内部のプライオリティエンコーダへ入力し、ビット列において最も古い世代の方向にある「１」のビットを検出する。そして、上書エントリ選択部３４３は、検出された「１」のビットに対応する上書き対象のエントリに送信元アドレスと受信ポート番号を登録するようにテーブル更新部３４４へ指示する。【選択図】        図５
2008035437.tif 000002
【特許請求の範囲】
【請求項１】
送信元アドレスおよび送信先アドレスを含むフレームを中継して通信経路を制御する経路制御装置であって、
フレームの送信元アドレスとフレームを受信したポートとの対応関係を個々のエントリに記憶するとともに、エントリごとに設けられる世代管理ビット列であって各エントリが更新されてからの経過時間に応じた位置に標識ビットが配置された世代管理ビット列を保持する管理テーブルと、
複数のポートを備えいずれか１つのポートからフレームを受信する受信手段と、
前記受信手段によって受信されたフレームの送信元アドレスに関する対応関係を登録可能なエントリが前記管理テーブルにあるか否かを判定する判定手段と、
前記判定手段による判定の結果、対応関係を登録可能なエントリが無い場合に、全エントリの世代管理ビット列を経過時間に従って並べ替えて得られるビット列において、最も経過時間が長い方向にある標識ビットを検出し、この標識ビットに対応するエントリを上書き対象のエントリとして選択する選択手段と、
前記選択手段によって選択された上書き対象のエントリに前記受信手段によって受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録して前記管理テーブルを更新する更新手段と
を有することを特徴とする経路制御装置。
【請求項２】
前記選択手段は、
経過時間が対等の世代ごとに全エントリのビットを結合して全エントリの世代管理ビット列を並べ替えることを特徴とする請求項１記載の経路制御装置。
【請求項３】
前記選択手段は、
世代管理ビット列を並べ替えて得られるビット列のうち、経過時間が最も短い世代のビット部分に対してマスクを施した上で標識ビットを検出することを特徴とする請求項１記載の経路制御装置。
【請求項４】
前記選択手段は、
経過時間が最も短い世代のビット部分において過去に検出された標識ビットに対応するビットのみを隠蔽するマスクを施すことを特徴とする請求項３記載の経路制御装置。
【請求項５】
送信元アドレスおよび送信先アドレスを含むフレームを中継して通信経路を制御する経路制御装置におけるテーブル更新方法であって、
複数のポートを備えいずれか１つのポートからフレームを受信する受信工程と、
前記受信工程にて受信されたフレームの送信元アドレスに関する対応関係を登録可能なエントリが、フレームの送信元アドレスとフレームを受信したポートとの対応関係を個々のエントリに記憶するとともに、エントリごとに設けられる世代管理ビット列であって各エントリが更新されてからの経過時間に応じた位置に標識ビットが配置された世代管理ビット列を保持する管理テーブルにあるか否かを判定する判定工程と、
前記判定工程における判定の結果、対応関係を登録可能なエントリが無い場合に、全エントリの世代管理ビット列を経過時間に従って並べ替えて得られるビット列において、最も経過時間が長い方向にある標識ビットを検出する検出工程と、
前記検出工程にて検出された標識ビットに対応するエントリを上書き対象のエントリとして選択する選択工程と、
前記選択工程にて選択された上書き対象のエントリに前記受信工程にて受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録して前記管理テーブルを更新する更新工程と
を有することを特徴とするテーブル更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信元アドレスおよび送信先アドレスを含むフレームを中継して通信経路を制御する経路制御装置およびテーブル更新方法に関し、特に、処理負荷の増大を抑制しつつ、公平かつ効率的にテーブルの更新をすることができる経路制御装置およびテーブル更新方法に関する。
【背景技術】
【０００２】
近年、広帯域と高信頼性を有するコア網（例えば「ＩＳＰ：Internet Service Provider」、「ＶＰＮ：Virtual Private Network」、および「ＣＤＮ：Contents Distribution Network」など）には、ＳＤＨ（Synchronous Digital Hierarchy：デジタル同期網）やＡＴＭ（Asynchronous Transfer Mode：非同期転送モード）などの技術が主に用いられてきた。
【０００３】
しかし、技術革新に伴って様々なＬＡＮ（Local Area Network）機器が安価に提供されるようになったことなどから、大規模な企業ユーザを含む大多数のエンドユーザがイーサネット（登録商標）およびＩＰ（Internet Protocol）を利用したＬＡＮを使用するようになり、アクセス網やコア網へのイーサネット（登録商標）およびＩＰの導入が進んでいる。
【０００４】
このようなネットワークにおいては、例えばイーサネットスイッチやＩＰルータなど、フレームの通信経路を制御する経路制御装置が重要な役割を担っている。経路制御装置は、フレームのヘッダに格納されている送信元アドレスや送信先アドレスを読み取って、フレームが送信先アドレスへ到達するように適切に通信経路を制御する。これらの経路制御装置は、一般にアドレスとフレームが入出力されるポートとの対応関係をテーブル形式で保持しており、フレームが入力されると、このフレームのヘッダに格納された送信先アドレスと同一のアドレスに対応するポートがテーブルから取得され、このポートへフレームを出力することにより通信経路が制御される。
【０００５】
経路制御装置におけるアドレスとポートの対応関係は、主にフレームが入力される際にフレームの送信元アドレスとフレームが到達したポートとが対応付けられることにより学習されていく。そして、対応関係が学習されてから一定時間以内に再び同一の送信元アドレスからのフレームが入力されなければ、対応関係の信頼性が低下するため、この送信元アドレスに関する対応関係がテーブルから削除される。この処理は、一般にエージング処理と呼ばれる。
【０００６】
エージング処理では、特定の送信元アドレスからのフレームが到達した最新の時刻から所定時間が経過した場合に、この送信元アドレスとポートとの対応関係が削除されるため、すべての対応関係におけるフレーム最新到達時刻からの経過時間を随時演算する必要があり、処理負荷が増大する傾向がある。そこで、例えば特許文献１には、それぞれの対応関係に対して設けられた同サイズのビット列において、フレーム到着を示すビットを所定周期ごとにシフトし、このビットがビット列の末端までシフトされると、このビット列に対する対応関係を削除する技術が開示されている。
【０００７】
【特許文献１】特開２００６−７４５５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、経路制御装置が保持するテーブルは、サイズが制限されており、登録可能な対応関係（エントリ）の数は固定されている。したがって、経路制御装置に多くのフレームが入力される場合には、テーブルのエントリに空きがなくなり、いずれかのエントリに登録された対応関係を上書きする必要が生じる。
【０００９】
しかしながら、対応関係の上書きが行われる場合、公平かつ効率良く上書き対象のエントリを選択するのが容易ではないという問題がある。すなわち、エントリが上書きされる際、頻繁に入力される送信元アドレスの対応関係が消去されてしまうと、エントリの上書きが数多く発生して効率が悪い。また、フレーム最新到達時刻からの経過時間が最も長い対応関係を上書きすることも考えられるが、この場合、全エントリにおける経過時間を演算する必要が生じ、処理負荷および処理時間が増大してしまう。
【００１０】
そして、経路制御装置のテーブルが効率良く更新されなければ、フレームの送信先アドレスと同一のアドレスがテーブルに登録されていない事態が頻発し、フレームの通信経路の制御に限界が生じるため、スループットの低下を招く。
【００１１】
本発明はかかる点に鑑みてなされたものであり、処理負荷の増大を抑制しつつ、公平かつ効率的にテーブルの更新をすることができる経路制御装置およびテーブル更新方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の一実施の態様に係る経路制御装置は、送信元アドレスおよび送信先アドレスを含むフレームを中継して通信経路を制御する経路制御装置であって、フレームの送信元アドレスとフレームを受信したポートとの対応関係を個々のエントリに記憶するとともに、エントリごとに設けられる世代管理ビット列であって各エントリが更新されてからの経過時間に応じた位置に標識ビットが配置された世代管理ビット列を保持する管理テーブルと、複数のポートを備えいずれか１つのポートからフレームを受信する受信手段と、前記受信手段によって受信されたフレームの送信元アドレスに関する対応関係を登録可能なエントリが前記管理テーブルにあるか否かを判定する判定手段と、前記判定手段による判定の結果、対応関係を登録可能なエントリが無い場合に、全エントリの世代管理ビット列を経過時間に従って並べ替えて得られるビット列において、最も経過時間が長い方向にある標識ビットを検出し、この標識ビットに対応するエントリを上書き対象のエントリとして選択する選択手段と、前記選択手段によって選択された上書き対象のエントリに前記受信手段によって受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録して前記管理テーブルを更新する更新手段とを有することを特徴とする。
【００１３】
また、前記判定手段は、前記受信手段によって受信されたフレームの送信元アドレスを前記管理テーブルにおいて検索する検索手段を含み、送信元アドレスが登録済みのエントリがある場合に、このエントリを登録可能なエントリと判定する構成としても良い。
【００１４】
また、前記更新手段は、前記判定手段によって登録可能と判定されたエントリに前記受信手段においてフレームを受信したポートを登録する構成としても良い。
【００１５】
また、前記更新手段は、前記判定手段によって登録可能と判定されたエントリの世代管理ビット列における標識ビットの位置を経過時間が最も短い世代のビットに変更する構成としても良い。
【００１６】
また、前記管理テーブルは、エントリが空きエントリであるか否かを示す空き管理ビットを各エントリに関連付けて保持し、前記判定手段は、空き管理ビットによって空きエントリであることが示されるエントリがある場合に、この空きエントリを登録可能なエントリと判定する構成としても良い。
【００１７】
また、前記更新手段は、前記判定手段によって登録可能と判定された空きエントリに前記受信手段によって受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録する構成としても良い。
【００１８】
また、前記更新手段は、前記判定手段によって登録可能と判定された空きエントリの世代管理ビット列において経過時間が最も短い世代のビットを標識ビットとするとともに、空き管理ビットを変更する構成としても良い。
【００１９】
また、前記選択手段は、経過時間が対等の世代ごとに全エントリのビットを結合して全エントリの世代管理ビット列を並べ替える構成としても良い。
【００２０】
また、前記選択手段は、世代管理ビット列を並べ替えて得られるビット列のうち、経過時間が最も短い世代のビット部分に対してマスクを施した上で標識ビットを検出する構成としても良い。
【００２１】
また、前記選択手段は、経過時間が最も短い世代のビット部分において過去に検出された標識ビットに対応するビットのみを隠蔽するマスクを施す構成としても良い。
【００２２】
また、本発明の他の実施の態様に係るテーブル更新方法は、送信元アドレスおよび送信先アドレスを含むフレームを中継して通信経路を制御する経路制御装置におけるテーブル更新方法であって、複数のポートを備えいずれか１つのポートからフレームを受信する受信工程と、前記受信工程にて受信されたフレームの送信元アドレスに関する対応関係を登録可能なエントリが、フレームの送信元アドレスとフレームを受信したポートとの対応関係を個々のエントリに記憶するとともに、エントリごとに設けられる世代管理ビット列であって各エントリが更新されてからの経過時間に応じた位置に標識ビットが配置された世代管理ビット列を保持する管理テーブルにあるか否かを判定する判定工程と、前記判定工程における判定の結果、対応関係を登録可能なエントリが無い場合に、全エントリの世代管理ビット列を経過時間に従って並べ替えて得られるビット列において、最も経過時間が長い方向にある標識ビットを検出する検出工程と、前記検出工程にて検出された標識ビットに対応するエントリを上書き対象のエントリとして選択する選択工程と、前記選択工程にて選択された上書き対象のエントリに前記受信工程にて受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録して前記管理テーブルを更新する更新工程とを有することを特徴とする。
【発明の効果】
【００２３】
本発明によれば、フレームの送信元アドレスとフレームを受信したポートとの対応関係を管理テーブルの個々のエントリに記憶するとともに、エントリごとに設けられる世代管理ビット列であって各エントリが更新されてからの経過時間に応じた位置に標識ビットが配置された世代管理ビット列を保持し、１つのポートからフレームを受信し、受信されたフレームの送信元アドレスに関する対応関係を登録可能なエントリが管理テーブルにあるか否かを判定し、判定の結果、対応関係を登録可能なエントリが無い場合に、全エントリの世代管理ビット列を経過時間に従って並べ替えて得られるビット列において、最も経過時間が長い方向にある標識ビットを検出し、この標識ビットに対応するエントリを上書き対象のエントリとして選択し、選択された上書き対象のエントリに受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録して管理テーブルを更新する。このため、経過時間の演算を行うことなく、世代管理ビット列によって最も古いエントリを上書き対象のエントリとして選択することができ、処理負荷の増大を抑制しつつ、公平かつ効率的にテーブルの更新をすることができる。
【００２４】
また、本発明によれば、受信されたフレームの送信元アドレスを管理テーブルにおいて検索し、送信元アドレスが登録済みのエントリがある場合に、このエントリを登録可能なエントリと判定する。このため、受信フレームの送信元アドレスが既に管理テーブルに登録されていれば、空きエントリを無駄に使用することなく、送信元アドレスとポートの対応関係を更新することができる。
【００２５】
また、本発明によれば、登録可能と判定されたエントリにフレームを受信したポートを登録するため、同一の送信元アドレスとポートの対応関係を最新の状態に更新することができる。
【００２６】
また、本発明によれば、登録可能と判定されたエントリの世代管理ビット列における標識ビットの位置を経過時間が最も短い世代のビットに変更するため、エントリに登録された対応関係が更新されてからの経過時間を正確に管理することができ、エージング処理を適切に実行することができる。
【００２７】
また、本発明によれば、管理テーブルは、エントリが空きエントリであるか否かを示す空き管理ビットを各エントリに関連付けて保持し、空き管理ビットによって空きエントリであることが示されるエントリがある場合に、この空きエントリを登録可能なエントリと判定する。このため、空きエントリがあれば、他のエントリを上書きすることなく、送信元アドレスとポートの対応関係を登録することができる。
【００２８】
また、本発明によれば、登録可能と判定された空きエントリに受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録するため、フレームが受信されるたびに、送信元アドレスとポートの対応関係を最新の状態に更新することができる。
【００２９】
また、本発明によれば、登録可能と判定された空きエントリの世代管理ビット列において経過時間が最も短い世代のビットを標識ビットとするとともに、空き管理ビットを変更する。このため、エントリに登録された対応関係が更新されてからの経過時間を正確に管理することができるとともに、エントリの空き状態を正しく保持することができる。
【００３０】
また、本発明によれば、経過時間が対等の世代ごとに全エントリのビットを結合して全エントリの世代管理ビット列を並べ替えるため、複数のエントリそれぞれに対して設けられる世代管理ビット列から１列のビット列を得ることができ、確実に１つの標識ビットを検出して、１つの上書き対象のエントリを選択することができる。
【００３１】
また、本発明によれば、世代管理ビット列を並べ替えて得られるビット列のうち、経過時間が最も短い世代のビット部分に対してマスクを施した上で標識ビットを検出するため、エントリの上書きに応じた世代管理ビット列の更新後、常に全エントリの世代管理ビット列が変化しない状態でも、１つのエントリのみを上書き対象エントリとして選択することなく公平に上書き対象のエントリを選択することができる。
【００３２】
また、本発明によれば、経過時間が最も短い世代のビット部分において過去に検出された標識ビットに対応するビットのみを隠蔽するマスクを施すため、過去に検出された標識ビットに対応するエントリが連続して上書き対象のエントリとして選択されることが無く、確実にエントリ選択の公平性を保つことができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
図１は、本発明の一実施の形態に係る通信ネットワークの概略構成を示す図である。同図に示すように、本実施の形態においては、ユーザ１００−１〜１００−３がそれぞれ加入者終端装置２００−１〜２００−３に接続されており、各加入者終端装置２００−１〜２００−３は、経路制御装置３００を介してコア網４００−１〜４００−３に接続されている。
【００３４】
ユーザ１００−１〜１００−３は、エンドユーザの端末装置であり、イーサネットフレームやＩＰフレームを送受信する。各ユーザ１００−１〜１００−３には、固有のＭＡＣ（Media Access Control）アドレスおよびＩＰアドレスが付与されている。ＭＡＣアドレスは、イーサネットフレームの送信元アドレスまたは送信先アドレスとなり、ＩＰアドレスは、ＩＰフレームの送信元アドレスまたは送信元アドレスとなる。
【００３５】
加入者終端装置２００−１〜２００−３は、例えばデジタル回線におけるＤＳＵ（Digital Service Unit）や光ファイバー通信回線におけるＯＮＵ（Optical Network Unit）などであり、コア網４００−１〜４００−３側の回線にユーザ１００−１〜１００−３を接続させる。
【００３６】
経路制御装置３００は、ユーザ１００−１〜１００−３から送信されたフレームやコア網４００−１〜４００−３から送信されたフレームが到達すると、フレームの送信先アドレスを確認した上でフレームの通信経路を制御する。このとき、経路制御装置３００は、まず入力フレームの送信元アドレスとフレームが到達したポートとを対応付けて方路管理テーブルに記憶する。そして、経路制御装置３００は、入力フレームの送信先アドレスを方路管理テーブルから検索し、対応付けられたポートへフレームを出力する。
【００３７】
経路制御装置３００は、送信元アドレスとポートとを対応付ける際、方路管理テーブルのエントリに空きが無ければ、エージング処理に用いられる世代管理用のビット列を用いて上書き対象のエントリを選択する。なお、経路制御装置３００による上書き対象のエントリの選択については、後に詳述する。
【００３８】
コア網４００−１〜４００−３は、インターネットの中心となるネットワークであり、イーサネット（登録商標）およびＩＰによる通信ネットワークの根幹をなしている。
【００３９】
図２は、一実施の形態に係る経路制御装置３００の要部構成を示すブロック図である。同図に示す経路制御装置３００は、フレーム入出力部３１０、フレーム処理部３２０、方路管理テーブル３３０、フレーム中継処理部３４０、クロック供給部３５０、およびエージング処理部３６０を有している。
【００４０】
フレーム入出力部３１０は、加入者終端装置２００−１〜２００−３およびコア網４００−１〜４００−３に接続されており、例えば図３に示すような構成のフレームを入出力する。すなわち、フレーム入出力部３１０は、送信元アドレスおよび送信先アドレスを含むヘッダがデータに付加されたフレームを入出力する。上述したように、フレームがイーサネットフレームであれば、送信元アドレスおよび送信先アドレスはＭＡＣアドレスであり、フレームがＩＰフレーム出れば、送信元アドレスおよび送信先アドレスはＩＰアドレスである。なお、本発明においては、フレームがイーサネットフレームであるかＩＰフレームであるかは実質的に無関係であるため、以下では、単に「フレーム」や「アドレス」などの用語を使用し、イーサネット（登録商標）およびＩＰなどのプロトコルを区別しない。
【００４１】
フレーム処理部３２０は、フレーム入出力部３１０に入力されたフレームのヘッダに格納された送信元アドレスおよび送信先アドレスを抽出し、フレーム中継処理部３４０へ出力する。また、フレーム処理部３２０は、入力フレームをそのままフレーム中継処理部３４０へ出力する。
【００４２】
方路管理テーブル３３０は、フレーム入出力部３１０に入力されたフレームの送信元アドレスとこのフレームが到達した受信ポート番号とを対応付けて記憶している。さらに、方路管理テーブル３３０は、送信元アドレスと受信ポート番号との対応関係を登録可能な各エントリに対して、対応関係が登録された最新時刻からの経過時間を管理する世代管理ビット列と空き状態を管理する空き管理ビットとを保持している。すなわち、方路管理テーブル３３０は、例えば図４に示すように、所定数のエントリそれぞれについて、送信元アドレスおよび受信ポート番号が登録可能となっているとともに、世代０から世代ｎまでの（ｎ＋１）ビットの世代管理ビット列と１ビットの空き管理ビットとを保持している。
【００４３】
フレーム中継処理部３４０は、フレーム処理部３２０から出力される送信元アドレスと受信ポート番号の対応関係を方路管理テーブル３３０に登録する。このとき、フレーム中継処理部３４０は、送信元アドレスが既に方路管理テーブル３３０に登録済みであるか検索し、登録済みであれば対応する受信ポート番号を更新するとともに、世代管理ビット列において最も新しい世代に対応するビットを「１」とし、他のビットをすべて「０」とする。また、送信元アドレスが未登録であれば、フレーム中継処理部３４０は、空き管理ビットを参照して空きエントリを示す「１」のビットを検出し、空きエントリに送信元アドレスと受信ポート番号を対応付けて記憶させるとともに、このエントリの空き管理ビットを使用中であることを示す「０」に変更する。さらに、フレーム中継処理部３４０は、空きエントリが無い場合、世代管理ビット列を用いて登録後最も時間が経過しているエントリを上書き対象のエントリとして選択し、このエントリに送信元アドレスと受信ポート番号を対応付けて記憶させる。
【００４４】
その後、フレーム中継処理部３４０は、フレーム処理部３２０から出力される送信先アドレスを方路管理テーブル３３０に記憶された送信元アドレスから検索し、対応する受信ポートをフレームの出力先と決定する。また、フレーム中継処理部３４０は、送信先アドレスが方路管理テーブル３３０に登録されていなければ、すべてのポートをフレームの出力先と決定する。なお、フレーム中継処理部３４０の具体的な構成および動作については、後に詳述する。
【００４５】
クロック供給部３５０は、所定間隔でクロックを発生させ、エージング処理部３６０へ供給する。クロック供給部３５０は、方路管理テーブル３３０に登録された送信元アドレスと受信ポート番号の対応関係がエージング処理によって削除されるまでのエージング時間を等分するクロックを発生させる。
【００４６】
エージング処理部３６０は、クロック供給部３５０から供給されるクロックに応じて所定周期ごとに方路管理テーブル３３０の世代管理ビット列に含まれるすべての「１」のビットをシフトさせる。具体的には、エージング処理部３６０は、例えば世代０が最も新しく世代ｎが最も古い場合、各エントリの世代管理ビット列において「１」のビットの位置を世代ｎの方向へ１つシフトさせる。つまり、世代管理ビット列の「１」のビットは、エントリが更新されてからの経過時間を示す標識ビットとして用いられる。また、エージング処理部３６０は、世代ｎのビットが「１」となってから所定周期が経過したエントリを削除するエージング処理を行う。したがって、方路管理テーブル３３０の各エントリは、送信元アドレスと受信ポート番号の対応関係が登録されてから更新されること無く所定周期の（ｎ＋１）倍の時間が経過すると、削除されることになる。
【００４７】
なお、上記のフレーム処理部３２０からエージング処理部３６０は、経路制御装置３００に入力されたフレームの通信経路を決定するスイッチ部を構成している。
【００４８】
図５は、一実施の形態に係るフレーム中継処理部３４０の内部構成を示すブロック図である。同図に示すように、フレーム中継処理部３４０は、送信元アドレス検索部３４１、空きエントリ検索部３４２、上書エントリ選択部３４３、テーブル更新部３４４、送信先アドレス検索部３４５、および出力ポート決定部３４６を有している。
【００４９】
送信元アドレス検索部３４１は、フレーム処理部３２０から出力される送信元アドレスを取得し、送信元アドレスが方路管理テーブル３３０に登録されているか否か検索する。そして、送信元アドレス検索部３４１は、送信元アドレスが登録されていれば、対応する受信ポート番号を更新するようにテーブル更新部３４４へ指示し、送信元アドレスが登録されていなければ、その旨を空きエントリ検索部３４２へ通知する。
【００５０】
空きエントリ検索部３４２は、送信元アドレスが方路管理テーブル３３０に登録されていない旨が送信元アドレス検索部３４１から通知されると、方路管理テーブル３３０の空き管理ビットが「１」となっている空きエントリを検索する。そして、空きエントリ検索部３４２は、空き管理ビットが「１」となっている空きエントリがあれば、この空きエントリに送信元アドレスと受信ポート番号を登録するようにテーブル更新部３４４へ指示し、空き管理ビットが「１」となっている空きエントリが無ければ、その旨を上書エントリ選択部３４３へ通知する。
【００５１】
上書エントリ選択部３４３は、空きエントリが無い旨が空きエントリ検索部３４２から通知されると、方路管理テーブル３３０の世代管理ビット列を並べ替え、世代ごとの全エントリのビットを結合し、得られたビット列を内部のプライオリティエンコーダへ入力し、ビット列において最も古い世代の方向にある「１」のビットを検出する。そして、上書エントリ選択部３４３は、検出された「１」のビットに対応する上書き対象のエントリ（以下「上書エントリ」という）に送信元アドレスと受信ポート番号を登録するようにテーブル更新部３４４へ指示する。
【００５２】
なお、上書エントリ選択部３４３は、世代管理ビット列を並べ替えて得られるビット列のうち最も新しい世代のビットに関しては、初期状態で全ビットが「１」となっているラウンドロビン用マスクとの論理積を演算し、演算後のビット列をプライオリティエンコーダへ入力する。そして、上書エントリ選択部３４３は、プライオリティエンコーダによって最も新しい世代のビットが検出された場合、ラウンドロビン用マスクにおいて検出されたビットに対応するビットを「０」に変更する。ただし、ラウンドロビン用マスクのすべてのビットが「０」となる場合は、再び全ビットを「１」として初期化する。ラウンドロビン用マスクについては、後に具体例を挙げながら説明する。
【００５３】
テーブル更新部３４４は、送信元アドレス検索部３４１、空きエントリ検索部３４２、または上書エントリ選択部３４３からの指示を受け、方路管理テーブル３３０を更新する。具体的には、テーブル更新部３４４は、送信元アドレス検索部３４１からの指示を受けると、検索された送信元アドレスに対応する受信ポート番号を更新するとともに、世代管理ビット列における「１」のビットの位置を最も新しい世代に変更する。また、テーブル更新部３４４は、空きエントリ検索部３４２からの指示を受けると、指示された空きエントリに送信元アドレスと受信ポート番号を登録するとともに、世代管理ビット列において最も新しい世代のビットを「１」とし、空き管理ビットを「０」とする。そして、テーブル更新部３４４は、上書エントリ選択部３４３からの指示を受けると、指示された上書エントリに送信元アドレスと受信ポート番号を上書きするとともに、世代管理ビット列における「１」のビットの位置を最も新しい世代に変更する。
【００５４】
送信先アドレス検索部３４５は、フレーム処理部３２０から出力される送信先アドレスを取得し、送信先アドレスが方路管理テーブル３３０に送信元アドレスとして登録されているか否か検索する。そして、送信先アドレス検索部３４５は、送信先アドレスが登録されていれば、登録されている送信元アドレスに対応する受信ポート番号を読み出して出力ポート決定部３４６へ出力し、送信先アドレスが登録されていなければ、その旨を出力ポート決定部３４６へ通知する。
【００５５】
出力ポート決定部３４６は、送信先アドレス検索部３４５からの受信ポート番号の出力の有無に応じてフレームを出力するポートを決定する。すなわち、出力ポート決定部３４６は、送信先アドレス検索部３４５から受信ポート番号が出力されれば、このポートへフレームを出力すると決定し、このポートに対応するフレーム入出力部３１０へフレームを出力する。また、出力ポート決定部３４６は、送信先アドレスが方路管理テーブル３３０に登録されていない旨が送信先アドレス検索部３４５から通知されれば、すべてのポートへフレームを出力すると決定し、すべてのフレーム入出力部３１０へフレームを出力する。なお、すべてのポートへフレームが出力される場合、無関係のユーザやコア網にもフレームが受信されるが、フレームの送信先アドレスが確認されることにより、正規の送信先以外では受信したフレームを破棄することができる。
【００５６】
次いで、上記のように構成されたフレーム中継処理部３４０によるフレーム中継の動作について、図６に示すフロー図を参照しながら説明する。
【００５７】
まず、フレーム入出力部３１０のいずれかにフレームが入力されると、このフレームは、フレーム処理部３２０へ出力される。そして、フレーム処理部３２０によって、フレームのヘッダに格納された送信元アドレスおよび送信先アドレスがフレームとともにフレーム中継処理部３４０へ出力される。
【００５８】
フレーム中継処理部３４０では、送信元アドレス検索部３４１によって送信元アドレスが取得され（ステップＳ１０１）、送信元アドレスが方路管理テーブル３３０に登録されているか検索される（ステップＳ１０２）。この結果、送信元アドレスが登録されていれば（ステップＳ１０２Ｙｅｓ）、テーブル更新部３４４によって、この送信元アドレスに対応する受信ポート番号が更新されるとともに、世代管理ビット列における「１」のビットの位置が最も新しい世代に変更される（ステップＳ１０３）。これにより、所定周期ごとにエージング処理部３６０によって世代管理ビット列の「１」のビットの位置がシフトされても、同一の送信元アドレスからのフレームが頻繁に入力されていれば、世代管理ビット列における「１」のビットが最も古い世代の位置まで到達せず、エージング処理部３６０によってエントリが削除されることがない。
【００５９】
一方、送信元アドレスが方路管理テーブル３３０に登録されていなければ（ステップＳ１０２Ｎｏ）、空きエントリ検索部３４２によって、方路管理テーブル３３０の空き管理ビットが「１」となっている空きエントリが検索される（ステップＳ１０４）。この結果、空きエントリがあれば（ステップＳ１０４Ｙｅｓ）、テーブル更新部３４４によって、この空きエントリに送信元アドレスと受信ポート番号が対応付けて登録されるとともに（ステップＳ１０５）、このエントリの世代管理ビット列において最も新しい世代のビットが「１」に変更され、空き管理ビットが「０」に変更される。
【００６０】
また、空きエントリが無ければ（ステップＳ１０４Ｎｏ）、上書エントリ選択部３４３によって、世代管理ビット列が並べ替えられ、得られたビット列が利用されることにより、最も古い世代に「１」のビットが位置するエントリが公平に上書エントリとして選択される（ステップＳ１０６）。ここでの選択は、世代管理ビット列から得られるビット列が上書エントリ選択部３４３内のプライオリティエンコーダへ入力され、最も古い世代の方向に位置する「１」のビットが検出され、検出されたビットに対応するエントリが選択されることにより行われる。上書エントリの選択については、具体的な処理を後述する。
【００６１】
上書エントリが選択されると、テーブル更新部３４４によって、このエントリに送信元アドレスと受信ポート番号が対応付けて登録されるとともに（ステップＳ１０７）、このエントリの世代管理ビット列における「１」のビットの位置が最も新しい世代に変更される。
【００６２】
以上のようにして、送信元アドレスと受信ポート番号の対応が方路管理テーブル３３０のいずれかのエントリに登録されると、続いて送信先アドレス検索部３４５によって送信先アドレスが取得され（ステップＳ１０８）、送信先アドレスと同一の送信元アドレスが方路管理テーブル３３０に登録されているか検索される（ステップＳ１０９）。この結果、送信先アドレスと同一の送信元アドレスが登録されていれば（ステップＳ１０９Ｙｅｓ）、送信先アドレス検索部３４５によって、この送信元アドレスに対応する受信ポート番号が読み出され、出力ポート決定部３４６へ通知される。そして、出力ポート決定部３４６によって、送信先アドレス検索部３４５から通知されたポートへフレームを出力することが決定され、このポートに対応するフレーム入出力部３１０へフレームが出力される（ステップＳ１１０）。これにより、フレームは、送信先アドレスのみへ送信されることになる。
【００６３】
一方、送信先アドレスと同一の送信元アドレスが方路管理テーブル３３０に登録されていなければ（ステップＳ１０９Ｎｏ）、送信先アドレス検索部３４５によって、その旨が出力ポート決定部３４６へ通知され、出力ポート決定部３４６によって、すべてのポートへフレームを出力することが決定され、全ポートに対応するフレーム入出力部３１０へフレームが出力される（ステップＳ１１１）。これにより、フレームは、送信先アドレス以外へも送信されることになるが、このフレームが受信されると、送信先アドレスが確認されることにより、正規の送信先以外ではフレームが破棄される。
【００６４】
次に、送信元アドレスを方路管理テーブル３３０に登録する際の上書エントリを選択する動作について、図７に示すフロー図を参照しながら具体的に説明する。
【００６５】
上述したように、経路制御装置３００においてフレームが受信されると、フレームのヘッダに格納された送信元アドレスと受信ポート番号の対応関係が方路管理テーブル３３０に登録されるが、方路管理テーブル３３０に空きエントリが無い場合、上書エントリが選択される。この選択には、エージング処理部３６０によるエージング処理の負荷を軽減するために用いられる世代管理ビット列が利用される。
【００６６】
すなわち、上書エントリ選択部３４３によって、世代管理ビット列が世代ごとの全エントリのビットが結合されて並べ替えられる（ステップＳ２０１）。具体的には、例えば図８−１に示すように、方路管理テーブル３３０に０番から３番までの４つエントリが設けられており、各エントリに対応する世代管理ビット列が世代０から世代４までの５世代分である場合を考える。ただし、世代０が最も新しい世代であり、世代４が最も古い世代であるものとする。このとき、世代管理ビット列の並べ替えは、世代０のエントリ０〜３までのビットが結合され、続いて世代１のエントリ０〜３までのビットが結合され、最終的に世代４のエントリ０〜３までのビットが結合されるようにして行われる。この結果、２０個のビットが連続するビット列が得られる。
【００６７】
そして、上書エントリ選択部３４３によって、得られたビット列の最も新しい世代のビット部分とラウンドロビン用マスクとの論理積演算が行われる（ステップＳ２０２）。ラウンドロビン用マスクは、上書エントリ選択部３４３が保持するビット列であり、方路管理テーブル３３０のエントリと同数のビットからなっている。初期状態のラウンドロビン用マスクは、すべてのビットが「１」である。この論理積演算は、例えば図８−２に示すように行われる。すなわち、最も新しい世代である世代０の部分にエントリ数に等しい４つのビットからなるラウンドロビン用マスク５０１が乗算される。ここでは、ラウンドロビン用マスク５０１が初期状態であるため、すべてのビットが「１」であり、論理積演算結果は、世代管理ビット列を並べ替えて得られたビット列と同一である。
【００６８】
そして、さらに上書エントリ選択部３４３によって、内部に保持するプライオリティエンコーダへ論理積演算結果が入力され、論理積演算結果において最も古い世代の方向にある「１」のビットが検出される。すなわち、図８−２に示す例では、右端にある「１」のビット５０２が検出される。そして、上書エントリ選択部３４３によって、検出されたビット５０２に対応するエントリが上書エントリとして選択される（ステップＳ２０３）。つまり、図８−２に示す例では、ビット５０２に対応するエントリ２が上書エントリとなる。
【００６９】
図８−１を参照すると、エントリ２の世代管理ビット列では「１」のビットが世代４に位置し、他のエントリよりも送信元アドレスと受信ポート番号の対応関係が登録されてからの経過時間が長いことがわかる。したがって、対応関係の信頼性が最も低く、エントリ２を上書エントリとするのが妥当であると考えられる。また、エントリ２が上書きされると、エントリ２の世代管理ビット列における「１」のビットの位置が世代０に変更されることになるため、他のエントリの対応関係が更新されなければ、エントリ２が続いて上書エントリとして選択されることはない。このように、全エントリの世代管理ビット列を並べ替え、プライオリティエンコーダによって最も端の「１」のビットを検出することにより、公平に上書エントリを選択することができる。
【００７０】
また、上書エントリ選択部３４３によって、内部のプライオリティエンコーダから最も新しい世代０の「１」のビットが出力されたか否かが判定され（ステップＳ２０４）、世代０の「１」のビットが最も古い世代の方向にある「１」のビットとして検出された場合は（ステップＳ２０４Ｙｅｓ）、このビットに対応するラウンドロビン用マスクのビットを「０」に変更する（ステップＳ２０５）。また、上述してきた例のように、例えば世代４の「１」のビットが最も古い世代の方向にある「１」のビットであるような場合は（ステップＳ２０４Ｎｏ）、ラウンドロビン用マスクを更新することなく処理が完了する。
【００７１】
ここで、ラウンドロビン用マスクの意義について説明しておく。上述した例では、各エントリの世代管理ビット列において、「１」のビットが世代０以外の位置にあったが（図８−１参照）、各エントリの対応関係がほぼ同時刻に更新された場合、すべてのエントリの世代管理ビット列において、「１」のビットが世代０の位置にある状態が発生することがある。この場合、上書エントリ選択部３４３によって世代管理ビット列が並べ替えられると、図８−３に示すように、世代０の部分のビットがすべて１となり、他の世代の部分のビットがすべて０となったビット列が得られる。
【００７２】
もし、このビット列に対してラウンドロビン用マスクを乗算せずに、プライオリティエンコーダによって最も古い世代の方向の「１」のビットが検出されると、エントリ３が上書エントリとして選択されることになる。そして、エントリ３の対応関係が上書きされ、エントリ３の世代管理ビット列において世代０のビットが「１」とされる。このとき、エントリ３への上書きまでの間に、エージング処理部３６０によって他のエントリ０〜２の世代管理ビット列における「１」のビットが世代１へシフトされるタイミングが訪れれば問題は無い。しかし、他のエントリの世代管理ビット列においても「１」のビットの位置が世代０のままであると、再びすべてのエントリの世代管理ビット列において、「１」のビットが世代０の位置にある状態が発生する。したがって、次に上書エントリが選択される場合も、再びエントリ３が選択されることになり、公平ではない。
【００７３】
そこで、世代管理ビット列を並べ替えて得られたビット列のうち世代０の部分については、ラウンドロビン用マスクを乗算し、世代０のビットが最も古い世代の方向の「１」のビットとして検出された場合は、検出されたビットに対応するラウンドロビン用マスクのビットを「０」に変更しておく。これにより、次回の上書エントリ選択時には、今回検出されたビットにラウンドロビン用マスクの「０」が乗算されることになり、プライオリティエンコーダによって最も古い世代の方向の「１」のビットとして検出されることが無くなる。
【００７４】
具体的に、例えば前回の上書エントリ選択時にエントリ３が選択されていれば、図８−３に示すように、ラウンドロビン用マスク５０１のエントリ３に対応するビットが「０」となっているため、これらの論理積演算結果においては、エントリ３に対応するビットが「０」となる。このため、プライオリティエンコーダによって検出されるのは、ビット５０３であり、エントリ２が上書エントリとして選択されることになる。そして、今回ビット５０３が検出されたため、ラウンドロビン用マスク５０１において、エントリ２に対応するビットが「０」に変更される。以後、全エントリの世代管理ビット列において「１」のビットが世代０にある間に上書エントリの選択が行われれば、エントリ１およびエントリ０が順次選択されることになる。そして、ラウンドロビン用マスク５０１のビットがすべて「０」になる時には、すべてのビットを「０」とはせずに「１」として初期化される。
【００７５】
このように、世代管理ビット列を並べ替えて得られるビット列の最も新しい世代のビット部分にラウンドロビン用マスクを乗算することにより、すべてのエントリにおいてほぼ同時に対応関係が更新され、さらに上書エントリを選択する必要が生じた場合でも、公平に上書エントリを選択することができる。
【００７６】
以上のように、本実施の形態によれば、方路管理テーブルの各エントリに設けられた世代管理ビット列を並べ替え、最も古い世代の方向に位置する「１」のビットを検出し、検出された「１」のビットに対応するエントリを上書エントリとして選択する。このため、送信元アドレスと受信ポート番号の対応関係が登録されてからの経過時間を比較することなく、最も古く対応関係が登録されたエントリを容易に選択することができ、処理負荷の増大を抑制しつつ、公平かつ効率的にテーブルの更新をすることができる。
【００７７】
（付記１）送信元アドレスおよび送信先アドレスを含むフレームを中継して通信経路を制御する経路制御装置であって、
フレームの送信元アドレスとフレームを受信したポートとの対応関係を個々のエントリに記憶するとともに、エントリごとに設けられる世代管理ビット列であって各エントリが更新されてからの経過時間に応じた位置に標識ビットが配置された世代管理ビット列を保持する管理テーブルと、
複数のポートを備えいずれか１つのポートからフレームを受信する受信手段と、
前記受信手段によって受信されたフレームの送信元アドレスに関する対応関係を登録可能なエントリが前記管理テーブルにあるか否かを判定する判定手段と、
前記判定手段による判定の結果、対応関係を登録可能なエントリが無い場合に、全エントリの世代管理ビット列を経過時間に従って並べ替えて得られるビット列において、最も経過時間が長い方向にある標識ビットを検出し、この標識ビットに対応するエントリを上書き対象のエントリとして選択する選択手段と、
前記選択手段によって選択された上書き対象のエントリに前記受信手段によって受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録して前記管理テーブルを更新する更新手段と
を有することを特徴とする経路制御装置。
【００７８】
（付記２）前記判定手段は、
前記受信手段によって受信されたフレームの送信元アドレスを前記管理テーブルにおいて検索する検索手段を含み、
送信元アドレスが登録済みのエントリがある場合に、このエントリを登録可能なエントリと判定することを特徴とする付記１記載の経路制御装置。
【００７９】
（付記３）前記更新手段は、
前記判定手段によって登録可能と判定されたエントリに前記受信手段においてフレームを受信したポートを登録することを特徴とする付記２記載の経路制御装置。
【００８０】
（付記４）前記更新手段は、
前記判定手段によって登録可能と判定されたエントリの世代管理ビット列における標識ビットの位置を経過時間が最も短い世代のビットに変更することを特徴とする付記３記載の経路制御装置。
【００８１】
（付記５）前記管理テーブルは、
エントリが空きエントリであるか否かを示す空き管理ビットを各エントリに関連付けて保持し、
前記判定手段は、
空き管理ビットによって空きエントリであることが示されるエントリがある場合に、この空きエントリを登録可能なエントリと判定することを特徴とする付記１記載の経路制御装置。
【００８２】
（付記６）前記更新手段は、
前記判定手段によって登録可能と判定された空きエントリに前記受信手段によって受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録することを特徴とする付記５記載の経路制御装置。
【００８３】
（付記７）前記更新手段は、
前記判定手段によって登録可能と判定された空きエントリの世代管理ビット列において経過時間が最も短い世代のビットを標識ビットとするとともに、空き管理ビットを変更することを特徴とする付記６記載の経路制御装置。
【００８４】
（付記８）前記選択手段は、
経過時間が対等の世代ごとに全エントリのビットを結合して全エントリの世代管理ビット列を並べ替えることを特徴とする付記１記載の経路制御装置。
【００８５】
（付記９）前記選択手段は、
世代管理ビット列を並べ替えて得られるビット列のうち、経過時間が最も短い世代のビット部分に対してマスクを施した上で標識ビットを検出することを特徴とする付記１記載の経路制御装置。
【００８６】
（付記１０）前記選択手段は、
経過時間が最も短い世代のビット部分において過去に検出された標識ビットに対応するビットのみを隠蔽するマスクを施すことを特徴とする付記９記載の経路制御装置。
【００８７】
（付記１１）送信元アドレスおよび送信先アドレスを含むフレームを中継して通信経路を制御する経路制御装置におけるテーブル更新方法であって、
複数のポートを備えいずれか１つのポートからフレームを受信する受信工程と、
前記受信工程にて受信されたフレームの送信元アドレスに関する対応関係を登録可能なエントリが、フレームの送信元アドレスとフレームを受信したポートとの対応関係を個々のエントリに記憶するとともに、エントリごとに設けられる世代管理ビット列であって各エントリが更新されてからの経過時間に応じた位置に標識ビットが配置された世代管理ビット列を保持する管理テーブルにあるか否かを判定する判定工程と、
前記判定工程における判定の結果、対応関係を登録可能なエントリが無い場合に、全エントリの世代管理ビット列を経過時間に従って並べ替えて得られるビット列において、最も経過時間が長い方向にある標識ビットを検出する検出工程と、
前記検出工程にて検出された標識ビットに対応するエントリを上書き対象のエントリとして選択する選択工程と、
前記選択工程にて選択された上書き対象のエントリに前記受信工程にて受信されたフレームの送信元アドレスとこのフレームを受信したポートとの対応関係を登録して前記管理テーブルを更新する更新工程と
を有することを特徴とするテーブル更新方法。
【産業上の利用可能性】
【００８８】
本発明は、処理負荷の増大を抑制しつつ、公平かつ効率的にテーブルの更新をする場合に適用することができる。
【図面の簡単な説明】
【００８９】
【図１】一実施の形態に係る通信ネットワークの概略構成を示す図である。
【図２】一実施の形態に係る経路制御装置の要部構成を示すブロック図である。
【図３】一実施の形態に係るフレームの概略構成を示す図である。
【図４】一実施の形態に係る方路管理テーブルの一例を示す図である。
【図５】一実施の形態に係るフレーム中継処理部の内部構成を示すブロック図である。
【図６】一実施の形態に係るフレーム中継の動作を示すフロー図である。
【図７】一実施の形態に係る上書エントリ選択の動作を示すフロー図である。
【図８−１】一実施の形態に係る世代管理ビット列の一例を示す図である。
【図８−２】一実施の形態に係る上書エントリ選択の一例を示す図である。
【図８−３】一実施の形態に係る上書エントリ選択の他の一例を示す図である。
【符号の説明】
【００９０】
３１０  フレーム入出力部
３２０  フレーム処理部
３３０  方路管理テーブル
３４０  フレーム中継処理部
３４１  送信元アドレス検索部
３４２  エントリ検索部
３４３  上書エントリ選択部
３４４  テーブル更新部
３４５  送信先アドレス検索部
３４６  出力ポート決定部
３５０  クロック供給部
３６０  エージング処理部
【図１】
2008035437.tif 000003
【図２】
2008035437.tif 000004
【図３】
2008035437.tif 000005
【図４】
2008035437.tif 000006
【図５】
2008035437.tif 000007
【図６】
2008035437.tif 000008
【図７】
2008035437.tif 000009
【図８−１】
2008035437.tif 000010
【図８−２】
2008035437.tif 000011
【図８−３】
2008035437.tif 000012