JP2006340322A - データ転送システム及び方法、送信装置、受信装置 - Google Patents

データ転送システム及び方法、送信装置、受信装置 Download PDF

Info

Publication number
JP2006340322A
JP2006340322A JP2005166079A JP2005166079A JP2006340322A JP 2006340322 A JP2006340322 A JP 2006340322A JP 2005166079 A JP2005166079 A JP 2005166079A JP 2005166079 A JP2005166079 A JP 2005166079A JP 2006340322 A JP2006340322 A JP 2006340322A
Authority
JP
Japan
Prior art keywords
data
packet
divided data
information
divided
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005166079A
Other languages
English (en)
Inventor
Katsuhiko Nagasaki
克彦 長崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005166079A priority Critical patent/JP2006340322A/ja
Publication of JP2006340322A publication Critical patent/JP2006340322A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】 パケット中の各分割データのサイズが均一でなくても、受信分割データの一時記憶領域を削減すると共に、分割データの記憶処理上のオーバーヘッドを減少させる。
【解決手段】 送信モジュール105は、転送用データを複数に分割した分割データBDに、1つ前の他分割データBD(y)のシーケンス番号11及びデータ長12を付加してパケットを生成し、送信する。受信モジュール112では、受信したパケット中の自分割データBD(x)をメモリ111へ書き込む場合のメモリ111上の位置である記憶先アドレスを、既に記憶されている他分割データBD(y)のシーケンス番号11及びサイズ情報12に基づいて計算し、計算できたときは、その記憶先アドレスに自分割データBD(x)を記憶させる。
【選択図】 図6

Description

