(57)【要約】【課題】パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減すること。【解決手段】リオーダ処理部３１４は、セグメントのスイッチングが完了したことをリオーダビットマップ３１５に記録する。リオーダビットマップ３１５は、シーケンス番号に対応するビットを備え、スイッチングが完了したセグメントのシーケンス番号に対応するビットが「１」とされる。監視区間設定部３１６は、スイッチングの完了を待機する必要があるセグメントのシーケンス番号をリオーダビットマップ３１５の監視区間として設定する。パケット組立部３１７は、リオーダビットマップ３１５のシーケンス番号が小さい順に対象ビットを設定し、対象ビットが「０」かつ対象ビットが監視区間外であればタイムアウトを待機せずにリアセンブル処理を続行する。【選択図】        図２
2008236304.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパケットを所望の宛先へ送信するパケット通信装置であって、
入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割手段と、
前記分割手段によって生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ手段と、
前記スイッチ手段によるスイッチングが完了したか否かを監視する対象のシーケンス番号を示す監視区間を設定する設定手段と、
前記設定手段によって設定された監視区間外のシーケンス番号が付与されたセグメントについては前記スイッチング手段によるスイッチングの完了を待機することなく、スイッチングが完了したセグメントをシーケンス番号順に結合してパケットを組み立てる組立手段と
を有することを特徴とするパケット通信装置。
【請求項２】
前記設定手段は、
前記スイッチング手段によるスイッチングが完了した最新のセグメントに付与されたシーケンス番号を含む監視区間を設定することを特徴とする請求項１記載のパケット通信装置。
【請求項３】
前記設定手段は、
前記スイッチング手段によるスイッチングが完了した最新のセグメントに付与されたシーケンス番号を監視区間内の最大のシーケンス番号とし、前記スイッチング手段におけるスイッチングの処理時間の差により順序が入れ替わり得るセグメント数分のシーケンス番号を監視区間に設定することを特徴とする請求項２記載のパケット通信装置。
【請求項４】
前記設定手段は、
セグメントに付与されるすべてのシーケンス番号に対応するビットを備えたビットマップと、
前記スイッチ手段によるセグメントのスイッチングが完了すると、スイッチングが完了した旨を当該セグメントのシーケンス番号に対応する前記ビットマップのビットに記録する記録手段とを含み、
前記ビットマップ上において、前記記録手段によってスイッチングが完了した旨が記録されたビットに基づいた監視区間を設定することを特徴とする請求項１記載のパケット通信装置。
【請求項５】
前記組立手段は、
シーケンス番号が小さい順にセグメントのスイッチングが完了したか否かを判断し、スイッチング完了しておらず、かつ、対象のシーケンス番号が監視区間外である場合は、直ちに対象のシーケンス番号を１増加させることを特徴とする請求項１記載のパケット通信装置。
【請求項６】
入力されたパケットを所望の宛先へ送信するパケット通信方法であって、
入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割工程と、
前記分割工程にて生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ工程と、
前記スイッチ工程におけるスイッチングが完了したか否かを監視する対象のシーケンス番号を示す監視区間を設定する設定工程と、
前記設定工程にて設定された監視区間外のシーケンス番号が付与されたセグメントについては前記スイッチング工程におけるスイッチングの完了を待機することなく、スイッチングが完了したセグメントをシーケンス番号順に結合してパケットを組み立てる組立工程と
を有することを特徴とするパケット通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたパケットを所望の宛先へ送信するパケット通信装置およびパケット通信方法に関し、特に、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができるパケット通信装置およびパケット通信方法に関する。
【背景技術】
【０００２】
一般に、例えばネットワーク上のパケットを中継するスイッチなどのパケット通信装置においては、パケットに含まれるデータの通信品質を確保するためにＱｏＳ（Quality of Service）制御が行われる。具体的には、通信品質ごとのバッファをパケット通信装置に備えておき、受信されたパケットをこのパケットに要求される通信品質のバッファに格納し、各バッファからパケットを送信する頻度を異ならせることにより、ＱｏＳ制御が行われる。これにより、例えばリアルタイム性が要求されるデータのパケットは、パケット通信装置への到着順序に拘わらず優先して送信され、データのリアルタイム性が損なわれることがない。
【０００３】
このようなパケット通信装置においては、例えば特許文献１に記載されたように、パケットが分割され、得られたセグメント単位で宛先へのスイッチングが行われることがある。スイッチング後のセグメントは、再びパケットに組み立てられ、パケット通信装置から送信される。図１２は、このようなパケット通信装置の一例であるパケットスイッチの構成例を示すブロック図である。同図に示すパケットスイッチは、入力インタフェース部（以下「入力ＩＦ部」と略記する）１０−１〜１０−ｎ（ｎは２以上の整数）、回線間スケジューラ２０、スイッチ部３０、および出力インタフェース部（以下「出力ＩＦ部」と略記する）４０−１〜４０−ｎを有している。
【０００４】
入力ＩＦ部１０−１〜１０−ｎは、それぞれ異なるパケットの送信元または転送元に対応しており、外部から入力されたパケットを固定長のセグメントに分割する。そして、入力ＩＦ部１０−１〜１０−ｎは、パケットの分割により得られたセグメントを通信品質ごとに複数設けられたバッファに格納する。
【０００５】
回線間スケジューラ２０は、通信品質ごとの出力順序を決定し、決定された出力順序でそれぞれの通信品質について複数設けられた入力ＩＦ部１０−１〜１０−ｎのバッファからセグメントを出力させる。
【０００６】
スイッチ部３０は、回線間スケジューラ２０から出力されるセグメントに対するスイッチングを行って、セグメントの宛先に対応する出力ＩＦ部４０−１〜４０−ｎへセグメントを出力する。
【０００７】
出力ＩＦ部４０−１〜４０−ｎは、それぞれ異なるパケットの宛先または転送先に対応しており、スイッチ部３０から出力されたセグメントからパケットを組み立て、組み立てられたパケットを宛先または転送先へ送信する。
【０００８】
このようなパケットスイッチでは、パケットがセグメントに分割されるものの、同一パケット由来のセグメントはスイッチ部３０のスイッチングにより、同一の出力ＩＦ部４０−１〜４０−ｎへ出力され、再びパケットとして組み立てられて宛先へ送信される。また、スイッチ部３０に複数のｎ×ｎスイッチを設け、それぞれのｎ×ｎスイッチが独立にセグメントのスイッチングを行うことにより、スイッチ部３０の処理負荷を複数のｎ×ｎスイッチに分散することができる。
【０００９】
【特許文献１】特開２００１−３３９４２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、上述したパケットスイッチにおいて、スイッチ部３０に複数のｎ×ｎスイッチが独立にセグメントに対するスイッチングを行う場合、同一パケット由来のセグメントが出力ＩＦ部４０−１〜４０−ｎに到着する順序が本来のセグメントの順序と異なってしまうことがある。すなわち、例えばあるパケットの１番目のセグメントと２番目のセグメントとがスイッチ部３０の異なるｎ×ｎスイッチにおいてスイッチングされた場合、２番目のセグメントに対するスイッチングが早ければ、２番目のセグメントが先に出力ＩＦ部４０−１〜４０−ｎに到着する。
【００１１】
このような場合、出力ＩＦ部４０−１〜４０−ｎにおいては、セグメントを本来の順序に並べ替えてパケットを組み立てる必要がある。このため、入力ＩＦ部１０−１〜１０−ｎにおいてパケットが分割される際、各セグメントに連続したシーケンス番号が付与され、出力ＩＦ部４０−１〜４０−ｎにおいては、パケットの組み立てに先行して、シーケンス番号が連続するようにセグメントの順序が並び替えられる。入力ＩＦ部１０−１〜１０−ｎにおいてセグメントに付与されるシーケンス番号は、パケットを区別せずに通し番号となっているため、出力ＩＦ部４０−１〜４０−ｎは、パケットスイッチに入力された順に正しくパケットを組み立てて出力することが可能となる。
【００１２】
しかしながら、パケットスイッチに入力されるパケットが例えば複数の宛先へ送信されるマルチキャストパケットである場合、出力ＩＦ部４０−１〜４０−ｎに到着するセグメントのシーケンス番号が連続しないことがあり、出力ＩＦ部４０−１〜４０−ｎでは、シーケンス番号の非連続がパケットの宛先の違いによるものなのか、スイッチ部３０におけるスイッチングの処理時間の差やセグメントの消失などの障害によるものなのか判断できないという問題がある。
【００１３】
具体的には、例えば図１３に示すように、マルチキャストパケットであるパケット＃１〜＃３が入力ＩＦ部１０−１に入力された場合、パケット＃１はセグメント１〜３に分割され、パケット＃２はセグメント４〜９９に分割され、パケット＃３はセグメント１００となる（すなわち、パケット＃３は１セグメントで１パケット）。これらのパケット＃１〜＃３のうち、パケット＃１、＃３は、出力ＩＦ部４０−１、４０−ｍ（ｍは２以上の整数）に対応する宛先へ送信されるものとし、パケット＃２は、出力ＩＦ部４０−１に対応する宛先のみへ送信されるものとすると、スイッチ部３０のスイッチングにより、セグメント１〜１００が出力ＩＦ部４０−１へ出力され、セグメント１〜３、１００が出力ＩＦ部４０−ｍへ出力される。
【００１４】
このとき、出力ＩＦ部４０−１においては、セグメント１〜１００が到着し、セグメントのシーケンス番号順にパケットが組み立てられ、パケットの入力順と同様の順序でパケット＃１〜＃３が出力される。一方、出力ＩＦ部４０−ｍにおいては、パケット＃２由来のセグメント４〜９９が到着せずにセグメント１〜３の後にセグメント１００が到着することになる。したがって、出力ＩＦ部４０−ｍは、セグメント１〜３からパケット＃１を組み立てて出力した後セグメント１００が到着しても、タイムアウトが発生するまではセグメント４〜９９の到着を待機する。
【００１５】
このように、出力ＩＦ部４０−ｍは、パケット＃２由来のセグメント４〜９９が到着するか否かを判断することができないため、パケット＃２の宛先に対応していないにも拘わらずセグメント４〜９９の到着をタイムアウト発生まで待機し、結果としてパケット＃３の出力が遅延してしまうことになる。また、出力ＩＦ部４０−ｍにセグメント１００が到着した時点でパケット＃３を組み立てて出力してしまうことも考えられるが、単にスイッチ部３０におけるスイッチングの処理時間の差によりセグメント４〜９９の到着が遅れている場合には、データの順序が守られず、ＱｏＳ制御が機能しないことになってしまう。
【００１６】
本発明はかかる点に鑑みてなされたものであり、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができるパケット通信装置およびパケット通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、本発明は、入力されたパケットを所望の宛先へ送信するパケット通信装置であって、入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割手段と、前記分割手段によって生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ手段と、前記スイッチ手段によるスイッチングが完了したか否かを監視する対象のシーケンス番号を示す監視区間を設定する設定手段と、前記設定手段によって設定された監視区間外のシーケンス番号が付与されたセグメントについては前記スイッチング手段によるスイッチングの完了を待機することなく、スイッチングが完了したセグメントをシーケンス番号順に結合してパケットを組み立てる組立手段とを有する構成を採る。
【００１８】
この構成によれば、監視区間外のシーケンス番号が付与されたセグメントに対する待機時間が短縮され、パケットの組み立てが迅速に行われることになり、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
【００１９】
また、本発明は、上記構成において、前記設定手段は、前記スイッチング手段によるスイッチングが完了した最新のセグメントに付与されたシーケンス番号を含む監視区間を設定する構成を採る。
【００２０】
この構成によれば、各セグメントに対するスイッチングの処理時間の差を考慮して監視区間を設定することができ、スイッチングが遅延しているセグメントのみをパケット組み立て時に待機するセグメントとすることができる。
【００２１】
また、本発明は、上記構成において、前記設定手段は、前記スイッチング手段によるスイッチングが完了した最新のセグメントに付与されたシーケンス番号を監視区間内の最大のシーケンス番号とし、前記スイッチング手段におけるスイッチングの処理時間の差により順序が入れ替わり得るセグメント数分のシーケンス番号を監視区間に設定する構成を採る。
【００２２】
この構成によれば、スイッチングが完了した最新のセグメントに先行するセグメントのうち、スイッチングが遅延している可能性が高いセグメントを監視区間内のセグメントとすることができ、待機する必要があるセグメントに対する待機時間を短縮してしまうことがない。
【００２３】
また、本発明は、上記構成において、前記設定手段は、セグメントに付与されるすべてのシーケンス番号に対応するビットを備えたビットマップと、前記スイッチ手段によるセグメントのスイッチングが完了すると、スイッチングが完了した旨を当該セグメントのシーケンス番号に対応する前記ビットマップのビットに記録する記録手段とを含み、前記ビットマップ上において、前記記録手段によってスイッチングが完了した旨が記録されたビットに基づいた監視区間を設定する構成を採る。
【００２４】
この構成によれば、セグメントごとのスイッチングの完了が確実に記録されるとともに、セグメントをシーケンス番号順に並べ替えるリオーダ処理を容易に実現することができる。また、スイッチングが完了した旨が記録された最新のビットを含む監視区間を設定することにより、スイッチングが遅延しているセグメントのみをパケット組み立て時に待機するセグメントとすることができる。
【００２５】
また、本発明は、上記構成において、前記組立手段は、シーケンス番号が小さい順にセグメントのスイッチングが完了したか否かを判断し、スイッチング完了しておらず、かつ、対象のシーケンス番号が監視区間内である場合は、タイムアウト発生まで前記スイッチング手段によるスイッチングの完了を待機する構成を採る。
【００２６】
この構成によれば、スイッチングが遅延している可能性が高いセグメントについては、タイムアウト発生までスイッチングの完了が待機され、待機する必要があるセグメントに対する待機時間を短縮してしまうことがない。
【００２７】
また、本発明は、上記構成において、前記組立手段は、シーケンス番号が小さい順にセグメントのスイッチングが完了したか否かを判断し、スイッチング完了しておらず、かつ、対象のシーケンス番号が監視区間外である場合は、直ちに対象のシーケンス番号を１増加させる構成を採る。
【００２８】
この構成によれば、スイッチングが遅延している可能性が低いセグメントについては、タイムアウト発生までスイッチングの完了が待機されることなく、不要な待機時間を確実に短縮することができる。
【００２９】
また、本発明は、入力されたパケットを所望の宛先へ送信するパケット通信方法であって、入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割工程と、前記分割工程にて生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ工程と、前記スイッチ工程におけるスイッチングが完了したか否かを監視する対象のシーケンス番号を示す監視区間を設定する設定工程と、前記設定工程にて設定された監視区間外のシーケンス番号が付与されたセグメントについては前記スイッチング工程におけるスイッチングの完了を待機することなく、スイッチングが完了したセグメントをシーケンス番号順に結合してパケットを組み立てる組立工程とを有するようにした。
【発明の効果】
【００３０】
本発明によれば、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
【発明を実施するための最良の形態】
【００３１】
本発明の骨子は、スイッチングが完了した最新のセグメントのシーケンス番号からスイッチングの遅延によって順序が入れ替わり得るシーケンス番号までを監視区間とし、監視区間以前のシーケンス番号のセグメントについては、スイッチングの完了の待機を不要とすることである。以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
【００３２】
図１は、本発明の一実施の形態に係るパケット通信装置の概略構成を示すブロック図である。同図に示すパケット通信装置は、入力インタフェースカード（以下「入力ＩＦカード」と略記する）１００−１〜１００−ｎ（ｎは２以上の整数）、スイッチカード２００、および出力インタフェースカード（以下「出力ＩＦカード」と略記する）３００−１〜３００−ｎを有している。
【００３３】
入力ＩＦカード１００−１〜１００−ｎは、それぞれ異なるパケットの送信元に対応しており、外部から入力されたパケットをセグメントに分割する。具体的には、入力ＩＦカード１００−１〜１００−ｎは、ＭＡＣ（Media Access Control）処理部１１０および入力トラフィック制御部１２０を有している。
【００３４】
ＭＡＣ処理部１１０は、外部からパケットを受信し、受信パケットに対して所定のＭＡＣ処理（誤り検出など）を施す。
【００３５】
入力トラフィック制御部１２０は、ＭＡＣ処理後の受信パケットをセグメントに分割し、各セグメントに連続したシーケンス番号を付与する。そして、入力トラフィック制御部１２０は、各セグメントをスイッチカード２００のスイッチ２１０−１〜２１０−ｍ（ｍは２以上の整数）へ分散して出力する。このとき、入力トラフィック制御部１２０は、セグメントそれぞれにヘッダを付加し、セグメントの宛先、入力ＩＦカード１００−１〜１００−ｎの識別子、入力ＩＦカード１００−１〜１００−ｎそれぞれにおける通しのシーケンス番号、ならびにパケットの先頭、中間、末尾、および先頭かつ末尾のどのセグメントに該当するかを示すセグメントタイプをヘッダに格納する。なお、セグメントタイプが先頭かつ末尾のセグメントは、１セグメントで１つのパケットを構成していることになる。
【００３６】
スイッチカード２００は、入力トラフィック制御部１２０から出力されるセグメントのヘッダを参照し、セグメントの宛先に応じた出力ＩＦカード３００−１〜３００−ｎへセグメントを出力する（スイッチング）。具体的には、スイッチカード２００は、スイッチ２１０−１〜２１０−ｍを有している。
【００３７】
スイッチ２１０−１〜２１０−ｍは、ｎ個の入力ＩＦカード１００−１〜１００−ｎから入力されるセグメントをｎ個の出力ＩＦカード３００−１〜３００−ｎのいずれかへ出力するｎ×ｎスイッチであり、それぞれ独立してヘッダを参照してセグメントの宛先に対応する出力ＩＦカード３００−１〜３００−ｎへセグメントを出力する。なお、スイッチ２１０−１〜２１０−ｍは、セグメントがマルチキャストパケット由来のものである場合には、セグメントを複製した上で複数の出力ＩＦカード３００−１〜３００−ｎへ出力する。また、本実施の形態においては、１つのスイッチカード２００がスイッチ２１０−１〜２１０−ｍを備えるものとしたが、複数のスイッチカードにスイッチ２１０−１〜２１０−ｍを分散して構成しても良い。
【００３８】
出力ＩＦカード３００−１〜３００−ｎは、それぞれ異なるパケットの宛先に対応しており、セグメントからパケットを組み立ててパケットを出力する。具体的には、出力ＩＦカード３００−１〜３００−ｎは、出力トラフィック制御部３１０およびＭＡＣ処理部３２０を有している。
【００３９】
出力トラフィック制御部３１０は、スイッチ２１０−１〜２１０−ｍから出力されるセグメントをシーケンス番号順に並べ替えた後、セグメントからパケットを組み立て、スケジューリングにより決定された順序でパケットをＭＡＣ処理部３２０へ出力する。なお、出力トラフィック制御部３１０の構成および動作については、後に詳述する。
【００４０】
ＭＡＣ処理部３２０は、出力トラフィック制御部３１０から出力されたパケットに対して所定のＭＡＣ処理（送信タイミングの決定など）を施し、パケットを送信する。
【００４１】
図２は、本実施の形態に係る出力トラフィック制御部３１０の内部構成を示すブロック図である。同図に示す出力トラフィック制御部３１０は、ヘッダ抽出部３１１、バッファ３１２、バッファ制御部３１３、リオーダ処理部３１４、リオーダビットマップ３１５、監視区間設定部３１６、パケット組立部３１７、およびスケジューラ３１８を有している。
【００４２】
ヘッダ抽出部３１１は、スイッチ２１０−１〜２１０−ｍから出力されるセグメントのヘッダを抽出し、ヘッダが除去されたセグメントをバッファ３１２へ格納する一方、ヘッダに含まれる、入力ＩＦカード１００−１〜１００−ｎの識別子、シーケンス番号、およびセグメントタイプ（以下これらをまとめて「ヘッダ情報」という）をリオーダ処理部３１４へ通知する。
【００４３】
バッファ３１２は、ヘッダが除去されたセグメントを一時的に保持し、バッファ制御部３１３の制御に従ってセグメントを結合し、得られたパケットを出力する。
【００４４】
バッファ制御部３１３は、バッファ３１２にセグメントが格納されると、このセグメントが格納されたアドレスを示すポインタをリオーダ処理部３１４へ通知する。また、バッファ制御部３１３は、パケット組立部３１７から１パケットに対応するセグメントのポインタの指示を受け、指示されたポインタのセグメントを結合するようにバッファ３１２を制御する。
【００４５】
リオーダ処理部３１４は、ヘッダ抽出部３１１から通知されたシーケンス番号のセグメントのスイッチングが完了したことをリオーダビットマップ３１５に記録することにより、セグメントをシーケンス番号順に並べ替えるリオーダ処理を実行する。また、リオーダ処理部３１４は、セグメントのヘッダ情報とバッファ制御部３１３から通知されるポインタとを関連付けてパケット組立部３１７へ出力する。
【００４６】
リオーダビットマップ３１５は、すべてのシーケンス番号のセグメントについてスイッチングが完了したか否かを記憶するとともに、セグメントからパケットが組み立てられたか否かを記憶する。
【００４７】
具体的には、リオーダビットマップ３１５は、例えば図３に示すように、すべてのシーケンス番号に対応するビットを備えており、スイッチングが完了してセグメントが出力トラフィック制御部３１０に到着すると、リオーダ処理部３１４によって、このセグメントのシーケンス番号に対応するビットが「１」とされる。また、「１」とされたビットのセグメントがパケット組立部３１７によって確認され、このセグメントのポインタがパケット組立部３１７によって記憶されると「１」とされたビットが「０」に戻される。
【００４８】
なお、入力トラフィック制御部１２０にパケットが入力された順にセグメントに分割されてシーケンス番号が付与されるため、リオーダビットマップ３１５においては、シーケンス番号が大きいほど新しいパケット由来のセグメントを示していることになる。
【００４９】
監視区間設定部３１６は、スイッチングの遅延を考慮して出力トラフィック制御部３１０への到着を待機する必要があるセグメントのシーケンス番号をリオーダビットマップ３１５における監視区間として設定する。すなわち、監視区間設定部３１６は、リオーダビットマップ３１５においてビットが「１」とされた最大のシーケンス番号に対応するセグメントとスイッチングの処理時間の差により出力トラフィック制御部３１０への到着順序が入れ替わり得るセグメントのシーケンス番号を監視区間とする。
【００５０】
具体的には、例えば図３に示すリオーダビットマップ３１５において、シーケンス番号１００のビットが「１」となると、監視区間設定部３１６は、セグメント１００とスイッチングの処理時間の差により出力トラフィック制御部３１０への到着順序が入れ替わり得る例えばセグメント９６〜９９のシーケンス番号を監視区間とする。換言すれば、監視区間以前のセグメント０〜９５については、スイッチングの処理がどんなに遅延してもセグメント１００の到着後に出力トラフィック制御部３１０に到着することはない。セグメント１００が出力トラフィック制御部３１０に到着した時点で、これらのセグメント０〜９５が出力トラフィック制御部３１０に未到着の場合は、出力トラフィック制御部３１０が元々セグメント０〜９５の宛先に対応するものではなかったか、セグメント０〜９５が障害などにより消失したと考えられる。
【００５１】
パケット組立部３１７は、リオーダビットマップ３１５、セグメントのヘッダ情報、およびセグメントのポインタを参照して、セグメントからパケットを組み立てるリアセンブル処理を実行する。具体的には、パケット組立部３１７は、リオーダビットマップ３１５のビットをシーケンス番号が小さい順に対象ビットとし、対象ビットが「１」であるか否かを判定する。そして、パケット組立部３１７は、対象ビットが「１」である場合には、このビットに対応するセグメントが出力トラフィック制御部３１０に到着していることから、このセグメントはパケットの組み立てに利用可能であると判断し、セグメントのポインタを記憶すると同時に、対象ビットを「０」に戻す。
【００５２】
また、パケット組立部３１７は、対象ビットが「０」である場合には、対象ビットが監視区間設定部３１６によって設定された監視区間内であるか否かを判断し、対象ビットが監視区間内であれば対象ビットを変更せず、対象ビットが監視区間外であれば直ちに対象ビットのシーケンス番号を１インクリメントする。
【００５３】
さらに、パケット組立部３１７は、ポインタを記憶したセグメントのセグメントタイプから１つのパケットの組み立てが可能であるか否かを判定し、組み立て可能である場合は、１パケットを構成するセグメントのポインタをシーケンス番号順にまとめてバッファ制御部３１３へ通知する。
【００５４】
スケジューラ３１８は、パケット組立部３１７において組み立て可能と判定されたパケットの出力順序をスケジューリングにより決定し、パケット組立部３１７へ通知する。
【００５５】
次いで、上記のように構成された出力トラフィック制御部３１０におけるリオーダビットマップ３１５の監視区間設定の動作について、図４に示すフロー図を参照しながら説明する。
【００５６】
まず、監視区間設定部３１６における監視区間はリオーダビットマップ３１５のシーケンス番号０を含む位置に初期化されている（ステップＳ１０１）。監視区間の長さは、スイッチ２１０−１〜２１０−ｍにおけるスイッチングの処理時間の差に応じて固定されており、処理時間の差によって出力トラフィック制御部３１０への到着順序の入れ替えが発生し得るセグメントの数に対応している。
【００５７】
この状態でスイッチ２１０−１〜２１０−ｍによってスイッチングされたセグメントがヘッダ抽出部３１１によって受信されると（ステップＳ１０２）、ヘッダ抽出部３１１によってセグメントのヘッダが抽出され、ヘッダが除去されたセグメントがバッファ３１２に格納される（ステップＳ１０３）。このとき、セグメントが格納されたバッファ３１２のアドレスを示すポインタは、バッファ制御部３１３からリオーダ処理部３１４へ出力される。
【００５８】
同時に、ヘッダに含まれるヘッダ情報（入力ＩＦカード１００−１〜１００−ｎの識別子、シーケンス番号、およびセグメントタイプ）がヘッダ抽出部３１１からリオーダ処理部３１４へ出力され、リオーダ処理部３１４によって、ヘッダ情報とセグメントのポインタとが関連付けられるとともに、リオーダビットマップ３１５において、セグメントのシーケンス番号に対応するビットが「１」に変更される（ステップＳ１０４）。
【００５９】
リオーダビットマップ３１５が更新されると、監視区間設定部３１６によって、「１」に変更されたビットが現在の監視区間（ここでは、初期化された監視区間）以前のシーケンス番号に対応するビットであるか否かが判定される（ステップＳ１０５）。すなわち、リオーダビットマップ３１５によって新たに「１」となったビットが監視区間内に含まれるビットまたは監視区間よりも小さいシーケンス番号のビットであるか否かが監視区間設定部３１６によって判定される。
【００６０】
ここで、新たに「１」となったビットが監視区間以前のシーケンス番号に対応するビットである場合には（ステップＳ１０５Ｙｅｓ）、スイッチングの処理が遅延したセグメントが出力トラフィック制御部３１０に到着したと考えられるため、監視区間を変更することなく、引き続き出力トラフィック制御部３１０へのセグメントの受信が待機される。
【００６１】
一方、新たに「１」となったビットが監視区間より大きいシーケンス番号に対応するビットである場合には（ステップＳ１０５Ｎｏ）、このシーケンス番号のセグメントが出力トラフィック制御部３１０に到着したことにより、以後は、このシーケンス番号から監視区間の長さを超えて小さいシーケンス番号のセグメントは、スイッチ２１０−１〜２１０−ｍによるスイッチングの処理時間が最大に遅延しても出力トラフィック制御部３１０に到着することがない。したがって、監視区間設定部３１６によって、新たに「１」となったビットのシーケンス番号を監視区間の最大のシーケンス番号とする位置に監視区間が移動される（ステップＳ１０６）。
【００６２】
このように、出力トラフィック制御部３１０に到着したセグメントの最大のシーケンス番号以下の所定数のシーケンス番号を監視区間とすることにより、スイッチ２１０−１〜２１０−ｍの処理時間の差によって到着順序が入れ替わり得るセグメントのシーケンス番号を監視区間に含めることができるとともに、スイッチ２１０−１〜２１０−ｍの処理時間がどんなに遅延しても到着順序が入れ替わり得ないセグメントのシーケンス番号を監視区間から除外することができる。こうして設定された監視区間は、監視区間設定部３１６からパケット組立部３１７へ通知される。
【００６３】
次に、上記のように監視区間が設定された際のリアセンブル処理について、図５に示すフロー図を参照しながら説明する。
【００６４】
パケット組立部３１７には初期状態で０とされる対象ビット番号が保持されており、リオーダビットマップ３１５の対象ビット番号のビット（以下「対象ビット」という）が「１」であるか否かが判定される（ステップＳ２０１）。この結果、対象ビットが「１」であれば（ステップＳ２０１Ｙｅｓ）、パケット組立部３１７によって、対象ビットに対応するセグメントのポインタが記憶されるとともに（ステップＳ２０２）、対象ビットが「０」に戻される（ステップＳ２０３）。こうしてパケット組立部３１７にポインタが記憶されるセグメントは、既にバッファ３１２に保持されており、パケットの組み立てに利用可能なセグメントである。
【００６５】
そして、パケット組立部３１７によって、ポインタが記憶されたセグメントのセグメントタイプが参照され、１パケットを組み立てるのに必要なすべてのセグメントのポインタが記憶されているか否かが判断される（ステップＳ２０４）。ここで、１パケットを組み立てるのに必要なすべてのセグメントのポインタが記憶されていると判断されるのは、セグメントタイプが先頭のセグメントからセグメントタイプが末尾のセグメントまでのシーケンス番号が連続したすべてのセグメントのポインタが記憶されている場合と、セグメントタイプが先頭かつ末尾のセグメントのポインタが記憶されている場合である。
【００６６】
この判断の結果、１パケット分のセグメントが揃っている場合には（ステップＳ２０４Ｙｅｓ）、これらのセグメントからパケットを組み立てることが決定され、スケジューラ３１８へスケジューリングが依頼される。この依頼を受け、スケジューラ３１８では、パケット組立部３１７によって組み立てられるパケットの出力タイミングが決定され、出力タイミングがパケット組立部３１７へ通知される（ステップＳ２０５）。そして、１パケット分のセグメントのポインタがシーケンス番号順にパケット組立部３１７からバッファ制御部３１３へ指示され、バッファ制御部３１３の制御によって、バッファ３１２に格納されたセグメントがパケット組立部３１７からの指示された順に結合され、得られたパケットが出力される（ステップＳ２０６）。
【００６７】
一方、パケット組立部３１７に１パケット分のセグメントのポインタが記憶されていない場合には（ステップＳ２０４Ｎｏ）、パケット組立部３１７における対象ビット番号が１インクリメントされ（ステップＳ２０７）、再び対象ビットが「１」であるか否かが判定される（ステップＳ２０１）。
【００６８】
この判定の結果、対象ビットが「１」であれば、上記と同様の処理が行われるが、対象ビットが「０」であれば（ステップＳ２０１Ｎｏ）、対象ビットに対応するセグメントについてタイムアウトが発生しているか否かがパケット組立部３１７によって判定される（ステップＳ２０８）。すなわち、対象ビット番号が現在の番号になってから所定時間が経過したか否かが判定され、所定時間が経過していれば、対象ビットに対応するセグメントの出力トラフィック制御部３１０への到着についてはタイムアウトが発生したものとされる（ステップＳ２０８Ｙｅｓ）。この場合には、対象ビット番号が１インクリメントされ（ステップＳ２０７）、再び対象ビットが「１」であるか否かが判定され（ステップＳ２０１）、上記と同様の処理が行われる。
【００６９】
また、対象ビット番号が現在の番号になってから所定時間が経過しておらず、タイムアウトが発生していないと判定された場合は（ステップＳ２０８Ｎｏ）、対象ビット番号が監視区間設定部３１６によって設定された監視区間内であるか否かがパケット組立部３１７によって判定される（ステップＳ２０９）。この結果、対象ビット番号が監視区間内でなければ（ステップＳ２０９Ｎｏ）、この対象ビット番号は、スイッチ２１０−１〜２１０−ｍにおける処理時間がどんなに遅延しても既に出力トラフィック制御部３１０に到着しているはずのセグメントのシーケンス番号であることから、タイムアウトの発生を待機せずに対象ビット番号が１インクリメントされる（ステップＳ２０７）。
【００７０】
すなわち、出力トラフィック制御部３１０が対象ビット番号のセグメントの宛先に対応しているならば、このセグメントは、既に出力トラフィック制御部３１０に到着して対象ビットが「１」になっているはずである。ところが、対象ビットが「１」となっていないため、パケット組立部３１７によって、対象ビット番号のセグメントについて、タイムアウトの発生を待機する必要がないと判断される。そして、タイムアウトの発生が待機されることなく、パケット組立部３１７によって対象ビット番号が１インクリメントされるため、パケット組み立て時の処理時間が短縮されることになる。
【００７１】
一方、対象ビット番号が監視区間内であれば（ステップＳ２０９Ｙｅｓ）、この対象ビット番号は、スイッチ２１０−１〜２１０−ｍにおける処理時間の遅延により、まだ出力トラフィック制御部３１０に到着していない可能性があるセグメントのシーケンス番号であることから、パケット組立部３１７によって対象ビット番号が１インクリメントされることなく、引き続き同じ対象ビットが「１」であるか否かが判定される（ステップＳ２０１）。
【００７２】
このように、本実施の形態においては、リオーダビットマップ３１５の「１」となっていない対象ビットが監視区間外である場合には、対象ビットに対応するセグメントに関するタイムアウト発生前であっても対象ビット番号をインクリメントする。このため、スイッチ２１０−１〜２１０−ｍのスイッチングによって出力トラフィック制御部３１０への到着が遅延している可能性がほとんどないセグメントに対するタイムアウトの発生を待機することがなくなる。結果として、不要な待機時間を短縮することができ、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
【００７３】
次に、本実施の形態に係るリアセンブル処理の具体例について、図６〜１１を参照して説明する。以下では、監視区間の長さを５とし、リオーダビットマップ３１５には０から４０９５までの４０９６個のシーケンス番号に対応するビットが設けられているものとする。
【００７４】
初期状態では、図６に示すように、リオーダビットマップ３１５のシーケンス番号０〜４までが監視区間となっており、パケット組立部３１７における対象ビット番号は０となっている。このときには、パケット組立部３１７によって、対象ビット番号０の対象ビットが「１」であるか否かが判定される。図６においては、対象ビットが「０」であるとともに監視区間内に含まれるため、対象ビット番号０のセグメントについてタイムアウトの発生が待機される。
【００７５】
そして、対象ビット番号０のセグメントについてタイムアウトが発生すると、対象ビット番号が１インクリメントされ、図７に示すように、対象ビット番号が１となる。対象ビット番号が１となったことにより、パケット組立部３１７によって、対象ビット番号１の対象ビットが「１」であるか否かが判定される。図７においては、対象ビットが「１」であるため、パケット組立部３１７によって、対象ビット番号１のセグメントのポインタが記憶されると同時に、対象ビットが「０」に戻される。また、シーケンス番号１のセグメントから１パケットが組み立て可能であるか否かがセグメントタイプから判断され、１パケットが組み立て可能であればパケットが組み立てられてバッファ３１２から出力される。ここでは、シーケンス番号１のセグメントから１パケットが組み立て可能でなく、対象ビット番号が１インクリメントされるものとする。
【００７６】
対象ビット番号が１インクリメントされると、図８に示すように、対象ビット番号が２となるとともに、シーケンス番号１のビットは「０」に戻されている。対象ビット番号が２となったことにより、パケット組立部３１７によって、対象ビット番号２の対象ビットが「１」であるか否かが判定される。図８においては、対象ビットが「１」であるため、パケット組立部３１７によって、対象ビット番号２のセグメントのポインタが記憶されると同時に、対象ビットが「０」に戻される。また、シーケンス番号１、２のセグメントから１パケットが組み立て可能であるか否かがセグメントタイプから判断され、１パケットが組み立て可能であればパケットが組み立てられてバッファ３１２から出力される。ここでは、シーケンス番号１、２のセグメントから１パケットが組み立て可能でなく、対象ビット番号が１インクリメントされるものとする。
【００７７】
以下同様に、対象ビット番号３の対象ビットが「１」であるか否かがパケット組立部３１７によって判定されるが、このとき、図９に示すように、シーケンス番号１００のセグメントが出力トラフィック制御部３１０に到着し、シーケンス番号１００のビットが「１」となったものとする。これまでの監視区間はシーケンス番号０〜４であったが、より大きいシーケンス番号のビットが「１」となったことから、監視区間設定部３１６によって、シーケンス番号１００を監視区間の最大のシーケンス番号とする位置に監視区間が移動される。すなわち、監視区間は、シーケンス番号９６〜１００に設定される。
【００７８】
また、対象ビット番号が３となったことにより、パケット組立部３１７によって、対象ビット番号３のセグメントのポインタが記憶され、対象ビットが「０」に戻される。そして、シーケンス番号１〜３のセグメントから１パケットが組み立て可能であるか否かがセグメントタイプから判断される。ここでは、シーケンス番号１のセグメントのセグメントタイプが先頭であり、シーケンス番号３のセグメントのセグメントタイプが末尾であるものとし、シーケンス番号１〜３のセグメントから１パケットが組み立て可能であるものとする。この場合、パケット組立部３１７の依頼によってスケジューラ３１８においてスケジューリングが行われ、決定された出力タイミングでバッファ３１２からパケットが出力される。すなわち、パケット組立部３１７からシーケンス番号１〜３のセグメントのポインタがシーケンス番号順にバッファ制御部３１３へ通知され、バッファ制御部３１３の制御によって、バッファ３１２に格納されたシーケンス番号１〜３のセグメントが結合されて出力される。
【００７９】
このようにしてパケットが出力されるときにも、パケット組立部３１７における対象ビット番号は１インクリメントされ、図１０に示すように、対象ビット番号は４となる。対象ビット番号が４となったことにより、パケット組立部３１７によって、対象ビット番号４の対象ビットが「１」であるか否かが判定される。図１０においては、対象ビットが「０」であるため、パケット組立部３１７によって、対象ビット番号４のセグメントについてタイムアウトが発生しているか否かが判定される。この結果、タイムアウトが発生していれば、対象ビット番号が１インクリメントされるが、ここでは、タイムアウトが発生していないものとする。
【００８０】
対象ビット番号４のセグメントについてタイムアウトが発生していない場合、対象ビット番号４が監視区間に含まれていれば、スイッチ２１０−１〜２１０−ｍのスイッチングが遅延してセグメントが未到着である可能性があるため、引き続き対象ビット番号は４のままとされるが、ここでは、監視区間がシーケンス番号９６〜１００となっている。したがって、対象ビット番号４は監視区間に含まれておらず、直ちに対象ビット番号が１インクリメントされる。つまり、対象ビット番号４のセグメントについてのタイムアウトの発生が待機されることがなく、対象ビットが「０」であると判明した時点で対象ビット番号が１インクリメントされる。
【００８１】
以下、対象ビット番号が５以上となった際にも、対象ビットが「１」であればセグメントのポインタがパケット組立部３１７に記憶された後に対象ビット番号が１インクリメントされ、対象ビットが「０」であれば直ちに対象ビット番号が１インクリメントされる。そして、図１１に示すように、対象ビット番号が９６となって監視区間に含まれるようになるまでは、リオーダビットマップ３１５においてビットが「０」であるセグメントに関するタイムアウトの発生が待機されることがない。換言すれば、シーケンス番号４〜９５のセグメントの出力トラフィック制御部３１０への到着が不要に待機されることなく、到着の可能性があるセグメントのみが待機される。結果として、シーケンス番号が大きいセグメントからのパケット組み立てが迅速に行われ、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
【００８２】
以上のように、本実施の形態によれば、セグメントに付与されるシーケンス番号に対応するビットを有するリオーダビットマップおいて、スイッチング後に出力トラフィック制御部に到着した最新のセグメントのシーケンス番号以前の所定数のシーケンス番号までを監視区間に設定し、監視区間外のシーケンス番号のセグメントについては、セグメントが出力トラフィック制御部に到着しなくてもタイムアウトの発生を待機せず、シーケンス番号順にリアセンブル処理を行っていく。このため、パケット組み立て時の不要な待機時間が短縮され、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
【００８３】
（付記１）入力されたパケットを所望の宛先へ送信するパケット通信装置であって、
入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割手段と、
前記分割手段によって生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ手段と、
前記スイッチ手段によるスイッチングが完了したか否かを監視する対象のシーケンス番号を示す監視区間を設定する設定手段と、
前記設定手段によって設定された監視区間外のシーケンス番号が付与されたセグメントについては前記スイッチング手段によるスイッチングの完了を待機することなく、スイッチングが完了したセグメントをシーケンス番号順に結合してパケットを組み立てる組立手段と
を有することを特徴とするパケット通信装置。
【００８４】
（付記２）前記設定手段は、
前記スイッチング手段によるスイッチングが完了した最新のセグメントに付与されたシーケンス番号を含む監視区間を設定することを特徴とする付記１記載のパケット通信装置。
【００８５】
（付記３）前記設定手段は、
前記スイッチング手段によるスイッチングが完了した最新のセグメントに付与されたシーケンス番号を監視区間内の最大のシーケンス番号とし、前記スイッチング手段におけるスイッチングの処理時間の差により順序が入れ替わり得るセグメント数分のシーケンス番号を監視区間に設定することを特徴とする付記２記載のパケット通信装置。
【００８６】
（付記４）前記設定手段は、
セグメントに付与されるすべてのシーケンス番号に対応するビットを備えたビットマップと、
前記スイッチ手段によるセグメントのスイッチングが完了すると、スイッチングが完了した旨を当該セグメントのシーケンス番号に対応する前記ビットマップのビットに記録する記録手段とを含み、
前記ビットマップ上において、前記記録手段によってスイッチングが完了した旨が記録されたビットに基づいた監視区間を設定することを特徴とする付記１記載のパケット通信装置。
【００８７】
（付記５）前記組立手段は、
シーケンス番号が小さい順にセグメントのスイッチングが完了したか否かを判断し、スイッチング完了しておらず、かつ、対象のシーケンス番号が監視区間内である場合は、タイムアウト発生まで前記スイッチング手段によるスイッチングの完了を待機することを特徴とする付記１記載のパケット通信装置。
【００８８】
（付記６）前記組立手段は、
シーケンス番号が小さい順にセグメントのスイッチングが完了したか否かを判断し、スイッチング完了しておらず、かつ、対象のシーケンス番号が監視区間外である場合は、直ちに対象のシーケンス番号を１増加させることを特徴とする付記１記載のパケット通信装置。
【００８９】
（付記７）入力されたパケットを所望の宛先へ送信するパケット通信方法であって、
入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割工程と、
前記分割工程にて生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ工程と、
前記スイッチ工程におけるスイッチングが完了したか否かを監視する対象のシーケンス番号を示す監視区間を設定する設定工程と、
前記設定工程にて設定された監視区間外のシーケンス番号が付与されたセグメントについては前記スイッチング工程におけるスイッチングの完了を待機することなく、スイッチングが完了したセグメントをシーケンス番号順に結合してパケットを組み立てる組立工程と
を有することを特徴とするパケット通信方法。
【産業上の利用可能性】
【００９０】
本発明は、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減する場合に適用することができる。
【図面の簡単な説明】
【００９１】
【図１】一実施の形態に係るパケット通信装置の概略構成を示すブロック図である。
【図２】一実施の形態に係る出力トラフィック制御部の内部構成を示すブロック図である。
【図３】一実施の形態に係るリオーダビットマップの具体例を示す図である。
【図４】一実施の形態に係る監視区間設定の動作を示すフロー図である。
【図５】一実施の形態に係るリアセンブル処理を示すフロー図である。
【図６】一実施の形態に係るリアセンブル処理の具体例を示す図である。
【図７】図６に続く図である。
【図８】図７に続く図である。
【図９】図８に続く図である。
【図１０】図９に続く図である。
【図１１】図１０に続く図である。
【図１２】パケットスイッチの構成例を示すブロック図である。
【図１３】マルチキャストパケットのスイッチングの例を示す図である。
【符号の説明】
【００９２】
１００−１〜１００−ｎ  入力ＩＦカード
１１０  ＭＡＣ処理部
１２０  入力トラフィック制御部
２００  スイッチカード
２１０−１〜２１０−ｍ  スイッチ
３００−１〜３００−ｎ  出力ＩＦカード
３１０  出力トラフィック制御部
３１１  ヘッダ抽出部
３１２  バッファ
３１３  バッファ制御部
３１４  リオーダ処理部
３１５  リオーダビットマップ
３１６  監視区間設定部
３１７  パケット組立部
３１８  スケジューラ
３２０  ＭＡＣ処理部
【図１】
2008236304.tif 000003
【図２】
2008236304.tif 000004
【図３】
2008236304.tif 000005
【図４】
2008236304.tif 000006
【図５】
2008236304.tif 000007
【図６】
2008236304.tif 000008
【図７】
2008236304.tif 000009
【図８】
2008236304.tif 000010
【図９】
2008236304.tif 000011
【図１０】
2008236304.tif 000012
【図１１】
2008236304.tif 000013
【図１２】
2008236304.tif 000014
【図１３】
2008236304.tif 000015