(57)【要約】【課題】  特定経路への転送データの集中を回避できるデータ中継装置を提供する。【解決手段】  パケット入力回線に接続された複数の入力回線インタフェース２１と、パケット出力回線に接続された複数の出力回線インタフェース３４と、上記各入力回線インタフェースからの出力パケットを上記出力回線インタフェースのうちの１つに選択的にルーティングするためのパケット転送制御部４０とからなるパケット中継装置において、上記パケット転送制御部が、１つの宛先アドレスに対応して経路情報の異なる複数のテーブルエントリをもつマルチパスルーティングテーブル５３を備え、上記マルチパスルーティングテーブルが示す経路情報に従って、同一の宛先アドレスをもつ複数の受信パケットを少なくとも２つの出力回線インタフェースに選択的に振り分ける。【選択図】  図１
2006165952.tif 000002
【特許請求の範囲】
【請求項１】
パケット入力回線に接続された複数の入力回線インタフェースと、パケット出力回線に接続された複数の出力回線インタフェースと、上記各入力回線インタフェースからの出力パケットを上記出力回線インタフェースのうちの１つに選択的にルーティングするためのパケット転送制御部とからなるパケット中継装置であって、
上記パケット転送制御部が、１つの宛先アドレスに対応して経路情報の異なる複数のテーブルエントリをもつマルチパスルーティングテーブルを備え、
該パケット転送制御部が、上記マルチパスルーティングテーブルが示す経路情報に従って、同一の宛先アドレスをもつ複数の受信パケットを少なくとも２つの出力回線インタフェースに選択的に振り分けることを特徴とするパケット中継装置。
【請求項２】
前記パケット転送制御部が、宛先アドレス毎に１つの経路情報エントリをもつシングルパスルーティングテーブルを備え、前記マルチパスルーティングテーブルに未定義の宛先アドレスをもつ受信パケットについては、上記シングルパスルーティングテーブルが示す経路情報によって特定される何れかの出力回線インタフェースにルーティングすることを特徴とする請求項１に記載のパケット中継装置。
【請求項３】
前記複数の入力回線インタフェースを含む受信パケット処理部と、前記複数の出力回線インタフェースを含む送信パケット処理部とを有し、
上記受信パケット処理部が、上記各入力回線インタフェースから出力された受信パケットのヘッダ情報を前記パケット転送制御部に通知し、該パケット転送制御部からの指示に従って、上記受信パケットを出力回線識別子を含む内部ヘッダ付きのパケットに変換するパケット変換部を備え、
上記送信パケット処理部が、上記受信パケット処理部からの出力パケットを受信し、受信パケットをその内部ヘッダが示す出力回線識別子で特定される何れかの出力回線インタフェースに振り分けるための手段を備えたことを特徴とする請求項１または請求項２に記載のパケット中継装置。
【請求項４】
前記パケット変換部が、前記パケット転送制御部からの指示に従って、前記何れかの入力回線インタフェースから出力された受信パケットに経路識別情報を含む制御ヘッダを付加する機能を備えたことを特徴とする請求項３に記載のパケット中継装置。
【請求項５】
前記マルチパスルーティングテーブルの各テーブルエントリが、宛先アドレスとパスインデクス値との組合せに対応して経路情報を定義しており、
前記パケット転送制御部が、受信パケット毎に検索キーとなるパスインデクス値を切り替えて、上記マルチパスルーティングテーブルから受信パケットの宛先アドレスと対応する経路情報を検索することを特徴とする請求項１〜請求項４の何れかに記載のパケット中継装置。
【請求項６】
前記パケット転送制御部が、それぞれフロー定義情報と対応してパスインデクスの現在値を示す複数のテーブルエントリからなるパケット出力制御テーブルを備え、
該パケット転送制御部が、受信パケット毎に、上記パケット出力制御テーブルからフロー定義情報が受信パケットのヘッダ情報に適合するテーブルエントリを検索し、該テーブルエントリが示すパスインデクス値を検索キーとして、前記マルチパスルーティングテーブルから受信パケットの宛先アドレスと対応する経路情報を検索することを特徴とする請求項５に記載のパケット中継装置。
【請求項７】
前記パケット変換部が、前記パケット転送制御部からの指示に従って、前記何れかの入力回線インタフェースから出力された受信パケットを互いに異なる出力回線識別子を含む内部ヘッダ付きの複数のセグメントパケットに分割して出力する機能を備えたことを特徴とする請求項３に記載のパケット中継装置。
【請求項８】
前記マルチパスルーティングテーブルの各テーブルエントリが、宛先アドレスとパスインデクス値との組合せに対応して経路情報を定義しており、
前記パケット転送制御部が、前記セグメントパケット毎に検索キーとなるパスインデクス値を切り替えて、上記マルチパスルーティングテーブルから受信パケットの宛先アドレスと対応する経路情報を検索し、該経路情報の一部である出力回線識別子を含む内部ヘッダ付きのパケットヘッダを生成し、該パケットヘッダを前記パケット変換部に通知することを特徴とする請求項７に記載のパケット中継装置。
【請求項９】
前記パケット転送制御部が、パケットフロー毎に受信パケットの到着順序を検証するための手段を有し、
前記受信パケット処理部が、前記パケット転送制御部からのパケット待機指示に応答して、前記入力回線インタフェースから出力された受信パケットデータを保持するための待ち合わせメモリを備え、前記パケット変換部が、上記パケット転送制御部からの待機パケット転送指示に従って、上記メモリから読み出された受信パケットデータを内部ヘッダ付きのパケットに変換することを特徴とする請求項８に記載のパケット中継装置。  
【請求項１０】
前記マルチパスルーティングテーブルの各エントリが、複数のノード装置から構成されるパケット網と接続される出力回線インタフェースにルーティングすべき宛先アドレスについて、前記経路情報を定義していることを特徴とする請求項１〜請求項９の何れかに記載のパケット中継装置。
【請求項１１】
複数のノード装置からなり、エッジノード装置間に複数の通信経路をもつパケット通信ネットワークにおいて、
パケットを送受信する少なくとも１対のエッジノード装置が、パケット入力回線に接続された複数の入力回線インタフェースと、パケット出力回線に接続された複数の出力回線インタフェースと、上記各入力回線インタフェースからの出力パケットを上記出力回線インタフェースのうちの１つに選択的にルーティングするためのパケット転送制御部とからなり、
上記パケット転送制御部が、１つの宛先アドレスに対応して経路情報の異なる複数のテーブルエントリをもつマルチパスルーティングテーブルを備え、
該パケット転送制御部が、上記マルチパスルーティングテーブルが示す経路情報に従って、同一の宛先アドレスをもつ複数の受信パケットを少なくとも２つの出力回線インタフェースに選択的に振り分けることによって、受信パケットを異なる経路で対向エッジノード装置に転送することを特徴とするパケット通信ネットワーク。
【請求項１２】
前記パケット転送制御部が、宛先アドレス毎に１つの経路情報エントリをもつシングルパスルーティングテーブルを備え、前記マルチパスルーティングテーブルに未定義の宛先アドレスをもつ受信パケットについては、上記シングルパスルーティングテーブルが示す経路情報によって特定される何れかの出力回線インタフェースにルーティングすることを特徴とする請求項１１に記載のパケット通信ネットワーク。
【請求項１３】
前記複数の入力回線インタフェースを含む受信パケット処理部と、前記複数の出力回線インタフェースを含む送信パケット処理部とを有し、
上記受信パケット処理部が、上記各入力回線インタフェースから出力された受信パケットのヘッダ情報を前記パケット転送制御部に通知し、該パケット転送制御部からの指示に従って、上記受信パケットを出力回線識別子を含む内部ヘッダ付きのパケットに変換するパケット変換部を備え、
上記送信パケット処理部が、上記受信パケット処理部からの出力パケットを受信し、受信パケットをその内部ヘッダが示す出力回線識別子で特定される何れかの出力回線インタフェースに振り分けるための手段を備えたことを特徴とする請求項１１または請求項１２に記載のパケット通信ネットワーク。
【請求項１４】
前記受信パケット処理部が、送信待ち受信パケットを一時的に蓄積するための送信待ちキューメモリを有し、
前記パケット転送制御部が、対向エッジノード装置からの受信パケットについて、既に転送済みの受信パケットと新たな受信パケットのヘッダが示す送信順序情報に基づいて、各受信パケットの到着順序をチェックし、新たな受信パケットよりも先に対向エッジノード装置から送信されたパケットが未着の場合、前記受信パケット処理部に、該受信パケットの上記送信待ちキューメモリへの蓄積を指示し、先行パケットが受信された時点で、該先行パケットの転送後に上記送信待ち受信パケットの前記送信パケット処理部への転送を指示することを特徴とする請求項１３に記載のパケット通信ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケット中継装置およびパケット通信ネットワークに関し、更に詳しくは、ネットワーク内にパケット転送に利用可能な複数の経路が存在する場合に、受信パケットをこれらの複数の経路に分散して送信する機能を備えたパケット中継装置およびパケット通信ネットワークに関する。
【背景技術】
【０００２】
現在、情報伝達用のネットワークとして、Internet Protocol（ＩＰ）により経路制御を行うＩＰ網が世界的に利用されている。ＩＰでは、データ送信元装置が、送信データを一つ若しくは複数のデータブロックに分割し、各データブロックに宛先及び送信元を示すＩＰアドレス情報を含むＩＰヘッダを付加し、ＩＰパケットとしてネットワークに送信する。
【０００３】
ＩＰネットワークを構成するパケットルータ等のノード装置（パケット中継装置）は、それぞれ通信回線に接続された複数の入、出力回線インタフェースを備え、Routing Information Protocol （ＲＩＰ）、Open Shortest Path First （ＯＳＰＦ）などのルーティングプロトコルによって、各回線インタフェースが持つネットワークアドレスをネットワーク内の他のノード装置と互いに通知し合い、ネットワーク構成情報（接続情報）として蓄積する。また、各パケット中継装置は、自装置の各回線インタフェースからの受信パケットが示す送信元ＩＰアドレスと、各インタフェースと他のノード装置との接続状況とに基づいて、ルーティングプロトコルが持つアルゴリズムによって、宛先ＩＰアドレス毎に最適な経路を計算し、ルーティングテーブルに経路情報として記憶する。ルーティングテーブルの内容は、定期的または経路情報に変更が発生した時に更新される。
【０００４】
パケット中継装置は、受信パケットのヘッダから抽出した宛先ＩＰアドレスに基づいて、ルーティングテーブルから受信パケットの経路情報を検索し、該経路情報によって特定される何れかの出力インタフェースに受信パケットをルーティングし、出力回線に送信する。ルーティングテーブルに記憶される経路情報は、宛先装置を収容している宛先ノード迄のホップ数と、回線種別によって異なるコスト値を考慮して決定され、パケット転送効率を反映したものになっている。
【０００５】
ＩＰルーティングプロトコルでは、各ノード装置から宛先ノードに至る複数の経路の中から、最適と判断される一つの経路を選択し、宛先ＩＰアドレスに対応する経路情報としてルーティングテーブルに登録している。ネットワーク上では、様々な要因によって、回線の接続障害やパケット転送処理の遅延が発生し、パケット転送経路上でパケットが消滅する可能性がある。この問題に対処するため、ＩＰネットワークでは、上述したネットワークの接続状態に応じたルーティングテーブルの更新の他に、ＯＳＩ参照モデルにおいてネットワーク層の上位に位置しているトランスポート層でのパケット送達確認が利用される。すなわち、データの送信側装置と受信側装置の両端において、パケットの送信と着信を監視しておき、到着が確認できないパケットについては、当該パケットを再送することによって送信データの保障を行っている。
【０００６】
インターネットでは、通信回線能力の向上に伴って、マルチメディアデータの通信が可能となり、例えば、多数向け情報配信サービスであるコンテンツ配信網や、ＶｏＩＰによる電話網など、高付加価値情報を利用した様々な形態の情報サービスが行われている。個人の嗜好に合わせた情報サービスと携帯端末の普及に伴い、プライバシーの保護が重要な問題となっている。また、従来、専用線で構築されていた企業網の一部が、安価なＩＰネットワークを利用する傾向にある。この場合、情報伝達の効率化に加え、特に、バックアップデータや会議情報の共有や顧客データなど機密情報の通信における秘匿性の保証が重要な問題となっている。
【０００７】
ＩＰネットワークの安全性を高める技術として、例えば、ＶＬＡＮ（Virtual LAN）やＶＰＮ（Virtual Private Network）と呼ばれる技術が知られている。ＶＬＡＮは、ＬＡＮスイッチのポートもしくは各パケットに含まれるＴａｇに応じて、仮想的に独立したＬＡＮを形成し、各ＶＬＡＮを特定装置間の通信に専用のＬＡＮとすることによって、情報の流出を防止している。一方、ＶＰＮは、ネットワーク上に仮想的な専用通信路を形成するものであり、特定トラフィックに属したパケットをカプセル化ＩＰヘッダでカプセル化して転送することによって、他のトラフィックに属したパケットと差別化し、送信データの暗号化によって通信情報の秘匿性を確保している。
【０００８】
ＩＰネットワークのける通信の安全性を確保する他の技術として、例えば、ＩＰｓｅｃ（Security Architecture for Internet Protocol）などの暗号化プロトコルがある。特開２００３−２０９５６９号公報（特許文献１）には、暗号化プロトコルを適用することなく、パケットの秘匿性を向上させる１つの方式として、送信パケットを複数のパケットに分割し、これらの分割パケットを異なる複数の経路、例えば、衛星回線、有線回線、無線回線に分散して送信する経路分散装置が提案されている。このように、各パケットを分割し、異なる回線に分散して送信すれば、仮に特定の回線で盗聴が行われても、送信データの全容を知ることができないため、データの秘匿性を確保することが可能となる。
【０００９】
上記特許文献１で提案された経路分散装置は、衛星モデム、優先モデム、無線モデムと、秘匿性を必要とするパケット（または秘匿性を必要とする経路を通過すべきパケット）を識別するための所定の条件を登録したフィルタ条件テーブルとを備え、ホストからの受信パケットが上記フィルタ条件テーブルが示すフィルタ条件に合致しない場合は、通常のＩＰ経路選択によって処理し、何れかのフィルタ条件に合致した場合は、該フィルタ条件に従って受信パケットを分割し、複数の経路に分散して送信するようにしている。
【００１０】
【特許文献１】特開２００３−２０９５６９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来のＩＰのルーティングプロトコルでは、例えば、ＯＳＰＦの場合は物理的回線のコスト値、ＲＩＰの場合は宛先ノード迄の経路上に位置するノード装置（ルータ）の台数（ホップ数）に基づいて、転送効率が最も高いと考えられる経路を最適経路として選択している。従って、ネットワークの構成によっては、最適経路として選択された特定の経路にデータパケットが集中し、一部のノード装置でルーティング処理負荷が過大となって、結果的にパケット廃棄が発生し、データ転送の信頼性が低下するという問題がある。また、パケットが廃棄されると、廃棄パケットについて、例えば、ＴＣＰ機能によるパケット受信待ちと、廃棄パケットについての再送要求が発生し、データ転送遅延が増加する。
【００１２】
ネットワーク上での情報サービスが普及し、オンデマンドによる情報取得が生活シーンの一部となった現在において、上述したデータの転送遅延は、重要な解決課題となっている。映像をはじめとする高付加価値データを配信するネットワークサービスは、今後も益々普及し、トラフィックの更なる増加が予測され、ネットワーク上での利用経路の偏りは、より深刻な問題となり得る。また、宛先装置に対して一つの経路でデータを転送する通信方式は、通信帯域不足や障害の影響を受け易いという問題がある。
【００１３】
通信ネットワークのインフラ整備が進むにつれて、公衆のネットワーク上で企業の基幹業務データを通信する動きも出てきている。通常、こうした用途には、高い信頼性と安全性が要求されるため、インターネット上で基幹業務データを通信する場合は、例えば、ＭＰＬＳ（Multi Protocol Label Switching）を用いたラベルスイッチングや、ＩＰｓｅｃ（IP Security）を用いたＶＰＮ技術が主に利用される。
【００１４】
これらの技術は、通信の秘匿性を確保するために有効な技術とされているが、ＩＰルーティングをベースとしているため、宛先アドレスによって決まる特定の経路に転送データが集中することには変わりはない。従って、１つの経路でパケットの盗聴が発生した場合、或るトラフィックに属した一連の重要情報が第三者に漏洩する可能性がある。基幹業務に限らず、個人的なネットワーク利用においても、通信経路で転送データの安全性を確保することが、ネットワークサービスの提供に不可欠な条件となっている。
【００１５】
本発明の１つの目的は、特定経路への転送データの集中を回避できるデータ中継装置およびパケット通信ネットワークを提供することにある。
本発明の他の目的は、ＩＰ網上で転送データの安全性を確保できるデータ中継装置およびパケット通信ネットワークを提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明によるパケット中継装置は、パケット入力回線に接続された複数の入力回線インタフェースと、パケット出力回線に接続された複数の出力回線インタフェースと、上記各入力回線インタフェースからの出力パケットを上記出力回線インタフェースのうちの１つに選択的にルーティングするためのパケット転送制御部とからなり、
上記パケット転送制御部が、１つの宛先アドレスに対応して経路情報の異なる複数のテーブルエントリをもつマルチパスルーティングテーブルを備え、上記マルチパスルーティングテーブルが示す経路情報に従って、同一の宛先アドレスをもつ複数の受信パケットを少なくとも２つの出力回線インタフェースに選択的に振り分けることを特徴とする。
【００１７】
更に詳述すると、本発明のパケット中継装置は、上記パケット転送制御部が、宛先アドレス毎に１つの経路情報エントリをもつシングルパスルーティングテーブルを備え、上記マルチパスルーティングテーブルに未定義の宛先アドレスをもつ受信パケットについては、上記シングルパスルーティングテーブルが示す経路情報によって特定される何れかの出力回線インタフェースにルーティングすることを特徴とする。
【００１８】
本発明の１実施例によれば、パケット中継装置は、上記複数の入力回線インタフェースを含む受信パケット処理部と、上記複数の出力回線インタフェースを含む送信パケット処理部とを有し、上記受信パケット処理部が、上記各入力回線インタフェースから出力された受信パケットのヘッダ情報を前記パケット転送制御部に通知し、該パケット転送制御部からの指示に従って、上記受信パケットを出力回線識別子を含む内部ヘッダ付きのパケットに変換するパケット変換部を備え、上記送信パケット処理部が、上記受信パケット処理部からの出力パケットを受信し、受信パケットを内部ヘッダが示す出力回線識別子で特定される何れかの出力回線インタフェースに振り分けるための手段を備えたことを特徴とする。
【００１９】
更に具体的に言うと、上記パケット変換部は、上記パケット転送制御部からの指示に従って、何れかの入力回線インタフェースから出力された受信パケットに経路識別情報を含む制御ヘッダを付加する機能を備える。また、上記マルチパスルーティングテーブルの各テーブルエントリは、宛先アドレスとパスインデクス値との組合せに対応して経路情報を定義しており、上記パケット転送制御部は、受信パケット毎に検索キーとなるパスインデクス値を切り替えて、上記マルチパスルーティングテーブルから受信パケットの宛先アドレスと対応する経路情報を検索する。
【００２０】
本発明の１実施例によれば、上記パケット転送制御部は、それぞれフロー定義情報と対応してパスインデクスの現在値を示す複数のテーブルエントリからなるパケット出力制御テーブルを備え、受信パケット毎に、上記パケット出力制御テーブルからフロー定義情報が受信パケットのヘッダ情報に適合するテーブルエントリを検索し、該テーブルエントリが示すパスインデクス値を検索キーとして、前記マルチパスルーティングテーブルから受信パケットの宛先アドレスと対応する経路情報を検索する。また、上記パケット変換部が、上記パケット転送制御部からの指示に従って、何れかの入力回線インタフェースから出力された受信パケットを互いに異なる出力回線識別子を含む内部ヘッダ付きの複数のセグメントパケットに分割して出力する機能を備える。
【００２１】
本発明の好ましい実施例では、上記パケット転送制御部が、パケットフロー毎に受信パケットの到着順序を検証するための手段を有し、上記受信パケット処理部が、上記パケット転送制御部からのパケット待機指示に応答して、入力回線インタフェースから出力された受信パケットデータを保持するための待ち合わせメモリを備え、上記パケット変換部が、上記パケット転送制御部からの待機パケット転送指示に従って、上記メモリから読み出された受信パケットデータを内部ヘッダ付きのパケットに変換する。  
また、本発明のパケット通信ネットワークは、複数のノード装置からなり、エッジノード装置間に複数の通信経路を有し、パケットを送受信する少なくとも１対のエッジノード装置が、パケット入力回線に接続された複数の入力回線インタフェースと、パケット出力回線に接続された複数の出力回線インタフェースと、上記各入力回線インタフェースからの出力パケットを上記出力回線インタフェースのうちの１つに選択的にルーティングするためのパケット転送制御部とからなり、
上記パケット転送制御部が、１つの宛先アドレスに対応して経路情報の異なる複数のテーブルエントリをもつマルチパスルーティングテーブルを備え、上記マルチパスルーティングテーブルが示す経路情報に従って、同一の宛先アドレスをもつ複数の受信パケットを少なくとも２つの出力回線インタフェースに選択的に振り分けることによって、受信パケットを異なる経路で対向エッジノード装置に転送することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、ネットワークを経由して宛先装置に到達可能なパケット転送経路が複数存在する場合、同一宛先アドレスをもつ複数のパケットを少なくとも２つの経路に振り分けることによって、最適な１つの経路でパケット転送する従来のパケット通信に比較して、トラフィックを分散でき、最適経路上の中継ノードの負荷を軽減することが可能となる。この場合、特定中継ノードでの輻輳によるパケットロスの可能性を低減できる。
【００２３】
また、本発明によれば、エッジノード装置となるパケット中継装置が、同一フローに所属した一連のパケットを複数の経路に分割して転送することによって、仮に、特定の経路で盗聴（情報の漏洩）が発生した場合としても、被害を一部のパケットに留めることができる。この場合、盗聴に遭遇するパケットは、パケットフロー内で散発的な位置関係にある一部のパケットに限定されるため、送信情報全体の漏洩を未然に防止でき、通信の秘匿性を向上できる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明の実施例について説明する。
図１は、本発明によるパケット中継装置の全体構成の１例を示す。
パケット中継装置１０は、複数の入力回線ＬＩ−１〜ＬＩ−ｎに接続された受信パケット処理部２０と、複数の出力回線ＬＯ−１〜ＬＯ−ｎに接続された送信パケット処理部３０と、パケット転送制御部４０とからなり、受信パケット処理部２０から出力されたパケットは、内部転送路Ｌを介して送信パケット処理部３０とパケット転送制御部４０に入力される。
【００２５】
パケット転送制御部４０は、パケット転送機能１００と、ルーティングプロトコル機能２００と、経路計算機能２１０を備えている。これらの機能は、後述するプロセッサが実行するプログラムによって実現される。また、パケット転送制御部４０は、経路情報ファイル５０および網トポロジー情報ファイル５１と、ＩＰルーティングテーブル（シングルパスルーティングテーブル）５２と、マルチパスルーティングテーブル５３とを備えている。パケット転送制御部４０が発行した制御パケットは、信号線ＬＩ−(ｎ＋１)を介して受信パケット処理部２０に入力され、内部転送路Ｌ、送信パケット処理部３０を介して、何れかの出力回線に送出される。
【００２６】
図２は、本発明のパケット中継装置１０が適用されるネットワークの一部を示す。
ここに示したネットワークは、それぞれ複数の端末を収容したエッジノード１０−Ａおよび１０−Ｂと、これらのエッジノード間に通信経路を形成する複数のコアノード１１−１Ａ〜１１−３Ｌを含み、これらのノードによってコア網が構成されている。
【００２７】
ここでは、エッジノード１０−Ａと１０−Ｂとの間に、コアノード１１−１Ａ〜１１−１Ｊを経由する第1の経路ＲＴ−１と、コアノード１１−２Ａ〜１１−２Ｋを経由する第２の経路ＲＴ−２と、コアノード１１−３Ａ〜１１−３Ｌを経由する第３の経路ＲＴ−３とが存在することを示している。
【００２８】
本発明の特徴の１つは、例えば、エッジノード１０−Ａに収容された端末１Ａと、エッジノード１０−Ｂに収容された端末１Ｂとが通信する場合、エッジノード１０−Ａが、少なくとも２つの経路、例えば、経路ＲＴ−１とＲＴ−２を使い分けて、端末１Ａからの受信パケットを宛先エッジノード１０−Ｂに転送することにある。同様に、エッジノード１０−Ｂは、少なくとも２つの経路、例えば、経路ＲＴ−１とＲＴ−２を使い分けて、端末１Ｂからの受信パケットを宛先エッジノード１０−Ａに転送する。但し、端末１Ａ、１Ｂ間の通信において、エッジノード１０−Ａと１０−Ｂが使い分ける経路は、互いに同一である必要はない。ここでは、端末１Ａと端末１Ｂが通信するものとして説明するが、端末１Ａ、１Ｂの一方が情報サービスを提供するサーバであってもよい。
【００２９】
図１に示したパケット中継装置１０は、図２におけるエッジノード１０−Ａ、１０−Ｂとして適用され、複数の経路を選択的に使用して、受信パケットを宛先装置に転送する機能を備える。図１に示したＩＰルーティングテーブル５２は、各受信パケットに含まれる宛先ＩＰアドレス毎に、ルーティングプロトコルが決定する最適経路の経路情報を記憶している一般的なルーティングテーブルである。
【００３０】
マルチルーティングテーブル５３は、各受信パケットに含まれる宛先ＩＰアドレスと対応して、ルーティングプロトコルが決定する最適経路と、それに準ずる少なくとも１つの経路の経路情報を記憶した本発明に特徴的なルーティングテーブルを示している。上述した端末１Ａからの端末１Ｂ宛のパケットは、マルチルーティングテーブル５３が示す経路情報に従って、経路ＲＴ−１上の次ノード１１−１Ａと、経路ＲＴ−２の次ノード１１−２Ａに選択的に転送されることになる。
【００３１】
パケット中継装置１０は、ルーティングプロトコル機能２００に従って、経路情報ファイルに蓄積されている経路情報をネットワーク上の他のノード装置に定期的に通知する。また、受信パケット処理部２０が他のノード装置から受信した経路情報パケットを内部転送路Ｌから受信し、経路情報ファイル５０を更新する。経路情報ファイル５０には、ルーティングプロトコルの働きによって収集される経路情報の他に、ネットワーク管理者等からの設定によるスタティックな経路情報も含まれる。
【００３２】
経路計算機能２１０は、経路情報ファイル５０と網トポロジー情報ファイル５１を参照して、例えば、回線種別、輻輳情報、ホップ数、およびコスト値に基づいて、各宛先アドレスに対応したパケット転送経路を計算する。ＩＰルーティングテーブル５２には、一つの宛先アドレスに対応する経路情報として、経路計算機能２１０が決定した最適経路の経路情報が記憶され、マルチパスルーティングテーブル５３には、各宛先アドレスに対応して、上記最適経路を含む利用可能な複数経路の経路情報が記憶されている。
【００３３】
図３は、受信パケット処理部２０が各入力回線ＬＩ−ｉ（ｉ＝１〜ｎ）から受信するＩＰパケットと、受信パケット処理部２０から内部転送路Ｌを介して送信パケット処理部３０に転送される内部パケットと、送信パケット処理部３０から出力回線ＬＯ−ｉ（ｉ＝１〜ｎ）に出力される送信ＩＰパケットとの関係を説明するためのパケットフォーマット図である。
【００３４】
各入力回線ＬＩ−ｉ（ｉ＝１〜ｎ）から受信されるＩＰパケットは、ＩＰヘッダ７１と、ＴＣＰ（またはＵＤＰ）ヘッダ７２と、データ部７３とからなる。ＩＰヘッダ７１は、図４に示すように、全パケット長７１１、送信元ＩＰアドレス７１２、宛先アドレス７１３、その他の情報を含んでいる。また、ＴＣＰヘッダ７２は、図５に示すように、送信元ポート番号７２１、宛先ポート番号７２２、シーケンス番号７２３、その他の情報を含んでいる。
【００３５】
本実施例の受信パケット処理部２０は、各入力回線ＬＩ−ｉ（ｉ＝１〜ｎ）から受信したＩＰパケットの先頭に内部ヘッダ７４を付加し、ＴＣＰヘッダ７２とデータ部７３の間にマルチパス制御ヘッダ７５を付加する。内部ヘッダ７４は、パケット中継装置内部でのパケット転送に必要となるものであり、パケットの転送先となる出力回線ＬＯ−１〜ＬＯ−ｎのうちの１つ、またはパケット転送制御部４０を指定する出力ポート番号７４Ａと、Next Hop７４Ｂとを含んでいる。内部ヘッダ７４は、送信パケット処理部３０において除去される。
【００３６】
マルチパス制御ヘッダ７５は、マルチパスインデクス７５Ａと、必要に応じて設定されるマルチパスセグメント識別子７５Ｂを含んでいる。マルチパス制御ヘッダ７５は、これらの項目以外に、例えば、パケットの所属フローを識別するためのフロー識別子を含んでいてもよい。マルチパスインデクス７５Ａは、各パケットフローに用意された選択可能な経路のうちの１つを特定するためのインデクスを示しており、パケット中継装置１０では、受信パケット毎にマルチパスインデクスの値を更新することによって、パケットの転送経路を切り替える。
【００３７】
本発明の第１実施例では、パケット単位で転送経路を切り替える場合について説明するが、本発明の第２実施例として、受信パケット処理部２０が、各受信パケットのデータ部を複数のデータブロック（セグメント）に分割し、それぞれのセグメントにパケットヘッダを付加し、セグメント単位で経路を切り替えるようにしてもよい。マルチパスセグメント識別子７５Ｂは、このように、１つの受信パケットを複数のパケットに分割して転送する場合に設定される情報であり、同一受信パケットから得られたセグメントの順序（セグメントシーケンス番号）を示す。
【００３８】
尚、パケットフロー毎に選択可能な経路を２つ用意し、1つの受信パケットデータを２つのセグメントに分割し、第１セグメントは第１経路、第２セグメントは第２経路に転送する場合、結果的に、マルチパスセグメント識別子７５Ｂとマルチパスインデクス７５Ａとが同一値となるため、マルチパスセグメント識別子７５Ｂを省略してもよい。
1つの受信パケットデータから分割されるセグメントの数ｎが、選択可能な経路数Ｎよりも少数で、例えば、第１の受信パケットでは、第１、第２の経路を使用し、次の受信パケットでは、第３、第１の経路を使用する場合、マルチパスセグメント識別子７５Ｂが有効となる。
【００３９】
マルチパス制御ヘッダ７５は、図２に示した端末との接続回線から受信して、コア網に送出されるユーザパケットに付与されるものであり、エッジノードで端末接続回線から他の端末接続回線に転送されるユーザパケットと、パケット転送制御部４０宛に送信された制御パケットには付与する必要はない。
【００４０】
図６は、受信パケット処理部２０とパケット転送制御部４０の１実施例を示す。
受信パケット処理部２０は、入力回線ＬＩ−ｉ（ｉ＝１〜ｎ）に接続された回線終端部（入力回線インタフェース）２１−ｉ（ｉ＝１〜ｎ）と、回線終端部２１−ｉから出力された受信パケットを一時的に蓄積するバッファメモリ２２（ｉ＝１〜ｎ）と、これらのバッファメモリに接続された受信パケット制御部２３と、受信パケット制御部２３に接続されたパケットヘッダバッファ２４、パケットデータバッファ２５、送信待ちキューメモリ２８およびパケット組立部２６と、パケット組立部２６と内部転送路Ｌとの間に接続されたパケット転送部２７とからなる。
【００４１】
一方、パケット転送制御部４０は、プロセッサ４１と、プロセッサ４１が実行する各種のプログラムを記憶したプログラムメモリ４２と、内部転送路Ｌに接続されたパケット受信部４３と、パケット受信部４３で受信したパケットを一時的に蓄積する受信パケットバッファ４４と、ヘッダメモリ４５と、送信パケットバッファ４６と、経路情報ファイル５０、網トポロジー情報ファイル５１、ＩＰルーティングテーブル（シングルパスルーティングテーブル）５２、マルチパスルーティングテーブル５３、パケット出力制御テーブル５４とからなり、これらの要素は内部バス４７で接続されている。プログラムメモリ４２には、前述したパケット転送機能１００、ルーティングプロトコル機能２００、経路計算機能２１０を実現するためのプログラムが用意されている。
【００４２】
図７は、マルチパスルーティングテーブル５３の1実施例を示す。
マルチパスルーティングテーブル５３は、宛先ＩＰアドレス５３１と対応して、マルチパスインデクス５３２と、Ｎｅｘｔ  Ｈｏｐ５３３と、出力ポート番号５３４とを示す複数のテーブルエントリ５３０−１、５３０−２、…からなる。マルチパスルーティングテーブル５３には、例えば、エントリ５３０−１と５３０−２、エントリ５３０−３と５３０−４が示すように、同一の宛先ＩＰアドレスに対して、マルチパスインデクス５３２、Ｎｅｘｔ  Ｈｏｐ５３３、出力ポート番号５３４が異なる複数のエントリ（本実施例では1対ずつ）が登録されている。
【００４３】
ここで、Ｎｅｘｔ  Ｈｏｐ５３３と出力ポート番号５３４は、受信パケットの転送先を特定するための経路情報に相当している。マルチパスインデクス５３２は、同一の宛先アドレスに対して用意された２つの経路を交互に切り替えるためのインデクスであり、パケット転送の都度、その値が更新される。プロセッサ４１は、受信パケットの宛先ＩＰアドレスと、図８で説明するパケット出力制御テーブル５４が示すマルチパスインデクスの値との組合せを検索キーとして、マルチパスルーティングテーブル５３を検索することによって、同一の宛先ＩＰアドレスをもつ受信パケット毎に、マルチパスルーティングテーブル５３から交互に異なった経路情報を取得する。
【００４４】
図８は、パケット出力制御テーブル５４の１実施例を示す。
パケット出力制御テーブル５４の各エントリは、フロー定義情報５４１毎に、受信パケットのシーケンス番号５４２と、マルチパスインデクス５４３と、送信待ちパケット制御情報５４４を示している。フロー定義情報５４１は、本発明の場合、経路切り替えすべき一連のパケットフローを識別するための情報であり、例えば、ＩＰヘッダ７１が示す送信元ＩＰアドレス７１２、宛先ＩＰアドレス７１３、ＴＣＰ（ＵＤＰ）ヘッダ７２が示す送信元ポート番号７２１、宛先ポート番号７２２の組合せを示している。
【００４５】
シーケンス番号５４２には、フロー定義情報５４１で定義されたパケットフローで受信処理済みの最新パケットのシーケンス番号（例えば、ＴＣＰヘッダから抽出されたシーケンス番号７２３）の値が記憶される。１つの受信パケットデータを複数のセグメントに分割し、セグメント単位で経路を切り替える第２実施例の場合、上記シーケンス番号５４２として、図３で説明したマルチパスセグメント識別子の値が記憶される。
【００４６】
図８に示したパケット出力制御テーブル５４は、受信パケットの送信経路切り替えのためのパケット送信制御と、コア網内の異なる経路から到着した受信パケットをフロー毎にシーケンス番号の順序を保証して宛先端末に転送するためにパケット受信制御とに兼用されている。
【００４７】
送信制御用のテーブルエントリでは、フロー定義情報５４１と、シーケンス番号５４２と、マルチパスインデクス５４３が有効情報となる。パケット転送制御部４０では、フロー定義情報５４１毎に、最後の受信パケットに適用したマルチパスインデクスの値をマルチパスインデクス５４３として記憶しておき、同一フローに属した次の受信パケットを転送する時、マルチパスインデクス５４３の値を更新する。この更新されたマルチパスインデクスを適用することによって、マルチパスルーティングテーブル５３から前回とは異なった経路情報を検索することができる。
【００４８】
一方、受信制御用のテーブルエントリでは、フロー定義情報５４１と、シーケンス番号５４２と、送信待ちパケット制御情報５４４が有効情報となる。パケット送信側のエッジノードが、同一フローに属した一連の受信パケットを経路を切り替えながらコア網に転送すると、パケットの転送経路の違いによって、受信パケットの宛先エッジノードへの到着順序が乱れる可能性がある。
【００４９】
ここで、パケット中継装置１０は、コア網からの受信パケットに関しては、宛先エッジノードとして機能しているため、例えば、パケット出力制御テーブル５４にシーケンス番号５４２として「ｉ」が記憶された状態で、シーケンス番号「ｉ＋２」のパケットが受信されたと仮定する。この場合、パケット中継装置１０は、シーケンス番号「ｉ＋２」の受信パケットを送信待ちパケットとして保持しておき、シーケンス番号「ｉ＋１」をもつ受信パケットの転送処理が終わった時点で、シーケンス番号「ｉ＋２」をもつ送信待ちパケットを宛先端末に転送処理することが望まれる。送信待ちパケット制御情報５４４は、このような受信パケットのシーケンス番号の乱れに補償するために用意されたものであり、例えば、送信待ちとなったパケットのヘッダ情報と、送信待ちキューメモリ２８におけるパケットデータの格納位置を示すキュー識別子とを含む。
【００５０】
以下、図６に戻って、受信パケット処理部２０とパケット転送制御部４０の動作について説明する。
受信パケット処理部２０の受信パケット制御部２３は、バッファメモリ２２−１〜２２−ｎと、パケット転送制御部４０の送信バッファ４６を順次にアクセスし、受信パケット（またはパケット転送制御部４０からの送信パケット）を読み込む。受信パケット制御部２３は、上記パケットからヘッダ部を抽出し、これをパケットヘッダバッファ２４に書き込む。
【００５１】
パケット転送制御部４０のプロセッサ４１は、図１０を参照して後述するパケット転送制御ルーチン１００に従って、パケットヘッダバッファ２４を定期的にアクセスし、受信パケットのパケットヘッダ情報を読み出す。プロセッサ４１は、パケットヘッダがマルチパス制御ヘッダ７５を含むか否かによって、受信パケットがコア網から受信されたものか、端末接続回線から受信されたものかを判断する。
【００５２】
パケットヘッダがマルチパス制御ヘッダ７５を含んでいない場合、プロセッサ４１は、パケットヘッダから抽出した宛先ＩＰアドレスをマルチパスルーティングテーブル５３と照合する。宛先ＩＰアドレスと対応する経路情報がマルチパスルーティングテーブル５３に登録済みの場合は、図３に示した内部ヘッダ７４とマルチパス制御ヘッダ７５とを付加したパケットヘッダを生成し、これをヘッダメモリ４５に書き込み、信号線Ｌ４１を介して、受信パケット制御部２３に受信パケットの転送指令を与える。上記転送指令は、受信パケットのデータ部の長さ情報を含む。
【００５３】
受信パケット制御部２３は、パケット転送制御部４０から受信パケットの転送指令を受信すると、信号線Ｌ２３を介してパケット組立部２６に、受信パケットデータのパケットへの組立を指令した後、受信パケットのデータ部をパケットデータバッファ２５に出力する。上記パケット組立指令は、パケットデータバッファ２５から読み出すべきパケットデータの長さ情報を含む。
【００５４】
パケット組立部２６は、受信パケット制御部２３から上記パケット組立指令を受信すると、パケット転送制御部４０のヘッダメモリ４５からヘッダ情報を読み出し、これをパケット転送部２７に出力し、ヘッダ情報に続いて、パケットデータバッファ２５から読み出したパケットデータをパケット転送部２７に出力する。パケット転送部２７は、パケット組立部２６から受信したパケット（パケットヘッダとデータ部）を内部転送路Ｌに出力する。
【００５５】
受信パケットがパケット中継装置１０宛の制御パケットの場合、プロセッサ４１は、パケットヘッダバッファ２４から読み出したパケットヘッダに、パケット転送制御部４０を指定するポート番号を含む内部ヘッダ７４を付加した形のヘッダを生成し、これをヘッダメモリ４５に書き込む。この場合、パケット組立部２６で組み立てられ、パケット転送部２７から内部転送路Ｌに出力された制御パケットは、パケット受信部４３によって受信される。上記制御パケットは、受信バッファ４４に一時的に蓄積された後、プロセッサ４１で処理される。
【００５６】
プロセッサ４１が他のノード宛に発行した制御パケットは、送信パケットバッファ４６に出力される。上記制御パケットは、信号線ＬＩ−(ｎ＋１)を介して受信パケット制御部２３に読み込まれ、そのパケットヘッダがパケットヘッダバッファ２４に書き込まれる。プロセッサ４１は、パケットヘッダバッファ２４からヘッダ情報を読み出すと、宛先ＩＰアドレスをマルチパスルーティングテーブル５３と照合する。
【００５７】
宛先ＩＰアドレスと対応する経路情報がマルチパスルーティングテーブル５３に登録されていなければ、プロセッサ４１は、ＩＰルーティングテーブル５２から経路情報を検索し、内部ヘッダ７４のみを付加したパケットヘッダを生成し、これをヘッダメモリ４５に書き込み、信号線Ｌ４１を介して、受信パケット制御部２３に受信パケットの転送指令を与える。この場合、送信パケットバッファ４６から読み出された制御パケットが、内部ヘッダ付きのパケットとなって内部転送路Ｌに出力され、送信パケット処理部３０に転送され、内部ヘッダが示す出力ポート番号７４Ａに対応する出力回線から送出されることになる。
【００５８】
受信パケット制御部２３がバッファメモリ２２−１〜２２−ｎから読み込んだ受信パケットが、マルチパス制御ヘッダ７５をもつコア網からの受信パケットの場合、プロセッサ４１は、パケットヘッダからシーケンス番号７２３（またはマルチセグメント識別子７５Ｂ）を抽出し、パケット出力制御テーブル５４が示すシーケンス番号５４２と比較することによって、受信パケットのシーケンス番号の連続性をチェックする。シーケンス番号が不連続となってした場合、プロセッサは、キュー識別子を指定して、受信パケット制御部２３に、受信パケットデータの送信待ちキューメモリ２８への保存を指令する。
【００５９】
受信パケット制御部２３は、パケット転送制御部４０から上記保存指令を受信すると、受信パケットデータを送信待ちキューメモリ２８に蓄積する。送信待ちキューメモリ２８に蓄積されたパケットデータは、キュー識別子を指定することによって、パケット組立部２６に読み出すことができる。コア網からの受信パケット処理の詳細については、図１１に示すフローチャートを参照して後述する。
【００６０】
図９、送信パケット処理部３０の１実施例を示す。
送信パケット処理部３０は、内部転送路Ｌに接続されたパケット受信部３１と、パケット受信部３１に接続された受信パケットバッファ３２と、受信パケットバッファ３２に接続されたパケット送信制御部３３と、出力回線ＬＯ−ｉ（ｉ＝１〜ｎ）に接続された複数の回線終端部（出力回線インタフェース）３４−ｉ（ｉ＝１〜ｎ）とからなる。パケット送信制御部３３は、受信パケットバッファ３２からパケットを読み出し、内部ヘッダが示す出力ポート番号７４Ａに対応する回線終端部に、内部ヘッダを除去したパケットを出力する。この時、パケット送信制御部３３から回線終端部に、内部ヘッダが示すＮｅｘｔ  Ｈｏｐ７４Ｂを通知し、回線終端部が、上記Ｎｅｘｔ  Ｈｏｐに基づいて、レイヤ２のヘッダ情報を生成する。
【００６１】
図１０は、パケット転送制御部４０のプロセッサ４１が定期的に実行するパケット転送制御ルーチン１００の１実施例を示すフローチャートである。
パケット転送制御ルーチン１００に従って、プロセッサ４１は、パケットヘッダバッファ２４から受信パケットのパケットヘッダを読み出し、受信パケットヘッダがマルチパス制御ヘッダ７５を含むか否かを判定する（ステップ１０１）。受信パケットヘッダがマルチパス制御ヘッダ７５を含む場合は、図１１で詳述するコア網受信パケット処理１２０が実行される。受信パケットヘッダがマルチパス制御ヘッダ７５を含まない場合、プロセッサ４１は、上記パケットヘッダの宛先ＩＰアドレス７１３が、マルチパスルーティングテーブル５３に登録されているか否かをチェックする（１０２）。
【００６２】
宛先ＩＰアドレス７１３が、マルチパスルーティングテーブル５３に登録済みの場合、プロセッサ４１は、パケット出力制御テーブル５４を参照し、受信パケットヘッダに対応するフロー定義情報をもつテーブルエントリが登録済みか否かを判定する（１０３）。テーブルエントリが登録済みの場合は、該エントリのマルチパスインデクス５４３の値を更新し（１０４）、未登録の場合は、パケット出力制御テーブル５４に受信パケットヘッダと対応する送信制御用のテーブルエントリを登録する（１０５）。この場合、マルチパスインデクス５４３の値は「１」に設定される。
【００６３】
次に、プロセッサ４１は、受信パケットヘッダの宛先ＩＰアドレス７１３と更新されたマルチパスインデクス５４３との組合せを検索キーとして、マルチパスルーティングテーブル５３から経路情報（Ｎｅｘｔ  Ｈｏｐ５３３と出力ポート番号５３４）を検索し（１０６）、受信パケットのマルチパス転送用のパケットヘッダを生成し、これをヘッダメモリ４５に出力する（１０７）。ここで生成されるパケットヘッダは、受信パケットヘッダに、経路情報に基づいて作成した内部ヘッダ７４と、パケット出力制御テーブル５４の登録情報に基づいて作成したマルチパス制御ヘッダ７５とを付加した構成となっている。この後、プロセッサ４１は、受信パケット制御部２３に受信パケットの転送指令を出力し（１１０）、このルーチンを終了する。
【００６４】
ステップ１０２で、マルチパスルーティングテーブル５３に宛先ＩＰアドレス７１３が未登録の場合、プロセッサ４１は、ＩＰルーティングテーブル５２から宛先ＩＰアドレスに対応する経路情報を検索し（１０８）、受信パケットのシングルパス転送用のパケットヘッダを生成し、これをヘッダメモリ４５に出力（１０９）した後、受信パケット制御部２３に受信パケットの転送指令を出力する（１１０）。ここで生成されるパケットヘッダは、受信パケットヘッダに、経路情報に基づいて作成した内部ヘッダ７４を付加した構成となっている。
【００６５】
図１１は、コア網受信パケット処理１２０の詳細を示すフローチャートである。
パケット中継装置１０がコア網から受信するパケットには、端末接続回線に転送すべきパケットと、コア網内の別のノードに中継すべきパケットとがある。
【００６６】
コア網受信パケット処理１２０では、プロセッサ４１は、先ず、受信パケットヘッダの宛先ＩＰアドレスに基づいてＩＰルーティングテーブル５２から経路情報を検索し（１２１）、受信パケットの中継先となるＮｅｘｔ  Ｈｏｐがコア網内のノードを示しているか否かを判定する（１２２）。Ｎｅｘｔ  Ｈｏｐがコア網内のノードの場合、プロセッサ４１は、受信パケットのシングルパス転送用のパケットヘッダを生成し、これをヘッダメモリ４５に出力（１３１）した後、受信パケット制御部２３に受信パケットの転送指令を出力（１３２）して、このルーチンを終了する。
【００６７】
Ｎｅｘｔ  Ｈｏｐがコア網内のノードでない場合、すなわち、端末接続回線に転送すべきパケットのパケットヘッダの場合、プロセッサ４１は、パケット出力制御テーブル５４を参照し、受信パケットヘッダに対応するフロー定義情報をもつテーブルエントリが登録済みか否かを判定する（１２３）。テーブルエントリが未登録の場合は、パケット出力制御テーブル５４に受信パケットヘッダと対応する受信制御用のテーブルエントリを登録し（１２４）、ステップ１３１、１３２を実行して、このルーチンを終了する。
【００６８】
受信パケットヘッダに対応するテーブルエントリがパケット出力制御テーブル５４に登録済みの場合、プロセッサ４１は、受信パケットヘッダが示すシーケンス番号と、上記テーブルエントリが示すシーケンス番号５４２とを比較する（１２５）。シーケンス番号が不連続になっていた場合、上記テーブルエントリの送信待ちパケット制御情報５４４として、受信パケットヘッダの内容とキュー識別子を記憶し（１３４）、受信パケット制御部２３に対して、上記キュー識別子を指定した形で受信パケットの保存指令を発行し（１３５）、このルーチンを終了する。
【００６９】
受信パケットのシーケンス番号が上記テーブルエントリが示すシーケンス番号に連続していた場合、プロセッサ４１は、上記テーブルエントリの送信待ちパケット制御情報５４４から、受信パケットと同一フローに所属する送信待ちパケットの有無を判定する（１２６）。送信待ちパケット制御情報５４４が空の場合、プロセッサ４１は、送信待ちパケット無しと判断し、上記テーブルエントリのシーケンス番号５４２を更新（１３０）した後、ステップ１３１、１３２を実行して、このルーチンを終了する。
【００７０】
上記テーブルエントリに、送信待ちパケット制御情報５４４として送信待ちパケットのヘッダ情報が記憶されていた場合、プロセッサ４１は、このヘッダ情報と、ステップ１２１でＩＰルーティングテーブルから検索された経路情報に基づいて、送信待ちパケットの
シングルパス転送用のパケットヘッダを生成し、これをヘッダメモリ４５に出力（１２７１）した後、受信パケット制御部２３に送信待ちパケットの転送指令を出力する（１２８）。ここで、送信待ちパケットの転送指令は、送信待ちパケット制御情報５４４としてとして記憶されていたキュー識別子とデータ長を指定している。プロセッサ４１は、次に、上記テーブルエントリのシーケンス番号５４２を更新し、送信待ちパケット制御情報５４４をクリア（１２９）した後、ステップ１３１、１３２を実行して、このルーチンを終了する。
【００７１】
受信パケット制御部２３は、パケット転送制御部４０（プロセッサ４１）から送信待ちパケットの転送指令を受信すると、信号線Ｌ２３を介してパケット組立部２６に、送信待ちパケットデータのパケットへの組立を指令する。上記組立指令は、送信待ちパケットの転送指令で指定されたキュー識別子とデータ長とを含む。パケット組立部２６は、上記組立指令に応答して、ヘッダメモリ４５からヘッダ情報を読み出し、これをパケット転送部２７に出力し、ヘッダ情報に続いて、送信待ちキューメモリ２８から読み出した送信待ちパケットデータをパケット転送部２７に出力する。
【００７２】
受信パケット制御部２３は、上記送信待ちパケットの転送指令を受信した場合は、パケット組立部２６に送信待ちパケットデータのパケットへの組立指令を発行した後、パケット転送制御部４０からの受信パケットの転送指令を待っている。受信パケットの転送指令を受信すると、受信パケット制御部２３は、信号線Ｌ２３を介してパケット組立部２６に、受信パケットデータのパケットへの組立を指令した後、受信パケットのデータ部をパケットデータバッファ２５に出力する。
【００７３】
上述した図１０のパケット転送制御では、受信パケットのヘッダ情報に対応するフロー定義情報をもつエントリがパケット出力制御テーブル５４に未登録の場合（ステップ１０３）、送信制御用エントリを自動的に追加する（ステップ１０５）ようにしたが、パケット出力制御テーブル５４には、ユーザから予め申請された特定フローのエントリのみを登録し、パケット出力制御テーブル５４に未登録の受信パケットについては、ＩＰルーティングテーブル５２に従って、従来と同様のパケット転送を行うようにしてもよい。
【００７４】
また、図１０では、宛先ＩＰアドレスがマルチパスルーティングテーブル５３に未登録の場合（ステップ１０２）、ＩＰルーティングテーブル５２に従って、従来と同様のパケット転送を行うようにしているが、ステップ１０２の前にステップ１０３を実行し、受信パケットのヘッダ情報に対応するフロー定義情報をもつエントリがパケット出力制御テーブル５４に登録済みであれば、宛先ＩＰアドレスがマルチパスルーティングテーブル５３に登録されているか否かを判定するようにしてもよい。ここで、宛先ＩＰアドレスがマルチパスルーティングテーブル５３に未登録の場合、経路計算機能２１０を利用して宛先ノードに至る複数の経路をマルチパスルーティングテーブル５３選択し、マルチパスルーティングテーブル５３に受信パケット用のテーブルエントリを自動的に追加し、もし、最適経路以外に適当な経路が存在していなければ、ＩＰルーティングテーブル５２に従って、従来と同様のパケット転送を行うようにすればよい。
【００７５】
図１２は、本発明の第２実施例として、パケット中継装置１０の主要部となる受信パケット処理部２０の他の構成例を示す。
本実施例では、受信パケット処理部２０が、受信パケットデータを２つのセグメントに分割し、第１のセグメントを含むパケットと第２セグメントを含むパケット（以下、セグメントパケットと言う）に異なるヘッダを付与することによって、これらのセグメントパケットが異なる経路で転送されるようにしたことを特徴とする。
【００７６】
コア網にセグメント単位でパケットデータを転送した場合、受信パケット処理部２０には、コア網からの受信パケットを端末接続回線に転送する前に、第１セグメントを含む受信パケットと第２セグメントを含む受信パケットから、元のパケットデータを再生し、１つのＩＰパケットに変換する機能が必要となる。２９は、上述した元のパケットデータを再生するためにセグメントデータを一時的に蓄積するセグメントキューメモリを示している。
【００７７】
本実施例では、受信パケット毎に、マルチパスルーティングテーブル５３が示す２つの経路にセグメントパケットが転送されるため、先行パケットの転送に適用したマルチパスインデクスをパケット出力制御テーブル５４に記憶しておく必要はない。その代わりに、セグメントパケットの連続性をチェックするために、パケット出力制御テーブル５４の受信制御用エントリに、受信セグメントパケットから抽出したマルチパスインデクス７５Ａ（またはマルチパス識別子７５Ｂ）の値をマルチパスインデクス５４３として記憶しておく。
【００７８】
受信パケット制御部２３は、バッファメモリ２２−ｉから受信パケットを読み込むと、第１実施例と同様、パケットヘッダをパケットヘッダバッファ２４に書き込み、パケット転送制御部４０（プロセッサ４１）からの転送指令を待つ。
プロセッサ４１は、図１０で説明したパケット転送制御ルーチン１００に従って、受信パケットヘッダをチェックし（１０１）、パケットヘッダがマルチパス制御ヘッダを含んでいなければ、宛先ＩＰアドレスがマルチパスルーティングテーブル５３に登録済みか否かを判定する（１０２）。宛先ＩＰアドレスがマルチパスルーティングテーブル５３に未登録の場合、プロセッサ４１は、第１実施例と同様、ステップ１０８、１０９、１１０を実行する。この場合、受信パケットは、セグメントパケットに変換することなく、内部転送路Ｌに送出される。
【００７９】
宛先ＩＰアドレスがマルチパスルーティングテーブル５３に登録済みの場合、プロセッサ４１は、パケット出力制御テーブル５４に受信パケットヘッダに対応するテーブルエントリが登録済みか否かをチェックする（１０３）。未登録の場合は、送信制御用のエントリを登録して（１０５）、マルチパスルーティングテーブルを検索する（１０６）。登録済みの場合は、第1実施例のように、マルチパスインデクスの値を更新する必要はなく、直ちにマルチパスルーティングテーブルを検索すればよい。
【００８０】
第２実施例では、プロセッサ４１は、マルチパスルーティングテーブルの検索ステップで、マルチパスインデクスの値を「１」として第１セグメント用の経路情報を検索する第１のテーブル検索と、マルチパスインデクスの値を「２」として第２セグメント用の経路情報を検索する第２のテーブル検索とを実行し、マルチパス転送用のヘッダ生成（１０７）と受信パケットの転送指令の発行（１１０）は、第１セグメントパケット用と第２セグメントパケット用に分けて、２回繰り返す。
【００８１】
パケットデータの第１、第２セグメントへの分割は、プロセッサ４１が、パケットヘッダが示すデータ長に基づいて、第１セグメント長と第２セグメント長を計算し、受信パケット制御部２３に与える受信パケットの転送指令で、受信パケット制御部２３がパケットデータバッファ２５に出力すべきデータ長（セグメント長）を指定すればよい。また、第２セグメントパケットの転送が終了した後で、受信パケット制御部２３に新たな受信パケットの処理を開始させるために、第１セグメントパケットの転送指令では、新たな受信パケットデータの処理を抑制するフラグ情報を与えておき、第２セグメントパケットの転送指令で、上記抑制フラグを解除するようにすればよい。
【００８２】
受信パケットヘッダがマルチパス制御ヘッダを含む場合、受信パケットは、コア網から受信されたセグメントパケットである。この場合、第２実施例では、プロセッサ４１は、図１３に示すコア網受信パケット処理１２０を実行する。図１３は、説明を簡単化するために、図１１と同様のステップには、図１１と同一の符号が付してある。
【００８３】
プロセッサ４１は、ＩＰルーティングテーブルでＮｅｘｔ  Ｈｏｐを判定し（１２１、１２２）、受信パケットがコア網内の他のノードに転送すべきパケットの場合は、第１実施例と同様、ステップ１３１と１３２を実行する。この場合、受信パケットは、内部ヘッダを付加した形で、受信パケット処理部２０から内部転送路Ｌに出力される。
【００８４】
Ｎｅｘｔ  Ｈｏｐから、受信パケットが端末接続回線に転送すべきパケットと判定された場合、プロセッサ４１は、パケット出力制御テーブル５４を参照し、受信パケットヘッダに対応するフロー定義情報をもつテーブルエントリが登録済みか否かを判定する（１２３）。
テーブルエントリが未登録の場合は、プロセッサ４１は、パケット出力制御テーブル５４に受信パケットヘッダと対応する受信制御用のテーブルエントリを登録し（１２４）、上記テーブルエントリに、送信待ちパケット制御情報５４４（受信パケットヘッダの内容とキュー識別子）を記憶し（１３４）、受信パケット制御部２３に対して、上記キュー識別子を指定した形で受信パケットの保存指令を発行し（１３５）、このルーチンを終了する。
【００８５】
受信パケットヘッダに対応するテーブルエントリがパケット出力制御テーブル５４に登録済みの場合、プロセッサ４１は、受信パケットヘッダが示すシーケンス番号、マルチパスインデクス７５Ａを、上記テーブルエントリが示すシーケンス番号５４２、マルチパスインデクス５４３とそれぞれ比較し、パケットの受信順序をチェックする（１２５Ｂ）。
【００８６】
本実施例では、以下に述べるように、第１セグメントパケットは、送信待ちパケットとして、セグメントキューメモリに保存し、第２セグメントパケットの受信を待って、第１セグメントパケットと第２セグメントから元のパケットデータを再生する。プロセッサ４１は、例えば、同一シーケンス番号をもつ第１セグメントパケットよりも先に第２セグメントパケットが受信された場合、あるいは、第１セグメント（または第２セグメント）パケットの次に、次のシーケンス番号をもつ第１セグメント（または第２セグメント）パケットが受信された場合、受信順序不正と判断し、ステップ１３４、１３５を実行して、このルーチンを終了する。
【００８７】
パケットの受信順序に問題がなかった場合、プロセッサ４１は、上記テーブルエントリの送信待ちパケット制御情報５４４から、受信パケットと同一フローに所属する送信待ちパケットの有無を判定する（１２６）。送信待ちパケット制御情報５４４が空の場合、プロセッサ４１は、受信パケットが第１セグメントパケットと判断し、後続のセグメントパケットの受信を待つために、ステップ１３４、１３５を実行して、このルーチンを終了する。
【００８８】
上記テーブルエントリに、送信待ちパケット制御情報５４４が記憶されていた場合、プロセッサ４１は、シングルパス転送用のパケットヘッダを生成し、これをヘッダメモリ４５に出力する（１２７Ｂ）。上記パケットヘッダは、第１セグメントパケットと第２セグメントパケットとから再生される元のパケットデータに付加するためのものであり、パケットデータ長は、送信待ちパケット制御情報５４４として記憶されているヘッダ情報が示すデータ長と、今回受信されたパケットヘッダ情報が示すデータ長から計算される。
【００８９】
プロセッサ４１は、ヘッダメモリ４５にパケットヘッダを出力した後、受信パケット制御部２３に組立てパケットの転送指令を出力（１２８Ｂ）した後、上記テーブルエントリのシーケンス番号５４２を更新し、送信待ちパケット制御情報５４４から処理済みとなったヘッダ情報およびキュー識別子をクリアして（１２９Ｂ）、このルーチンを終了する。上記組立てパケットの転送指令は、セグメントキューから読み出すべきセグメントデータのキュー識別子と、該セグメントデータと受信パケットに含まれるセグメントデータとの読み出し順序、それぞれのセグメントデータのデータ長を指定している。
【００９０】
受信パケット制御部２３は、パケット転送制御部４０（プロセッサア４１）から組立パケットの転送指令を受信すると、信号線Ｌ２３を介してパケット組立部２６に、セグメントデータのパケットへの組立を指令し、受信パケットに含まれるセグメントデータをパケットでデータバッファ２５に出力する。上記組立指令は、上記組立パケット転送指令で指定されたキュー識別子と、各セグメントデータのデータ長と、セグメントデータの読み出し順序を含む。パケット組立部２６は、上記組立指令に応答して、ヘッダメモリ４５からヘッダ情報を読み出し、これをパケット転送部２７に出力し、ヘッダ情報に続いて、セグメントキューメモリ２９とパケットデータバッファ２５から指定の順序で読み出したセグメントデータをパケット転送部２７に出力する。
【００９１】
以上、本発明のパケット中継装置１０を一般的なＩＰネットワークに適用した実施例について説明したが、本発明によるマルチパス経由のパケット転送は、例えば、ＩＰネットワーク上に形成されるＶＰＮや、ＭＰＬＳ網に形成されるＩＰ−ＶＰＮや、ＶＬＡＮベースのＬ２−ＶＰＮ（Layer 2-Virtual LAN）など、他のネットワーク構成にも適用可能である。
【００９２】
例えば、ＶＰＮでは、経路確保にＶＰＮトンネル構築技術が適用される。ＶＰＮでは、端末もしくはルータから宛先装置までのパス設定時に、ＩＰパケットをＬａｙｅｒ２のプロトコルであるＰＰＴＰパケットのペイロード、またはＬａｙｅｒ３のプロトコルであるＩＰｓｅｃパケットのペイロードに載せて宛先装置まで転送し、宛先装置の認証処理を行って、データ暗号化用の暗号鍵が決定される。認証処理には、ＰＰＴＰを利用する場合は、ＰＰＰの認証機能を利用し、ＩＰｓｅｃを利用する場合は、ＩＫＥが利用される。
【００９３】
ＶＰＮのパス設定が完了した時、宛先ノードに到達可能な複数の経路を検索し、経路情報をマルチパスルーティングテーブルに登録しておくことによって、本発明による複数経路を利用したパケット転送が可能となる。マルチパスルーティングテーブルに登録された経路情報エントリは、一連のデータ転送が完了した時点でリセットしてもよい。尚、予め重要と思われる経路については、常時、ＶＰＮを確立しておき、マルチパスルーティングテーブルに経路情報エントリを準備しておくようにしてもよい。
【００９４】
ＭＰＬＳのＩＰ−ＶＰＮでは、送信側エッジノードが受信パケット（ＩＰパケット）に付加したＳｈｉｍヘッダが示すラベル情報に従って、ＭＰＬＳ網内でのパケット転送が行われ、受信側エッジノードは、ＭＰＬＳ網からの受信パケットからＳｈｉｍヘッダを除去し、元のＩＰパケットに戻して宛先端末に転送する。また、ＭＰＬＳ網を構成する各ノードは、宛先アドレス、入力回線インタフェースＩＤ、受信パケットに付される入力ラベル、出力回線インタフェースＩＤ、出力パケットに付すべき出力ラベル、Ｎｅｘｔ  Ｈｏｐの関係を示したフォワーディングテーブルに従って、パケット転送を行っている。
【００９５】
ＭＰＬＳ網のＩＰ−ＶＰＮに本発明を適用する場合、エッジノードとなるパケット中継装置が備えるフォワーディングテーブルとして、特定の宛先アドレスに対応して複数のテーブルエントリが登録されたマルチパス用のフォワーディングテーブルを用意しておき、図７に示したマルチパスルーティングテーブルと同様、マルチパスインデクスを検索キーの一部に加えて、フォワーディングテーブル検索を行うようにすればよい。これによって、同一の宛先アドレスをもつ一連の受信パケットに異なるラベルを付し、異なる出力回線インタフェースに転送することが可能となる。
【００９６】
Ｌ２−ＶＰＮでは、サイト間にＬＤＰ（トンネルＬＤＰ）を確立し、ＬＤＰの内部にVirtual Circuit（ＶＣ）と呼ばれる論理経路を確立し、トンネルＬＤＰのエッジノードが各パケットに付したＶＣラベルとトンネルラベルに従って、網内でのパケット通信が行われる。Ｌ２−ＶＰＮに本発明のマルチパスルーティングを適用するためには、一つ若しくは複数のトンネルＬＤＰ内に、同一宛先アドレスと対応して予め複数のＶＣを確保しておき、送信側のノードで受信パケット毎にＶＣを切り替えるようにすればよい。Ｌ２−ＶＰＮでは、レイヤ２情報を利用してパケット転送が行われるため、通常のＩＰパケット通信に比較して高セキュリティの通信が期待できる。
【００９７】
以上の実施例では、マルチパスルーティングテーブルが、宛先アドレス毎に２つの経路情報エントリをもつ場合について説明したが、マルチパスルーティングテーブルに同一宛先アドレスで選択可能な経路情報エントリを３以上用意すれば、同一フローに属したパケットを３以上の経路に振り分けることが可能であり、トラフィックを更に分散化できる。
【図面の簡単な説明】
【００９８】
【図１】本発明によるパケット中継装置１０の全体構成の1例を示す図。
【図２】本発明によるパケット中継装置１０が適用されるネットワークの一部を示す図。
【図３】本発明によるパケット中継装置１０で扱いパケットフォーマットの1例を説明するための図。
【図４】図３のＩＰヘッダ７１の詳細を示すフォーマット図。
【図５】図３のＴＣＰヘッダ７２の詳細を示すフォーマット図。
【図６】図１に示したパケット中継装置１０の受信パケット処理部２０とパケット転送制御部４０の１実施例を示す図。
【図７】パケット転送制御部４０が備えるマルチパスルーティングテーブル５３の１実施例を示す図。
【図８】パケット転送制御部４０が備えるパケット出力制御テーブル５４の１実施例を示す図。
【図９】図１に示したパケット中継装置１０の送信パケット処理部３０の１実施例を示す図。
【図１０】パケット転送制御部４０が実行するパケット転送処理ルーチン１００の１実施例を示すフローチャート。
【図１１】パケット転送処理ルーチン１００の一部であるコア網受信パケット処理１２０の１実施例を示すフローチャート。
【図１２】本発明によるパケット中継装置１０の第２実施例の主要部となる受信パケット処理部２０の他の構成例を示す図。
【図１３】パケット転送制御部４０が実行するパケット転送処理ルーチン１００の第２実施例を示すフローチャート。
【符号の説明】
【００９９】
１０：パケット中継装置、２０：受信パケット処理部、２１：入力回線インタフェース（回線終端部）、２２：バッファメモリ、２３：受信バッファ制御部、２４：パケットヘッダバッファ、２５：パケットデータバッファ、２６：パケット組立部、２７：パケット転送部、２８：送信待ちキューメモリ、３０：送信パケット処理部、３１：パケット受信部、３２：受信パケットバッファ、３３：パケット送信制御部、３４：出力回線インタフェース（回線終端部）、４０：パケット転送制御部、４１：プロセッサ、４２：プログラムメモリ、４３：パケット受信部、４４：受信パケットバッファ、４５：ヘッダメモリ、４６：送信パケットバッファ、５０：経路情報ファイル、５１：網トポロジーファイル、５２：ＩＰルーティングテーブル、５３：マルチパスルーティングテーブル、５４：パケット出力制御テーブル。
【図１】
2006165952.tif 000003
【図２】
2006165952.tif 000004
【図３】
2006165952.tif 000005
【図４】
2006165952.tif 000006
【図５】
2006165952.tif 000007
【図６】
2006165952.tif 000008
【図７】
2006165952.tif 000009
【図８】
2006165952.tif 000010
【図９】
2006165952.tif 000011
【図１０】
2006165952.tif 000012
【図１１】
2006165952.tif 000013
【図１２】
2006165952.tif 000014
【図１３】
2006165952.tif 000015