本発明は、データを複数に分割し、パケット化して転送するデータ転送システム及び方法、送信装置、受信装置に関する。
従来、TCP(Transmission Control Protocol)プロトコル等を用いたパケット通信においては、一般に、送信装置が、転送すべきデータを複数に分割し、パケット化して順次転送するが、パケットを受信する受信装置では、送信された順序でパケットが受信されるとは限らない。そのため、受信装置において、受信した複数のパケットからヘッダを取り除き、データを正しい順序で連結し再構築するデフラグメントと呼ばれる処理が必要とされる(下記特許文献1の図12参照)。
図16は、TCPプロトコルを用いたパケット通信における1つのパケットのデータ構成例を示す概念図である。このパケットには、プロトコル制御情報として、イーサネット(登録商標)ヘッダ、IPヘッダ、TCPヘッダが含まれる。パケットに含まれる分割データは、可変長となる。
上記デフラグメントにおいては、未達(未受信)のパケットが一つでも存在すると、それ以後のパケットについてはメモリ上における書き込み位置が不明で、書き込むことができない。そのため、未達パケット以後のパケットを、一時保存領域に一旦保存し、送信順における前のパケットの到達によって書き込みが可能になると、データ記憶用のメモリにコピー操作で逐次コピーする。
従って、未達パケット以後のパケットのための一時保存領域が必要になり、パケットの受信順序の乱れによっては、大きな一時保存領域が必要とされる場合があった。また、一時保存領域からコピー操作でメモリに書き込む処理が発生することから、データ処理上のオーバーヘッドが増大するという問題もあった。
下記特許文献1には、正常に送信できなかったと判定されたときに、送信データを再分割し、この再分割された送信データと再度生成されたヘッダとをパケットとして送信する再送手段を有する通信装置の構成が開示されている
特開2002−135231号公報
しかしながら、一時記憶領域の削減、及び記憶処理上のオーバーヘッドの低減に関し、改善の余地があった。
本発明は上記従来技術の問題を解決するためになされたものであり、その目的は、パケット中の分割データのサイズが均一でなくても、受信された分割データの一時記憶領域を削減すると共に、分割データの記憶処理上のオーバーヘッドを減少させることができるデータ転送システム及び方法、送信装置、受信装置を提供することにある。
上記目的を達成するために本発明の請求項1のデータ転送システムは、データ送信装置とデータ受信装置とがネットワークを介して通信可能に接続されて構成されるデータ転送システムであって、前記データ送信装置は、転送すべき転送用データを複数に分割した各分割データに、当該分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を付加して、前記各分割データ毎にパケットを生成するパケット生成手段と、前記パケット生成手段により生成されたパケットを前記データ受信装置に順次送信するパケット送信手段とを有し、前記データ受信装置は、前記パケット送信手段から送信されたパケットを受信するパケット受信手段と、前記パケット受信手段により受信された各パケット中の前記他の分割データの特定情報及びサイズ情報を記憶する情報記憶手段と、前記受信された各パケット中の分割データのメモリ上の記憶位置を、前記情報記憶手段により記憶された、前記各パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定する記憶位置決定手段と、前記記憶位置決定手段により決定された前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させる記憶処理手段とを有することを特徴とする。
上記目的を達成するために本発明の請求項6のデータ転送システムは、データ送信装置とデータ受信装置とがネットワークを介して通信可能に接続されて構成されるデータ転送システムであって、前記データ送信装置は、転送すべき転送用データを複数に分割した各分割データを含んだパケットを前記各分割データ毎に生成するパケット生成手段と、前記パケット生成手段により生成されたパケット中の分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を、1つ以上の前記他の分割データ分だけまとめて、前記生成されたパケットとは異なる別パケットとして生成する別パケット生成手段と、前記パケット生成手段により生成されたパケットを前記データ受信装置に順次送信するパケット送信手段と、前記別パケット生成手段により生成された別パケットを前記データ受信装置に送信する別パケット送信手段とを有し、前記データ受信装置は、前記パケット送信手段から送信されたパケットを受信するパケット受信手段と、前記別パケット送信手段から送信された別パケットを受信する別パケット受信手段と、前記別パケット受信手段により受信された別パケット中の前記他の分割データの特定情報及びサイズ情報を記憶する情報記憶手段と、前記受信された各パケット中の分割データのメモリ上の記憶位置を、前記情報記憶手段により記憶された、前記別パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定する記憶位置決定手段と、前記記憶位置決定手段により決定された前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させる記憶処理手段とを有することを特徴とする。
上記目的を達成するために本発明の請求項8の送信装置は、請求項1〜7のいずれか1項に記載のデータ転送システムにおけるデータ送信装置として機能することを特徴とする。
上記目的を達成するために本発明の請求項9の受信装置は、請求項1〜7のいずれか1項に記載のデータ転送システムにおけるデータ受信装置として機能することを特徴とする。
上記目的を達成するために本発明の請求項10のデータ転送方法は、データ送信装置からデータ受信装置に対してネットワークを介してデータが転送されるデータ転送方法であって、前記データ送信装置において、転送すべき転送用データを複数に分割した各分割データに、当該分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を付加して、前記各分割データ毎にパケットを生成し、該生成したパケットを前記データ受信装置に順次送信し、前記データ受信装置において、前記送信されたパケットを受信し、該受信した各パケット中の前記他の分割データの特定情報及びサイズ情報を記憶し、前記受信した各パケット中の分割データのメモリ上の記憶位置を、前記記憶した、前記各パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定し、該決定した前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させることを特徴とする。
上記目的を達成するために本発明の請求項11のデータ転送方法は、データ送信装置からデータ受信装置に対してネットワークを介してデータが転送されるデータ転送方法であって、前記データ送信装置において、転送すべき転送用データを複数に分割した各分割データを含んだパケットを前記各分割データ毎に生成すると共に、該生成したパケット中の分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を、1つ以上の前記他の分割データ分だけまとめて、前記生成したパケットとは異なる別パケットとして生成し、前記生成したパケットを前記データ受信装置に順次送信すると共に、前記生成した別パケットを前記データ受信装置に送信し、前記データ受信装置において、前記送信されたパケットを受信すると共に、前記送信された別パケットを受信し、前記受信した別パケット中の前記他の分割データの特定情報及びサイズ情報を記憶し、前記受信した各パケット中の分割データのメモリ上の記憶位置を、前記記憶した、前記別パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定し、該決定した前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させることを特徴とする。
本発明によれば、パケット中の各分割データのサイズが均一でなくても、受信分割データの一時記憶領域を削減すると共に、分割データの記憶処理上のオーバーヘッドを減少させることができる。
請求項2によれば、パケットを順番に沿って生成、送信でき、パケット生成前の分割データを一時記憶しておくメモリ領域が少なくて済む。
請求項4によれば、転送の進捗状況に応じた数分だけ他の分割データの特定情報及びサイズ情報を付加すればよいので、データ転送量を最小限に抑えることができ、伝送路帯域を必要以上に占めることがない。
請求項5によれば、標準のプロトコルを利用できるので、汎用性が高い。
以下、本発明の実施の形態を図面を参照して説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るデータ転送システムの構成を示すブロック図である。
このデータ転送システムは、送信モジュール105と受信モジュール112とが、ネットワーク113を介してデータ通信が可能なように接続されて構成される。ネットワーク113は、例えば、LAN(Local Area Network)の他、専用回線、一般公衆回線(PSTN)、ISDN(IntegratedService Digital Network)、あるいはインターネットであってもよい。
本実施の形態では、ネットワーク113上においては、送信モジュール105と受信モジュール112とは、OSI(Open Systems Interconnection)参照モデルのトランスポート層のプロトコルであるTCP(Transmission Control Protocol)プロトコルに従って、パケット通信を行う。
送信モジュール105において、データ生成部101、パケット生成部102、パケット送信部104が直列に接続され、パケット生成部102にはサイズ情報記憶部103が接続されている。
受信モジュール112において、パケット受信部106、パケット解析部107、メモリ制御部(記憶処理手段)109、メモリ111が直列に接続され、パケット解析部107にはアドレス解析部(記憶位置決定手段)108が接続され、メモリ制御部109には、アドレス情報記憶部110が接続されている。アドレス解析部108は、アドレス情報記憶部110とも接続されている。メモリ制御部109には、バッファ114が設けられている。
送信モジュール105において、データ生成部101は、送信すべきデータを順次生成する。パケット生成部102は、データ生成部101により生成されたデータに各種ヘッダを追加してパケット(後述)を生成する。サイズ情報記憶部103は、パケット生成部102により生成されたパケット中のデータのシーケンス番号及びサイズを記憶しておく。サイズ情報記憶部103は、所定段数のFIFO(First In First Out)メモリで構成される。パケット送信部104は、ネットワーク113に対してパケットを送信する。
ここで、データ生成部101により順次生成される個々のデータは、転送すべき一かたまりのデータ(以下、「転送用データ」と称する)を複数に分割したデータであるので、以降、これら分割されたデータを、「分割データBD」と呼称する。また、各分割データBDの個々を区別して述べるときは、その転送用データ中における並び順に従って、分割データBD0、BD1・・・BDnのように連番を付す。
受信モジュール112において、パケット受信部106は、ネットワーク113からパケットを受信し、パケット解析部107に送る。パケット解析部107は、受信したパケットの解析を行う。アドレス解析部108は、パケット解析部107からの情報及びアドレス情報記憶部110からの情報を基に、受信したパケット中の分割データBDを記憶すべきメモリ111上の位置である「記憶先アドレス」の計算が可能か否かを解析すると共に、可能な場合は、記憶先アドレスを計算する。
アドレス情報記憶部110は、受信したパケットに含まれるシーケンス番号(後述する)、該パケット中の分割データBDのデータサイズを示すサイズ情報(後述する)、及び上記計算された記憶先アドレスを記憶しておく。詳細は後述するが、メモリ制御部109は、これらシーケンス番号、サイズ情報、記憶先アドレスに基づいて、受信したパケット中の分割データBDをメモリ111の適切な位置(上記計算された記憶先アドレス)に書き込むための制御を行う。メモリ111は、分割データBDを記憶する。受信モジュール112においては、受信したパケット中の分割データBDを元の並び順通りに正して復元するデフラグメントが行われるが、メモリ制御部109による上記書き込み制御が、デフラグメントに相当する。
図2は、送信モジュール105において実行されるパケット送信処理のフローチャートである。このパケット送信処理は、1つの転送用データの送信が指示されたとき開始され、転送が完了するまで繰り返される。図3は、受信モジュール112において実行されるパケット受信処理のフローチャートである。このパケット受信処理は、送信モジュール105との通信可能状態時において繰り返し実行される。図4は、受信モジュール112においてタイマ起動毎に実行される書き込み待機処理のフローチャートである。
図5は、転送される1つのパケットのデータ構成例を示す概念図である。このパケットは、後述する図2のステップS204で生成されるものである。パケットには、分割データBDに、プロトコル制御情報、CRC(Cyclic Redundancy Check)が付加されて構成される。プロトコル制御情報には、Ethernet(登録商標)ヘッダ、IP(Internet Protocol)ヘッダ、TCPヘッダが含まれる。IPヘッダ中の全データ長22は、ヘッダ長を含み、この全データ長22から、分割データBDのデータサイズもわかる。また、TCPヘッダ中のシーケンス番号21は、当該パケット中の分割データBDの、転送用データにおける先頭からの並び順を示す、通し番号の情報である。さらに、TCPヘッダ中には、パケット転送中に発生するデータ誤りの有無を検出するためのチェックサムのほか、シーケンス番号11、データ長12が含まれる。
シーケンス番号11及びデータ長12は、1つの転送用データから分割された複数の分割データBDのうち、パケット中に含まれる分割データBD以外の、他の分割データBD(すなわち、他のパケットに含まれるべき分割データBD)に関する情報である。シーケンス番号11は、上記他の分割データBDの、上記転送用データにおける先頭からの並び順を示す、通し番号の情報である(特定情報)。また、データ長12は、上記他の分割データBDのデータサイズ(容量)を示す情報である。以降、これらの情報を1組として、「他データ情報10」と呼称する。
他データ情報10は、TCPヘッダにおけるオプション情報(図16参照)として付加されるものである。なお、本実施の形態では、後述するように、上記他の分割データBDとして、シーケンス番号が1つ前の分割データBDが採用される。このような、パケット中に含まれる分割データBDと上記他の分割データBDとを区別するときは、パケット中に含まれる分割データBDを「自分割データBD(x)」、上記他の分割データBDを「他分割データBD(y)」と記すこととする。
まず、パケット送信処理を説明する。送信モジュール105において、図2のステップS201では、データ生成部101が、転送すべき転送用データに基づき、分割データBDを生成したか否かを判別し、生成した場合は、続くステップS202で、データ生成部101が、該生成した分割データBDをパケット生成部102に送ると共に、パケット生成部102が、送られてきた分割データBDに対してパケットの仮生成を行う。このとき、パケット生成部102は、まず、自分割データBD(x)のシーケンス番号21及びサイズ情報(全データ長22から把握される)を、サイズ情報記憶部103へ送り、サイズ情報記憶部103は、送られたシーケンス番号21及びサイズ情報を一対(1組)の情報として記憶しておく。
次に、パケット生成部102は、サイズ情報記憶部103に記憶されている、現在処理中の自分割データBD(x)より一つ前のシーケンス番号に対応する分割データBD(すなわち、他分割データBD(y))のシーケンス番号及びサイズ情報を読み出す(ステップS203)。そして、これら読み出したシーケンス番号及びサイズ情報を、上記他データ情報10(シーケンス番号11及びサイズ情報12)として、自分割データBD(x)にオプション情報として付加したパケットを生成する(ステップS204)(図5参照)。すなわち、図5に示すパケットにおいて、シーケンス番号11及びデータ長12は、分割データBDに対して1つ前の分割データBDの情報である。
次に、パケット生成部102は、前記ステップS204で生成されたパケットをパケット送信部104へ送り、パケット送信部104が、該パケットをネットワーク113を通して受信モジュール112に送信する(ステップS205)。このようにして1つのパケットが送信される。本処理を繰り返すことで、1つの転送用データに対応する複数のパケットが送信される。各パケットの構成はいずれも同様である。
次に、パケット受信処理を説明する。受信モジュール112において、図3のステップS301では、パケット解析部107は、パケット受信部106によってパケットが受信されたか否かを判別し、受信されると、該受信したパケットから、自分割データBD(x)及びシーケンス番号21を抽出し、これらをメモリ制御部109へ送る(ステップS302)。次に、上記受信したパケットから、他分割データBD(y)の、1組となっている他データ情報10(シーケンス番号11及びサイズ情報12)を抽出し、これらをアドレス解析部108へ送る(ステップS303)。
アドレス解析部108は、送られてきたシーケンス番号11及びサイズ情報12をアドレス情報記憶部110に記憶させる(ステップS304)。それと共に、自分割データBD(x)をメモリ111へ書き込む場合のメモリ111上の位置である記憶先アドレスが計算できるか否かを判断する。(ステップS305)。
ここで、分割データBDのシーケンス番号が0から始まるとすると、n番目の分割データBDの記憶先アドレスは、下記数式1で表される。
Figure 2006340322
ここで、「di」はシーケンス番号21が「i」である分割データBDのデータサイズ、「base」は、ベースアドレス、すなわち、シーケンス番号21が「0」である先頭の分割データBDを書き込むべき記憶先アドレスである。
従って、例えば、シーケンス番号21が「n」である分割データBDの記憶先アドレスが計算できるためには、シーケンス番号21が「0」〜「n−1」までの分割データBDのサイズ情報がすべて揃っているか、若しくは、シーケンス番号21が「n−1」である分割データBDの記憶先アドレスが既に得られていることが必要となる。上記ステップS305では、このような条件で判別される。
そして、アドレス解析部108は、記憶先アドレスが計算可能であった場合は、記憶先アドレスの計算を行い(ステップS306)、該計算した記憶先アドレスを、アドレス記憶部110へ送り、これを、上記記憶させたシーケンス番号11及びサイズ情報12に対応付けてアドレス情報記憶部110に記憶させて(ステップS307)、ステップS308に進む。一方、記憶先アドレスが計算できないと判別された場合は、直ちにステップS308に進む。
ステップS308では、メモリ制御部109が、上記送られてきたシーケンス番号21に対応する自分割データBD(x)に関して、記憶先アドレスが記憶されているか否かをアドレス情報記憶部110に問い合わせることで、該自分割データBD(x)がメモリ111に書き込むことが可能であるか否かを判別する。
その判別の結果、アドレス情報記憶部110に記憶先アドレスが記憶されている場合は、自分割データBD(x)を、メモリ111上の上記記憶先アドレスに対して書き込む(ステップS309)。それと共に、アドレス情報記憶部110に対して書き込み済信号を送る。
次に、アドレス情報記憶部110は、上記書き込み済信号が送られてくると、今回書き込みが完了した自分割データBD(x)に関する記憶先アドレスと、該記憶先アドレスに対応しているシーケンス番号11及びサイズ情報12とを消去可能であるか否かを判別する(ステップS310)。
例えば、シーケンス番号21が「n」である分割データBDに関する書き込み済信号が送られてきたとすると、シーケンス番号21が「n+1」の記憶先アドレスが既に記憶されていれば、シーケンス番号21が「n」である分割データBDに関する記憶先アドレス、シーケンス番号11及びサイズ情報12は消去可能である。すなわち、今回、書き込まれた分割データBDの1つ後の分割データBDが既に書き込まれていれば「消去可能」と判別されるが、1つ後の分割データBDが未書き込みである場合は、「消去可能」と判別されない。
そして、前記ステップS310の判別の結果、消去が可能である場合は、アドレス情報記憶部110は、今回書き込み処理がなされた自分割データBD(x)に関する記憶先アドレスと、該記憶先アドレスに対応しているシーケンス番号11及びサイズ情報12とを消去する(ステップS311)。一方、消去が可能でない場合は、後続の分割データBDの記憶先アドレス計算に利用できるようにするため、これらの情報を消去することなく本処理を終了する。
一方、前記ステップS308の判別の結果、書き込み不可である場合は、メモリ制御部109は、自分割データBD(x)を、バッファ114(図1参照)に一時記憶させ(ステップS312)、メモリ制御部109内のタイマ(図示せず)を起動させる(ステップS313)。これにより、図4の書き込み待機処理が開始される。
まず、図4のステップS401では、メモリ制御部109は、タイムアップか、すなわち、タイマのカウント値が予め決められた値に達したか否かを判別し、タイムアップしていない場合は、新規データ、すなわち、バッファ114に記憶されている自分割データBD(x)とは別の新たな自分割データBD(x)が送られてきたか否かを判別し(ステップS403)、新たな自分割データBD(x)が送られてこない場合は、前記ステップS401に戻る。
一方、タイムアップした場合は、メモリ制御部109のバッファ114に一時記憶されている自分割データBD(x)を破棄して(ステップS402)、本処理を終了する。なお、前記ステップS402において、破棄した分割データBDに対応するパケットの再送を要求する再送制御処理を行うようにするのが好ましい。
前記ステップS403の判別の結果、新たな自分割データBD(x)が送られてきた場合は、バッファ114に記憶されている自分割データBD(x)についての書き込み可否の判別を、前記ステップS308と同様の態様で行う(ステップS404)。これと並行して、図3の処理が実行されているので、前記ステップS308において、上記新たな自分割データBD(x)についての書き込み可否の判別がなされ、その後、前記ステップS309以降または前記ステップS312以降の処理も実行される。従って、この図3の処理によって、一旦、バッファ114に記憶された自分割データBD(x)についても、タイムアップ前に記憶先アドレスが事後的に計算されれば、アドレス情報記憶部110に記憶されることになる。
前記ステップS404の判別の結果、バッファ114に記憶されている自分割データBD(x)についての書き込みが可能でない場合は、前記ステップS401に戻る。一方、バッファ114に記憶されている自分割データBD(x)についての書き込みが可能である場合は、該自分割データBD(x)について、記憶先アドレスが得られているので、メモリ制御部109は、前記ステップS309と同様に、該自分割データBD(x)を、メモリ111上の上記記憶先アドレスに対して書き込むと共に、アドレス情報記憶部110に対して書き込み済信号を送る(ステップS405)。
次に、アドレス情報記憶部110は、前記ステップS405で書き込みが完了した自分割データBD(x)の記憶先アドレスと、該記憶先アドレスに対応しているシーケンス番号11及びサイズ情報12とを消去可能であるか否かを、前記ステップS310と同様に判別する(ステップS406)。その判別の結果、消去可能であれば、前記ステップS311と同様にこれらの情報を消去し(ステップS407)、メモリ制御部109がタイマのカウント値をリセットして(ステップS408)、本処理を終了する。一方、前記ステップS406の判別の結果、消去が可能でない場合は、上記各情報を消去することなく本処理を終了する。
図6(a)〜(e)は、メモリ111に分割データBDが記憶される様子を遷移的に示す概念図である。
上述したように、パケットは、送信された順序通りに受信されるとは限らない。まず、先頭の分割データBD0を含んだパケットが受信されると、分割データBD0が、メモリ111における上記base(ベースアドレス)に記憶される(同図(a))。このとき、分割データBD0のデータサイズd0は、全データ長22から既知となる。次に、分割データBD1よりも先に分割データBD2を含んだパケットが受信されたとする。このとき、受信されたパケット中のシーケンス番号11は、1つ前の分割データBDである分割データBD1のシーケンス番号21と同じ値であり、同パケット中のデータ長12は、分割データBD1のデータサイズを規定するものであるので(図5参照)、分割データBD1のデータサイズd1が判明する。
従って、分割データBD2について、記憶先アドレスが計算可能であり(ステップS305)、計算された記憶先アドレスがアドレス情報記憶部110に記憶されれば、メモリ111に書き込むことも可能となる(ステップS308)。従って、分割データBD2が、メモリ111上の適切な位置に書き込まれる(同図(b))。このように、従来では、分割データBD2は、分割データBD1が先に書き込まれていない(未達の)ときは、書き込むことができなかったが、本実施の形態では、分割データBD2の記憶先アドレスがわかるため、分割データBD1の記憶領域を確保した状態で分割データBD2を書き込むことが可能となっている。
次に、分割データBD1を含んだパケットが受信されると、分割データBD1が分割データBD0と分割データBD2との間の記憶領域に記憶される(同図(c))。次に、分割データBD5を含んだパケットが受信されると、データサイズd0〜d3の他に、データサイズd4が判明するが、データサイズd3が不明であるため、分割データBD5は、バッファ114(図1参照)に一時待避される(同図(d))(ステップS312)。
しかしその後、分割データBD4を含んだパケットが受信されると、データサイズd3が判明するため、分割データBD4と共に、分割データBD5も、メモリ111上の適切な位置に書き込まれる(同図(e))(ステップS309、ステップS405)。なお、同図(d)に示す状態で、分割データBD4ではなく、分割データBD3を含んだパケットが受信された場合も、データサイズd3が判明するため、分割データBD3と共に、分割データBD5が書き込み可能となる。
本実施の形態によれば、自分割データBD(x)より順番が前の分割データBDに未達のものがあり、なおかつ、各分割データBDのデータサイズが均一でない場合であっても、自分割データBD(x)の記憶先アドレスが計算できる場合があり、記憶先アドレスが計算できれば、自分割データBD(x)は直ちにメモリ111の適切な位置に記憶することができる。従って、従来のように、デフラグメントのための、多大な一時記憶用メモリを設けなくてもよいので、メモリ容量を削減することができる。また、デフラグメントの処理を省くことができるので、パケット受信時における処理上のオーバーヘッドを減少させることができる。
また、シーケンス番号11及びデータ長12は、TCPヘッダにおけるオプション情報を利用として付加され、標準のプロトコルが利用されるので、汎用性が高い。
(第2の実施の形態)
次に、本発明の第2の実施の形態を、図3、図4、図7〜図12を用いて説明する。上記第1の実施の形態では、あるパケットを送信する場合、そのパケットに、一つ前に送信されたパケット中の他分割データBD(y)の情報を、他データ情報10として付加するようにしたが、本第2の実施の形態では、以後に送信されるパケット中の他分割データBD(y)の情報を付加することをも可能とし、さらには、各パケット中に付加する他分割データBD(y)の他データ情報10の数を、受信モジュール112におけるパケットの受信乃至書き込みの処理状況に応じて動的に変更することも可能にする。
本第2の実施の形態では、送信モジュール及び受信モジュールの構成と、送信モジュールから転送されるパケットのデータ構成と、送信モジュールにおけるパケット送信処理とが、第1の実施の形態に対して異なる。さらに、送信モジュールにおいて情報付加数設定処理が、受信モジュールにおいて転送状況監視処理が、それぞれ実行される点でも第1の実施の形態と異なる。従って、第1の実施の形態に対して、図1、図2、図5、図6に代えて図7、図8、図11、図12を用い、さらに図9、図10を加えて本第2の実施の形態を説明する。
図7は、本発明の第2の実施の形態に係るデータ転送システムの構成を示すブロック図である。送信モジュール705、受信モジュール709は、それぞれ、第1の実施の形態における送信モジュール105、受信モジュール112に相当する。送信モジュール705、受信モジュール709内の各構成要素のうち、第1の実施の形態におけるものと同一の要素には同一符号が付してある。
送信モジュール705において、パケット生成部102とパケット送信部104との間には、遅延部701が接続される。また、パケット受信部703、付加情報指定部(数設定手段)704及びサイズ情報記憶部702が直列に接続されている。付加情報指定部704及びサイズ情報記憶部702は、パケット生成部102及び遅延部701にも接続されている。
遅延部701は、パケット生成部102によって生成されたパケットを1つ以上記憶でき、パケット送信部104へ送るタイミングを遅延させる。サイズ情報記憶部702は、パケット生成部102によって生成されたパケット中の分割データBDのサイズ情報を3つ以上記憶しておくことが可能である。パケット受信部703は、受信モジュール709からネットワーク113を介して送信される監視パケット(後述)を受信する。付加情報指定部704は、パケット受信部703で受信された監視パケットに基づき、後述する「情報付加数」の指定を行う。その他の構成は第1の実施の形態における送信モジュール105と同様である。
受信モジュール709においては、受信モジュール112に対して、さらに、直列に接続された転送状況解析部(監視手段)706、パケット生成部707及びパケット送信部708が設けられている。転送状況解析部706は、メモリ制御部109とも接続されている。その他の構成は第1の実施の形態における受信モジュール112と同様である。
転送状況解析部706は、メモリ制御部109内の動作を監視し、分割データBDの破棄状況に応じてパケット生成部707へ監視結果を送る。パケット生成部707は、転送状況解析部706からの監視結果に基づき監視パケットを生成し、パケット送信部708へ送る。パケット送信部708は、ネットワーク113を介して送信モジュール705に監視パケットを送信する。その他の構成は、第1の実施の形態における受信モジュール112と同様である。
図8は、送信モジュール705において実行されるパケット送信処理のフローチャートであり、図2に対応する。図9は、受信モジュール709において実行される転送状況監視処理のフローチャートである。図10は、送信モジュール705において実行される情報付加数設定処理のフローチャートである。
図8のパケット送信処理及び図10の情報付加数設定処理は、1つの転送用データの送信が指示されたとき開始され、転送が完了するまで繰り返される。図9の転送状況監視処理は、図3のパケット受信処理に並行して実行される。
図11は、本実施の形態において転送される1つのパケットのデータ構成例を示す概念図である。本実施の形態では、TCPヘッダにおけるオプション情報として、1つのパケット中に付加されるシーケンス番号11及びデータ長12は、各1つに限られず、複数付加される場合がある。例えば、図11に示す例では、他データ情報10が2つ、すなわち、他データ情報10a(シーケンス番号11a及びデータ長12a)と他データ情報10b(シーケンス番号11b及びデータ長12b)とが含まれている。上記した「情報付加数」とは、他データ情報10の数である。パケットのその他の部分の構成は、図5の例と同様である。
なお、本実施の形態では、「情報付加数」の上限を4つとするが、これに限定されるものではない。また、「情報付加数」に応じて、どの他分割データBD(y)の他データ情報10を付加するかについては、予め優先順位を決めておく必要がある。本実施の形態では、例えば、自分割データBD(x)の1つ前、自分割データBD(x)の1つ後、自分割データBD(x)の2つ前、自分割データBD(x)の2つ後、という順番とする。
まず、パケット送信処理を説明する。送信モジュール705において、図8のステップS801、S802では、図2のステップS201、202と同様の処理を実行する。ただし、ステップS802では、自分割データBD(x)のシーケンス番号21及びサイズ情報(全データ長22から把握される)を、サイズ情報記憶部702へ送り、サイズ情報記憶部702が、送られたシーケンス番号21及びサイズ情報を一対の情報として記憶しておく。
次に、ステップS803では、パケット生成部102が、生成したパケットを遅延部701に送る。ところで、後述するように、「情報付加数」は、付加情報指定部704から送られてくる情報数指定値Numに従って設定される。次に、ステップS804で、遅延部701が、サイズ情報記憶部702において設定されている「情報付加数」に応じた数分の他分割データBD(y)のシーケンス番号及びサイズ情報を読み出す。例えば、情報付加数が「2」である場合は、現在処理中の自分割データBD(x)より一つ前及び1つ後の各シーケンス番号に対応する2つの他分割データBD(y))のシーケンス番号及びサイズ情報を読み出す。ここで、遅延部701が遅延させるパケットの数は、付加させるべき後続の分割データBDの数と同じであり、上記優先順位の設定と、付加情報指定部704から送られてくる情報数指定値Numとに基づいて設定される。
そして、パケット生成部102は、これら読み出した、情報付加数分のシーケンス番号及びサイズ情報を、上記他データ情報10として、遅延部701で遅延されたパケット中の自分割データBD(x)にオプション情報として付加することで、パケットを再生成する(ステップS805)(図11参照)。次に、該再生成されたパケットをパケット送信部104がネットワーク113を通して受信モジュール709に送信する(ステップS806)。
ところで、図11に示すパケットにおいて、他データ情報10がいくつ付加されているかは、TCPヘッダ中のヘッダ長の情報から判断することができる。
情報付加数は、図9の転送状況監視処理によって、動的に変更される。すなわち、受信モジュール709において、まず、図9のステップS901で、転送状況解析部706は、図4のステップS402で、メモリ制御部109により、予め定められた所定時間当たりにバッファ114から破棄された自分割データBD(x)の容量(以下、「データ破棄量N」と称する)を監視する。この監視処理では、下記数式2により情報数指定値Numを算出する。
[数2]
Num=k×N(kは定数)
情報数指定値Numは、所定時間毎に算出されて更新される。次に、転送状況解析部706は、情報数指定値Numに変化があったか否かを判別し(ステップS902)、変化がなければ本処理を終了する一方、変化があった場合は、最新の情報数指定値Numをパケット生成部707へ送る。そして、パケット生成部707は、送られてきた情報数指定値Numを含んだ監視パケットを生成する(ステップS903)。
そして、生成された監視パケットは、パケット送信部708へ送られ、パケット送信部708が、該監視パケットを、ネットワーク113を通して送信モジュール705へ送信する(ステップS904)。
一方、送信モジュール705では、パケット送信処理と並行して、情報付加数設定処理がなされる。まず、図10のステップS1001で、パケット受信部703が、監視パケットを受信したか否かを判別し(ステップS1001)、受信した場合は、該監視パケットを付加情報指定部704へ送る。
次に、付加情報指定部704は、送られた監視パケットから情報数指定値Numを抽出し、(ステップS1002)、これを、遅延部701及びサイズ情報記憶部702へ設定データとして送る(ステップS1003)。そして、遅延部701、サイズ情報記憶部702はそれぞれ、送られてきた設定データに基づき、情報付加数の設定を変更する(ステップS1004)。すなわち、遅延部701は、遅延するパケットの数を変更し、サイズ情報記憶部702は、記憶しておくシーケンス番号21及びサイズ情報の組の数を変更する。
図12(a)〜(d)は、メモリ111に分割データBDが記憶される様子を遷移的に示す概念図である。この例では、情報付加数は「2」のまま変化がなかったとして説明する。従って、各パケットには、前後1つずつの分割データBDの他データ情報10が含まれている。
まず、先頭の分割データBD0を含んだパケットが受信されると、分割データBD0が、メモリ111における上記base(ベースアドレス)に記憶される(同図(a))。このとき、分割データBD0のデータサイズd0は、全データ長22から既知となる。また、このパケット中には、1つ後の分割データBDである分割データBD1のシーケンス番号21と同じ値のシーケンス番号11と、分割データBD1のデータサイズを規定するデータ長12とが含まれているので、データサイズd1も判明する。
次に、分割データBD3を含んだパケットが受信されたとする。このとき、受信されたパケット中のシーケンス番号11(11a、11b)は、1つ前と1つ後の分割データBDである分割データBD2、BD4の各シーケンス番号21と同じ値であり、同パケット中のデータ長12(12a、12b)は、分割データBD2、BD4の各データサイズを規定するものであるので(図11参照)、分割データBD2〜BD4のデータサイズd2〜d4が判明する。従って、分割データBD3は、その記憶先アドレスが計算可能であるので、メモリ111上の適切な位置に書き込まれる(同図(b))。
次に、分割データBD7を含んだパケットが受信されたとする。このとき、
データサイズd5、d6が不明であるため、分割データBD7は、バッファ114(図1参照)に一時待避される(同図(c))。
しかしその後、分割データBD5を含んだパケットが受信されると、データサイズd5、d6が新たに判明するため、分割データBD5と共に、分割データBD7も、メモリ111上の適切な位置に書き込まれる(同図(d))。なお、同図(c)に示す状態で、分割データBD5ではなく、分割データBD6を含んだパケットが受信された場合も、データサイズd5、d6が新たに判明するため、分割データBD6と共に、分割データBD7が書き込み可能となる。
この例では、情報付加数は「2」のままであるとしたが、例えば、「4」に変更されれば、受信されたパケットの前後2つのパケットの分割データBDのデータサイズまでが判明するので、分割データBDの書き込みが即時になされる確率が高くなる。
本実施の形態によれば、第1の実施の形態と同様の効果を奏する。また、以前だけでなく、以後に送信されるパケット中の他分割データBD(y)の情報を他データ情報10として付加できるようにしたので、自分割データBD(x)の記憶先アドレスが計算可能な場合が多くなり、バッファ114に一時待避される自分割データBD(x)が少なくなって、分割データBDの書き込みがより円滑にできる。
さらには、情報付加数を、データ破棄量Nに関する監視結果に基づいて動的に変更するようにしたので、情報付加数を最適に保つことができる。その結果、転送の進捗状況に応じた数分だけ他データ情報10を付加すればよいので、データ転送量を必要最小限に抑えることができ、伝送路帯域を必要以上に占めることがない。また、円滑な書き込み処理を確保しつつ、バッファ114の記憶領域を削減することにも繋がる。
なお、本実施の形態では、情報付加数が増えるに従って、自分割データBD(x)に対して、どの他分割データBD(y)の情報を他データ情報10として付加するかという優先順位を、自分割データBD(x)の1つ前、1つ後、2つ前、2つ後、という順番としたが、これに限るものではない。例えば、自分割データBD(x)の前側のもののみ、あるいは後ろ側のもののみを複数付加するようにしてもよい。従って、上記第1の実施の形態において、1つ前だけでなく、自分割データBD(x)の前側の複数の他分割データBD(y)の情報を付加するようにしてもよい。
このように考えると、付加するものは、自分割データBD(x)に対して順番が遠く離れている他分割データBD(y)の情報であってもよい。ただし、上記例のように、自分割データBD(x)に対して前側または後側に隣接する他分割データBD(y)の情報を優先する方が下記のような理由で好ましい。すなわち、送信モジュール705において、パケットを順番に沿って生成、送信する際に、遅延部701で遅延させる分割データBDの数を最小限に抑えることができる点で有利である。それだけでなく、受信モジュール709においても、通常、パケットが順番通りに受信されることも多いことから、分割データBDの破棄頻度が小さくて済むので、結局、通信帯域の削減及びバッファ114の記憶領域の削減が図れる点で有利である。
(第3の実施の形態)
次に、本発明の第3の実施の形態を、図4、図13〜図15を用いて説明する。上記第1、第2の実施の形態では、他データ情報10をパケット中に付与して転送を行ったが、本発明の第3の実施の形態では、他データ情報10を含むパケットを、分割データBDが含まれるパケットとは全く別のパケットとして構成し、転送する。
本第3の実施の形態では、送信モジュール及び受信モジュールの構成、パケット送信処理及びパケット受信処理が、第1の実施の形態に対して異なる。従って、第1の実施の形態に対して、図1、図2、図3に代えて図13、図14、図15を用いて本第3の実施の形態を説明する。また、図4の書き込み待機処理は第1の実施の形態と同様である。
第1、第2の実施の形態では、分割データBDが含まれるパケットには、他データ情報10が付加されていた(図5、図11参照)。本第3の実施の形態では、分割データBDが含まれるパケットは、他データ情報10を付加せず、従って、従来と同様の構成とする。一方、他データ情報10に各種ヘッダを追加したパケット(以下、「サイズパケット」と称する)を、分割データBDが含まれるパケット(以下、本実施の形態において「通常パケット」と称する)とは別個に生成し、これらを並行して転送する。
図13は、本発明の第3の実施の形態に係るデータ転送システムの構成を示すブロック図である。送信モジュール1204、受信モジュール1206は、それぞれ、第1の実施の形態における送信モジュール105、受信モジュール112に相当する。送信モジュール1204、受信モジュール1206内の各構成要素のうち、第1の実施の形態におけるものと同一の要素には同一符号が付してある。
送信モジュール1204において、パケット生成部102とパケット送信部104との間には、パケット制御部1203が接続される。また、パケット生成部102には、サイズ情報記憶部1201が接続され、サイズ情報記憶部1201にはサイズパケット生成部(別パケット生成手段)1202が接続され、サイズパケット生成部1202は、パケット制御部1203にも接続されている。
サイズ情報記憶部1201は、パケット生成部102によって生成された通常パケット中の分割データBDのシーケンス番号とサイズ情報との組を、予め決められた組数だけ記憶する。サイズパケット生成部1202は、サイズ情報記憶部1201に記憶されているシーケンス番号及びサイズ情報をデータとして、これに各種ヘッダを追加してサイズパケットを生成する。パケット制御部1203は、パケット生成部102から送られる通常パケットと、サイズパケット生成部1202から送られるサイズパケットのどちらをパケット送信部104へ送るかを決定する。
受信モジュール1206において、パケット受信部106と、パケット解析部107及びアドレス解析部108との間には、パケット振分部1205が設けられる。パケット解析部107とアドレス解析部108とは接続されておらず、パケット振分部1205とアドレス情報記憶部110とがアドレス解析部108を介して接続される。パケット振分部1205は、パケットの振分を行い、受信したものが通常パケットであれば、それをパケット解析部107に送る。一方、サイズパケットである場合は、そのサイズパケットから他データ情報10を抽出して、該他データ情報10をアドレス解析部108に送る。
その他の構成は、第1の実施の形態における送信モジュール105、受信モジュール112と同様である。
図14は、送信モジュール1204において実行されるパケット送信処理のフローチャートであり、図2に対応する。図15は、受信モジュール1206において実行されるパケット受信処理のフローチャートであり、図3に対応する。
送信モジュール1204において、まず、図14のステップS1401、S1402では、図2のステップS201、202と同様の処理を実行する。ただし、ステップS1402では、自分割データBD(x)のシーケンス番号21及びサイズ情報(全データ長22から把握される)を、サイズ情報記憶部1201へ送り、サイズ情報記憶部1201が、送られたシーケンス番号21及びサイズ情報を一対の情報として記憶しておく。
次に、ステップS1403では、パケット生成部102は、通常パケットの生成を行う。ここでは、上記第1の実施の形態とは異なり、他データ情報10を付加することなく、パケット化する。そして、生成した通常パケットをパケット制御部1203へ送る。またこのとき、カウンタCTを1だけアップする。なお、カウンタCTの初期値は「0」である。
次に、ステップS1404で、サイズ情報記憶部1201に記憶されたシーケンス番号及びサイズ情報の一対のデータの数(すなわち、他データ情報10の数)が所定組数以上となったか否かを判別する。ここで、所定組数以上となったか否かは、カウンタCTが所定数(例えば、3)となったか否かで判別される。その判別の結果、所定組数以上となっていない場合は、ステップS1407に進む。
一方、所定組数以上となった場合は、ステップS1405で、サイズ情報記憶部1201は、その時点で記憶されている他データ情報10をサイズパケット生成部1202へ送る。サイズパケット生成部1202は、送られてきた他データ情報10に各種ヘッダを追加してサイズパケットを生成し、パケット制御部1203へ送る。そして、ステップS1406で、サイズ情報記憶部1201内のデータをクリアすると共に、カウンタCTをクリアして、前記ステップS1407に進む。
ステップS1407では、パケット制御部1203は、パケット生成部102から通常パケットが送られてきた場合は、その通常パケットを選択する一方、サイズパケット生成部1202からサイズパケットが送られてきた場合はサイズパケットを選択し、選択したパケットをパケット送信部104へ送る。
パケット送信部104は、パケット制御部1203から送られてきたパケット(通常パケットまたはサイズパケット)をネットワーク113を通して受信モジュール1206に送信する(ステップS1408)。
上記例では、所定組数を「3」としたので、カウンタCTが3に達するまでは、通常パケットが送信され、カウンタCTが3に達する毎に、サイズパケットが1つ送信される。従って、サイズパケットは、一定間隔で生成され、送信される。
なお、カウンタCTが3に達する毎に、通常パケットとサイズパケットとが連続してパケット制御部1203に送られることになる。従って、このときは、前記ステップS1407の処理では、これら2つのパケットをパケット送信部104へ送ることになり、前記ステップS1408においても、これら2つのパケットを受信モジュール1206に送信することになる。なお、所定組数の値は「3」に限られず、「1」以上の値を採用可能である。
次に、受信モジュール1206において、図15のステップS1501では、パケット受信部106によってパケットが受信されたか否かを判別し、受信されると、パケット振分部1205は、そのパケットが、サイズパケットであるか否かを判別する(ステップS1502)。
その判別の結果、サイズパケットであった場合は、パケット振分部1205は、そのサイズパケットから他データ情報10を抽出して、該他データ情報10をアドレス解析部108に送る(ステップS1503)。次に、アドレス解析部108は、送られてきたシーケンス番号11及びサイズ情報12をアドレス情報記憶部110に記憶させる(ステップS1504)。
その後、ステップS1505へ進む。ステップS1505〜S1507では、図3のステップS305〜S307と同様の処理を実行する。すなわち、ステップS305〜S307で、自分割データBD(x)を含んだパケット中から抽出した他データ情報10に基づき行った、記憶先アドレス計算、記憶等の処理と同様の処理を、ステップS1505〜S1507では、サイズパケット中から抽出した他データ情報10に基づき行う。なお、前記ステップS1505の判別の結果、記憶先アドレスが計算できないと判別された場合は、本処理を終了する。
一方、前記ステップS1502の判別の結果、パケットが通常パケットであった場合は、ステップS1508で、パケット解析部107が、通常パケットから、自分割データBD(x)及びシーケンス番号21を抽出し、これらをメモリ制御部109へ送る。
その後、ステップS1509〜S1514で、図3のステップS308〜S313と同様の処理を実行して、本処理を終了する。
本実施の形態によれば、第1の実施の形態と同様の効果を奏することができる。また、上記所定組数は、小さいほど、受信モジュール1206において分割データBDの書き込み処理が滞る頻度が減る点で有利であるが、サイズパケットが頻繁に転送されることになる点では不利である。そのため、上記所定組数は、転送負荷の軽減と、受信モジュール1206における分割データBDの書き込み処理の円滑化の双方のバランスを考慮して、適当な値に設定するのが望ましい。
なお、以上説明した各実施の形態を組み合わせてもよい。例えば、同一の他データ情報10が、重複して転送されても構わないので、他データ情報10を、分割データBDが含まれたパケットに付加して転送すると共に、サイズパケットとしても別個に転送するようにしてもよい。
また、第3の実施の形態において、上記所定組数を、第2の実施の形態における監視パケット(ステップS903)に相当するものに応じて動的に設定するようにしてもよい。
なお、各実施の形態において、他分割データBD(y)のシーケンス番号11は、当該他分割データBD(y)の、転送用データにおける先頭からの並び順を示す通し番号としたが、これに限るものではない。すなわち、自分割データBD(x)からみて他分割データBD(y)が特定できればよく、例えば、転送用データにおける相対的位置がわかればよい。従って、例えば、パケット(図5、図11参照)中の分割データBDのシーケンス番号21との差分を示す情報を、シーケンス番号11に代えて用いてもよい。
なお、上記各実施の形態では、用いる通信プロトコルとして、TCPプロトコルを例示したが、これに限るものではない。例えば、RTP(Real-time Transport Protocol)等の他のプロトコルを利用する場合にも適用可能である。
本発明の第1の実施の形態に係るデータ転送システムの構成を示すブロック図である。 送信モジュールにおいて実行されるパケット送信処理のフローチャートである。 受信モジュールにおいて実行されるパケット受信処理のフローチャートである。 受信モジュールにおいてタイマ起動毎に実行される書き込み待機処理のフローチャートである。 転送される1つのパケットのデータ構成例を示す概念図である。 メモリに分割データが記憶される様子を遷移的に示す概念図である。 本発明の第2の実施の形態に係るデータ転送システムの構成を示すブロック図である。 送信モジュールにおいて実行されるパケット送信処理のフローチャートである。 受信モジュールにおいて実行される転送状況監視処理のフローチャートである。 送信モジュールにおいて実行される情報付加数設定処理のフローチャートである。 転送される1つのパケットのデータ構成例を示す概念図である。 メモリに分割データが記憶される様子を遷移的に示す概念図である。 本発明の第3の実施の形態に係るデータ転送システムの構成を示すブロック図である。 送信モジュールにおいて実行されるパケット送信処理のフローチャートである。 受信モジュールにおいて実行されるパケット受信処理のフローチャートである。 TCPプロトコルを用いたパケット通信における1つのパケットのデータ構成例を示す概念図である。
符号の説明
102 パケット生成部(パケット生成手段)
104 パケット送信部(パケット送信手段、別パケット送信手段)
105、705、1204 送信モジュール(データ送信装置)
106 パケット受信部(パケット受信手段、別パケット受信手段)
108 アドレス解析部(記憶位置決定手段)
109 メモリ制御部(記憶処理手段)
110 アドレス情報記憶部(情報記憶手段)
111 メモリ
112、709、1206 受信モジュール(データ受信装置)
703 パケット受信部(監視結果受信手段)
704 付加情報指定部(数設定手段)
706 転送状況解析部(監視手段)
708 パケット送信部(監視結果送信手段)
1202 サイズパケット生成部(別パケット生成手段)
BD 分割データ

