(57)【特許請求の範囲】
【請求項１】
１つ以上のプロトコル終端手段を有するデータグラム中継装置において、
前記プロトコル終端手段のいずれかより入力されたパケットのヘッダ情報より転送先経路を解決するための宛先アドレス情報を抽出する宛先アドレス抽出手段と、
前記プロトコル終端手段のいずれかより入力されたパケットのヘッダ情報より集約されたフローを識別するためのストリーム識別子を算出するストリーム識別子算出手段と、
前記宛先アドレス情報を基に、宛先アドレスへの転送先経路となる転送パス、若しくは、同一アドレスに対応する転送先経路の集合であるマルチパスを一意に識別するためのマルチパス識別子を特定する経路解決処理手段と、
アドレス部に前記ストリーム識別子と前記マルチパス識別子とを格納し、データ部に前記ストリーム識別子と前記マルチパス識別子との組み合わせと対応させて、前記転送パスに対応する転送パス番号をキャッシュ転送パス番号として格納するキャッシュ転送パス番号格納手段と、
前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記キャッシュ転送パス番号を前記キャッシュ転送パス番号格納手段より読み出すキャッシュテーブルアクセス手段と、
アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に、該転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であるか否かを示す転送禁止ビット列を格納する転送禁止ビット列格納手段と、
アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パスに対応する前記転送パス番号を転送割当パス番号として格納する転送割当パス番号格納手段と、
アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて前記転送パスを格納する転送パス格納手段と、
前記マルチパス識別子と前記キャッシュ転送パス番号を基に、前記入力されたパケットが属するストリームに対して前記転送先経路となる前記転送パスを解決するパス選択処理手段と、
前記転送パスに前記パケットを転送する出力装置選択手段と、を有し、
前記宛先アドレス抽出手段は、前記宛先アドレス情報を前記経路解決処理手段に出力し、
前記ストリーム識別子算出手段は、前記ストリーム識別子を前記キャッシュテーブルアクセス手段と前記パス選択処理手段とに出力し、
前記経路解決処理手段は、前記マルチパス識別子を前記キャッシュテーブルアクセス手段と前記パス選択処理手段とに出力し、
前記キャッシュテーブルアクセス手段は、前記キャッシュ転送パス番号を前記パス選択処理手段に出力し、
前記パス選択処理手段は、入力された前記キャッシュ転送パス番号を前記転送パス番号とし、更に、入力された前記マルチパス識別子を基に前記転送禁止ビット列を読み出し、該読み出した前記転送禁止ビット列を基に前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であるか否かを判定し、該判定の結果、前記転送パスへのパケットの転送が禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、前記転送パス番号を前記キャッシュ転送パス番号から前記読み出した前記転送割当パス番号に更新し、該更新した前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスを前記出力装置選択手段に出力することを特徴とするデータグラム中継装置。
【請求項２】
アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に、該転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが禁止状態であるか否かを示す割当禁止ビット列を格納する割当禁止ビット列格納手段をさらに有し、
前記パス選択処理手段は、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新した場合、前記入力された前記マルチパス識別子を基に前記割当禁止ビット列を読み出し、該読み出した前記割当禁止ビット列においてストリームの割り当てが禁止状態と示されていない前記転送パス番号を特定し、該特定した前記転送パス番号により、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする請求項１記載のデータグラム中継装置。
【請求項３】
アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に現在割り当てられているストリームの数を示す割当ストリーム数を格納する割当ストリーム数格納手段と、
アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に割り当てるストリームの最大数を示す最大ストリーム数を格納する最大ストリーム数格納手段と、をさらに有し、
前記パス選択処理手段は、前記入力された前記マルチパス識別子と前記入力された前記キャッシュ転送パス番号を基とした前記転送パス番号との組み合わせを基に前記割当ストリーム数と前記最大ストリーム数とを読み出し、該読み出した前記割当ストリーム数と前記最大ストリーム数とを比較し、該比較の結果、前記割当ストリーム数が前記最大ストリーム数より大きい場合、前記転送禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であることを格納し、また、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数以下である場合、前記転送禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのパケットの転送が許可状態であることを格納することを特徴とする請求項１または２記載のデータグラム中継装置。
【請求項４】
パス選択処理手段は、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数以上である場合、前記割当禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのストリームの割り当てが禁止状態であることを格納し、また、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数より小さい場合、前記割当禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのストリームの割り当てが許可状態であることを格納することを特徴とする請求項２または請求項２を引用する請求項３記載のデータグラム中継装置。
【請求項５】
前記パス選択処理手段は、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新した場合、前記キャッシュ転送パス番号に対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記割当ストリーム数を１減算し、更に、前記更新後の前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記割当ストリーム数を１加算し、前記減算された割当ストリーム数及び前記加算された割当ストリーム数と前記最大ストリーム数との比較を行い、該比較の結果を基に、前記転送禁止ビット列と前記割当禁止ビット列とを更新し、該更新された前記転送禁止ビット列と前記割当禁止ビット列とを基に、前記転送割当パス番号格納手段に格納されている前記転送割当パス番号を更新するための前記転送パス番号を特定することを特徴とする請求項２を引用する請求項３、または請求項４記載のデータグラム中継装置。
【請求項６】
前記パス選択処理手段は、前記割当禁止ビット列を基にストリームの割り当てが禁止状態と示されていない前記転送パス番号を特定する際に、開始の値を前記転送パス番号を更新した前記転送割当パス番号の値の次の値とし、以降、順次対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが前記割当禁止ビット列において許可状態とされているか否かを判定し、更に、該判定において、判定の対象となる値が前記転送パス番号の最大値となった場合、次に判定の対象とする値を前記転送パス番号の最小の値として、以降、順次対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが前記割当禁止ビット列において許可状態とされているか否かを判定することを特徴とする請求項２、請求項２を引用する請求項３、請求項４または５のいずれかに記載のデータグラム中継装置。
【請求項７】
前記パス選択処理手段は、前記判定の対象となる値が前記転送パス番号を更新した前記転送割当パス番号の値と同一の値となった場合、前記転送割当パス番号格納手段における前記マルチパス識別子と対応する前記転送割当パス番号を更新するための前記転送パス番号を前記開始の値と対応する転送パス番号にすることを特徴とする請求項６記載のデータグラム中継装置。
【請求項８】
前記パス選択処理手段は、前記転送割当パス番号を基にストリームの割り当てが禁止状態となっていない前記転送パス番号を特定する際に、前記マルチパス識別子を基に前記転送パス番号毎に前記割当ストリーム数と前記最大ストリーム数とを読み出し、該読み出した前記割当ストリーム数を前記最大ストリーム数で除算することにより前記転送パス番号毎に割当率を求め、該割当率が最も小さい前記転送パス番号により前記転送割当パス番号格納手段に格納された前記転送割当パス番号を更新することを特徴とする請求項３から５のいずれかに記載のデータグラム中継装置。
【請求項９】
アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号に現在までに連続して割り当てたストリームの数を示す連続割当数を格納する連続割当数格納手段と、
アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に連続して割り当てるストリームの最大数を示す最大連続割当数を格納する最大連続割当数格納手段と、をさらに有し、
前記パス選択処理手段は、前記転送割当パス番号格納手段から読み出した前記転送割当パス番号により前記転送パス番号を更新後、前記入力された前記マルチパス識別子に対応する前記連続割当数を１加算し、該加算した前記連続割当数と前記最大連続割当数とを比較し、該比較の結果、前記連続割当数が前記最大連続割当数以上である場合、前記マルチパス識別子と対応する前記割当禁止ビット列においてストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した前記転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする請求項２、請求項２を引用する請求項３、請求項４から８のいずれかに記載のデータグラム中継装置。
【請求項１０】
前記パス選択処理手段は、前記転送割当パス番号格納手段より読み出した前記転送割当パス番号により、前記転送パス番号を前記キャッシュ転送パス番号から更新する度に、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする請求項２から８のいずれかに記載のデータグラム中継装置。
【請求項１１】
前記パス選択処理手段は、前記転送割当パス番号格納手段に格納された前記転送割当パス番号に対応する前記割当ストリーム数が前記最大ストリーム数に達した場合、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子に対応する前記転送割当パス番号を更新することを特徴とする請求項３から８のいずれかに記載のデータグラム中継装置。
【請求項１２】
アドレス部に前記転送パスと１対１で対応するチャネル識別子を格納し、データ部に前記チャネル識別子と対応させて、前記マルチパス識別子と前記転送パス番号とを格納するチャネル識別子格納手段と、
アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パスと対応する物理リンク上に障害が発生しているか否かを示す動作モードを格納する動作モード格納手段と、
アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に対応する前記転送パスへのパケットの転送及びストリームの割り当てが前記障害の発生により禁止状態となっているか否かを示す転送パス状態ビット列を格納する転送パス状態ビット列格納手段と、をさらに有し、
前記パス選択処理手段は、前記物理リンクより前記障害が発生したことを通知する障害発生通知信号が入力された場合、該障害発生通知信号より前記障害が発生した前記物理リンクに対応する前記転送パスに対応する前記チャネル識別子を特定し、該特定した前記チャネル識別子に対応する前記マルチパス識別子と前記転送パス番号とを前記チャネル識別子格納手段より特定し、該特定した前記マルチパス識別子に対応する前記動作モードを障害発生状態に更新し、更に前記特定した前記マルチパス識別子と対応する前記転送パス状態ビット列に前記特定した前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であることを格納し、前記プロトコル終端手段よりパケットが入力された場合、前記経路解決処理手段より入力された前記マルチパス識別子を基に対応する前記動作モードを読み出し、該読み出した前記動作モードが障害発生状態を示している場合、前記マルチパス識別子を基に前記転送パス状態ビット列を読み出し、該読み出した前記転送パス状態ビット列において前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であるか否かを判定し、該判定の結果、前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、前記転送パス番号を前記キャッシュ転送パス番号より前記読み出した前記転送割当パス番号に更新し、該更新した前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスを前記出力装置選択手段に出力することを特徴とする請求項１から１１のいずれかに記載のデータグラム中継装置。
【請求項１３】
前記パス選択処理手段は、前記入力された前記マルチパス識別子を基に前記読み出した前記動作モードが障害発生状態を示している場合、前記マルチパス識別子を基に前記転送パス状態ビット列を読み出し、該読み出した前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した前記転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする請求項１２記載のデータグラム中継装置。
【請求項１４】
アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、該マルチパス識別子に対応する前記転送パスを１つ以上示す使用パスビット列を格納する使用パスビット列格納手段をさらに有し、
前記転送パス番号は、それぞれ異なる前記転送パスと１対１に対応し、更に、該対応する前記転送パスと同一の情報により構成され、
前記パス選択処理手段は、前記転送パス毎及び前記転送パス番号毎へのパケットの転送及びストリームの割り当てが前記障害の発生により禁止状態となっているか否かを示す転送パス状態ビット列を格納し、前記物理リンクより前記障害が発生したことを通知する前記障害発生通知信号が入力された場合、該障害発生通知信号より前記障害の発生した前記物理リンクに対応する前記転送パスを特定し、前記転送パス状態ビット列に前記特定した前記転送パスへのパケットの転送及びストリームの割り当てが禁止状態であることを格納し、前記プロトコル終端手段よりパケットが入力された場合、前記経路解決処理手段より入力された前記マルチパス識別子を基に対応する前記使用パスビット列を読み出し、該読み出した前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パスが存在するか否かを判定し、該判定の結果、前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パスが存在する場合、前記転送パス状態ビット列を基に前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号と対応する前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であるか否かを判定し、該判定の結果、前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、該読み出した前記転送割当パス番号により前記転送パス番号を前記キャッシュ転送パス番号より更新し、該更新した前記転送パス番号を前記出力装置選択手段に出力し、
前記出力装置選択処理手段は、前記パス選択処理手段より入力された前記転送パス番号を基に前記パケットを転送することを特徴とする請求項１から１１のいずれかに記載のデータグラム中継装置。
【請求項１５】
前記パス選択処理手段は、前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パス及び前記転送パス番号が存在する場合、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする請求項１４記載のデータグラム中継装置。
【請求項１６】
前記キャッシュ転送パス番号は、対応する前記転送パス番号を示すビットとは別のビットをさらに有し、
該別のビットは、前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号が未登録状態であるか否かを示す登録状態ビットを格納し、
前記パス選択処理手段は、前記別のビットを基に前記入力された前記キャッシュ転送パス番号が未登録状態であるか否かを判定し、該判定の結果、前記キャッシュ転送パス番号が未登録状態である場合、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新することを特徴とする請求項１から１５のいずれかに記載のデータグラム中継装置。
【請求項１７】
前記パス選択処理手段は、予め所定のビットパターンを格納し、
前記キャッシュ転送パス番号は、前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記転送パス番号が未登録状態である場合、前記所定のビットパターンにより構成され、
前記パス選択処理手段は、前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号が前記所定のビットパターンにより構成されているか否かを判別することで、前記キャッシュ転送パス番号が未登録状態であるか否かを判定し、該判定の結果、前記キャッシュ転送パス番号が未登録状態である場合、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新することを特徴とする請求項１から１５のいずれかに記載のデータグラム中継装置。
【請求項１８】
前記パス選択処理手段は、前記転送割当パス番号格納手段に格納されている前記転送割当パス番号を更新するための前記転送パス番号を特定後、該特定した前記転送パス番号を更新パス番号として前記キャッシュテーブルアクセス手段に出力し、
前記キャッシュテーブルアクセス手段は、前記更新パス番号が入力されると、前記データ部において前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記キャッシュ転送パス番号を前記更新パス番号を基に更新することを特徴とする請求項１から１７のいずれかに記載のデータグラム中継装置。
【請求項１９】
前記転送禁止ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、
前記転送禁止ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのパケットの転送が禁止状態であることを格納することを特徴とする請求項１から１８のいずれかに記載のデータグラム中継装置。
【請求項２０】
前記割当禁止ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、
前記割当禁止ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのストリームの割り当てが禁止状態であることを格納することを特徴とする請求項２から１９のいずれかに記載のデータグラム中継装置。
【請求項２１】
前記転送パス状態ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、
前記転送パス状態ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのパケットの転送及びストリームの割り当てが禁止状態であることを格納することを特徴とする請求項１２、１３または１７から２０のいずれかに記載のデータグラム中継装置。
【請求項２２】
前記転送パス状態ビット列は、前記転送パス番号の種類以上のビット数により構成され、
前記転送パス状態ビット列を構成する各ビットはそれぞれ、該各ビットが前記転送パス及び前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス及び前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であることを格納することを特徴とする請求項１４から２０のいずれかに記載のデータグラム中継装置。
【請求項２３】
所定の時間以上パケットが転送されていない前記転送パスに対応する前記マルチパス識別子と前記転送パス番号との組み合わせを検知し、該検知された前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記キャッシュ転送パス番号格納手段のデータ部に格納された前記キャッシュ転送パス番号を未登録状態とするエージング処理手段をさらに有することを特徴とする請求項１６から２２のいずれかに記載のデータグラム中継装置。
【請求項２４】
前記パス選択処理手段は、前記検知した前記所定の時間以上パケットが転送されていない前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記割当ストリーム数を１減算し、該減算した前記割当ストリーム数と前記最大ストリーム数とを基に、前記転送禁止ビット列と前記割当禁止ビット列とを更新することを特徴とする請求項２３記載のデータグラム中継装置。
【請求項２５】
入力されたパケットのヘッダ情報より転送先経路を解決するための宛先アドレス情報を抽出する宛先アドレス抽出工程と、
前記入力されたパケットのヘッダ情報より集約されたフローを識別するためのストリーム識別子を算出するストリーム識別子算出工程と、
前記宛先アドレス情報を基に、宛先アドレスへの転送先経路となる転送パス、若しくは、同一アドレスに対応する転送先経路の集合であるマルチパスを一意に識別するためのマルチパス識別子を特定する経路解決処理工程と、
前記ストリーム識別子と前記マルチパス識別子との組み合わせを基に、アドレス部に前記ストリーム識別子と前記マルチパス識別子とを格納し、データ部に前記ストリーム識別子と前記マルチパス識別子との組み合わせと対応させて、前記転送パスに対応する転送パス番号をキャッシュ転送パス番号として格納するキャッシュ転送パス番号格納手段より、対応する前記キャッシュ転送パス番号を読み出すキャッシュテーブルアクセス工程と、
前記マルチパス識別子と前記キャッシュ転送パス番号を基に、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて前記転送パスを格納する転送パス格納手段より前記転送先経路となる前記転送パスを解決するパス選択処理工程と、
前記転送パスに前記パケットを転送する出力装置選択工程と、を有し、
前記パス選択処理工程は、前記キャッシュ転送パス番号を前記転送パス番号とし、更に、前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に、該転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であるか否かを示す転送禁止ビット列を格納する前記転送禁止ビット列格納手段より前記転送禁止ビット列を読み出し、該読み出した前記転送禁止ビット列を基に前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であるか否かを判定し、該判定の結果、前記転送パスへのパケットの転送が禁止状態である場合、前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パスに対応する前記転送パス番号を転送割当パス番号として格納する前記転送割当パス番号格納手段より前記転送割当パス番号を読み出し、前記転送パス番号を前記キャッシュ転送パス番号から前記読み出した前記転送割当パス番号に更新する工程を含むことを特徴とするデータグラム中継方法。
【請求項２６】
前記パス選択処理工程は、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新した場合、前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に、該転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが禁止状態であるか否かを示す割当禁止ビット列を格納する割当禁止ビット列格納手段より前記割当禁止ビット列を読み出し、該読み出した前記割当禁止ビット列においてストリームの割り当てが禁止状態と示されていない前記転送パス番号を特定し、該特定した前記転送パス番号により、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新する工程を含むことを特徴とする請求項２５記載のデータグラム中継方法。
【請求項２７】
前記パス選択処理工程は、前記マルチパス識別子と前記キャッシュ転送パス番号を基とした前記転送パス番号との組み合わせを基に、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に現在割り当てられているストリームの数を示す割当ストリーム数を格納する割当ストリーム数格納手段、及びアドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に割り当てるストリームの最大数を示す最大ストリーム数を格納する最大ストリーム数格納手段より前記割当ストリーム数と前記最大ストリーム数とを読み出し、該読み出した前記割当ストリーム数と前記最大ストリーム数とを比較し、該比較の結果、前記割当ストリーム数が前記最大ストリーム数より大きい場合、前記転送禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であることを格納し、また、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数以下である場合、前記転送禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのパケットの転送が許可状態であることを格納する工程を含むことを特徴とする請求項２５または２６記載のデータグラム中継方法。
【請求項２８】
パス選択処理工程は、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数以上である場合、前記割当禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのストリームの割り当てが禁止状態であることを格納し、また、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数より小さい場合、前記割当禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのストリームの割り当てが許可状態であることを格納する工程を含むことを特徴とする請求項２６または請求項２６を引用する請求項２７記載のデータグラム中継方法。
【請求項２９】
前記パス選択処理工程は、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新した場合、前記キャッシュ転送パス番号に対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記割当ストリーム数を１減算し、更に、前記更新後の前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記割当ストリーム数を１加算し、前記減算された割当ストリーム数及び前記加算された割当ストリーム数と前記最大ストリーム数との比較を行い、該比較の結果を基に、前記転送禁止ビット列と前記割当禁止ビット列とを更新し、該更新された前記転送禁止ビット列と前記割当禁止ビット列とを基に、前記転送割当パス番号格納手段に格納されている前記転送割当パス番号を更新するための前記転送パス番号を特定する工程を含むことを特徴とする請求項２６を引用する請求項２７、または請求項２８記載のデータグラム中継方法。
【請求項３０】
前記パス選択処理工程は、前記割当禁止ビット列を基にストリームの割り当てが禁止状態と示されていない前記転送パス番号を特定する際に、開始の値を前記転送パス番号を更新した前記転送割当パス番号の値の次の値とし、以降、順次対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが前記割当禁止ビット列において許可状態とされているか否かを判定し、更に、該判定において、判定の対象となる値が前記転送パス番号の最大値となった場合、次に判定の対象とする値を前記転送パス番号の最小の値として、以降、順次対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが前記割当禁止ビット列において許可状態とされているか否かを判定する工程を含むことを特徴とする請求項２６、請求項２６を引用する請求項２７、請求項２８または２９のいずれかに記載のデータグラム中継方法。
【請求項３１】
前記パス選択処理工程は、前記判定の対象となる値が前記転送パス番号を更新した前記転送割当パス番号の値と同一の値となった場合、前記転送割当パス番号格納手段における前記マルチパス識別子と対応する前記転送割当パス番号を更新するための前記転送パス番号を前記開始の値と対応する転送パス番号にする工程を含むことを特徴とする請求項３０記載のデータグラム中継方法。
【請求項３２】
前記パス選択処理工程は、前記転送割当パス番号を基にストリームの割り当てが禁止状態となっていない前記転送パス番号を特定する際に、前記マルチパス識別子を基に前記転送パス番号毎に前記割当ストリーム数と前記最大ストリーム数とを読み出し、該読み出した前記割当ストリーム数を前記最大ストリーム数で除算することにより前記転送パス番号毎に割当率を求め、該割当率が最も小さい前記転送パス番号により前記転送割当パス番号格納手段に格納された前記転送割当パス番号を更新する工程を含むことを特徴とする請求項２７から２９のいずれかに記載のデータグラム中継方法。
【請求項３３】
前記パス選択処理工程は、前記転送割当パス番号格納手段から読み出した前記転送割当パス番号により前記転送パス番号を更新後、前記入力された前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号に現在までに連続して割り当てたストリームの数を示す連続割当数を格納する連続割当数格納手段より対応する前記連続割当数を１加算し、該加算した前記連続割当数と、前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に連続して割り当てるストリームの最大数を示す最大連続割当数を格納する最大連続割当数格納手段より読み出した前記最大連続割当数とを比較し、該比較の結果、前記連続割当数が前記最大連続割当数以上である場合、前記マルチパス識別子と対応する前記割当禁止ビット列においてストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した前記転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新する工程を含むことを特徴とする請求項２６、請求項２６を引用する請求項２７、請求項２８から３２のいずれかに記載のデータグラム中継方法。
【請求項３４】
前記パス選択処理工程は、前記転送割当パス番号格納手段より読み出した前記転送割当パス番号により、前記転送パス番号を前記キャッシュ転送パス番号から更新する度に、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする請求項２６から３２のいずれかに記載のデータグラム中継方法。
【請求項３５】
前記パス選択処理工程は、前記転送割当パス番号格納手段に格納された前記転送割当パス番号に対応する前記割当ストリーム数が前記最大ストリーム数に達した場合、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子に対応する前記転送割当パス番号を更新することを特徴とする請求項２７から３２のいずれかに記載のデータグラム中継方法。
【請求項３６】
前記パス選択処理工程は、前記物理リンクより前記障害が発生したことを通知する障害発生通知信号が入力された場合、該障害発生通知信号より前記障害が発生した前記物理リンクに対応する前記転送パスを識別するための前記チャネル識別子を基に、アドレス部に前記転送パスと１対１で対応するチャネル識別子を格納し、データ部に前記チャネル識別子と対応させて、前記マルチパス識別子と前記転送パス番号とを格納するチャネル識別子格納手段より対応する前記マルチパス識別子と前記転送パス番号とを特定し、該特定した前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パスと対応する物理リンク上に障害が発生しているか否かを示す動作モードを格納する動作モード格納手段において対応する前記動作モードを障害発生状態に更新し、更に前記特定した前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に対応する前記転送パスへのパケットの転送及びストリームの割り当てが前記障害の発生により禁止状態となっているか否かを示す転送パス状態ビット列を格納する転送パス状態ビット列格納手段において対応する前記転送パス状態ビット列に前記特定した前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であること格納し、前記プロトコル終端手段よりパケットが入力された場合、前記経路解決処理手段より入力された前記マルチパス識別子を基に対応する前記動作モードを読み出し、該読み出した前記動作モードが障害発生状態を示している場合、前記マルチパス識別子を基に前記転送パス状態ビット列を読み出し、該読み出した前記転送パス状態ビット列において前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であるか否かを判定し、該判定の結果、前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、前記転送パス番号を前記キャッシュ転送パス番号より前記読み出した前記転送割当パス番号に更新する工程を含むことを特徴とする請求項２５から３５のいずれかに記載のデータグラム中継方法。
【請求項３７】
前記パス選択処理工程は、前記マルチパス識別子を基に前記読み出した前記動作モードが障害発生状態を示している場合、前記マルチパス識別子を基に前記転送パス状態ビット列を読み出し、該読み出した前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した前記転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新する工程を含むことを特徴とする請求項３６記載のデータグラム中継方法。
【請求項３８】
前記転送パス番号は、それぞれ異なる前記転送パスと１対１に対応し、更に、該対応する前記転送パスと同一の情報により構成され、
前記パス選択処理工程は、前記物理リンクより前記障害が発生したことを通知する前記障害発生通知信号が入力された場合、該障害発生通知信号より前記障害の発生した前記物理リンクに対応する前記転送パスを特定し、格納している前記転送パス毎及び前記転送パス番号毎へのパケットの転送及びストリームの割り当てが前記障害の発生により禁止状態となっているか否かを示す転送パス状態ビット列に前記特定した前記転送パスへのパケットの転送及びストリームの割り当てが禁止状態であること格納し、前記プロトコル終端手段よりパケットが入力された場合、前記経路解決処理手段より入力された前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、該マルチパス識別子に対応する前記転送パスを１つ以上示す使用パスビット列を格納する使用パスビット列格納手段より対応する前記使用パスビット列を読み出し、該読み出した前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パスが存在するか否かを判定し、該判定の結果、前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パスが存在する場合、前記転送パス状態ビット列を基に前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号と対応する前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であるか否かを判定し、該判定の結果、前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、該読み出した前記転送割当パス番号により前記転送パス番号を前記キャッシュ転送パス番号より更新する工程を含むことを特徴とする請求項２５から３５のいずれかに記載のデータグラム中継方法。
【請求項３９】
前記パス選択処理工程は、前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パス及び前記転送パス番号が存在する場合、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新する工程を含むことを特徴とする請求項３８記載のデータグラム中継方法。
【請求項４０】
前記キャッシュ転送パス番号は、対応する前記転送パス番号を示すビットとは別のビットをさらに有し、
該別のビットは、前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号が未登録状態であるか否かを示す登録状態ビットを格納し、
前記パス選択処理工程は、前記別のビットを基に前記入力された前記キャッシュ転送パス番号が未登録状態であるか否かを判定し、該判定の結果、前記キャッシュ転送パス番号が未登録状態である場合、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新することを特徴とする請求項２５から３９のいずれかに記載のデータグラム中継方法。
【請求項４１】
前記キャッシュ転送パス番号は、前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記転送パス番号が未登録状態である場合、前記所定のビットパターンにより構成され、
前記パス選択処理手段は、前記転送パス番号とした前記キャッシュ転送パス番号が、予め格納している前記所定のビットパターンにより構成されているか否かを判別することで、前記キャッシュ転送パス番号が未登録状態であるか否かを判定し、該判定の結果、前記キャッシュ転送パス番号が未登録状態である場合、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新することを特徴とする請求項２５から３９のいずれかに記載のデータグラム中継方法。
【請求項４２】
前記パス選択処理工程は、前記転送割当パス番号格納手段に格納されている前記転送割当パス番号を更新するための前記転送パス番号を特定後、該特定した前記転送パス番号を基に、前記キャッシュ転送パス番号格納手段の前記データ部において前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記キャッシュ転送パス番号を更新することを特徴とする請求項２５から４１のいずれかに記載のデータグラム中継方法。
【請求項４３】
前記転送禁止ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、
前記転送禁止ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのパケットの転送が禁止状態であることを格納することを特徴とする請求項２５から４２のいずれかに記載のデータグラム中継方法。
【請求項４４】
前記割当禁止ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、
前記割当禁止ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのストリームの割り当てが禁止状態であることを格納することを特徴とする請求項２６から４３のいずれかに記載のデータグラム中継方法。
【請求項４５】
前記転送パス状態ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、
前記転送パス状態ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのパケットの転送及びストリームの割り当てが禁止状態であることを格納することを特徴とする請求項３６、３７または４１から４４のいずれかに記載のデータグラム中継方法。
【請求項４６】
前記転送パス状態ビット列は、前記転送パス番号の種類以上のビット数により構成され、
前記転送パス状態ビット列を構成する各ビットはそれぞれ、該各ビットが前記転送パス及び前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス及び前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であることを格納することを特徴とする請求項３８から４４のいずれかに記載のデータグラム中継方法。
【請求項４７】
所定の時間以上パケットが転送されていない前記転送パスに対応する前記マルチパス識別子と前記転送パス番号との組み合わせを検知し、該検知された前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記キャッシュ転送パス番号格納手段のデータ部に格納された前記キャッシュ転送パス番号を未登録状態とするエージング処理工程をさらに有することを特徴とする請求項４０から４６のいずれかに記載のデータグラム中継方法。
【請求項４８】
前記パス選択処理工程は、前記検知した前記所定の時間以上パケットが転送されていない前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記割当ストリーム数を１減算し、該減算した前記割当ストリーム数と前記最大ストリーム数とを基に、前記転送禁止ビット列と前記割当禁止ビット列とを更新する工程を含むことを特徴とする請求項４７記載のデータグラム中継方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、「ルータ」などの転送先決定処理を実行するデータグラム中継装置及びその方法に関し、特に、転送先決定処理において受信したパケットの経路選択を行う際に、各経路毎に割り当てられた分散比に従って転送パス割り当てを実行するデータグラム中継装置及びその方法に関する。
【０００２】
【従来の技術】
従来、複数の資源に対する負荷割り当ては、主にＷｅｂにおけるクライアント側のプロキシーサーバファーム内での負荷分散や、マルチキャストルーティングプロトコルの１つであるＰＩＭ−ＳＭ（Protocol Independent Multicast−Sparse Mode ）でのランデブーポイントの選択方法といった領域で開発されてきた。
【０００３】
一方、最近では、インターネットトラフィックが急増したため、ルータ間のリンクにおいて、ＯＣ（Optical Carrier ）−４８やＯＣ−１９２といったＴＤＭ（Time Division Multiplexing）レートを増大させることにより対応するだけでは、十分なトラフィックを伝達することができなくなってきている。
【０００４】
従って、上記のような状況に鑑みなされる形で、ＤＷＤＭ（Dense Wavelength Division Multiplexer ）チャネルを並列に複数設定するような構成が北米ではすでに導入されている。
【０００５】
このようなＤＷＤＭチャネルを並列に複数設定する構成を図３５に示す。図３５を参照すると、各データ中継装置１００ａ〜１００ｆはそれぞれ光波通信装置１０１ａ〜１０１ｆを有し、この光波通信装置を介して複数の光波チャネルにより接続されることで光波リンクを張っている。
【０００６】
従って、図３５において、パケットを受信したルータは、次に転送すべきルータのみならず、そのルータにつながっている複数のパスのうち１つを選択しなければならない。
【０００７】
また、十分なスループットを伝達するための他の技術として、最近のトポロジーが複雑化したＩＰバックボーンネットワークにおいて、網内負荷バランスの最適化もしくは障害回復の高速化を実現するために、従来の宛先アドレスベースの転送と最短経路ルーティングとによらず、同一エリア内の入口・出口ルータ間に複数のＬＳＰ（Label Swiching Path ）を設定して、負荷をより正確に制御するＭＰＬＳ（MultiProtocol Label Swiching）ベースのトラフィックエンジニアリングが検討されている。
【０００８】
上記のようなＭＰＬＳベースのトラフィックエンジニアリングによるネットワーク構成を示したものが図３６である。図３６を参照すると、任意の２つのルータを入口ルータ、または出口ルータとし、この入口・出口ルータ間に２つのＬＳＰ１、ＬＳＰ２を割り当てられるように構成されている。また、このＬＳＰ毎に割り当てらた分散比は、例えば、ＬＳＰ１：ＬＳＰ２が６０％：４０％と設定されている。従って、入口ルータに到着し、出口ルータに転送されるストリームは、それぞれ３対２の比率で割り当てられる。
【０００９】
上記のような次世代ネットワークでは、同一の次ホップルータに対して１つ以上のパスが設定されている。このため、同一のフローを形成するパケットに対して異なるパスが割り当てられた場合、各経路毎にパケット伝達に要する遅延時間が異なるため、エンドユーザにおいて受信されるパケットの順序が送信先の順序と異なる場合が生じる。
【００１０】
このような場合、例えばＴＣＰ（Transmission Control Protocol ）セッションのようなＴＣＰセグメントを含むパケットが異なるパスを経由することにより順序が入れ替わると、再送処理が実施される場合がある。
【００１１】
これにより再送されたトラヒックは、本来必要であったものではなく余計に必要となったトラフィックであるため、トラフィック量が増加し、ネットワークスループット劣化の原因となる。
【００１２】
さらに、例えばＶｏＩＰ（Voice over Internet Protocol）のようなリアルタイムセッションにおけるパケット順序入れ替えは、エンドユーザに対する品質劣化の原因となる。
【００１３】
従って、次世代ネットワークにおけるルータでは、同一のフローを形成するパケットに対して同一のパスを割り当てることが重要となってくる。
【００１４】
ここで、同一のフローを形成するパケットに同一のパスを割り当てるための技術として、D.Thalerが開示することろのHash-Threshold方式がある。
【００１５】
このHash-Threshold方式では、受信したパケットのヘッダー部に含まれるフローを識別するためのフロー識別情報にＨＡＳＨ演算を行った結果を「キー」として抽出する。このＨａｓｈ演算の例としては、ＣＲＣ１６演算等が考えられる。したがって、この演算結果はフロー識別情報を縮退したものであり、以下の処理においてフローに対し転送パスを割り当てる際に使用する。
【００１６】
また、Hash-Threshold方式では、Ｎ種類の次ホップルータが存在する場合、「キー」で定義される空間をトラフィックの分散比に応じて複数に分割して、それぞれの領域を定義している。
【００１７】
したがって、上記のように求めたフロー識別情報の縮退である「キー」と領域の境界値とを比較することにより、受信したパケットがどの領域に含まれるかを特定し、当てはまる領域に対応する次ホップルータに対してパケットを転送することにより負荷分散を実現している。
【００１８】
このような実現方法を、図３７に例示した具体例を用いて説明すると、図３７では、パケットの転送先として４種類の次ホップルータが存在し、「キー」で定義される空間を４等分している。さらに、「キー」を分割する各空間の境界値は、１６３８３、３２７６７、４９１５１である。また、パケットを識別する情報であるIP Src Address(32bit) とIP Destination Address(32bit) との計６４ｂｉｔのビット列に対してＣＲＣ１６演算を行って算出した「キー」の値が、３５０００であるとする。
【００１９】
ここで、算出された「キー」である３５０００は、境界値３２７６７より大きく、４９１５１より小さいことから、転送先は次ホップルータ３と判定され転送される。
【００２０】
上記のような動作をすることにより、Hash-Threshold方式は、同一のフローを形成するパケットに対して同一のパスを割り当てることを保証するため、あるフローに対して複数のパスが候補としてあげられるような構成に対して、上述したようなエンドユーザにおける『パケット順序性の保持』を達成することが可能となる。
【００２１】
【発明が解決しようとする課題】
しかしながら、上記のようなHash-Threshold方式は、以下にあげるものに代表される幾つかの問題点を有していた。
【００２２】
先ず第１の問題点は、Hash-Threshold方式をハードウエアで高速に実現することが難しいという問題である。
【００２３】
即ち、Hash-Threshold方式では、フロー識別情報を基に転送先候補の解決を行った際に、「転送先候補数−１」のスレッシュホールドデータを読み出すことが必要となる。
【００２４】
このため、最大３２の転送先候補が存在する場合、パケットの到達毎に最小パケット処理時間内で３１種類分のスレッシュホールドデータを読み出すことが必要となり、メモリアクセスを頻繁に行う必要が生じ、処理に時間がかかるという問題を生じる。
【００２５】
また、第２の問題点は、並列パスの増減、及び並列パス間の負荷分散比の変更が生じた場合、割当パスの変更を余儀なくされるフローの数を抑えることができないという問題である。ここで割り当てパスが変更されたフローが全体を構成するフローに占める割合を『劣化率』という。
【００２６】
上記のような問題は、データグラム中継装置、特に、上述したような次世代インターネットを構成するためのルータにおいて、これらの並列パスの増減、及び配列パス間の負荷分散比の変更により、割り当てパスの変更を余儀なくされるフローの数を最小に抑える、即ち、『劣化率』を最小に抑えることが重要となることを意味している。
【００２７】
上述したように、エンドユーザにおける『パケットの順序性の保持』は、ネットワークスループットの劣化を防止するだけでなく、エンドユーザに対する通信品質の向上のために重要となってくる。
【００２８】
これに対し、パケットの順序性が劣化する要因は、同一フローを形成するパケットが異なる経路を経由してエンドユーザに到着することである。
【００２９】
このように同一のフローを形成するパケットが異なる経路を経由してエンドユーザに到達するのは、同一のフローを形成するパケットに異なるパスが割り当てられるためである。
【００３０】
例えば、ＭＰＬＳトラフィックエンジニアリングおいては、ネットワーク全体の負荷バランスを取るため、あらかじめ設定されているＬＳＰへの負荷割り当てを変更する場合がある。
【００３１】
また、同様に、並列に複数設定したチャネル上で、非予約帯域を利用してベストエフォートトラフィックの負荷分散を実現する場合には、予約帯域の変動に合わせて、負荷分散比を変更するような場合がある。
【００３２】
更に、将来のＷＤＭ（Wavelength Division Multiplex ）を利用したネットワーク網においては、通信障害や保守による並列チャネル数の減少以外に、トラフィック変動に応じた波長チャネルの張り替えにより、並列チャネル数の増加が発生するような場合が予想される。
【００３３】
このように、ＬＳＰへの負荷割当の変更や、予約帯域の変動に整合させるための負荷分散比の変更や、並列チャネルの減少もしくは増加が生じると、ルータは、ストリームに対してパスの割り当てを変更せざるを得なくなる。
【００３４】
ここで、パスの割り当てを変更するということは、変更以降のストリームが変更前のストリームの伝送経路とことなる経路を経由するということであるため、各経路毎に特有の遅延時間の差だけ、エンドユーザが受信するタイミングがずれてしまう。
【００３５】
従って、当然のことながら、割り当てパスが変更されたフローが増加する、所謂『劣化率』が増加すると、エンドユーザにおけるパケットの順序性が保てなくなり、通信品質を著しく劣化させるという悪影響が生じる。
【００３６】
この悪影響がHash-Threshold方式により生じる過程を、図面で示した具体例を用いて詳細に説明すると以下のようになる。
【００３７】
例えば、図３８を参照すると、ストリーム識別子で定義される空間を４つの次ホップルータで均等に負荷分散を行っていたとする。このとき、新たに５つ目の次ホップルータが追加され、５つの次ホップルータで均等に負荷分散するように設定を変更する場合に、Hash-Threshold方式による負荷分散方法を用いると、転送先が次ホップルータ５に変更される領域以外にも、次ホップルータ１から次ホップルータ２に変更される領域、次ホップルータ２から次ホップルータ３に変更される領域、さらに次ホップルータ３から次ホップルータ４に変更される領域というように不必要に変更される領域が、全体の領域において３０％も存在してしまう。
【００３８】
このように転送先が無駄に変更されてしまうと、パケットの転送順序が保証できなくなり、ＴＣＰのトラフィックなどでは大きなスループットの劣化を引き起こすといった問題を生じる。
【００３９】
上記の問題を理論上で解決しようと考えると、図３９で示されるように領域を設定することで、次ホップルータ５以外に無駄に転送先変更される領域を無くすことが可能であるように思われる。
【００４０】
しかしながら、このような理論的概念が存在するにも関わらず、上記のような問題が発生するのは、Hash-Threshold方式では、次ホップルータ間の境界線の値と演算結果として得られた「キー」とを直接比較しているためである。これにより、Hash-Threshold方式では１つの次ホップルータに割り当てる領域を連続的にしか選択することができなく、結果的に転送先変更される領域が不必要に多く生じてしまい、『劣化率』を増加させるをいう問題を生じる。
【００４１】
従って、本発明は、上記問題に鑑みなされたもので、負荷分散割り当て処理において、同一ストリームに対しては同一の転送パスにパケットを転送することを保証し、且つ、各ストリーム毎に転送先の振り分けを実行する負荷分散を実現するデータグラム転送装置及びその方法を提供することを目的とする。
【００４２】
また、パス選択処理部の持つ設定テーブルの変更直後から転送禁止状態となった転送パスに割り当てられるストリームに関して、最小数のストリームだけを別の転送パスに割り当て変更するよう構成することを可能とし、劣化率を最小に抑えたパケット負荷分散を実現するデータグラム中継装置及びその方法を提供することを目的とする。
【００４３】
またパス選択処理部の設定テーブル変更後、転送パスの変更が必要となるパケットが転送パスを変更されずに網へ送出されることを防止するデータグラム中継装置及びその方法を提供することを目的とする。
【００４４】
更に、マルチパス識別子で管理される転送パス番号全てのエントリを参照することなく、最大２つの転送パスエントリを参照するのみで、高速に負荷分散比に従って転送パスを割り当てることが可能となるデータグラム中継装置及びその方法を提供することを目的とする。
【００４５】
【課題を解決するための手段】
係る目的を達成するために、本発明の請求項１記載の発明は、１つ以上のプロトコル終端手段を有するデータグラム中継装置において、前記プロトコル終端手段のいずれかより入力されたパケットのヘッダ情報より転送先経路を解決するための宛先アドレス情報を抽出する宛先アドレス抽出手段と、前記プロトコル終端手段のいずれかより入力されたパケットのヘッダ情報より集約されたフローを識別するためのストリーム識別子を算出するストリーム識別子算出手段と、前記宛先アドレス情報を基に、宛先アドレスへの転送先経路となる転送パス、若しくは、同一アドレスに対応する転送先経路の集合であるマルチパスを一意に識別するためのマルチパス識別子を特定する経路解決処理手段と、アドレス部に前記ストリーム識別子と前記マルチパス識別子とを格納し、データ部に前記ストリーム識別子と前記マルチパス識別子との組み合わせと対応させて、前記転送パスに対応する転送パス番号をキャッシュ転送パス番号として格納するキャッシュ転送パス番号格納手段と、前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記キャッシュ転送パス番号を前記キャッシュ転送パス番号格納手段より読み出すキャッシュテーブルアクセス手段と、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に、該転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であるか否かを示す転送禁止ビット列を格納する転送禁止ビット列格納手段と、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パスに対応する前記転送パス番号を転送割当パス番号として格納する転送割当パス番号格納手段と、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて前記転送パスを格納する転送パス格納手段と、前記マルチパス識別子と前記キャッシュ転送パス番号を基に、前記入力されたパケットが属するストリームに対して前記転送先経路となる前記転送パスを解決するパス選択処理手段と、前記転送パスに前記パケットを転送する出力装置選択手段と、を有し、前記宛先アドレス抽出手段は、前記宛先アドレス情報を前記経路解決処理手段に出力し、前記ストリーム識別子算出手段は、前記ストリーム識別子を前記キャッシュテーブルアクセス手段と前記パス選択処理手段とに出力し、前記経路解決処理手段は、前記マルチパス識別子を前記キャッシュテーブルアクセス手段と前記パス選択処理手段とに出力し、前記キャッシュテーブルアクセス手段は、前記キャッシュ転送パス番号を前記パス選択処理手段に出力し、前記パス選択処理手段は、入力された前記キャッシュ転送パス番号を前記転送パス番号とし、更に、入力された前記マルチパス識別子を基に前記転送禁止ビット列を読み出し、該読み出した前記転送禁止ビット列を基に前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であるか否かを判定し、該判定の結果、前記転送パスへのパケットの転送が禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、前記転送パス番号を前記キャッシュ転送パス番号から前記読み出した前記転送割当パス番号に更新し、該更新した前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスを前記出力装置選択手段に出力することを特徴とする。
【００４６】
また、請求項２記載の発明によれば、請求項１記載のデータグラム中継装置において、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に、該転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが禁止状態であるか否かを示す割当禁止ビット列を格納する割当禁止ビット列格納手段をさらに有し、前記パス選択処理手段は、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新した場合、前記入力された前記マルチパス識別子を基に前記割当禁止ビット列を読み出し、該読み出した前記割当禁止ビット列においてストリームの割り当てが禁止状態と示されていない前記転送パス番号を特定し、該特定した前記転送パス番号により、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする。
【００４７】
また、請求項３記載の発明によれば、請求項１または２記載のデータグラム中継装置において、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に現在割り当てられているストリームの数を示す割当ストリーム数を格納する割当ストリーム数格納手段と、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に割り当てるストリームの最大数を示す最大ストリーム数を格納する最大ストリーム数格納手段と、をさらに有し、前記パス選択処理手段は、前記入力された前記マルチパス識別子と前記入力された前記キャッシュ転送パス番号を基とした前記転送パス番号との組み合わせを基に前記割当ストリーム数と前記最大ストリーム数とを読み出し、該読み出した前記割当ストリーム数と前記最大ストリーム数とを比較し、該比較の結果、前記割当ストリーム数が前記最大ストリーム数より大きい場合、前記転送禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であることを格納し、また、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数以下である場合、前記転送禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのパケットの転送が許可状態であることを格納することを特徴とする。
【００４８】
また、請求項４記載の発明によれば、請求項２または請求項２を引用する請求項３記載のデータグラム中継装置において、パス選択処理手段は、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数以上である場合、前記割当禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのストリームの割り当てが禁止状態であることを格納し、また、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数より小さい場合、前記割当禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのストリームの割り当てが許可状態であることを格納することを特徴とする。
【００４９】
また、請求項５記載の発明によれば、請求項２を引用する請求項３、または請求項４記載のデータグラム中継装置において、前記パス選択処理手段は、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新した場合、前記キャッシュ転送パス番号に対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記割当ストリーム数を１減算し、更に、前記更新後の前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記割当ストリーム数を１加算し、前記減算された割当ストリーム数及び前記加算された割当ストリーム数と前記最大ストリーム数との比較を行い、該比較の結果を基に、前記転送禁止ビット列と前記割当禁止ビット列とを更新し、該更新された前記転送禁止ビット列と前記割当禁止ビット列とを基に、前記転送割当パス番号格納手段に格納されている前記転送割当パス番号を更新するための前記転送パス番号を特定することを特徴とする。
【００５０】
また、請求項６記載の発明によれば、請求項２、請求項２を引用する請求項３、請求項４または５のいずれかに記載のデータグラム中継装置において、前記パス選択処理手段は、前記割当禁止ビット列を基にストリームの割り当てが禁止状態と示されていない前記転送パス番号を特定する際に、開始の値を前記転送パス番号を更新した前記転送割当パス番号の値の次の値とし、以降、順次対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが前記割当禁止ビット列において許可状態とされているか否かを判定し、更に、該判定において、判定の対象となる値が前記転送パス番号の最大値となった場合、次に判定の対象とする値を前記転送パス番号の最小の値として、以降、順次対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが前記割当禁止ビット列において許可状態とされているか否かを判定することを特徴とする。
【００５１】
また、請求項７記載の発明によれば、請求項６記載のデータグラム中継装置において、前記パス選択処理手段は、前記判定の対象となる値が前記転送パス番号を更新した前記転送割当パス番号の値と同一の値となった場合、前記転送割当パス番号格納手段における前記マルチパス識別子と対応する前記転送割当パス番号を更新するための前記転送パス番号を前記開始の値と対応する転送パス番号にすることを特徴とする。
【００５２】
また、請求項８記載の発明によれば、請求項３から５のいずれかに記載のデータグラム中継装置において、前記パス選択処理手段は、前記転送割当パス番号を基にストリームの割り当てが禁止状態となっていない前記転送パス番号を特定する際に、前記マルチパス識別子を基に前記転送パス番号毎に前記割当ストリーム数と前記最大ストリーム数とを読み出し、該読み出した前記割当ストリーム数を前記最大ストリーム数で除算することにより前記転送パス番号毎に割当率を求め、該割当率が最も小さい前記転送パス番号により前記転送割当パス番号格納手段に格納された前記転送割当パス番号を更新することを特徴とする。
【００５３】
また、請求項９記載の発明によれば、請求項２、請求項２を引用する請求項３、請求項４から８のいずれかに記載のデータグラム中継装置において、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号に現在までに連続して割り当てたストリームの数を示す連続割当数を格納する連続割当数格納手段と、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に連続して割り当てるストリームの最大数を示す最大連続割当数を格納する最大連続割当数格納手段と、をさらに有し、前記パス選択処理手段は、前記転送割当パス番号格納手段から読み出した前記転送割当パス番号により前記転送パス番号を更新後、前記入力された前記マルチパス識別子に対応する前記連続割当数を１加算し、該加算した前記連続割当数と前記最大連続割当数とを比較し、該比較の結果、前記連続割当数が前記最大連続割当数以上である場合、前記マルチパス識別子と対応する前記割当禁止ビット列においてストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した前記転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする。
【００５４】
また、請求項１０記載の発明によれば、請求項２から８のいずれかに記載のデータグラム中継装置において、前記パス選択処理手段は、前記転送割当パス番号格納手段より読み出した前記転送割当パス番号により、前記転送パス番号を前記キャッシュ転送パス番号から更新する度に、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする。
【００５５】
また、請求項１１記載の発明によれば、請求項３から８のいずれかに記載のデータグラム中継装置において、前記パス選択処理手段は、前記転送割当パス番号格納手段に格納された前記転送割当パス番号に対応する前記割当ストリーム数が前記最大ストリーム数に達した場合、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子に対応する前記転送割当パス番号を更新することを特徴とする。
【００５６】
また、請求項１２記載の発明によれば、請求項１から１１のいずれかに記載のデータグラム中継装置において、アドレス部に前記転送パスと１対１で対応するチャネル識別子を格納し、データ部に前記チャネル識別子と対応させて、前記マルチパス識別子と前記転送パス番号とを格納するチャネル識別子格納手段と、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パスと対応する物理リンク上に障害が発生しているか否かを示す動作モードを格納する動作モード格納手段と、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に対応する前記転送パスへのパケットの転送及びストリームの割り当てが前記障害の発生により禁止状態となっているか否かを示す転送パス状態ビット列を格納する転送パス状態ビット列格納手段と、をさらに有し、前記パス選択処理手段は、前記物理リンクより前記障害が発生したことを通知する障害発生通知信号が入力された場合、該障害発生通知信号より前記障害が発生した前記物理リンクに対応する前記転送パスに対応する前記チャネル識別子を特定し、該特定した前記チャネル識別子に対応する前記マルチパス識別子と前記転送パス番号とを前記チャネル識別子格納手段より特定し、該特定した前記マルチパス識別子に対応する前記動作モードを障害発生状態に更新し、更に前記特定した前記マルチパス識別子と対応する前記転送パス状態ビット列に前記特定した前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であることを格納し、前記プロトコル終端手段よりパケットが入力された場合、前記経路解決処理手段より入力された前記マルチパス識別子を基に対応する前記動作モードを読み出し、該読み出した前記動作モードが障害発生状態を示している場合、前記マルチパス識別子を基に前記転送パス状態ビット列を読み出し、該読み出した前記転送パス状態ビット列において前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であるか否かを判定し、該判定の結果、前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、前記転送パス番号を前記キャッシュ転送パス番号より前記読み出した前記転送割当パス番号に更新し、該更新した前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスを前記出力装置選択手段に出力することを特徴とする。
【００５７】
また、請求項１３記載の発明によれば、請求項１２記載のデータグラム中継装置において、前記パス選択処理手段は、前記入力された前記マルチパス識別子を基に前記読み出した前記動作モードが障害発生状態を示している場合、前記マルチパス識別子を基に前記転送パス状態ビット列を読み出し、該読み出した前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した前記転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする。
【００５８】
また、請求項１４記載の発明によれば、請求項１から１１のいずれかに記載のデータグラム中継装置において、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、該マルチパス識別子に対応する前記転送パスを１つ以上示す使用パスビット列を格納する使用パスビット列格納手段をさらに有し、前記転送パス番号は、それぞれ異なる前記転送パスと１対１に対応し、更に、該対応する前記転送パスと同一の情報により構成され、前記パス選択処理手段は、前記転送パス毎及び前記転送パス番号毎へのパケットの転送及びストリームの割り当てが前記障害の発生により禁止状態となっているか否かを示す転送パス状態ビット列を格納し、前記物理リンクより前記障害が発生したことを通知する前記障害発生通知信号が入力された場合、該障害発生通知信号より前記障害の発生した前記物理リンクに対応する前記転送パスを特定し、前記転送パス状態ビット列に前記特定した前記転送パスへのパケットの転送及びストリームの割り当てが禁止状態であることを格納し、前記プロトコル終端手段よりパケットが入力された場合、前記経路解決処理手段より入力された前記マルチパス識別子を基に対応する前記使用パスビット列を読み出し、該読み出した前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パスが存在するか否かを判定し、該判定の結果、前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パスが存在する場合、前記転送パス状態ビット列を基に前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号と対応する前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であるか否かを判定し、該判定の結果、前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、該読み出した前記転送割当パス番号により前記転送パス番号を前記キャッシュ転送パス番号より更新し、該更新した前記転送パス番号を前記出力装置選択手段に出力し、前記出力装置選択処理手段は、前記パス選択処理手段より入力された前記転送パス番号を基に前記パケットを転送することを特徴とする。
【００５９】
また、請求項１５記載の発明によれば、請求項１４記載のデータグラム中継装置において、前記パス選択処理手段は、前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パス及び前記転送パス番号が存在する場合、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする。
【００６０】
また、請求項１６記載の発明によれば、請求項１から１５のいずれかに記載のデータグラム中継装置において、前記キャッシュ転送パス番号は、対応する前記転送パス番号を示すビットとは別のビットをさらに有し、該別のビットは、前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号が未登録状態であるか否かを示す登録状態ビットを格納し、前記パス選択処理手段は、前記別のビットを基に前記入力された前記キャッシュ転送パス番号が未登録状態であるか否かを判定し、該判定の結果、前記キャッシュ転送パス番号が未登録状態である場合、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新することを特徴とする。
【００６１】
また、請求項１７記載の発明によれば、請求項１から１５のいずれかに記載のデータグラム中継装置において、前記パス選択処理手段は、予め所定のビットパターンを格納し、前記キャッシュ転送パス番号は、前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記転送パス番号が未登録状態である場合、前記所定のビットパターンにより構成され、前記パス選択処理手段は、前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号が前記所定のビットパターンにより構成されているか否かを判別することで、前記キャッシュ転送パス番号が未登録状態であるか否かを判定し、該判定の結果、前記キャッシュ転送パス番号が未登録状態である場合、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新することを特徴とする。
【００６２】
また、請求項１８記載の発明は、請求項１から１７のいずれかに記載のデータグラム中継装置において、前記パス選択処理手段は、前記転送割当パス番号格納手段に格納されている前記転送割当パス番号を更新するための前記転送パス番号を特定後、該特定した前記転送パス番号を更新パス番号として前記キャッシュテーブルアクセス手段に出力し、前記キャッシュテーブルアクセス手段は、前記更新パス番号が入力されると、前記データ部において前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記キャッシュ転送パス番号を前記更新パス番号を基に更新することを特徴とする。
【００６３】
また、請求項１９記載の発明は、請求項１から１８のいずれかに記載のデータグラム中継装置において、前記転送禁止ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、前記転送禁止ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのパケットの転送が禁止状態であることを格納することを特徴とする。
【００６４】
また、請求項２０記載の発明は、請求項２から１９のいずれかに記載のデータグラム中継装置において、前記割当禁止ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、前記割当禁止ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのストリームの割り当てが禁止状態であることを格納することを特徴とする。
【００６５】
また、請求項２１記載の発明によれば、請求項１２、１３または１７から２０のいずれかに記載のデータグラム中継装置において、前記転送パス状態ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、前記転送パス状態ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのパケットの転送及びストリームの割り当てが禁止状態であることを格納することを特徴とする。
【００６６】
また、請求項２２記載の発明によれば、請求項１４から２０のいずれかに記載のデータグラム中継装置において、前記転送パス状態ビット列は、前記転送パス番号の種類以上のビット数により構成され、前記転送パス状態ビット列を構成する各ビットはそれぞれ、該各ビットが前記転送パス及び前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス及び前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であることを格納することを特徴とする。
【００６７】
また、請求項２３記載の発明によれば、請求項１６から２２のいずれかに記載のデータグラム中継装置において、所定の時間以上パケットが転送されていない前記転送パスに対応する前記マルチパス識別子と前記転送パス番号との組み合わせを検知し、該検知された前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記キャッシュ転送パス番号格納手段のデータ部に格納された前記キャッシュ転送パス番号を未登録状態とするエージング処理手段をさらに有することを特徴とする。
【００６８】
また、請求項２４記載の発明によれば、請求項２３記載のデータグラム中継装置において、前記パス選択処理手段は、前記検知した前記所定の時間以上パケットが転送されていない前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記割当ストリーム数を１減算し、該減算した前記割当ストリーム数と前記最大ストリーム数とを基に、前記転送禁止ビット列と前記割当禁止ビット列とを更新することを特徴とする。
【００６９】
また、請求項２５記載の発明によれば、入力されたパケットのヘッダ情報より転送先経路を解決するための宛先アドレス情報を抽出する宛先アドレス抽出工程と、前記入力されたパケットのヘッダ情報より集約されたフローを識別するためのストリーム識別子を算出するストリーム識別子算出工程と、前記宛先アドレス情報を基に、宛先アドレスへの転送先経路となる転送パス、若しくは、同一アドレスに対応する転送先経路の集合であるマルチパスを一意に識別するためのマルチパス識別子を特定する経路解決処理工程と、前記ストリーム識別子と前記マルチパス識別子との組み合わせを基に、アドレス部に前記ストリーム識別子と前記マルチパス識別子とを格納し、データ部に前記ストリーム識別子と前記マルチパス識別子との組み合わせと対応させて、前記転送パスに対応する転送パス番号をキャッシュ転送パス番号として格納するキャッシュ転送パス番号格納手段より、対応する前記キャッシュ転送パス番号を読み出すキャッシュテーブルアクセス工程と、前記マルチパス識別子と前記キャッシュ転送パス番号を基に、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて前記転送パスを格納する転送パス格納手段より前記転送先経路となる前記転送パスを解決するパス選択処理工程と、前記転送パスに前記パケットを転送する出力装置選択工程と、を有し、前記パス選択処理工程は、前記キャッシュ転送パス番号を前記転送パス番号とし、更に、前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に、該転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であるか否かを示す転送禁止ビット列を格納する前記転送禁止ビット列格納手段より前記転送禁止ビット列を読み出し、該読み出した前記転送禁止ビット列を基に前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であるか否かを判定し、該判定の結果、前記転送パスへのパケットの転送が禁止状態である場合、前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パスに対応する前記転送パス番号を転送割当パス番号として格納する前記転送割当パス番号格納手段より前記転送割当パス番号を読み出し、前記転送パス番号を前記キャッシュ転送パス番号から前記読み出した前記転送割当パス番号に更新する工程を含むことを特徴とする。
【００７０】
また、請求項２６記載の発明は、請求項２５記載のデータグラム中継方法において、前記パス選択処理工程は、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新した場合、前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に、該転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが禁止状態であるか否かを示す割当禁止ビット列を格納する割当禁止ビット列格納手段より前記割当禁止ビット列を読み出し、該読み出した前記割当禁止ビット列においてストリームの割り当てが禁止状態と示されていない前記転送パス番号を特定し、該特定した前記転送パス番号により、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新する工程を含むことを特徴とする。
【００７１】
また、請求項２７記載の発明によれば、請求項２５または２６記載のデータグラム中継方法において、前記パス選択処理工程は、前記マルチパス識別子と前記キャッシュ転送パス番号を基とした前記転送パス番号との組み合わせを基に、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に現在割り当てられているストリームの数を示す割当ストリーム数を格納する割当ストリーム数格納手段、及びアドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に割り当てるストリームの最大数を示す最大ストリーム数を格納する最大ストリーム数格納手段より前記割当ストリーム数と前記最大ストリーム数とを読み出し、該読み出した前記割当ストリーム数と前記最大ストリーム数とを比較し、該比較の結果、前記割当ストリーム数が前記最大ストリーム数より大きい場合、前記転送禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのパケットの転送が禁止状態であることを格納し、また、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数以下である場合、前記転送禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのパケットの転送が許可状態であることを格納する工程を含むことを特徴とする。
【００７２】
また、請求項２８記載の発明によれば、請求項２６または請求項２６を引用する請求項２７記載のデータグラム中継方法において、パス選択処理工程は、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数以上である場合、前記割当禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのストリームの割り当てが禁止状態であることを格納し、また、前記割当ストリーム数と前記最大ストリーム数との前記比較の結果、前記割当ストリーム数が前記最大ストリーム数より小さい場合、前記割当禁止ビット列に前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記転送パスへのストリームの割り当てが許可状態であることを格納する工程を含むことを特徴とする。
【００７３】
また、請求項２９記載の発明は、請求項２６を引用する請求項２７、または請求項２８記載のデータグラム中継方法において、前記パス選択処理工程は、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新した場合、前記キャッシュ転送パス番号に対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記割当ストリーム数を１減算し、更に、前記更新後の前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記割当ストリーム数を１加算し、前記減算された割当ストリーム数及び前記加算された割当ストリーム数と前記最大ストリーム数との比較を行い、該比較の結果を基に、前記転送禁止ビット列と前記割当禁止ビット列とを更新し、該更新された前記転送禁止ビット列と前記割当禁止ビット列とを基に、前記転送割当パス番号格納手段に格納されている前記転送割当パス番号を更新するための前記転送パス番号を特定する工程を含むことを特徴とする。
【００７４】
また、請求項３０記載の発明によれば、請求項２６、請求項２６を引用する請求項２７、請求項２８または２９のいずれかに記載のデータグラム中継方法において、前記パス選択処理工程は、前記割当禁止ビット列を基にストリームの割り当てが禁止状態と示されていない前記転送パス番号を特定する際に、開始の値を前記転送パス番号を更新した前記転送割当パス番号の値の次の値とし、以降、順次対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが前記割当禁止ビット列において許可状態とされているか否かを判定し、更に、該判定において、判定の対象となる値が前記転送パス番号の最大値となった場合、次に判定の対象とする値を前記転送パス番号の最小の値として、以降、順次対応する前記転送パス番号と前記マルチパス識別子との組み合わせに対応する前記転送パスへのストリームの割り当てが前記割当禁止ビット列において許可状態とされているか否かを判定する工程を含むことを特徴とする。
【００７５】
また、請求項３１記載の発明は、請求項３０記載のデータグラム中継方法において、前記パス選択処理工程は、前記判定の対象となる値が前記転送パス番号を更新した前記転送割当パス番号の値と同一の値となった場合、前記転送割当パス番号格納手段における前記マルチパス識別子と対応する前記転送割当パス番号を更新するための前記転送パス番号を前記開始の値と対応する転送パス番号にする工程を含むことを特徴とする。
【００７６】
また、請求項３２記載の発明によれば、請求項２７から２９のいずれかに記載のデータグラム中継方法において、前記パス選択処理工程は、前記転送割当パス番号を基にストリームの割り当てが禁止状態となっていない前記転送パス番号を特定する際に、前記マルチパス識別子を基に前記転送パス番号毎に前記割当ストリーム数と前記最大ストリーム数とを読み出し、該読み出した前記割当ストリーム数を前記最大ストリーム数で除算することにより前記転送パス番号毎に割当率を求め、該割当率が最も小さい前記転送パス番号により前記転送割当パス番号格納手段に格納された前記転送割当パス番号を更新する工程を含むことを特徴とする。
【００７７】
また、請求項３３記載の発明によれば、請求項２６、請求項２６を引用する請求項２７、請求項２８から３２のいずれかに記載のデータグラム中継方法において、前記パス選択処理工程は、前記転送割当パス番号格納手段から読み出した前記転送割当パス番号により前記転送パス番号を更新後、前記入力された前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号に現在までに連続して割り当てたストリームの数を示す連続割当数を格納する連続割当数格納手段より対応する前記連続割当数を１加算し、該加算した前記連続割当数と、前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子と前記転送パス番号とを格納し、データ部に前記マルチパス識別子と前記転送パス番号との組み合わせと対応させて、前記転送パス番号に連続して割り当てるストリームの最大数を示す最大連続割当数を格納する最大連続割当数格納手段より読み出した前記最大連続割当数とを比較し、該比較の結果、前記連続割当数が前記最大連続割当数以上である場合、前記マルチパス識別子と対応する前記割当禁止ビット列においてストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した前記転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新する工程を含むことを特徴とする。
【００７８】
また、請求項３４記載の発明によれば、請求項２６から３２のいずれかに記載のデータグラム中継方法において、前記パス選択処理工程は、前記転送割当パス番号格納手段より読み出した前記転送割当パス番号により、前記転送パス番号を前記キャッシュ転送パス番号から更新する度に、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新することを特徴とする。
【００７９】
また、請求項３５記載の発明によれば、請求項２７から３２のいずれかに記載のデータグラム中継方法において、前記パス選択処理工程は、前記転送割当パス番号格納手段に格納された前記転送割当パス番号に対応する前記割当ストリーム数が前記最大ストリーム数に達した場合、前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子に対応する前記転送割当パス番号を更新することを特徴とする。
【００８０】
また、請求項３６記載の発明によれば、請求項２５から３５のいずれかに記載のデータグラム中継方法において、前記パス選択処理工程は、前記物理リンクより前記障害が発生したことを通知する障害発生通知信号が入力された場合、該障害発生通知信号より前記障害が発生した前記物理リンクに対応する前記転送パスを識別するための前記チャネル識別子を基に、アドレス部に前記転送パスと１対１で対応するチャネル識別子を格納し、データ部に前記チャネル識別子と対応させて、前記マルチパス識別子と前記転送パス番号とを格納するチャネル識別子格納手段より対応する前記マルチパス識別子と前記転送パス番号とを特定し、該特定した前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パスと対応する物理リンク上に障害が発生しているか否かを示す動作モードを格納する動作モード格納手段において対応する前記動作モードを障害発生状態に更新し、更に前記特定した前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、前記転送パス番号毎に対応する前記転送パスへのパケットの転送及びストリームの割り当てが前記障害の発生により禁止状態となっているか否かを示す転送パス状態ビット列を格納する転送パス状態ビット列格納手段において対応する前記転送パス状態ビット列に前記特定した前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であること格納し、前記プロトコル終端手段よりパケットが入力された場合、前記経路解決処理手段より入力された前記マルチパス識別子を基に対応する前記動作モードを読み出し、該読み出した前記動作モードが障害発生状態を示している場合、前記マルチパス識別子を基に前記転送パス状態ビット列を読み出し、該読み出した前記転送パス状態ビット列において前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であるか否かを判定し、該判定の結果、前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、前記転送パス番号を前記キャッシュ転送パス番号より前記読み出した前記転送割当パス番号に更新する工程を含むことを特徴とする。
【００８１】
また、請求項３７記載の発明によれば、請求項３６記載のデータグラム中継方法において、前記パス選択処理工程は、前記マルチパス識別子を基に前記読み出した前記動作モードが障害発生状態を示している場合、前記マルチパス識別子を基に前記転送パス状態ビット列を読み出し、該読み出した前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した前記転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新する工程を含むことを特徴とする。
【００８２】
また、請求項３８記載の発明によれば、請求項２５から３５のいずれかに記載のデータグラム中継方法において、前記転送パス番号は、それぞれ異なる前記転送パスと１対１に対応し、更に、該対応する前記転送パスと同一の情報により構成され、前記パス選択処理工程は、前記物理リンクより前記障害が発生したことを通知する前記障害発生通知信号が入力された場合、該障害発生通知信号より前記障害の発生した前記物理リンクに対応する前記転送パスを特定し、格納している前記転送パス毎及び前記転送パス番号毎へのパケットの転送及びストリームの割り当てが前記障害の発生により禁止状態となっているか否かを示す転送パス状態ビット列に前記特定した前記転送パスへのパケットの転送及びストリームの割り当てが禁止状態であること格納し、前記プロトコル終端手段よりパケットが入力された場合、前記経路解決処理手段より入力された前記マルチパス識別子を基に、アドレス部に前記マルチパス識別子を格納し、データ部に前記マルチパス識別子と対応させて、該マルチパス識別子に対応する前記転送パスを１つ以上示す使用パスビット列を格納する使用パスビット列格納手段より対応する前記使用パスビット列を読み出し、該読み出した前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パスが存在するか否かを判定し、該判定の結果、前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パスが存在する場合、前記転送パス状態ビット列を基に前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号と対応する前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であるか否かを判定し、該判定の結果、前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態である場合、前記マルチパス識別子を基に前記転送割当パス番号を読み出し、該読み出した前記転送割当パス番号により前記転送パス番号を前記キャッシュ転送パス番号より更新する工程を含むことを特徴とする。
【００８３】
また、請求項３９記載の発明によれば、請求項３８記載のデータグラム中継方法において、前記パス選択処理工程は、前記使用パスビット列において使用されていることが示され、且つ、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態であることが示されている前記転送パス及び前記転送パス番号が存在する場合、前記転送パス状態ビット列においてパケットの転送及びストリームの割り当てが禁止状態となっていない前記転送パス番号を特定し、該特定した転送パス番号により前記転送割当パス番号格納手段のデータ部において前記マルチパス識別子と対応する前記転送割当パス番号を更新する工程を含むことを特徴とする。
【００８４】
また、請求項４０記載の発明は、請求項２５から３９のいずれかに記載のデータグラム中継方法において、前記キャッシュ転送パス番号は、対応する前記転送パス番号を示すビットとは別のビットをさらに有し、該別のビットは、前記キャッシュテーブルアクセス手段より入力された前記キャッシュ転送パス番号が未登録状態であるか否かを示す登録状態ビットを格納し、前記パス選択処理工程は、前記別のビットを基に前記入力された前記キャッシュ転送パス番号が未登録状態であるか否かを判定し、該判定の結果、前記キャッシュ転送パス番号が未登録状態である場合、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新することを特徴とする。
【００８５】
また、請求項４１記載の発明によれば、請求項２５から３９のいずれかに記載のデータグラム中継方法において、前記キャッシュ転送パス番号は、前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記転送パス番号が未登録状態である場合、前記所定のビットパターンにより構成され、前記パス選択処理手段は、前記転送パス番号とした前記キャッシュ転送パス番号が、予め格納している前記所定のビットパターンにより構成されているか否かを判別することで、前記キャッシュ転送パス番号が未登録状態であるか否かを判定し、該判定の結果、前記キャッシュ転送パス番号が未登録状態である場合、前記転送パス番号を前記キャッシュ転送パス番号から前記転送割当パス番号に更新することを特徴とする。
【００８６】
また、請求項４２記載の発明は、請求項２５から４１のいずれかに記載のデータグラム中継方法において、前記パス選択処理工程は、前記転送割当パス番号格納手段に格納されている前記転送割当パス番号を更新するための前記転送パス番号を特定後、該特定した前記転送パス番号を基に、前記キャッシュ転送パス番号格納手段の前記データ部において前記ストリーム識別子と前記マルチパス識別子との組み合わせに対応する前記キャッシュ転送パス番号を更新することを特徴とする。
【００８７】
また、請求項４３記載の発明によれば、請求項２５から４２のいずれかに記載のデータグラム中継方法において、前記転送禁止ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、前記転送禁止ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのパケットの転送が禁止状態であることを格納することを特徴とする。
【００８８】
また、請求項４４記載の発明によれば、請求項２６から４３のいずれかに記載のデータグラム中継方法において、前記割当禁止ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、前記割当禁止ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのストリームの割り当てが禁止状態であることを格納することを特徴とする。
【００８９】
また、請求項４５記載の発明によれば、請求項３６、３７または４１から４４のいずれかに記載のデータグラム中継方法において、前記転送パス状態ビット列は、対応する前記マルチパス識別子で区分される前記転送パス番号の種類以上のビット数で構成され、前記転送パス状態ビット列を構成する各ビットはそれぞれ、該各ビットが前記マルチパス識別子で区分される前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス番号と対応する前記転送パスへのパケットの転送及びストリームの割り当てが禁止状態であることを格納することを特徴とする。
【００９０】
また、請求項４６記載の発明によれば、請求項３８から４４のいずれかに記載のデータグラム中継方法において、前記転送パス状態ビット列は、前記転送パス番号の種類以上のビット数により構成され、前記転送パス状態ビット列を構成する各ビットはそれぞれ、該各ビットが前記転送パス及び前記転送パス番号と１対１で対応し、前記各ビット毎に前記対応する前記転送パス及び前記転送パス番号へのパケットの転送及びストリームの割り当てが禁止状態であることを格納することを特徴とする。
【００９１】
また、請求項４７記載の発明によれば、請求項４０から４６のいずれかに記載のデータグラム中継方法において、所定の時間以上パケットが転送されていない前記転送パスに対応する前記マルチパス識別子と前記転送パス番号との組み合わせを検知し、該検知された前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記キャッシュ転送パス番号格納手段のデータ部に格納された前記キャッシュ転送パス番号を未登録状態とするエージング処理工程をさらに有することを特徴とする。
【００９２】
また、請求項４８記載の発明によれば、請求項４７記載のデータグラム中継方法において、前記パス選択処理工程は、前記検知した前記所定の時間以上パケットが転送されていない前記マルチパス識別子と前記転送パス番号との組み合わせに対応する前記割当ストリーム数を１減算し、該減算した前記割当ストリーム数と前記最大ストリーム数とを基に、前記転送禁止ビット列と前記割当禁止ビット列とを更新する工程を含むことを特徴とする。
【００９５】
【発明の実施の形態】
以下、図面を用いて、本発明のデータグラム中継装置及びその方法を詳細に説明する。ここで、本発明の特徴及び効果を先に述べる。
【００９６】
《発明の特徴及び効果》
図１から図６を参照すると、本発明によるデータグラム中継装置及びその方法は、転送先決定処理装置１のキャッシュテーブル１２０においてマルチパス識別子(M) とストリーム識別子(S) とに対応する転送パス番号(PN)を保持することにより、同一ストリームに対しては同一の転送パス(P) を割り当てるデータグラム転送を実行することを保証し、更にこのデータグラム転送処理において、キャッシュテーブル１２０で解決した転送パス番号(PN)が「転送禁止状態」であるか否かを判別する手段を新たに設けている。
【００９７】
ここで、ストリーム識別子(S) とは、集約されたフローを識別するためのフロー識別情報であり、データグラムのヘッダ部に含まれる情報より算出した情報である。更に、マルチパス識別子(M) とは、入力されたデータグラムのヘッダ部に含まれる宛先ＩＰアドレス(A) から解決される１つ以上の転送先経路を一意に認識するための情報である。
【００９８】
従って、第１の実施の形態で、転送パスの追加・削除が発生した場合、もしくは、この転送パス毎の分散比の変更が生じた場合において、キャッシュテーブル１２０に保持されているマルチパス識別子(M) と転送パス(P) との対応を変更することなく、パス選択処理部１３の備えるパス割当テーブル１３０及び転送パステーブル１３１のみを変更し、「転送禁止状態」とされている転送パス(P) への転送を回避し、別の転送パス(P) に割り当てることを可能にしている。
【００９９】
これにより、第１の実施の形態では、パス選択処理部１３の備えるパス割当テーブル１３０及び転送パステーブル１３１を変更した直後から「転送禁止状態」と変更された転送パス(P) に既に割り当てられていたストリームに関して、この割り当てられていたストリームの内、最小数のストリームだけを別の転送パス(P) に割り当てるように変更することが可能となり、劣化率を最小限に抑えた負荷分散比に従った転送パス(P) の割当処理を実現することができる。
【０１００】
また、本発明における転送パス(P) の割当変更を実行する処理は、「転送禁止状態」に変更された転送パス(P) に割り当てられていたストリーム識別子(S) を有するデータグラムが到着する度に転送パス(P) の割り当て変更を実施するため、パス選択処理部１３のパス割当テーブル１３０及び転送パステーブル１３１を変更した後は、一度割当変更を実施したデータグラムと同一のストリーム識別子(S) を有するデータグラムに対して、同様な転送パス(P) の割り当て変更処理を実施する必要がなくなり、しかも転送パス(P) の変更を必要とするデータグラムに関し、求められるストリーム識別子(S) とマルチパス識別子(M) との組み合わせに対応する転送パス番号(PN)を、新たに求められた転送パス番号(PN)に更新するため、更新後、割当変更処理が実施されたデータグラムに対し転送パス(P) の変更が実施されることなく網へ送出されることもなくなる。
【０１０１】
更に本発明では、パス選択処理部１３が転送パス毎にストリームの最大連続割当数(PW)を管理し、この最大連続割当数(PW)の個数ずつストリームを割り当てるように構成するため、キャッシュテーブル１２０に保持され、マルチパス識別子(M) で管理される転送パス番号(PN)の登録状態の全てを参照すること無く、最大２つの転送パス(P) に関する登録状態を参照するのみで負荷分散比に従って転送パス(P) を割り当てていくことが可能となり、割り当てる転送パス番号(PN)の更新を短時間で行うことが可能となる。
【０１０２】
《第１の実施の形態の構成》
次に本発明の第１の実施の形態について、添付した図面を参照することにより詳細に説明する。
【０１０３】
図１は、本発明による第１の実施の形態を示すデータグラム転送装置４のブロック図である。図１を参照すると、第１の実施の形態におけるデータグラム転送装置４は、複数のプロトコル終端装置２ａ，２ｂ，２ｃ，・・・，２ｎ及び３ａ，３ｂ，３ｃ，・・・，３ｎと各々のプロトコル終端装置と選択的に接続する転送先決定処理装置１とから構成されている。
【０１０４】
ここで、プロトコル終端装置２ａ，２ｂ，２ｃ，・・・，２ｎは、受信したデータグラムに関してネットワーク層などのレイヤ３以下を終端し、転送先決定処理装置１へ転送する。
【０１０５】
これに対し、転送先決定処理装置１は、プロトコル終端装置２ａ，２ｂ，２ｃ，・・・，２ｎより転送されてきたデータグラムのヘッダ部に含まれる宛先アドレスを参照し、これを基に転送先を決定し、対応するプロトコル終端装置３ａ，３ｂ，３ｃ，・・・，３ｎへ転送する。
【０１０６】
特に転送先の候補が複数存在する場合には、受信したデータグラムに含まれるフローを識別するためのフロー識別情報より算出されるストリーム識別子(S) とこれに対応する転送先とを結びつけることにより、ストリーム識別子(S) 毎に割り当てられた転送先への転送を実現する。
【０１０７】
また、プロトコル終端装置３ａ，３ｂ，３ｃ，・・・，３ｎは、転送先決定処理装置１よりデータグラムと転送先を規定する情報とを受信すると、この転送先を規定する情報に基づきレイヤ３以下の設定を行い、受信したデータグラムを外部ネットワークへ転送する。
【０１０８】
ここで、転送先決定処理装置１は、論理的には、複数のプロトコル終端装置より構成されるが、物理的には、各プロトコル終端装置の全て、または、その内のいくつかを同一のハードウエア回路で構成しても良い。
【０１０９】
具体例をあげると、レイヤ２がＡＴＭである場合、ＶＰ（Virtual Path）毎に仮想的な宛先とのパスが張られるため、論理的にはそれぞれのＶＰを一つのネットワーク終端装置により終端しているように構成されるが、物理的には一つの物理回線を終端するネットワーク終端装置が複数のＶＰを終端するように構成される場合が考えられる。
【０１１０】
また、送信側のプロトコル終端装置２ａ，２ｂ，２ｃ，・・・，２ｎと受信側のプロトコル終端装置３ａ，３ｂ，３ｃ，・・・，３ｎとは、論理的には送信、受信というような別の機能を果たしているが、物理的にはそれぞれが同一のハードウエアにより構成されていても良い。
【０１１１】
従って、図１に例示した構成では、１つのデータグラム転送装置４が１つの転送先決定処理装置１を有し、この転送先決定処理装置１に複数のプロトコル終端装置が接続されているが、この構成を図２に示すような、プロトコル終端装置２ａ，２ｂ，２ｃ，・・・，２ｎがそれぞれ専用の転送先決定処理装置１ａ，１ｂ，１ｃ，・・・，１ｎと接続されるような構成としても良い。
【０１１２】
また、図３を用いて、図１及び図２に示した転送先決定処理装置１の構成例を詳細に説明する。図３は、第１の実施の形態による転送先決定処理装置１の構成例を示すブロック図である。
【０１１３】
図３を参照すると、転送先決定処理装置１は、ヘッダ抽出処理部１０と経路解決処理部１１とキャッシュテーブルアクセス部１２とパス選択処理部１３と出力装置選択部１４とキャッシュテーブル１２０とパス割当テーブル１３０と転送パステーブル１３１とにより構成される。
【０１１４】
ここで、図３において、プロトコル終端装置２ａ，２ｂ，２ｃ，・・・，２ｎのいずれかよりＩＰデータグラム(D) （以下、パケットという）が入力されると、ヘッダ抽出処理部１０は、このパケット(D)のヘッダより転送経路を解決するための宛先ＩＰアドレス(A) と集約されたフローを識別するための情報であるストリーム識別子(S) とを抽出し、宛先ＩＰアドレス(A) を経路解決処理部１１へ、ストリーム識別子(S) をキャッシュテーブルアクセス部１２へ出力する。
【０１１５】
上記のストリーム識別子(S) は、上述したように、パケット(D) のヘッダ内に含まれるフロー識別情報より計算される値であり、１つのストリーム識別子(S) に対して複数のフローが割り当てられている。ここで、キャッシュテーブルアクセス部１２において１つのストリーム識別子(S) に対して複数の転送パス(P) が解決される場合には、パス選択処理部１３において、入力されたストリーム識別子(S) 毎にどの転送パス(P) にパケットを転送するかをそれぞれ解決する。
【０１１６】
このように、ストリーム識別子(S) 毎に転送パス(P) を決定することにより、同一のフローに属するパケットを同一転送パスへ転送することができ、このため、エンドに到達するパケットの順序を保証することが可能となる。更に、上記のように、入力されたパケット(D) に対してストリーム識別子(S) を算出し、これに基づき処理することで、１つ１つのフロー毎に転送パス(P) を管理する場合に比べ、エントリ数を大幅に減少することができ、必要となるメモリ容量を削減することが可能となる。
【０１１７】
また、経路解決処理部１１では、入力された宛先ＩＰアドレス(A) によって定まる転送先経路の解決を行う。この解決する転送先経路には転送先が１つであるシングルパスと、転送先の候補が複数存在するマルチパスとがある。
【０１１８】
転送先がシングルパスである場合、経路選択処理部１１は出力装置選択部１４に対して転送パス(P) を出力する。また、転送先がマルチパスである場合、経路選択処理部１１はマルチとなる経路を一意に識別するための情報であるマルチパス識別子(M) をキャッシュテーブルアクセス部１２に対して出力する。
【０１１９】
このマルチパス識別子(M) とストリーム識別子(S) とは、入力されたパケット(D) に対して算出される度に保持され、次のパケット(D) が入力され、改めてこのパケット(D) に対して求められる度に更新される。但し、この保持手段は、キャッシュテーブルアクセス部１２が備えるレジスタ等が考えられるが、本発明による保持手段はこれに限定されるものではなく、発明の趣旨を逸脱しない限り種々変形実施することが可能である。
【０１２０】
また、キャッシュテーブルアクセス部１２は、キャッシュテーブル１２０よりマルチパス識別子(M) とストリーム識別子(S) との組み合わせに対応するキャッシュ転送パス番号(CPN) を読み出し、この読み出したキャッシュ転送パス番号(CPN) をパス選択処理部１３に出力する。これに対して、パス選択処理部１３は、この入力されたキャッシュ転送パス番号(CPN) を暫定的な転送パス番号(PN)として受信する。ここでいう『暫定的な』とは、処理上での概念であり、後続の処理において必要であれば更新されるため、このような表現を用いて説明する。
【０１２１】
図４に、キャッシュテーブル１２０の構成例を示す。図４を参照すると、キャッシュテーブル１２０は、アドレス部にマルチパス識別子(M) とストリーム識別子(S) とを格納し、このマルチパス識別子(M) とストリーム識別子(S) との組み合わせに対応させて、データ部にキャッシュ転送パス番号(CPN) を格納している。
【０１２２】
ここで、キャッシュ転送パス番号(CPN) は、マルチパス識別子(M) 毎に複数用意された転送パス(P) を識別するためのインデックス番号である。従って初期状態では、データ部のキャッシュ転送パス番号(CPN) に「未登録状態」が格納されている。このため、パス選択処理部１３において、暫定的な転送パス番号(PN)として受信したキャッシュ転送パス番号(CPN) が「登録状態」であるか「未登録状態」であるかを識別するための構成を有している。
【０１２３】
この「登録状態」と「未登録状態」とを識別するための構成には、識別用のビットを１ビット設け、パス選択処理部１３がこのビットを判定することで実現しても良いし、また、例えば全ビットが１などの特殊なインデックス番号の時、これを受信したパス選択処理部１３が「未登録状態」と判定するように構成することで実現しても良い。
【０１２４】
次に、パス選択処理部１３に関して詳細に説明する。パス選択処理部１３は、マルチパス識別子(M) とキャッシュ転送パス番号(CPN) とが入力されると、入力されたキャッシュ転送パス番号(CPN) を暫定的な転送パス番号(PN)とし、図５及び図６に示されるようなパス割当テーブル１３０と転送パステーブル１３１とを利用して転送パス(P) を決定する。図５はパス割当テーブル１３０の構成例、図６は転送パステーブル１３１の構成例を示したものである。
【０１２５】
図５を参照すると、パス割当テーブル１３０は、アドレス部のマルチパス識別子(M) に対応させて、データ部において転送禁止ビット列(PX)、割当禁止ビット列(AX)、転送割当パス番号(PA)及び連続割当数(PS)等を管理している。
【０１２６】
また、図６を参照すると、転送パステーブル１３１は、アドレス部のマルチパス識別子(M) と転送パス番号(PN)との組み合わせに対応させて、データ部において割当ストリーム数(PC)、最大ストリーム数(PH)、最大連続割当数(PW)及び転送パス(P) 等を管理している。
【０１２７】
上記の図５及び図６のデータ部に格納された各データは、以下に説明する情報として扱われるものである。
【０１２８】
先ず、図５におけるデータ部に格納された転送禁止ビット列(PX)は、マルチパス識別子(M) と転送パス番号(PN)とで規定される転送パス(P) に対して、この転送パス(P) 毎にパケット転送が「転送禁止状態」であるか否かを表すビット列である。ここでは説明の便宜上、転送禁止ビット列(PX)を８ビットで構成し、これらのビットにおいて、「１」の場合「転送禁止状態」、「０」の場合「転送許可状態」とし、下位からｎ番目のビットが転送パス番号(PN)＝ｎ−１に対応するものとする。
【０１２９】
このように構成された転送禁止ビット列(PX)を用いることで、パス選択処理部１３は、キャッシュテーブルアクセス部１２で解決したキャッシュ転送パス番号(CPN) に対応する転送禁止ビット列(PX)が「転送許可状態」である場合は、キャッシュ転送パス番号(CPN) をそのまま有効な転送パス番号(PN)として扱い、この有効な転送パス番号(PN)に対応する転送パス(P) を出力装置選択部１４へ出力して、パケット転送処理が行われる。これに対して、対応する転送禁止ビット列(PX)が「転送禁止状態」である場合は、転送パス番号(PN)はキャッシュ転送パス番号(CPN) から転送割当パス番号(PA)に変更され、これを有効な転送パス番号(PN)とし、対応する転送パス(P) へパケットが転送される。
【０１３０】
また、割当禁止ビット列(AX)は、マルチパス識別子(M) と転送パス番号(PN)とで規定される転送パス(P) に対して、この転送パス(P) 毎に新たにストリームを割り当てて良いか否かを示すビット列である。ここでは説明の便宜上、上述した転送禁止ビット列(PX)と同様に、８ビットで構成し、各ビットにおいて「１」の場合「割当禁止状態」、「０」の場合「割当許可状態」とし、下位からｎビット目を転送パス番号(PN)＝ｎ−１に対応するものとする。
【０１３１】
従って、暫定的な転送パス番号(PN)が「未登録状態」である場合、もしくは、暫定的な転送パス番号(PN)に対応する転送禁止ビット列(PX)が「転送禁止状態」である場合は、パス選択処理部１３は、転送割当パス番号(PA)の選択処理を行う。
【０１３２】
また、転送割当パス番号(PA)は、転送先の決まっていない、もしくは、転送先を変更する必要のあるストリームに対して、次に改めて割り当てるための転送パス番号(PN)と同一の情報により構成される。従って、この転送割当パス番号(PA)は、ストリームに対して割り当てられる度に、変更する必要があるか否かを判定し、必要があれば変更され、パス割当テーブル１３０に格納される。この転送割当パス番号(PA)の変更処理は、以下で図８を用いて詳細に説明する。
【０１３３】
また、連続割当数(PS)は、現在、転送パス番号(PN)にいくつのストリームを連続して割り当てたかを示すものである。従って、パス選択処理部１３によりストリームに対して転送割当パス番号(PA)が割り当てられる度に、転送割当パス番号(PA)と同一の転送パス番号(PN)と対応付けられた連続割当数(PS)が１ずつ加算される。
【０１３４】
更に、図６におけるデータ部に格納された割当ストリーム数(PC)は、マルチパス識別子(M) と転送パス番号(PN)とにより規定される転送パス(P) に対して、実際に、いくつのストリームが割り当てられているかを示すものである。従って、実際に割り当てられているストリームの数が変化するに伴い、この割当ストリーム数(PC)も更新される。
【０１３５】
また、最大ストリーム数(PH)は、マルチパス識別子(M) と転送パス番号(PN)とで規定される転送パス(P) に対して、各転送パス(P) が最大いくつのストリームを受け持つことができるかを示すものである。
【０１３６】
また、最大連続割当数(PW)は、マルチパス識別子(M) と転送パス番号(PN)とで規定される転送パス(P) に対して、連続していくつのストリームを割り当てることが可能であるかを示すものである。
【０１３７】
従って、パス選択処理部１３は、マルチパス識別子(M) とキャッシュ転送パス番号(CPN）とが入力されると、パス割当テーブル１３０よりマルチパス識別子(M) に対応する転送禁止ビット列(PX)を読み出し、更に必要に応じて割当禁止ビット列(AX)、転送割当パス番号(PA)及び連続割当数(PS)を取得する。
【０１３８】
このようなデータを基に、パス選択処理部１３は、パケット(D) に対して転送パス番号(PN)を選択し、負荷分散比に従った割当処理を実現する。
【０１３９】
また、上記したキャッシュテーブル１２０、パス割当テーブル１３０及び転送パステーブル１３１は、必要に応じて設定、及び設定の変更がなされるものである。この設定、及び設定の変更を実行するための手段としては、ユーザによりシステムを介して実施される形態やシステム自体が自動的にその必要を検出し、実施する形態等が考えられるが、本発明においては、特に限定されるものではなく、本発明の趣旨を逸ー脱しない限り種々変形実施することが可能である。
【０１４０】
更に、図３における出力装置選択部１４は、転送パス(P) とパケット(D) とを受信すると、転送パス(P) から転送するプロトコル終端装置３を決定し、出力先選択信号を出力することにより、プロトコル終端装置３に転送パス(P) とパケット(D) とを出力する。
【０１４１】
この動作における転送パス(P) は、転送先を決定し、転送先にパケットを転送するために必要となる情報である。
【０１４２】
《第１の実施の形態の動作》
以下に、上記した第１の実施の形態によるデータグラム転送装置４の動作について詳細に説明する。
【０１４３】
［キャッシュ転送パス番号(CPN) が「未登録状態」である場合］
先ず、キャッシュテーブルアクセス部１２よりパス選択処理部１３に入力されたキャッシュ転送パス番号(CPN) が「未登録状態」を示すビットであった場合に実行される動作について説明する。
【０１４４】
（割当変更処理）
この動作では、キャッシュテーブルアクセス部１２より入力されたキャッシュ転送パス番号(CPN) が「未登録状態」であるため、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３０より新たに割り当てる転送割当パス番号(PA)を取得し、この取得した転送割当パス番号(PA)を有効な転送パス番号(PN)とする。
【０１４５】
（転送パス出力処理）
このように新たに有効な転送パス番号(PN)として転送割当パス番号(PA)を割り当てるため、割り当て後、パス選択処理部１３は、この有効な転送パス番号(PN)と経路解決処理部１１より入力されたマルチパス識別子(M) とを基に転送パステーブル１３１より対応する転送パス(P) を読み出して出力装置選択部１４に出力する。
【０１４６】
（転送処理）
これ対し、出力装置選択部１４は、この入力された転送パス(P) に従って転送を実行する。
【０１４７】
（転送割当パス番号更新処理）
また、パス選択処理部１３において、負荷分散比に従った転送割当処理を実行するために、次に割り当てるようにパス割当テーブル１３０に格納されている転送割当パス番号(PA)を負荷分散比に従って決定し、パス割当テーブル１３０を更新する。
【０１４８】
従って、パス選択処理部１３は、転送パステーブル１３１において、該当するマルチパス識別子(M) と転送パス番号(PN)とに対応する割当ストリーム数(PC)を１加算して格納する。
【０１４９】
このように更新された転送パステーブル１３１を基に、パス選択処理部１３は、パス割当テーブル１３０における転送禁止ビット列(PX)と割当禁止ビット列(AX)とを改めて求めて格納することで、現在の割当状況を反映したパス割当テーブル１３０と転送パステーブル１３１とを求める。
【０１５０】
その後、パス選択処理部１３は、この改めて求めたパス割当テーブル１３０とパス割当テーブル１３０とを基に、パス割当テーブル１３０における転送割当パス番号(PA)を再計算し格納する。
【０１５１】
（キャッシュテーブル更新処理）
更に、パス選択処理部１３は、キャッシュテーブル１２０が格納する転送パス番号(PN)を更新するために、キャッシュテーブルアクセス部１２に対し、決定した転送パス番号(PN)を更新パス番号(PU)として出力する。また、この更新パス番号(PU)を受信したキャッシュテーブルアクセス部１２は、受信した更新パス番号(PU)をキャッシュ転送パス番号(CPN) とし、キャッシュテーブル１２０に格納されたマルチパス識別子(M) とストリーム識別子(S) とで規定される転送パス番号データにおける対応するキャッシュ転送パス番号を受信したキャッシュ転送パス番号(CPN) に更新する。
【０１５２】
［キャッシュ転送パス番号(CPN) が「登録状態」である場合］
次に、上記した場合とは対称的に、キャッシュテーブルアクセス部１２よりパス選択処理部１３に入力されたキャッシュ転送パス番号(CPN) が「登録状態」であった場合に実行する動作について説明する。
【０１５３】
（転送禁止ビット列判定処理）
この動作では、キャッシュテーブルアクセス部１２より入力されたキャッシュ転送パス番号(CPN) が「登録状態」であるため、パス選択処理部１３は、マルチパス識別子(S) を基にパス割当テーブル１３０を参照して対応する転送禁止ビット列(PX)を読み出し、この読み出した転送禁止ビット列(PX)上の上記のキャッシュ転送パス番号(CPN) に対応するビットが「転送禁止状態」であるか否かを判定する。
【０１５４】
｛転送禁止ビット列(PX)が「転送禁止状態」である場合｝
ここで、この判定の結果、転送禁止ビット列(PX)上の対応するビットが「転送禁止状態」であった場合、以下のような処理が行われる。
【０１５５】
（転送禁止ビット列及び割当禁止ビット列再計算処理）
先ず、パス選択処理部１３は、経路解決処理部１１より入力されたマルチパス識別子(M) とキャッシュテーブルアクセス部１２より入力された暫定的な転送パス番号(PN)とを基に、転送パステーブル１３１を参照し、対応する割当ストリーム数(PC)を１減算して格納する。
【０１５６】
このように新しく得られた転送パステーブル１３１を基に、パス選択処理部１３は、パス割当テーブル１３０における転送禁止ビット列(PX)と割当禁止ビット列(AX)とを改めて算出して格納する。
【０１５７】
（割当変更処理、転送パス出力処理、転送処理）
また、パス選択処理部１３は、上記と同様に、入力された転送パス番号(CPN) を転送割当パス番号(PA)に更新することで、有効な転送パス番号(PN)を特定するため、マルチパス識別子(M) を基にパス割当テーブル１３０より新たに割り当てる転送割当パス番号(PA)を取得し、この取得した転送割当パス番号(PA)を有効な転送パス番号(PN)とし、また、このように新たに転送パス番号(PN)として転送割当パス番号(PA)を割り当てることにより、割り当て後、パス選択処理部１３は、この有効な転送パス番号(PN)と経路解決処理部１１より入力されたマルチパス識別子(M) とを基に転送パステーブル１３１より対応する転送パス(P) を読み出して出力装置選択部１４に出力し、これに対し、出力装置選択部１４は、この入力された転送パス(P) に従って転送を実行する。
【０１５８】
（転送割当パス番号更新処理）
更に、パス選択処理部１３は、上記と同様に、転送パステーブル１３１において、該当するマルチパス識別子(M) と転送パス番号(PN)との組み合わせに対応する割当ストリーム数(PC)を１加算して格納し、このように更新された転送パステーブル１３１を基に、パス選択処理部１３は、パス割当テーブル１３０における転送禁止ビット列(PX)と割当禁止ビット列(AX)とを改めて求めて格納することで、現在の割当状況を反映したパス割当テーブル１３０と転送パステーブル１３１とを求め、その後、パス選択処理部１３は、この改めて求めたパス割当テーブル１３０とパス割当テーブル１３０とを基に、パス割当テーブル１３０における転送割当パス番号(PA)を再計算し格納する。
【０１５９】
（キャッシュテーブル更新処理）
更にパス選択処理部１３は、上記と同様に、キャッシュテーブル１２０が格納する転送パス番号(PN)を更新するために、キャッシュテーブルアクセス部１２に対し、決定した転送パス番号(PN)を更新パス番号(PU)として出力する。従って、この更新パス番号(PU)を受信したキャッシュテーブルアクセス部１２は、受信した更新パス番号(PU)を転送パス番号(PN)とし、キャッシュテーブル１２０に格納されたマルチパス識別子(M) とストリーム識別子(S) とで規定される転送パス番号データにおける対応する転送パス番号を受信した転送パス番号(PN)に更新する。
【０１６０】
｛転送禁止ビット列(PX)が「転送許可状態」である場合｝
また、上記の転送禁止ビット列(PX)判定処理において、転送禁止ビット列(PX)上の対応するビットが「転送許可状態」であった場合には、以下のような処理が行われる。
【０１６１】
（転送パス出力処理、転送処理）
この場合、パス選択処理部１３は、上記と同様に、パス選択処理部１３は、キャッシュテーブルアクセス部１２より入力されたキャッシュ転送パス番号(CPN) を有効である転送パス番号(PN)として設定し、この有効な転送パス番号(PN)と経路解決処理部１１より入力されたマルチパス識別子(M) とを基に、転送パステーブル１３１より転送パス(P) を読み出し、出力装置選択部１４に出力し、これに対し、出力装置選択部１４は、この入力された転送パス(P) に従って転送を実行する。
【０１６２】
〈全体の動作〉
以下、上記した各動作を含めて、第１の実施の形態による全体の動作を図７に示すフローチャートを用いて詳細に説明する。
【０１６３】
図７は、本発明の転送先決定処理装置１によるパケットの転送先決定処理の動作の流れを示すフローチャートである。
【０１６４】
図７を参照すると、先ず、本発明によるデータグラム転送装置４にパケットが入力されると（ステップＳ１）、転送先決定処理装置１はヘッダ抽出処理部１０において、パケットのヘッダ部よりストリーム識別子(S) と宛先ＩＰアドレス(A) とを抽出し、ストリーム識別子(S) をキャッシュテーブルアクセス部１２へ、宛先ＩＰアドレス(A) を経路解決処理部１１へ出力し、経路解決処理部１１において転送先経路を解決する（ステップＳ２）。
【０１６５】
次に、ステップＳ２で解決された転送先経路がマルチパスを対象としたものであるか否かを判断し（ステップＳ３）、シングルパスである場合（ステップＳ３のＮｏ）、解決された転送先経路である転送パス(P) を出力装置選択部１４に出力し、パケット転送を実行する（ステップＳ１６）。
【０１６６】
これに対し、ステップＳ２で解決された転送先経路がマルチパスを対象としたものである場合（ステップＳ３のＹｅｓ）、経路解決処理部１１は、解決したマルチパス識別子(M) をキャッシュテーブルアクセス部１２とパス選択処理部１３とに出力し、キャッシュテーブルアクセス部１２において、このマルチパス識別子(M) とヘッダ抽出処理部１０より入力されたストリーム識別子(S) とを用いて、対応するキャッシュ転送パス番号(CPN) をキャッシュテーブル１２０より特定する（ステップＳ４）。
【０１６７】
上記のようにキャッシュテーブルアクセス部１２よりキャッシュ転送パス番号(CPN) が入力されると、パス選択処理部１３は、この入力されたキャッシュ転送パス番号(CPN) を暫定的な転送パス番号(PN)とし、この暫定的な転送パス番号(PN)が「未登録状態」とされているか否かを判定する（ステップＳ５）。この判定では、上述したように、転送パス番号(PN)に設けられた「未登録状態」を示すビットにより判定するか、若しくは、全ビットが「１」で構成されているような特殊なビットにより判定する方法等が考えられる。
【０１６８】
ここで、ステップＳ５において、転送パス番号(PN)が「登録状態」を示している場合（ステップＳ５のＮｏ）、パス選択処理部１３は、入力されたマルチパス識別子(M) を基にパス割当テーブル１３０を参照し、転送禁止ビット列(PX)を読み出す（ステップＳ６）。
【０１６９】
次に、この読み出した転送禁止ビット列(PX)上の上記の暫定的な転送パス番号(PN)に対応するビットが「転送禁止状態」を示す状態ビットであるか否かを判定する（ステップＳ７）。
【０１７０】
このステップＳ７の判定の結果、転送禁止ビット列(PX)上の対応するビットが「転送許可状態」である場合（ステップＳ７のＮｏ）、パス選択処理部１３は、暫定的な転送パス番号(PN)を有効な転送パス番号(PN)とし、マルチパス識別子(M) とこの転送パス番号(PN)とを用いて対応する転送パス(P) を特定し、この転送パス(P) を出力装置選択処理部１４に出力する（ステップＳ１５）。その後、出力装置選択処理部１４において、入力された転送パス(P) に従い、パケットの転送を実行する（ステップＳ１６）。
【０１７１】
また、ステップＳ７の判定の結果、転送禁止ビット列(PX)上の対応するビットが「転送禁止状態」である場合（ステップＳ７のＹｅｓ）、パス選択処理部１３は、マルチパス識別子(M) と暫定的な転送パス番号(PN)との組み合わせを基に、転送パステーブル１３１より割当ストリーム数(PC)を参照し、この値から１を減算して再格納する（ステップＳ８）。
【０１７２】
次に、パス選択処理部１３は、ステップＳ８で更新された転送パステーブル１３１に格納されている割当ストリーム数(PC)を基に、パス割当テーブル１３０上の転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算し、この改めて求められた転送禁止ビット列(PX)と割当禁止ビット列(AX)とをパス割当テーブル１３０に再格納する（ステップＳ９）。
【０１７３】
また、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３０より転送割当パス番号(PA)を読み出し、この値を有効な転送パス番号(PN)とする（ステップＳ１０）。ここで、暫定的に転送パス番号(PN)とされていたキャッシュ転送パス番号(CPN) は破棄され、転送パス番号(PN)は転送割当パス番号(PA)に置き換えられる。
【０１７４】
その後、パス選択処理部１３は、転送パステーブル１３１上の有効となった転送パス番号(PN)に対応する割当ストリーム数(PC)を１加算し、再格納する（ステップＳ１１）。
【０１７５】
更に、パス選択処理部１３は、ステップＳ１１において改めて得られた転送パステーブル１３１を基に、転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算し、この値によりパス割当テーブル１３０を更新する（ステップＳ１２）。
【０１７６】
その後、パス選択処理部１３は、マルチパス識別子(M) を用いて割当禁止ビット列(AX)を読み出し、この割当禁止ビット列(AX)を用いて次の転送割当パス番号(PA)を計算し、パス割当テーブル１３０に格納する（ステップＳ１３）。ここで、この次の転送割当パス番号(PA)を計算する方法は、以下で図８を用いて詳細に説明する。
【０１７７】
また、パス選択処理部１３は、ステップＳ４で読み出したキャッシュテーブル１２０上のキャッシュ転送パス番号(CPN) を、ステップＳ１０で改めて割り当てた転送パス番号(PN)に更新するために、この改めて割り当てた転送パス番号(PN)を更新パス番号(PU)としてキャッシュテーブルアクセス部１２に出力し、これに対してキャッシュテーブルアクセス部１２は、レジスタ等に保持しているマルチパス識別子(M) とストリーム識別子(S) とを基に、パス選択処理部１３より入力された更新パス番号(PU)をデータ部における対応するキャッシュ転送パス番号(CPN) に格納して更新する（ステップＳ１４）。
【０１７８】
その後、パス選択処理部１３は、上述したように、有効な転送パス番号(PN)に対応する転送パス(P) を出力装置選択処理部１４に出力し（ステップＳ１５）、これに対し、出力装置選択部１４は、入力された転送パス(P) を基に、パケットの転送を実行する（ステップＳ１６）。
【０１７９】
また、ステップＳ５における判定の結果、転送パス番号(PN)が「未登録状態」である場合（ステップＳ５のＹｅｓ）、ステップＳ１０に移行し、上記したように、パス選択処理部１３において、マルチパス識別子(M) を基にパス割当テーブル１３０より転送割当パス番号(PA)を読み出し、この値を有効な転送パス番号(PN)とし（ステップＳ１０）、その後、転送パステーブル１３１上の有効となった転送パス番号(PN)に対応する割当ストリーム数(PC)を１加算し、再格納する（ステップＳ１１）。
【０１８０】
更に、パス選択処理部１３は、ステップＳ１１において改めて得られた転送パステーブル１３１を基に、転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算し、この値によりパス割当テーブル１３０を更新し（ステップＳ１２）、その後、マルチパス識別子(M) を用いて割当禁止ビット列(AX)を読み出し、この割当禁止ビット列(AX)を用いて次の転送割当パス番号(PA)を計算し、パス割当テーブル１３０に格納する（ステップＳ１３）。
【０１８１】
また、パス選択処理部１３は、ステップＳ４で読み出したキャッシュテーブル１２０上のキャッシュ転送パス番号(CPN) を、ステップＳ１０で改めて割り当てた転送パス番号(PN)に更新するために、この改めて割り当てた転送パス番号(PN)を更新パス番号(PU)としてキャッシュテーブルアクセス部１２に出力し、これに対してキャッシュテーブルアクセス部１２は、レジスタ等に保持しているマルチパス識別子(M) とストリーム識別子(S) とを基に、パス選択処理部１３より入力された更新パス番号(PU)をデータ部における対応するキャッシュ転送パス番号(CPN) に格納して更新する（ステップＳ１４）。
【０１８２】
その後、パス選択処理部１３は、上述したように、有効な転送パス番号(PN)に対応する転送パス(P) を出力装置選択処理部１４に出力し（ステップＳ１５）、これに対し、出力装置選択部１４は、入力された転送パス(P) を基に、パケットの転送を実行する（ステップＳ１６）。
【０１８３】
次に、図７で示したフローチャートにおけるステップＳ１３の次の転送割当パス番号(PA)を計算し、パス割当テーブル１３０に格納する転送割当パス番号(PA)再計算処理の動作を、図８に示すフローチャートを用いて詳細に説明する。
【０１８４】
図８を参照すると、パス選択処理部１３は、転送パステーブル１３１上における図７のステップＳ１０で取得した転送割当パス番号(PA)に対応する連続割当数(PS)を１加算して更新する（ステップＳ１０１）。
【０１８５】
次に、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３０より連続割当数(PS)を特定し、また、図７のステップＳ１０で取得した転送割当パス番号(PA)とマルチパス識別子(M) とを基に転送パステーブル１３１より最大連続割当数(PW)を特定する（ステップＳ１０２）。
【０１８６】
その後、ステップＳ１０１において特定した連続割当数(PS)と最大連続割当数(PW)とを比較する（ステップＳ１０３）。
【０１８７】
ステップＳ１０３の比較の結果、連続割当数(PS)が最大連続割当数(PW)より小さい値である場合（ステップＳ１０３のＮｏ）、パス選択処理部１３は、転送割当パス番号(PA)を変更せずに、図７のステップＳ１３を終了する。
【０１８８】
これに対して、ステップＳ１０３の比較の結果、連続割当数(PS)が最大連続割当数(PW)の値以上である場合（ステップＳ１０３のＹｅｓ）、パス選択処理部１３は、先ず、図７のステップＳ１０で取得した転送割当パス番号(PA)の値をＮとしてレジスタ等に保持する（ステップＳ１０４）。
【０１８９】
その後、パス選択処理部１３は、転送割当パス番号(PA)の値に１を加算し（ステップＳ１０５）、得られた値が転送パス番号(PN)の最大値を超えているか否かを判定する（ステップＳ１０６）。
【０１９０】
ステップＳ１０６において、転送パス番号(PN)の最大値を超えている場合（ステップＳ１０６のＹｅｓ）、転送割当パス番号(PA)の値を０に更新し（ステップＳ１０７）、ステップＳ１０８に移行する。
【０１９１】
また、ステップＳ１０６において、転送パス番号(PN)の最大値を超えていない場合（ステップＳ１０６のＮｏ）、そのままステップＳ１０８に移行する。
【０１９２】
ステップＳ１０８では、マルチパス識別子(M) を基に読み出した割当禁止ビット列(AX)を用いて対象となっている転送割当パス番号(PA)に対応するビットに「割当禁止状態」を示す状態ビットが格納されているか否かを判定する（ステップＳ１０８）。
【０１９３】
この判定において、対応する割当禁止ビット列(AX)上のビットが「割当許可状態」である場合（ステップＳ１０８のＮｏ）、ステップＳ１０５で１加算して得られた値を有効な転送割当パス番号(PA)とし、パス割当テーブル１３０に格納する（ステップＳ１０９）。
【０１９４】
その後、ステップＳ１０１で１加算した連続割当数(PS)を０と更新し（ステップＳ１１０）、図７のステップＳ１３を終了する。
【０１９５】
これに対して、ステップＳ１０８の判定において、対応する割当禁止ビット列(AX)上のビットが「割当禁止状態」である場合（ステップＳ１０８のＹｅｓ）、現在、転送割当パス番号(PA)と設定されている値と、ステップＳ１０４で格納したＮ値とが等しいか否かを判定し（ステップＳ１１１）、等しくない場合（ステップＳ１１１のＮｏ）、ステップＳ１０５に戻り、転送割当パス番号(PA)の値に、更に１を加算して（ステップＳ１０５）、以降、同様の動作を実行する（ステップＳ１０６以降）。
【０１９６】
これに対して、ステップＳ１１１の判定の結果、現在の転送割当パス番号(PA)の値とＮ値とが等しい場合（ステップＳ１１１のＹｅｓ）、転送割当パス番号(PA)の値をステップＳ１０４で格納したＮ値に１を加算した値に設定する（ステップＳ１１２）。これは、転送割当パス番号(PA)をＮ＋１とすることにより、割当禁止ビット列(AX)が全て「割当禁止状態」となっている場合において、全てのストリームが転送パス番号(PN)＝「Ｎ」に割り当てられることを回避するためである。
【０１９７】
その後、ステップＳ１１２で算出したＮ＋１値が転送パス番号(PN)の最大値を超えているか否かを判定する（ステップＳ１１３）。ここで、転送パス番号(PN)の最大値を超えていない場合（ステップＳ１１３のＮｏ）、そのまま転送割当パス番号(PA)を「Ｎ＋１」とし、図７のステップＳ１３を終了する。
【０１９８】
これに対して、転送パス番号(PN)の最大値を超えている場合（ステップＳ１１３のＹｅｓ）、転送割当パス番号(PA)の値を「０」に設定し（ステップＳ１１４）、その後、図７のステップＳ１３を終了する。
【０１９９】
このように動作することにより、図７のステップＳ１３でパス割当テーブル１３０に格納される転送割当パス番号(PA)の値は、転送パス番号(PN)の値の順に従い、且つ最大連続割当数(PW)の比に従って格納される。
【０２００】
しかしながら、ステップＳ１１１における転送割当パス番号(PA)の設定では、上記のように元の値に戻す方法や、ほかの例としては、最も割当ストリーム数(PC)の少ない転送パス番号(PN)を特定し、この値を転送割当パス番号(PA)とする方法等が考えられるが、本発明では、上記の方法に限定されるものではなく、本発明の趣旨を逸脱しない限り種々変形実施することが可能である。
【０２０１】
このように、転送割当パス番号(PA)の更新処理は、ハード回路を利用して数クロックで実現可能であるため、データグラム転送装置４内に実装し、動作させても、処理速度が目立って遅くなるものではない。
【０２０２】
［割当ストリーム数(PC)が変更された場合］
次に、割当ストリーム数(PC)の変更が生じた場合におけるパス選択処理部１３の動作について詳細に説明する。
【０２０３】
パス選択処理部１３は、割当ストリーム数(PC)に変更があった場合、変更のあった転送パス番号(PN)の割当ストリーム数(PC)と最大ストリーム数(PH)との比較を行う。
【０２０４】
この比較には、転送禁止ビット列(PX)を設定するための第１の比較と、割当禁止ビット列(AX)を設定するための第２の比較とがある。
【０２０５】
（第１の比較）
従って、転送禁止ビット列(PX)を設定するための第１の比較において、比較の結果、割当ストリーム数(PC)が最大ストリーム数(PH)より大きい場合は、パス割当テーブル１３０の転送パス番号(PN)に対応する転送禁止ビット列(PX)を「転送禁止状態」にする。
【０２０６】
また、第１の比較の結果、割当ストリーム数(PC)が最大ストリーム数(PH)以下の場合は、パス割当テーブル１３０の転送パス番号(PN)に対応する転送禁止ビット列(PX)を「転送許可状態」にする。
【０２０７】
（第２の比較）
更に、割当禁止ビット列(AX)を設定するための第２の比較においては、比較の結果、割当ストリーム数(PC)が最大ストリーム数(PH)以上である場合は、パス割当テーブル１３０の転送パス番号(PN)に対応する割当禁止ビット列(AX)を「割当禁止状態」に更新する。
【０２０８】
また、第２の比較の結果、割当ストリーム数(PC)が最大ストリーム数(PH)より小さい場合は、パス割当テーブル１３０の転送パス番号(PN)に対応する割当禁止ビット列(AX)を「割当許可状態」に更新する。
【０２０９】
ここで、パス選択処理部１３は、転送パス番号(PN)にキャッシュ転送パス番号(CPN) では無く、転送割当パス番号(PA)が割り当てられた場合、更に、パス割当テーブル１３０より読み出した連続割当数(PS)に１加算し、転送パステーブル１３１の最大連続割当数(PW)と連続割当数(PS)との比較を第３の比較として行う。
【０２１０】
（第３の比較）
この第３の比較の結果、連続割当数(PS)が最大連続割当数(PW)より小さく、且つ、転送パス番号(PN)に対応する割当禁止ビット列(AX)の更新処理後の値が「割当許可状態」に変化している場合は、１加算されて更新された連続割当数(PS)をパス割当テーブル１３０に格納する。
【０２１１】
また、第３の比較の結果、連続割当数(PS)が最大連続割当数(PW)より大きい場合、若しくは、転送パス番号(PN)に対応する割当禁止ビット列(AX)の更新処理後の値が「割当禁止状態」に変化している場合は、転送割当パス番号(PA)を図８に示すような動作により更新し、同じく連続割当数(PS)を「０」に更新する。
【０２１２】
〈具体例〉
次に、図９〜図１４を用いて、本発明の第１の実施の形態における転送先決定処理部１の動作例を詳細に説明する。ここでは説明を簡略化するため、マルチパス識別子(M) が「０」の場合のみを対象に説明する。
【０２１３】
データグラム転送装置４の立ち上げ時に、パス割当テーブル１３０と転送パステーブル１３１とのマルチパス識別子(M) が「０」であるエントリに対して、図９及び図１０に示すようなデータが設定されていたと仮定する。この設定では、経路解決処理部１１において、マルチパス識別子(M) が「０」であるストリームが解決されるパケット(PKT0)が、２：３：５：５：１の比率でパス０−０、パス０−１、パス０−２、パス０−３、パス０−４に対して負荷分散が実施される。
【０２１４】
従って、最初にマルチパス識別子(M) が「０」であるパケット１(D0)が転送先決定処理装置１に入力された場合、パス選択処理部１３は、転送パス番号(PN)を転送割当パス番号(PA)として格納されている「０」とする。この時、パス割当テーブル１３０に格納された連続割当数(PS)は「１」に更新されるが、最大連続割当数(PW)が「２」より小さいため、転送割当パス番号(PA)は「０」のまま更新されない。
【０２１５】
その後、マルチパス識別子(M) が「０」であり、上記のパケット(D0)とは別のフローを形成するパケット(D1)が到着した場合において、キャッシュテーブルアクセス部１２で読み出した転送パス番号(P) が「未登録状態」であったと仮定すると、パス選択処理部１３は、同様に転送パス番号(PN)に転送割当パス番号(PA)＝「０」を設定する。
【０２１６】
これにより、パス選択テーブル１３０における連続割当数(PS)が「２」に更新され、この値が最大連続割当数(PW)の値「２」と一致するようになる。従って、パス選択処理部１３は、転送割当パス番号(PA)を「１」に更新すると共に、連続割当数(PS)を「０」にクリアする。
【０２１７】
その後、更にマルチパス識別子(M) が「０」であるパケット(D2)が到着し、キャッシュテーブルアクセス部１２で読み出した転送パス番号(P) が「未登録状態」である場合、転送パス番号(PN)は、転送割当パス番号(PA)＝「１」に割り当てられる。
【０２１８】
これにより、連続割当数(PS)は「１」に更新される。ここで、連続割当数(PS)＝「１」が転送パス番号(PN)＝「１」に対応する最大連続割当数(PW)の値「３」より小さいため、転送割当パス番号(PA)は「１」のまま更新されない。
【０２１９】
以降、新たに到着したマルチパス識別子(M) が「０」のフローに属するパケット(D) に対しては、同様の処理が行われ、転送パス(P) が割り当てられる。
【０２２０】
従って、以上の処理を繰り返すことにより、マルチパス識別子(M) が解決されるパケット(D) で、キャッシュテーブル１２０に転送パス番号(PN)が登録されていないストリーム識別子(S) のパケットが到着すると、パス０−０に２回、パス０−１に３回、パス０−２に５回、パス０−３に５回、パス０−４に１回の比で転送パス(P) の割り当てが実行される。
【０２２１】
この処理において、パス選択処理部１３は、割当ストリーム数(PC)を、ストリームに対してパスが割り当てられる度に１ずつインクリメントしている。
【０２２２】
従って、転送パス番号(PN)＝「０」に対する割当ストリーム数(PC)が「２×２５６」に到達すると最大ストリーム数(PH)の値「２×２５６」と同一値になるため、転送パス番号(PN)＝「０」に対する割当禁止ビット列(AX)が「割当禁止状態（＝1 ）」に設定され、以後、パス選択処理部１３による転送パス番号(PN)＝「０」への割り当ては実施されなくなる。
【０２２３】
同様に他の転送パス番号(PN)に関しても、割当ストリーム数(PC)が最大ストリーム数(PH)に到達すると割当禁止ビット列(AX)が「割当禁止状態」に設定され、この割当禁止ビット列(AX)に対応する転送パス番号(PN)への割り当てが実施されなくなる。
【０２２４】
以上のような処理を行うことにより、図１１及び図１２に示すように、最終的には転送パステーブル１３１において、各転送パス(P) への割当ストリーム数(PC)と最大ストリーム数（PH）とが一致し、パス割当テーブル１３０における割当禁止ビット列(AX)の全ビットが割当禁止状態（＝「１」）となる。
【０２２５】
次に、パス割当テーブル１３０及び転送パステーブル１３１が図１１及び図１２の状態から負荷分散の設定比を変更する場合に関して説明する。
【０２２６】
ここでは、パス割当テーブル１３０及び転送パステーブル１３１に関して、図１１及び図１２のように設定されたの状態から図１３及び図１４に示されるようなデータ設定の変更が行われたとする。この設定の変更では、パス０−３への割り当てを削除し、新たにパス０−５への割り当てを追加している。また、各パスへの割り当て比は、パス０−０、パス０−１、パス０−２、パス０−４、パス０−５の順に、４：３：３：４：１の比で負荷分散を実施する。
【０２２７】
従って、設定の変更の直前までにおけるパス０−２に対応する割当ストリーム数(PC)は、「５×２５６」であるが、「３×２５６」まで減少させる必要がある。
【０２２８】
また、パス０−３に対応する割当ストリーム数(PC)は、「５×２５６」として割り当てられているが、このストリームは全て他の転送パスに振り分ける必要がある。
【０２２９】
従って、転送パス番号(PN)＝「２」と転送パス番号(PN)＝「３」とに関しては、『割当ストリーム数(PC)＞最大ストリーム数(PH)』の関係が成り立つ。このため、パス割当テーブル１３０に格納されている転送禁止ビット列(PX)を「転送禁止状態」に設定する。これにより、転送パス番号(PN)＝「２」及び転送パス番号(PN)＝「３」に割り当てられていたパケットが到着した場合、パス選択処理部１３は、このパケットに関する転送パス番号(PN)を暫定的に割り当てられたキャッシュ転送パス番号(CPN) から転送割当パス番号(PA)に変更する。
【０２３０】
その後、転送パス番号(PN)＝「２」の転送禁止ビット列(PX)は、割当ストリーム数(PC)が最大ストリーム数(PH)の「３×２５６」まで減少することにより、「割当ストリーム数(PC)≦最大ストリーム数(PH)」の関係が成り立つようになる。従って、この関係が成立次第、「転送禁止状態」より「転送許可状態」に設定が変更される。
【０２３１】
また、パス０−０、パス０−４、パス０−５はそれぞれ、「２×２５６」、「３×２５６」、「１×２５６」のフロー数分だけ割り当てを増加する必要がある。よって、最大連続割当数(PW)をそれぞれ２、３、１に設定することにより、パス０−２、パス０−３の割り当てられていたパスが、パス０−０、パス０−４、パス０−５に２：３：１の比で再割り当てされる。
【０２３２】
《第１の実施の形態による効果》
従って、以上のような構成を有することにより、本発明は、以下に述べるような効果を奏することが可能となる。
【０２３３】
先ず、第１の効果は、転送パスの追加・削除、もしくは、設定比の変更が発生した場合に、本発明による動作により、最小限のパケットのみを設定変更することが可能であり、劣化率を最小限に抑えたパケット転送が実現できることである。
【０２３４】
その理由としては、キャッシュテーブルを利用してストリーム毎の転送パスを個別に設定することが可能なためである。
【０２３５】
また、第２の効果は、転送パスの追加・削除、もしくは、設定比の変更が発生した場合に、設定の反映を高速に実行できることである。
【０２３６】
その理由としては、転送パス毎の転送禁止状態を判別する手段を有することにより、更新に時間のかかるキャッシュテーブルを直接更新することなく、パス選択処理部の管理するテーブルのみを設定変更すれば良いためである。
【０２３７】
また、第３の効果は、設定された分散比に従って転送パスの割り当て処理を、少ないメモリアクセスと簡易なハードウエア回路による実装が可能なことである。
【０２３８】
その理由は、転送パスの割り当てを、以下に述べる２つの手順により実現するためである。先ず、第１の手順は、割当ストリーム数の変化した転送パスに対応する割当禁止ビット列を更新し、この更新された割当禁止ビット列を基に割当変更判断を実施する手順である。これにより、割当変更処理において、１パケット処理あたり、キャッシュ転送パス番号と転送割当パス番号との最大２つの転送パス番号のみが対象となる。また、第２の手順は、転送割当パス番号の更新を、割当禁止ビット列を基に、転送パス番号の順番に従い、転送パステーブルの最大ストリーム数の比に従って実現する手順である。この２つの手順は、共に少ないオーバヘッドにより処理され、且つ簡易な構成で実現することができ、更にメモリ参照においてメモリ・インタフェースに大きなビット幅を必要としないため、高速に処理、実現することが可能である。
【０２３９】
《第２の実施の形態の構成》
また、第２の実施の形態では、パス選択処理部１３における転送パス(P) の選択方法に関し、第１の実施の形態と別手段を例示する。
【０２４０】
第１の実施の形態では、マルチパス識別子(M) 毎に区分されている転送パス番号(PN)に対して転送パス(P) を割り当てるように構成しているため、データグラム転送装置４が受信したパケットに対して転送パス(P) を割り当てる際には、パス選択処理部１３において、マルチパス識別子(M) と転送パス番号(PN)とを参照し、このマルチパス識別子(M) に対応する転送禁止ビット列(PX)により転送が許可され、且つ割当禁止ビット列(AX)により割り当てが許可されている転送パス番号(PN)に対して、最大ストリーム数(PH)を超えないように、最大連続割当数(PW)の比に従って割り当てが行われていた。
【０２４１】
これに対して、第２の実施の形態では、データグラム中継装置４に接続された物理リンクを個々に識別するためのチャネル識別子(C) をマルチパス識別子(M) と転送パス番号(P) とに対応させてチャネルパステーブル１３４上で管理し、更に、チャネル識別子(C) に対応する転送パス(P) 上に障害が発生しているか否かを示す転送パス状態ビット列(PD)をパス割当テーブル１３２上でマルチパス識別子(M) と対応させて管理している。
【０２４２】
また、第２の実施の形態では、あるマルチパス識別子(M) で管理されている転送パス(P) のどこかに障害が発生した場合、転送パス番号(P) に対する転送が可能であるか否かを判定する転送禁止判定において、転送禁止ビット列(PX)の替わりに転送パス状態ビット列(PD)を参照し、更に、転送パス(P) の割当処理において、割当禁止ビット列(AX)の替わりに転送パス状態ビット列(PD)を参照するように構成している。
【０２４３】
このため、障害が発生し、今まで割り当てていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当比に従って転送先を割り当てる際に、各転送パス(P) が受け持っている最大ストリーム数(PH)のソフトウエアによる再計算処理を必要としない。これは、割り当ての変更を行う際に、パス選択処理部１３が最大ストリーム数(PH)が更新されることにより値が変更される転送禁止ビット列(PX)と割当禁止ビット列(AX)とを参照する必要がないためである。
【０２４４】
従って、第２の実施の形態において、障害が発生することにより割り当てていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当比に従って転送先を割り当てる場合は、転送パス状態ビットを基にして割当変更処理を行うため、第１の実施の形態で示したように最大ストリーム数(PH)の変化に伴い変化する割当禁止ビット列(AX)用いることを回避することができ、これにより、最大ストリーム数(PH)のソフトウエアによる再計算処理をすることなく、高速に負荷分散割当を実行することが可能となる。
【０２４５】
図１５で示した例を用いて、第２の実施の形態を説明するにあたり、データグラム転送装置４ａは、他のデータグラム転送装置４ｂ、データグラム転送装置４ｃ及びデータ転送装置４ｄとの間にそれぞれ１つ以上の転送パス(P) が設定されているとする。これは、例えばデータグラム転送装置４ａとデータグラム転送装置４ｂとの間には、マルチパス識別子(M) が「０」であり、転送パス番号(PN)が「０」、「１」である２本の転送パス(P) が割り当てられており、また、データグラム転送装置４ａとデータグラム転送装置４ｃとの間には、マルチパス識別子(M) が「１」であり、転送パス番号(PN)が「０」、「１」、「２」である３本の転送パス(P) が割り当てられており、また、データグラム転送装置４ａとデータグラム転送装置４ｄとの間には、マルチパス識別子(M) が「２」であり、転送パス番号(PN)が「０」、「１」、「２」である３本の転送パス(P) が割り当てられているとする。
【０２４６】
また、図１７に示すように、第２の実施の形態では、チャネルパステーブル１３４上で、アドレス部にチャネル識別子(C) を格納し、これと対応するように、データ部でマルチパス識別子(M) と転送パス番号(PN)とを格納している。
【０２４７】
従って、図１６を参照すると、転送先決定処理装置１におけるパス選択処理部１３は、第１の実施の形態に対して更にチャネルパステーブル１３４と接続されている。
【０２４８】
図１６に示された構成では、転送パス(P) 上に障害が発生していない通常時に、転送先決定処理装置１は、第１の実施の形態と同様に、キャッシュテーブルアクセス部１２において、ヘッダ抽出処理部１０より入力されたストリーム識別子(S) と経路解決処理部１１より入力されたマルチパス識別子(M) とを基にキャッシュ転送パス番号(CPN) を選択し、更にパス選択処理部１３において、このキャッシュ転送パス番号(CPN) を暫定的な転送パス番号(PN)として受信し、この暫定的な転送パス番号(PN)とマルチパス識別子(M) とを基に転送パス(P) を決定する。
【０２４９】
これに対して、転送パス(P) 上に障害が発生した場合、即ち、データグラム転送装置４ａにおいて、転送パス(P) が割り当てられた物理リンク上に障害が発生し、パケットの送受信ができないことが検出され、この検出結果が障害通知信号によりパス選択処理部１３に入力された場合、パス選択処理部１３は、障害が発生することにより「転送禁止状態」となった転送パス(P) と対応するチャネル識別子(C) を基にチャネルパステーブル１３４を参照してマルチパス識別子(M) と転送パス番号(PN)とを特定する。
【０２５０】
また、パス選択処理部１３は、この特定したマルチパス識別子(M) に対応する転送パス状態ビット列(PD)をパス割当テーブル１３２より特定し、この特定した転送パス状態ビット列(PN)上において同様に特定した転送パス番号(PN)に対応するビットに「転送禁止状態」を示す状態ビットを格納する。
【０２５１】
これにより、転送パス(P) の割り当ての変更を必要とするパケットに対して割当変更を行う際に、転送パス状態ビット列(PD)を参照して、「転送禁止状態」となっていないマルチパス識別子(M) と転送パス番号(PN)との組み合わせに対応付けられた転送パス(P) へ、第１の実施の形態と同様に、転送パステーブル１３３の最大連続割当数(PW)の比に従い、且つ転送パス番号(PN)の順に従って割り当て変更を実施する。
【０２５２】
上記の動作を実現するために、転送先決定処理装置１に備えられたパス割当テーブル１３２は、第１の実施の形態に対して、図１８に示されるように２つのパラメータが追加されて格納されている。
【０２５３】
図１８を参照すると、パス割当テーブル１３２には、第１の実施の形態と同様に、アドレス部に格納されているマルチパス識別子(M) と対応させて、データ部において転送禁止ビット列(PX)と割当禁止ビット列(AX)と転送割当パス番号(PA)と連続割当数(PS)とを格納し、更に、第１の実施の形態とは別に、動作モード(AM)と転送パス状態ビット列(PD)とを格納している。
【０２５４】
ここで、転送禁止ビット列(PX)と割当禁止ビット列(AX)と転送割当パス番号(PA)と連続割当数(PS)とに関しては、第１の実施の形態と同様であるため、ここでは説明を省略する。
【０２５５】
また、動作モード(AM)は、マルチパス識別子(M) と対応する１つ以上の転送パス(P) において、それぞれの転送パス(P) に対応付けられている物理リンクの内、１つ以上の物理リンク上に障害が発生しているか否かを示すものであり、物理リンクより障害が発生したことが障害通知信号により通知されると、特定されたマルチパス識別子(M) と対応付けられている動作モード(AM)に「障害状態」を示す状態ビットが格納される。従って、通常時は「通常状態」を示す状態ビットが格納され、転送パス(P) 上に障害が発生したことが通知されると、「障害状態」を示す状態ビットに更新される。ここで、「通常状態」及び「障害状態」を示すビット構成は、限定されるものではなく、状態を識別させることが可能である構成であれば、本発明の本質を逸脱するものでない限り、如何なる構成でも適用することが可能である。
【０２５６】
また、転送パス状態ビット列(PD)は、各ビットがそれぞれ転送パス番号(PN)と対応し、マルチパス識別子(M) により区分される各転送パス番号(PN)における障害の発生状態を示している。
【０２５７】
ここで、例えば、「転送許可状態」を「０」で表し、「転送禁止状態」を「１」で表すとする。この場合、図１５に示されるような、データグラム転送装置４ａにおけるマルチパス識別子(M) と転送パス番号(PN)との組み合わせが合計８種類であり、この組み合わせにチャネル識別子(C) ＝「０」から「７」が割り当てられている場合において、同じく図１５に示すように、チャネル識別子(C) ＝「５」に対応する転送パス(P) に障害が発生したとすると、図２０に示すように、転送パス状態ビット列(PD)は、マルチパス識別子(M) が「２」である転送パス状態ビット列(PD)の転送パス番号(PN)が「０」に対応するビットに「転送禁止状態」を示す「１」が格納されて「00000001」で表される。ここで、本形態では転送パス番号(PN)＝「ｎ」に対して右からｎ＋１番目のビットが対応するように構成する例を用いている。
【０２５８】
また、図１９に示す転送パステーブル１３３では、マルチパス識別子(M) と転送パス番号(PN)とで規定されている転送パス(P) が、物理リンクと対応するチャネル識別子(C) の情報を有するように構成する。
【０２５９】
以上の構成により、パス選択処理部１３は、対応するマルチパス識別子(M) に区分されるいずれかの転送パス(P) において障害が発生すると、「障害状態」を動作モード(AM)に格納する。また、パス選択処理部１３は、チャネルパステーブル１３４を基に、障害を有するチャネル識別子(C) に対応するマルチパス識別子(M) と転送パス番号(PN)とを特定し、この特定したマルチパス識別子(M) を基にパス割当テーブル１３２において、転送パス状態ビット列(PD)を特定し、更に転送パス状態ビット列(PD)上の特定した転送パス番号(PN)に対応するビットに「転送禁止状態」を示す状態ビットを格納する。
【０２６０】
このように動作することにより、第２の実施の形態では、障害が発生した転送パス(P) に対応付けられる転送パス番号(PN)に対応する転送パス状態ビット列(PD)上のビットを「転送禁止状態」とすることにより、この転送パス(P) に転送されることを回避することが可能になる。
【０２６１】
次に、上記のように動作した後、転送パス(P) の割り当てを変更しなければならないパケットに対して割当変更を実施する場合について説明する。このように、転送パス(P) の割当変更を実施する場合には、パス選択処理部１３は、転送禁止ビット列(PX)と割当禁止ビット列(AX)とによらず、転送パス状態ビット列(PD)を基にして、改めて割り当てる転送パス番号(PN)を転送パステーブル１３３に格納された最大連続割当数(PW)の比に従い、転送パス番号(PN)の順に従って特定する。
【０２６２】
この負荷分散割り当てを実行する動作の概要は、以下のようになる。
先ず、転送先決定処理装置１にパケットが入力されると、経路解決処理部１１において特定されたマルチパス識別子(M) がパス選択処理部１３へ入力され、更に、キャッシュテーブルアクセス部１２において特定されたキャッシュ転送パス番号(CPN) がパス選択処理部１３へ入力され、パス選択処理部１３は、これを暫定的な転送パス番号(PN)として受信する。
【０２６３】
次に、このパス選択処理部１３は、入力されたマルチパス識別子(M) を基に動作モード(AM)を参照し、この動作モード(AM)が「通常状態」を示していれば、第１の実施の形態で示した動作と同様に、転送処理、若しくは転送パス(P) の割当変更処理を実行する。また、動作モード(AM)が「障害状態」を示している場合、パス選択処理部１３は、転送禁止ビット列(PX)の替わりにマルチパス識別子(M) を基に転送パス状態ビット列(PD)を参照し、暫定的な転送パス番号(PN)が「転送禁止状態」であるか否かを判断する。
【０２６４】
ここで、この暫定的な転送パス番号(PN)が「転送許可状態」であった場合は、第１の実施の形態と同様に転送処理を行うが、「転送禁止状態」であった場合、パス選択処理部１３は、割当禁止ビット列(AX)の替わりに転送パス状態ビット列(PD)を参照し、この転送パス状態ビット列(PD)において「転送許可状態」を示す状態ビットが格納されているビットに対応する転送パス番号(PN)のみを対象として、最大連続割当数(PW)の比に従い、転送パス番号(PN)の順に従って割り当てる転送パス(P) を特定する。
【０２６５】
以上のように動作することにより、第２の実施の形態では、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当処理に従って転送先を割り当てる際に、各転送パス(P) が受け持っている最大ストリーム数(PH)のソフトウエアによる再計算処理を必要としない。
【０２６６】
これは、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当処理に従って転送先を割り当てる際に、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとし、また、第１の実施の形態のように割当禁止ビット列(AX)を基に割当変更を行う替わりに転送パス状態ビット列(PD)を基に最大連続割当数(PW)の比に従い、転送パス番号(PN)の順に従って他の転送パス(P) に割り当てる処理を実行するため、パス選択処理部１３が最大ストリーム数(PH)が更新されることにより値が変更される転送禁止ビット列(PX)と割当禁止ビット列(AX)とを参照する必要がないためである。
【０２６７】
また、本発明におけるキャッシュテーブル１２０、パス割当テーブル１３２、転送パステーブル１３３、チャネルパステーブル１３４は、必要に応じて設定・更新される。この設定・更新を実行するための手段としては、ユーザによりシステムを介して実施される形態やシステムにより自動的に実施される形態等が考えられるが、本発明においては、特に限定されるものではない。
【０２６８】
《第２の実施の形態の動作》
以上の説明を踏まえて、第２の実施の形態による障害発生時の動作を図２１に、また、障害が回復した時の動作を図２２に示すフローチャートを用いて、それぞれ詳細に説明する。
【０２６９】
ここで、第２の実施の形態は、転送パス(P) 上に障害が発生した時に、少ないオーバヘッド及びデータアクセス数により、迅速に障害の発生していない転送パス(P) を割り当てるためのものである。従って、転送パス(P) への転送が正常であるか否かを判断するための手段を設ける必要がある。
【０２７０】
このため、第２の実施の形態では、この手段を設けるために、パス割当テーブル１３２上に転送パス(P) 上に障害が発生しているか否かを判別するための動作モード(AM)を設けている。以下、この動作モード(AM)を機能させるための動作を図２１及び図２２に示すフローチャートを用いて説明する。
【０２７１】
先ず図２１を参照すると、図１５において、例えばチャネル識別子(C) ＝「５」に障害が発生し、データグラム転送装置４ａに障害の発生が通知されると、パス選択処理部１３は、通知された障害通知信号に含まれる情報を基に、障害が発生した転送パス(P) と対応するチャネル識別子(C) を特定する（ステップＳ２０１）。ここで、データグラム転送装置４ａに対する障害の発生の通知は、従来技術において明らかである方法により実現することが可能であるため、特に説明することを省略する。
【０２７２】
次に、パス選択処理部１３は、ステップＳ２０１で特定した、障害が発生したチャネル識別子(C) を基に、チャネルパステーブル１３４よりマルチパス識別子(M) と転送パス番号(PN)とを読み出す（ステップＳ２０２）。
【０２７３】
その後、パス選択処理部１３は、ステップＳ２０２で読み出したマルチパス識別子(M) を基に、パス割当テーブル１３２上の対応する動作モード(AM)を「障害状態」に設定変更し、更に、ステップＳ２０２において読み出したマルチパス識別子(M) と転送パス番号(PN)とを基に、転送パス状態ビット列(PD)上の該当するビットを「転送禁止状態」に更新し（ステップＳ２０３）、処理を終了する。
【０２７４】
このように動作することで、第２の実施の形態では、障害発生の通知後、転送パス状態ビット列(PD)上の該当するビットが「転送禁止状態」と更新されているため、パス選択処理部１３は、更新後、転送パス(P) の割当変更を必要とするパケットが入力されると、対応するマルチパス識別子(M) を基に転送パス状態ビット列(PD)を参照し、更に、マルチパス識別子(M) を基に転送パステーブル１３３に格納されている最大連続割当数(PW)を参照して、転送パス番号(PN)毎の最大連続割当数(PW)の比に従って「転送禁止状態」となっていない転送パス(P) をストリームに対して割り当てるように動作が行われる。
【０２７５】
次に、図２２を用いて、転送パス(P) 上に発生していた障害が回復され、通信が可能になった場合に実行される動作を詳細に説明する。
【０２７６】
図２２を参照すると、図１５において、例えばチャネル識別子(C) ＝「５」に発生していた障害が回復し、データグラム転送装置４ａに障害の回復が通知されると、パス選択処理部１３は、通知された障害回復通知信号に含まれる情報を基に、障害が回復した転送パス(P) と対応するチャネル識別子(C) を特定する（ステップＳ３０１）。ここで、データグラム転送装置４ａに対する障害の回復の通知は、従来技術において明らかである方法により実現することが可能であるため、特に説明することを省略する。
【０２７７】
次に、パス選択処理部１３は、ステップＳ３０１で特定した、障害が回復したチャネル識別子(C) を基に、チャネルパステーブル１３４よりマルチパス識別子(M) と転送パス番号(PN)とを読み出す（ステップＳ３０２）。
【０２７８】
その後、パス選択処理部１３は、ステップＳ３０２で読み出したマルチパス識別子(M) を基に、パス割当テーブル１３２上の対応する動作モード(AM)を「通常状態」に設定変更し、更に、ステップＳ３０２において読み出したマルチパス識別子(M) と転送パス番号(PN)とを基に、転送パス状態ビット列(PD)上の該当するビットを「転送許可状態」に更新し（ステップＳ３０３）、処理を終了する。
【０２７９】
このように動作することで、障害が回復した転送パス(P) への割り当てを許可とすることが可能となる。
【０２８０】
また、上記した転送パス(P) をストリームに割り当てる処理は、第１の実施の形態で示すように、転送パス番号(PN)に対して番号の小さい方から順に、分散比に従って割り当てていく方法等が考えられるが、本発明では、この形態に限定されるものではなく、本発明の趣旨を逸脱しない限り、様々に変形実施することが可能である。
【０２８１】
更に、キャッシュテーブル１２０に格納されているキャッシュ転送パス番号(PN)の更新は、第１の実施の形態で記載したように、有効とした転送パス番号(PN)を更新パス番号(PU)としてキャッシュテーブルアクセス部１２に出力し、これに対して、キャッシュテーブルアクセス部１２は、入力された更新パス番号(PU)を第１の実施の形態と同様に、保持されているマルチパス識別子(M) とストリーム識別子(S) とを基に、キャッシュテーブル１２０上の対応するデータ部に登録する。
【０２８２】
次に、上記のように、動作モード(AM)を変更した後に、第２の実施形態において、「障害状態」時に転送パス(P) の割当変更を行う動作を、図２３のフローチャートを用いて詳細に説明する。
【０２８３】
図２３を参照すると、先ず、パケットが入力されると（ステップＳ１）、転送先決定処理装置１はヘッダ抽出処理部１０において、パケットのヘッダ部よりストリーム識別子(S) と宛先ＩＰアドレス(A) とを抽出し、ストリーム識別子(S) をキャッシュテーブルアクセス部１２へ、宛先ＩＰアドレス(A) を経路解決処理部１１へ出力し、経路解決処理部１１において転送先経路を解決する（ステップＳ２）。
【０２８４】
次に、ステップＳ２で解決された転送先経路がマルチパスを対象としたものであるか否かを判断し（ステップＳ３）、シングルパスである場合（ステップＳ３のＮｏ）、解決された転送先経路である転送パス(P) を出力装置選択部１４に出力し、パケット転送を実行する（ステップＳ１６）。
【０２８５】
これに対し、ステップＳ２で解決された転送先経路がマルチパスを対象としたものである場合（ステップＳ３のＹｅｓ）、経路解決処理部１１は、解決したマルチパス識別子(M) をキャッシュテーブルアクセス部１２とパス選択処理部１３とに出力し、キャッシュテーブルアクセス部１２において、このマルチパス識別子(M) とヘッダ抽出処理部１０より入力されたストリーム識別子(S) とを用いて、対応するキャッシュ転送パス番号(CPN) をキャッシュテーブル１２０より特定する（ステップＳ４）。
【０２８６】
ここまでの流れは、第１の実施の形態で示した動作と同様の処理である。これに対して、第２の実施の形態では、ステップＳ４０１以降の新たな処理が加わる。
【０２８７】
ステップＳ４０１では、パス選択処理部１３において、ステップＳ４で特定されたキャッシュ転送パス番号(CPN) を暫定的な転送パス番号(PN)として受け取り、また、経路解決処理部１１より入力されたマルチパス識別子(M) を基に、パス割当テーブル１３２の動作モード(AM)を読み出す（ステップＳ４０１）。
【０２８８】
次に、パス選択処理部１３は、暫定的な転送パス番号(PN)が、第１の実施の形態で示したような「未登録状態」を示すビットで構成されているか否かを判定する（ステップＳ５）。
【０２８９】
ステップＳ５で、転送パス番号(PN)が「登録状態」を示している場合（ステップＳ５のＮｏ）、パス選択処理部１３は、ステップＳ４０１で読み出した動作モード(AM)が「障害状態」であるか否かを判定する（ステップＳ４０２）。
【０２９０】
ここで、対応する動作モード(AM)が「障害状態」である場合（ステップＳ４０２のＹｅｓ）、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３２より転送パス状態ビット列(PD)を読み出し、この転送パス状態ビット列(PD)上において、上記した暫定的な転送パス番号(PN)に対応するビットに格納されている状態ビットを転送判定ビット(PJ)とする（ステップＳ４０３）。
【０２９１】
また、ステップＳ４０２において、対応する動作モード(AM)が「通常状態」である場合（ステップＳ４０２のＮｏ）、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３２より転送禁止ビット列(PX)を読み出し、ステップＳ４０３と同様に、この転送禁止ビット列(PX)上において、上記した暫定的な転送パス番号(PN)に対応するビットに格納されている状態ビットを転送判定ビット(PJ)とする（ステップＳ４０４）。
【０２９２】
以上のように転送判定ビット(PJ)を特定し、この転送判定ビット(PJ)を用いることで、実質的にパス選択処理部１３は、動作モード(AM)が「通常状態」であれば、第１の実施の形態と同様に、転送禁止ビット列(PX)に従って転送の可能不可能を判定を行い、また、動作モード(AM)が「障害状態」であれば、転送パス状態ビット列(PD)に従って障害の発生した転送パス(P) へのストリームの割り当て及び転送を回避する動作を、同一の流れにより実現することが可能となる。
【０２９３】
従って、このように転送判定ビット(PJ)を特定した後、パス選択処理部１３は、転送判定ビット(PJ)が「転送禁止状態」を示す状態ビットであるか否かを判定する（ステップＳ４０５）。
【０２９４】
このステップＳ４０５の判定の結果、転送判定ビット(PJ)が「転送許可状態」である場合（ステップＳ４０５のＮｏ）、パス選択処理部１３は、第１の実施の形態と同様に、暫定的な転送パス番号(PN)を有効な転送パス番号(PN)とし、マルチパス識別子(M) とこの転送パス番号(PN)とを用いて対応する転送パス(P) を特定し、この転送パス(P) を出力装置選択処理部１４に出力する（ステップＳ１５）。その後、第１の実施の形態と同様に、出力装置選択処理部１４において、入力された転送パス(P) に従い、パケットの転送を実行する（ステップＳ１６）。
【０２９５】
また、ステップＳ４０５の判定の結果、転送判定ビット(PJ)が「転送禁止状態」である場合（ステップＳ４０５のＹｅｓ）、パス選択処理部１３は、マルチパス識別子(M) と暫定的な転送パス番号(PN)との組み合わせを基に、転送パステーブル１３３より割当ストリーム数(PC)を参照し、この値から１を減算して再格納する（ステップＳ８）。
【０２９６】
次に、パス選択処理部１３は、ステップＳ８で更新された転送パステーブル１３３に格納されている割当ストリーム数(PC)を基に、パス割当テーブル１３２上の転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算し、この改めて求められた転送禁止ビット列(PX)と割当禁止ビット列(AX)とをパス割当テーブル１３２に再格納する（ステップＳ９）。この転送禁止ビット列(PX)と割当禁止ビット列(AX)との再計算の方法は、第１の実施の形態で説明した方法と同様の処理により実行するものとする。
【０２９７】
また、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３２より転送割当パス番号(PA)を読み出し、この値を有効な転送パス番号(PN)とする（ステップＳ１０）。ここで、暫定的に転送パス番号(PN)とされていたキャッシュ転送パス番号(CPN) は破棄され、転送パス番号(PN)は転送割当パス番号(PA)に置き換えられる。
【０２９８】
その後、パス選択処理部１３は、転送パステーブル１３３上の有効となった転送パス番号(PN)に対応する割当ストリーム数(PC)を１加算し、再格納する（ステップＳ１１）。
【０２９９】
更に、パス選択処理部１３は、ステップＳ１１において改めて得られた転送パステーブル１３３を基に、転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算し、この値によりパス割当テーブル１３２を更新する（ステップＳ１２）。この転送禁止ビット列(PX)と割当禁止ビット列(AX)との再計算の方法も、上記した第１の実施の形態と同様の処理により実行するものとする。
【０３００】
次に、パス選択処理部１３は、ステップＳ４０１で読み出した動作モード(AM)が「障害状態」であったか否かを確認し（ステップＳ４０６）、「障害状態」であった場合は（ステップＳ４０６のＹｅｓ）、転送パス状態ビット列(PD)を読み出し、この転送パス状態ビット列(PD)を転送決定ビット列(PF)として（ステップＳ４０７）、ステップＳ４０９に移行する。
【０３０１】
また、ステップＳ４０６の確認の結果、ステップＳ４０１で読み出した動作モード(AM)が「通常状態」であった場合（ステップＳ４０６のＮｏ）、マルチパス識別子(M) を用いてパス割当テーブル１３２より割当禁止ビット列(AX)を読み出し、この割当禁止ビット列(AX)を転送決定ビット列(PF)として（ステップＳ４０８）に移行する。
【０３０２】
その後、パス選択処理部１３は、ステップＳ４０９において、特定した転送決定ビット列(PF)を用いて次の転送割当パス番号(PA)を計算し、パス割当テーブル１３２に格納する（ステップＳ４０９）。ここで、この次の転送割当パス番号(PA)を計算する方法は、以下で図２４を用いて詳細に説明する。
【０３０３】
また、パス選択処理部１３は、ステップＳ４で読み出したキャッシュテーブル１２０上のキャッシュ転送パス番号(CPN) を、ステップＳ１０で改めて割り当てた転送パス番号(PN)に更新するために、この改めて割り当てた転送パス番号(PN)を更新パス番号(PU)としてキャッシュテーブルアクセス部１２に出力し、これに対してキャッシュテーブルアクセス部１２は、レジスタ等に保持しているマルチパス識別子(M) とストリーム識別子(S) とを基に、パス選択処理部１３より入力された更新パス番号(PU)をデータ部における対応するキャッシュ転送パス番号(CPN) に格納して更新する（ステップＳ１４）。
【０３０４】
その後、パス選択処理部１３は、上述したように、有効な転送パス番号(PN)に対応する転送パス(P) を出力装置選択処理部１４に出力し（ステップＳ１５）、これに対し、出力装置選択部１４は、入力された転送パス(P) を基に、パケットの転送を実行する（ステップＳ１６）。
【０３０５】
更に、ステップＳ４０５における判定の結果、転送判定ビット(PJ)が「転送禁止状態」である場合（ステップＳ４０５のＹｅｓ）、パス選択処理部１３は、ステップＳ１０に移行し、上述したように、マルチパス識別子(M) を基にパス割当テーブル１３２より読み出した転送割当パス番号(PA)を有効な転送パス番号(PN)とし（ステップＳ１０）、その後、転送パステーブル１３３上の対応する割当ストリーム数(PC)を１加算して再格納し（ステップＳ１１）、更に、ステップＳ１１により改めて得られた転送パステーブル１３３を基に転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算して格納する（ステップＳ１２）。
【０３０６】
次に、パス選択処理部１３は、ステップＳ４０１で読み出した動作モード(AM)が「障害状態」であるか否かを判定し（ステップＳ４０６）、「障害状態」である場合（ステップＳ４０６のＹｅｓ）、転送パス状態ビット列(PD)を読み出し、これを転送決定ビット列(PF)とし（ステップＳ４０７）、また、ステップＳ４０６の判定の結果、ステップＳ４０１で読み出した動作モード(AM)が「通常状態」である場合（ステップＳ４０６のＮｏ）、割当禁止ビット列(AX)読み出し、これを転送決定ビット列(PF)とし（ステップＳ４０８）、その後、ステップＳ４０９において、この転送決定ビット列(PF)を用いて次の転送割当パス番号(PA)を計算して格納する（ステップＳ４０９）。
【０３０７】
また、パス選択処理部１３は、ステップＳ４で読み出したキャッシュテーブル１２０上のキャッシュ転送パス番号(CPN) を更新するために、更新パス番号(PU)をキャッシュテーブルアクセス部１２に出力し、これに対してキャッシュテーブルアクセス部１２は、更新パス番号(PU)を対応するデータ部に格納し（ステップＳ１４）、その後、パス選択処理部１３は、有効な転送パス番号(PN)に対応する転送パス(P) を出力装置選択処理部１４に出力する（ステップＳ１５）。
【０３０８】
これに対し、出力装置選択部１４は、入力された転送パス(P) を基にパケットの転送を実行する（ステップＳ１６）。
【０３０９】
また、図２３で示したフローチャートにおけるステップＳ４０９の次の転送割当パス番号(PA)を計算し、パス割当テーブル１３２に格納する動作を、図２４に示すフローチャートを用いて詳細に説明する。
【０３１０】
図２４を参照すると、パス選択処理部１３は、転送パステーブル１３３上における図２３のステップＳ１０で取得した転送割当パス番号(PA)に対応する連続割当数(PS)を１加算して更新する（ステップＳ１０１）。
【０３１１】
次に、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３２より連続割当数(PS)を特定し、また、図２３のステップＳ１０で取得した転送割当パス番号(PA)とマルチパス識別子(M) とを基に転送パステーブル１３３より最大連続割当数(PW)を特定する（ステップＳ１０２）。
【０３１２】
その後、ステップＳ１０１において特定した連続割当数(PS)と最大連続割当数(PW)とを比較する（ステップＳ１０３）。
【０３１３】
ステップＳ１０３の比較の結果、連続割当数(PS)が最大連続割当数(PW)より小さい値である場合（ステップＳ１０３のＮｏ）、パス選択処理部１３は、転送割当パス番号(PA)を変更せずに、図２３のステップＳ４０９を終了する。
【０３１４】
これに対して、ステップＳ１０３の比較の結果、連続割当数(PS)が最大連続割当数(PW)の値以上である場合（ステップＳ１０３のＹｅｓ）、パス選択処理部１３は、先ず、図２３のステップＳ１０で取得した転送割当パス番号(PA)の値をＮとしてレジスタ等に保持する（ステップＳ１０４）。
【０３１５】
その後、パス選択処理部１３は、転送割当パス番号(PA)の値に１を加算し（ステップＳ１０５）、得られた値が転送パス番号(PN)の最大値を超えているか否かを判定する（ステップＳ１０６）。
【０３１６】
ステップＳ１０６において、転送パス番号(PN)の最大値を超えている場合（ステップＳ１０６のＹｅｓ）、転送割当パス番号(PA)の値を０に更新し（ステップＳ１０７）、ステップＳ５０１に移行する。
【０３１７】
また、ステップＳ１０６において、転送パス番号(PN)の最大値を超えている場合（ステップＳ１０６のＮｏ）、そのままステップＳ５０１に移行する。
【０３１８】
ステップＳ５０１では、図２３におけるステップＳ４０７又はステップＳ４０８で求めた転送決定ビット列(PF)を用いて対象となっている転送割当パス番号(PA)に対応するビットに「転送禁止状態」を示す状態ビットが格納されているか否かを判定する（ステップＳ５０１）。
【０３１９】
この判定において、対応する転送決定ビット列(PF)上のビットが「転送許可状態」である場合（ステップＳ５０１のＮｏ）、ステップＳ１０５で１加算して得られた値を有効な転送割当パス番号(PA)とし、パス割当テーブル１３２に格納する（ステップＳ１０９）。
【０３２０】
その後、ステップＳ１０１で１加算した連続割当数(PS)を０と更新し（ステップＳ１１０）、図２３のステップＳ４０９を終了する。
【０３２１】
これに対して、ステップＳ５０１の判定において、対応する転送決定ビット列(PF)上のビットが「転送禁止状態」である場合（ステップＳ５０１のＹｅｓ）、現在、転送割当パス番号(PA)と設定されている値と、ステップＳ１０４で格納したＮ値とが等しいか否かを判定し（ステップＳ１１１）、等しくない場合（ステップＳ１１１のＮｏ）、ステップＳ１０５に戻り、転送割当パス番号(PA)の値に、更に１を加算して（ステップＳ１０５）、以降、同様の動作を実行する（ステップＳ５０６以降）。
【０３２２】
これに対して、ステップＳ１１１の判定の結果、現在の転送割当パス番号(PA)の値とＮ値とが等しい場合（ステップＳ１１１のＹｅｓ）、転送割当パス番号(PA)の値をステップＳ１０４で格納したＮ値に１を加算した値に設定する（ステップＳ１１２）。これは、転送割当パス番号(PA)をＮ＋１とすることにより、割当禁止ビット列(AX)が全て「割当禁止状態」となっている場合において、全てのストリームが転送パス番号(PN)＝「Ｎ」に割り当てられることを回避するためである。
【０３２３】
その後、ステップＳ１１２で算出したＮ＋１値が転送パス番号(PN)の最大値を超えているか否かを判定する（ステップＳ１１３）。ここで、転送パス番号(PN)の最大値を超えていない場合（ステップＳ１１３のＮｏ）、そのまま転送割当パス番号(PA)を「Ｎ＋１」とし、図２３のステップＳ４０９を終了する。
【０３２４】
これに対して、転送パス番号(PN)の最大値を超えている場合（ステップＳ１１３のＹｅｓ）、転送割当パス番号(PA)の値を「０」に設定し（ステップＳ１１４）、その後、図２３のステップＳ４０９を終了する。
【０３２５】
このように動作することにより、図２３のステップＳ４０９でパス割当テーブル１３２に格納される転送割当パス番号(PA)の値は、転送パス番号(PN)の値の順に従い、且つ最大連続割当数(PW)の比に従って格納される。
【０３２６】
《第２の実施の形態による効果》
以上、図面を用いて説明した動作から明らかなように、例えば、図１５に示すような、チャネル識別子(C) ＝「５」に対応する転送パス(P) に障害が発生した場合に、パス選択処理部１３は、チャネルパステーブル１３４を基に、チャネル識別子(C) ＝「５」に対応するマルチパス識別子(M) ＝「２」と転送パス番号(PN)＝「０」とを特定し、このマルチパス識別子(M) に対応する動作モード(AM)に「障害状態」を格納する。更に、パス選択処理部１３は、特定したマルチパス識別子(M) ＝「２」を基に、パス割当テーブル１３２における転送パス状態ビット列(PD)を特定し、この転送パス状態ビット列(PD)における転送パス番号(PN)＝「０」に対応するビットに「転送禁止状態」を示すビットを格納する。これにより、パス割当テーブル１３２は、図２０に示すように各パラメータが変更される。
【０３２７】
従って、転送パス(P) の割り当てを変更しなければならないパケットに対して割当変更を実施する場合、転送禁止ビット列(PX)と割当禁止ビット列(AX)とによらず、転送パス状態ビット列(PD)を参照して、改めて割り当てる転送パス(P) を特定する。
【０３２８】
以上のことをまとめると、第２の実施の形態では、転送パス(P) 上に障害が発生した場合において、転送パス状態ビット列(PD)を更新後は、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当比に従って転送先を割り当てる際に、各転送パス(P) が受け持っている最大ストリーム数(PH)のソフトウエアによる再計算処理を必要とせず、このため、高速に負荷分散割当比に従って割当変更処理を実行することが可能となる。
【０３２９】
このようにソフトウエアによる再計算処理が必要でない理由は、障害の発生に伴い割り当てていた転送パス(P) を変更する必要があるか否かを判断するにあたり、第１の実施の形態にように転送禁止ビット列(AX)を基に割当変更判断を実行する替わりに、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとして、転送パス状態ビット列(PD)を基に割当変更判断を実行し、更に、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割り当てに従って転送先を割り当てる場合は、第１の実施の形態のような割当禁止ビット列(AX)を基に割当変更を行う替わりに、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとして、転送パス状態ビット列(PD)を基に他の転送パス(P) に割り当てる処理を実行することで、パス選択処理部１３が最大ストリーム数(PH)が更新されることにより値が変更される転送禁止ビット列(PX)と割当禁止ビット列(AX)とを参照する必要をなくしたためである。
【０３３０】
《第３の実施の形態の構成》
また、第３の実施の形態では、パス選択処理部１３における転送パス(P) の選択方法に関し、第１の実施の形態と更に別手段を例示する。
【０３３１】
第２の実施の形態では、データグラム転送装置４に接続された物理リンクを個々に識別するためのチャネル識別子(C) をマルチパス識別子(M) と転送パス番号(PN)とに対応させてチャネルパステーブル１３４上で管理し、更に、マルチパス識別子(M) で区分されるいずれかの転送パス(P) 上に障害が発生しているか否かを示す動作モード(AM)と、マルチパス識別子(M) と転送パス番号(PN)との組み合わせ、即ち、チャネル識別子(C) に対応する各転送パス(P) 上に障害が発生しているかを示す転送パス状態ビット列(PD)とをパス割当テーブル１３２上でマルチパス識別子(M) と対応させて管理していた。
【０３３２】
これにより、第２の実施の形態では、あるマルチパス識別子(M) で管理されている転送パス(P) のどこかに障害が発生した場合の転送パス(P) の割当変更処理において、パス選択処理部１３が、入力された障害通知信号より特定したチャネル識別子(C) と対応するマルチパス識別子(M) を基に特定した動作モード(AM)を用いて、上記の転送パス状態ビット列(PD)の使用の有無を判断を行い、更に、同じくチャネル識別子(C) と対応する転送パス番号(PN)と上記したマルチパス識別子(M) とを基に転送パス状態ビット列(PD)又は転送禁止ビット列(PX)より特定した転送判定ビット(PJ)とを用いて割当変更の判断を行い、また、改めて転送パス(P) を割り当てる割当処理において、上記の転送パス状態ビット列(PD)を用いて、割当可能な転送パス番号(PN)の選別を行うように構成していた。
【０３３３】
これに対し、第３の実施の形態では、データグラム転送装置４に設定された転送パス(P) に対して転送パス番号(PN)が１対１で対応するように構成し、また、上記の転送パス状態ビット列(PD)をマルチパス識別子(M) に区分することなくパス選択処理部１３のレジスタ等で一括に管理するように構成している。
【０３３４】
このため、第３の実施の形態では、第２の実施の形態に対して、パス選択処理部１３に接続されたチャネルパステーブル１３４と、パス割当テーブル１３２上の動作モード(AM)及び転送パス状態ビット列(PD)と、転送パステーブル１３３上の転送パス(P) とを削除し、新たに転送パステーブル１３６上に使用パスビット列(UP)を設け、更に、パス選択処理部１３上で転送パス状態テーブル１３７を管理するように構成することで、必要となるメモリ量を削減するように構成している。
【０３３５】
また、上記したように転送パス番号(PN)と転送パス(P) とは１対１に対応するよう構成するため、転送パス番号(PN)と転送パス(P) とを同一な情報で構成する。
【０３３６】
このように、第３の実施の形態では、あるマルチパス識別子(M) で管理されている転送パス(P) のどこかに障害が発生した場合の転送パス(P) の割当変更処理において、パス選択処理部１３が、入力された障害通知信号より特定した転送パス(P) と対応するビットが「転送禁止状態」に設定変更された転送パス状態ビット列(PD)と、使用している転送パス(P) を示す使用パスビット列(UP)とを基に、パケットに対する割当変更を実施するか否かを判断する割当変更判断を行い、この判断において割り当てる転送パス(P) を変更することが判断された場合、転送パス(P) の割当変更処理において、割り当てる転送パス状態ビット列(PD)と使用パスビット列(UP)とを用いて、改めて割り当てる転送パス(P) を特定するように構成される。
【０３３７】
以上のことを踏まえて、図２５で示した例を用いて、第３の実施の形態を説明するにあたり、データグラム転送装置４ｅは、他のデータグラム転送装置４ｆ、データグラム転送装置４ｇ及びデータ転送装置４ｈとの間にそれぞれ１つ以上の転送パス(P) が設定されているとする。これは、例えばデータグラム転送装置４ａとデータグラム転送装置４ｂとの間には、転送パス番号(PN)が「０」、「１」である２本の転送パス(P) が割り当てられており、また、データグラム転送装置４ａとデータグラム転送装置４ｃとの間には、転送パス番号(PN)が「２」、「３」、「４」である３本の転送パス(P) が割り当てられており、また、データグラム転送装置４ａとデータグラム転送装置４ｄとの間には、転送パス番号(PN)が「５」、「６」、「７」である３本の転送パス(P) が割り当てられているとする。
【０３３８】
また、第３の実施の形態では、図２７に示すように、パス割当テーブル１３５上でアドレス部に格納されたマルチパス識別子(M) に対応して、データ部において、使用パスビット列(UP)と転送禁止ビット列(PX)と割当禁止ビット列(AX)と転送割当パス番号(PA)と連続割当数(PS)とが管理されている。従って、第３の実施の形態では、第２の実施の形態と比較して、データ部において、動作モード(AM)と転送パス状態ビット列(PD)とが削除され、新たに使用パスビット列(UP)が追加されている。これは、動作モード(AM)の替わりに、使用パスビット列(UP)上の各ビットを反転させたビット列と転送パス状態ビット列(PD)とを用いることで、各マルチパス識別子(M) 毎に区分される転送パス(P) 上に障害が発生しているか否かを判断するため、動作モード(AM)が必要でなくなり、また、転送パス状態ビット列(PD)を各マルチパス識別子(M) に対応させて構成する必要がないためである。ここで、転送パス状態ビット列(PD)は、パス選択処理部１３が備えるレジスタ等に、図２９に示すような転送パス状態テーブル１３７として管理されるよう構成する。
【０３３９】
また、図２８に示すように、第３の実施の形態では、第２の実施の形態と比較して、転送パステーブル１３６上で、アドレス部のマルチパス識別子(M) と転送パス(P) との組み合わせに対応して、データ部で割当ストリーム数(PC)と最大ストリーム数(PH)と最大連続割当数(PW)とが管理され、転送パス(P) が削除されている。これは、上述したように、転送パス(P) と転送パス番号(PN)とを同一の情報で構成するため対応させる必要がないからである。
【０３４０】
従って、図２６を参照すると、転送先決定処理装置１は、第２の実施の形態に対してチャネルパステーブル１３４が削除され、更にパス選択処理部１３上において転送パス状態テーブル１３７が保持される。
【０３４１】
以上、図２６に示すように構成することで、第３の実施の形態では、転送パス(P) 上に障害が発生していない通常時に、転送先決定処理装置１は、第１の実施の形態と同様に、キャッシュテーブルアクセス部１２において、ヘッダ抽出処理部１０より入力されたストリーム識別子(S) と経路解決処理部１１より入力されたマルチパス識別子(M) とを基にキャッシュ転送パス番号(CPN) を選択し、更にパス選択処理部１３において、このキャッシュ転送パス番号(CPN) を暫定的な転送パス番号(PN)として受信し、この暫定的な転送パス番号(PN)とマルチパス識別子(M) とを基に、有効な転送パス番号(PN)を決定する。
【０３４２】
これに対して、転送パス(P) 上に障害が発生した場合、即ち、データグラム転送装置４ｅにおいて、転送パス(P) が割り当てられた物理リンク上に障害が発生し、パケットの送受信ができないことが検出され、この検出結果が障害通知信号によりパス選択処理部１３に入力された場合、パス選択処理部１３は、障害が発生することにより「転送禁止状態」となった転送パス(P) を基に転送パス状態ビット列(PN)上において対応するビットに「転送禁止状態」を示す状態ビットを格納する。
【０３４３】
これにより、転送パス(P) の割り当ての変更を必要とするパケットに対して割当変更を行う際に、転送パス状態ビット列(PD)と使用パスビット列(UP)とを参照して、「転送禁止状態」となっていない転送パス番号(PN)へ、第１の実施の形態と同様に、転送パステーブル１３３の最大連続割当数(PW)の比に従い、且つ転送パス番号(PN)の順に従って割り当て変更を実施する。
【０３４４】
ここで、第３の実施の形態で新たに追加されたパラメータである使用パスビット列(UP)は、各マルチパス識別子(M) がどの転送パス(P) と対応しているか否かを示すビット列であり、使用パスビット列(UP)を構成する各ビットが、それぞれ異なる転送パス(P) と対応している。
【０３４５】
ここで、例えば、「使用状態」を「０」で表し、「未使用状態」を「１」で表すとする。従って、図２５に示されるような、データグラム転送装置４ｅにおける転送パス番号(PN)が合計８種類である場合において、同じく図２５に示すように、転送パス(P) ＝「５」に障害が発生したとすると、図３１に示すように、転送パス状態ビット列(PD)は、転送パス(P) が「０」に対応するビットに「転送禁止状態」を示す「１」が格納されて「00100000」で表される。ここで、本形態では転送パス(P) ＝「ｎ」に対して右からｎ＋１番目のビットが対応するように構成する例を用いている。
【０３４６】
以上の構成により、パス選択処理部１３は、転送パス(P) において障害が発生すると、入力された転送パス(P) に対応する転送パス状態ビット列(PD)上のビットに「転送禁止状態」を示す状態ビットを格納する。
【０３４７】
このように動作することにより、第３の実施の形態では、転送パス(P) の割り当てを変更しなければならないパケットに対して割当変更を実施する場合には、転送禁止ビット列(PX)と割当禁止ビット列(AX)とによらず、転送パス状態ビット列(PD)と使用パスビット列(UP)を基にして、改めて割り当てる転送パス(P) を転送パステーブル１３６に格納された最大連続割当数(PW)の比に従い、転送パス番号(PN)の順に従って特定することが可能となる。
【０３４８】
この負荷分散割り当てを実行する動作は、以下のようになる。
先ず、転送先決定処理装置１にパケットが入力されると、経路解決処理部１１において特定されたマルチパス識別子(M) がパス選択処理部１３へ入力され、更に、キャッシュテーブルアクセス部１２において特定されたキャッシュ転送パス番号(CPN) がパス選択処理部１３へ入力され、これに対して、パス選択処理部１３は、これを暫定的な転送パス番号(PN)として受信する。
【０３４９】
次に、このパス選択処理部１３は、入力されたマルチパス識別子(M) を基に使用パスビット列(UP)を読み出し、この使用パスビット列(UP)と、同じく読み出した転送パス状態ビット列(PD)とを基に、該当するマルチパス識別子(M) で区分される転送パス(P) 上に障害が発生しているか否かを判定し、障害が発生していなければ、第１の実施の形態で示した動作と同様に、転送処理、若しくは転送パス(P) の割当変更処理を実行する。また、障害が発生していれば、パス選択処理部１３は、転送禁止ビット列(PX)の替わりに転送パス状態ビット列(PD)を基に、暫定的な転送パス番号(PN)が「転送禁止状態」であるか否かを判断する。
【０３５０】
ここで、この暫定的な転送パス番号(PN)が「転送許可状態」であった場合は、第１の実施の形態と同様に転送処理を行うが、「転送禁止状態」であった場合、パス選択処理部１３は、割当禁止ビット列(AX)の替わりに転送パス状態ビット列(PD)と使用パスビット列(UP)とを参照し、この転送パス状態ビット列(PD)と使用パスビット列(UP)との組み合わせにおいて「転送許可状態」を示す状態ビットが格納されているビットに対応する転送パス(P) のみを対象として、最大連続割当数(PW)の比に従い、転送パス番号(PN)の順に従って割り当てる転送パス(P) を特定する。
【０３５１】
以上のように動作することにより、第３の実施の形態では、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当処理に従って転送先を割り当てる際に、各転送パス(P) が受け持っている最大ストリーム数(PH)のソフトウエアによる再計算処理を必要としない。
【０３５２】
これは、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当処理に従って転送先を割り当てる際に、第１の実施の形態のように割当禁止ビット列(AX)を基に割当変更を行う替わりに転送パス状態ビット列(PD)と使用パスビット列(UP)とを基に最大連続割当数(PW)の比に従い、転送パス番号(PN)の順に従って他の転送パス(P) に割り当てる処理を実行するため、パス選択処理部１３が最大ストリーム数(PH)が更新されることにより値が変更される転送禁止ビット列(PX)と割当禁止ビット列(AX)とを参照する必要がないためである。
【０３５３】
また、本発明におけるキャッシュテーブル１２０、パス割当テーブル１３５、転送パステーブル１３６、転送パス状態テーブル１３７は、必要に応じて設定・更新される。この設定・更新を実行するための手段としては、ユーザによりシステムを介して実施される形態やシステムにより自動的に実施される形態等が考えられるが、本発明においては、特に限定されるものではない。
【０３５４】
《第３の実施の形態の動作》
以上の説明を踏まえて、第３の実施の形態による障害発生時の動作を図３２に、また、障害が回復した時の動作を図３３に示すフローチャートを用いて、それぞれ詳細に説明する。
【０３５５】
ここで、第３の実施の形態は、第２の実施の形態と同様に、転送パス(P) 上に障害が発生した時に、少ないオーバヘッド及びデータアクセス数により、迅速に障害の発生していない転送パス(P) を割り当てるためのものである。従って、転送パス(P) への転送が正常であるか否かを判断するための手段を設ける必要がある。
【０３５６】
このため、第３の実施の形態では、この手段を設けるために、パス選択処理部１３上に転送パス(P) 上に障害が発生しているか否かを判別するための転送パス状態テーブル１３７を設けている。以下、この転送パス状態テーブル１３７を機能させるための動作を図３２及び図３３に示すフローチャートを用いて説明する。
【０３５７】
先ず図３２を参照すると、図２５において、例えば転送パス(P) ＝「５」に障害が発生し、データグラム転送装置４ｅに障害の発生が通知されると、パス選択処理部１３は、通知された障害通知信号に含まれる情報を基に障害が発生した転送パス番号(PN)を特定し、この特定した転送パス番号(PN)を基に、転送パス状態ビット(PD)上の対応するビットを「転送禁止状態」に更新し（ステップＳ６０１）、処理を終了する。ここで、データグラム転送装置４ｅに対する障害の発生の通知は、従来技術において明らかである方法により実現することが可能であるため、特に説明することを省略する。
【０３５８】
このように動作することで、第３の実施の形態では、障害発生の通知後、転送パス状態ビット列(PD)上の該当するビットが「転送禁止状態」と更新されているため、パス選択処理部１３は、更新後、転送パス(P) の割当変更を必要とするパケットが入力されると、転送パス状態ビット列(PD)と使用パスビット列(UP)とを参照し、更に、マルチパス識別子(M) を基に転送パステーブル１３３に格納されている最大連続割当数(PW)を参照して、転送パス番号(PN)毎の最大連続割当数(PW)の比に従って「転送禁止状態」となっていない転送パス(P) をストリームに対して割り当てるように動作が行われる。
【０３５９】
次に、図３３を用いて、転送パス(P) 上に発生していた障害が回復され、通信が可能になった場合に実行される動作を詳細に説明する。
【０３６０】
図３３を参照すると、図２５において、例えば転送パス(P) ＝「５」に発生していた障害が回復し、データグラム転送装置４ｅに障害の回復が通知されると、パス選択処理部１３は、通知された障害回復通知信号に含まれる情報を基に、障害が回復した転送パス番号(PN)を特定し、転送パス状態ビット(PD)上の対応するビットを「転送禁止状態」に更新し（ステップＳ７０１）、処理を終了する。ここで、データグラム転送装置４ｅに対する障害の回復の通知は、従来技術において明らかである方法により実現することが可能であるため、特に説明することを省略する。
【０３６１】
このように動作することで、障害が回復した転送パス(P) への割り当てを許可とすることが可能となる。
【０３６２】
また、上記した転送パス(P) をストリームに割り当てる処理は、第１の実施の形態で示すように、転送パス番号(PN)に対して番号の小さい方から順に、分散比に従って割り当てていく方法等が考えられるが、本発明では、この形態に限定されるものではなく、本発明の趣旨を逸脱しない限り、様々に変形実施することが可能である。
【０３６３】
更に、キャッシュテーブル１２０に格納されているキャッシュ転送パス番号(PN)の更新は、第１の実施の形態で記載したように、有効とした転送パス番号(PN)を更新パス番号(PU)としてキャッシュテーブルアクセス部１２に出力し、これに対して、キャッシュテーブルアクセス部１２は、入力された更新パス番号(PU)を第１の実施の形態と同様に、保持されているマルチパス識別子(M) とストリーム識別子(S) とを基に、キャッシュテーブル１２０上の対応するデータ部に登録する。
【０３６４】
次に、上記のように、動作モード(AM)を変更した後に、第２の実施形態において、「障害状態」時に転送パス(P) の割当変更を行う動作を、図３４のフローチャートを用いて詳細に説明する。
【０３６５】
図３４を参照すると、先ず、パケットが入力されると（ステップＳ１）、転送先決定処理装置１はヘッダ抽出処理部１０において、パケットのヘッダ部よりストリーム識別子(S) と宛先ＩＰアドレス(A) とを抽出し、ストリーム識別子(S) をキャッシュテーブルアクセス部１２へ、宛先ＩＰアドレス(A) を経路解決処理部１１へ出力し、経路解決処理部１１において転送先経路を解決する（ステップＳ２）。
【０３６６】
次に、ステップＳ２で解決された転送先経路がマルチパスを対象としたものであるか否かを判断し（ステップＳ３）、シングルパスである場合（ステップＳ３のＮｏ）、解決された転送先経路である転送パス(P) を出力装置選択部１４に出力し、パケット転送を実行する（ステップＳ１６）。
【０３６７】
これに対し、ステップＳ２で解決された転送先経路がマルチパスを対象としたものである場合（ステップＳ３のＹｅｓ）、経路解決処理部１１は、解決したマルチパス識別子(M) をキャッシュテーブルアクセス部１２とパス選択処理部１３とに出力し、キャッシュテーブルアクセス部１２において、このマルチパス識別子(M) とヘッダ抽出処理部１０より入力されたストリーム識別子(S) とを用いて、対応するキャッシュ転送パス番号(CPN) をキャッシュテーブル１２０より特定する（ステップＳ４）。このとき、キャッシュテーブルアクセス部１２は後続の処理のために、マルチパス識別子(M) とストリーム識別子(S) とをレジスタ等に保持しておく。
【０３６８】
ここまでの流れは、第１の実施の形態で示した動作と同様の処理である。これに対して、第３の実施の形態では、ステップＳ８０１以降の新たな処理が加わる。
【０３６９】
ステップＳ８０１では、パス選択処理部１３において、ステップＳ４で特定されたキャッシュ転送パス番号(CPN) を暫定的な転送パス番号(PN)として受け取り、また、経路解決処理部１１より入力されたマルチパス識別子(M) を基に、パス割当テーブル１３５上の使用パスビット列(UP)を読み出す（ステップＳ８０１）。
【０３７０】
また、パス選択処理部１３は、転送パス状態ビット列(PD)を読み出す（ステップＳ８０２）。
【０３７１】
次に、パス選択処理部１３は、暫定的な転送パス(P) が、第１の実施の形態で示したような「未登録状態」を示すビットで構成されているか否かを判定する（ステップＳ５）。
【０３７２】
ステップＳ５で、転送パス番号(PN)が「登録状態」を示している場合（ステップＳ５のＮｏ）、パス選択処理部１３は、ステップＳ８０１で保持した使用パスビット列(UP)を反転させて得たビット列と転送パス状態ビット列(PD)とを比較し、同じ桁が共に「１」となるビットが存在するか否かを判定する（ステップＳ８０３）。
【０３７３】
ここで、共に「１」となるビットが存在する場合（ステップＳ８０３のＹｅｓ）、パス選択処理部１３は、転送パス状態テーブル１３７より転送パス状態ビット列(PD)を読み出し、この転送パス状態ビット列(PD)上において、上記した暫定的な転送パス番号(PN)に対応するビットに格納されている状態ビットを転送判定ビット(PJ)とする（ステップＳ８０４）。
【０３７４】
また、ステップＳ８０３において、共に「１」となるビットが存在しない場合（ステップＳ８０３のＮｏ）、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３２より転送禁止ビット列(PX)を読み出し、ステップＳ８０４と同様に、この転送禁止ビット列(PX)上において、上記した暫定的な転送パス番号(PN)に対応するビットに格納されている状態ビットを転送判定ビット(PJ)とする（ステップＳ８０５）。
【０３７５】
以上のように転送判定ビット(PJ)を特定し、この転送判定ビット(PJ)を用いることで、実質的にパス選択処理部１３は、対応する転送パス(P) 上に障害が発生していなければ、第１の実施の形態と同様に、転送禁止ビット列(PX)に従って転送の可能不可能を判定を行い、また、対応する転送パス(P) 上に障害が発生していれば、転送パス状態ビット列(PD)に従って障害の発生した転送パス(P) へのストリームの割り当て及び転送を回避する動作を、同一の流れにより実現することが可能となる。
【０３７６】
従って、このように転送判定ビット(PJ)を特定した後、パス選択処理部１３は、第２の実施の形態と同様に、転送判定ビット(PJ)が「転送禁止状態」を示す状態ビットであるか否かを判定する（ステップＳ４０５）。
【０３７７】
このステップＳ４０５の判定の結果、転送判定ビット(PJ)が「転送許可状態」である場合（ステップＳ４０５のＮｏ）、パス選択処理部１３は、暫定的な転送パス番号(PN)を有効な転送パス番号(PN)とし、この転送パス番号(PN)を出力装置選択処理部１４に出力する（ステップＳ８０８）。ここで、上述したように、転送パス番号(PN)は、転送パス(P) と同一な情報により構成されているため、出力装置選択部１４は、入力された転送パス番号(PN)に従い転送を実行することが可能である。
【０３７８】
その後、第１の実施の形態と同様に、出力装置選択処理部１４において、入力された転送パス番号(PN)に従い、パケットの転送を実行する（ステップＳ１６）。
【０３７９】
また、ステップＳ４０５の判定の結果、転送判定ビット(PJ)が「転送禁止状態」である場合（ステップＳ４０５のＹｅｓ）、パス選択処理部１３は、マルチパス識別子(M) と暫定的な転送パス番号(PN)との組み合わせを基に、転送パステーブル１３３より割当ストリーム数(PC)を参照し、この値から１を減算して再格納する（ステップＳ８）。
【０３８０】
次に、パス選択処理部１３は、ステップＳ８で更新された転送パステーブル１３３に格納されている割当ストリーム数(PC)を基に、パス割当テーブル１３２上の転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算し、この改めて求められた転送禁止ビット列(PX)と割当禁止ビット列(AX)とをパス割当テーブル１３２に再格納する（ステップＳ９）。この転送禁止ビット列(PX)と割当禁止ビット列(AX)との再計算の方法は、第１の実施の形態で説明した方法と同様の処理により実行するものとする。
【０３８１】
また、パス選択処理部１３は、マルチパス識別子(M) を基にパス割当テーブル１３２より転送割当パス番号(PA)を読み出し、この値を有効な転送パス番号(PN)とする（ステップＳ１０）。ここで、暫定的に転送パス番号(PN)とされていたキャッシュ転送パス番号(CPN) は破棄され、転送パス番号(PN)は転送割当パス番号(PA)に置き換えられる。
【０３８２】
その後、パス選択処理部１３は、転送パステーブル１３３上の有効となった転送パス番号(PN)に対応する割当ストリーム数(PC)を１加算し、再格納する（ステップＳ１１）。
【０３８３】
更に、パス選択処理部１３は、ステップＳ１１において改めて得られた転送パステーブル１３３を基に、転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算し、この値によりパス割当テーブル１３２を更新する（ステップＳ１２）。この転送禁止ビット列(PX)と割当禁止ビット列(AX)との再計算の方法も、上記した第１の実施の形態と同様の処理により実行するものとする。
【０３８４】
次に、パス選択処理部１３は、ステップＳ８０３と同様に、ステップＳ８０１で保持した使用パスビット列(UP)を反転させて得たビット列と転送パス状態ビット列(PD)とを比較し、同じ桁が共に「１」となるビットが存在するか否かを判定する（ステップＳ８０６）。
【０３８５】
ここで、共に「１」となるビットが存在する場合（ステップＳ８０６のＹｅｓ）、パス選択処理部１３は、転送パス状態テーブル１３７より転送パス状態ビット列(PD)を読み出し、また、マルチパス識別子(M) を基にパス割当テーブル１３５より使用パスビット列(UP)を読み出し、この２つのビット列において、共に「１」が格納されているビットに対しては「１」を、それ以外には「０」を格納することで、転送決定ビット列(PF)を算出する（ステップＳ８０７）。
【０３８６】
このように、転送決定ビット列(PF)上において、共に「１」が格納されているビットに対応するビットに「１」を格納し、それ以外のビットに「０」を格納する手段としては、回路上で対応するビット毎にＯＲ回路を介することで算出する方法等が考えられるが、本発明はこれに限定されず、本発明の趣旨を逸脱しない限り種々変形実施することが可能である。
【０３８７】
また、ステップＳ８０６において、共に「１」となるビットが存在しない場合（ステップＳ８０６のＮｏ）、パス選択処理部１３は、保持しているマルチパス識別子(M) を基にパス割当テーブル１３２より転送禁止ビット列(PX)を読み出し、ステップＳ８０７と同様に、この値を転送決定ビット列(PF)とする（ステップＳ４０８）。
【０３８８】
その後、パス選択処理部１３は、ステップＳ４０９において、特定した転送決定ビット列(PF)を用いて次の転送割当パス番号(PA)を計算し、パス割当テーブル１３２に格納する（ステップＳ４０９）。ここで、この次の転送割当パス番号(PA)を計算する方法は、第２の実施の形態において、図２４を用いて説明した方法と同一であるため、ここでは説明を省略する。
【０３８９】
また、パス選択処理部１３は、ステップＳ４で読み出したキャッシュテーブル１２０上のキャッシュ転送パス番号(CPN) を、ステップＳ１０で改めて割り当てた転送パス番号(PN)に更新するために、この改めて割り当てた転送パス番号(PN)を更新パス番号(PU)としてキャッシュテーブルアクセス部１２に出力し、これに対してキャッシュテーブルアクセス部１２は、レジスタ等に保持しているマルチパス識別子(M) とストリーム識別子(S) とを基に、パス選択処理部１３より入力された更新パス番号(PU)をデータ部における対応するキャッシュ転送パス番号(CPN) に格納して更新する（ステップＳ１４）。
【０３９０】
その後、パス選択処理部１３は、上述したように、有効な転送パス番号(PN)を出力装置選択処理部１４に出力し（ステップＳ８０８）、これに対して、出力装置選択部１４は、入力された転送パス番号(PN)を基に、パケットの転送を実行する（ステップＳ１６）。
【０３９１】
更に、ステップＳ８０３における判定の結果、共に「１」となるビットが存在する場合（ステップＳ８０３のＹｅｓ）、パス選択処理部１３は、ステップＳ１０に移行し、上述したように、マルチパス識別子(M) を基にパス割当テーブル１３２より読み出した転送割当パス番号(PA)を有効な転送パス番号(PN)とし（ステップＳ１０）、その後、転送パステーブル１３３上の対応する割当ストリーム数(PC)を１加算して再格納し（ステップＳ１１）、更に、ステップＳ１１により改めて得られた転送パステーブル１３３を基に転送禁止ビット列(PX)と割当禁止ビット列(AX)とを再計算して格納する（ステップＳ１２）。
【０３９２】
次に、パス選択処理部１３は、ステップＳ８０３と同様に、共に「１」であるビットが存在するか否かを判定し（ステップＳ８０６）、共に「１」となるビットが存在する場合（ステップＳ８０６のＹｅｓ）、転送パス状態ビット列(PD)と使用パスビット列(UP)を読み出し、これの"ＯＲ"を取ったものを転送決定ビット列(PF)とし（ステップＳ８０７）、また、ステップＳ８０６の判定の結果、共に「１」となるビットが存在しない場合（ステップＳ８０６のＮｏ）、割当禁止ビット列(AX)読み出し、これを転送決定ビット列(PF)とし（ステップＳ４０８）、その後、ステップＳ４０９において、この転送決定ビット列(PF)を用いて次の転送割当パス番号(PA)を計算して格納する（ステップＳ４０９）。
【０３９３】
また、パス選択処理部１３は、ステップＳ４で読み出したキャッシュテーブル１２０上のキャッシュ転送パス番号(CPN) を更新するために、更新パス番号(PU)をキャッシュテーブルアクセス部１２に出力し、これに対してキャッシュテーブルアクセス部１２は、更新パス番号(PU)を対応するデータ部に格納し（ステップＳ１４）、その後、パス選択処理部１３は、有効な転送パス番号(PN)を出力装置選択処理部１４に出力する（ステップＳ８０８）。
【０３９４】
これに対して、出力装置選択部１４は、入力された転送パス(P) を基にパケットの転送を実行する（ステップＳ１６）。
【０３９５】
《第３の実施の形態による効果》
以上、図面を用いて説明した動作から明らかなように、例えば、図２５に示すような、転送パス(P) ＝「５」上に障害が発生した場合、パス選択処理部１３は、転送パス状態テーブル１３７の転送パス状態ビット列(PD)における転送パス番号(PN)＝「５」に対応するビットに「転送禁止状態」を示すビットを格納する。これにより、転送パス状態テーブル１３７は、図３１に示すように各パラメータが変更される。
【０３９６】
従って、転送パス(P) の割り当てを変更しなければならないパケットに対して割当変更を実施する場合、転送禁止ビット列(PX)と割当禁止ビット列(AX)とによらず、転送パス状態ビット列(PD)と使用パスビット列(UP)を参照して、改めて割り当てる転送パス(P) を特定する。
【０３９７】
以上のことをまとめると、第３の実施の形態では、第２の実施の形態と同様な障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当比に従って転送先を割り当てる際の、高速に負荷分散割当比に従って割当変更処理を実行する効果を、より少ないメモリ量により実現することが可能となる。
【０３９８】
第２の実施の形態と同様に、ソフトウエアによる再計算処理が必要でない理由は、障害の発生に伴い割り当てていた転送パス(P) を変更する必要があるか否かを判断するにあたり、第１の実施の形態のように転送禁止ビット列(AX)を基に割当変更判断を実行する替わりに、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとして、転送パス状態ビット列(PD)を基に割当変更判断を実行し、更に、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割り当てに従って転送先を割り当てる場合は、第１の実施の形態のような割当禁止ビット列(AX)を基に割当変更を行う替わりに、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとして、転送パス状態ビット列(PD)と使用パスビット列(UP)とを基に他の転送パス(P) に割り当てる処理を実行することで、パス選択処理部１３が最大ストリーム数(PH)が更新されることにより値が変更される転送禁止ビット列(PX)と割当禁止ビット列(AX)とを参照する必要をなくしたためである。
【０３９９】
更に第３の実施の形態では、第２の実施の形態と比較して、より少ないメモリ量で同様の効果を奏することが可能である。これは、転送パス(P) と転送パス番号(PN)とを１対１で対応させることにより、実際に障害が発生した転送パス(P) とマルチパス識別子(M) 及び転送パス番号(PN)との対応、及び割り当てた転送パス番号(PN)と転送パス(P) との対応を特定するためのテーブルを必要とせず、更に、一括して転送パス状態ビット(PD)を管理することが可能となるためである。
【０４００】
《第４の実施の形態》
第４の実施の形態では、上記した各実施の形態に対して、キャッシュテーブル１２０のデータ部にエージング処理を行うためのデータを設ける。この構成により、キャッシュテーブルアクセス部１２は、一定時間パケットの到達していない転送パス(P) の転送パス番号(PN)を「未登録状態」とするように構成することで、状況に応じてより柔軟に転送パスの割り当てが行えるようにするものである。
【０４０１】
従って、キャッシュテーブルアクセス部１２は、キャッシュテーブル１２０における転送パス番号(PN)を「未登録状態」とした際に、パス選択処理部１３に対して、削除した転送パス番号(PN)とこの削除した転送パス番号(PN)に対応するマルチパス識別子(M) とを通知する。この通知を受信したパス選択処理部１３は、転送パステーブル１３１の該当する割当ストリーム数(PC)を１減算する。
【０４０２】
割当ストリーム数(PC)を更新した際には、第１の実施の形態に記載の通り、パス割当テーブル１３０の転送禁止ビット(PX)及び割当禁止ビット(AX)の更新を行う。
【０４０３】
これにより、第４の実施の形態では、転送パスの追加・削除、及び分散比の変更時に、エージングにより削除されたストリームに対して改めて転送パス(P) を割り当てるため、劣化率をより小さくすることが可能である。
【０４０４】
《第５の実施の形態》
以下、上記した各実施の形態を説明する上で述べたパス選択処理部１３における転送パス決定方法に関し、別手段を用いた例を第５の実施の形態として例示する。
【０４０５】
第５の実施の形態では、パス割当テーブル１３０から連続割当数(PS)のデータを、また、転送パステーブル１３１から最大連続割当数(PW)のデータを削除し、メモリ容量を削減するように構成されている。
【０４０６】
従って、転送パス(P) を割り当てる処理では、１つのストリームを転送パス(P) に割り当てる度に割り当てる対象の転送パス(P) を替える、即ち、連続して１個のストリームしか転送パス(P) に割り当てないものとしている。
【０４０７】
また、転送パス(P) を割り当てる度に、転送割当パス番号(PA)を更新するように構成することで、１つのストリームを割り当てる度に変化する転送割当パス番号(PA)に対して的確に動作するように構成する。ここで、転送割当パス番号(PA)の更新方法は第１の実施の形態と同様であるため、本実施の形態では説明を省略する。
【０４０８】
《第６の実施の形態》
また、第６の実施の形態では、パス選択処理部１３における転送パス決定方法に関し、更に別手段を例示する。
【０４０９】
第６の実施の形態では、パス割当テーブル１３０から連続割当数(PS)のデータを、また、転送パステーブル１３１から最大連続割当数(PW)のデータを削除し、メモリ容量を削除するように構成されている。
【０４１０】
従って、転送パス(P) を割り当てる処理では、ある転送パス番号(PN)への割り当てを開始した場合には、割当ストリーム数(PC)が最大ストリーム数(PH)に到達するまで連続して割り当てられる。その後、割当ストリーム数(PC)が最大ストリーム数(PH)に到達すると、転送割当パス番号(PA)を更新し、別の転送パス番号(PN)への割り当てに移行する。
【０４１１】
このとき、転送割当パス番号(PA)の選択・決定は、最も転送割当パス番号(PA)の大きな値であるものを選択する方法や、マルチパス識別子(M) が少ないものから順番に選択する方法等が考えられる。ここで、転送割当パス番号(PA)の更新方法は、第１の実施の形態と同様であるため、本実施の形態では説明を省略する。
【０４１２】
《第７の実施の形態》
また、第７の実施の形態では、パス選択処理部１３における転送パス決定方法に関し、更に別手段を例示する。
【０４１３】
第７の実施の形態では、パス割当テーブル１３０から連続割当数(PS)のデータを、転送パステーブル１３１から最大連続割当数(PW)のデータを削除し、メモリ容量を削減するように構成されている。
【０４１４】
従って、転送パス(P) の割当処理を実施した際には、毎回、転送パステーブル１３１に保持された転送割当パス番号(PA)を更新するものとする。従って、パス選択処理部１３は、対象となるマルチパス識別子(M) の全転送パス番号に対して「割当率（＝割当ストリーム数／最大ストリーム数）」を計算し、最も割当率の小さい転送パスを転送割当パス番号(PA)として更新して格納する。
【０４１５】
このような処理を実施することにより、転送パスを割り当てていく過程においても、最大ストリーム数(PH)で規定される最終的な転送パス毎の分散比を維持しながら転送パス(P) の割当処理を実施することが可能となる。
【０４１６】
【発明の効果】
《本発明による効果》
以上、説明したように、本発明によるデータグラム中継装置及びその方法によれば、転送パスの追加・削除が発生した場合、もしくは、この転送パス毎の分散比の変更が生じた場合において、キャッシュテーブル１２０に保持されているマルチパス識別子(M) と転送パス(P) との対応を変更することなく、パス選択処理部１３の備えるパス割当テーブル１３０及び転送パステーブル１３１のみを変更し、「転送禁止状態」とされている転送パス(P) への転送を回避し、別の転送パス(P) に割り当てることを可能にしている。
【０４１７】
これにより、本発明では、パス選択処理部１３の備えるパス割当テーブル１３０及び転送パステーブル１３１を変更した直後から「転送禁止状態」と変更された転送パス(P) に既に割り当てられていたストリームに関して、この割り当てられていたストリームの内、最小数のストリームだけを別の転送パス(P) に割り当てるように変更することが可能となり、劣化率を最小限に抑えた負荷分散比に従った転送パス(P) の割当処理を実現することができる。
【０４１８】
また、本発明における転送パス(P) の割当変更を実行する処理は、「転送禁止状態」に変更された転送パス(P) に割り当てられていたストリーム識別子(S) を有するデータグラムが到着する度に転送パス(P) の割り当て変更を実施するため、パス選択処理部１３のパス割当テーブル１３０及び転送パステーブル１３１を変更した後は、一度割当変更を実施したデータグラムと同一のストリーム識別子(S) を有するデータグラムに対して、同様な転送パス(P) の割り当て変更処理を実施する必要がなくなり、しかも転送パス(P) の変更を必要とするデータグラムに関し、求められるストリーム識別子(S) とマルチパス識別子(M) との組み合わせに対応する転送パス番号(PN)を、新たに求められた転送パス番号(PN)に更新するため、更新後、割当変更処理が実施されたデータグラムが転送パス(P) を変更されることなく網へ送出されることもなくなる。
【０４１９】
更に本発明では、パス選択処理部１３が転送パス毎にストリームの最大連続割当数(PW)を管理し、この最大連続割当数(PW)の個数ずつストリームを割り当てるように構成するため、キャッシュテーブル１２０に保持され、マルチパス識別子(M) で管理される転送パス番号(PN)のエントリの全てを参照すること無く、最大２つの転送パスエントリを参照するのみで負荷分散比に従って転送パス(P) を割り当てていくことが可能となり、エントリの更新を短時間で行うことが可能となる。
【０４２０】
〈第１の実施の形態による効果〉
以上のことを踏まえると、第１の実施の形態では、以下の３つのような効果を奏することが可能となる。
【０４２１】
先ず、第１の効果は、転送パスの追加・削除、もしくは、設定比の変更が発生した場合に、本発明による動作により、最小限のパケットのみを設定変更することが可能であり、劣化率を最小限に抑えたパケット転送が実現できることである。
【０４２２】
その理由としては、キャッシュテーブルを利用してストリーム毎の転送パスを個別に設定することが可能なためである。
【０４２３】
また、第２の効果は、転送パスの追加・削除、もしくは、設定比の変更が発生した場合に、設定の反映を高速に実行できることである。
【０４２４】
その理由としては、転送パス毎の転送禁止状態を判別する手段を有することにより、更新に時間のかかるキャッシュテーブルを直接更新することなく、パス選択処理部の管理するテーブルのみを設定変更すれば良いためである。
【０４２５】
また、第３の効果は、設定された分散比に従って転送パスの割り当て処理を、少ないメモリアクセスと簡易なハードウエア回路による実装が可能なことである。
【０４２６】
その理由は、転送パスの割り当てを、以下に述べる２つの手順により実現するためである。先ず、第１の手順は、割当ストリーム数の変化した転送パスに対応する割当禁止ビット列を更新し、この更新された割当禁止ビット列を基に割当変更判断を実施する手順である。これにより、割当変更処理において、１パケット処理あたり、キャッシュ転送パス番号と転送割当パス番号との最大２つの転送パス番号のみが対象となる。また、第２の手順は、転送割当パス番号の更新を、割当禁止ビット列を基に、転送パス番号の順番に従い、転送パステーブルの最大ストリーム数の比に従って実現する手順である。この２つの手順は、共に少ないオーバヘッドにより処理され、且つ簡易な構成で実現することができ、更にメモリ参照においてメモリ・インタフェースに大きなビット幅を必要としないため、高速に処理、実現することが可能である。
【０４２７】
〈第２の実施の形態による効果〉
また、第２の実施の形態では、データグラム中継装置４に接続された物理リンクを個々に識別するためのチャネル識別子(C) をマルチパス識別子(M) と転送パス番号(P) とに対応させてチャネルパステーブル１３４上で管理し、更に、チャネル識別子(C) に対応する転送パス(P) 上に障害が発生しているか否かを示す転送パス状態ビット列(PD)をパス割当テーブル１３２上でマルチパス識別子(M) と対応させて管理している。
【０４２８】
また、第２の実施の形態では、あるマルチパス識別子(M) で管理されている転送パス(P) のどこかに障害が発生した場合、転送パス番号(P) に対する転送が可能であるか否かを判定する転送禁止判定において、転送禁止ビット列(PX)の替わりに転送パス状態ビット列(PD)を参照し、更に、転送パス(P) の割当処理において、割当禁止ビット列(AX)の替わりに転送パス状態ビット列(PD)を参照するように構成している。
【０４２９】
これにより、第２の実施の形態では、転送パス(P) 上に障害が発生した場合において、転送パス状態ビット列(PD)を更新後は、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当比に従って転送先を割り当てる際に、各転送パス(P) が受け持っている最大ストリーム数(PH)のソフトウエアによる再計算処理を必要とせず、このため、高速に負荷分散割当比に従って割当変更処理を実行することが可能となる。
【０４３０】
このようにソフトウエアによる再計算処理が必要でない理由は、障害の発生に伴い割り当てていた転送パス(P) を変更する必要があるか否かを判断するにあたり、第１の実施の形態にように転送禁止ビット列(AX)を基に割当変更判断を実行する替わりに、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとして、転送パス状態ビット列(PD)を基に割当変更判断を実行し、更に、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割り当てに従って転送先を割り当てる場合は、第１の実施の形態のような割当禁止ビット列(AX)を基に割当変更を行う替わりに、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとして、転送パス状態ビット列(PD)を基に他の転送パス(P) に割り当てる処理を実行することで、パス選択処理部１３が最大ストリーム数(PH)が更新されることにより値が変更される転送禁止ビット列(PX)と割当禁止ビット列(AX)とを参照する必要をなくしたためである。
【０４３１】
また、第２の実施の形態では、パス選択処理部１３が、対応するマルチパス識別子(M) に区分されるいずれかの転送パス(P) において障害が発生すると、「障害状態」を動作モード(AM)に格納する。また、パス選択処理部１３は、チャネルパステーブル１３４を基に、障害を有するチャネル識別子(C) に対応するマルチパス識別子(M) と転送パス番号(PN)とを特定し、この特定したマルチパス識別子(M) を基にパス割当テーブル１３２において、転送パス状態ビット列(PD)を特定し、更に転送パス状態ビット列(PD)上の特定した転送パス番号(PN)に対応するビットに「転送禁止状態」を示す状態ビットを格納する。
【０４３２】
このように動作することにより、第２の実施の形態では、障害が発生した転送パス(P) に対応付けられる転送パス番号(PN)に対応する転送パス状態ビット列(PD)上のビットを「転送禁止状態」とすることにより、この転送パス(P) に転送されることを回避することが可能になる。
【０４３３】
〈第３の実施の形態による効果〉
また、第３の実施の形態では、データグラム転送装置４に設定された転送パス(P) に対して転送パス番号(PN)が１対１で対応するように構成し、また、上記の転送パス状態ビット列(PD)をマルチパス識別子(M) に区分することなくパス選択処理部１３のレジスタ等で一括に管理するように構成している。
【０４３４】
このため、第３の実施の形態では、第２の実施の形態に対して、パス選択処理部１３に接続されたチャネルパステーブル１３４と、パス割当テーブル１３２上の動作モード(AM)及び転送パス状態ビット列(PD)と、転送パステーブル１３３上の転送パス(P) とを削除し、新たに転送パステーブル１３６上に使用パスビット列(UP)を設け、更に、パス選択処理部１３上で転送パス状態テーブル１３７を管理するように構成することで、必要となるメモリ量を削減するように構成している。
【０４３５】
また、上記したように転送パス番号(PN)と転送パス(P) とは１対１に対応するよう構成するため、転送パス番号(PN)と転送パス(P) とを同一な情報で構成する。
【０４３６】
このように、第３の実施の形態では、あるマルチパス識別子(M) で管理されている転送パス(P) のどこかに障害が発生した場合の転送パス(P) の割当変更処理において、パス選択処理部１３が、入力された障害通知信号より特定した転送パス(P) と対応するビットが「転送禁止状態」に設定変更された転送パス状態ビット列(PD)と、使用している転送パス(P) を示す使用パスビット列(UP)とを基に、パケットに対する割当変更を実施するか否かを判断する割当変更判断を行い、この判断において割り当てる転送パス(P) を変更することが判断された場合、転送パス(P) の割当変更処理において、割り当てる転送パス状態ビット列(PD)と使用パスビット列(UP)とを用いて、改めて割り当てる転送パス(P) を特定するように構成される。
【０４３７】
このように構成することにより、第３の実施の形態では、第２の実施の形態と同様な障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割当比に従って転送先を割り当てる際の、高速に負荷分散割当比に従って割当変更処理を実行する効果を、より少ないメモリ量により実現することが可能となる。
【０４３８】
また、第２の実施の形態と同様に、ソフトウエアによる再計算処理が必要でない理由は、障害の発生に伴い割り当てていた転送パス(P) を変更する必要があるか否かを判断するにあたり、第１の実施の形態のように転送禁止ビット列(AX)を基に割当変更判断を実行する替わりに、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとして、転送パス状態ビット列(PD)を基に割当変更判断を実行し、更に、障害が発生することにより割り当てられていた転送パス(P) を変更することが必要となったストリームに対して負荷分散割り当てに従って転送先を割り当てる場合は、第１の実施の形態のような割当禁止ビット列(AX)を基に割当変更を行う替わりに、転送パス(P) の経路上に含まれる物理リンクからの障害通知信号をトリガーとして、転送パス状態ビット列(PD)と使用パスビット列(UP)とを基に他の転送パス(P) に割り当てる処理を実行することで、パス選択処理部１３が最大ストリーム数(PH)が更新されることにより値が変更される転送禁止ビット列(PX)と割当禁止ビット列(AX)とを参照する必要をなくしたためである。
【０４３９】
更に第３の実施の形態では、第２の実施の形態と比較して、より少ないメモリ量で同様の効果を奏することが可能である。これは、転送パス(P) と転送パス番号(PN)とを１対１で対応させることにより、実際に障害が発生した転送パス(P) とマルチパス識別子(M) 及び転送パス番号(PN)との対応、及び割り当てた転送パス番号(PN)と転送パス(P) との対応を特定するためのテーブルを必要とせず、更に、一括して転送パス状態ビット(PD)を管理することが可能となるためである。
【０４４０】
〈第４の実施の形態による効果〉
また、第４の実施の形態では、上記した各実施の形態に対して、キャッシュテーブル１２０のデータ部にエージング処理を行うためのデータを設ける。この構成により、キャッシュテーブルアクセス部１２は、一定時間パケットの到達していない転送パス(P) の転送パス番号(PN)を「未登録状態」とするように構成することで、状況に応じてより柔軟に転送パスの割り当てが行えるようにするものである。
【０４４１】
従って、第４の実施の形態では、転送パスの追加・削除、及び分散比の変更時に、エージングにより削除されたストリームに対して改めて転送パス(P) を割り当てるため、劣化率をより小さくすることが可能である。
【０４４２】
〈第５の実施の形態による効果〉
また、第５の実施の形態では、転送パス(P) を割り当てる処理において、１つのストリームを転送パス(P) に割り当てる度に割り当てる対象の転送パス(P) を替える、即ち、連続して１個のストリームしか転送パス(P) に割り当てないものとしている。
【０４４３】
従って、第５の実施の形態では、パス割当テーブル１３０から連続割当数(PS)のデータを、また、転送パステーブル１３１から最大連続割当数(PW)のデータを削除し、メモリ容量を削減するように構成されている。
【０４４４】
〈第６の実施の形態による効果〉
また、第６の実施の形態では、転送パス(P) を割り当てる処理では、ある転送パス番号(PN)への割り当てを開始した場合には、割当ストリーム数(PC)が最大ストリーム数(PH)に到達するまで連続して割り当てられる。その後、割当ストリーム数(PC)が最大ストリーム数(PH)に到達すると、転送割当パス番号(PA)を更新し、別の転送パス番号(PN)への割り当てに移行する。
【０４４５】
従って、第６の実施の形態では、パス割当テーブル１３０から連続割当数(PS)のデータを、また、転送パステーブル１３１から最大連続割当数(PW)のデータを削除し、メモリ容量を削除するように構成されている。
【０４４６】
〈第７の実施の形態による効果〉
また、第７の実施の形態では、パス割当テーブル１３０から連続割当数(PS)のデータを、転送パステーブル１３１から最大連続割当数(PW)のデータを削除し、メモリ容量を削減するように構成されている。
【０４４７】
従って、転送パス(P) の割当処理を実施した際には、毎回、転送パステーブル１３１に保持された転送割当パス番号(PA)を更新するものとする。従って、パス選択処理部１３は、対象となるマルチパス識別子(M) の全転送パス番号に対して「割当率（＝割当ストリーム数／最大ストリーム数）」を計算し、最も割当率の小さい転送パスを転送割当パス番号(PA)として更新して格納する。
【０４４８】
このような処理を実施することにより、転送パスを割り当てていく過程においても、最大ストリーム数(PH)で規定される最終的な転送パス毎の分散比を維持しながら転送パス(P) の割当処理を実施することが可能となる。
【図面の簡単な説明】
【図１】本発明におけるデータ中継装置４を示すブロック図である。
【図２】本発明におけるデータ中継装置４を示すブロック図である。
【図３】本発明の第１の実施の形態における転送先決定処理装置１の構成例を示すブロック図である。
【図４】本発明の第１の実施の形態におけるキャッシュテーブル１２０の構成例を示すテーブルである。
【図５】本発明の第１の実施の形態におけるパス割当テーブル１３０の構成例を示すテーブルである。
【図６】本発明の第１の実施の形態における転送パステーブル１３１の構成例を示すテーブルである。
【図７】本発明の第１の実施の形態による動作を示すフローチャートである。
【図８】本発明の第１の実施の形態において転送割当パス番号(PA)を更新する動作を示すフローチャートである。
【図９】本発明の第１の実施の形態における更新前のパス割当テーブル１３０の具体例を示すテーブルである。
【図１０】本発明の第１の実施の形態における更新前の転送パステーブル１３１の具体例を示すテーブルである。
【図１１】本発明の第１の実施の形態における更新後のパス割当テーブル１３０の具体例を示すテーブルである。
【図１２】本発明の第１の実施の形態における更新後の転送パステーブル１３１の具体例を示すテーブルである。
【図１３】本発明の第１の実施の形態における更に更新後のパス割当テーブル１３０の具体例を示すテーブルである。
【図１４】本発明の第１の実施の形態における更に更新後の転送パステーブル１３１の具体例を示すテーブルである。
【図１５】本発明の第２の実施の形態におけるネットワーク構成例を示すブロック図である。
【図１６】本発明の第２の実施の形態における転送先決定処理装置１の構成例を示すブロック図である。
【図１７】本発明の第２の実施の形態におけるチャネルパステーブル１３４の具体例を示すテーブルである。
【図１８】本発明の第２の実施の形態におけるパス割当テーブル１３２の更新前の具体例を示すテーブルである。
【図１９】本発明の第２の実施の形態における転送パステーブル１３３の具体例を示すテーブルである。
【図２０】本発明の第２の実施の形態におけるパス割当テーブル１３２の更新後の具体例を示すテーブルである。
【図２１】本発明の第２の実施の形態におけるパス割当テーブル１３２上の動作モード(AM)と転送パス状態ビット列(PD)とを発生した障害により更新する動作を示すフローチャートである。
【図２２】本発明の第２の実施の形態におけるパス割当テーブル１３２上の動作モード(AM)と転送パス状態ビット列(PD)とを障害の回復により更新する動作を示すフローチャートである。
【図２３】本発明の第２の実施の形態による動作を示すフローチャートである。
【図２４】本発明の第２の実施の形態において転送割当パス番号(PA)を更新する動作を示すフローチャートである。
【図２５】本発明の第３の実施の形態におけるネットワーク構成例を示すブロック図である。
【図２６】本発明の第３の実施の形態における転送先決定処理装置１の構成例を示すブロック図である。
【図２７】本発明の第３の実施の形態におけるパス割当テーブル１３５の更新前の具体例を示すテーブルである。
【図２８】本発明の第３の実施の形態における転送パステーブル１３６の具体例を示すテーブルである。
【図２９】本発明の第３の実施の形態における転送パス状態テーブル１３７の更新前の具体例を示すテーブルである。
【図３０】本発明の第３の実施の形態におけるパス割当テーブル１３５の更新前の具体例を示すテーブルである。
【図３１】本発明の第３の実施の形態におけるパス割当テーブル１３５の更新後の具体例を示すテーブルである。
【図３２】本発明の第３の実施の形態におけるパス割当テーブル１３５上の動作モード(AM)と転送パス状態ビット列(PD)とを発生した障害により更新する動作を示すフローチャートである。
【図３３】本発明の第３の実施の形態におけるパス割当テーブル１３２上の動作モード(AM)と転送パス状態ビット列(PD)とを障害の回復により更新する動作を示すフローチャートである。
【図３４】本発明の第３の実施の形態による動作を示すフローチャートである。
【図３５】ＤＷＤＭを並列に複数設定したネットワーク構成例を示すブロック図である。
【図３６】ＭＰＬＳベースのトラフィックエンジニアリングによるネットワーク構成例を示すブロック図である。
【図３７】Hash-Threshold方式においてＣＲＣ演算を用いて算出したキーが割り当てられる領域を示す図である。
【図３８】従来技術において次ホップルータの変化に伴い転送先が変更される領域を示す図である。
【図３９】理論上において次ホップルータの変化に伴い転送先が変更される領域を示す図である。
【符号の説明】
１、１ａ〜ｎ  転送先決定処理装置
２ａ〜ｎ、３ａ〜ｎ  プロトコル終端装置
４、４ａ〜ｈ  データグラム転送装置
１０  ヘッダ抽出処理部
１１  経路解決処理部
１２  キャッシュテーブルアクセス部
１３  パス選択処理部
１４  出力装置選択部
１００ａ〜ｆ  ルータ
１１０ａ〜ｆ  光波通信装置
１２０  キャッシュテーブル
１３０、１３２、１３５  パス割当テーブル
１３１、１３３、１３６  転送パステーブル
１３４  チャネルパステーブル
１３７  転送パス状態テーブル
２００ａ  入口ルータ
２００ｂ〜ｅ  中継ルータ
２００ｆ  出口ルータ
Ａ  宛先ＩＰアドレス
ＡＭ  動作モード
ＡＸ  割当禁止ビット列
Ｃ  チャネル識別子
ＣＰＮ  キャッシュ転送パス番号
Ｄ  ＩＰデータグラム（パケット）
Ｍ  マルチパス識別子
Ｐ  転送パス
ＰＡ  転送割当パス番号
ＰＣ  割当ストリーム数
ＰＤ  転送パス状態ビット列
ＰＦ  転送決定ビット列
ＰＨ  最大ストリーム数
ＰＪ  転送判定ビット
ＰＮ  転送パス番号
ＰＳ  連続割当数
ＰＵ  更新パス番号
ＰＷ  最大連続割当数
ＰＸ  転送禁止ビット列
Ｓ  ストリーム識別子
ＵＰ  使用パスビット列
【図１】
0003601393.tif 000002
【図２】
0003601393.tif 000003
【図３】
0003601393.tif 000004
【図４】
0003601393.tif 000005
【図５】
0003601393.tif 000006
【図６】
0003601393.tif 000007
【図７】
0003601393.tif 000008
【図８】
0003601393.tif 000009
【図９】
0003601393.tif 000010
【図１０】
0003601393.tif 000011
【図１１】
0003601393.tif 000012
【図１２】
0003601393.tif 000013
【図１３】
0003601393.tif 000014
【図１４】
0003601393.tif 000015
【図１５】
0003601393.tif 000016
【図１６】
0003601393.tif 000017
【図１７】
0003601393.tif 000018
【図１８】
0003601393.tif 000019
【図１９】
0003601393.tif 000020
【図２０】
0003601393.tif 000021
【図２１】
0003601393.tif 000022
【図２２】
0003601393.tif 000023
【図２３】
0003601393.tif 000024
【図２４】
0003601393.tif 000025
【図２５】
0003601393.tif 000026
【図２６】
0003601393.tif 000027
【図２７】
0003601393.tif 000028
【図２８】
0003601393.tif 000029
【図２９】
0003601393.tif 000030
【図３０】
0003601393.tif 000031
【図３１】
0003601393.tif 000032
【図３２】
0003601393.tif 000033
【図３３】
0003601393.tif 000034
【図３４】
0003601393.tif 000035
【図３５】
0003601393.tif 000036
【図３６】
0003601393.tif 000037
【図３７】
0003601393.tif 000038
【図３８】
0003601393.tif 000039
【図３９】
0003601393.tif 000040