(57)【要約】【課題】  パケット交換装置のネットワークアドレス学習に対して、冗長化された装置制御部がネットワークアドレス情報を効率よくそれぞれが保持する装置および方法を提供する。【解決手段】  転送エンジン部は、運用系の装置制御部の系番号を保持し、新規のネットワークアドレスを学習した時に、前記系番号を含めて学習登録する。これにより、装置制御部の系切替前に学習したネットワークアドレスを明確に判別できる。転送エンジン部は、新規のネットワークアドレスに加えて、系切替前に学習したネットワークアドレスを新運用系ソフトウェアに保持させるように動作することで、装置制御部同士でネットワークアドレス情報を交換しあうことなく、また装置制御部の系切替後に新運用系ソフトウェアが集中してネットワークアドレス情報を収集することがなく、実際に学習継続の必要のあるネットワークアドレス情報のみを保持させることができ、ソフトウェア処理を軽減できる。【選択図】図１
2009060306.tif 000002
【特許請求の範囲】
【請求項１】
ポートを介してパケットの送受信を行うパケット交換装置であって、
いずれか一方が運用系として動作することで装置全体を制御する冗長化された第１の装置制御部および第２の装置制御部と、
入力ポートから受信したパケットの転送先を検索して出力ポートに転送し、かつ、前記受信したパケットが有するネットワークアドレスを学習する転送エンジン部とを有し、
前記転送エンジン部は、前記パケットが有するネットワークアドレスと、前記パケットを受信した受信ポート番号と、前記学習時に運用系として動作している前記第１の装置制御部もしくは第２の装置制御部のいずれか一方を示す学習時情報と、を対応付けて保持する保持部を有することを特徴とするパケット交換装置。
【請求項２】
請求項１記載のパケット交換装置であって、
前記転送エンジン部は、前記入力ポートより受信したパケットが有するネットワークアドレスが前記保持部に保持されていない場合、前記受信したパケットが有するネットワークアドレスを前記保持部に保持すると共に、前記学習したネットワークアドレスと受信ポート番号とを前記運用系として動作している前記第１の装置制御部もしくは第２の装置制御部のいずれか一方に記憶させる必要があると判断することを特徴とするパケット交換装置。
【請求項３】
請求項１乃至２記載のパケット交換装置であって、
前記転送エンジン部は、前記入力ポートより受信したパケットが有するネットワークアドレスが前記保持部に保持されており、かつ、該ネットワークアドレスと対応付けて前記保持部に保持されている前記学習時情報が、前記運用系として動作している第１の装置制御部もしくは第２の装置制御部のいずれか一方を示す現在情報と異なる場合は、前記保持部が保持する前記学習時情報を前記現在情報に更新し、かつ、前記現在情報もしくは学習時情報と対応付けて保持される前記ネットワークアドレスと前記受信ポート番号とを、前記現在情報が示す前記第１の装置制御部もしくは第２の装置制御部のいずれか一方に記憶させる必要があると判断することを特徴とするパケット交換装置。
【請求項４】
請求項２乃至３記載のパケット交換装置であって、
前記第１の装置制御部および第２の装置制御部は、ネットワークアドレスと受信ポート番号とを対応付けて記憶するための記憶部を有し、
前記転送エンジン部は前記記憶させる必要があると判断すると、前記運用系として動作している第１の装置制御部もしくは第２の装置制御部のいずれか一方に通知し、
前記通知された第１の装置制御部もしくは第２の装置制御部は、前記転送エンジン部が記憶させる必要があると判断したネットワークアドレスと受信ポート番号とを対応付けて前記記憶部に記憶することを特徴とするパケット交換装置。
【請求項５】
請求項２乃至３記載のパケット交換装置であって、
前記第１の装置制御部および第２の装置制御部は、ネットワークアドレスと受信ポート番号とを対応付けて記憶するための記憶部を有し、
前記転送エンジン部は前記記憶させる必要があると判断すると、前記ネットワークアドレスと受信ポート番号とを対応付けて前記記憶部に記憶させることを特徴とするパケット交換装置。
【請求項６】
請求項１乃至５記載のパケット交換装置であって、
前記転送エンジン部は、前記第１装置制御部および第２の装置制御部に系切替が発生し一定時間経過後に、前記保持部に保持される前記学習時情報と前記系切替後に運用系として動作している第１の装置制御部もしくは第２の装置制御部のいずれか一方を示す現在情報とが異なる場合は、前記保持部に保持される学習時情報と対応付けて保持されるネットワークアドレスと受信ポート番号とを前記保持部から削除することを特徴とするパケット交換装置。
【請求項７】
請求項１乃至６記載のパケット交換装置であって、
前記転送エンジン部は、前記運用系として動作している第１の装置制御部もしくは第２の装置制御部のいずれか一方を示す現在情報を保持する第２の保持部を有し、
前記転送エンジン部は、前記学習する際は、前記第２の保持部から前記現在情報を取得し、前記学習時情報として前記保持部に保持させることを特徴とするパケット交換装置。
【請求項８】
請求項７記載のパケット交換装置であって、
前記運用系として動作していない第１の装置制御部もしくは第２の装置制御部は、系切替によって新しく運用系として動作すると、前記新しく運用系として動作する前記第１の装置制御部もしくは第２の装置制御部を示す現在情報を前記第２の保持部に保持させることを特徴とするパケット交換装置。
【請求項９】
いずれか一方が運用系として動作することで装置全体を制御する冗長化された第１の装置制御部および第２の装置制御部と、入力ポートから受信したパケットの転送先を検索して出力ポートに転送する転送エンジン部とを有するパケット交換装置が、前記受信したパケットが有するネットワークアドレスを学習する学習方法であって、
前記入力ポートからパケットを受信するステップと、
前記転送エンジン部が、前記受信したパケットが有するネットワークアドレスを学習するかどうか判断するステップと、
前記判断するステップにて学習すると判断した場合に、前記転送エンジン部が、前記パケットが有するネットワークアドレスと、前記パケットを受信した受信ポート番号と、前記学習時に運用系として動作している前記第１の装置制御部もしくは第２の装置制御部のいずれか一方を示す学習時情報と、を対応付けて保持するステップとを有することを特徴とする学習方法。
【請求項１０】
請求項９記載の学習方法であって、
前記判断するステップは、前記受信したパケットが有するネットワークアドレスが前記転送エンジン部に保持されていない場合は、前記学習すると判断し、かつ、前記学習したネットワークアドレスと受信ポート番号とを、前記運用系として動作している前記第１の装置制御部もしくは第２の装置制御部のいずれか一方に記憶させる必要があると判断することを特徴とする学習方法。
【請求項１１】
請求項９乃至１０記載の学習方法であって、
前記判断するステップは、前記受信したパケットが有するネットワークアドレスが前記保持部に保持されており、かつ、該ネットワークアドレスと対応付けて保持される前記学習時情報が前記運用系として動作している第１の装置制御部もしくは第２の装置制御部のいずれか一方を示す現在情報と異なる場合は、前記保持部が保持する前記学習時情報を前記現在情報に更新する必要があると判断し、かつ、前記現在情報もしくは学習時情報と対応付けて保持される前記ネットワークアドレスと前記受信ポート番号とを前記現在情報が示す前記第１の装置制御部もしくは第２の装置制御部のいずれか一方に記憶させる必要があると判断することを特徴とする学習方法。
【請求項１２】
請求項１０乃至１１記載の学習方法であって、更に、
前記判断するステップで、前記運用系として動作している第１の装置制御部もしくは第２の装置制御部のいずれか一方に記憶させる必要があると判断すると、前記転送エンジン部が前記運用系として動作している第１の装置制御部もしくは第２の装置制御部のいずれか一方に通知するステップと、
前記通知された第１の装置制御部もしくは第２の装置制御部のいずれか一方が、前記判断するステップで記憶させる必要があると判断された前記ネットワークアドレスと受信ポート番号とを対応付けて記憶するステップとを有することを特徴とする学習方法。
【請求項１３】
請求項１０乃至１１記載の学習方法であって、更に、
前記転送エンジン部が、前記判断するステップで記憶させる必要があると判断された前記ネットワークアドレスと受信ポート番号とを対応付けて前記第１の装置制御部もしくは第２の装置制御部のいずれか一方に記憶させるステップを有することを特徴とする学習方法。
【請求項１４】
請求項９乃至１３記載の学習方法であって、更に、
前記第１装置制御部および第２の装置制御部に系切替が発生し一定時間経過後に、前記保持するステップで保持される前記学習時情報と、前記系切替後に運用系として動作している第１の装置制御部もしくは第２の装置制御部のいずれか一方を示す現在情報とが異なる場合は、前記転送エンジン部が前記学習時情報と対応付けて保持するネットワークアドレスと受信ポート番号とを削除するステップを有することを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＥｔｈｅｒｎｅｔ（登録商標）及びＩＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ）に代表されるパケット通信技術を用いて特定の入力ポートと出力ポートの間でパケットをスイッチングするパケット交換装置およびパケット交換装置におけるネットワークアドレス学習方法に関するものである。
【背景技術】
【０００２】
パケットの代表的な構成として、米国電機電子技術者協会（IEEE）にて規格化されるIEEE802.3規格（非特許文献）にて規定される構成を図６に示す。パケット１は、ヘッダ部とペイロードデータ部から構成され、ヘッダ部には送信先ネットワークアドレスと送信元ネットワークアドレスと長さ（データ部のサイズを示す）を含む。また、ペイロードデータ部にはデータが格納され、更にフレームのエラーを検出するためのＦＣＳ（Frame Check Sequence）がある。パケットを送信する端末は、パケットが到着することを期待する相手端末に付与されたネットワークアドレスを送信先ネットワークアドレスとして書き込み、自分に付与されたネットワークアドレスを送信元ネットワークアドレスとして書き込むことによってパケットを構築する。
【０００３】
次に、従来技術の動作を説明する。図７は、パケット交換装置の転送エンジン部に保持される学習情報テーブルの一例である。学習情報テーブルは、ネットワークアドレスとそのネットワークアドレスを有する端末が収容されるポート番号の組み合わせを保持する。
【０００４】
図８は、従来のパケット交換装置におけるパケットスイッチング処理の流れ図を示す。入力ポートに到着したパケットは、転送エンジン部にてヘッダ情報を解析され、送信先ネットワークアドレス（説明のため“Ａ”であるとする）と送信元ネットワークアドレス（説明のため“Ｂ”であるとする）を抽出される（ステップＳ１０１）。
【０００５】
抽出したネットワークアドレスに基づいて、最初に宛先検索処理（ステップＳ１１０）が実行される。宛先検索処理（ステップＳ１１０）では、転送エンジン部は、送信先ネットワークアドレス（“Ａ”）を検索キーとして、学習情報テーブルを検索する（ステップＳ１０２）。学習情報テーブルに“Ａ”のエントリがあった場合（ステップＳ１０３でＹｅｓの場合）、そのエントリに記述されたポート番号に該当するポートに該パケットを転送する（ステップＳ１０５）。もし、学習情報テーブルに“Ａ”のエントリがなかった場合（ステップＳ１０３でＮｏの場合）、全てのポートに該パケットを同報する（ステップＳ１０４）。
【０００６】
該パケットに対する宛先検索処理（ステップＳ１１０）が終了すると、次にネットワークアドレス学習処理（ステップＳ１１１）を実行する。ネットワークアドレス学習処理では、該パケットの送信元ネットワークアドレス（“Ｂ”）を検索キーとして学習情報テーブルを検索する（ステップＳ１０６）。学習情報テーブルに“Ｂ”のエントリがなかった場合（ステップＳ１０７でＮｏの場合）、該パケットが到着したポートのポート番号（本実施例では説明のため“１”であったとする）と“Ｂ”の組み合わせを学習情報テーブルに登録する（ステップＳ１０８）。今後、“Ｂ”を送信先ネットワークアドレスとするパケットが到着した場合には、今回新規登録した学習情報テーブルの該エントリを参照してポート番号１に該当するポートに転送すればよい。
【０００７】
このように、パケットを入力ポートと出力ポートとの間でスイッチングするパケット交換装置では、入力されたパケットのヘッダ情報に付与された送信元ネットワークアドレスとその入力ポートの組み合わせを学習登録し、それ以後、同一のネットワークアドレスを送信先とするパケットが入力された場合には、学習登録済みのポートに該パケットを転送するネットワークアドレス学習機能を備えている。転送エンジン部をハードウェアで構成し、このネットワークアドレス学習機能をハードウェアで実行すれば、高速なパケット交換が可能となる。
【０００８】
しかしながら、ハードウェアによるネットワークアドレス学習機能の課題として、下記（１）（２）がある。
課題（１）：ハードウェアが学習したネットワークアドレス情報を、情報化けが発生した時のメンテナンスのために装置制御部上で動作するソフトウェアが保持しておく必要があるが、ハードウェアが学習したネットワークアドレス情報をどのようにソフトウェアに通知するか、いかにソフトウェア負荷をかけずに左記を実現するか。
課題（２）：装置制御部が冗長化された構成において、ハードウェアが学習したネットワークアドレス情報を、冗長化された装置制御部でそれぞれ動作する運用系のソフトウェアと待機系のソフトウェア間でそれぞれどのように保持するか、いかにソフトウェア負荷をかけずに左記を実現するか。
【０００９】
ハードウェアがネットワークアドレスを学習登録すると、その登録情報をハードウェア内部に保持するが、下記（１）−Ａ、（１）−Ｂあるいは（１）−Ｃの手段によりソフトウェアはネットワークアドレス情報を獲得することで、課題（１）に対応している。
（１）−Ａ：ハードウェアは学習の度にソフトウェアに割り込みを挙げ、ソフトウェアはハードウェアの保持情報を検索して該当するネットワークアドレス情報を入手する。
（１）−Ｂ：ソフトウェアは、定期的にハードウェアの保持情報を全検索して、ハードウェアが学習したネットワークアドレス情報を入手する。
（１）−Ｃ：ハードウェアは学習の度に装置制御部内のローカルメモリデバイスに学習したネットワークアドレス情報を転送する。
【００１０】
（１）−Ａの手段では、ネットワークアドレスの学習が頻発するとソフトウェア処理が増え、ソフトウェア処理効率が著しく落ちるという問題があり、ネットワークアドレス学習処理専用のプロセッサをおく必要があった。また、（１）−Ｂの手段では、ハードウェアとソフトウェアのネットワークアドレス情報の同期化がリアルタイムではなくなり、ハードウェア保持情報のビット化け復旧のためにソフト保持情報を使用したい場合に、ハードウェア保持情報との不一致により正しく復旧できないという問題があった。そこで、ハードウェアが、学習したネットワークアドレス情報を装置制御部のローカルメモリデバイスにダイレクト転送することで、ソフトウェアがハードウェア情報を検索する必要がなくなる（１）−Ｃの手段が考案されている。（１）−Ｃは、（１）−Ａのソフトウェア処理能力ネックの解消、（１）−Ｂのリアルタイム性の改善を両立している。
【００１１】
一方、課題（２）に対しては、運用系と待機系のソフトウェアが、ネットワークアドレス情報をそれぞれ保持する従来手段として、下記（２）−Ａ、（２）−Ｂあるいは（２）−Ｃが用いられていた。
（２）−Ａ：待機系ソフトウェアが使用するローカルメモリデバイスに対しても、運用中に上記（１）−Ｃを実行する。
（２）−Ｂ：装置制御部が系切替された後に、新運用系ソフトウェアはハードウェアの保持情報を全検索する。
（２）−Ｃ：常時、運用系と待機系のソフトウェア同士でネットワークアドレス情報を交換して同期化する。
【００１２】
【非特許文献１】IEEE802.3-2005 Chapter3 “Media access control frame structure”、2005/12/9発行
【発明の開示】
【発明が解決しようとする課題】
【００１３】
以上説明した従来技術による課題について説明する。（２）−Ａの手段では、装置運用途中で待機系の装置制御部が実装された場合に、それまで学習済のネットワークアドレス情報を同期化させるための別の処理が必要になり、処理が複雑化する。
【００１４】
（２）−Ｂの手段では、系切替後の新運用系ソフトウェア処理が増大し、装置制御部に搭載されたプロセッサ処理能力によっては他のソフトウェア処理を停止することになりかねない。
【００１５】
また、（２）−Ｃの手段は、同期化中に運用系の装置制御部に故障が発生することを考慮すると、同期性を完全に維持するのは非常に困難である。このように課題（２）を克服する方式は見当たらない。
【００１６】
本発明は、パケット交換装置及びパケット交換装置におけるネットワークアドレス学習方法に関し、冗長化された装置制御部が学習登録済みのネットワークアドレス情報を効率よく保持するパケット交換装置およびネットワークアドレス学習方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するために本発明は、ポートを介してパケットの送受信を行うパケット交換装置であって、装置全体を制御管理する冗長化された運用系および待機系の装置制御部と、入力ポートから受信したパケットの転送先を検索して出力ポートに転送し、また、前記受信したパケットが有するネットワークアドレスを学習するかどうかについて判断する転送エンジン部とを有し、前記転送エンジン部は、前記学習すると判断した場合に、前記パケットが有するネットワークアドレスと、前記パケットを受信した受信ポート番号と、前記学習時の運用系の装置制御部を示す情報と、を対応付けて保持する保持部を有し、前記学習したネットワークアドレスと受信ポート番号とを前記運用系の装置制御部に保持させるパケット交換装置、及びネットワークアドレス学習方法を提供する。
【発明の効果】
【００１８】
本発明によれば、冗長化された装置制御部が学習登録済みのネットワークアドレス情報を効率よく保持することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施形態について図面を参照して説明する。図２は本実施形態におけるパケット交換装置の構成を示すブロック図である。図示する通り、パケット交換装置は、装置制御部１０と、転送エンジン部２０とを備えている。装置全体を制御する装置制御部１０は冗長化のために２つ備えられており、片方は運用系、他方は運用系が故障した場合にバックアップする待機系として動作する。説明のため、片方の装置制御部１０の系番号を「０系」、他方の装置制御部１０の系番号を「１系」と記す。また、装置制御部１０は、プロセッサ１１とローカルメモリ１２を内部に備えている。ローカルメモリ１２にはソフトウェアが格納されており、当該ソフトウェアをプロセッサ１１が実行することによって、後述する転送エンジン部２０の系番号レジスタ２２の更新や、学習情報テーブル２１の検索を行うように構成してもよい。
【００２０】
転送エンジン部２０は、複数のポート３０−１〜３０−ｎを収容し、それらの間でパケットをスイッチングする。例えば転送エンジン部２０は、内部に専用の転送制御回路２４やそれを駆動するための動作クロックを供給するクロックコントロール部２３を備えたＡＳＩＣなどのハードウェアによって実現され、各ポート間での高速なスイッチングを実現することができる。なお、ポート３０−１〜３０−ｎには、識別のための番号（ポート番号）が割り当てられている。本実施形態では、ポート数をＮとして、１〜Ｎの整数が割り当てられているとする。
また、転送エンジン部２０は、０系と１系の装置制御部１０のどちらが運用系であるかを示す情報を格納する系番号レジスタ２２を有する。系番号レジスタ２２は、装置制御部１０のプロセッサ１１上で動作するソフトウェアから、制御信号線４０を介して読み書き可能であり、運用系の系番号を書き込む（以後、説明のため系番号レジスタ２２に保持される情報を「現在系番号」と略す）。具体的には、０系の装置制御部１０が運用系、１系が待機系であった場合には、系番号レジスタ２２には“０”が書き込まれている。装置制御部１０の系切替が発生して、０系が新待機系、１系が新運用系になると、系切替後の運用系ソフトウェアは系番号レジスタ２２に“１”を上書き更新する。なお、系番号レジスタ２２に保持される現在系番号は、必ずしも番号である必要はなく、現在の運用系装置制御部を識別できる情報であればよいため単に現在情報ともいう。
【００２１】
プロセッサ１１が系番号レジスタ２２の内容を読み書きするための一構成例として、制御信号線４０を介して、プロセッサ１１が読書対象のアドレスと書き込むデータを転送エンジン部２０の内部に存在するアドレスバッファ２５とデータバッファ２６に通知するようにし、アドレスバッファ２５とデータバッファ２６は通知された情報（読書対象のアドレスと書き込むデータ）を格納する。アドレスバッファ２５とデータバッファ２６はそれぞれ格納した情報を解析した後に、読み書き対象のエリアを特定して所望のデータを読み出したり、書き込んだりする。読み出しの場合は読み出した結果を制御信号線４０を介してプロセッサ１１に通知する。
転送エンジン部２０は、更に、学習情報テーブル２１を備えており、系番号レジスタと同様にプロセッサ１１から読み書きすることができる。
【００２２】
図３は、転送エンジン部２０に格納される学習情報テーブル２１の一例である。例えば、学習情報テーブル２１は、ＡＳＩＣなどのハードウェアによって実現される転送エンジン部２０に内蔵されるＲＡＭ内に格納される。学習情報テーブル２１は、ネットワークアドレス２１１、そのネットワークアドレスを有する端末が収容されるポートを識別するための番号であるポート番号２１２、および、そのネットワークアドレスを学習した時の運用系装置制御部の系番号２１３（以後、説明のため学習情報テーブル２１に保持される運用系装置制御部の系番号２１３を「学習時系番号」と略す）を対応付けて保持する。なお、学習情報テーブル２１に保持される学習時系番号は、必ずしも番号である必要はなく、ネットワークアドレスを学習した時の運用系装置制御部を識別できる情報であればよいため単に学習時情報ともいう。当該学習情報テーブル２１にハードウェアである転送エンジン部が学習したネットワークアドレス情報が記憶されるが、情報化けが発生した時のメンテナンスのために装置制御部１０で動作するソフトウェアが使用するローカルメモリ１２にもネットワークアドレス情報を保持しておく必要がある。
【００２３】
図４は、本実施形態における系番号レジスタ２２に対する処理の流れを示すフローチャートである。パケット交換装置の状態に変化があり、それがパケット交換装置の再起動であると（ステップＳ４１のＹｅｓ）、再起動後の運用系の装置制御部１０のプロセッサ１１が実行することで動作する運用系ソフトウェアは、転送エンジン部２０の系番号レジスタ２２に、再起動後の運用系の装置制御部１０の系番号を書き込む（ステップＳ４３）。あるいは、パケット交換装置の再起動ではなく（ステップＳ４１のＮｏ）、今まで運用系であった装置制御部１０が新待機系となり、待機系であった装置制御部１０が新運用系になる系切替が発生すると（ステップＳ４２のＹｅｓ）、系切替後の運用系の装置制御部１０のプロセッサ１１が実行することで動作する運用系ソフトウェアは、転送エンジン部２０の系番号レジスタ２２に、系切替後の運用系の装置制御部１０の系番号を書き込む（ステップＳ４３）。
【００２４】
例えば、パケット交換装置の状態が変化する前は０系の装置制御部１０が運用系で、１系の装置制御部１０が待機系であったとして説明すると、ステップＳ４１でパケット交換装置が再起動したと判断されると（Ｙｅｓ）、再起動後も引き続き０系の装置制御部１０が運用系の場合には、０系の装置制御部１０で動作する運用系ソフトウェアが、転送エンジン部２０の系番号レジスタ２２に、再起動後の運用系の装置制御部１０の系番号である“０”を書き込む。また、ステップＳ４１でパケット交換装置が再起動したと判断されず（Ｎｏ）、ステップＳ４２で今まで運用系であった０系の装置制御部１０が新待機系となり、待機系であった１系の装置制御部１０が新運用系になる系切替が発生したと判断されると（Ｙｅｓ）、１系の装置制御部１０で動作する運用系ソフトウェアが、転送エンジン部２０の系番号レジスタ２２に、系切替後の運用系の装置制御部１０の系番号である“１”を書き込む。また、図２に基づいて具体的な書き込み方法について説明すると、プロセッサ１１が実行することで動作する運用系ソフトウェアは、系番号レジスタ２２に系番号を書き込むために、制御信号線４０を介して、書き込み対象のアドレスと書き込む系番号を転送エンジン部２０の内部に存在するアドレスバッファ２５とデータバッファ２６に通知し、アドレスバッファ２５とデータバッファ２６は通知された書き込み対象のアドレスと書き込む系番号とを格納する。アドレスバッファ２５とデータバッファ２６はそれぞれ格納した情報を解析した後に、系番号レジスタ２２における書き込み対象のエリアを特定して系番号を書き込む。以上説明した処理によって、転送エンジン部２０の系番号レジスタ２２には常に運用系の装置制御部１０の系番号が現在系番号として保持される。
【００２５】
図１は、本実施形態におけるパケット交換装置によるパケットスイッチング処理の流れを示すフローチャートである。入力ポート３０−１〜３０−ｎに到着したパケットは、転送制御回路２４にてパケットのヘッダ情報を解析され、送信先ネットワークアドレス（本実施形態では説明のため“Ａ”であるとする）と送信元ネットワークアドレス（本実施形態では説明のため“Ｂ”であるとする）を抽出される（ステップＳ１１）。ここで、本実施形態におけるパケットの構成は図６に示す通りであり、当該パケット１は、ヘッダ部とペイロードデータ部から構成され、ヘッダ部には送信先ネットワークアドレスと送信元ネットワークアドレスと長さ（データ部のサイズを示す）を含む。また、ペイロードデータ部にはデータが格納され、更にフレームのエラーを検出するためのＦＣＳ（Frame Check Sequence）がある。
【００２６】
抽出したネットワークアドレスに基づいて、最初に宛先検索処理（ステップＳ２３）が実行される。宛先検索処理（ステップＳ２３）では、転送制御回路２４は、ステップＳ１１で抽出した送信先ネットワークアドレス（“Ａ”）を検索キーとして、学習情報テーブル２１を検索し（ステップＳ１２）、学習情報テーブル２１にネットワークアドレス２１１が“Ａ”のエントリがあった場合は（ステップＳ１３のＹｅｓ）、そのエントリに記述されたポート番号に該当するポートに該パケットを転送する（ステップＳ１５）。もし、学習情報テーブル２１にネットワークアドレス２１１が“Ａ”のエントリがなかった場合は（ステップＳ１３のＮｏ）、全てのポートにパケットを同報する（ステップＳ１４）。
【００２７】
該パケットに対する宛先検索処理（ステップＳ２３）が終了すると、次にネットワークアドレス学習処理（ステップＳ２４）を実行する。転送制御回路２４は、ステップＳ１１で抽出した該パケットの送信元ネットワークアドレス（“Ｂ”）と系番号レジスタ２２に保持される現在系番号とを検索キーとして学習情報テーブル２１を検索する（ステップＳ１６）。
【００２８】
ステップＳ１６において、学習情報テーブル２１にネットワークアドレス２１１が“Ｂ”のエントリが存在し、更に、そのエントリに記録された学習時系番号２１３と系番号レジスタ２２の保持する現在系番号が同じである場合には（ステップＳ１７のＹｅｓ）、現在系番号に該当する装置制御部１０が当該エントリのネットワークアドレス情報を学習してから系切替は発生していないことを示し、該装置制御部１０は該ネットワークアドレス情報をすでに所有しているため学習する必要はないと判断して、転送制御回路２４はなにもせず処理を終了する（ステップＳ２２）。
【００２９】
ステップＳ１６において、学習情報テーブル２１にネットワークアドレス２１１が“Ｂ”のエントリがない場合は（ステップＳ１７でＮｏ、かつステップＳ１８でＮｏの場合）、ステップＳ１１で抽出した送信元ネットワークアドレス（“Ｂ”）についてのネットワークアドレス情報がまだ学習されていないことを示すため、当該ネットワークアドレス情報を学習する必要があると判断し、該パケットが到着したポートのポート番号（本実施形態では説明のため“１”とする）とステップＳ１１で抽出した送信元ネットワークアドレス（“Ｂ”）と系番号レジスタ２２に保持される現在系番号とを対応付けて学習情報テーブル２１に登録する（ステップＳ２０）。更に、転送制御回路２４は学習したネットワークアドレス情報を運用系の装置制御部にも保持させる必要があると判断し、現在系番号に該当する装置制御部１０にネットワークアドレスの学習状態に変動があったことを通知する（ステップＳ２１）。この通知手段は、専用の割込信号線を介してでもよく、ソフトウェアはこの通知を契機に学習情報テーブル２１を検索して新規に学習登録したネットワークアドレス情報を獲得する。あるいは、転送エンジン部２０が、ステップＳ２１において、学習したネットワークアドレス情報を現在系番号に該当する装置制御部１０のローカルメモリ１２にダイレクト転送するように構成してもよい。後者のように装置制御部１０がローカルメモリ１２に学習したネットワークアドレスをダイレクト転送すれば、ソフトウェアが学習情報テーブル２１を検索する必要がないため、ソフトウェア処理能力ネックの解消につながる。
【００３０】
ステップＳ１６において、学習情報テーブル２１にネットワークアドレス２１１が“Ｂ”のエントリがあるものの、そのエントリに記録された学習時系番号２１３と系番号レジスタの保持する現在系番号が異なる場合には（ステップＳ１７でＮｏ、かつステップＳ１８でＹｅｓの場合）、転送制御回路２４が該エントリのネットワークアドレス情報を学習登録した後に、装置制御部１０の系切替が発生したことを示し、現在系番号に該当する装置制御部１０は該ネットワークアドレス情報を所有していないため、当該ネットワークアドレス情報を運用系の装置制御部にも保持させる必要があると判断して、転送制御回路２４は現在系番号に該当する装置制御部１０に、ネットワークアドレスの学習状態に変動が発生したことを通知する（ステップＳ２１）。この通知手段は、専用の割込信号線を介してでもよく、ソフトウェアはこの通知を契機に学習情報テーブル２１を検索して新規に学習登録したネットワークアドレス情報を獲得する。あるいは、転送エンジン部２０が、ステップＳ２１において、学習したネットワークアドレス情報を現在系番号に該当する装置制御部１０のローカルメモリ１２にダイレクト転送するように構成してもよい。後者のように装置制御部１０がローカルメモリ１２に学習したネットワークアドレスをダイレクト転送すれば、ソフトウェアが学習情報テーブル２１を検索する必要がないため、ソフトウェア処理能力ネックの解消につながる。
【００３１】
また、今後同一のネットワークアドレスを送信元ネットワークアドレスとするパケットが到着しても、現在系番号に該当する装置制御部１０にネットワークアドレスの学習状態に変動が発生したことを誤通知しないようにするため、該エントリの学習時系番号を系番号レジスタ２２の保持する現在系番号に上書き更新しておく（ステップＳ１９）。
【００３２】
このように、学習時系番号２１３を学習情報テーブル２１にて管理し、学習時の装置制御部の系番号と現在の運用系の装置制御部の系番号との相違を認識することで、転送エンジン部２０で系切替前のネットワークアドレス情報を活用した宛先検索処理（ステップＳ２３）を行いつつ、系切替によって新運用系となった装置制御部１０では、実際に学習継続の必要のあるネットワークアドレス情報のみを保持させることができ、転送エンジン部２０と装置制御部１０との間でネットワークアドレス情報の同期化をリアルタイムに行うことができる。装置制御部１０の系切替後しばらくの間は、転送エンジン部２０の学習情報テーブル２１に系切替前に学習したネットワークアドレス情報も保持するため（後述の図５参照）、図１の宛先検索処理（ステップＳ２３）において系切替前に学習したネットワークアドレス情報を使って効率よく宛先検索処理を行うことができるのである。
【００３３】
また、装置制御部１０の系切替が発生した際に、転送エンジン部２０が学習情報テーブル２１に保持するネットワークアドレス情報を全て新運用系の装置制御部１０のローカルメモリ１２にダイレクト転送する方法も考えられるが、この場合、転送エンジン部２０がネットワークアドレス情報を学習する度に運用系装置制御部１０のローカルメモリ１２にネットワークアドレス情報をダイレクト転送する機能とは別に、系切替時に全ネットワークアドレス情報をローカルメモリ１２にダイレクト転送する機能を設ける必要があり、効率的でない。
【００３４】
尚、本実施形態では、送信先ネットワークアドレスを検索する宛先検索処理（ステップＳ２３）を実行してから、ネットワークアドレス学習処理（ステップＳ２４）を実行するとしたが、その手順は逆でもよく、先にネットワークアドレス学習処理（ステップＳ２４）を実行してもよい。
【００３５】
図５は、本実施形態において装置制御部１０の系切替が発生した後の転送エンジン部２０の処理の流れを示すフローチャートである。転送エンジン部２０では、図１のネットワークアドレス学習処理（ステップＳ２４）にて述べたように、系切替前に学習したネットワークアドレス情報のうち、系切替後も学習する必要があると判断されたもののみを運用系の装置制御部１０に通知する。したがって、系切替前に学習したネットワークアドレス情報であって、系切替発生後、一定時間が経過しても学習する必要があると判断されないネットワークアドレス情報は削除する。本処理を図５のフローチャートに沿って説明する。装置制御部１０の系切替が発生した後、一定時間が経過すると（ステップＳ５１）、装置制御部上で動作するソフトウェアは学習情報テーブル２１を検索して、エントリに記憶された学習時系番号２１３が系番号レジスタ２２に保持される現在系番号と異なるエントリを探索する（ステップＳ５３のＹｅｓ）。このようなエントリは、系切替前に学習登録されたものの、系切替後のしばらくの間に該ネットワークアドレスを送信元ネットワークアドレスとするパケットが到着していない（図１のステップＳ１９によって学習時系番号２１３が更新されなかった）ことを示し、つまりこれ以上学習情報テーブル２１に保持する必要がないので、該エントリを消去する（ステップＳ５４）。また、現在系番号に該当する装置制御部１０は、系切替前に学習されたこれら消去されるネットワークアドレス情報は所持していないので、消去することを特に通知する必要もないので、ステップＳ５０からステップＳ５６までの処理を転送制御回路２４がハードウェア自律で実行すれば、まったくソフトウェア処理負荷をかけることなく、学習継続不要なエントリを削除することができる。
【００３６】
以上図１〜図５を用いて説明した本実施形態について簡潔に表現すると、パケット交換装置は、冗長化された装置制御部のうち、運用系である装置制御部の系番号を転送エンジン部に設定し、転送エンジン部は新規のネットワークアドレスを学習した時に、保持情報として転送エンジン部に設定される系番号を含める。また、転送エンジン部は、保持情報を検索してネットワークアドレスを新規として学習登録すべきかを判断する際、転送エンジン部に設定される前記系番号を含めて保持情報を検索し、ネットワークアドレスが同じであっても、保持情報内の系番号と、転送エンジン部に設定される系番号が異なっている場合は、該保持情報は装置制御部の系切替前に学習したものと判断し、保持情報内の系番号を、転送エンジン部に設定される系番号に上書き更新するとともに、転送エンジン部に設定される系番号に該当する装置制御部にネットワークアドレスの学習状況に変動があったことを通知することを特徴とする。
【００３７】
これにより、全くの新規のネットワークアドレスに加えて、系切替前に学習したと判定されたネットワークアドレスを新運用系ソフトウェアに保持させるように動作することで、装置運用中に装置制御部同士でネットワークアドレス情報を交換しあったりすることなく、また装置制御部の系切替後に新運用系ソフトウェアが集中的にネットワークアドレス情報を検索することなく、実際に学習継続の必要のあるネットワークアドレス情報のみを保持させることができる。つまり、冗長化された装置制御部で動作するそれぞれのソフトウェアの処理負荷を軽減しつつ、運用系の装置制御部には保持する必要のある適切なネットワークアドレス情報のみを保持させることができる。
【００３８】
また、本実施形態におけるパケット交換装置は、装置制御部の系切替後、一定時間を経過しても、保持情報内の系番号が転送エンジン部に設定される系番号に変更されない保持情報を消去することを特徴とする。
【００３９】
系切替後、保持情報内の系番号が転送エンジン部に設定される系番号に変更されない保持情報は、系切替後に該ネットワークアドレスを有するパケットを受信していないことを示し、学習継続は不要である。これにより、系切替後の新運用系ソフトウェアで保持する必要のない保持情報を効率的に開放することができる。
【００４０】
以上、本明細書及び図面で詳細に示した実施例は本発明を限定するものではない。本発明の主旨及び特許請求の範囲内での種々の変形は本発明の範囲内である。
【図面の簡単な説明】
【００４１】
【図１】本実施形態におけるパケット交換装置によるパケットスイッチング処理の流れを示すフローチャートである。
【図２】本実施形態におけるパケット交換装置の構成を示すブロック図である。
【図３】本実施形態における学習情報テーブル２１の一例である。
【図４】本実施形態における系番号レジスタ２２に対する処理の流れを示すフローチャートである。
【図５】本実施形態における装置制御部１０の系切替が発生した後の転送エンジン部２０の処理の流れを示すフローチャートである。
【図６】本実施形態におけるパケットフォーマットの一例である。
【図７】従来のパケット交換装置における学習情報テーブルである。
【図８】従来のパケット交換装置における動作処理を示すフローチャートである。
【符号の説明】
【００４２】
１  パケット
１０  装置制御部
１１  プロセッサ
１２  ローカルメモリ
２０  転送エンジン部
２１  学習情報テーブル
２２  系番号レジスタ
３０−１〜３０−ｎ  ポート
４０  制御信号線
１００  従来の学習情報テーブル
【図１】
2009060306.tif 000003
【図２】
2009060306.tif 000004
【図３】
2009060306.tif 000005
【図４】
2009060306.tif 000006
【図５】
2009060306.tif 000007
【図６】
2009060306.tif 000008
【図７】
2009060306.tif 000009
【図８】
2009060306.tif 000010