Claims (11)

  1. データ送信装置とデータ受信装置とがネットワークを介して通信可能に接続されて構成されるデータ転送システムであって、
    前記データ送信装置は、
    転送すべき転送用データを複数に分割した各分割データに、当該分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を付加して、前記各分割データ毎にパケットを生成するパケット生成手段と、
    前記パケット生成手段により生成されたパケットを前記データ受信装置に順次送信するパケット送信手段とを有し、
    前記データ受信装置は、
    前記パケット送信手段から送信されたパケットを受信するパケット受信手段と、
    前記パケット受信手段により受信された各パケット中の前記他の分割データの特定情報及びサイズ情報を記憶する情報記憶手段と、
    前記受信された各パケット中の分割データのメモリ上の記憶位置を、前記情報記憶手段により記憶された、前記各パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定する記憶位置決定手段と、
    前記記憶位置決定手段により決定された前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させる記憶処理手段とを有することを特徴とするデータ転送システム。
  2. 前記他の分割データは、前記パケット生成手段により生成される各パケット中の分割データに対して送信順が隣接している分割データであることを特徴とする請求項1記載のデータ転送システム。
  3. 前記データ受信装置の前記記憶処理手段は、前記記憶位置決定手段により前記メモリ上の記憶位置が決定されなかった分割データを一時待避させると共に、その後、前記メモリ上の記憶位置が決定されたとき、該決定された前記メモリ上の記憶位置に前記一時待避させた前記分割データを記憶させることを特徴とする請求項1または2記載のデータ転送システム。
  4. 前記データ受信装置は、前記記憶処理手段による分割データの記憶処理状況を監視する監視手段と、前記監視手段により監視された結果を前記データ送信装置に送信する監視結果送信手段とを有し、前記データ送信装置は、前記監視結果送信手段により送信された監視結果を受信する監視結果受信手段と、前記監視結果受信手段により受信された監視結果に基づいて、前記他の分割データの数を設定する数設定手段とを有することを特徴とする請求項1〜3記載のデータ転送システム。
  5. 前記データ送信装置と前記データ受信装置との間では、TCP(Transmission Control Protocol)プロトコルでデータ通信が行われ、前記他の分割データの特定情報及びサイズ情報は、TCPヘッダにおけるオプション情報として付加されることを特徴とする請求項1〜4のいずれか1項に記載のデータ転送システム。
  6. データ送信装置とデータ受信装置とがネットワークを介して通信可能に接続されて構成されるデータ転送システムであって、
    前記データ送信装置は、
    転送すべき転送用データを複数に分割した各分割データを含んだパケットを前記各分割データ毎に生成するパケット生成手段と、
    前記パケット生成手段により生成されたパケット中の分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を、1つ以上の前記他の分割データ分だけまとめて、前記生成されたパケットとは異なる別パケットとして生成する別パケット生成手段と、
    前記パケット生成手段により生成されたパケットを前記データ受信装置に順次送信するパケット送信手段と、
    前記別パケット生成手段により生成された別パケットを前記データ受信装置に送信する別パケット送信手段とを有し、
    前記データ受信装置は、
    前記パケット送信手段から送信されたパケットを受信するパケット受信手段と、
    前記別パケット送信手段から送信された別パケットを受信する別パケット受信手段と、
    前記別パケット受信手段により受信された別パケット中の前記他の分割データの特定情報及びサイズ情報を記憶する情報記憶手段と、
    前記受信された各パケット中の分割データのメモリ上の記憶位置を、前記情報記憶手段により記憶された、前記別パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定する記憶位置決定手段と、
    前記記憶位置決定手段により決定された前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させる記憶処理手段とを有することを特徴とするデータ転送システム。
  7. 前記他の分割データの特定情報は、該他の分割データの特定情報が付加されるパケットのシーケンス番号の情報、または該シーケンス番号と前記他の分割データに対応して生成され該他の分割データが含まれるパケットのシーケンス番号との差分の情報のいずれか一方であることを特徴とする請求項1〜6のいずれか1項に記載のデータ転送システム。
  8. 請求項1〜7のいずれか1項に記載のデータ転送システムにおけるデータ送信装置として機能することを特徴とする送信装置。
  9. 請求項1〜7のいずれか1項に記載のデータ転送システムにおけるデータ受信装置として機能することを特徴とする受信装置。
  10. データ送信装置からデータ受信装置に対してネットワークを介してデータが転送されるデータ転送方法であって、
    前記データ送信装置において、転送すべき転送用データを複数に分割した各分割データに、当該分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を付加して、前記各分割データ毎にパケットを生成し、該生成したパケットを前記データ受信装置に順次送信し、
    前記データ受信装置において、前記送信されたパケットを受信し、該受信した各パケット中の前記他の分割データの特定情報及びサイズ情報を記憶し、前記受信した各パケット中の分割データのメモリ上の記憶位置を、前記記憶した、前記各パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定し、該決定した前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させることを特徴とするデータ転送方法。
  11. データ送信装置からデータ受信装置に対してネットワークを介してデータが転送されるデータ転送方法であって、
    前記データ送信装置において、転送すべき転送用データを複数に分割した各分割データを含んだパケットを前記各分割データ毎に生成すると共に、該生成したパケット中の分割データ以外の他の分割データを特定する特定情報及び前記他の分割データのデータサイズを示すサイズ情報を、1つ以上の前記他の分割データ分だけまとめて、前記生成したパケットとは異なる別パケットとして生成し、前記生成したパケットを前記データ受信装置に順次送信すると共に、前記生成した別パケットを前記データ受信装置に送信し、
    前記データ受信装置において、前記送信されたパケットを受信すると共に、前記送信された別パケットを受信し、前記受信した別パケット中の前記他の分割データの特定情報及びサイズ情報を記憶し、前記受信した各パケット中の分割データのメモリ上の記憶位置を、前記記憶した、前記別パケット中の前記他の分割データの特定情報及びサイズ情報に基づいて決定し、該決定した前記メモリ上の記憶位置に、前記各パケット中の分割データを記憶させることを特徴とするデータ転送方法。
