(57)【要約】【課題】  ＲＴＴが大きい長距離の端末相互間でデータ転送を行う場合において、高い転送効率を確保することが可能なデータ転送方法、プログラムおよび記録媒体を提供する。【解決手段】  ネットワークを介してコネクション４、５が確立された端末相互間におけるＴＣＰを用いたデータ転送方法であって、送信側の端末１は、転送されるデータのサイズと該端末相互間の往復遅延時間とに基づいて該データを振り分けて送受信するバーチャルサーキット４−１、４−２、５−１、５−２の所要数を求め、該データを該バーチャルサーキット毎の所定サイズのパケットに分割してそれぞれのバーチャルサーキットから転送先に向けて並列に送信する。【選択図】図２
2005057482.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してコネクションが確立された端末相互間におけるＴＣＰを用いたデータ転送方法であって、
送信側の端末は、転送されるデータのサイズと該端末相互間の往復遅延時間とに基づいて、該データを振り分けて送受信するバーチャルサーキットの所要数を求め、該データを該バーチャルサーキット毎の所定サイズのパケットに分割してそれぞれのバーチャルサーキットから転送先に向けて並列に送信することを特徴とするデータ転送方法。
【請求項２】
前記送信側の端末は、前記受信側の端末からダウンロードの要求を受けたとき、もしくは該受信側の端末へのアップロードを行うときに、前記データを該受信側に向けて並列に送信することを特徴とする請求項１記載のデータ転送方法。
【請求項３】
前記送信側の端末は、前記所要数を受信側の端末に通知するとともに、該送信側及び該受信側の端末それぞれは、該所要数に見合う前記バーチャルサーキットを前記コネクションに設定することを特徴とする請求項１記載のデータ転送方法。
【請求項４】
前記受信側の端末は、前記バーチャルサーキットそれぞれから受信した前記パケットそれぞれを蓄積し、蓄積された該パケットそれぞれのヘッダに記録された情報に基づいて該パケットそれぞれを所定の順序に配列させることを特徴とする請求項３記載のデータ転送方法。
【請求項５】
前記データは、データストリームであって、
前記送信側の端末は、前記データストリームを前記所定のサイズのパケットに分割するとともに、分割した該パケットを前記バーチャルサーキットそれぞれに振り分けて、該バーチャルサーキットそれぞれから転送先に向けて並列に送信することを特徴とする請求項４記載のデータ転送方法。
【請求項６】
前記送信側の端末は、前記データのサイズが所定の閾値を超える場合に、前記所要数を求めることを特徴とする請求項１記載のデータ転送方法。
【請求項７】
前記送信側の端末は、前記往復遅延時間に応じて設定された上限値の範囲内で前記所要数を求めることを特徴とする請求項１記載のデータ転送方法。
【請求項８】
前記送信側の端末は、前記データの転送先に対応させて設定された対応表に基づいて前記所要数を求めることを特徴とする請求項１記載のデータ転送方法。
【請求項９】
前記送信側の端末は、前記データの転送先に所定サイズのデータを転送して前記往復遅延時間を計測することにより前記所要数を求めることを特徴とする請求項１記載のデータ転送方法。
【請求項１０】
前記ネットワークは、国際間のネットワークであって、
前記対応表は、前記データの転送先の国毎に前記所要数が設定されたものであることを特徴とする請求項８記載のデータ転送方法。
【請求項１１】
前記送信側の端末は、送信した前記パケットの、前記受信側の端末からの確認応答を受信するまでの所要時間が閾値を超えた場合には、該パケットを再び送信することを特徴とする請求項１記載のデータ転送方法。
【請求項１２】
コンピュータに、ネットワークを介してコネクションが確立された端末相互間においてＴＣＰを用いたデータ転送機能を実現させるためのデータ転送用プログラムであって、
転送されるデータのサイズと該端末相互間の往復遅延時間とに基づいて該データを振り分けて送受信するバーチャルサーキットの所要数を求め、該データを該バーチャルサーキット毎の所定サイズのパケットに分割してそれぞれのバーチャルサーキットから転送先に向けて並列に送信する機能を有することを特徴とするデータ転送用プログラム。
【請求項１３】
コンピュータに、ネットワークを介してコネクションが確立された端末相互間においてＴＣＰを用いたデータ転送機能を実現させるためのデータ転送用プログラムであって、
転送されるデータのサイズと該端末相互間の往復遅延時間とに基づいて該データを振り分けて並列に送受信するバーチャルサーキットそれぞれから受信したパケットそれぞれを蓄積し、蓄積された該パケットそれぞれのヘッダに記録された情報に基づいて該パケットそれぞれを所定の順序に配列させる機能を有することを特徴とするデータ転送用プログラム。
【請求項１４】
コンピュータに、ネットワークを介してコネクションが確立された端末相互間においてＴＣＰを用いたデータ転送機能を実現させるためのデータ転送用プログラムが記録された記録媒体であって、
転送されるデータのサイズと該端末相互間の往復遅延時間とに基づいて該データを振り分けて送受信するバーチャルサーキットの所要数を求め、該データを該バーチャルサーキット毎の所定サイズのパケットに分割してそれぞれのバーチャルサーキットから転送先に向けて並列に送信する機能を有するデータ転送用プログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットやパケット交換網などを用いて、送信側の端末と受信側の端末との間でデータを送受信するデータ転送方法、データ転送用プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年におけるインターネットの普及は目覚しく、今日においては事業所から一般個人に至るまで幅広く利活用されている。また、インターネットを通じて送受信される情報の種類も多様化し、ウエブサーバを介した情報発信、情報収集、リアルタイムなメッセージの送受信はもとより、商取引および金融取引にまで広がっている。さらに、利用エリヤは国内にとどまらず、海外にも広く及んでいる。
【０００３】
インターネットにおいては、ＴＣＰ／ＩＰというプロトコルが用いられ、ＩＰは、ＩＰアドレスを付してパケットを転送する手順を規定したもので、データを効率的に送ることはできるが信頼性に欠けるという特質を有する一方、ＴＣＰは、データを送るときの信頼性を高めるための手順を規定したもので、転送先との間にコネクションを確立したり、応答確認を行うことにより、データ転送を効率的に、かつ確実に行うという特質を有する。
【０００４】
また、今日の情報化の進展に伴って、プロバイダ相互間およびプロバイダとアクセスポイント間の伝送路には広帯域のネットワークが採用されているほか、ユーザとアクセスポイント間についても、ＩＳＤＮ回線、ｘＤＳＬ回線、ＣＡＴＶ回線、あるいは光ファイバケーブルなどの広帯域回線が利用されつつある。
【０００５】
このように、広帯域のネットワークが整備、普及されているにも関わらず、ＴＣＰを利用して海外とデータ転送などを行う場合には、実効的転送速度が低下し、転送効率が悪化してしまうという問題がある。
【０００６】
一般に、ＴＣＰによりデータの転送を行う場合のスループット（転送効率）をλ（ｂｙｔｅ／ｓ）、周回遅延時間（ラウンド・トリップタイム）をＲＴＴ（ｓｅｃ．）、ウインドウサイズをＷ（ｂｙｔｅ）、とすれば、λ＝Ｗ／ＲＴＴという関係がある。
【０００７】
ここで、ＴＣＰによりコンピュータと通信する場合には、利用できるデータの最大のサイズが６４ＫＢに制限されているためウインドウサイズは、８〜１６ＫＢ程度で利用される場合が多い。
【０００８】
一方ＲＴＴは、例えばＬＡＮ（ローカルエリア・ネットワーク）内においては極めて小さく、同一ハブ内においてはさらに小さいので（１ｍｓ以下）、スループットが問題になることはほとんどない。すなわち、ウインドウサイズが１６ＫＢ程度で、ＲＴＴが仮に１ｍｓであったとしても、転送速度は、１６ＫＢ×８ｂｉｔ／１ｍｓ＝１２８Ｍｂｐｓとなり、ＬＡＮ（ローカルエリア・ネットワーク）を構成する伝送媒体の伝送速度に比して問題となることはほとんどない。
【０００９】
しかしながら、例えば日米間のように、数１０Ｍｂｐｓ以上の高速度伝送が可能な広帯域のネットワークが整備されている場合であっても、伝送距離が長くなると複雑な要因が絡み合ってＲＴＴが４００ｍｓ〜５００ｍｓに達する。したがって、日米間でデータ転送を行う場合の転送速度は、ウインドウサイズが最大の６４ＫＢに設定されたとしても、６４ＫＢ×８ｂｉｔ／５００ｍｓ＝１．０Ｍｂｐｓ程度まで低下するので、実際のスループットは、１２８ＫＢ／ｓ程度になってしまう。
【００１０】
このように、伝送距離が長くなると伝送媒体の伝送速度に比べて、実効的な転送速度が１／１０程度まで低下してしまうので、広帯域のネットワークが整備されていても、その伝送速度が十分に生かされない。このほか、エラーの発生や、転送中のデータの喪失などに伴う応答確認や、データの再送時間などを考慮すれば、ＲＴＴは、さらに増加するので、平均的なスループットはさらに悪化するものと考えられる。さらに、端末相互間にルータや低速リンクが介在する場合には、ネットワークの輻輳などによりスループットが一層低下することが予想される。
【００１１】
しかしながら、コネクションが確立された時点では、ネットワークの混み具合は知りえないので、とりあえずセグメントを１つ送信し、成功したら徐々にウインドウサイズを大きくする、いわゆるスロースタートと称する制御方法が広く知られている。
【００１２】
この方法は、ネットワークの輻輳を未然防止する観点からは有効であるが、単発的で短時間のセッションが多くなるＨＴＴＰでは、ウインドウサイズが十分大きくなる前にセッションが終了してしまい、十分なスループットが得られないという問題がある。
【００１３】
そこで、例えば当初は決定されたウインドウサイズでデータ転送を開始し、異常が生じたときにウインドウサイズを小さくし、異常が解消したときに段階的に大きくする制御方法が提案されている（例えば特許文献１参照）。
【特許文献１】特開２０００−１１５２４１号公報（段落番号００１３〜段落番号００２１、図２〜図４）
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上述したスロースタートによる制御方法や、特許文献１に記載された制御方法は、転送速度を実効的に低下させるもので、ネットワークが輻輳することを未然に防止したり、ネットワークの異常状態が拡大するのを防止するには有効な方法と考えられる。
【００１５】
しかしながら、ネットワークが充分空いていて、データ転送が正常に行われている場合に、広帯域なネットワークを十分生かした転送速度を確保するとともに、端末相互間の伝送距離が長くなるのに伴って生じる転送速度の低下傾向を改善して転送効率の向上を図るには効果がない。
【００１６】
本発明は、上記の事情に鑑み、往復遅延時間が大きい長距離の端末相互間でデータ転送を行う場合において、高い転送効率を確保することが可能なデータ転送方法、その機能を実現するプログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成する本発明のデータ転送方法は、ネットワークを介してコネクションが確立された端末相互間におけるデータ転送方法であって、送信側の端末は、転送されるデータのサイズと該端末相互間の往復遅延時間とに基づいて該データを振り分けて送受信するバーチャルサーキットの所要数を求め、該データを該バーチャルサーキット毎の所定サイズのパケットに分割してそれぞれのバーチャルサーキットから転送先に向けて並列に送信することを特徴とする。
【００１８】
このように、転送されるデータを、そのデータのサイズと転送先との間の往復遅延時間とにより求められた複数のバーチャルサーキットに振り分けるとともに、所定サイズのパケットに分割して、それぞれのバーチャルサーキットから並列に送信するので、複数のバーチャルサーキットに振り分けずに送信する場合に比べて実効的転送速度（実効上の往復遅延時間）を短縮することができるので、実効的転送効率が大幅に改善される。
【００１９】
上記目的を達成するための手段として、本発明は、上記データ転送方法による機能をコンピュータに実現させるプログラム、およびそのプログラムを記録した記録媒体とすることもできる。
【発明の効果】
【００２０】
本発明によれば、転送するデータのサイズ及び転送元と転送先との間の往復遅延時間とに対応して複数のバーチャルチャンネルを設定し、データをそれぞれのバーチャルチャンネルに振り分けて並列に転送するので、実効的転送時間が短縮し高い転送効率を確保することができる。
【発明を実施するための最良の形態】
【００２１】
以下に、本発明のデータ転送方法、データ転送用プログラム、および記録媒体の実施形態について説明する。
（第１の実施形態）
図１及び図２は、本発明のデータ転送方法の原理を示す図である。
【００２２】
図１及び図２に示すように、送信側の端末であるパーソナルコンピュータ（以下、「送信側ＰＣ」という。）１と、受信側の端末であるパーソナルコンピュータ（以下、「受信側ＰＣ」という。）２と、がそれぞれ国際ネットワーク３−１に接続されている。送信側ＰＣ１および受信側ＰＣ２は、国際ネットワーク３−１にそれぞれ１つずつのネットワークコネクション４、５によって接続されている。
【００２３】
送信側ＰＣ１から転送されるデータのサイズと、送信側ＰＣ１および受信側ＰＣ２相互間の往復遅延時間とにより求められるスループット（転送効率）は、相互間の距離が長くなればなるほど低下する傾向がある。このため、実効的な転送速度は、距離に応じて低下する傾向があると考えることができるので、伝送距離が長い国際ネットワーク３−１を介してネットワークコネクション４、５が確立された端末相互間においては、伝送可能速度に比べて、実効的転送速度は数分の１〜１０数分の１程度にまで低下する。したがって、ネットワークが空いているときには、充分な余裕を有するネットワークを活用し、データを並列に送信することにより実効的転送速度を伝送可能速度により近ずけて転送時間の短縮を図り、スループット（転送効率）を改善することができる。
まず、転送されるデータを振り分けて並列に送受信するためのバーチャルサーキットの数を求め、その所要数が、例えば「２」である場合には、図２に示すように、送信側ＰＣ１および受信側ＰＣ２それぞれのネットワークコネクション４、５に２つずつのバーチャルサーキット４−１，４−２，５−１，５−２を設定する。そして、送信側ＰＣ１において、例えば２つに振り分けたデータをそれぞれ所定サイズに分割し、分割したパケットそれぞれを、２つのバーチャルサーキット４−１，４−２から受信側ＰＣ２に向けて、並列に、ほぼ同時に送信する。
【００２４】
ここで、例えば、ネットワークコネクション４、５がＩＳＤＮ回線である場合には、１つのＢチャネルに複数のバーチャルサーキットを設定することができる。しかし、このように複数のバーチャルサーキットが設定される場合であっても、ネットワークとの間にコネクションを確立するアダプタは同じものを用いることができる。
【００２５】
次に、このような構成において、ネットワークのトラフィックが平均的な値をとり、呼処理が正常に機能するため輻輳が生じていない場合において、図１のように１つのバーチャルサーキットからパケットを送信した場合のスループット（転送効率）と、図２のように２つのバーチャルサーキットそれぞれから並列にパケットを送信した場合のスループット（転送効率）とを実測して比較したので、その実測結果について説明する。
【００２６】
実測は、日本―アラスカ間における、広帯域回線（全区間、数１０Ｍｂｐｓのリンクで接続されている。）に設定された１つのバーチャルサーキットに、大サイズのデータ（９８３，２９６バイト）を連続してＦＴＰにより転送した場合の転送時間と、２つのバーチャルサーキットに小サイズのデータ（１，１２９バイト）をそれぞれ並列に、同時にＦＴＰにより転送した場合の転送時間とそれぞれ計測し、計測した転送時間と転送されたデータのサイズとに基づいて転送効率を算出した。なお、本実測に用いた日本―アラスカ間の回線に、ｐｉｎｇコマンドによりエコー応答までに要する時間を計測したところ概ね２２０ｍｓであった。
【００２７】
【表１】
2005057482.tif 000003
【００２８】
【表２】
2005057482.tif 000004
【００２９】
【表３】
2005057482.tif 000005
【００３０】
【表４】
2005057482.tif 000006
表１は、大サイズのデータを１つのコネクションを介して５回転送した場合のそれぞれの転送時間と転送効率とを示す表である。
【００３１】
表２及び表３は、小サイズのデータを１つのコネクションに設定された２つのバーチャルサーキットの両方が同時刻に転送を５回実施した場合のそれぞれの転送時間と転送効率とを示す表である。
表２及び表３のそれぞれの転送効率は表１の転送効率と同等であるから、小サイズのデータを並列に、同時に転送すると、全体として転送効率が向上する。
【００３２】
表４は、表２及び表３に基づいて算出した、小サイズのデータを２つのバーチャルサーキットに振り分けてそれぞれ５回転送した場合の、１つのバーチャルサーキット当りの平均転送時間と全体の実効的転送効率とを示す表である。
【００３３】
表４から明らかなように、２つのバーチャルサーキットに並列に、同時に転送する場合には、実効的転送効率が約２倍に向上していることがわかる。
【００３４】
以上の実測結果から、ネットワーク環境が同一で、特段のボトルネックが生じていない場合には、転送するデータを複数に振り分け、振り分けたデータそれぞれを所定サイズのパケットに分割して、それぞれの対応するバーチャルサーキットからそれぞれ同数のパケットを並列に送信すれば、パケットを送信してから確認応答を受信するまでの往復遅延時間はほぼ同じになる。
したがって、所定サイズのデータを、例えば振り分け数をＮにして転送した場合の転送時間は、振り分けずに転送した場合の転送時間の約１／Ｎになるので、スループットは、約Ｎ倍に改善することができる。
ただし、Ｎは、パケットを送信してから確認応答を受信するまでの往復遅延時間に対する、ネットワークの伝送可能速度上から求めた往復遅延時間の比よりも小さい値とする必要がある。
図３は、本発明のデータ転送方法を実施するために用いる送信側ＰＣと受信側ＰＣとを一例として示す図である。
【００３５】
図３に示すように、送信側ＰＣ１と、受信側ＰＣ２と、があり、送信側ＰＣ１および受信側ＰＣ２それぞれは、相互のネゴシエーションにより、ＡＤＳＬ（非対称型デジタル加入者伝送）回線を用いて長距離ネットワーク３−２との間のコネクション４が確立されている。
【００３６】
送信側ＰＣ１は、ＡＤＳＬ回線の上り方向の低周波数帯に設定されるバーチャルサーキット４−１〜４−ｎと、バーチャルサーキット４−１〜４−ｎそれぞれに対応し転送プロセスを行うアダプタ１２−１〜１２−ｎと、転送データを格納する転送データ格納部１１と、転送データ格納部１１に格納されたデータをバーチャルサーキットの所要数に基づいて読み出すとともに所定サイズに分割し、バーチャルサーキット４−１〜４−ｎにそれぞれ振り分けるデータ分割・振り分け部１３と、データのサイズと転送先とに対応させて振り分け数が設定された対応表１４ａを有し、その対応表１４ａを参照して、転送データのサイズおよび転送先アドレスに基づいてデータを振り分けるバーチャルサーキットの所要数を求め、転送データ格納部１１、データ分割・振り分け部１３、およびアダプタ１２−１〜１２−ｎを起動および制御し、受信側ＰＣとネゴシエーションを行って所要数に見合うバーチャルサーキット４−１〜４−ｎを確保し、分割されたパケットを、それぞれのバーチャルサーキット４−１〜４−ｎから並列に、ほぼ同時に送信させる転送制御部１４とを備えている。
【００３７】
また、受信側ＰＣ２は、ＡＤＳＬ回線の下り方向の高周波数帯に設定されたバーチャルサーキット５−１〜５−ｎと、バーチャルサーキット５−１〜５−ｎそれぞれに対応し受信プロセスを行うアダプタ１７−１〜１７−ｎと、再構成されたデータを格納する転送データ格納部１８と、アダプタ１７−１〜１７−ｎを介してバーチャルサーキット５−１〜５−ｎから受信した転送データを再構成するデータ再構成部１６と、送信側ＰＣからバーチャルサーキット所要数の通知を受け、送信側ＰＣとネゴシエーションを行って所要数に見合うバーチャルサーキット５−１〜５−ｎを確保し、転送データ格納部１８、およびアダプタ１７−１〜１７−ｎを起動および制御し、送信されたパケットを受信するとともに転送データ格納部１８に格納させ、データ転送が終了したとき、または所定のタイミングで、データ再構成部１６を起動させて受信された転送データをパケット毎に再構成させる転送制御部１５とを備えている。
【００３８】
ここで、本例に示したネットワークは、長距離ネットワーク３−２であるが、国際ネットワークであっても適用される。また、本例に示したネットワークコネクション４、５は、送信側ＰＣ１および受信側ＰＣ２ともにＡＤＳＬ回線の場合を示しているが、必ずしもＡＤＳＬ回線である必要はなく、例えばｘＤＳＬ回線、ＣＡＴＶ回線、あるいは光ファイバケーブルなどの広帯域回線であっても適用できる。さらに、送信側ＰＣ１および受信側ＰＣ２が同じ回線である必要もない。
【００３９】
次に、転送データを振り分けるバーチャルサーキットの所要数を求める対応表について説明する。
【００４０】
【表５】
2005057482.tif 000007
【００４１】
【表６】
2005057482.tif 000008
【００４２】
【表７】
2005057482.tif 000009
表５、表６および表７は、本実施形態の送信側ＰＣの転送制御部に備える対応表の一例を示す表である。
【００４３】
表５に示す対応表は、データを転送する転送先のドメイン名毎に、バーチャルサーキットの所要数を求めて、転送データを振り分ける場合の最小データサイズと、振分最大数とが記録されており、これらは、自在に追加削除を行うことができるように構成されている。
【００４４】
ＴＣＰ／ＩＰを利用してＦＴＰによりデータを転送する場合には、ＩＰアドレス又はドメイン名と、データサイズとからバーチャルサーキットの所要数を求める。
【００４５】
ドメイン名がわかる場合には、ドメイン名アドレス末尾の文字列から国名を知ることができるので、国別に設定された対応表を用いて所要数を求める。ただし、対応表に設定されていないアドレスの場合には、予め用意されたデフォルト値（例えば、振分最大数３、振分下限サイズ１０００ＫＢ）に基づいて、所要数を求めることができる。
【００４６】
ここで、バーチャルサーキットの所要数を求めるのは、データサイズが所定の閾値を超える場合に限られ、データサイズが所定の閾値より小さい場合には、転送先に所要数を通知し、バーチャルサーキットを確立する処理に要する時間に比べて、転送時間の改善効果が少ないため、従来通りの方法が用いられる。
【００４７】
また、所要数は、往復遅延時間に応じて上限値が設定されており、その上限値の範囲内で、データサイズやネットワークの伝送可能速度に応じて求めることができるようになっている。
【００４８】
表６に示す対応表は、データを転送する転送先のＩＰアドレス毎に、バーチャルサーキットの所要数を求める。転送データを振り分ける場合の最小データサイズと、振分最大数とが記録されており、これらは、自在に追加削除を行うことができるように構成されている。ＩＰアドレスの場合には、ドメイン名の場合と異なり、振分最大数の初期値がデフォルトとして設定されている。そして、転送先となるＩＰアドレスにパケットを転送して往復遅延時間を計測し、計測された往復遅延時間と伝送可能速度とに基づいて振り分け所要数を算出し、算出された数値を、表７に示すように新たな所要数として設定することができる。
【００４９】
例えば、日本―米国の場合には、広帯域のネットワークが準備されているので、所要数をデフォルト値よりも大きくすることができる。しかし、広帯域のネットワークが準備されていない地域については、所要数をデフォルト値の範囲内に設定する。
【００５０】
なお、対応表に設定されていないドメイン名やＩＰアドレスについては、振分最大数（例えば３）と振分下限サイズ（例えば１０００ＫＢ）のデフォルト値を用意しておき、このデフォルト値を用いて振り分け所要数を設定することができる。また、往復遅延時間を計測した場合などには、その計測値により設定された所要数に置換することもできる。
【００５１】
図４は、本発明のデータ転送方法および本発明のデータ転送用プログラムの第１の実施形態であるデータ転送処理手順の概略を示す図である。
【００５２】
本実施形態に示す送信側ＰＣと、受信側ＰＣとは、図３を用いて説明したものと同じであり、同一の構成要素には同一の符号を付し、各構成要素の説明は省略する。
【００５３】
図４に示すように、送信側ＰＣ１と、受信側ＰＣ２と、があり、送信側ＰＣ１および受信側ＰＣ２それぞれは、ＡＤＳＬ回線により長距離ネットワーク３−２に接続されている。
【００５４】
この構成において送信側ＰＣ１から受信側ＰＣ２にデータ転送を行う場合には、送信側ＰＣ１の転送制御部１４は、データ分割・振り分け部１３を起動する（１）。転送制御部１４は、転送データ格納部１１に格納された転送データのデータサイズおよび転送先との間の往復遅延時間（または、ドメイン名など）とにより、転送データを送受信するバーチャルサーキットの所要数を求め、データ分割・振り分け部１３のうちのデータ振り分け部１３ｂは、その所要数に基づいて転送データを振り分ける（２）。次に、転送制御部１４は、転送プロセスを行うアダプタ１２を起動する（３）。また、求めたバーチャルサーキットの所要数を、受信側ＰＣの転送制御部１５に通知し、受信側ＰＣの転送制御部１５は、受信プロセスを行うアダプタ１７、データ再構成部１６を起動する（４）。転送データ格納部１１に格納された転送データは、データ分割部１３ｃにより、バーチャルサーキットに対応させて振り分けられるとともに、所定サイズに分割され、或いは分割されずに、アダプタ１２、１７を介してそれぞれのバーチャルサーキットで送受信される（６）。データ再構成部１６の転送データ受信部１６ｂは、受信したデータを一旦蓄積する。そして、転送データ再構築部１６ａは、データ転送が終了したタイミング、または所定のタイミングで転送データ受信部１６ｂに蓄積されたデータを、並べ替える（７）。並べ替えたデータは、転送データ格納部１８に格納される。以上に説明した、送信側ＰＣ１から受信側ＰＣ２にデータ転送する処理の実行依頼は、送信側ＰＣ１或いは受信側ＰＣ２のどちらからも、送信側ＰＣ１に対して発行可能である。
【００５５】
図５は、本実施形態において、受信側ＰＣで転送データを再構築する方法を示す図である。
【００５６】
図５において、送信側ＰＣの転送制御部１４により求められたバーチャルサーキットの所要数、すなわち転送データの振り分け数は、再構成情報の一部として受信側ＰＣの転送制御部１５に通知される。そして、送信側ＰＣの転送制御部１４および受信側ＰＣの転送制御部１５は、バーチャルサーキット所要数に対応する、転送プロセスを行うアダプタ１２−１〜１２―ｎ、および受信プロセスを行うアダプタ１７−１〜１７−ｎそれぞれを同時に起動する。
【００５７】
送信側ＰＣ及び受信側ＰＣ双方にバーチャルサーキットが設定されると、データ振り分け部１３ｂは、送信側ＰＣの転送データ格納部１１に格納された転送データを、バーチャルサーキットの所要数に見合う数に振り分け、バーチャルサーキットそれぞれに対応するデータ分割部１３ｃ−１〜１３ｃ−ｎに格納する。データ分割部１３ｃ−１〜１３ｃ−ｎそれぞれは、格納されたデータを所定サイズのパケットに分割するとともに、パケットのヘッダに、バーチャルサーキットの番号、データサイズ、シーケンス番号などを記録した後、転送プロセスを行うアダプタ１２−１〜１２−ｎからそれぞれのバーチャルサーキットに送信する。
【００５８】
尚、データ分割部１３ｃ−１〜１３ｃ−ｎに格納されたデータをそれぞれファイルとして扱って、アダプタ１２−１〜１２−ｎから例えばＦＴＰ等のファイル転送処理によってバーチャルサーキットに送信してもよく、この場合は前記格納された転送データのパケットへの分割は、ファイル転送処理で行われる。
【００５９】
受信プロセスを行うアダプタ１７−１〜１７−ｎは、それぞれのバーチャルサーキットからパケットを受信し、それぞれの転送データ受信部１６ｂ−１〜１６ｂ−ｎに一旦格納する。
【００６０】
ここで、転送プロセスを行うアダプタ１２−１〜１２−ｎそれぞれは、受信プロセスを行うアダプタ１２−１〜１２−ｎから確認応答がないパケットがある場合には、所定のタイミングでそのパケットを再送する。データがすべて転送されると、転送データ再構築部１６ａは、それぞれの転送データ受信部１６ｂ−１〜１６ｂ−ｎに蓄積されたパケットを、パケットに記録されたシーケンス番号にしたがって並べ替え、並べ替えたデータを、振り分けされたデータ毎に再構成情報を適宜利用して並べ替えて転送データ格納部１８にファイルする。
尚、アダプタ１２−１〜１２−ｎから前記ファイル転送によって送信された場合は、転送データ再構築部１６ａは、それぞれの転送データ受信部１６ｂ−１〜１６ｂ−ｎに蓄積されたデータをファイルとして扱って、再構成情報を適宜利用してファイルの連結順序を決定し、転送データ格納部１８にファイルする。
【００６１】
ここでは、送信側ＰＣの転送データ格納部１１に格納されたデータを転送し、転送されたデータを再構築する場合について説明したが、これはファイルデータに限定されず、データストリームを転送する場合など、それぞれの転送データ受信部１６ｂ−１〜１６ｂ−ｎに蓄積されたパケットのシーケンス番号にしたがって転送データ格納部に格納してもよい。
【００６２】
図６〜図１０は、本実施形態のデータ転送処理手順の詳細を示す図であり、図６は、送信側ＰＣの転送制御部の処理手順、図７は、受信側ＰＣの転送制御部の処理手順、図８は、アダプタによる転送プロセスの処理手順、図９は、アダプタによる受信プロセスの処理手順、及び図１０は、送信側ＰＣの転送制御部における転送プロセスの実行監視手順をそれぞれ示している。
【００６３】
図６に示すように、送信側ＰＣの転送制御部が起動すると（Ｓ１０）、転送制御部は、転送データ格納部に格納されたデータのサイズをチェックする（Ｓ１１）。そして、図示しない指令手段から転送先の情報を読み取り、その情報にドメイン名が指定されているか否かをチェックする（Ｓ１２）。ドメイン名で指定されているときは、前記表５に例示したドメイン名アドレステーブルに基づいて、転送データの振り分け数Ｎを求め（Ｓ１３）、ＩＰアドレスで指定されているときは、前記表６に例示したＩＰアドレステーブルに基づいて、転送データの振り分け数Ｎを求める（Ｓ１４）。何れかの方法で振り分け数Ｎが求められると、振り分け数Ｎを含むデータの再構成情報を作成する（Ｓ１５）。
ここで、再構成情報とは、分割されたデータを再構成するために必要な情報であって、具体的には、振り分け数(N)や分割されたデータのファイル名、データサイズ等が含まれ、データ分割の順序情報等を含めることもできる。また、再構成情報には、実際に再構成を行う処理自体を含めることも可能であり、具体的にはコマンドプロシージャ等により再構成処理を記述しておき、受信側でその処理を実行することによりファイルを再構成してもよい。
次に、データ分割・振り分け部を起動する（Ｓ１６）。
【００６４】
ここで、起動されたデータ分割・振り分け部において、図５に示したように、データ分割部１３ｃ−１〜１３ｃ−ｎに振り分けされたデータは、所定サイズのパケットに分割され、転送プロセスを行うアダプタ１２−１〜１２−ｎからそれぞれのバーチャルサーキットを介して受信側ＰＣに送信される。或いは、同じく図５で示したように、データ分割部１３ｃ−１〜１３ｃ−ｎに振り分けされたデータは、ファイル転送によってアダプタ１２−１〜１２−ｎからバーチャルサーキットを介して受信側ＰＣに送信される。
【００６５】
また、受信側ＰＣの転送制御部に、複数のバーチャルサーキットに振り分けてデータを転送する旨やデータを振り分けるバーチャルサーキットの所要数Ｎなどが含まれる再構成情報を受信側ＰＣに通知する（Ｓ１７）。そして、受信側ＰＣの転送制御部とのネゴシエーションが正常に終了すると（Ｓ１８）、転送プロセスを行うＮ個のアダプタを起動するとともに、データ分割・振り分け部を制御してＮ個のバーチャルサーキットを介してデータ転送を行う（Ｓ１９）。データ転送を行っているときは、それぞれの転送プロセスを行うＮ個のアダプタそれぞれの実行状態を監視する（Ｓ２０、Ｓ２１）。すべての転送プロセスが正常に終了した場合は（Ｓ２２）、データ分割部１３ｃにそれぞれのバーチャルサーキット毎に格納されている分離されたワークデータを削除し（Ｓ２３）、送信側ＰＣの転送制御部の処理を終了する（Ｓ２４）。また、ネゴシエーションが正常に終了しなかった場合、及び何れかの転送プロセスにおいて、例えば特定のパケットの再送を所定回数行っても、受信側ＰＣに未達の場合など、データ転送が正常に終了しない転送失敗の場合には（Ｓ２５）、エラー終了する（Ｓ２６）。
【００６６】
図７に示すように、受信側ＰＣの転送制御部が起動すると（Ｓ３０）、転送制御部は、送信側ＰＣからのデータに備えて待機する（Ｓ３１、Ｓ３２）、そして、送信側ＰＣの転送制御部から複数のバーチャルサーキットに振り分けてデータを転送する旨や、バーチャルサーキットの所要数Ｎが含まれる再構成情報が通知され、その再構成情報を読み込むと（Ｓ３３）、送信側ＰＣの転送制御部とネゴシエーションを行って、受信プロセスを行うＮ個のアダプタを起動するとともに、転送データ受信部を制御して、Ｎ個のバーチャルサーキットを介してデータ受信を行う（Ｓ３４）。
【００６７】
ここで、受信プロセスを行うアダプタ１７−１〜１７−ｎは、それぞれのバーチャルサーキットからパケットを受信し、それぞれの転送データ受信部１６ｂ−１〜１６ｂ−ｎに一旦格納する。データがすべて転送されると、転送データ再構築部１６ａは、それぞれの転送データ受信部１６ｂ−１〜１６ｂ−ｎに蓄積されたパケットを、パケットに記録されたシーケンス番号にしたがって並べ替え、並べ替えたデータを、振り分けられたデータ毎に転送データ格納部１８にファイルする。
尚、送信側ＰＣにおいてデータ分割部１３ｃ−１〜１３ｃ−ｎに振り分けされたデータが、受信側ＰＣにファイル転送される場合は、前記転送データ受信部１６ｂ−〜１６ｂ−ｎに格納されたデータが転送されたファイルだから、転送データ再構築部１６ａでは、例えば後述する受信起動番号の順序に合わせて連結順序を決定し、転送データ格納部１８にファイルする。
【００６８】
データ受信を行っているときは、それぞれの受信プロセスを行うｎ個のアダプタそれぞれの実行状態を監視する（Ｓ３５、Ｓ３６）。すべての受信プロセスが正常に終了した場合は（Ｓ３７）、転送データ再構築部１６ａを制御して、それぞれのバーチャルサーキットを介して受信したパケットをシーケンス番号にしたがって再配列させて、送信側ＰＣの転送データ格納部に格納された状態のデータ配列に復して、転送データ格納部に格納する（Ｓ３８）。そして、転送データ受信部に一旦蓄積されているワークファイルを削除し（Ｓ３９）、受信側ＰＣの転送制御部の処理を終了する（Ｓ４０）。また、何れかの受信プロセスにおいて、例えば特定のパケットの受信ができないため、送信側に再送要求を複数回行っても、受信できない場合など、データ転送が正常に終了しない転送失敗の場合には（Ｓ４１）、エラー終了する（Ｓ４２）。
【００６９】
図８に示すように、アダプタによる転送プロセスが開始すると（Ｓ５０）、送信側ＰＣの転送制御部１４から転送起動番号を取得する（Ｓ５１）。
ここで、起動番号とは、送信側と受信側でそれぞれ転送プロセスを行なうＮ個のアダプタと、受信プロセスを行なうＮ個のアダプタとの対応をとる番号である。具体的には、送信側で転送プロセスを行なうアダプタを起動する際、振り分け所要数Ｎに基づいて１〜Ｎの起動番号が送信側ＰＣの転送制御処理から与えられる。転送されるデータは、１〜Ｎの起動番号に合わせた順序で、転送プロセスを行なうそれぞれのアダプタに振り分けられる。受信側ＰＣでは、送信側ＰＣの転送制御部から受取った振り分け数Ｎに従って受信プロセスを行なうＮ個のアダプタを起動し、それぞれ１〜Ｎの受信起動番号が受信側ＰＣの転送制御部から与えられる。受信側のＮ個のアダプタは、バーチャルサーキットにより、それぞれの受信起動番号に一致する、転送プロセスを行なう送信側ＰＣのＮ個のアダプタと接続されて転送処理が行なわれる。
転送起動番号が取得されると、次に転送制御部１４から転送データのファイル名やファイルサイズ等の情報が取得される（Ｓ５２）。
受信側ＰＣとの間にバーチャルサーキットが設定されると、前記転送データのファイル名で指定されるデータ分割部１３ｃからデータを読み込み、パケットに構成し、アダプタを介して受信側に送信する（Ｓ５３）。正常に終了した場合（Ｓ５４）には、アダプタは、転送が完了したことを転送制御部に通知し（Ｓ５５）、
転送プロセスを終了する（Ｓ５６）。正常に終了しない場合（Ｓ５４）には、確認応答を受信しないパケットの再送を複数回行った後、なお、転送が完了しない場合には、転送失敗処理を行い（Ｓ５７）、エラー終了する（Ｓ５８）。
【００７０】
図９に示すように、アダプタによる受信プロセスが開始すると（Ｓ６０）、受信側ＰＣの転送制御部１５から受信起動番号を取得し（Ｓ６１）、さらに、転送制御部１５から転送データのファイル名やファイルサイズ等の情報を取得する（Ｓ６２）。送信側ＰＣとの間にバーチャルサーキットが設定されると、送信側ＰＣからヘッダを付したパケットが送られてくるので、アダプタを介して受信し（Ｓ６３）、受信したパケットそれぞれを、前記転送データのファイル名で指定される転送データ受信部１６ｂに一旦蓄積する。そして、すべてのパケットの受信が正常に終了した場合（Ｓ６４）には、アダプタは、転送が完了したことを転送制御部１５に通知し（Ｓ６５）、
受信プロセスを終了する（Ｓ６６）。正常に終了しない場合（Ｓ６４）には、送信側から再送されるパケットを所定の時間待った後、なお、受信が完了しない場合には、転送失敗処理を行い（Ｓ６７）、エラー終了する（Ｓ６８）。
【００７１】
図１０に示すように、送信側ＰＣの転送制御処理が開始されると（Ｓ７０）、転送制御部は、Ｎ個のアダプタそれぞれの実行状態を監視し、Ｎ個のアダプタそれぞれから受ける転送の完了通知をチェックする（Ｓ７１）。そして、転送が完了した場合（Ｓ７２）には、転送終了処理を行い（Ｓ７３）。実行監視を終了する（Ｓ７４）。一方、転送が完了しない場合（Ｓ７３）であっても、転送時間オーバーとならないで転送が確認されたときは（Ｓ７５）、次の転送プロセスが選択される（Ｓ７９）。転送時間オーバーのときは、送信側から再送された回数が所定回数以内であれば、転送プロセスを再実行し（Ｓ８０）、次の転送プロセスが選択される（Ｓ７９）が、再送された回数が所定回数を超える場合には、転送失敗処理がなされ（Ｓ７７）、エラー終了する（Ｓ７８）。
【００７２】
ここで、長距離ネットワークを利用している場合、パケットの伝送を確実に行う保証はない。実際には、転送データがネットワーク上で喪失したためデータ待ちとなり転送完了できない場合や、ネットワークが輻輳しているため転送を適切な時間で完了できないことがよくある。このような状態では、転送エラーの判定が出来なくなることが多い（転送不可能状態）。この状態は、転送レートが低下している状態のときに多く現れる。しかし長距離ネットワークの場合、経路上のすべてのネットワーク状態を管理することが困難であることから、転送の再試行、転送不可能状態等のエラー対策として、一定時間を経過して転送が完了出来ない場合には、転送プロセス毎に実行中の転送を中止して、再度、転送をやり直し、それによって転送を成功させる方法が多用される。再転送の回数は、自在に設定変更が可能である。複数回の再試行でも転送が完了できない場合は、その時点ではネットワークが輻輳していると判断し、転送失敗を通知して処理を終了する。転送の再試行までの時間は、ネットワーク距離と回線の太さから余裕のある適切な時間を設定することができる。
（第２の実施形態）
第２の実施形態は、第１の実施形態と比べて、転送データがデータストリームであり、所定のサイズで分割されたパケットに分割番号が付されて、それぞれのバーチャルサーキットに振り分けられて並列に送受信される点は相違するが、それ以外の点は共通するので、相違する送信側ＰＣの転送処理および受信側ＰＣの受信処理について説明する。
【００７３】
図１１は、本発明のデータ転送方法及びデータ転送用プログラムの第２の実施形態を示す、送信側ＰＣの転送処理フローを示す図である。
【００７４】
図１１に示すように、送信側ＰＣの転送制御部が起動すると（Ｓ１００）、転送制御部は、
データストリームを転送する際に、データストリームを先頭から所定の長さ毎に分割し、
バーチャルサーキットに振り分けて送受信する振分数を求めるために、図示しない指令手段から転送先の情報を読み取り、その情報にドメイン名が指定されているか否かをチェックする（Ｓ１０１）。ドメイン名で指定されているときは、ドメイン名アドレステーブルに基づいて、振分数Ｎを求め（Ｓ１０２）、ＩＰアドレスで指定されているときは、ＩＰアドレステーブルに基づいて、振分数Ｎを求める（Ｓ１０３）。
【００７５】
何れかの方法で振分数Ｎが求められると、転送データを分割する分割処理に送るとともに（Ｓ１０４）、転送データ分割処理を起動する（Ｓ１０５）。
【００７６】
ここで、転送データ分割処理が起動されると、データ分割・振り分け部１３は、データストリームの先頭から所定の長さで順次分割し、分割されたパケットに分割番号を付す。
【００７７】
送信側ＰＣの転送制御部は、受信側ＰＣの転送制御部に、複数のバーチャルサーキットに振り分けてデータを転送する旨と、バーチャルサーキットの所要数Ｎを通知する（Ｓ１０６）。そして、受信側ＰＣの転送制御部とネゴシエーションを行って、バーチャルサーキットが正常に設定されると（Ｓ１０７）、転送プロセスを行うＮ個のアダプタを起動する（Ｓ１０８）。
分割番号が付されたパケットは、バーチャルサーキットに対応するデータ分割部１３ｃに振り分けられ、転送プロセスを行うアダプタ１２からそれぞれのバーチャルサーキットを介して受信側に転送される。
【００７８】
データ転送が行われているときは、それぞれの転送プロセスを行うＮ個のアダプタそれぞれの実行状態が監視される（Ｓ１０９）。そして、すべての転送プロセスが正常に終了した場合（Ｓ１１０、Ｓ１１１）は、データ転送を終了する（Ｓ１１２）。
【００７９】
一方、バーチャルサーキットが正常に設定されない場合（Ｓ１０７）、転送プロセスが異常終了した場合（Ｓ１１０）は、転送失敗処理を行い（Ｓ１１３）、エラー終了する（Ｓ１１４）。
【００８０】
図１２は、本発明のデータ転送方法及びデータ転送用プログラムの第２の実施形態を示す、受信側ＰＣの転送処理フローを示す図である。
【００８１】
図１２に示すように、受信側ＰＣの転送制御部が起動し、転送処理が開始すると（Ｓ１２０）、転送制御部は、送信側ＰＣの転送制御部１４から通知されるデータに備えて待機する（Ｓ１２１、Ｓ１２２）。送信側ＰＣの転送制御部から、複数のバーチャルサーキットに振り分けてデータが転送される旨、及びその振り分け数のデータが送られると、そのデータから振り分け数を読込む（Ｓ１２３）。そして、送信側ＰＣの転送制御部１４とネゴシエーションを行って、受信プロセスを行うＮ個のアダプタを起動する（Ｓ１２４）。
一方、アダプタ１２に対応するバーチャルサーキットを介し、データ転送部１３ｃから受信側に転送されるパケットは、受信プロセスを行なうアダプタ１７を介して、それぞれのバーチャルサーキットに対応するデータ受信部１６ｂで受信され、一旦蓄積される。
次に、転送データを再構成するため（Ｓ１２５）、転送データ再構築部１６ａを起動し、転送データ再構築部１６ａは、それぞれのデータ受信部１６ｂに蓄積されているパケットのヘッダに記録された分割番号順に、蓄積されているパケットを逐次読みだし、そのパケットを分割番号順に転送データ格納部１８に格納する。
【００８２】
この受信プロセスを行なっているときは、転送制御部は、それぞれの受信プロセスを行うＮ個のアダプタ１７それぞれの終了状態を監視する（Ｓ１２６）。そして、異常終了したときは（Ｓ１２７）、転送失敗処理が行なわれ（Ｓ１３０）、エラー終了する（Ｓ１３１）。
【００８３】
異常が発生しないときは（Ｓ１２７）、すべての受信プロセスが正常に終了したときに終了する（Ｓ１２９、Ｓ１２９）。
【図面の簡単な説明】
【００８４】
【図１】本発明のデータ転送方法の原理を示す図である。
【図２】本発明のデータ転送方法の原理を示す図である。
【図３】本発明のデータ転送方法を実施するために用いる送信側ＰＣと受信側ＰＣとを一例として示す図である。
【図４】本発明のデータ転送方法および本発明のデータ転送用プログラムの第１の実施形態であるデータ転送処理手順の概略を示す図である。
【図５】本実施形態において、受信側ＰＣで転送データを再構築する方法を示す図である。
【図６】本実施形態のデータ転送処理手順（送信側ＰＣの転送制御部の処理手順）の詳細を示す図である。
【図７】本実施形態のデータ転送処理手順（受信側ＰＣの転送制御部の処理手順）の詳細を示す図である。
【図８】本実施形態のデータ転送処理手順（アダプタによる転送プロセスの処理手順）の詳細を示す図である。
【図９】本実施形態のデータ転送処理手順（アダプタによる受信プロセスの処理手順）の詳細を示す図である。
【図１０】本実施形態のデータ転送処理手順（送信側ＰＣの転送制御部における転送プロセスの実行監視手順）の詳細を示す図である。
【図１１】本発明のデータ転送方法及びデータ転送用プログラムの第２の実施形態を示す、送信側ＰＣの転送処理フローを示す図である。
【図１２】本発明のデータ転送方法及びデータ転送用プログラムの第２の実施形態を示す、受信側ＰＣの転送処理フローを示す図である。
【符号の説明】
【００８５】
１  送信側ＰＣ
２  受信側ＰＣ
３−１  国際ネットワーク
３−２  長距離ネットワーク
４  ネットワークコネクション
４−１〜４−ｎ，５−１〜５−ｎ  バーチャルサーキット
１１、１８  転送データ格納部
１２、１７、１２−１〜１２−ｎ、１７−１〜１、７−ｎ  アダプタ
１３  データ分割・振り分け部
１３ｂ  データ振り分け部
１３ｃ、１３ｃ−１〜１３ｃ−ｎ  データ分割部
１４、１５  転送制御部
１４ａ  対応表
１６  データ再構成部
１６ａ  転送データ再構築部
１６ｂ、１６ｂ−１〜１６ｂ−ｎ  転送データ受信部
【図１】
2005057482.tif 000010
【図２】
2005057482.tif 000011
【図３】
2005057482.tif 000012
【図４】
2005057482.tif 000013
【図５】
2005057482.tif 000014
【図６】
2005057482.tif 000015
【図７】
2005057482.tif 000016
【図８】
2005057482.tif 000017
【図９】
2005057482.tif 000018
【図１０】
2005057482.tif 000019
【図１１】
2005057482.tif 000020
【図１２】
2005057482.tif 000021