(57)【要約】パケット整列装置は、受信パケットに含まれるシーケンス番号を抽出シーケンス番号として抽出するパケット解析部、データを読み込んだ順番に読み出すように構成されたパケット格納部、前記受信パケットを、前記パケット格納部に格納するか、後段ブロックに転送するかを決定する書き込み制御部、次に前記後段ブロックに送出されるべきパケットのシーケンス番号を示す期待値データを生成する期待値管理部、及び、前記パケット格納部に格納された格納パケット群を読み出し、前記後段ブロックに送出する読出し制御部とを具備する。前記抽出シーケンス番号が前記期待値よりも大きい場合、前記受信パケットは前記パケット格納部に格納される。前記抽出シーケンス番号が前記期待値に一致する場合、前記受信パケットが後段ブロックに送出された後に、前記格納パケット群が前記後段ブロックに送出される。上記の構成のパケット整列装置によって、受信装置において、処理負荷の増加を抑制することのできる、パケット整列装置、パケット整列方法を提供する。
2011102195.tif 000002
【特許請求の範囲】
【請求項１】
送信順番を示すシーケンス番号が含まれるパケットを受信パケットとして受信し、前記受信パケットに含まれる前記シーケンス番号を抽出シーケンス番号として抽出するパケット解析部と、
パケット格納部と、
前記抽出シーケンス番号に基づいて、前記受信パケットを、前記パケット格納部に格納するか、後段ブロックに転送するかを決定する書き込み制御部と、
次に前記後段ブロックに送出されるべきパケットのシーケンス番号を期待値として示す期待値データ、を生成する期待値管理部と、
前記パケット格納部に格納された格納パケット群を読み出し、前記後段ブロックに送出する、読出し制御部とを具備し、
前記書き込み制御部は、
前記抽出シーケンス番号と前記期待値とを比較し、前記抽出シーケンス番号が前記期待値よりも大きい場合、前記受信パケットを前記パケット格納部に格納し、前記抽出シーケンス番号が前記期待値に一致する場合、前記受信パケットを前記後段ブロックに送出し、
前記読出し制御部は、前記抽出シーケンス番号が前記期待値に一致する場合、前記受信パケットが前記後段ブロックに送出された後に、前記格納パケット群を前記後段ブロックに送出するパケット整列装置。
【請求項２】
請求項１に記載されたパケット整列装置であって、
前記パケット格納部は、データを読み込んだ順番に読み出すように構成されているパケット整列装置。
【請求項３】
請求項２に記載されたパケット整列装置であって、更に、
前記格納パケット群における前記シーケンス番号の最大値を最大シーケンス番号として示す、最大シーケンス番号データを生成するシーケンス番号管理部、を具備し、
前記抽出シーケンス番号が前記期待値よりも大きい場合、前記書込み制御部は、前記抽出シーケンス番号を前記最大シーケンス番号と比較し、
前記抽出シーケンス番号が前記最大シーケンス番号よりも大きい場合に、前記書込み制御部は、前記受信パケットを前記パケット格納部に格納するパケット整列装置。
【請求項４】
請求項３に記載されたパケット整列装置であって、
前記パケット格納部は、複数設けられており、
前記最大シーケンス番号管理部は、前記最大シーケンス番号データとして、前記複数のパケット格納部それぞれについて前記最大シーケンス番号を示すデータを生成し、
前記抽出シーケンス番号が前記期待値よりも大きい場合に、前記書き込み制御部は、前記抽出シーケンス番号を、前記各パケット格納部に対応する前記最大シーケンス番号と比較し、比較結果に基づいて、前記受信パケットを、前記後段ブロックに転送するか、前記複数のパケット格納部に格納するかを決定するパケット整列装置。
【請求項５】
請求項４に記載されたパケット整列装置であって、
前記抽出シーケンス番号が、前記複数のパケット格納部のうちのいずれかに対応する前記最大シーケンス番号よりも大きい場合に、前記書き込み制御部は、前記複数のパケット格納部のうち前記最大シーケンス番号が最大である前記パケット格納部に、前記受信パケットを格納するパケット整列装置。
【請求項６】
請求項１乃至５の何れかに記載されたパケット整列装置であって、
前記パケット格納部は、
パケット格納メモリと、
パケット情報生成部と、
ＦＩＦＯ（Ｆｉｒｓｔ−ＩＮ−Ｆｉｒｓｔ−ＯＵＴ）形式で構成されたパケット情報格納バッファと、    読出情報取得部とを備え、
書き込み時に、前記パケット情報生成部は、格納対象パケットを前記パケット格納メモリに格納し、前記格納対象パケットに含まれる前記シーケンス番号、及び前記パケット格納メモリにおける前記格納対象パケットの書き込みアドレスを示すパケット情報を生成し、前記パケット情報を前記パケット情報格納バッファに格納し、
読出し時に、前記読出し情報取得部は、前記パケット情報格納バッファから前記パケット情報を読出し、前記パケット情報に基づいて、読出し対象のパケットを前記パケット格納メモリから読み出すパケット整列装置。
【請求項７】
送信順番を示すシーケンス番号が含まれるパケットを受信パケットとして受信し、前記受信パケットに含まれる前記シーケンス番号を抽出シーケンス番号として抽出することと、
前記抽出シーケンス番号に基づいて、前記受信パケットを、パケット格納部に格納するか、後段ブロックに転送するかを決定することと、
次に前記後段ブロックに送出されるべきパケットのシーケンス番号を期待値として示す期待値データを生成することと、
前記パケット格納部に格納された格納パケット群を読み出し、前記後段ブロックに送出することとを含み、
前記決定することは、
前記抽出シーケンス番号と前記期待値とを比較し、前記抽出シーケンス番号が前記期待値よりも大きい場合、前記受信パケットを前記パケット格納部に格納し、前記抽出シーケンス番号が前記期待値に一致する場合、前記受信パケットを前記後段ブロックに送出ことを含み、
前記格納パケット群を後段ブロックに送出することは、前記抽出シーケンス番号が前記期待値に一致する場合に、前記受信パケットが前記後段ブロックに送出された後に、前記格納パケット群を前記後段ブロックに送出することを含むパケット整列方法。
【請求項８】
請求項７に記載されたパケット整列方法を、コンピュータにより実現するための、パケット整列プログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット整列装置、パケット整列方法、及び記憶媒体に関する。
【背景技術】
【０００２】
パケット通信システムでは、送信装置と受信装置とがネットワークを介して接続される。送信装置はパケット群を所定の順番で送信し、受信装置はパケット群を受信する。ネットワークにおけるビットエラー、及びネットワークに配置された機器の輻輳などにより、送信されたパケットが廃棄されてしまうことがある。そこで、通信の信頼性を高めるため、パケット再送制御機能を備えたプロトコル（例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ））が用いられる。そのようなプロトコルでは、再送タイムアウト時間が設定される。送信装置においてあるパケットが送信された後、再送タイムアウト時間が経過してもそのパケットの到着が確認できない場合、送信装置は未到着のパケットを再送する。【０００３】
データセンタなどのネットワークでは、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）が短い。従って、ＲＴＴの観点からは、再送タイムアウト時間を短く設定することが可能である。再送タイムアウト時間を短い値に設定できれば、通信効率を向上させることが可能である。しかしながら、プロトコルは、ソフトウェアによって実現される。例えばＴＣＰは、Ｌｉｎｕｘなどのオペレーティングシステムにソフトウェアとして実装される。ソフトウェアによる処理速度には限界がある。そのため、ＲＴＴの観点からは再送タイムアウト時間を短く設定することが可能であっても、ソフトウェアによる処理速度の観点から、再送タイムアウト時間を短く設定できないことがある。ＴＣＰが用いられる場合、一般的に、再送タイムアウト時間は１０ミリ秒以下には設定できないと考えられる。【０００４】
関連技術として、非特許文献１には、下位レイヤで高速に再送制御を行う方式が記載されている。非特許文献１に示される再送制御方式では、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）レイヤでマイクロ秒単位でのタイムアウト判定が行われる。これにより、ＴＣＰのタイムアウト時間と比較して、高速に動作する再送制御が実現可能である。そのため、データセンタなどのＲＴＴの短いネットワークが用いられる場合に、通信効率を向上することが可能である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】高道  透、鴫原  正博、福知  清、“テラビット級ＬＡＮに向けた超高速ＭＡＣ方式の検討”電子情報通信学会通信ソサイエティ大会、２００８年
【発明の概要】
【０００６】
送信装置があるパケットを再送した場合などには、受信装置に本来とは異なる順番でパケット群が到着することがある。パケット群の到着順序が入れ替わった場合、受信装置が、パケット群の順番を整列しなければならない。既述のように、ＴＣＰ等のパケット再送制御機能を備えたプロトコルによる整列処理は、ソフトウェアにより実現される。しかし、ソフトウェアによるパケット整列処理は、パケットを整列するための複雑なメモリ管理が必要になる場合が少なくない。従って、整列処理を行うために、ＣＰＵリソースが消費されてしまう。すなわち、受信装置において、処理負荷が増加してしまう、という問題点があった。
【０００７】
本発明に係るパケット整列装置は、送信順番を示すシーケンス番号が含まれるパケットを受信パケットとして受信し、前記受信パケットに含まれる前記シーケンス番号を抽出シーケンス番号として抽出するパケット解析部と、データを読み込んだ順番に読み出すように構成されたパケット格納部と、前記抽出シーケンス番号に基づいて、前記受信パケットを、前記パケット格納部に格納するか、後段ブロックに転送するかを決定する書き込み制御部と、次に前記後段ブロックに転送されるべきパケットのシーケンス番号を期待値として示す期待値データを生成する期待値管理部と、前記パケット格納部に格納された格納パケット群における前記シーケンス番号の最大値を、最大シーケンス番号として示す、最大シーケンス番号データを生成する最大シーケンス番号管理部と、前記パケット格納部から前記格納パケット群を読み出し、前記後段ブロックに転送する読出し制御部とを具備する。前記書き込み制御部は、前記抽出シーケンス番号と前記期待値とを比較し、前記抽出シーケンス番号が前記期待値よりも大きい場合に、前記抽出シーケンス番号を前記最大シーケンス番号と比較し、前記抽出シーケンス番号が前記最大シーケンス番号よりも大きい場合に、前記受信パケットを前記パケット格納部に格納し、前記抽出シーケンス番号が前記期待値に一致する場合に、前記受信パケットを前記後段ブロックに転送する。前記抽出シーケンス番号が前記期待値に一致する場合、前記読出し制御部は、前記受信パケットが前記後段ブロックに転送された後に、前記格納パケット群を前記後段ブロックに転送する。
【０００８】
本発明に係るパケット配列方法は、送信順番を示すシーケンス番号が含まれるパケットを、受信パケットとして受信し、前記受信パケットに含まれる前記シーケンス番号を抽出シーケンス番号として抽出することと、前記抽出シーケンス番号に基づいて、前記受信パケットを、データを読み込んだ順番に読み出すように構成されたパケット格納部に格納するか、後段ブロックに転送するかを決定することと、次に前記後段ブロックに転送されるべきパケットのシーケンス番号を期待値として示す期待値データ、を生成することと、前記パケット格納部に格納された格納パケット群のうちで、前記シーケンス番号が最大である最大パケットに含まれる前記シーケンス番号を最大シーケンス番号として示す、最大シーケンス番号データを生成することと、前記パケット格納部から前記格納パケット群を読み出し、前記後段ブロックに転送することとを具備する。前記決定することは、前記抽出シーケンス番号と前記期待値とを比較することと、前記抽出シーケンス番号が前記期待値よりも大きい場合に、前記抽出シーケンス番号を前記最大シーケンス番号と比較し、前記抽出シーケンス番号が前記最大シーケンス番号よりも大きい場合に、前記受信パケットを前記パケット格納部に格納することと、前記抽出シーケンス番号が前記期待値に一致する場合に、前記受信パケットを前記後段ブロックに転送することとを備える。前記後段ブロックに転送することは、前記抽出シーケンス番号が前記期待値に一致する場合に、前記受信パケットが前記後段ブロックに転送された後に、前記格納パケット群を前記後段ブロックに転送することを含んでいる。
【０００９】
本発明に係る記憶媒体は、パケット整列プログラムが格納されている。パケット整列プログラムは、上述のパケット整列方法を、コンピュータにより実現するための、コンピュータプログラムである。
【００１０】
本発明によれば、受信装置において、処理負荷の増加を抑制することのできる、パケット整列装置、パケット整列方法、及び記憶媒体が提供される。
【図面の簡単な説明】
【００１１】
上記及び他の目的、長所、特徴は、次の図面と共に説明される本発明の実施例により明らかになるであろう。
【図１】図１は、第１の実施例に係るパケット整列装置を示すブロック図である。
【図２】図２は、格納パケット群に含まれる各格納パケットのフォーマットを示す図である。
【図３】図３は、パケット整列装置の動作方法を示すフローチャートである。
【図４】図４は、パケット整列装置の作用を説明するための図である。
【図５】図５は、第２の実施例に係るパケット整列装置を示すブロック図である。
【図６Ａ】図６Ａは、第２の実施例に係るパケット整列装置の動作方法を示すフローチャートである。
【図６Ｂ】図６Ｂは、第２の実施例に係るパケット整列装置の動作方法を示すフローチャートである。
【図７】図７は、第２の実施例に係るパケット整列装置の作用を説明するための図である。
【図８】図８は、第３の実施例におけるパケット格納部の構成を示す概略図である。
【発明を実施するための形態】
【００１２】
以下に、図面を参照しつつ、本発明の実施例について説明する。
【００１３】
（第１の実施例）
図１は、本実施例に係るパケット整列装置１を示すブロック図である。このパケット整列装置１は、パケット受信装置側に設けられている。パケット整列装置１は、送信装置から送られてきた複数のパケットの順番を整列し、上位レイヤである後段ブロック（例えばＴＣＰ）に送出する装置である。
【００１４】
尚、送信装置は、パケット群として、複数のパケットを順番に送信するように構成されているものとする。また、送信装置は、複数のパケットそれぞれに、送信順番を示すシーケンス番号を付すように構成されているものとする。更に、送信装置は、複数のパケットのうちで後段ブロックへ到着しなかった未到着パケットが存在した場合に、未到着パケットを再送するように構成されているものとする。例えば、送信装置は、後段ブロックから、予め設定された再送タイムアウト時間内に確認応答（パケットを受け取った旨を示す情報）が送られてくるか否かを判定することにより、送信したパケットが未到着であるか否かを認識することができる。
【００１５】
図１に示されるように、パケット整列装置１は、パケット整列部２及びパケット格納部９を有している。パケット整列部２は、パケット解析部３、書き込み制御部４、読出し制御部５、パケット送信部６、シーケンス番号管理部７、及び期待値管理部８を有している。このうち、パケット整列部２は、集積回路により実現されてもよいし、ＣＰＵがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などに格納されたパケット整列プログラムを実行することにより、実現されてもよい。パケット整列プログラムは、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体から、予め、ＲＯＭなどにインストールされる。パケット格納部９は、書き込まれたデータを、書き込まれた順番に読み出すように構成されている。
【００１６】
まず、パケット整列装置１の概略動作について説明する。パケット整列装置１は、次に後段ブロックへ送出されるべきパケットのシーケンス番号を、期待値として管理している。あるパケットがパケット整列装置１に到着する前に廃棄された場合、送信装置は、廃棄されたパケットを再送する。ここで、送信装置は、廃棄されたパケットを再送する前に、廃棄されたパケットの次のパケットを送信してしまうことがある。この場合、パケット整列装置１は、期待値よりも大きいシーケンス番号が付されたパケットを受信することになる。このとき、パケット整列装置１は、受信したパケットをパケット格納部９に格納する。その後、パケット整列装置１が、再送されたパケットを受信したとする。再送されたパケットを受信した場合、パケット整列装置１は、期待値に一致するシーケンス番号を有するパケットを受信することになる。期待値に一致するシーケンス番号のパケットを受信した場合、パケット整列装置１は、受信したパケットをそのまま後段ブロックへ送出する。すなわち、再送されたパケットはそのまま後段ブロックへ送出される。更に、パケット整列装置１は、再送されたパケットを後段ブロックへ送出した後、パケット格納部９に格納されたパケットを読み出して、後段ブロックへ送出する。パケット格納部９に複数のパケットが格納されている場合、それらは、パケット格納部９に書き込まれた順番で、後段ブロックへ送出される。
【００１７】
以上のような動作により、パケット整列装置１においてパケット群の到着順序が入れ替わったとしても、後段ブロックへは正しい順番でパケット群が受け渡される。従って、送信装置があるパケットを再送したとしても、後段ブロックにおいてパケット群の順番を並べ替える必要は無い。従って、パケット整列装置１では、ソフトウェアによって、パケット格納部９に格納するか、そのまま後段ブロックへ送出するかを決めればよい。ソフトウェアにより、バッファなどに格納されたパケット群の順番を並び替える必要は無い。従って、パケットの順番を並び替えるための処理負担を軽減することができる。
【００１８】
次いで、パケット整列装置１の構成を詳細に説明する。
【００１９】
パケット格納部９は、パケット群を一時的に格納する部分である。パケット格納部９に格納されたパケット群は、以下、格納パケット群と呼ばれる。パケット格納部９は、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）形式でデータの読み込み及び書き込みを行なうように、構成されている。すなわち、格納パケット群は、書き込まれた順番で、読み出される。
【００２０】
図２は、格納パケット群に含まれる各格納パケットのフォーマットを示す図である。図２に示されるように、各格納パケットのフォーマットは、パケット本体２０２、シーケンス番号２００、及び長さ情報２０１を備えている。長さ情報２０１は、パケット本体２０２のデータ量を示す情報である。シーケンス番号２００及び長さ情報２０１は、パケット本体２０２の先頭部分に付与されている。
【００２１】
パケット解析部３は、送信装置からパケットを受信すると、受信したパケット（受信パケット）を解析する。具体的には、パケット解析部３は、受信パケットのヘッダを解析し、シーケンス番号を抽出する。抽出されたシーケンス番号は、以下、抽出シーケンス番号と記載される。
【００２２】
期待値管理部８は、期待値データを生成する部分である。期待値データは、次に後段ブロックへ転送されるべきパケットのシーケンス番号を、期待値として示すデータである。期待値は、読出し制御部５によって更新される。期待値の初期値としては、複数のパケットのうち最初に送られてくるパケットのシーケンス番号が、設定される。その初期値は、例えば、送信装置からパケット整列装置１に予め通知される。
【００２３】
シーケンス番号管理部７は、最大シーケンス番号を示す最大シーケンス番号データを生成する。最大シーケンス番号は、パケット格納部９に格納された格納パケット群における、シーケンス番号の最大値である。シーケンス番号管理部７は、書込み制御部４から送られてくる情報に従って、最大シーケンス番号データを生成する。尚、初期状態では、最大シーケンス番号は、考えられうるシーケンス番号の最小値よりも小さい値に設定される。本実施例では、初期状態では、最大シーケンス番号は０に設定されているものとする。
【００２４】
書き込み制御部４は、受信パケットをパケット格納部９に格納するか、後段ブロックに転送するかを決定する部分である。書き込み制御部４は、パケット解析部３から、受信パケット、及び抽出シーケンス番号を取得する。そして、書込み制御部４は、受信パケットが送出順（Ｉｎ−ｏｒｄｅｒ）かそうでないか（Ｏｕｔ−ｏｆ−ｏｒｄｅｒ）を判断する。具体的には、書込み制御部４は、期待値データを取得し、期待値と抽出シーケンス番号とを比較することにより、受信パケットがＩｎ−Ｏｒｄｅｒであるか、Ｏｕｔ−ｏｆ−ｏｒｄｅｒであるかを判断する。また、書込み制御部４は、抽出シーケンス番号が期待値よりも大きかった場合に、最大シーケンス番号データを取得する。そして、期待値と最大シーケンス番号との大小関係を比較し、この比較結果に基づいて、受信パケットをパケット格納部９に格納するか否かを決定する。
【００２５】
読出し制御部５は、後段ブロックへパケットを転送する部分である。書込み制御部４は、受信パケットを後段ブロックに転送する場合、読出し制御部５へ受信パケットを渡す。読出し制御部５は、受け取った受信パケットをパケット送信部６へ送り、パケット送信部６を介して後段ブロックへ転送する。また、読出し制御部５は、パケット格納部９にアクセスし、格納パケット群をパケット送信部６を介して後段ブロックへ送信する機能も有している。
【００２６】
続いて、上述のパケット整列装置１の動作方法について説明する。図３は、パケット整列装置１の動作方法を示すフローチャートである。
【００２７】
ステップＡ１００；パケット受信
パケット解析部３が、送信装置から、パケットを受信したとする。
【００２８】
ステップＡ１０１；シーケンス番号ＳＮの抽出
パケット解析部３は、受信パケットのパケットヘッダから、シーケンス番号を抽出シーケンス番号ＳＮとして抽出する。パケット解析部３は、抽出シーケンス番号ＳＮと、受信パケットとを、書込み制御部４に送る。
【００２９】
ステップＡ１０２；期待値との比較
書込み制御部４は、期待値管理部８から、期待値データを取得する。そして、抽出シーケンス番号ＳＮと期待値とを比較する。抽出シーケンス番号ＳＮが期待値よりも大きい場合、ステップＡ１０３の処理が行われる。抽出シーケンス番号ＳＮが期待値と一致する場合、ステップＡ１０６の処理が行われる。抽出シーケンス番号ＳＮが期待値よりも小さい場合、ステップＡ１１１の処理が行われる。
【００３０】
ステップＡ１０３；抽出シーケンス番号ＳＮを最大シーケンス番号ＭＳＮと比較
抽出シーケンス番号ＳＮが期待値よりも大きい場合、書込み制御部４は、シーケンス番号管理部７から最大シーケンス番号データを取得する。そして、書込み制御部４は、抽出シーケンス番号ＳＮを、最大シーケンス番号ＭＳＮと比較する。
【００３１】
ステップＡ１０４；抽出シーケンス番号ＳＮを最大シーケンス番号ＭＳＮと比較
抽出シーケンス番号ＳＮが最大シーケンス番号ＭＳＮよりも大きい場合、書込み制御部４は、受信パケットをパケット格納部９に格納パケットとして格納する。
【００３２】
ステップＡ１０５；最大シーケンス番号ＭＳＮの更新
次いで、書込み制御部４は、シーケンス番号管理部７に、最大シーケンス番号ＭＳＮが更新される旨を通知する。シーケンス番号管理部７は、最大シーケンス番号としてステップＡ１０４で格納されたパケットのシーケンス番号が示されるように、最大シーケンス番号データを更新する。
【００３３】
ステップＡ１０６；後段ブロックに送出
一方、ステップＡ１０２において、抽出シーケンス番号が期待値に一致していた場合には、書込み制御部４は、受信パケットをそのまま後段ブロックへ転送する。すなわち、書込み制御部４は、受信パケットを読出し制御部５へ渡す。読出し制御部５は、受信パケットをパケット送信部６へ渡す。パケット送信部６は、受信パケットを後段ブロックへ送出する。
【００３４】
ステップＡ１０７；期待値の更新
受信パケットが後段ブロックへ送出された後、読出し制御部５は、期待値の更新指示を期待値管理部８に通知する。更新指示を受けた期待値管理部８は、期待値データに示される期待値をインクリメントする。すなわち、期待値は、次に後段ブロックへ送出されるべきパケットのシーケンス番号に更新される。
【００３５】
ステップＡ１０８；格納パケットの確認
期待値の更新後、読出し制御部５は、パケット格納部９にアクセスし、パケット格納部９に格納パケットが存在するか否かを確認する。尚、パケット格納部９は、格納パケットが存在しない場合にＥｍｐｔｙ信号を出力するように構成されている。読出し制御部５は、そのＥｍｐｔｙ信号を読み取ることで、格納パケットの有無を確認することが可能である。格納パケットが存在する場合、次のステップＳ１０９の処理が行われる。格納パケットが存在しない場合には、処理が終了される。
【００３６】
ステップＡ１０９；先頭パケットのシーケンス番号と期待値との比較
格納パケットが存在する場合、読出し制御部５は、格納パケット群のうちの先頭パケット（最も先に格納されたパケット）のシーケンス番号を読みとる。そして、読出し制御部５は、先頭パケットのシーケンス番号が期待値と一致するか否かを判定する。判定の結果、一致していれば、次のステップＡ１１０の処理が行われる。判定結果が不一致であれば、処理が終了される。尚、先頭パケットのシーケンス番号をどのように読み取るかについては、特に限定されない。例えば、パケット格納部９として、先頭ワードを先読みすることのできるＦＩＦＯ装置を用いれば、先頭ワードを先読みすることにより、先頭パケットのシーケンス番号を読み取ることができる。
【００３７】
ステップＡ１１０；先頭パケットの送出
先頭パケットのシーケンス番号が期待値に一致する場合、読出し制御部５は、先頭パケットを読み出して、パケット送信部６を介して後段ブロックへ送出する。この際、読出制御部５は、先頭パケットの長さ情報２０１を参照することで、先頭パケットだけをパケット格納部９から読み出しを行う。その後、ステップＡ１０７以下の処理が繰り返される。
【００３８】
ステップＡ１１１；後段ブロックに送出
尚、ステップＡ１０２において抽出シーケンス番号ＳＮが期待値よりも小さかった場合、書込み制御部４は、受信パケットを読出し制御部５へ受け渡す。読出し制御部５は、受信パケットをパケット送信部６へ受け渡し、パケット送信部６は後段ブロックへ受信パケットを送信する。すなわち、受信パケットはそのまま後段ブロックへ送られる。
【００３９】
ステップＡ１１２；廃棄
また、ステップＡ１０３において抽出シーケンス番号ＳＮが最大シーケンス番号ＭＳＮと一致した場合には、受信パケットは既に格納パケットとして格納されているパケットであるということになる。従って、書込み制御部４は、受信パケットを廃棄し、処理を終了する。
【００４０】
ステップＡ１１３〜Ａ１１５
また、ステップＡ１０３において、抽出シーケンス番号ＳＮが最大シーケンス番号ＭＳＮよりも小さかった場合には、パケット群の整列を行うことはできない。そこで、以下のステップＡ１１３〜Ａ１１５の処理を行って、処理を終了する。すなわち、書込み制御部４は、受信パケットを一旦、パケット格納部９に格納する（ステップＡ１１３）。その後、読出制御部５が、パケット格納部９に格納された格納パケット群を全て読み出し、後段ブロックへ送出する（ステップＡ１１４）。その後、期待値管理部８は、期待値を、最大シーケンス番号ＭＳＮに１を加算した値に更新する（ステップＡ１１５）。整列されることなく後段ブロックへ送られたパケット群は、後段ブロックにおいて、整列される。
【００４１】
以上説明した動作方法により、パケット群が期待通りの順番で到着しなかったとしても、後段ブロックへは期待通りの順番でパケット群が送られる。以下に、この点について、具体例を挙げて詳細に説明する。
【００４２】
図４は、パケット整列装置１の作用を説明するための図である。図４に示されるように、送信装置が、パケット（ＳＮ１）〜パケット（ＳＮ７）をパケット整列装置１に送信したとする。尚、ＳＮの後の数字は、シーケンス番号を示しているものとする。例えば、パケット（ＳＮ１）は、シーケンス番号が１であり、１番目に送信されるパケットである。ここで、パケット（ＳＮ１）〜パケット（ＳＮ３）までは、期待通りにパケット整列装置１に到着するものとする。しかし、パケット（ＳＮ４）は、途中で廃棄され、パケット整列装置１に届かなかったものとする。その後、送信装置は、パケット（ＳＮ５）〜パケット（ＳＮ７）までを順番どおりに送信したとする。パケット（ＳＮ７）の送信後に、パケット（ＳＮ４）が再送パケット（ＳＮ４）として再送されたとする。この場合、パケット整列装置１は、パケット（ＳＮ１）、パケット（ＳＮ２）、パケット（ＳＮ３）、パケット（ＳＮ５）、パケット（ＳＮ６）、パケット（ＳＮ７）、及び再送パケット（ＳＮ４）の順で、パケット群を受信する。
【００４３】
以下に、各パケットを受信した時点における整列装置１の動作を説明する。
【００４４】
パケット整列装置１がパケット（ＳＮ１）を受信した場合、ステップＡ１０２において、抽出シーケンス番号（＝１）が期待値（初期値＝１）に一致すると判断される。従って、ステップＡ１０６において、パケット（ＳＮ１）が後段ブロックへ送出される。そして、ステップＡ１０７において、期待値が１から２に更新される。
【００４５】
パケット（ＳＮ２）の受信時も、パケット整列装置１は、パケット（ＳＮ２）をそのまま後段ブロックへ送出する。期待値は、２から３に更新される。
【００４６】
パケット（ＳＮ３）の受信時も、パケット整列装置１は、パケット（ＳＮ３）をそのまま後段ブロックへ送出する。期待値は３から４に更新される。
【００４７】
パケット（ＳＮ５）の受信時においては、ステップＡ１０２において、抽出シーケンス番号（＝５）が期待値（＝４）よりも大きいと判断される。従って、ステップＡ１０３において、抽出シーケンス番号（＝５）が最大シーケンス番号（＝０）と比較される。抽出シーケンス番号ＳＮ（＝５）は最大シーケンス番号（＝０）よりも大きい。従って、ステップＡ１０４において、パケット（ＳＮ５）がパケット格納部９に格納される。ステップＡ１０５において、最大シーケンス番号が、０から５に更新される。
【００４８】
パケット（ＳＮ６）の受信時においても、抽出シーケンス番号（＝６）は期待値（＝４）よりも大きい。従って、書込み制御４は、抽出シーケンス番号ＳＮ（＝６）を最大シーケンス番号（＝５）と比較する。抽出シーケンス番号（＝６）は最大シーケンス番号（＝５）よりも大きいので、書込み制御部４は、パケット（ＳＮ６）をパケット格納部９に格納する。最大シーケンス番号は、５から６に更新される。
【００４９】
パケット（ＳＮ７）の受信時においても、抽出シーケンス番号（＝７）は期待値（＝４）よりも大きい。従って、書込み制御４は、抽出シーケンス番号ＳＮ（＝７）を最大シーケンス番号（＝６）と比較する。抽出シーケンス番号（＝７）は最大シーケンス番号（＝６）よりも大きいので、書込み制御部４は、パケット（ＳＮ６）をパケット格納部９に格納する。最大シーケンス番号は、６から７に更新される。
【００５０】
再送パケット（ＳＮ４）の受信時には、ステップＡ１０２において、抽出シーケンス番号（＝４）が期待値（＝４）と一致すると判断される。従って、ステップＡ１０６において、再送パケット（ＳＮ４）がそのまま後段ブロックへ送出される。その後、ステップＡ１０７からステップＡ１１０の処理により、格納パケット群が後段ブロックへ送出される。格納パケット群は、書き込まれた順番で、後段ブロックへ送出される。すなわち、格納パケット群は、パケットＳＮ５、パケットＳＮ６、及びパケットＳＮ７の順番で、後段ブロックへ送出される。
【００５１】
以上の説明から明らかなように、後段ブロックに対しては、パケット（ＳＮ１）〜パケット（ＳＮ７）が正しい順番で送出されることが理解される。
【００５２】
以上説明したように、本実施例によれば、パケット群の到着順序が入れ替わったとしても、後段ブロックに対して正しい順番でパケット群を受け渡すことができる。そのため、後段ブロックにおいてパケット群の整列処理を行う必要がなく、後段ブロックにおいて整列処理に要する負担を軽減することができる。
【００５３】
また、パケット整列装置１は、ソフトウェアによって、受信パケットをパケット格納部９に格納するか、そのまま後段ブロックへ送出するかを決めればよい。バッファ（メモリ）などに格納されたパケット群の順番を並び替える必要がなく、複雑なメモリ管理処理を行う必要が無い。そのため、パケットの順番を整列させるための処理負担を軽減することができる。
【００５４】
（第２の実施例）
続いて、第２の実施例について説明する。図５は、本実施例に係るパケット整列装置１を示すブロック図である。図５に示されるように、本実施例では、パケット格納部９が複数設けられている。すなわち、パケット整列装置１は、第１のパケット格納部９−１、第２のパケット格納部９−２、・・・・、及び第ｎのパケット格納部９−ｎを有している。また、本実施例では、シーケンス番号管理部７が、複数のパケット格納部９のそれぞれについて、最大シーケンス番号を管理している。その他の構成は第１の実施例と同様であるので、詳細な説明は省略する。
【００５５】
本実施例に係るパケット整列装置１の動作方法について説明する。図６Ａ及び図６Ｂは、本実施例に係るパケット整列装置１の動作方法を示すフローチャートである。
【００５６】
ステップＡ１００〜Ａ１０２
第１の実施例と同様に、パケット解析部３は、パケットを受信すると（ステップＡ１００）、受信パケットのシーケンス番号ＳＮを抽出する（ステップＡ１０１）。そして、書込み制御部４が、抽出シーケンス番号ＳＮと期待値とを比較する（ステップＡ１０２）。
【００５７】
抽出シーケンス番号ＳＮが期待値よりも大きかった場合には、ステップＡ１０３−１以降の処理が行われる。抽出シーケンス番号ＳＮが期待値に一致する場合には、ステップＡ１０６以降の処理が行われる。抽出シーケンス番号ＳＮが期待値よりも小さかった場合、ステップＡ１１１の処理が行われ、第１の実施例と同様に、受信パケットが後段ブロックへ送出される。
【００５８】
ステップＡ１０３−１；抽出シーケンス番号ＳＮをＭＳＮ−１と比較
抽出シーケンス番号ＳＮが期待値よりも大きかった場合、書込み制御部４は、最大シーケンス番号データを取得する。そして、書込み制御部４は、抽出シーケンス番号ＳＮを、第１のパケット格納部９−１における最大シーケンス番号ＭＳＮ−１と比較する。
【００５９】
ステップＡ１０４−１；格納
抽出シーケンス番号ＳＮが最大シーケンス番号ＭＳＮ−１よりも大きい場合、書込み制御部４は、受信パケットを第１のパケット格納部９−１に格納する。
【００６０】
ステップＡ１０５−１；最大シーケンス番号データの更新
そして、書込み制御部４は、シーケンス番号管理部７にアクセスし、第１のパケット格納部９−１に対応する最大シーケンス番号ＭＳＮ−１の値を、抽出シーケンス番号ＳＮの値に更新する。
【００６１】
ステップＡ１０３−２；抽出シーケンス番号ＳＮと、他のパケット格納部９に対応する最大シーケンス番号ＭＳＮとの比較
一方、ステップＡ１０３−１において、抽出シーケンス番号ＳＮが、最大シーケンス番号ＭＳＮ−１よりも小さかった場合、書込み制御部４は、抽出シーケンス番号ＳＮを、他のパケット格納部９の最大シーケンス番号ＭＳＮと比較する。そして、複数のパケット格納部９のなかに、最大シーケンス番号ＭＳＮが抽出シーケンス番号ＳＮよりも小さくなるようなパケット格納部９−ｉ（２≦ｉ≦ｎ）が存在するか否かを判断する。
【００６２】
ステップＡ１０４−２；ＭＳＮが最大であるパケット格納部に格納
パケット格納部９−ｉが存在する場合、書込み制御部４は、最大シーケンス番号９−ｉに、受信パケットを格納する。尚、最大シーケンス番号ＭＳＮが抽出シーケンス番号ＳＮよりも小さいパケット格納部９が複数存在する場合、書込み制御部４は、それらのパケット格納部９の中から最大シーケンス番号が最大であるものをパケット格納部９−ｉとして選択し、選択したパケット格納部９−ｉに受信パケットを格納する。
【００６３】
ステップＡ１０５−２；最大シーケンス番号の更新
その後、書込み制御部４は、シーケンス番号管理部７にアクセスし、ステップＡ１０４−２で受信パケットが格納されたパケット格納部９に対応する最大シーケンス番号を、抽出シーケンス番号ＳＮの値に更新する。
【００６４】
ステップＡ１０６；後段ブロックに送出
一方、ステップＡ１０２において、抽出シーケンス番号ＳＮが期待値に一致する場合、書込み制御部４は、受信パケットを、読出し制御部５及びパケット送信部６を介して、後段ブロックへ送出する。
【００６５】
ステップＡ１０７；期待値の更新
その後、期待値が、次の値に更新される。すなわち、読出し制御部５が期待値管理部８に更新指示を送り、期待管理部８は期待値を更新する。
【００６６】
ステップＡ１０８；格納パケットの存在有無の確認
その後、読出し制御部５は、複数のパケット格納部９にアクセスし、複数のパケット格納部９に格納パケットが存在するか否かを確認する。格納パケットが存在しない場合、処理は終了される。格納パケットが存在しない場合、次のステップＡ１０９の処理が行われる。
【００６７】
ステップＡ１０９；先頭パケットと期待値との比較
その後、読出し制御部５は、各パケット格納部９の先頭パケット（最も先に格納されたパケット）のシーケンス番号を読み取り、期待値と比較する。そして、読出し制御部５は、先頭パケットのシーケンス番号が期待値と一致するパケット格納部９が存在するか否かを判定する。そのようなパケット格納部９が存在しない場合、処理は終了される。一方、期待値に対応する先頭パケットを有するパケット格納部９が存在する場合、次のステップＡ１１０の処理が行われる。
【００６８】
ステップＡ１１０；先頭パケットの送出
次に、読出し制御部５は、期待値に一致するシーケンス番号を有する先頭パケットを読み出す。そして、読出し制御部５は、読み出した先頭パケットを、後段ブロックへ送出する。その後、ステップＡ１０７以降の処理が繰り返される。
【００６９】
ステップＡ１０３−３；最大シーケンス番号ＭＳＮが抽出シーケンス番号ＳＮと一致するパケット格納部９の確認
一方、ステップＡ１０３−２において、「抽出シーケンス番号ＳＮ＞最大シーケンス番号ＭＳＮ」が成り立つようなパケット格納部９が存在しない場合、書込み制御部４は、最大シーケンス番号ＭＳＮが抽出シーケンス番号ＭＳＮと一致するパケット格納部９が存在するか否かを確認する。
【００７０】
ステップＡ１２４〜Ａ１２６
ステップＡ１０３−３において、最大シーケンス番号ＭＳＮが抽出シーケンス番号ＳＮと一致するようなパケット格納部９が存在しない場合には、抽出シーケンス番号ＳＮは、複数のパケット格納部９のいずれに対応する最大シーケンス番号よりも小さい事になる。この場合、パケット群を所望する順番で後段ブロックに送出することはできない。従って、書込み制御部４は、受信パケットを、一旦、複数のパケット格納部９のうちで最大シーケンス番号が最小であるものに、格納する（ステップＡ１２４）。その後、読出し制御部５が、複数のパケット格納部９のうち、先頭パケットのシーケンス番号が最小となるパケット格納部９を選択する。そして、選択したパケット格納部９の先頭パケットを読み出して、後段ブロックへ送出する。読出し制御部５は、この処理を、全てのパケット格納部９が空になるまで繰り返す（ステップＡ１２５）。その後、期待値管理部８は、期待値を次の値（ＭＳＮ−１からＭＳＮ−ｎの最大値に１を加算した値に更新する（ステップＡ１２６）。
【００７１】
ステップＡ１１２−１、Ａ１１２−２；廃棄
また、ステップＡ１０３−１において、抽出シーケンス番号ＳＮが最大シーケンス番号ＭＳＮ−１と一致した場合には、受信パケットと同じパケットが既に第１のパケット格納部９−１に格納されていることになる。従って、書込み制御部４は、受信パケットを廃棄する（ステップＡ１１２−１）。同様に、ステップＡ１０３−３において、最大シーケンス番号ＭＳＮが抽出シーケンス番号ＳＮに一致するパケット格納部９が存在する場合にも、受信パケットと同じパケットが既に格納されていることになる。従って、書込み制御部４は、受信パケットを廃棄する（ステップＡ１１２−２）
【００７２】
以上説明した構成及び動作により、複数の再送パケット間で到着順序が入れ替わる場合であっても、所望する順番でパケット群を後段ブロックへ送出することができる。以下に、具体例を用いて、この点について説明する。尚、複数のパケット格納部９は、第１のパケット格納部９−１及び第２のパケット格納部９−２から構成されるものとする。
【００７３】
図７は、本実施例に係るパケット整列装置１の作用を説明するための図である。図７に示されるように、送信装置が、パケット（ＳＮ１）〜パケット（ＳＮ８）を送信したとする。尚、ＳＮの後の数字は、シーケンス番号を示しているものとする。ここで、パケット（ＳＮ１）〜パケット（ＳＮ３）までは、順番どおりにパケット整列装置１に到着したとする。また、パケット（ＳＮ４）はパケット整列装置１に到着しなかったとする。その後、パケット（ＳＮ５）及びパケット（ＳＮ６）がパケット整列装置１に到着したとする。更に、パケット（ＳＮ７）は、到着しなかったとする。その後、パケット（ＳＮ８）がパケット整列装置１に到着したとする。ここで、パケット（ＳＮ８）の送信後に、送信装置が再送パケット（ＳＮ４）を送信し、再送パケット（ＳＮ４）はパケット整列装置１に到着しなかったとする。更にその後、送信装置が再送パケット（ＳＮ７）を送信し、パケット整列装置１に再送パケット（ＳＮ７）が到着したとする。その後、送信装置は再送パケット（ＳＮ４）を送信し、パケット整列装置１が再送パケット（ＳＮ４）を受け取ったとする。すなわち、パケット整列装置１は、パケット（ＳＮ１）、パケット（ＳＮ２）、パケット（ＳＮ３）、パケット（ＳＮ５）、パケット（ＳＮ６）、パケット（ＳＮ７）、再送パケット（ＳＮ７）、再送パケット（ＳＮ４）の順番で、パケット群を受信したとする。各パケットを受信したときのパケット整列装置１の動作について、以下に説明する。
【００７４】
パケット整列装置１がパケット（ＳＮ１）を受信した場合、ステップＡ１０２において、抽出シーケンス番号（＝１）が期待値（初期値＝１）に一致すると判断される。従って、ステップＡ１０６において、パケット（ＳＮ１）が後段ブロックへ送出される。そして、ステップＡ１０７において、期待値が１から２に更新される。
【００７５】
パケット整列装置１がパケット（ＳＮ２）を受信した場合も、パケット（ＳＮ１）の受信時と同様に、パケット（ＳＮ２）が後段ブロックへ送出され、期待値が２から３に更新される。
【００７６】
パケット（ＳＮ３）の受信時も、同様に、パケット（ＳＮ３）は後段ブロックへ送出され、期待値が３から４に更新される。
【００７７】
パケット（ＳＮ５）の受信時には、ステップＡ１０２において、抽出シーケンス番号ＳＮ（＝５）の方が、期待値（＝４）よりも大きいと判断される。従って、ステップＡ１０３−１において、最大シーケンス番号ＭＳＮ−１（＝０）と抽出シーケンス番号ＳＮ（＝５）とが比較され、抽出シーケンス番号ＳＮの方が大きいと判断される。従って、ステップＡ１０４−１において、受信パケットＳＮ５）は、第１のパケット格納部９−１に格納される。ステップＡ１０５−１において、最大シーケンス番号ＭＳＮ−１が５に更新される。
【００７８】
パケット（ＳＮ６）の受信時にも、パケット（ＳＮ５）の受信時と同様の処理が行われる。すなわち、受信パケット（ＳＮ６）は、第１のパケット格納部９−１に格納される。また、最大シーケンス番号ＭＳＮ−１は、５から６に更新される。
【００７９】
パケット（ＳＮ８）の受信時にも、パケット（ＳＮ５）の受信時と同様の処理が行われる。すなわち、受信パケット（ＳＮ８）は、第１のパケット格納部９−１に格納される。第１のパケット格納部９−１には、先頭から、パケット（ＳＮ５）、パケット（ＳＮ６）、及びパケット（ＳＮ８）の順で、格納パケット群が格納されていることになる。また、最大シーケンス番号ＭＳＮ−１は、６から８に更新される。
【００８０】
再送パケット（ＳＮ７）の受信時には、ステップＡ１０２において、抽出シーケンス番号ＳＮ（＝７）の方が期待値（＝４）よりも大きいと判断される。ステップＡ１０３−１において、抽出シーケンス番号（＝７）の方が最大シーケンス番号ＭＳＮ−１（＝８）よりも小さいと判断される。ステップＡ１０３−２において、ＳＮ＞ＭＳＮとなるようなパケット格納部９が存在するか否かが判定される。ここで、第２のパケット格納部９ー２については、格納パケットが存在せず、最大シーケンス番号ＭＳＮ−２は０である。すなわち、第２のパケット格納部９−２は、ＳＮ＞ＭＳＮとなるようなパケット格納部である。従って、ステップＡ１０４−２において、受信パケット（ＳＮ７）は、第２のパケット格納部９−２に格納される。最大シーケンス番号ＭＳＮ−２は、０から７に更新される。
【００８１】
再送パケット（ＳＮ４）の受信時には、ステップＡ１０２において、抽出シーケンス番号ＳＮ（＝４）は、期待値（＝４）と一致すると判断される。従って、ステップＡ１０６において、再送パケット（ＳＮ４）は、そのまま後段ブロックに送出される。その後、ステップＡ１０７において、期待値が４から５に更新される。そして、ステップＡ１０８において、格納パケットの有無が確認され、格納パケットが存在する為、ステップＡ１０９の処理が行われる。ステップＡ１０９では、先頭パケットのシーケンス番号と期待値（＝５）とが比較される。ここで、第１のパケット格納部９−１では、先頭パケットのシーケンス番号が５であり、期待値に一致する。従って、ステップＡ１１０において、第１のパケット格納部９−１からパケット（ＳＮ５）が読み出され、後段ブロックに送出される。次いで、ステップＡ１０７以降の処理が繰り返される。これにより、パケット（ＳＮ６）、パケット（ＳＮ７）、及びパケット（ＳＮ８）の順番で、パケット群が後段ブロックへ送出される。
【００８２】
以上説明したように、本実施例によれば、複数の再送パケット間で到着順序が入れ替わる場合であっても、所望する順番でパケット群を後段ブロックへ送出することができることが、理解される。
【００８３】
（第３の実施例）
続いて、第３の実施例について説明する。本実施例では、既述の実施例と比較して、パケット格納部９の構成が工夫されている。その他の点については、既述の実施例と同様の構成を採用することができるので、詳細な説明は省略する。
【００８４】
図８は、本実施例におけるパケット格納部９の構成を示す概略図である。図８に示されるように、パケット格納部９は、パケット情報生成部１０、パケット格納メモリ１１、パケット情報格納ＦＩＦＯ１２、及び読出情報取得部１３を備えている。パケット情報生成部１０及び読出し情報取得部１３は、例えば、ＣＰＵが記憶媒体に格納されたパケット整列プログラムを実行することにより、実現されてもよいし、または、集積回路により、ハードウェアで実現されてもよい。
【００８５】
パケットの書込み要求が発生した場合、パケット情報生成部１０は、格納対象パケットを取得し、パケット情報を生成する。パケット情報は、格納対象パケットのシーケンス番号と、パケット格納メモリ１１の書込み開始アドレス及び終了アドレスとを含む情報である。パケット情報生成部１０は、格納対象パケットをパケット格納メモリ１１に書込み、パケット情報格納ＦＩＦＯ１２にパケット情報を格納する。このパケット情報格納ＦＩＦＯ１２は、書き込まれた順番でデータを読み出すように構成されている。
【００８６】
一方、格納パケットを読み出す際には、読出情報取得部１３が、パケット情報格納ＦＩＦＯ１２からパケット情報を読出す。そして、読み出されるべきパケットの開始アドレス及び終了アドレスを識別する。読出し情報取得部１３は、識別結果を読出し制御部５に受け渡す。読出制御部５は、識別結果である開始アドレスと終了アドレスに基づいて、パケット格納メモリ１１から読み出し対象のパケットを読み出す。
【００８７】
本実施例のような構成を採用することによっても、パケット格納部９は、パケット群を書き込まれた順番に読み出すことになる。また、本実施例によれば、パケットの書込み開始アドレスと終了アドレスにより、パケット格納部９が管理されるため、パケット格納部９に対するアクセス処理でエラーが発生した場合にも、ほかのパケットに影響を与えることなく、パケット整列処理を継続することが可能となる。
【００８８】
以上、本発明について、第１乃至第３の実施例を用いて説明した。尚、これら実施例は互いに独立するものではなく、矛盾の無い範囲内で組み合わせて用いることも可能である。
【００８９】
なお、本出願は、２０１０年２月２２日に出願された日本出願番号２０１０−０３６００２に基づく優先権を主張するものであり、日本出願番号２０１０−０３６００２における開示内容は引用により本出願に組み込まれる。
【図１】
2011102195.tif 000003
【図２】
2011102195.tif 000004
【図３】
2011102195.tif 000005
【図４】
2011102195.tif 000006
【図５】
2011102195.tif 000007
【図６Ａ】
2011102195.tif 000008
【図６Ｂ】
2011102195.tif 000009
【図７】
2011102195.tif 000010
【図８】
2011102195.tif 000011
【国際調査報告】
2011102195.tif 000012
2011102195.tif 000013
2011102195.tif 000014
2011102195.tif 000015