JP2005166079A 2005-06-06 2005-06-06 データ転送システム及び方法、送信装置、受信装置 Pending JP2006340322A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005166079A JP2006340322A (ja) 2005-06-06 2005-06-06 データ転送システム及び方法、送信装置、受信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005166079A JP2006340322A (ja) 2005-06-06 2005-06-06 データ転送システム及び方法、送信装置、受信装置

Publications (1)

Publication Number Publication Date
JP2006340322A true JP2006340322A (ja) 2006-12-14

Family

ID=37560436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005166079A Pending JP2006340322A (ja) 2005-06-06 2005-06-06 データ転送システム及び方法、送信装置、受信装置

Country Status (1)

Country Link
JP (1) JP2006340322A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353594B2 (en) 2011-09-21 2019-07-16 Hitachi Automotive Systems, Ltd. Electronic control unit for vehicle and method of writing data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353594B2 (en) 2011-09-21 2019-07-16 Hitachi Automotive Systems, Ltd. Electronic control unit for vehicle and method of writing data
US11360698B2 (en) 2011-09-21 2022-06-14 Hitachi Astemo, Ltd. Electronic control unit for vehicle and method of writing data

Similar Documents

Publication Publication Date Title
US7953817B2 (en) System and method for supporting TCP out-of-order receive data using generic buffer
KR101745456B1 (ko) HiL 시뮬레이션 환경에서 대용량 데이터를 전송하기 위한 전자제어 장치, 이를 포함하는 시스템 및 그 방법
US8767747B2 (en) Method for transferring data packets in a communication network and switching device
US6965566B2 (en) Packet flow control apparatus and a method for controlling the same
US20050243834A1 (en) Packet transfer method and device
US20050111452A1 (en) Reliable multicast communication
JP4256386B2 (ja) 通信システムにおけるデータ送信装置及び方法
CN105450785B (zh) 一种文件传输方法和装置
US10990326B2 (en) High-speed replay of captured data packets
US20070291782A1 (en) Acknowledgement filtering
US20110270976A1 (en) Network protocol processing system and network protocol processing method
JP2019106697A (ja) 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス
US7646738B2 (en) Wireless network information distribution method
JP4827933B2 (ja) データパケットを送信する方法およびデバイス
JP2007274056A (ja) データグラム再組立装置
US9210093B2 (en) Alignment circuit and receiving apparatus
JP2006340322A (ja) データ転送システム及び方法、送信装置、受信装置
JP2008113327A (ja) ネットワークインターフェース装置
JP3511978B2 (ja) 優先度制御機能付きルータ及びプログラムを記録した機械読み取り可能な記録媒体
JP2006295847A (ja) 再送制御装置
JP2001045056A (ja) 通信システム
JP4901777B2 (ja) ネットワーク中継装置およびネットワーク中継方法
US11012172B2 (en) Relay device
US20090316726A1 (en) Apparatus and method for data transmission
US20010018732A1 (en) Parallel processor and parallel processing method

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20070626