(57)【要約】    【課題】  パケット中の各分割データのサイズが均一でなくても、受信分割データの一時記憶領域を削減すると共に、分割データの記憶処理上のオーバーヘッドを減少させる。    【解決手段】  送信モジュール１０５は、転送用データを複数に分割した分割データＢＤに、１つ前の他分割データＢＤ（ｙ）のシーケンス番号１１及びデータ長１２を付加してパケットを生成し、送信する。受信モジュール１１２では、受信したパケット中の自分割データＢＤ（ｘ）をメモリ１１１へ書き込む場合のメモリ１１１上の位置である記憶先アドレスを、既に記憶されている他分割データＢＤ（ｙ）のシーケンス番号１１及びサイズ情報１２に基づいて計算し、計算できたときは、その記憶先アドレスに自分割データＢＤ（ｘ）を記憶させる。【選択図】      図６
2006340322.tif 000002
【特許請求の範囲】
【請求項１】
データ送信装置とデータ受信装置とがネットワークを介して通信可能に接続されて構成されるデータ転送システムであって、
前記データ送信装置は、
転送すべき転送用データを複数に分割した各分割データに、当該分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を付加して、前記各分割データ毎にパケットを生成するパケット生成手段と、
前記パケット生成手段により生成されたパケットを前記データ受信装置に順次送信するパケット送信手段とを有し、
前記データ受信装置は、
前記パケット送信手段から送信されたパケットを受信するパケット受信手段と、
前記パケット受信手段により受信された各パケット中の前記他の分割データの特定情報及びサイズ情報を記憶する情報記憶手段と、
前記受信された各パケット中の分割データのメモリ上の記憶位置を、前記情報記憶手段により記憶された、前記各パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定する記憶位置決定手段と、
前記記憶位置決定手段により決定された前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させる記憶処理手段とを有することを特徴とするデータ転送システム。
【請求項２】
前記他の分割データは、前記パケット生成手段により生成される各パケット中の分割データに対して送信順が隣接している分割データであることを特徴とする請求項１記載のデータ転送システム。
【請求項３】
前記データ受信装置の前記記憶処理手段は、前記記憶位置決定手段により前記メモリ上の記憶位置が決定されなかった分割データを一時待避させると共に、その後、前記メモリ上の記憶位置が決定されたとき、該決定された前記メモリ上の記憶位置に前記一時待避させた前記分割データを記憶させることを特徴とする請求項１または２記載のデータ転送システム。
【請求項４】
前記データ受信装置は、前記記憶処理手段による分割データの記憶処理状況を監視する監視手段と、前記監視手段により監視された結果を前記データ送信装置に送信する監視結果送信手段とを有し、前記データ送信装置は、前記監視結果送信手段により送信された監視結果を受信する監視結果受信手段と、前記監視結果受信手段により受信された監視結果に基づいて、前記他の分割データの数を設定する数設定手段とを有することを特徴とする請求項１〜３記載のデータ転送システム。
【請求項５】
前記データ送信装置と前記データ受信装置との間では、ＴＣＰ（Transmission Control Protocol）プロトコルでデータ通信が行われ、前記他の分割データの特定情報及びサイズ情報は、ＴＣＰヘッダにおけるオプション情報として付加されることを特徴とする請求項１〜４のいずれか１項に記載のデータ転送システム。
【請求項６】
データ送信装置とデータ受信装置とがネットワークを介して通信可能に接続されて構成されるデータ転送システムであって、
前記データ送信装置は、
転送すべき転送用データを複数に分割した各分割データを含んだパケットを前記各分割データ毎に生成するパケット生成手段と、
前記パケット生成手段により生成されたパケット中の分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を、１つ以上の前記他の分割データ分だけまとめて、前記生成されたパケットとは異なる別パケットとして生成する別パケット生成手段と、
前記パケット生成手段により生成されたパケットを前記データ受信装置に順次送信するパケット送信手段と、
前記別パケット生成手段により生成された別パケットを前記データ受信装置に送信する別パケット送信手段とを有し、
前記データ受信装置は、
前記パケット送信手段から送信されたパケットを受信するパケット受信手段と、
前記別パケット送信手段から送信された別パケットを受信する別パケット受信手段と、
前記別パケット受信手段により受信された別パケット中の前記他の分割データの特定情報及びサイズ情報を記憶する情報記憶手段と、
前記受信された各パケット中の分割データのメモリ上の記憶位置を、前記情報記憶手段により記憶された、前記別パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定する記憶位置決定手段と、
前記記憶位置決定手段により決定された前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させる記憶処理手段とを有することを特徴とするデータ転送システム。
【請求項７】
前記他の分割データの特定情報は、該他の分割データの特定情報が付加されるパケットのシーケンス番号の情報、または該シーケンス番号と前記他の分割データに対応して生成され該他の分割データが含まれるパケットのシーケンス番号との差分の情報のいずれか一方であることを特徴とする請求項１〜６のいずれか１項に記載のデータ転送システム。
【請求項８】
請求項１〜７のいずれか１項に記載のデータ転送システムにおけるデータ送信装置として機能することを特徴とする送信装置。
【請求項９】
請求項１〜７のいずれか１項に記載のデータ転送システムにおけるデータ受信装置として機能することを特徴とする受信装置。
【請求項１０】
データ送信装置からデータ受信装置に対してネットワークを介してデータが転送されるデータ転送方法であって、
前記データ送信装置において、転送すべき転送用データを複数に分割した各分割データに、当該分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を付加して、前記各分割データ毎にパケットを生成し、該生成したパケットを前記データ受信装置に順次送信し、
前記データ受信装置において、前記送信されたパケットを受信し、該受信した各パケット中の前記他の分割データの特定情報及びサイズ情報を記憶し、前記受信した各パケット中の分割データのメモリ上の記憶位置を、前記記憶した、前記各パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定し、該決定した前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させることを特徴とするデータ転送方法。
【請求項１１】
データ送信装置からデータ受信装置に対してネットワークを介してデータが転送されるデータ転送方法であって、
前記データ送信装置において、転送すべき転送用データを複数に分割した各分割データを含んだパケットを前記各分割データ毎に生成すると共に、該生成したパケット中の分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を、１つ以上の前記他の分割データ分だけまとめて、前記生成したパケットとは異なる別パケットとして生成し、前記生成したパケットを前記データ受信装置に順次送信すると共に、前記生成した別パケットを前記データ受信装置に送信し、
前記データ受信装置において、前記送信されたパケットを受信すると共に、前記送信された別パケットを受信し、前記受信した別パケット中の前記他の分割データの特定情報及びサイズ情報を記憶し、前記受信した各パケット中の分割データのメモリ上の記憶位置を、前記記憶した、前記別パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定し、該決定した前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させることを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを複数に分割し、パケット化して転送するデータ転送システム及び方法、送信装置、受信装置に関する。
【背景技術】
【０００２】
従来、ＴＣＰ(Transmission Control Protocol)プロトコル等を用いたパケット通信においては、一般に、送信装置が、転送すべきデータを複数に分割し、パケット化して順次転送するが、パケットを受信する受信装置では、送信された順序でパケットが受信されるとは限らない。そのため、受信装置において、受信した複数のパケットからヘッダを取り除き、データを正しい順序で連結し再構築するデフラグメントと呼ばれる処理が必要とされる（下記特許文献１の図１２参照）。
【０００３】
図１６は、ＴＣＰプロトコルを用いたパケット通信における１つのパケットのデータ構成例を示す概念図である。このパケットには、プロトコル制御情報として、イーサネット（登録商標）ヘッダ、ＩＰヘッダ、ＴＣＰヘッダが含まれる。パケットに含まれる分割データは、可変長となる。
【０００４】
上記デフラグメントにおいては、未達（未受信）のパケットが一つでも存在すると、それ以後のパケットについてはメモリ上における書き込み位置が不明で、書き込むことができない。そのため、未達パケット以後のパケットを、一時保存領域に一旦保存し、送信順における前のパケットの到達によって書き込みが可能になると、データ記憶用のメモリにコピー操作で逐次コピーする。
【０００５】
従って、未達パケット以後のパケットのための一時保存領域が必要になり、パケットの受信順序の乱れによっては、大きな一時保存領域が必要とされる場合があった。また、一時保存領域からコピー操作でメモリに書き込む処理が発生することから、データ処理上のオーバーヘッドが増大するという問題もあった。
【０００６】
下記特許文献１には、正常に送信できなかったと判定されたときに、送信データを再分割し、この再分割された送信データと再度生成されたヘッダとをパケットとして送信する再送手段を有する通信装置の構成が開示されている
【特許文献１】特開２００２−１３５２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、一時記憶領域の削減、及び記憶処理上のオーバーヘッドの低減に関し、改善の余地があった。
【０００８】
本発明は上記従来技術の問題を解決するためになされたものであり、その目的は、パケット中の分割データのサイズが均一でなくても、受信された分割データの一時記憶領域を削減すると共に、分割データの記憶処理上のオーバーヘッドを減少させることができるデータ転送システム及び方法、送信装置、受信装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の請求項１のデータ転送システムは、データ送信装置とデータ受信装置とがネットワークを介して通信可能に接続されて構成されるデータ転送システムであって、前記データ送信装置は、転送すべき転送用データを複数に分割した各分割データに、当該分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を付加して、前記各分割データ毎にパケットを生成するパケット生成手段と、前記パケット生成手段により生成されたパケットを前記データ受信装置に順次送信するパケット送信手段とを有し、前記データ受信装置は、前記パケット送信手段から送信されたパケットを受信するパケット受信手段と、前記パケット受信手段により受信された各パケット中の前記他の分割データの特定情報及びサイズ情報を記憶する情報記憶手段と、前記受信された各パケット中の分割データのメモリ上の記憶位置を、前記情報記憶手段により記憶された、前記各パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定する記憶位置決定手段と、前記記憶位置決定手段により決定された前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させる記憶処理手段とを有することを特徴とする。
【００１０】
上記目的を達成するために本発明の請求項６のデータ転送システムは、データ送信装置とデータ受信装置とがネットワークを介して通信可能に接続されて構成されるデータ転送システムであって、前記データ送信装置は、転送すべき転送用データを複数に分割した各分割データを含んだパケットを前記各分割データ毎に生成するパケット生成手段と、前記パケット生成手段により生成されたパケット中の分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を、１つ以上の前記他の分割データ分だけまとめて、前記生成されたパケットとは異なる別パケットとして生成する別パケット生成手段と、前記パケット生成手段により生成されたパケットを前記データ受信装置に順次送信するパケット送信手段と、前記別パケット生成手段により生成された別パケットを前記データ受信装置に送信する別パケット送信手段とを有し、前記データ受信装置は、前記パケット送信手段から送信されたパケットを受信するパケット受信手段と、前記別パケット送信手段から送信された別パケットを受信する別パケット受信手段と、前記別パケット受信手段により受信された別パケット中の前記他の分割データの特定情報及びサイズ情報を記憶する情報記憶手段と、前記受信された各パケット中の分割データのメモリ上の記憶位置を、前記情報記憶手段により記憶された、前記別パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定する記憶位置決定手段と、前記記憶位置決定手段により決定された前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させる記憶処理手段とを有することを特徴とする。
【００１１】
上記目的を達成するために本発明の請求項８の送信装置は、請求項１〜７のいずれか１項に記載のデータ転送システムにおけるデータ送信装置として機能することを特徴とする。
【００１２】
上記目的を達成するために本発明の請求項９の受信装置は、請求項１〜７のいずれか１項に記載のデータ転送システムにおけるデータ受信装置として機能することを特徴とする。
【００１３】
上記目的を達成するために本発明の請求項１０のデータ転送方法は、データ送信装置からデータ受信装置に対してネットワークを介してデータが転送されるデータ転送方法であって、前記データ送信装置において、転送すべき転送用データを複数に分割した各分割データに、当該分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を付加して、前記各分割データ毎にパケットを生成し、該生成したパケットを前記データ受信装置に順次送信し、前記データ受信装置において、前記送信されたパケットを受信し、該受信した各パケット中の前記他の分割データの特定情報及びサイズ情報を記憶し、前記受信した各パケット中の分割データのメモリ上の記憶位置を、前記記憶した、前記各パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定し、該決定した前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させることを特徴とする。
【００１４】
上記目的を達成するために本発明の請求項１１のデータ転送方法は、データ送信装置からデータ受信装置に対してネットワークを介してデータが転送されるデータ転送方法であって、前記データ送信装置において、転送すべき転送用データを複数に分割した各分割データを含んだパケットを前記各分割データ毎に生成すると共に、該生成したパケット中の分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を、１つ以上の前記他の分割データ分だけまとめて、前記生成したパケットとは異なる別パケットとして生成し、前記生成したパケットを前記データ受信装置に順次送信すると共に、前記生成した別パケットを前記データ受信装置に送信し、前記データ受信装置において、前記送信されたパケットを受信すると共に、前記送信された別パケットを受信し、前記受信した別パケット中の前記他の分割データの特定情報及びサイズ情報を記憶し、前記受信した各パケット中の分割データのメモリ上の記憶位置を、前記記憶した、前記別パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定し、該決定した前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、パケット中の各分割データのサイズが均一でなくても、受信分割データの一時記憶領域を削減すると共に、分割データの記憶処理上のオーバーヘッドを減少させることができる。
【００１６】
請求項２によれば、パケットを順番に沿って生成、送信でき、パケット生成前の分割データを一時記憶しておくメモリ領域が少なくて済む。
【００１７】
請求項４によれば、転送の進捗状況に応じた数分だけ他の分割データの特定情報及びサイズ情報を付加すればよいので、データ転送量を最小限に抑えることができ、伝送路帯域を必要以上に占めることがない。
【００１８】
請求項５によれば、標準のプロトコルを利用できるので、汎用性が高い。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照して説明する。
【００２０】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係るデータ転送システムの構成を示すブロック図である。
【００２１】
このデータ転送システムは、送信モジュール１０５と受信モジュール１１２とが、ネットワーク１１３を介してデータ通信が可能なように接続されて構成される。ネットワーク１１３は、例えば、ＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）の他、専用回線、一般公衆回線（ＰＳＴＮ）、ＩＳＤＮ（ＩｎｔｅｇｒａｔｅｄＳｅｒｖｉｃｅ Ｄｉｇｉｔａｌ Ｎｅｔｗｏｒｋ）、あるいはインターネットであってもよい。
【００２２】
本実施の形態では、ネットワーク１１３上においては、送信モジュール１０５と受信モジュール１１２とは、ＯＳＩ（Open Systems Interconnection）参照モデルのトランスポート層のプロトコルであるＴＣＰ（Transmission Control Protocol）プロトコルに従って、パケット通信を行う。
【００２３】
送信モジュール１０５において、データ生成部１０１、パケット生成部１０２、パケット送信部１０４が直列に接続され、パケット生成部１０２にはサイズ情報記憶部１０３が接続されている。
【００２４】
受信モジュール１１２において、パケット受信部１０６、パケット解析部１０７、メモリ制御部（記憶処理手段）１０９、メモリ１１１が直列に接続され、パケット解析部１０７にはアドレス解析部（記憶位置決定手段）１０８が接続され、メモリ制御部１０９には、アドレス情報記憶部１１０が接続されている。アドレス解析部１０８は、アドレス情報記憶部１１０とも接続されている。メモリ制御部１０９には、バッファ１１４が設けられている。
【００２５】
送信モジュール１０５において、データ生成部１０１は、送信すべきデータを順次生成する。パケット生成部１０２は、データ生成部１０１により生成されたデータに各種ヘッダを追加してパケット（後述）を生成する。サイズ情報記憶部１０３は、パケット生成部１０２により生成されたパケット中のデータのシーケンス番号及びサイズを記憶しておく。サイズ情報記憶部１０３は、所定段数のＦＩＦＯ（First In First Out）メモリで構成される。パケット送信部１０４は、ネットワーク１１３に対してパケットを送信する。
【００２６】
ここで、データ生成部１０１により順次生成される個々のデータは、転送すべき一かたまりのデータ（以下、「転送用データ」と称する）を複数に分割したデータであるので、以降、これら分割されたデータを、「分割データＢＤ」と呼称する。また、各分割データＢＤの個々を区別して述べるときは、その転送用データ中における並び順に従って、分割データＢＤ０、ＢＤ１・・・ＢＤｎのように連番を付す。
【００２７】
受信モジュール１１２において、パケット受信部１０６は、ネットワーク１１３からパケットを受信し、パケット解析部１０７に送る。パケット解析部１０７は、受信したパケットの解析を行う。アドレス解析部１０８は、パケット解析部１０７からの情報及びアドレス情報記憶部１１０からの情報を基に、受信したパケット中の分割データＢＤを記憶すべきメモリ１１１上の位置である「記憶先アドレス」の計算が可能か否かを解析すると共に、可能な場合は、記憶先アドレスを計算する。
【００２８】
アドレス情報記憶部１１０は、受信したパケットに含まれるシーケンス番号（後述する）、該パケット中の分割データＢＤのデータサイズを示すサイズ情報（後述する）、及び上記計算された記憶先アドレスを記憶しておく。詳細は後述するが、メモリ制御部１０９は、これらシーケンス番号、サイズ情報、記憶先アドレスに基づいて、受信したパケット中の分割データＢＤをメモリ１１１の適切な位置（上記計算された記憶先アドレス）に書き込むための制御を行う。メモリ１１１は、分割データＢＤを記憶する。受信モジュール１１２においては、受信したパケット中の分割データＢＤを元の並び順通りに正して復元するデフラグメントが行われるが、メモリ制御部１０９による上記書き込み制御が、デフラグメントに相当する。
【００２９】
図２は、送信モジュール１０５において実行されるパケット送信処理のフローチャートである。このパケット送信処理は、１つの転送用データの送信が指示されたとき開始され、転送が完了するまで繰り返される。図３は、受信モジュール１１２において実行されるパケット受信処理のフローチャートである。このパケット受信処理は、送信モジュール１０５との通信可能状態時において繰り返し実行される。図４は、受信モジュール１１２においてタイマ起動毎に実行される書き込み待機処理のフローチャートである。
【００３０】
図５は、転送される１つのパケットのデータ構成例を示す概念図である。このパケットは、後述する図２のステップＳ２０４で生成されるものである。パケットには、分割データＢＤに、プロトコル制御情報、ＣＲＣ（Cyclic Redundancy Check）が付加されて構成される。プロトコル制御情報には、Ethernet（登録商標）ヘッダ、ＩＰ（Internet Protocol）ヘッダ、ＴＣＰヘッダが含まれる。ＩＰヘッダ中の全データ長２２は、ヘッダ長を含み、この全データ長２２から、分割データＢＤのデータサイズもわかる。また、ＴＣＰヘッダ中のシーケンス番号２１は、当該パケット中の分割データＢＤの、転送用データにおける先頭からの並び順を示す、通し番号の情報である。さらに、ＴＣＰヘッダ中には、パケット転送中に発生するデータ誤りの有無を検出するためのチェックサムのほか、シーケンス番号１１、データ長１２が含まれる。
【００３１】
シーケンス番号１１及びデータ長１２は、１つの転送用データから分割された複数の分割データＢＤのうち、パケット中に含まれる分割データＢＤ以外の、他の分割データＢＤ（すなわち、他のパケットに含まれるべき分割データＢＤ）に関する情報である。シーケンス番号１１は、上記他の分割データＢＤの、上記転送用データにおける先頭からの並び順を示す、通し番号の情報である（特定情報）。また、データ長１２は、上記他の分割データＢＤのデータサイズ（容量）を示す情報である。以降、これらの情報を１組として、「他データ情報１０」と呼称する。
【００３２】
他データ情報１０は、ＴＣＰヘッダにおけるオプション情報（図１６参照）として付加されるものである。なお、本実施の形態では、後述するように、上記他の分割データＢＤとして、シーケンス番号が１つ前の分割データＢＤが採用される。このような、パケット中に含まれる分割データＢＤと上記他の分割データＢＤとを区別するときは、パケット中に含まれる分割データＢＤを「自分割データＢＤ（ｘ）」、上記他の分割データＢＤを「他分割データＢＤ（ｙ）」と記すこととする。
【００３３】
まず、パケット送信処理を説明する。送信モジュール１０５において、図２のステップＳ２０１では、データ生成部１０１が、転送すべき転送用データに基づき、分割データＢＤを生成したか否かを判別し、生成した場合は、続くステップＳ２０２で、データ生成部１０１が、該生成した分割データＢＤをパケット生成部１０２に送ると共に、パケット生成部１０２が、送られてきた分割データＢＤに対してパケットの仮生成を行う。このとき、パケット生成部１０２は、まず、自分割データＢＤ（ｘ）のシーケンス番号２１及びサイズ情報（全データ長２２から把握される）を、サイズ情報記憶部１０３へ送り、サイズ情報記憶部１０３は、送られたシーケンス番号２１及びサイズ情報を一対（１組）の情報として記憶しておく。
【００３４】
次に、パケット生成部１０２は、サイズ情報記憶部１０３に記憶されている、現在処理中の自分割データＢＤ（ｘ）より一つ前のシーケンス番号に対応する分割データＢＤ（すなわち、他分割データＢＤ（ｙ））のシーケンス番号及びサイズ情報を読み出す（ステップＳ２０３）。そして、これら読み出したシーケンス番号及びサイズ情報を、上記他データ情報１０（シーケンス番号１１及びサイズ情報１２）として、自分割データＢＤ（ｘ）にオプション情報として付加したパケットを生成する（ステップＳ２０４）（図５参照）。すなわち、図５に示すパケットにおいて、シーケンス番号１１及びデータ長１２は、分割データＢＤに対して１つ前の分割データＢＤの情報である。
【００３５】
次に、パケット生成部１０２は、前記ステップＳ２０４で生成されたパケットをパケット送信部１０４へ送り、パケット送信部１０４が、該パケットをネットワーク１１３を通して受信モジュール１１２に送信する（ステップＳ２０５）。このようにして１つのパケットが送信される。本処理を繰り返すことで、１つの転送用データに対応する複数のパケットが送信される。各パケットの構成はいずれも同様である。
【００３６】
次に、パケット受信処理を説明する。受信モジュール１１２において、図３のステップＳ３０１では、パケット解析部１０７は、パケット受信部１０６によってパケットが受信されたか否かを判別し、受信されると、該受信したパケットから、自分割データＢＤ（ｘ）及びシーケンス番号２１を抽出し、これらをメモリ制御部１０９へ送る（ステップＳ３０２）。次に、上記受信したパケットから、他分割データＢＤ（ｙ）の、１組となっている他データ情報１０（シーケンス番号１１及びサイズ情報１２）を抽出し、これらをアドレス解析部１０８へ送る（ステップＳ３０３）。
【００３７】
アドレス解析部１０８は、送られてきたシーケンス番号１１及びサイズ情報１２をアドレス情報記憶部１１０に記憶させる（ステップＳ３０４）。それと共に、自分割データＢＤ（ｘ）をメモリ１１１へ書き込む場合のメモリ１１１上の位置である記憶先アドレスが計算できるか否かを判断する。（ステップＳ３０５）。
【００３８】
ここで、分割データＢＤのシーケンス番号が０から始まるとすると、ｎ番目の分割データＢＤの記憶先アドレスは、下記数式１で表される。
【００３９】
【数１】
2006340322.tif 000003
【００４０】
ここで、「ｄｉ」はシーケンス番号２１が「ｉ」である分割データＢＤのデータサイズ、「ｂａｓｅ」は、ベースアドレス、すなわち、シーケンス番号２１が「０」である先頭の分割データＢＤを書き込むべき記憶先アドレスである。
【００４１】
従って、例えば、シーケンス番号２１が「ｎ」である分割データＢＤの記憶先アドレスが計算できるためには、シーケンス番号２１が「０」〜「ｎ−１」までの分割データＢＤのサイズ情報がすべて揃っているか、若しくは、シーケンス番号２１が「ｎ−１」である分割データＢＤの記憶先アドレスが既に得られていることが必要となる。上記ステップＳ３０５では、このような条件で判別される。
【００４２】
そして、アドレス解析部１０８は、記憶先アドレスが計算可能であった場合は、記憶先アドレスの計算を行い（ステップＳ３０６）、該計算した記憶先アドレスを、アドレス記憶部１１０へ送り、これを、上記記憶させたシーケンス番号１１及びサイズ情報１２に対応付けてアドレス情報記憶部１１０に記憶させて（ステップＳ３０７）、ステップＳ３０８に進む。一方、記憶先アドレスが計算できないと判別された場合は、直ちにステップＳ３０８に進む。
【００４３】
ステップＳ３０８では、メモリ制御部１０９が、上記送られてきたシーケンス番号２１に対応する自分割データＢＤ（ｘ）に関して、記憶先アドレスが記憶されているか否かをアドレス情報記憶部１１０に問い合わせることで、該自分割データＢＤ（ｘ）がメモリ１１１に書き込むことが可能であるか否かを判別する。
【００４４】
その判別の結果、アドレス情報記憶部１１０に記憶先アドレスが記憶されている場合は、自分割データＢＤ（ｘ）を、メモリ１１１上の上記記憶先アドレスに対して書き込む（ステップＳ３０９）。それと共に、アドレス情報記憶部１１０に対して書き込み済信号を送る。
【００４５】
次に、アドレス情報記憶部１１０は、上記書き込み済信号が送られてくると、今回書き込みが完了した自分割データＢＤ（ｘ）に関する記憶先アドレスと、該記憶先アドレスに対応しているシーケンス番号１１及びサイズ情報１２とを消去可能であるか否かを判別する（ステップＳ３１０）。
【００４６】
例えば、シーケンス番号２１が「ｎ」である分割データＢＤに関する書き込み済信号が送られてきたとすると、シーケンス番号２１が「ｎ＋１」の記憶先アドレスが既に記憶されていれば、シーケンス番号２１が「ｎ」である分割データＢＤに関する記憶先アドレス、シーケンス番号１１及びサイズ情報１２は消去可能である。すなわち、今回、書き込まれた分割データＢＤの１つ後の分割データＢＤが既に書き込まれていれば「消去可能」と判別されるが、１つ後の分割データＢＤが未書き込みである場合は、「消去可能」と判別されない。
【００４７】
そして、前記ステップＳ３１０の判別の結果、消去が可能である場合は、アドレス情報記憶部１１０は、今回書き込み処理がなされた自分割データＢＤ（ｘ）に関する記憶先アドレスと、該記憶先アドレスに対応しているシーケンス番号１１及びサイズ情報１２とを消去する（ステップＳ３１１）。一方、消去が可能でない場合は、後続の分割データＢＤの記憶先アドレス計算に利用できるようにするため、これらの情報を消去することなく本処理を終了する。
【００４８】
一方、前記ステップＳ３０８の判別の結果、書き込み不可である場合は、メモリ制御部１０９は、自分割データＢＤ（ｘ）を、バッファ１１４（図１参照）に一時記憶させ（ステップＳ３１２）、メモリ制御部１０９内のタイマ（図示せず）を起動させる（ステップＳ３１３）。これにより、図４の書き込み待機処理が開始される。
【００４９】
まず、図４のステップＳ４０１では、メモリ制御部１０９は、タイムアップか、すなわち、タイマのカウント値が予め決められた値に達したか否かを判別し、タイムアップしていない場合は、新規データ、すなわち、バッファ１１４に記憶されている自分割データＢＤ（ｘ）とは別の新たな自分割データＢＤ（ｘ）が送られてきたか否かを判別し（ステップＳ４０３）、新たな自分割データＢＤ（ｘ）が送られてこない場合は、前記ステップＳ４０１に戻る。
【００５０】
一方、タイムアップした場合は、メモリ制御部１０９のバッファ１１４に一時記憶されている自分割データＢＤ（ｘ）を破棄して（ステップＳ４０２）、本処理を終了する。なお、前記ステップＳ４０２において、破棄した分割データＢＤに対応するパケットの再送を要求する再送制御処理を行うようにするのが好ましい。
【００５１】
前記ステップＳ４０３の判別の結果、新たな自分割データＢＤ（ｘ）が送られてきた場合は、バッファ１１４に記憶されている自分割データＢＤ（ｘ）についての書き込み可否の判別を、前記ステップＳ３０８と同様の態様で行う（ステップＳ４０４）。これと並行して、図３の処理が実行されているので、前記ステップＳ３０８において、上記新たな自分割データＢＤ（ｘ）についての書き込み可否の判別がなされ、その後、前記ステップＳ３０９以降または前記ステップＳ３１２以降の処理も実行される。従って、この図３の処理によって、一旦、バッファ１１４に記憶された自分割データＢＤ（ｘ）についても、タイムアップ前に記憶先アドレスが事後的に計算されれば、アドレス情報記憶部１１０に記憶されることになる。
【００５２】
前記ステップＳ４０４の判別の結果、バッファ１１４に記憶されている自分割データＢＤ（ｘ）についての書き込みが可能でない場合は、前記ステップＳ４０１に戻る。一方、バッファ１１４に記憶されている自分割データＢＤ（ｘ）についての書き込みが可能である場合は、該自分割データＢＤ（ｘ）について、記憶先アドレスが得られているので、メモリ制御部１０９は、前記ステップＳ３０９と同様に、該自分割データＢＤ（ｘ）を、メモリ１１１上の上記記憶先アドレスに対して書き込むと共に、アドレス情報記憶部１１０に対して書き込み済信号を送る（ステップＳ４０５）。
【００５３】
次に、アドレス情報記憶部１１０は、前記ステップＳ４０５で書き込みが完了した自分割データＢＤ（ｘ）の記憶先アドレスと、該記憶先アドレスに対応しているシーケンス番号１１及びサイズ情報１２とを消去可能であるか否かを、前記ステップＳ３１０と同様に判別する（ステップＳ４０６）。その判別の結果、消去可能であれば、前記ステップＳ３１１と同様にこれらの情報を消去し（ステップＳ４０７）、メモリ制御部１０９がタイマのカウント値をリセットして（ステップＳ４０８）、本処理を終了する。一方、前記ステップＳ４０６の判別の結果、消去が可能でない場合は、上記各情報を消去することなく本処理を終了する。
【００５４】
図６（ａ）〜（ｅ）は、メモリ１１１に分割データＢＤが記憶される様子を遷移的に示す概念図である。
【００５５】
上述したように、パケットは、送信された順序通りに受信されるとは限らない。まず、先頭の分割データＢＤ０を含んだパケットが受信されると、分割データＢＤ０が、メモリ１１１における上記ｂａｓｅ（ベースアドレス）に記憶される（同図（ａ））。このとき、分割データＢＤ０のデータサイズｄ０は、全データ長２２から既知となる。次に、分割データＢＤ１よりも先に分割データＢＤ２を含んだパケットが受信されたとする。このとき、受信されたパケット中のシーケンス番号１１は、１つ前の分割データＢＤである分割データＢＤ１のシーケンス番号２１と同じ値であり、同パケット中のデータ長１２は、分割データＢＤ１のデータサイズを規定するものであるので（図５参照）、分割データＢＤ１のデータサイズｄ１が判明する。
【００５６】
従って、分割データＢＤ２について、記憶先アドレスが計算可能であり（ステップＳ３０５）、計算された記憶先アドレスがアドレス情報記憶部１１０に記憶されれば、メモリ１１１に書き込むことも可能となる（ステップＳ３０８）。従って、分割データＢＤ２が、メモリ１１１上の適切な位置に書き込まれる（同図（ｂ））。このように、従来では、分割データＢＤ２は、分割データＢＤ１が先に書き込まれていない（未達の）ときは、書き込むことができなかったが、本実施の形態では、分割データＢＤ２の記憶先アドレスがわかるため、分割データＢＤ１の記憶領域を確保した状態で分割データＢＤ２を書き込むことが可能となっている。
【００５７】
次に、分割データＢＤ１を含んだパケットが受信されると、分割データＢＤ１が分割データＢＤ０と分割データＢＤ２との間の記憶領域に記憶される（同図（ｃ））。次に、分割データＢＤ５を含んだパケットが受信されると、データサイズｄ０〜ｄ３の他に、データサイズｄ４が判明するが、データサイズｄ３が不明であるため、分割データＢＤ５は、バッファ１１４（図１参照）に一時待避される（同図（ｄ））（ステップＳ３１２）。
【００５８】
しかしその後、分割データＢＤ４を含んだパケットが受信されると、データサイズｄ３が判明するため、分割データＢＤ４と共に、分割データＢＤ５も、メモリ１１１上の適切な位置に書き込まれる（同図（ｅ））（ステップＳ３０９、ステップＳ４０５）。なお、同図（ｄ）に示す状態で、分割データＢＤ４ではなく、分割データＢＤ３を含んだパケットが受信された場合も、データサイズｄ３が判明するため、分割データＢＤ３と共に、分割データＢＤ５が書き込み可能となる。
【００５９】
本実施の形態によれば、自分割データＢＤ（ｘ）より順番が前の分割データＢＤに未達のものがあり、なおかつ、各分割データＢＤのデータサイズが均一でない場合であっても、自分割データＢＤ（ｘ）の記憶先アドレスが計算できる場合があり、記憶先アドレスが計算できれば、自分割データＢＤ（ｘ）は直ちにメモリ１１１の適切な位置に記憶することができる。従って、従来のように、デフラグメントのための、多大な一時記憶用メモリを設けなくてもよいので、メモリ容量を削減することができる。また、デフラグメントの処理を省くことができるので、パケット受信時における処理上のオーバーヘッドを減少させることができる。
【００６０】
また、シーケンス番号１１及びデータ長１２は、ＴＣＰヘッダにおけるオプション情報を利用として付加され、標準のプロトコルが利用されるので、汎用性が高い。
【００６１】
（第２の実施の形態）
次に、本発明の第２の実施の形態を、図３、図４、図７〜図１２を用いて説明する。上記第１の実施の形態では、あるパケットを送信する場合、そのパケットに、一つ前に送信されたパケット中の他分割データＢＤ（ｙ）の情報を、他データ情報１０として付加するようにしたが、本第２の実施の形態では、以後に送信されるパケット中の他分割データＢＤ（ｙ）の情報を付加することをも可能とし、さらには、各パケット中に付加する他分割データＢＤ（ｙ）の他データ情報１０の数を、受信モジュール１１２におけるパケットの受信乃至書き込みの処理状況に応じて動的に変更することも可能にする。
【００６２】
本第２の実施の形態では、送信モジュール及び受信モジュールの構成と、送信モジュールから転送されるパケットのデータ構成と、送信モジュールにおけるパケット送信処理とが、第１の実施の形態に対して異なる。さらに、送信モジュールにおいて情報付加数設定処理が、受信モジュールにおいて転送状況監視処理が、それぞれ実行される点でも第１の実施の形態と異なる。従って、第１の実施の形態に対して、図１、図２、図５、図６に代えて図７、図８、図１１、図１２を用い、さらに図９、図１０を加えて本第２の実施の形態を説明する。
【００６３】
図７は、本発明の第２の実施の形態に係るデータ転送システムの構成を示すブロック図である。送信モジュール７０５、受信モジュール７０９は、それぞれ、第１の実施の形態における送信モジュール１０５、受信モジュール１１２に相当する。送信モジュール７０５、受信モジュール７０９内の各構成要素のうち、第１の実施の形態におけるものと同一の要素には同一符号が付してある。
【００６４】
送信モジュール７０５において、パケット生成部１０２とパケット送信部１０４との間には、遅延部７０１が接続される。また、パケット受信部７０３、付加情報指定部（数設定手段）７０４及びサイズ情報記憶部７０２が直列に接続されている。付加情報指定部７０４及びサイズ情報記憶部７０２は、パケット生成部１０２及び遅延部７０１にも接続されている。
【００６５】
遅延部７０１は、パケット生成部１０２によって生成されたパケットを１つ以上記憶でき、パケット送信部１０４へ送るタイミングを遅延させる。サイズ情報記憶部７０２は、パケット生成部１０２によって生成されたパケット中の分割データＢＤのサイズ情報を３つ以上記憶しておくことが可能である。パケット受信部７０３は、受信モジュール７０９からネットワーク１１３を介して送信される監視パケット（後述）を受信する。付加情報指定部７０４は、パケット受信部７０３で受信された監視パケットに基づき、後述する「情報付加数」の指定を行う。その他の構成は第１の実施の形態における送信モジュール１０５と同様である。
【００６６】
受信モジュール７０９においては、受信モジュール１１２に対して、さらに、直列に接続された転送状況解析部（監視手段）７０６、パケット生成部７０７及びパケット送信部７０８が設けられている。転送状況解析部７０６は、メモリ制御部１０９とも接続されている。その他の構成は第１の実施の形態における受信モジュール１１２と同様である。
【００６７】
転送状況解析部７０６は、メモリ制御部１０９内の動作を監視し、分割データＢＤの破棄状況に応じてパケット生成部７０７へ監視結果を送る。パケット生成部７０７は、転送状況解析部７０６からの監視結果に基づき監視パケットを生成し、パケット送信部７０８へ送る。パケット送信部７０８は、ネットワーク１１３を介して送信モジュール７０５に監視パケットを送信する。その他の構成は、第１の実施の形態における受信モジュール１１２と同様である。
【００６８】
図８は、送信モジュール７０５において実行されるパケット送信処理のフローチャートであり、図２に対応する。図９は、受信モジュール７０９において実行される転送状況監視処理のフローチャートである。図１０は、送信モジュール７０５において実行される情報付加数設定処理のフローチャートである。
【００６９】
図８のパケット送信処理及び図１０の情報付加数設定処理は、１つの転送用データの送信が指示されたとき開始され、転送が完了するまで繰り返される。図９の転送状況監視処理は、図３のパケット受信処理に並行して実行される。
【００７０】
図１１は、本実施の形態において転送される１つのパケットのデータ構成例を示す概念図である。本実施の形態では、ＴＣＰヘッダにおけるオプション情報として、１つのパケット中に付加されるシーケンス番号１１及びデータ長１２は、各１つに限られず、複数付加される場合がある。例えば、図１１に示す例では、他データ情報１０が２つ、すなわち、他データ情報１０ａ（シーケンス番号１１ａ及びデータ長１２ａ）と他データ情報１０ｂ（シーケンス番号１１ｂ及びデータ長１２ｂ）とが含まれている。上記した「情報付加数」とは、他データ情報１０の数である。パケットのその他の部分の構成は、図５の例と同様である。
【００７１】
なお、本実施の形態では、「情報付加数」の上限を４つとするが、これに限定されるものではない。また、「情報付加数」に応じて、どの他分割データＢＤ（ｙ）の他データ情報１０を付加するかについては、予め優先順位を決めておく必要がある。本実施の形態では、例えば、自分割データＢＤ（ｘ）の１つ前、自分割データＢＤ（ｘ）の１つ後、自分割データＢＤ（ｘ）の２つ前、自分割データＢＤ（ｘ）の２つ後、という順番とする。
【００７２】
まず、パケット送信処理を説明する。送信モジュール７０５において、図８のステップＳ８０１、Ｓ８０２では、図２のステップＳ２０１、２０２と同様の処理を実行する。ただし、ステップＳ８０２では、自分割データＢＤ（ｘ）のシーケンス番号２１及びサイズ情報（全データ長２２から把握される）を、サイズ情報記憶部７０２へ送り、サイズ情報記憶部７０２が、送られたシーケンス番号２１及びサイズ情報を一対の情報として記憶しておく。
【００７３】
次に、ステップＳ８０３では、パケット生成部１０２が、生成したパケットを遅延部７０１に送る。ところで、後述するように、「情報付加数」は、付加情報指定部７０４から送られてくる情報数指定値Ｎｕｍに従って設定される。次に、ステップＳ８０４で、遅延部７０１が、サイズ情報記憶部７０２において設定されている「情報付加数」に応じた数分の他分割データＢＤ（ｙ）のシーケンス番号及びサイズ情報を読み出す。例えば、情報付加数が「２」である場合は、現在処理中の自分割データＢＤ（ｘ）より一つ前及び１つ後の各シーケンス番号に対応する２つの他分割データＢＤ（ｙ））のシーケンス番号及びサイズ情報を読み出す。ここで、遅延部７０１が遅延させるパケットの数は、付加させるべき後続の分割データＢＤの数と同じであり、上記優先順位の設定と、付加情報指定部７０４から送られてくる情報数指定値Ｎｕｍとに基づいて設定される。
【００７４】
そして、パケット生成部１０２は、これら読み出した、情報付加数分のシーケンス番号及びサイズ情報を、上記他データ情報１０として、遅延部７０１で遅延されたパケット中の自分割データＢＤ（ｘ）にオプション情報として付加することで、パケットを再生成する（ステップＳ８０５）（図１１参照）。次に、該再生成されたパケットをパケット送信部１０４がネットワーク１１３を通して受信モジュール７０９に送信する（ステップＳ８０６）。
【００７５】
ところで、図１１に示すパケットにおいて、他データ情報１０がいくつ付加されているかは、ＴＣＰヘッダ中のヘッダ長の情報から判断することができる。
【００７６】
情報付加数は、図９の転送状況監視処理によって、動的に変更される。すなわち、受信モジュール７０９において、まず、図９のステップＳ９０１で、転送状況解析部７０６は、図４のステップＳ４０２で、メモリ制御部１０９により、予め定められた所定時間当たりにバッファ１１４から破棄された自分割データＢＤ（ｘ）の容量（以下、「データ破棄量Ｎ」と称する）を監視する。この監視処理では、下記数式２により情報数指定値Ｎｕｍを算出する。
【００７７】
［数２］
Ｎｕｍ＝ｋ×Ｎ（ｋは定数）
情報数指定値Ｎｕｍは、所定時間毎に算出されて更新される。次に、転送状況解析部７０６は、情報数指定値Ｎｕｍに変化があったか否かを判別し（ステップＳ９０２）、変化がなければ本処理を終了する一方、変化があった場合は、最新の情報数指定値Ｎｕｍをパケット生成部７０７へ送る。そして、パケット生成部７０７は、送られてきた情報数指定値Ｎｕｍを含んだ監視パケットを生成する（ステップＳ９０３）。
【００７８】
そして、生成された監視パケットは、パケット送信部７０８へ送られ、パケット送信部７０８が、該監視パケットを、ネットワーク１１３を通して送信モジュール７０５へ送信する（ステップＳ９０４）。
【００７９】
一方、送信モジュール７０５では、パケット送信処理と並行して、情報付加数設定処理がなされる。まず、図１０のステップＳ１００１で、パケット受信部７０３が、監視パケットを受信したか否かを判別し（ステップＳ１００１）、受信した場合は、該監視パケットを付加情報指定部７０４へ送る。
【００８０】
次に、付加情報指定部７０４は、送られた監視パケットから情報数指定値Ｎｕｍを抽出し、（ステップＳ１００２）、これを、遅延部７０１及びサイズ情報記憶部７０２へ設定データとして送る（ステップＳ１００３）。そして、遅延部７０１、サイズ情報記憶部７０２はそれぞれ、送られてきた設定データに基づき、情報付加数の設定を変更する（ステップＳ１００４）。すなわち、遅延部７０１は、遅延するパケットの数を変更し、サイズ情報記憶部７０２は、記憶しておくシーケンス番号２１及びサイズ情報の組の数を変更する。
【００８１】
図１２（ａ）〜（ｄ）は、メモリ１１１に分割データＢＤが記憶される様子を遷移的に示す概念図である。この例では、情報付加数は「２」のまま変化がなかったとして説明する。従って、各パケットには、前後１つずつの分割データＢＤの他データ情報１０が含まれている。
【００８２】
まず、先頭の分割データＢＤ０を含んだパケットが受信されると、分割データＢＤ０が、メモリ１１１における上記ｂａｓｅ（ベースアドレス）に記憶される（同図（ａ））。このとき、分割データＢＤ０のデータサイズｄ０は、全データ長２２から既知となる。また、このパケット中には、１つ後の分割データＢＤである分割データＢＤ１のシーケンス番号２１と同じ値のシーケンス番号１１と、分割データＢＤ１のデータサイズを規定するデータ長１２とが含まれているので、データサイズｄ１も判明する。
【００８３】
次に、分割データＢＤ３を含んだパケットが受信されたとする。このとき、受信されたパケット中のシーケンス番号１１（１１ａ、１１ｂ）は、１つ前と１つ後の分割データＢＤである分割データＢＤ２、ＢＤ４の各シーケンス番号２１と同じ値であり、同パケット中のデータ長１２（１２ａ、１２ｂ）は、分割データＢＤ２、ＢＤ４の各データサイズを規定するものであるので（図１１参照）、分割データＢＤ２〜ＢＤ４のデータサイズｄ２〜ｄ４が判明する。従って、分割データＢＤ３は、その記憶先アドレスが計算可能であるので、メモリ１１１上の適切な位置に書き込まれる（同図（ｂ））。
【００８４】
次に、分割データＢＤ７を含んだパケットが受信されたとする。このとき、
データサイズｄ５、ｄ６が不明であるため、分割データＢＤ７は、バッファ１１４（図１参照）に一時待避される（同図（ｃ））。
【００８５】
しかしその後、分割データＢＤ５を含んだパケットが受信されると、データサイズｄ５、ｄ６が新たに判明するため、分割データＢＤ５と共に、分割データＢＤ７も、メモリ１１１上の適切な位置に書き込まれる（同図（ｄ））。なお、同図（ｃ）に示す状態で、分割データＢＤ５ではなく、分割データＢＤ６を含んだパケットが受信された場合も、データサイズｄ５、ｄ６が新たに判明するため、分割データＢＤ６と共に、分割データＢＤ７が書き込み可能となる。
【００８６】
この例では、情報付加数は「２」のままであるとしたが、例えば、「４」に変更されれば、受信されたパケットの前後２つのパケットの分割データＢＤのデータサイズまでが判明するので、分割データＢＤの書き込みが即時になされる確率が高くなる。
【００８７】
本実施の形態によれば、第１の実施の形態と同様の効果を奏する。また、以前だけでなく、以後に送信されるパケット中の他分割データＢＤ（ｙ）の情報を他データ情報１０として付加できるようにしたので、自分割データＢＤ（ｘ）の記憶先アドレスが計算可能な場合が多くなり、バッファ１１４に一時待避される自分割データＢＤ（ｘ）が少なくなって、分割データＢＤの書き込みがより円滑にできる。
【００８８】
さらには、情報付加数を、データ破棄量Ｎに関する監視結果に基づいて動的に変更するようにしたので、情報付加数を最適に保つことができる。その結果、転送の進捗状況に応じた数分だけ他データ情報１０を付加すればよいので、データ転送量を必要最小限に抑えることができ、伝送路帯域を必要以上に占めることがない。また、円滑な書き込み処理を確保しつつ、バッファ１１４の記憶領域を削減することにも繋がる。
【００８９】
なお、本実施の形態では、情報付加数が増えるに従って、自分割データＢＤ（ｘ）に対して、どの他分割データＢＤ（ｙ）の情報を他データ情報１０として付加するかという優先順位を、自分割データＢＤ（ｘ）の１つ前、１つ後、２つ前、２つ後、という順番としたが、これに限るものではない。例えば、自分割データＢＤ（ｘ）の前側のもののみ、あるいは後ろ側のもののみを複数付加するようにしてもよい。従って、上記第１の実施の形態において、１つ前だけでなく、自分割データＢＤ（ｘ）の前側の複数の他分割データＢＤ（ｙ）の情報を付加するようにしてもよい。
【００９０】
このように考えると、付加するものは、自分割データＢＤ（ｘ）に対して順番が遠く離れている他分割データＢＤ（ｙ）の情報であってもよい。ただし、上記例のように、自分割データＢＤ（ｘ）に対して前側または後側に隣接する他分割データＢＤ（ｙ）の情報を優先する方が下記のような理由で好ましい。すなわち、送信モジュール７０５において、パケットを順番に沿って生成、送信する際に、遅延部７０１で遅延させる分割データＢＤの数を最小限に抑えることができる点で有利である。それだけでなく、受信モジュール７０９においても、通常、パケットが順番通りに受信されることも多いことから、分割データＢＤの破棄頻度が小さくて済むので、結局、通信帯域の削減及びバッファ１１４の記憶領域の削減が図れる点で有利である。
【００９１】
（第３の実施の形態）
次に、本発明の第３の実施の形態を、図４、図１３〜図１５を用いて説明する。上記第１、第２の実施の形態では、他データ情報１０をパケット中に付与して転送を行ったが、本発明の第３の実施の形態では、他データ情報１０を含むパケットを、分割データＢＤが含まれるパケットとは全く別のパケットとして構成し、転送する。
【００９２】
本第３の実施の形態では、送信モジュール及び受信モジュールの構成、パケット送信処理及びパケット受信処理が、第１の実施の形態に対して異なる。従って、第１の実施の形態に対して、図１、図２、図３に代えて図１３、図１４、図１５を用いて本第３の実施の形態を説明する。また、図４の書き込み待機処理は第１の実施の形態と同様である。
【００９３】
第１、第２の実施の形態では、分割データＢＤが含まれるパケットには、他データ情報１０が付加されていた（図５、図１１参照）。本第３の実施の形態では、分割データＢＤが含まれるパケットは、他データ情報１０を付加せず、従って、従来と同様の構成とする。一方、他データ情報１０に各種ヘッダを追加したパケット（以下、「サイズパケット」と称する）を、分割データＢＤが含まれるパケット（以下、本実施の形態において「通常パケット」と称する）とは別個に生成し、これらを並行して転送する。
【００９４】
図１３は、本発明の第３の実施の形態に係るデータ転送システムの構成を示すブロック図である。送信モジュール１２０４、受信モジュール１２０６は、それぞれ、第１の実施の形態における送信モジュール１０５、受信モジュール１１２に相当する。送信モジュール１２０４、受信モジュール１２０６内の各構成要素のうち、第１の実施の形態におけるものと同一の要素には同一符号が付してある。
【００９５】
送信モジュール１２０４において、パケット生成部１０２とパケット送信部１０４との間には、パケット制御部１２０３が接続される。また、パケット生成部１０２には、サイズ情報記憶部１２０１が接続され、サイズ情報記憶部１２０１にはサイズパケット生成部（別パケット生成手段）１２０２が接続され、サイズパケット生成部１２０２は、パケット制御部１２０３にも接続されている。
【００９６】
サイズ情報記憶部１２０１は、パケット生成部１０２によって生成された通常パケット中の分割データＢＤのシーケンス番号とサイズ情報との組を、予め決められた組数だけ記憶する。サイズパケット生成部１２０２は、サイズ情報記憶部１２０１に記憶されているシーケンス番号及びサイズ情報をデータとして、これに各種ヘッダを追加してサイズパケットを生成する。パケット制御部１２０３は、パケット生成部１０２から送られる通常パケットと、サイズパケット生成部１２０２から送られるサイズパケットのどちらをパケット送信部１０４へ送るかを決定する。
【００９７】
受信モジュール１２０６において、パケット受信部１０６と、パケット解析部１０７及びアドレス解析部１０８との間には、パケット振分部１２０５が設けられる。パケット解析部１０７とアドレス解析部１０８とは接続されておらず、パケット振分部１２０５とアドレス情報記憶部１１０とがアドレス解析部１０８を介して接続される。パケット振分部１２０５は、パケットの振分を行い、受信したものが通常パケットであれば、それをパケット解析部１０７に送る。一方、サイズパケットである場合は、そのサイズパケットから他データ情報１０を抽出して、該他データ情報１０をアドレス解析部１０８に送る。
【００９８】
その他の構成は、第１の実施の形態における送信モジュール１０５、受信モジュール１１２と同様である。
【００９９】
図１４は、送信モジュール１２０４において実行されるパケット送信処理のフローチャートであり、図２に対応する。図１５は、受信モジュール１２０６において実行されるパケット受信処理のフローチャートであり、図３に対応する。
【０１００】
送信モジュール１２０４において、まず、図１４のステップＳ１４０１、Ｓ１４０２では、図２のステップＳ２０１、２０２と同様の処理を実行する。ただし、ステップＳ１４０２では、自分割データＢＤ（ｘ）のシーケンス番号２１及びサイズ情報（全データ長２２から把握される）を、サイズ情報記憶部１２０１へ送り、サイズ情報記憶部１２０１が、送られたシーケンス番号２１及びサイズ情報を一対の情報として記憶しておく。
【０１０１】
次に、ステップＳ１４０３では、パケット生成部１０２は、通常パケットの生成を行う。ここでは、上記第１の実施の形態とは異なり、他データ情報１０を付加することなく、パケット化する。そして、生成した通常パケットをパケット制御部１２０３へ送る。またこのとき、カウンタＣＴを１だけアップする。なお、カウンタＣＴの初期値は「０」である。
【０１０２】
次に、ステップＳ１４０４で、サイズ情報記憶部１２０１に記憶されたシーケンス番号及びサイズ情報の一対のデータの数（すなわち、他データ情報１０の数）が所定組数以上となったか否かを判別する。ここで、所定組数以上となったか否かは、カウンタＣＴが所定数（例えば、３）となったか否かで判別される。その判別の結果、所定組数以上となっていない場合は、ステップＳ１４０７に進む。
【０１０３】
一方、所定組数以上となった場合は、ステップＳ１４０５で、サイズ情報記憶部１２０１は、その時点で記憶されている他データ情報１０をサイズパケット生成部１２０２へ送る。サイズパケット生成部１２０２は、送られてきた他データ情報１０に各種ヘッダを追加してサイズパケットを生成し、パケット制御部１２０３へ送る。そして、ステップＳ１４０６で、サイズ情報記憶部１２０１内のデータをクリアすると共に、カウンタＣＴをクリアして、前記ステップＳ１４０７に進む。
【０１０４】
ステップＳ１４０７では、パケット制御部１２０３は、パケット生成部１０２から通常パケットが送られてきた場合は、その通常パケットを選択する一方、サイズパケット生成部１２０２からサイズパケットが送られてきた場合はサイズパケットを選択し、選択したパケットをパケット送信部１０４へ送る。
【０１０５】
パケット送信部１０４は、パケット制御部１２０３から送られてきたパケット（通常パケットまたはサイズパケット）をネットワーク１１３を通して受信モジュール１２０６に送信する（ステップＳ１４０８）。
【０１０６】
上記例では、所定組数を「３」としたので、カウンタＣＴが３に達するまでは、通常パケットが送信され、カウンタＣＴが３に達する毎に、サイズパケットが１つ送信される。従って、サイズパケットは、一定間隔で生成され、送信される。
【０１０７】
なお、カウンタＣＴが３に達する毎に、通常パケットとサイズパケットとが連続してパケット制御部１２０３に送られることになる。従って、このときは、前記ステップＳ１４０７の処理では、これら２つのパケットをパケット送信部１０４へ送ることになり、前記ステップＳ１４０８においても、これら２つのパケットを受信モジュール１２０６に送信することになる。なお、所定組数の値は「３」に限られず、「１」以上の値を採用可能である。
【０１０８】
次に、受信モジュール１２０６において、図１５のステップＳ１５０１では、パケット受信部１０６によってパケットが受信されたか否かを判別し、受信されると、パケット振分部１２０５は、そのパケットが、サイズパケットであるか否かを判別する（ステップＳ１５０２）。
【０１０９】
その判別の結果、サイズパケットであった場合は、パケット振分部１２０５は、そのサイズパケットから他データ情報１０を抽出して、該他データ情報１０をアドレス解析部１０８に送る（ステップＳ１５０３）。次に、アドレス解析部１０８は、送られてきたシーケンス番号１１及びサイズ情報１２をアドレス情報記憶部１１０に記憶させる（ステップＳ１５０４）。
【０１１０】
その後、ステップＳ１５０５へ進む。ステップＳ１５０５〜Ｓ１５０７では、図３のステップＳ３０５〜Ｓ３０７と同様の処理を実行する。すなわち、ステップＳ３０５〜Ｓ３０７で、自分割データＢＤ（ｘ）を含んだパケット中から抽出した他データ情報１０に基づき行った、記憶先アドレス計算、記憶等の処理と同様の処理を、ステップＳ１５０５〜Ｓ１５０７では、サイズパケット中から抽出した他データ情報１０に基づき行う。なお、前記ステップＳ１５０５の判別の結果、記憶先アドレスが計算できないと判別された場合は、本処理を終了する。
【０１１１】
一方、前記ステップＳ１５０２の判別の結果、パケットが通常パケットであった場合は、ステップＳ１５０８で、パケット解析部１０７が、通常パケットから、自分割データＢＤ（ｘ）及びシーケンス番号２１を抽出し、これらをメモリ制御部１０９へ送る。
【０１１２】
その後、ステップＳ１５０９〜Ｓ１５１４で、図３のステップＳ３０８〜Ｓ３１３と同様の処理を実行して、本処理を終了する。
【０１１３】
本実施の形態によれば、第１の実施の形態と同様の効果を奏することができる。また、上記所定組数は、小さいほど、受信モジュール１２０６において分割データＢＤの書き込み処理が滞る頻度が減る点で有利であるが、サイズパケットが頻繁に転送されることになる点では不利である。そのため、上記所定組数は、転送負荷の軽減と、受信モジュール１２０６における分割データＢＤの書き込み処理の円滑化の双方のバランスを考慮して、適当な値に設定するのが望ましい。
【０１１４】
なお、以上説明した各実施の形態を組み合わせてもよい。例えば、同一の他データ情報１０が、重複して転送されても構わないので、他データ情報１０を、分割データＢＤが含まれたパケットに付加して転送すると共に、サイズパケットとしても別個に転送するようにしてもよい。
【０１１５】
また、第３の実施の形態において、上記所定組数を、第２の実施の形態における監視パケット（ステップＳ９０３）に相当するものに応じて動的に設定するようにしてもよい。
【０１１６】
なお、各実施の形態において、他分割データＢＤ（ｙ）のシーケンス番号１１は、当該他分割データＢＤ（ｙ）の、転送用データにおける先頭からの並び順を示す通し番号としたが、これに限るものではない。すなわち、自分割データＢＤ（ｘ）からみて他分割データＢＤ（ｙ）が特定できればよく、例えば、転送用データにおける相対的位置がわかればよい。従って、例えば、パケット（図５、図１１参照）中の分割データＢＤのシーケンス番号２１との差分を示す情報を、シーケンス番号１１に代えて用いてもよい。
【０１１７】
なお、上記各実施の形態では、用いる通信プロトコルとして、ＴＣＰプロトコルを例示したが、これに限るものではない。例えば、ＲＴＰ（Real-time Transport Protocol）等の他のプロトコルを利用する場合にも適用可能である。
【図面の簡単な説明】
【０１１８】
【図１】本発明の第１の実施の形態に係るデータ転送システムの構成を示すブロック図である。
【図２】送信モジュールにおいて実行されるパケット送信処理のフローチャートである。
【図３】受信モジュールにおいて実行されるパケット受信処理のフローチャートである。
【図４】受信モジュールにおいてタイマ起動毎に実行される書き込み待機処理のフローチャートである。
【図５】転送される１つのパケットのデータ構成例を示す概念図である。
【図６】メモリに分割データが記憶される様子を遷移的に示す概念図である。
【図７】本発明の第２の実施の形態に係るデータ転送システムの構成を示すブロック図である。
【図８】送信モジュールにおいて実行されるパケット送信処理のフローチャートである。
【図９】受信モジュールにおいて実行される転送状況監視処理のフローチャートである。
【図１０】送信モジュールにおいて実行される情報付加数設定処理のフローチャートである。
【図１１】転送される１つのパケットのデータ構成例を示す概念図である。
【図１２】メモリに分割データが記憶される様子を遷移的に示す概念図である。
【図１３】本発明の第３の実施の形態に係るデータ転送システムの構成を示すブロック図である。
【図１４】送信モジュールにおいて実行されるパケット送信処理のフローチャートである。
【図１５】受信モジュールにおいて実行されるパケット受信処理のフローチャートである。
【図１６】ＴＣＰプロトコルを用いたパケット通信における１つのパケットのデータ構成例を示す概念図である。
【符号の説明】
【０１１９】
１０２  パケット生成部（パケット生成手段）
１０４  パケット送信部（パケット送信手段、別パケット送信手段）
１０５、７０５、１２０４  送信モジュール（データ送信装置）
１０６  パケット受信部（パケット受信手段、別パケット受信手段）
１０８  アドレス解析部（記憶位置決定手段）
１０９  メモリ制御部（記憶処理手段）
１１０  アドレス情報記憶部（情報記憶手段）
１１１  メモリ
１１２、７０９、１２０６  受信モジュール（データ受信装置）
７０３  パケット受信部（監視結果受信手段）
７０４  付加情報指定部（数設定手段）
７０６  転送状況解析部（監視手段）
７０８  パケット送信部（監視結果送信手段）
１２０２  サイズパケット生成部（別パケット生成手段）
ＢＤ  分割データ
【図１】
2006340322.tif 000004
【図２】
2006340322.tif 000005
【図３】
2006340322.tif 000006
【図４】
2006340322.tif 000007
【図５】
2006340322.tif 000008
【図６】
2006340322.tif 000009
【図７】
2006340322.tif 000010
【図８】
2006340322.tif 000011
【図９】
2006340322.tif 000012
【図１０】
2006340322.tif 000013
【図１１】
2006340322.tif 000014
【図１２】
2006340322.tif 000015
【図１３】
2006340322.tif 000016
【図１４】
2006340322.tif 000017
【図１５】
2006340322.tif 000018
【図１６】
2006340322.tif 000019