(57)【要約】　　　（修正有）【課題】上位のアプリケーションに対してＴＣＰと同様な高い信頼性と高速データ転送サービスを極めて小さなオーバーヘッドで実現するデータ転送方法及びシステムを実現する。【解決手段】送信側の端末装置（１）は、送信すべきデータパケットを作成し、パケット単位のシーケンス番号を付加してネットワークに送信するパケット送信手段（１０）と、受信側の端末装置からの確認応答に基づいてデータパケットの送信速度を制御するフロー制御手段（１５）と、フロー制御手段からの出力に応じてパケット送信速度を設定するシェーピング手段（１１）とを具え、受信側の端末装置（３）は、受信したデータパケットを蓄積する主記憶装置（１２）と、受信したデータパケットの確認応答を受信データパケットの受信速度から独立した一定の周期で送信側端末装置に返送する確認応答送信手段（１３）とを具えることを特徴とする。【選択図】　　　　図３
2004080070.tif 000002
【特許請求の範囲】
【請求項１】
パケット転送ネットワークを介して複数の端末装置が接続され、送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側の端末装置は、データパケットの受信に応じて送信側の端末装置に確認応答を送信するデータ転送方法において、
送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信するパケット送信ステップと、
データパケットの受信に応じて、確認応答を、データパケットの受信速度から独立した周期で送信側の端末装置に送信するステップと、
受信したデータパケットを主記憶装置に蓄積する蓄積ステップと、
少なくともデータパケットの受信速度情報を用いてデータパケットの送信速度を制御するフロー制御ステップと、
前記フロー制御ステップにおいて得られた送信速度情報に基づいてパケット送信速度を設定するシェーピングステップとを具えることを特徴とするデータ転送方法。
【請求項２】
請求項１に記載のデータ転送方法において、前記受信側端末装置から送信側端末装置へ送信される確認応答が、データパケットの受信速度に関する受信速度情報を含み、送信側端末装置は、フロー制御ステップにおいて確認応答に含まれる受信速度情報と設定されている送信速度とに基づいてデータパケットの送信速度を制御することを特徴とするデータ転送方法。
【請求項３】
請求項１に記載のデータ転送方法において、前記受信側端末装置がデータパケットの受信速度を検出する手段を有し、検出されたデータパケットの受信速度情報を用いてデータパケットの送信速度情報を作成し、当該送信速度情報を確認応答に含ませて送信側端末装置に送信し、前記シェーピングステップにおいて、送信されてきた送信速度情報を用いて前記パケット送信速度を設定することを特徴とするデータ転送方法。
【請求項４】
請求項１又は２に記載のデータ転送方法において、前記受信側端末装置から送信側端末装置へ送信される確認応答が、受信端末装置で受信されなかったデータパケットに関する情報を含み、前記送信側端末装置は、受信した確認応答に基づいて受信側端末装置で受信されなかったデータパケットを特定し、当該データパケットを再送することを特徴とするデータ転送方法。
【請求項５】
請求項１から４までのいずれか１項に記載のデータ転送方法において、さらに、ネットワークの利用可能帯域を検出するステップを具え、検出されたネットワークの利用可能帯域に基づいて確認応答の送信周期を動的に制御することを特徴とするデータ転送方法。
【請求項６】
パケット転送ネットワークを介して複数の端末装置が接続され、送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側の端末装置は、データパケットの受信に応じて送信側の端末装置に確認応答を送信するデータ転送システムに用いられるプログラムであって、コンピュータに、
送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信する手順と、
データパケットの受信に応じて、確認応答を、データパケットの受信速度から独立した周期で送信側の端末装置に送信する手順と、
受信したデータパケットを主記憶装置に蓄積する手順と、
少なくともデータパケットの受信速度情報を用いてデータパケットの送信速度を制御するフロー制御手順と、
パケット転送速度を、前記フロー制御された送信速度に設定するシェーピング手順とを実行させるためのプログラム。
【請求項７】
請求項６に記載のプログラムにおいて、前記受信側端末装置から送信側端末装置へ送信される確認応答が、データパケットの受信速度に関する受信速度情報を含み、前記フロー制御手順において確認応答に含まれる受信速度情報と設定されている送信速度とに基づいてデータパケットの送信速度を制御するプログラム。
【請求項８】
請求項６又は７に記載のプログラムにおいて、さらに、受信した確認応答に基づいて受信側端末装置で受信されなかったデータパケットを特定し、当該データパケットを再送する再送制御手順を含むプログラム。
【請求項９】
請求項６から８までのいずれか１項に記載のプログラムが記録された記録媒体。
【請求項１０】
パケット転送ネットワークを介して複数の端末装置が接続され、送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側の端末装置は、データパケットの受信に応じて送信側の端末装置に確認応答を送信するデータ転送システムにおいて、
送信側の端末装置は、送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信するパケット送信手段と、受信側の端末装置から送られてきた確認応答に基づいてデータパケットの送信速度を制御するフロー制御手段と、前記フロー制御手段からの出力に応じてパケット送信速度を設定するシェーピング手段とを具え、
受信側の端末装置は、受信したデータパケットを蓄積する主記憶装置と、データパケットの受信に応じて確認応答を送信側端末装置に送信する確認応答送信手段とを具え、
前記受信側端末装置の確認応答送信手段は、データパケットを受信した際、確認応答を、受信データパケットの受信速度から独立した周期で送信側端末装置に返送することを特徴とするデータ転送システム。
【請求項１１】
パケット転送ネットワークを介して複数の端末装置が接続され、送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側の端末装置は、データパケットの受信に応じて送信側の端末装置に確認応答を送信するデータ転送システムにおいて、
送信側の端末装置は、送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信するパケット送信手段と、パケット送信速度を設定するシェーピング手段とを具え、
受信側の端末装置は、受信したデータパケットを蓄積する主記憶装置と、データパケットの受信に応じて確認応答を送信側端末装置に送信する確認応答送信手段と、データパケットの受信速度情報を用いて送信側端末装置におけるパケット送信速度を制御するフロー制御手段とを具え、
前記受信側端末装置の確認応答送信手段は、データパケットを受信した際、確認応答を、受信データパケットの受信速度から独立した周期で送信側端末装置に返送することを特徴とするデータ転送システム。
【請求項１２】
請求項１０又は１１に記載のデータ転送システムにおいて、前記確認応答送信手段は、受信した複数のデータパケットに対する応答を単一のパケットに収めて送信側端末装置に返送することを特徴とするデータ転送システム。
【請求項１３】
請求項１０又は１１に記載のデータ転送システムにおいて、前記受信帯域装置がデータパケットの受信速度を検出する手段を有し、前記受信側端末装置から送信側端末装置へ送信される確認応答が、受信側端末装置におけるパケット受信速度に関する受信速度情報を含み、前記送信側端末装置のフロー制御手段は、受信した確認応答に含まれる受信速度情報に基づいてパケット送信速度を調整することを特徴とするデータ転送システム。
【請求項１４】
請求項１０、１１、１２又は１３記載のデータ転送システムにおいて、送信側の端末装置が、受信した確認応答に基づいて、データパケットの再送を制御する再送制御手段を具えることを特徴とするデータ転送システム。
【請求項１５】
請求項１０から１４までのいずれか１項に記載のデータ転送システムにおいて、ネットワークの利用可能帯域情報を検出する手段を有し、検出されたネットワークの利用可能帯域情報に基づいて確認応答の送信周期を動的に制御することを特徴とするデータ転送システム。
【請求項１６】
請求項１０から１５までのいずれか１項に記載のデータ転送システムにおいて、前記データパケットが、少なくともＩＰヘッダ、ＵＤＰヘッダ、パケットのシーケンス番号、及びペイロードを含むことを特徴とするデータ転送システム。
【請求項１７】
請求項１０から１６までのいずれか１項に記載のデータ転送システムにおいて、前記確認応答が、少なくともＩＰヘッダ、ＵＤＰヘッダ、受信したシーケンス番号、受信速度、確認応答数、受信されなかったシーケンス番号の列を含むことを特徴とするデータ転送システム。
【請求項１８】
請求項１０から１７までのいずれか１項に記載のデータ転送システムにおいて、前記フロー制御手段は、受信した確認応答パケットに含まれる受信速度と設定されているパケット送信速度とからパケット損率を計算し、その計算結果に基づいてデータパケットの送信速度を調節することを特徴とするデータ転送システム。
【請求項１９】
請求項１０から１８までのいずれか１項に記載のデータ転送システムにおいて、前記再送制御手段は、受信した確認応答の受信したシーケンス番号と受信されなかったシーケンス番号の列とから再送が必要なパケットを特定することを特徴とするデータ転送システム。
【請求項２０】
パケット転送ネットワークを介して、コンテンツ配信サーバと複数の端末装置とが接続され、コンテンツ配信サーバからパケット転送ネットワークを介して端末装置にデータパケットが送信され、データパケットを受信した端末装置は、データパケットの受信に応じてコンテンツ配信サーバに確認応答を送信するコンテンツ配信システムにおいて、
前記コンテンツ配信サーバは、送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信するパケット送信手段と、受信側の端末装置から送られてきた確認応答に基づいてデータパケットの送信速度を制御するフロー制御手段と、前記フロー制御手段からの出力に応じてパケット送信速度を設定するシェーピング手段とを具え、
前記端末装置は、受信したデータパケットを蓄積する主記憶装置と、データパケットの受信に応じて確認応答を送信側パケット送受信装置に送信する確認応答送信手段とを具え、
前記端末装置の確認応答送信手段は、データパケットを受信した際、確認応答を、受信データパケットの受信速度から独立した一定の周期で送信側のパケット送受信装置に返送することを特徴とするコンテンツ配信システム。
【請求項２１】
請求項２０に記載のコンテンツ配信システムにおいて、前記端末装置から構成配信サーバに送られる確認応答が、当該端末装置におけるデータパケットの受信速度情報を含み、前記フロー制御手段は、受信した確認応答に含まれる受信速度情報に基づいてパケット送信速度を制御することを特徴とするコンテンツ配信システム。
【請求項２２】
請求項２０又は２１に記載のコンテンツ配信システムにおいて、前記コンテンツ配信サーバは、データパケットの再送を制御する再送制御手段を有し、当該再送制御手段は、受信した確認応答に含まれるデータパケットのシーケンス番号情報に基づいて再送すべきデータパケットを特定することを特徴とするコンテンツ配信システム。
【請求項２３】
請求項２０、２１又は２２に記載のコンテンツ配信システムにおいて、前記端末装置を、携帯型情報端末装置、パーソナルコンピュータ、又は携帯電話としたことを特徴とするコンテンツ配信システム。
【請求項２４】
請求項２０から２３までのいずれか１項に記載のコンテンツ配信システムにおいて、前記パケット転送ネットワークに接続されている１つの端末装置を別のコンテンツ配信サーバとし、一方のコンテンツ配信サーバから他方のコンテンツ配信サーバにデータパケットが送信され、他方のコンテンツ配信サーバから前記一方のコンテンツ配信サーバに確認応答が送信されることを特徴とするコンテンツ配信システム。
【請求項２５】
送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側のパケット送受信装置は、データパケットの受信に応じて送信側のパケット送受信装置に確認応答を送信するパケット転送システムに用いられる端末装置であって、
送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して送信するパケット送信手段と、
データパケットの受信に応じて、データパケットの受信速度から独立した周期で確認応答を送信する確認応答送信手段と、
データパケットの受信速度情報を用いてデータパケットの送信速度を制御するフロー制御手段と、
前記フロー制御手段からの出力に応じてパケット送信速度を設定するシェーピング手段と、
受信したデータパケットを蓄積する主記憶装置とを具えることを特徴とする端末装置。
【請求項２６】
送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側のパケット送受信装置は、データパケットの受信に応じて送信側のパケット送受信装置に確認応答を送信するパケット転送システムに用いられる端末装置であって、
送信側端末装置から、パケット単位のシーケンス番号が付加されて送られてきたデータパケットを受信する手段と、
受信したデータパケットを記憶する記憶手段と、
受信したデータパケットからデータパケットの受信速度情報を作成し、当該受信速度情報を含む確認応答を作成する手段と、
前記作成した確認応答を、データパケットの受信速度から独立した一定の周期で送信側端末装置に送信する確認応答送信手段とを具えることを特徴とする端末装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、端末間で広帯域かつ信頼性のあるデータ転送を行うためのデータ転送方法及びシステム、並びにこのデータ転送方法を利用したコンテンツ配信システムに関するものである。
【０００２】
【従来の技術】
近年、高速ネットワーク転送技術が安価に入手できるようになってきた。今後、一般家庭の端末においても１Ｇｂｐｓのような超高速インターフェイスが急速に普及すると考えられる。また、ネットワークの高速化と歩調を合わせて、高速ネットワークを介して送受信されるコンテンツも従来のＷｅｂコンテンツに代わって、音声や動画等の大容量容コンテンツが急速に増加している。したがって、高速ネットワークの性能を最大限に引き出して、大容量のコンテンツを高速に端末間で交換できることが強く求められている。
【０００３】
通常のコンテンツを配信する際のトランスポート層のプロトコルとして、現在のインターネットにおいてはＴＣＰとＵＤＰという２通りの方式が主に利用されている。ＴＣＰでは、揖失パケットの再送機能や順序逆転パケットの整列機能を有しており、上位のアプリケーションに対して、信頼性の高いストリーム型のサービスを提供する。一方、ＵＤＰは、損失パケットの再送機能や順序逆転パケットの整列機能は持たず、上位のアプリケーションに対して、信頼性の低いデータグラム型のサービスを提供する。これら２つのプロトコルは、利用目的に応じて最適な方式が利用されている。
【０００４】
さて、ネットワークを介してやり取りされる音声や動画等の大容量コンテンツは、ＭＰＥＧ２等のさまざまな方式で圧縮（エンコード）されている。このような圧縮方式に共通していえることは、データの部分的な喪失や誤りが存在するとコンテンツの品質に大きな影響を与える、ということである。これはデータが時間軸方向や空間軸方向に庄縮されているため１箇所の誤りによって、これら時間軸方向や空間軸方向の他のデータに対しても影響を与えてしまうためである。インターネットは一般にベストエフォート型であり、データの到達性や遅延時間、到着順序に関する保証を行わない。したがってインターネットを介して前記の様なコンテンツの転送を行う場合には、データの損失、遅延、順序逆転に対する特別な配慮が必要となる。そのための方法として現在利用されている方式は、大きく２つの方向性をもつ。
【０００５】
一つはダウンロード型と呼ばれるもので、エンコード方式には手を加えずに、信頼性の高いトランスポート層の機能を用いてデータを転送する方式である。データ転送途中に発生したデータのロスや誤りは、トランスポート層において回復されるため、アプリケーション層のエンコードやデコードの際に、エラー訂正等の特別な仕組みを必要としない。このような目的で、インターネットで一般に利用されているトランスポート層は、ＴＣＰ（Ｔｒａｎｓｐｏｒｔ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ）と呼ばれるプロトコルである（ＲＦＣ７９３）。ＴＣＰを利用することによって、アプリケーション層は実装を単純化することができる反面、トランスポート層において複雑な処理を行う必要がある。コンテンツの転送においてダウンロード型を利用できるのは、映画などの蓄積可能なコンテンツである。
【０００６】
一方、コンテンツを転送するもうひとつの方向性としてストリーム型と呼ばれるものがある。信頼性の低い（誤り訂正機能を持たない）トランスポート層を利用してデータを転送する代わりに、誤り訂正等の機能をアプリケーション層やプレゼンテーション層に実装する方式である。トランスポート層が単純な処理ですむ反面、アプリケーション層ではエンコードやデコードの際に、誤りの影響を最小限に抑えるために数多くの複雑な処理が要求される。このようなストリーム型のデータ転送に一般に利用されているトランスポート層のプロトコルはＵＤＰ（Ｕｓｅｒ　Ｄａｔａｇｒａｍ　Ｐｒｏｔｏｃｏｌ）と呼ばれている（ＲＦＣ７６８）。ＵＤＰはパケットの喪失や順序逆転に対する再送機能や再配列機能を持たず、上位層に対してベストエフォート型のパケット転送サービスを提供する。アプリケーションの実装が複雑になるが、前記のダウンロード型と異なり、データの損失や遅延に対してアプリケーションやコンテンツに特化した処理を、アプリケーション層で独自に行うことが可能となる。コンテンツの転送においてストリーム型を利用するのは、主として生中継のようにリアルタイム性が要求されるコンテンツや、マルチキャストのように非常に多数のクライアントに対する同報通信の場合などである。前者ではパケットの再送による遅延が問題となるために、再送制御機能のないＵＤＰを利用している。後者では、クライアントの数が非常に多くなった場合に、クライアント単位で再送制御を行うとサーバーに負荷がかかるため再送制御機能のないＵＤＰを利用している。いずれにしてもＵＤＰを利用した通信では、コンテンツの品質よりもリアルタイム性や同時視聴可能数が重視されている。
【０００７】
先に述べたように、音声や動画等のコンテンツはデータの誤りに対して品質の劣化が著しい。前記２つの方式の特徴から言えることは、蓄積可能なコンテンツをインターネット経由で転送する場合には、ＴＣＰのように誤り訂正機能を持つ方式を利用するほうが望ましい、ということである。特に近年のコンテンツの大容量化は、画像の解像度やフレーム数など品質の向上を目指した結果であり、今後ますます信頼性の高い広帯域転送方式が必要になると考えられる。
【０００８】
【発明が解決しようとする課題】
しかしながら、以上に述べたようなＴＣＰを利用する方式は、今後必要とされる高速転送においてもそのままで適用できるわけではない。ネットワークの帯域幅やプロセッサの処理能力が向上した際に課題となる点は、次のとおりである。
１．　細かなチューニングの課題：ＴＣＰ等のトランスポート層のプロトコルは、通常ＯＳ（オペレーティングシステム）のカーネル領域に実装されるため、一般のアプリケーションプログラムからは、詳細な部分を制御できない。特にＴＣＰのＡＣＫ（確認応答）を返信する頻度や再送までのタイムアウトの長さなどは、動画再生等のアプリケーションに対して大きな影響を与えるが、これらをアプリケーションから直接利御するのは困難である。
２．　ＡＣＫによるオーバーヘッド：ＴＣＰでは２つのデータパケットの受信に対して、１つのＡＣＫ（確認応答）パケットが返信される。しかし、高速転送時には次のような問題を招く。通常の端末では、パケットを受信するたびにプロセッサに割り込みが発生するが、これによって２パケットに１回は送・受信処理が中断される。また、頻繁なＡＣＫパケットの送受信はＩ／０バスの競合による使用効率の低下を招く。さらにＡＣＫによるネットワーク帯域の消費も無視できない。たとえばＥｔｈｅｒｎｅｔ（登録商標）を利用して１Ｇｂｐｓのデータ送信速度を得るためには、５０Ｍｂｐｓもの確認応答パケットの帯域が必要である。すなわちデータの送信帯域が確認応答の帯域によって影響を受ける、という課題もある。
【０００９】
ウィンドウサイズの制限：ＴＣＰの転送速度を向上する手法として、ウィンドウサイズを操作する方法がよく利用されるが、ネットワークの帯域は、端末の環境や接続先によって、数ｋｂｐｓ〜数百Ｍｂｐｓまで大きく変化するため、あらゆる場合に通用する最適なウィンドウサイズは一意には決められない。たとえば、遅延の大きな高速リンクに最適化されたウィンドウサイズを低遅延の低速リンクで使用すると、パケット損のために極端に転送速度が劣化する場合がある。また、ＴＣＰではウィンドウサイズ内のパケットに対する送信速度調節機構がなくバースト的にトラフィックが送信されるため、受信側での取りこぼしや、ネットワークの不安定さを招く場合がある。
【００１０】
本発明はこのような課題を解決するためのものであり、上位のアプリケーションに対してＴＣＰと同様の高い信頼性と高速なデータ転送サービスを、非常に小さなオーバーヘッドで実現する方法および装置を提供することを目的としている。
【００１１】
【課題を解決するための手段】
本発明にかかるパケット転送方法は、以下の各項目を達成することによって、前記目的を達成する。
１．アプリケーションソフトウェアとして実装
２．確認応答帯域の削減
３．送信端末からの送信時のシェーピングと速度の自動調節
【００１２】
上記各項目の実現手段の詳細は以下のとおりである。
１．アプリケーションソフトウェアとして実装
トランスポート層のプロトコルとしてＵＤＰを利用し、エラー訂正機能・再送制御機能・フロー制御機能等の信頼性を確保するために必要な機能を、アプリケーションソフトウェアのライブラリとして実装可能である。これにより、専用ハードウェアやデバイスドライバを必要としないため、低コストな実装が可能となる。また、ＴＣＰは通常オペレーティングシステムの内部で動作するため、ウィンドウサイズや再送頻度等のパラメータをアプリケーションから簡単に変更することが困難であったが、ライブラリとして実装することにより、これらのパラメータをアプリケーションから簡単に変更することが可能となる。これによって、従来技術の課題の１．を解決することができる。
【００１３】
２．確認応答帯域の削減
確認応答パケットの送出をデータパケットの受信とは独立に行うことができる。また、単一の確認応答パケットで複数のデータパケットに対する確認応答情報を送信することができる。これらにより確認応答帯域の送受信頻度帯域ともに大幅に削減することが可能となる。たとえば、以下で説明する実施例において、１０ミリ秒に１回確認応答をする場合に、ＴＣＰと比較して最大１０００分の１程度にまで確認応答パケットの帯域を削減することができる。また、これに伴ってＩ／０バスの競合も最小限に抑えることができるため、前記従来技術の課題の２．を解決することができる。
【００１４】
３．送信端末からの送信時のシェーピングと速度の自動調節
送信端末側ではデータパケットの送信時にシェービングを行うことができる。
これによってＴＣＰのウィンドウサイズによる速度調節機構で問題であった、バースト的なトラフィックの流出を防ぎ、同時に所望の帯域を即座に得ることができる。これによって、前記従来技術の課題の３．を解決することができる。
【００１５】
次に、確認応答の周期の独立性と送信速度制御機能との相乗効果について説明する。従来のＴＣＰのフロー制御方式においては、送信速度を適切な値に調節するために「ウインドウ」の概念が用いられている。ウインドウは、受信端末からの確認応答を受け取ることなく送信することができるデータ量を意味する。受信端末から確認応答を受信すると、その分ウインドウの位置がスライドして次のデータを送信することができるようになる。このウインドウを用いるシステムでは、ウインドウの幅を調節することにより送信帯域は間接的に制御される。また、データの送信のためには、常時古いデータについて確認応答する必要がある。
これに対して、本発明による送信帯域を直接制御する方式では、「送信速度が受信速度に応じて制御される」ため、言い換えると、「送信端末側のシェーピング手段により、送信帯域を制御している」ため、必ずしも常に確認応答を送受信する必要はない。たとえ送信帯域が超過したとしても、送信されなかったパケットを
後で再送することができる。このことから、結果的に「確認応答の周期を受信速度から独立」させることができ、その結果として受信側端末から送信側端末への確認応答の帯域を節約することができる効果が達成される。これに派生して、ＴＣＰにおいて問題となっているバースト的なトラフィックの送信やウインドウサイズのチューニングの必要性といった問題が解消し、しかも、Ｉ／Ｏバスにおける競合やスループットの低下が解消される効果が達成される。
【００１６】
【発明の実施の形態】
以下では、本発明の１つの実施形態を図により説明する。
図１は、従来のＴＣＰを利用したデータ転送における、送受信端末間のパケットの流れを示したものである。時間軸は垂直方向に上から下へ向かっている。図中左側の送信端末から同じく右側の受信端末へ向けてデータパケットＰ２１が送信され、これに対して受信端末から送信端末へ確認応答パケットＰ２２が返信される。ＴＣＰでは、パケットロスや順序逆転のない定常状態においては、図に示すように２つのデータパケットに対して１つの確認応答パケットが返信される。確認応答パケットの送信頻度はデータパケットの受信頻度に比例するため、高速通信時には、先に述べたような問題が発生する。
【００１７】
図２は、本発明に従うシステムにおける、送受信端末間のパケットの流れを時系列的に示したものである。時間軸は垂直方向に上から下へ向かっている。図の左側の送信端末から同じく右側の受信端末へ向けてデータパケットＰ３１が送信され、これに対して受信端末から送信端末へ確認応答パケットＰ３２が周期的に返信される。本発明に従うシステムでは、データパケットの受信頻度とは独立に、定期的に確認応答を返信する。
【００１８】
図３は、本発明によるデータ転送システムの一例の構成を示す線図である。送信側端末装置１と受信側端末装置２とが、パケット転送ネットワーク３を介して接続されている。これら端末装置、すなわちパケット送受信装置は、例えば種々の情報やデータを配信するサーバ、通信機能を有するパーソナルコンピュータ、携帯型情報端末、或いは携帯電話とすることができる。従って、例えば、コンテンツ配信サーバと携帯型端末装置又はパーソナルコンピュータとの間のデータやコンテンツの配信、携帯型端末装置間のデータの送受信、携帯型端末装置とパーソナルコンピュータとの間のデータの送受信に本発明を適用することができる。尚、図面上２つの端末装置だけを図示したが、複数の端末装置がパケット転送ネットワーク３に接続されているものとする。
【００１９】
データパケットはパケット転送ネットワーク３を介して送信側の端末装置１から受信側の端末装置２へ向けて転送され、これに対する確認応答パケットが受信側端末装置２から送信側端末装置１へ向けて転送される。送信側端末装置１においては、送信手段１０において送信するデータを選択し、選択したデータ基づいてデータパケットを作成し、パケット単位のシーケンス番号を付与する。次にシェーピング手段１１において送信速度を適切に調節し、パケット転送ネットワーク３へ送信される。一方、受信側端末装置２では、パケット受信手段（図示せず）を介して受信したデータパケットを蓄積手段（主記憶装置）１２において蓄積するとともに、確認応答手段１３で受信したパケットのシーケンス番号をチェックし、確認応答パケットを作成してパケット送信手段（図示せず）を介してパケット転送ネットワーク３に送信する。その際、確認応答パケットを送信するタイミングを測定するために計時手段１４を利用することができる。また、受信速度計測手段（図示せず）を設け、受信したデータパケットの受信速度を計測し、その計測結果を確認応答手段１３に供給する。そして、確認応答手段１３は、計測された受信速度情報を確認応答に含めることができる。さらに、図６に示す確認応答に含まれる各種のデータ又は情報を作成手段（図示せず）を有し、これらのデータ又は情報は確認応答パケットに含ませることができる。
【００２０】
送信された確認応答パケットはパケット転送ネットワーク３を介して送信側端末装置１へ転送される。送信側端末装置１で受信された確認応答パケットは、フロー制御手段１５および再送制御手段１６で使用される。フロー制御手段１５では、確認応答パケットの内容からパケット損率を計算し、データパケットの送信速度の調節にフィードバックを行う。再送制御手段１６では、確認応答パケットの内容から再送が必要なパケットを特定し、送信手段１０における送信内容に反映する。
【００２１】
尚、図３に示す実施例において、各端末装置は、送信側のデータ送信機能及び受信側のデータ受信機能の両方の機能を有する端末装置とすることができ、或いは送信側の機能又は受信側の機能だけを有する端末装置とすることもできる。
【００２２】
図４は、図３に示すデータ転送システムにおいて、特にフィードバック制御の動作を説明したものである。本システムは２つのフィードバックループを構成する。すなわち、送信内容フィードバックループＬＯｌと送信速度フィードバックループＬＯ２である。送信内容フィードバックＬＯｌは、確認応答に含まれる受信されなかったパケットのシーケンス番号に基づいて、パケットロスやエラーパケットを再送し、上位のアプリケーションに対してエラーのないデータを渡すためのものである。送信速度フィードバックＬＯ２は、確認応答に含まれる受信側端末装置の受信速度情報に基づいて、ネットワークの利用効率を高め、かつパケットの再送を減らすために最適な送信速度を得るためのものである。
【００２３】
送信内容フィードバックＬＯｌには、送信手段１０、シェーピング手段１１、パケット転送ネットワーク３、確認応答手段１３、再送制御手段１６が含まれる。送信手段１０は、シーケンス番号どおりのパケット送信のほかに、再送制御手段１６からの指示にもとづいて、すでに送信したパケットも再送信する。シェーピングはパケットの送信内容にかかわらずすべてのパケットに対して同一のシェーピングを行うことも可能であるが、再送パケットは初回のパケットとは異なるポリシーにもとづいてシェーピングを行ってもよい。シェーピングされたパケットは、パケット転送ネットワーク３において、遅延やロスなどの変化を受けた後、確認応答手段１３においてエラーやシーケンス番号内容がチェックされ、確認応答パケットが返送される。再送制御手段１６では、確認応答パケットの内容により再送が必要なパケットを決定し、送信手段１０に再送の指示を出す。
【００２４】
送信速度フィードバックＬＯ２には、シェーピング手段１１，パケット転送ネットワーク３、確認応答手段１３、フロー制御手段１５が含まれる。フロー制御手段１５は、確認応答に含まれる受信側端末装置の受信速度情報に基づいてデータパケットの送信速度を調整する機能を有する。シェーピング手段１１は、フロー制御手段１５からの指示にもとづいて、パケットの送信速度を調節する。パケット転送ネットワークＮＯｌが、ベストエフォート型のネットワークの場合、送信されたパケットは他のトラフィックと合流し、時々刻々変化する遅延やパケットの損失が発生する。パケット転送ネットワーク３を通過したパケットの内容は確認応答手段１３でチェックされ、先の送信内容フィードバックＬＯｌにおいて利用されたものと同一のパケットを使ってフロー制御手段１５へフィードバックされる。フロー制御手段１５では、パケットのロス率や再送回数又は受信側でのパケット受信速度などから、最適な送信速度を決定し、シェーピング手段１１対して指示を与える。すなわち、ロス率や再送回数が高い場合や、確認応答パケットが受信されない場合には、シェーピング速度を低く設定し、逆にロス率や再送回数が低い場合には、シェーピング速度を高く設定する。以上の制御により、信頼性の高いデータ転送を最適な速度で実現できる。
【００２５】
フロー制御手段１５における送信速度の制御方法の具体例について説明する。確認応答送信手段１３から得た受信速度Ｂと目標とするパケットロス率Ｃとを用いて、新しい送信速度Ａを次のように計算することができる。
Ａ＝Ｂ／（１−Ｂ）
例えば、確認応答により送られてきた受信速度が９０Ｍｂｐｓで、目標とするパケットロス率が１０％（＝０．１）である場合、上記式に基づき、新しい送信速度を１００Ｍｂｐｓに設定することができる。
【００２６】
図５は、図１に示す本発明のデータ転送システムにおいて、送信端末から受信端末へ転送されるデータパケットのフォーマットの一例を示す。本パケットは４つのフィールドを含んでいる。すなわち、ＩＰヘッダ２１、ＵＤＰヘッダ２２、パケットのシーケンス番号２３、及びペイロード２４を含む。ＩＰヘッダ２１はＩＰネットワークを介して、送信端末と受信端末との間でパケットを転送するために利用される。ＵＤＰヘッダ２２は端末内で複数のアプリケーションからのパケットを区別するために利用される。さらにＵＤＰヘッダ２２はチェックサムフィールドを持ち、伝送途中でのパケットの誤りを検査することができる。パケットのシーケンス番号２３はネットワーク内でのパケットの順序逆転や損失、重複を検出するために利用される。ペイロードには送信データ全体のうちの一部が格納される。
【００２７】
図６は、図１に示す本発明のパケット転送制御システムにおいて、受信端末から送信端末へ転送される確認応答パケットのフォーマットの一例を示す。本パケットは受信レートの通知と転送途中でエラーや損失にあったパケットに対する再送要求を行うためのものである。パケットは６つのフィールドを含んでいる。すなわち、ＩＰヘッダ３１、ＵＤＰヘッダ３２、受信したシーケンス番号の最大値３３、受信速度３４、確認応答数３５、受信されなかったシーケンス番号の列３６を含む。ＩＰヘッダ３１及びＵＤＰヘッダ３２は、データパケットの場合と同じ目的で使用される。受信したシーケンス番号の最大値３３は、確認応答パケットを送信する時点で受信されているパケットのシーケンス番号の最大値である。受信速度３４は、前回の確認応答パケット送信後に受信されたデータパケットの受信速度である。確認応答数３５は、この後に続く未受信パケットのシーケンス番号の列３６に含まれる要素の数である。受信されなかったパケットのシーケンス番号の列３６は、受信したシーケンス番号の最大値３３よりもシーケンス番号が小さいパケットのうち、まだ受信されていないパケットのシーケンス番号の列である。
【００２８】
送信端末側では、確認応答パケットに含まれる受信速度３４とフロー制御手段１５の設定値とを比較することによって、パケットのロス率を計算することができる。また、受信したシーケンス番号の最大値３３と受信されなかったシーケンス番号の列３６とから、受信端末によってどのパケットが受信され、どのパケットが受信されていないかを、完全に知ることができる。
【００２９】
次に、受信側端末装置から送信側端末装置へ送信される確認応答の周期について説明する。確認応答の周期の設定方法については、周期を固定する方法と、ネットワークの状況に応じて動的に制御する方法がある。確認応答の周期を固定する場合、前述したように、例えば１０ミリ秒間隔で確認応答を送信することで、１Ｇｂｐｓの速度でデータを訂正する場合には、ＴＣＰと比較して確認応答の帯域を１，０００分の１程度まで、削減することができる。一方、確認応答の周期をネットワークの状況に応じて、すなわちネットワークの利用可能帯域に基づいて動的に制御する場合、ネットワークの利用可能帯域が時々刻々変化する状況の中で、変化が激しいときには確認応答の送信頻度を高く設定し、変化が穏やかなときには、確認応答の送信頻度を低く設定することによりネットワークの状況にすばやく適応しつつ、周期を固定した場合に比較して、さらに帯域を節約することができる。尚、ネットワークの利用可能帯域情報として、受信側端末装置におけるデータパケットの受信速度やパケット損率を用いることができる。従って、データパケットの受信速度情報を用いて確認応答の送信周期をダイナミックに制御することにより、帯域を一層節約することができる。
【００３０】
確認応答の周期を動的に制御する具体的な制御手順としては、例えば次のような計算を行うことができる。初めに、ネットワークの利用可能帯域Ｘの変動を、平均利用可能帯域からの分散Ｚとして、次式にて計算する。
Ｚ＝σ（Ｘ１，　Ｘ２，　Ｘ３………Ｘｎ）
ここで、Ｘ１，　Ｘ２，　Ｘ３………Ｘｎは、帯域の分散の計算に利用したい直前のｎ回の測定データを用いることができる。この分散Ｚよって、引数が大きいときには値が小さくなり、引数が小さいときには値が小さくなる関数ｆ（Ｚ）を用いて、新しい確認応答間隔Ｙ＝ｆ（Ｚ）を計算することができる。従って、受信側端末装置に、受信速度検出手段から得られた受信速度情報を用いて上述した処理を実行する確認応答周期制御手段を設けることにより、確認応答の送信周期をダイナミックに制御することができる。
【００３１】
図７は、確認応答手段１３で用いるテーブルの例を示す。確認応答範囲表ＴＯｌは、「未受信シーケンス番号最小値」、「既受信シーケンス番号最大値」、「前回確認応答時のバッファ位置」を含む。これらはそれぞれ、受信されていないシーケンス番号の中でもっとも小さな値、現在までに受信したパケットのシーケンス番号の中でもっとも大きな値、そして前回確認応答をした時の受信バッファＢＯｌの最後尾へのポインタである。受信管理表ＴＯ２は、２つの列から構成され、各列は「シーケンス番号」と「受信したパケットを保存したバッファ上の位置（ポインタ）」を保持する。受信バッファＢＯｌは、「アドレス」で表される場所に受信した「パケットの内容」が保持される。
【００３２】
データパケットが受信されると、パケットのシーケンス番号が検査されると共に同時に、受信バッファＢＯｌの先頭から順にパケットの内容が保存される。また、受信バッファＢＯｌへのポインタが、受信管理表ＴＯ２の該当するシーケンス番号の行に記録される。未受信のパケットは、受信管理表ＴＯ２ではポインタが空欄であることによって表されている。受信したデータバケットのシーケンス番号は、確認応答範囲表ＴＯｌとも比較される。受信パケットのシーケンス番号を既受信シーケンス番号最大値と比較し、受信パケットのシーケンス番号のほうが大きければ、その値で既受信シーケンス番号最大値を上書きする。また、受信パケットのシーケンス番号を未受信シーケンス番号最小値と比較し、一致する場合は、受信管理表ＴＯ２を検索して、まだ受信されていないもっとも小さなシーケンス番号で未受信シーケンス番号最小値を上書きする。
【００３３】
確認応答パケットを送信する際には、未受信シーケンス番号最小値から既受信シーケンス番号最大値の範囲で、受信管理表ＴＯ２からポインタ欄が空欄のものをピックアップすることで、図６に示される確認応答パケットの「受信されなかったパケットのシーケンス番号の列」３６と「確認応答数」３５とを作成することができる。また、図６中の「受信したシーケンス番号の最大値」３３は、図７における既受信シーケンス番号最大値をそのまま使うことができる。
【００３４】
図８は、図７で説明した確認応答手段実装のためのテーブルの例から生成された確認応答パケットの例である。確認応答パケットを送信する時点で、受信しているシーケンス番号の最大値は６、受信されていないシーケンス番号の数は２番と５番の２つである。
【００３５】
図９〜図１１は本発明によるデータ転送システムをコンテンツ配信システムに適用した種々の例を示す。図９に示すコンテンツ配信システムにおいて、パケット転送ネットワーク３に映像コンテンツサーバ４０及び携帯端末４１ａ〜４１ｎを接続し、映像コンテンツサーバ４０からパケット転送ネットワーク３を介して携帯端末４１にコンテンツ配信を行う。本例では、映像コンテンツサーバ４０に蓄積されている大容量のコンテンツを携帯電話等の携帯端末４１へ高速で転送することができる。一般的に、携帯端末では、バッテリーの持続時間を延ばし、軽量化を図るためにダウンロードにかかる処理をできるだけ簡略化できることが求められる。この場合、本発明によれば、携帯端末のプロセッサに要求される性能を小さくすることができ、携帯端末の小型軽量化に資することができる。
【００３６】
図１０は、パケット転送ネットワーク３に映像コンテンツサーバ４０及びパーソナルコンピュータ（ＰＣ）４２ａ〜４２ｎを接続し、映像コンテンツサーバ４０に蓄積されている大容量のコンテンツをクライアントＰＣへ高速に転送するコンテンツ配信システムを示す。本例では、サーバやＰＣの送受信処理が効率的になるため、サーバでは従来よりも一層多くのクライアントＰＣに対して映像コンテンツを配信することができる。また、クライアントＰＣにおいても、従来よりも低コストな装置で同等の処理速度を得ることができる。
【００３７】
図１１はコンテンツサーバ間においてコンテンツを配信するコンテンツ配信システムを示す。パケット転送ネットワーク３を介して第１の大容量コンテンツサーバと第１のグループの端末装置４３ａ〜４３ｎを接続すると共に、同様にネットワーク３を介して第２の大容量コンテンツサーバ４０ｂと第２のグループの端末装置４４ａ〜４４ｎとを接続する。そして、第１のコンテンツサーバ４０ａと第２のコンテンツサーバ４０ｂとの間においてネットワーク３を介してコンテンツの配信を行う。本例において、コンテンツサーバ４０ａ及び４０ｂは共に図３に示す送信側端末装置１及び受信側端末装置２の両方の機能を具える。従って、コンテンツサーバ４０ａと４０ｂとの間において最新のコンテンツを配信するために本発明によるデータ転送方法を適用することができる。映像コンテンツサーバでは、大容量のコンテンツの同期を取ったり、バックアップをとる作業を高速に行う必要があるが、従来のコンテンツ配信システムではこれらの処理を行うためにサーバに対して非常に高い性能が要求されていた。一方、本発明によれば、サーバに要求される性能を軽減することができ、或いは同一の性能のサーバを用いた場合より多くのコンテンツを短時間で送受信することが可能になる。
【００３８】
図１２は、本発明によるデータ転送システムの変形例を示す線図である。本例は、図３に示すデータ転送システムの変形例であり、図３で用いた部材と同一の構成要素には同一符号を付して説明する。図３に示す実施例では、フロー制御を送信側端末装置において実行したが、本例では、フロー制御を受信側端末装置において行う。受信側端末装置１において、データパケットの受信に応じてパケット受信速度やパケット損率を検出し、検出した受信速度情報を用いフロー制御手段１５において送信側端末装置におけるデータパケットの送信速度情報を作成する。すなわち、フロー制御手段１５では、必要に応じて受信データの帯域や送信帯域、パケットロス率等から、送信側端末装置が用いるべき最適な送信帯域を計算し、送信端末装置に通知する。尚、受信帯域の計算には時計手段１４を用いることができる。例えば、時計手段により一定時間Ｔの間に受信したデータ量Ｄを計算し、Ｄ／Ｔにより受信帯域を計算することができる。また、送信帯域の計算精度を向上させるため、受信側端末装置から送信側端末装置へ宛てた送信帯域の指示に、それらの指示の１つ１つを識別するための指示識別子を一緒に送信し、かつ送信側端末装置から送信されるデータパケットに、前記指示識別子を埋め込むことにより、「どの時点送信速度の指示に基づいているか」を受信端末装置が知ることができる。従って、過去のある時点での送信帯域の指示に基づく確認応答パケットのみ取り出して、個別に受信帯域を測定することができる。或いは、送信側端末装置から送信されるデータパケットに、「現在の送信速度」に関する情報を埋め込むことにより、受信側端末装置では、受信したデータパケットを見るだけで、当該データパケットが送信された時点での帯域を正確に知ることができる。これを受信帯域と比較することにより、パケットロス率を正確に計算することができる。
【００３９】
作成した送信速度情報は確認応答送信手段１３に供給し、確認応答に含ませ、他の情報と共に送信側端末装置１に送信する。この場合、受信側端末装置から送信側端末装置に送信される確認応答に、「新しい送信帯域」を指示するフィールドを設け、当該フィールドにフロー制御手段で計算された送信速度情報を含めることができる。確認応答は送信側端末装置で受信され、送信速度情報がシェーピング手段１１に供給され、シェーピング手段１１は、送られてきた確認応答の「新しい送信帯域」フィールドに記された帯域に基づいてデータパケットの送信速度を設定する。このように、受信側端末装置においてフロー制御を行うことにより、送信側端末装置の負荷を軽減することができる。
【図面の簡単な説明】
【図１】従来のＴＣＰによるデータ転送の時系列を示す図である。
本発明に従うデータ転送システムの構成例
【図２】本発明によるデータ転送の時系列の一例を示す図である。
【図３】本発明によるデータ転送システムの一例を示す線図である。
【図４】本発明のパケット処理におけるフィードバック処理を示す図である。
【図５】データパケットの一例を示す図である。
【図６】確認応答パケットの一例を示す図である。
【図７】本発明による確認応答ステップ実装のためのテーブルの一例を示す図である。
【図８】確認応答パケットの一例を示す図である。
【図９】本発明によるコンテンツ配信システムの一例を示す線図である。
【図１０】本発明によるコンテンツ配信システムの別の実施例を示す線図である。
【図１１】本発明によるコンテンツ配信システムの別の実施例を示す線図である。
【図１２】本発明によるデータ転送システムの変形例を示す線図である。
【符号の説明】
１　送信側端末装置
２　受信側端末装置
３　パケット転送ネットワーク
１０　パケット送信手段
１１　シェーピング手段
１２　蓄積手段
１３　確認応答送信手段
１４　計時手段
１５　フロー制御手段
１６　再送制御手段
Ｐ２１　　データパケット
Ｐ２２　　確認応答パケット
Ｐ３１　　データパケット
Ｐ３２　　確認応答パケット
【図１】
2004080070.tif 000003
【図２】
2004080070.tif 000004
【図３】
2004080070.tif 000005
【図４】
2004080070.tif 000006
【図５】
2004080070.tif 000007
【図６】
2004080070.tif 000008
【図７】
2004080070.tif 000009
【図８】
2004080070.tif 000010
【図９】
2004080070.tif 000011
【図１０】
2004080070.tif 000012
【図１１】
2004080070.tif 000013
【図１２】
2004080070.tif 000014