[go: up one dir, main page]

JP2004080070A - Data transfer method, data transfer system, and content distribution system - Google Patents

Data transfer method, data transfer system, and content distribution system Download PDF

Info

Publication number
JP2004080070A
JP2004080070A JP2002233363A JP2002233363A JP2004080070A JP 2004080070 A JP2004080070 A JP 2004080070A JP 2002233363 A JP2002233363 A JP 2002233363A JP 2002233363 A JP2002233363 A JP 2002233363A JP 2004080070 A JP2004080070 A JP 2004080070A
Authority
JP
Japan
Prior art keywords
packet
data packet
acknowledgment
terminal device
data
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
JP2002233363A
Other languages
Japanese (ja)
Inventor
Norito Ienaga
家永 憲人
Morimichi Hirabashi
平橋 盛通
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002233363A priority Critical patent/JP2004080070A/en
Publication of JP2004080070A publication Critical patent/JP2004080070A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】上位のアプリケーションに対してTCPと同様な高い信頼性と高速データ転送サービスを極めて小さなオーバーヘッドで実現するデータ転送方法及びシステムを実現する。
【解決手段】送信側の端末装置(1)は、送信すべきデータパケットを作成し、パケット単位のシーケンス番号を付加してネットワークに送信するパケット送信手段(10)と、受信側の端末装置からの確認応答に基づいてデータパケットの送信速度を制御するフロー制御手段(15)と、フロー制御手段からの出力に応じてパケット送信速度を設定するシェーピング手段(11)とを具え、受信側の端末装置(3)は、受信したデータパケットを蓄積する主記憶装置(12)と、受信したデータパケットの確認応答を受信データパケットの受信速度から独立した一定の周期で送信側端末装置に返送する確認応答送信手段(13)とを具えることを特徴とする。
【選択図】    図3
A data transfer method and system for realizing high reliability and high-speed data transfer service similar to TCP with an extremely small overhead for an upper application.
A transmitting-side terminal device (1) creates a data packet to be transmitted, adds a packet-unit sequence number and transmits the packet to a network, and a receiving-side terminal device. A flow control means (15) for controlling the transmission rate of data packets based on the acknowledgment of the packet, and a shaping means (11) for setting the packet transmission rate in accordance with the output from the flow control means. The device (3) includes a main storage device (12) for storing received data packets, and a confirmation device that returns an acknowledgment of the received data packet to the transmitting terminal device at a constant period independent of the reception speed of the received data packet. Response transmitting means (13).
[Selection diagram] Fig. 3

Description

【0001】
【発明の属する技術分野】
本発明は、端末間で広帯域かつ信頼性のあるデータ転送を行うためのデータ転送方法及びシステム、並びにこのデータ転送方法を利用したコンテンツ配信システムに関するものである。
【0002】
【従来の技術】
近年、高速ネットワーク転送技術が安価に入手できるようになってきた。今後、一般家庭の端末においても1Gbpsのような超高速インターフェイスが急速に普及すると考えられる。また、ネットワークの高速化と歩調を合わせて、高速ネットワークを介して送受信されるコンテンツも従来のWebコンテンツに代わって、音声や動画等の大容量容コンテンツが急速に増加している。したがって、高速ネットワークの性能を最大限に引き出して、大容量のコンテンツを高速に端末間で交換できることが強く求められている。
【0003】
通常のコンテンツを配信する際のトランスポート層のプロトコルとして、現在のインターネットにおいてはTCPとUDPという2通りの方式が主に利用されている。TCPでは、揖失パケットの再送機能や順序逆転パケットの整列機能を有しており、上位のアプリケーションに対して、信頼性の高いストリーム型のサービスを提供する。一方、UDPは、損失パケットの再送機能や順序逆転パケットの整列機能は持たず、上位のアプリケーションに対して、信頼性の低いデータグラム型のサービスを提供する。これら2つのプロトコルは、利用目的に応じて最適な方式が利用されている。
【0004】
さて、ネットワークを介してやり取りされる音声や動画等の大容量コンテンツは、MPEG2等のさまざまな方式で圧縮(エンコード)されている。このような圧縮方式に共通していえることは、データの部分的な喪失や誤りが存在するとコンテンツの品質に大きな影響を与える、ということである。これはデータが時間軸方向や空間軸方向に庄縮されているため1箇所の誤りによって、これら時間軸方向や空間軸方向の他のデータに対しても影響を与えてしまうためである。インターネットは一般にベストエフォート型であり、データの到達性や遅延時間、到着順序に関する保証を行わない。したがってインターネットを介して前記の様なコンテンツの転送を行う場合には、データの損失、遅延、順序逆転に対する特別な配慮が必要となる。そのための方法として現在利用されている方式は、大きく2つの方向性をもつ。
【0005】
一つはダウンロード型と呼ばれるもので、エンコード方式には手を加えずに、信頼性の高いトランスポート層の機能を用いてデータを転送する方式である。データ転送途中に発生したデータのロスや誤りは、トランスポート層において回復されるため、アプリケーション層のエンコードやデコードの際に、エラー訂正等の特別な仕組みを必要としない。このような目的で、インターネットで一般に利用されているトランスポート層は、TCP(Transport Control Protocol)と呼ばれるプロトコルである(RFC793)。TCPを利用することによって、アプリケーション層は実装を単純化することができる反面、トランスポート層において複雑な処理を行う必要がある。コンテンツの転送においてダウンロード型を利用できるのは、映画などの蓄積可能なコンテンツである。
【0006】
一方、コンテンツを転送するもうひとつの方向性としてストリーム型と呼ばれるものがある。信頼性の低い(誤り訂正機能を持たない)トランスポート層を利用してデータを転送する代わりに、誤り訂正等の機能をアプリケーション層やプレゼンテーション層に実装する方式である。トランスポート層が単純な処理ですむ反面、アプリケーション層ではエンコードやデコードの際に、誤りの影響を最小限に抑えるために数多くの複雑な処理が要求される。このようなストリーム型のデータ転送に一般に利用されているトランスポート層のプロトコルはUDP(User Datagram Protocol)と呼ばれている(RFC768)。UDPはパケットの喪失や順序逆転に対する再送機能や再配列機能を持たず、上位層に対してベストエフォート型のパケット転送サービスを提供する。アプリケーションの実装が複雑になるが、前記のダウンロード型と異なり、データの損失や遅延に対してアプリケーションやコンテンツに特化した処理を、アプリケーション層で独自に行うことが可能となる。コンテンツの転送においてストリーム型を利用するのは、主として生中継のようにリアルタイム性が要求されるコンテンツや、マルチキャストのように非常に多数のクライアントに対する同報通信の場合などである。前者ではパケットの再送による遅延が問題となるために、再送制御機能のないUDPを利用している。後者では、クライアントの数が非常に多くなった場合に、クライアント単位で再送制御を行うとサーバーに負荷がかかるため再送制御機能のないUDPを利用している。いずれにしてもUDPを利用した通信では、コンテンツの品質よりもリアルタイム性や同時視聴可能数が重視されている。
【0007】
先に述べたように、音声や動画等のコンテンツはデータの誤りに対して品質の劣化が著しい。前記2つの方式の特徴から言えることは、蓄積可能なコンテンツをインターネット経由で転送する場合には、TCPのように誤り訂正機能を持つ方式を利用するほうが望ましい、ということである。特に近年のコンテンツの大容量化は、画像の解像度やフレーム数など品質の向上を目指した結果であり、今後ますます信頼性の高い広帯域転送方式が必要になると考えられる。
【0008】
【発明が解決しようとする課題】
しかしながら、以上に述べたようなTCPを利用する方式は、今後必要とされる高速転送においてもそのままで適用できるわけではない。ネットワークの帯域幅やプロセッサの処理能力が向上した際に課題となる点は、次のとおりである。
1. 細かなチューニングの課題:TCP等のトランスポート層のプロトコルは、通常OS(オペレーティングシステム)のカーネル領域に実装されるため、一般のアプリケーションプログラムからは、詳細な部分を制御できない。特にTCPのACK(確認応答)を返信する頻度や再送までのタイムアウトの長さなどは、動画再生等のアプリケーションに対して大きな影響を与えるが、これらをアプリケーションから直接利御するのは困難である。
2. ACKによるオーバーヘッド:TCPでは2つのデータパケットの受信に対して、1つのACK(確認応答)パケットが返信される。しかし、高速転送時には次のような問題を招く。通常の端末では、パケットを受信するたびにプロセッサに割り込みが発生するが、これによって2パケットに1回は送・受信処理が中断される。また、頻繁なACKパケットの送受信はI/0バスの競合による使用効率の低下を招く。さらにACKによるネットワーク帯域の消費も無視できない。たとえばEthernet(登録商標)を利用して1Gbpsのデータ送信速度を得るためには、50Mbpsもの確認応答パケットの帯域が必要である。すなわちデータの送信帯域が確認応答の帯域によって影響を受ける、という課題もある。
【0009】
ウィンドウサイズの制限:TCPの転送速度を向上する手法として、ウィンドウサイズを操作する方法がよく利用されるが、ネットワークの帯域は、端末の環境や接続先によって、数kbps〜数百Mbpsまで大きく変化するため、あらゆる場合に通用する最適なウィンドウサイズは一意には決められない。たとえば、遅延の大きな高速リンクに最適化されたウィンドウサイズを低遅延の低速リンクで使用すると、パケット損のために極端に転送速度が劣化する場合がある。また、TCPではウィンドウサイズ内のパケットに対する送信速度調節機構がなくバースト的にトラフィックが送信されるため、受信側での取りこぼしや、ネットワークの不安定さを招く場合がある。
【0010】
本発明はこのような課題を解決するためのものであり、上位のアプリケーションに対してTCPと同様の高い信頼性と高速なデータ転送サービスを、非常に小さなオーバーヘッドで実現する方法および装置を提供することを目的としている。
【0011】
【課題を解決するための手段】
本発明にかかるパケット転送方法は、以下の各項目を達成することによって、前記目的を達成する。
1.アプリケーションソフトウェアとして実装
2.確認応答帯域の削減
3.送信端末からの送信時のシェーピングと速度の自動調節
【0012】
上記各項目の実現手段の詳細は以下のとおりである。
1.アプリケーションソフトウェアとして実装
トランスポート層のプロトコルとしてUDPを利用し、エラー訂正機能・再送制御機能・フロー制御機能等の信頼性を確保するために必要な機能を、アプリケーションソフトウェアのライブラリとして実装可能である。これにより、専用ハードウェアやデバイスドライバを必要としないため、低コストな実装が可能となる。また、TCPは通常オペレーティングシステムの内部で動作するため、ウィンドウサイズや再送頻度等のパラメータをアプリケーションから簡単に変更することが困難であったが、ライブラリとして実装することにより、これらのパラメータをアプリケーションから簡単に変更することが可能となる。これによって、従来技術の課題の1.を解決することができる。
【0013】
2.確認応答帯域の削減
確認応答パケットの送出をデータパケットの受信とは独立に行うことができる。また、単一の確認応答パケットで複数のデータパケットに対する確認応答情報を送信することができる。これらにより確認応答帯域の送受信頻度帯域ともに大幅に削減することが可能となる。たとえば、以下で説明する実施例において、10ミリ秒に1回確認応答をする場合に、TCPと比較して最大1000分の1程度にまで確認応答パケットの帯域を削減することができる。また、これに伴ってI/0バスの競合も最小限に抑えることができるため、前記従来技術の課題の2.を解決することができる。
【0014】
3.送信端末からの送信時のシェーピングと速度の自動調節
送信端末側ではデータパケットの送信時にシェービングを行うことができる。
これによってTCPのウィンドウサイズによる速度調節機構で問題であった、バースト的なトラフィックの流出を防ぎ、同時に所望の帯域を即座に得ることができる。これによって、前記従来技術の課題の3.を解決することができる。
【0015】
次に、確認応答の周期の独立性と送信速度制御機能との相乗効果について説明する。従来のTCPのフロー制御方式においては、送信速度を適切な値に調節するために「ウインドウ」の概念が用いられている。ウインドウは、受信端末からの確認応答を受け取ることなく送信することができるデータ量を意味する。受信端末から確認応答を受信すると、その分ウインドウの位置がスライドして次のデータを送信することができるようになる。このウインドウを用いるシステムでは、ウインドウの幅を調節することにより送信帯域は間接的に制御される。また、データの送信のためには、常時古いデータについて確認応答する必要がある。
これに対して、本発明による送信帯域を直接制御する方式では、「送信速度が受信速度に応じて制御される」ため、言い換えると、「送信端末側のシェーピング手段により、送信帯域を制御している」ため、必ずしも常に確認応答を送受信する必要はない。たとえ送信帯域が超過したとしても、送信されなかったパケットを
後で再送することができる。このことから、結果的に「確認応答の周期を受信速度から独立」させることができ、その結果として受信側端末から送信側端末への確認応答の帯域を節約することができる効果が達成される。これに派生して、TCPにおいて問題となっているバースト的なトラフィックの送信やウインドウサイズのチューニングの必要性といった問題が解消し、しかも、I/Oバスにおける競合やスループットの低下が解消される効果が達成される。
【0016】
【発明の実施の形態】
以下では、本発明の1つの実施形態を図により説明する。
図1は、従来のTCPを利用したデータ転送における、送受信端末間のパケットの流れを示したものである。時間軸は垂直方向に上から下へ向かっている。図中左側の送信端末から同じく右側の受信端末へ向けてデータパケットP21が送信され、これに対して受信端末から送信端末へ確認応答パケットP22が返信される。TCPでは、パケットロスや順序逆転のない定常状態においては、図に示すように2つのデータパケットに対して1つの確認応答パケットが返信される。確認応答パケットの送信頻度はデータパケットの受信頻度に比例するため、高速通信時には、先に述べたような問題が発生する。
【0017】
図2は、本発明に従うシステムにおける、送受信端末間のパケットの流れを時系列的に示したものである。時間軸は垂直方向に上から下へ向かっている。図の左側の送信端末から同じく右側の受信端末へ向けてデータパケットP31が送信され、これに対して受信端末から送信端末へ確認応答パケットP32が周期的に返信される。本発明に従うシステムでは、データパケットの受信頻度とは独立に、定期的に確認応答を返信する。
【0018】
図3は、本発明によるデータ転送システムの一例の構成を示す線図である。送信側端末装置1と受信側端末装置2とが、パケット転送ネットワーク3を介して接続されている。これら端末装置、すなわちパケット送受信装置は、例えば種々の情報やデータを配信するサーバ、通信機能を有するパーソナルコンピュータ、携帯型情報端末、或いは携帯電話とすることができる。従って、例えば、コンテンツ配信サーバと携帯型端末装置又はパーソナルコンピュータとの間のデータやコンテンツの配信、携帯型端末装置間のデータの送受信、携帯型端末装置とパーソナルコンピュータとの間のデータの送受信に本発明を適用することができる。尚、図面上2つの端末装置だけを図示したが、複数の端末装置がパケット転送ネットワーク3に接続されているものとする。
【0019】
データパケットはパケット転送ネットワーク3を介して送信側の端末装置1から受信側の端末装置2へ向けて転送され、これに対する確認応答パケットが受信側端末装置2から送信側端末装置1へ向けて転送される。送信側端末装置1においては、送信手段10において送信するデータを選択し、選択したデータ基づいてデータパケットを作成し、パケット単位のシーケンス番号を付与する。次にシェーピング手段11において送信速度を適切に調節し、パケット転送ネットワーク3へ送信される。一方、受信側端末装置2では、パケット受信手段(図示せず)を介して受信したデータパケットを蓄積手段(主記憶装置)12において蓄積するとともに、確認応答手段13で受信したパケットのシーケンス番号をチェックし、確認応答パケットを作成してパケット送信手段(図示せず)を介してパケット転送ネットワーク3に送信する。その際、確認応答パケットを送信するタイミングを測定するために計時手段14を利用することができる。また、受信速度計測手段(図示せず)を設け、受信したデータパケットの受信速度を計測し、その計測結果を確認応答手段13に供給する。そして、確認応答手段13は、計測された受信速度情報を確認応答に含めることができる。さらに、図6に示す確認応答に含まれる各種のデータ又は情報を作成手段(図示せず)を有し、これらのデータ又は情報は確認応答パケットに含ませることができる。
【0020】
送信された確認応答パケットはパケット転送ネットワーク3を介して送信側端末装置1へ転送される。送信側端末装置1で受信された確認応答パケットは、フロー制御手段15および再送制御手段16で使用される。フロー制御手段15では、確認応答パケットの内容からパケット損率を計算し、データパケットの送信速度の調節にフィードバックを行う。再送制御手段16では、確認応答パケットの内容から再送が必要なパケットを特定し、送信手段10における送信内容に反映する。
【0021】
尚、図3に示す実施例において、各端末装置は、送信側のデータ送信機能及び受信側のデータ受信機能の両方の機能を有する端末装置とすることができ、或いは送信側の機能又は受信側の機能だけを有する端末装置とすることもできる。
【0022】
図4は、図3に示すデータ転送システムにおいて、特にフィードバック制御の動作を説明したものである。本システムは2つのフィードバックループを構成する。すなわち、送信内容フィードバックループLOlと送信速度フィードバックループLO2である。送信内容フィードバックLOlは、確認応答に含まれる受信されなかったパケットのシーケンス番号に基づいて、パケットロスやエラーパケットを再送し、上位のアプリケーションに対してエラーのないデータを渡すためのものである。送信速度フィードバックLO2は、確認応答に含まれる受信側端末装置の受信速度情報に基づいて、ネットワークの利用効率を高め、かつパケットの再送を減らすために最適な送信速度を得るためのものである。
【0023】
送信内容フィードバックLOlには、送信手段10、シェーピング手段11、パケット転送ネットワーク3、確認応答手段13、再送制御手段16が含まれる。送信手段10は、シーケンス番号どおりのパケット送信のほかに、再送制御手段16からの指示にもとづいて、すでに送信したパケットも再送信する。シェーピングはパケットの送信内容にかかわらずすべてのパケットに対して同一のシェーピングを行うことも可能であるが、再送パケットは初回のパケットとは異なるポリシーにもとづいてシェーピングを行ってもよい。シェーピングされたパケットは、パケット転送ネットワーク3において、遅延やロスなどの変化を受けた後、確認応答手段13においてエラーやシーケンス番号内容がチェックされ、確認応答パケットが返送される。再送制御手段16では、確認応答パケットの内容により再送が必要なパケットを決定し、送信手段10に再送の指示を出す。
【0024】
送信速度フィードバックLO2には、シェーピング手段11,パケット転送ネットワーク3、確認応答手段13、フロー制御手段15が含まれる。フロー制御手段15は、確認応答に含まれる受信側端末装置の受信速度情報に基づいてデータパケットの送信速度を調整する機能を有する。シェーピング手段11は、フロー制御手段15からの指示にもとづいて、パケットの送信速度を調節する。パケット転送ネットワークNOlが、ベストエフォート型のネットワークの場合、送信されたパケットは他のトラフィックと合流し、時々刻々変化する遅延やパケットの損失が発生する。パケット転送ネットワーク3を通過したパケットの内容は確認応答手段13でチェックされ、先の送信内容フィードバックLOlにおいて利用されたものと同一のパケットを使ってフロー制御手段15へフィードバックされる。フロー制御手段15では、パケットのロス率や再送回数又は受信側でのパケット受信速度などから、最適な送信速度を決定し、シェーピング手段11対して指示を与える。すなわち、ロス率や再送回数が高い場合や、確認応答パケットが受信されない場合には、シェーピング速度を低く設定し、逆にロス率や再送回数が低い場合には、シェーピング速度を高く設定する。以上の制御により、信頼性の高いデータ転送を最適な速度で実現できる。
【0025】
フロー制御手段15における送信速度の制御方法の具体例について説明する。確認応答送信手段13から得た受信速度Bと目標とするパケットロス率Cとを用いて、新しい送信速度Aを次のように計算することができる。
A=B/(1−B)
例えば、確認応答により送られてきた受信速度が90Mbpsで、目標とするパケットロス率が10%(=0.1)である場合、上記式に基づき、新しい送信速度を100Mbpsに設定することができる。
【0026】
図5は、図1に示す本発明のデータ転送システムにおいて、送信端末から受信端末へ転送されるデータパケットのフォーマットの一例を示す。本パケットは4つのフィールドを含んでいる。すなわち、IPヘッダ21、UDPヘッダ22、パケットのシーケンス番号23、及びペイロード24を含む。IPヘッダ21はIPネットワークを介して、送信端末と受信端末との間でパケットを転送するために利用される。UDPヘッダ22は端末内で複数のアプリケーションからのパケットを区別するために利用される。さらにUDPヘッダ22はチェックサムフィールドを持ち、伝送途中でのパケットの誤りを検査することができる。パケットのシーケンス番号23はネットワーク内でのパケットの順序逆転や損失、重複を検出するために利用される。ペイロードには送信データ全体のうちの一部が格納される。
【0027】
図6は、図1に示す本発明のパケット転送制御システムにおいて、受信端末から送信端末へ転送される確認応答パケットのフォーマットの一例を示す。本パケットは受信レートの通知と転送途中でエラーや損失にあったパケットに対する再送要求を行うためのものである。パケットは6つのフィールドを含んでいる。すなわち、IPヘッダ31、UDPヘッダ32、受信したシーケンス番号の最大値33、受信速度34、確認応答数35、受信されなかったシーケンス番号の列36を含む。IPヘッダ31及びUDPヘッダ32は、データパケットの場合と同じ目的で使用される。受信したシーケンス番号の最大値33は、確認応答パケットを送信する時点で受信されているパケットのシーケンス番号の最大値である。受信速度34は、前回の確認応答パケット送信後に受信されたデータパケットの受信速度である。確認応答数35は、この後に続く未受信パケットのシーケンス番号の列36に含まれる要素の数である。受信されなかったパケットのシーケンス番号の列36は、受信したシーケンス番号の最大値33よりもシーケンス番号が小さいパケットのうち、まだ受信されていないパケットのシーケンス番号の列である。
【0028】
送信端末側では、確認応答パケットに含まれる受信速度34とフロー制御手段15の設定値とを比較することによって、パケットのロス率を計算することができる。また、受信したシーケンス番号の最大値33と受信されなかったシーケンス番号の列36とから、受信端末によってどのパケットが受信され、どのパケットが受信されていないかを、完全に知ることができる。
【0029】
次に、受信側端末装置から送信側端末装置へ送信される確認応答の周期について説明する。確認応答の周期の設定方法については、周期を固定する方法と、ネットワークの状況に応じて動的に制御する方法がある。確認応答の周期を固定する場合、前述したように、例えば10ミリ秒間隔で確認応答を送信することで、1Gbpsの速度でデータを訂正する場合には、TCPと比較して確認応答の帯域を1,000分の1程度まで、削減することができる。一方、確認応答の周期をネットワークの状況に応じて、すなわちネットワークの利用可能帯域に基づいて動的に制御する場合、ネットワークの利用可能帯域が時々刻々変化する状況の中で、変化が激しいときには確認応答の送信頻度を高く設定し、変化が穏やかなときには、確認応答の送信頻度を低く設定することによりネットワークの状況にすばやく適応しつつ、周期を固定した場合に比較して、さらに帯域を節約することができる。尚、ネットワークの利用可能帯域情報として、受信側端末装置におけるデータパケットの受信速度やパケット損率を用いることができる。従って、データパケットの受信速度情報を用いて確認応答の送信周期をダイナミックに制御することにより、帯域を一層節約することができる。
【0030】
確認応答の周期を動的に制御する具体的な制御手順としては、例えば次のような計算を行うことができる。初めに、ネットワークの利用可能帯域Xの変動を、平均利用可能帯域からの分散Zとして、次式にて計算する。
Z=σ(X1, X2, X3………Xn)
ここで、X1, X2, X3………Xnは、帯域の分散の計算に利用したい直前のn回の測定データを用いることができる。この分散Zよって、引数が大きいときには値が小さくなり、引数が小さいときには値が小さくなる関数f(Z)を用いて、新しい確認応答間隔Y=f(Z)を計算することができる。従って、受信側端末装置に、受信速度検出手段から得られた受信速度情報を用いて上述した処理を実行する確認応答周期制御手段を設けることにより、確認応答の送信周期をダイナミックに制御することができる。
【0031】
図7は、確認応答手段13で用いるテーブルの例を示す。確認応答範囲表TOlは、「未受信シーケンス番号最小値」、「既受信シーケンス番号最大値」、「前回確認応答時のバッファ位置」を含む。これらはそれぞれ、受信されていないシーケンス番号の中でもっとも小さな値、現在までに受信したパケットのシーケンス番号の中でもっとも大きな値、そして前回確認応答をした時の受信バッファBOlの最後尾へのポインタである。受信管理表TO2は、2つの列から構成され、各列は「シーケンス番号」と「受信したパケットを保存したバッファ上の位置(ポインタ)」を保持する。受信バッファBOlは、「アドレス」で表される場所に受信した「パケットの内容」が保持される。
【0032】
データパケットが受信されると、パケットのシーケンス番号が検査されると共に同時に、受信バッファBOlの先頭から順にパケットの内容が保存される。また、受信バッファBOlへのポインタが、受信管理表TO2の該当するシーケンス番号の行に記録される。未受信のパケットは、受信管理表TO2ではポインタが空欄であることによって表されている。受信したデータバケットのシーケンス番号は、確認応答範囲表TOlとも比較される。受信パケットのシーケンス番号を既受信シーケンス番号最大値と比較し、受信パケットのシーケンス番号のほうが大きければ、その値で既受信シーケンス番号最大値を上書きする。また、受信パケットのシーケンス番号を未受信シーケンス番号最小値と比較し、一致する場合は、受信管理表TO2を検索して、まだ受信されていないもっとも小さなシーケンス番号で未受信シーケンス番号最小値を上書きする。
【0033】
確認応答パケットを送信する際には、未受信シーケンス番号最小値から既受信シーケンス番号最大値の範囲で、受信管理表TO2からポインタ欄が空欄のものをピックアップすることで、図6に示される確認応答パケットの「受信されなかったパケットのシーケンス番号の列」36と「確認応答数」35とを作成することができる。また、図6中の「受信したシーケンス番号の最大値」33は、図7における既受信シーケンス番号最大値をそのまま使うことができる。
【0034】
図8は、図7で説明した確認応答手段実装のためのテーブルの例から生成された確認応答パケットの例である。確認応答パケットを送信する時点で、受信しているシーケンス番号の最大値は6、受信されていないシーケンス番号の数は2番と5番の2つである。
【0035】
図9〜図11は本発明によるデータ転送システムをコンテンツ配信システムに適用した種々の例を示す。図9に示すコンテンツ配信システムにおいて、パケット転送ネットワーク3に映像コンテンツサーバ40及び携帯端末41a〜41nを接続し、映像コンテンツサーバ40からパケット転送ネットワーク3を介して携帯端末41にコンテンツ配信を行う。本例では、映像コンテンツサーバ40に蓄積されている大容量のコンテンツを携帯電話等の携帯端末41へ高速で転送することができる。一般的に、携帯端末では、バッテリーの持続時間を延ばし、軽量化を図るためにダウンロードにかかる処理をできるだけ簡略化できることが求められる。この場合、本発明によれば、携帯端末のプロセッサに要求される性能を小さくすることができ、携帯端末の小型軽量化に資することができる。
【0036】
図10は、パケット転送ネットワーク3に映像コンテンツサーバ40及びパーソナルコンピュータ(PC)42a〜42nを接続し、映像コンテンツサーバ40に蓄積されている大容量のコンテンツをクライアントPCへ高速に転送するコンテンツ配信システムを示す。本例では、サーバやPCの送受信処理が効率的になるため、サーバでは従来よりも一層多くのクライアントPCに対して映像コンテンツを配信することができる。また、クライアントPCにおいても、従来よりも低コストな装置で同等の処理速度を得ることができる。
【0037】
図11はコンテンツサーバ間においてコンテンツを配信するコンテンツ配信システムを示す。パケット転送ネットワーク3を介して第1の大容量コンテンツサーバと第1のグループの端末装置43a〜43nを接続すると共に、同様にネットワーク3を介して第2の大容量コンテンツサーバ40bと第2のグループの端末装置44a〜44nとを接続する。そして、第1のコンテンツサーバ40aと第2のコンテンツサーバ40bとの間においてネットワーク3を介してコンテンツの配信を行う。本例において、コンテンツサーバ40a及び40bは共に図3に示す送信側端末装置1及び受信側端末装置2の両方の機能を具える。従って、コンテンツサーバ40aと40bとの間において最新のコンテンツを配信するために本発明によるデータ転送方法を適用することができる。映像コンテンツサーバでは、大容量のコンテンツの同期を取ったり、バックアップをとる作業を高速に行う必要があるが、従来のコンテンツ配信システムではこれらの処理を行うためにサーバに対して非常に高い性能が要求されていた。一方、本発明によれば、サーバに要求される性能を軽減することができ、或いは同一の性能のサーバを用いた場合より多くのコンテンツを短時間で送受信することが可能になる。
【0038】
図12は、本発明によるデータ転送システムの変形例を示す線図である。本例は、図3に示すデータ転送システムの変形例であり、図3で用いた部材と同一の構成要素には同一符号を付して説明する。図3に示す実施例では、フロー制御を送信側端末装置において実行したが、本例では、フロー制御を受信側端末装置において行う。受信側端末装置1において、データパケットの受信に応じてパケット受信速度やパケット損率を検出し、検出した受信速度情報を用いフロー制御手段15において送信側端末装置におけるデータパケットの送信速度情報を作成する。すなわち、フロー制御手段15では、必要に応じて受信データの帯域や送信帯域、パケットロス率等から、送信側端末装置が用いるべき最適な送信帯域を計算し、送信端末装置に通知する。尚、受信帯域の計算には時計手段14を用いることができる。例えば、時計手段により一定時間Tの間に受信したデータ量Dを計算し、D/Tにより受信帯域を計算することができる。また、送信帯域の計算精度を向上させるため、受信側端末装置から送信側端末装置へ宛てた送信帯域の指示に、それらの指示の1つ1つを識別するための指示識別子を一緒に送信し、かつ送信側端末装置から送信されるデータパケットに、前記指示識別子を埋め込むことにより、「どの時点送信速度の指示に基づいているか」を受信端末装置が知ることができる。従って、過去のある時点での送信帯域の指示に基づく確認応答パケットのみ取り出して、個別に受信帯域を測定することができる。或いは、送信側端末装置から送信されるデータパケットに、「現在の送信速度」に関する情報を埋め込むことにより、受信側端末装置では、受信したデータパケットを見るだけで、当該データパケットが送信された時点での帯域を正確に知ることができる。これを受信帯域と比較することにより、パケットロス率を正確に計算することができる。
【0039】
作成した送信速度情報は確認応答送信手段13に供給し、確認応答に含ませ、他の情報と共に送信側端末装置1に送信する。この場合、受信側端末装置から送信側端末装置に送信される確認応答に、「新しい送信帯域」を指示するフィールドを設け、当該フィールドにフロー制御手段で計算された送信速度情報を含めることができる。確認応答は送信側端末装置で受信され、送信速度情報がシェーピング手段11に供給され、シェーピング手段11は、送られてきた確認応答の「新しい送信帯域」フィールドに記された帯域に基づいてデータパケットの送信速度を設定する。このように、受信側端末装置においてフロー制御を行うことにより、送信側端末装置の負荷を軽減することができる。
【図面の簡単な説明】
【図1】従来のTCPによるデータ転送の時系列を示す図である。
本発明に従うデータ転送システムの構成例
【図2】本発明によるデータ転送の時系列の一例を示す図である。
【図3】本発明によるデータ転送システムの一例を示す線図である。
【図4】本発明のパケット処理におけるフィードバック処理を示す図である。
【図5】データパケットの一例を示す図である。
【図6】確認応答パケットの一例を示す図である。
【図7】本発明による確認応答ステップ実装のためのテーブルの一例を示す図である。
【図8】確認応答パケットの一例を示す図である。
【図9】本発明によるコンテンツ配信システムの一例を示す線図である。
【図10】本発明によるコンテンツ配信システムの別の実施例を示す線図である。
【図11】本発明によるコンテンツ配信システムの別の実施例を示す線図である。
【図12】本発明によるデータ転送システムの変形例を示す線図である。
【符号の説明】
1 送信側端末装置
2 受信側端末装置
3 パケット転送ネットワーク
10 パケット送信手段
11 シェーピング手段
12 蓄積手段
13 確認応答送信手段
14 計時手段
15 フロー制御手段
16 再送制御手段
P21  データパケット
P22  確認応答パケット
P31  データパケット
P32  確認応答パケット
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data transfer method and system for performing wideband and reliable data transfer between terminals, and a content distribution system using the data transfer method.
[0002]
[Prior art]
In recent years, high-speed network transfer technology has become available at low cost. In the future, it is considered that ultra-high-speed interfaces such as 1 Gbps will rapidly spread to terminals of ordinary households. In addition, the content transmitted / received via the high-speed network in tandem with the speeding-up of the network has been rapidly increasing in the volume of large-capacity content such as audio and moving images instead of the conventional Web content. Therefore, there is a strong demand for a device capable of exchanging large-capacity contents at high speed between terminals by maximizing the performance of a high-speed network.
[0003]
As the protocol of the transport layer when distributing ordinary contents, in the present Internet, two types of systems, TCP and UDP, are mainly used. TCP has a function of retransmitting lost packets and a function of arranging packets whose order is reversed, and provides highly reliable stream-type services to higher-level applications. On the other hand, UDP does not have the function of retransmitting lost packets or the function of arranging packets with reversed order, and provides low-reliability datagram-type services to higher-level applications. For these two protocols, an optimal method is used according to the purpose of use.
[0004]
Now, large-capacity contents such as audio and moving images exchanged via a network are compressed (encoded) by various methods such as MPEG2. What can be said in common with such compression methods is that the presence of a partial loss or error in data greatly affects the quality of content. This is because, since the data is constrained in the time axis direction or the space axis direction, one error affects other data in the time axis direction and the space axis direction. The Internet is generally a best-effort type, and does not guarantee data reachability, delay time, or arrival order. Therefore, when transferring the contents as described above via the Internet, special consideration must be given to data loss, delay, and order reversal. The method currently used as a method for that has two main directions.
[0005]
One is a download type, in which data is transferred using a highly reliable transport layer function without modifying the encoding method. Since data loss and errors occurring during data transfer are recovered in the transport layer, no special mechanism such as error correction is required for encoding and decoding in the application layer. For such a purpose, a transport layer generally used in the Internet is a protocol called TCP (Transport Control Protocol) (RFC793). By using TCP, the application layer can simplify the implementation, but it is necessary to perform complicated processing in the transport layer. Downloadable content can be used for content transfer such as movies.
[0006]
On the other hand, there is a so-called stream type as another direction for transferring contents. This is a method in which functions such as error correction are implemented in an application layer or a presentation layer instead of transferring data using a transport layer having low reliability (having no error correction function). While the transport layer requires only simple processing, the application layer requires many complicated processing in encoding and decoding to minimize the effects of errors. A transport layer protocol generally used for such stream type data transfer is called UDP (User Datagram Protocol) (RFC768). UDP does not have a retransmission function or a reordering function for packet loss or order reversal, and provides a best-effort packet transfer service to an upper layer. Although the implementation of the application becomes complicated, unlike the above-mentioned download type, it is possible to independently perform processing specific to the application or content with respect to data loss or delay in the application layer. The use of the stream type in the transfer of contents is mainly used for contents requiring real-time properties such as live broadcasting, and for broadcasting to a very large number of clients such as multicasting. In the former case, since a delay due to retransmission of a packet poses a problem, UDP without a retransmission control function is used. In the latter case, when retransmission control is performed on a client basis when the number of clients becomes very large, a load is imposed on a server, so that UDP without a retransmission control function is used. In any case, in the communication using UDP, the real-time property and the number of simultaneously viewable contents are more important than the quality of the content.
[0007]
As described above, the quality of audio, video, and other contents is significantly degraded with respect to data errors. What can be said from the characteristics of the above two methods is that, when transferring storable contents via the Internet, it is preferable to use a method having an error correction function such as TCP. In particular, the recent increase in the capacity of contents is a result of improving quality such as image resolution and the number of frames, and it is considered that a more reliable wideband transfer method will be required in the future.
[0008]
[Problems to be solved by the invention]
However, the above-described method using TCP cannot be applied to high-speed transfer that will be required in the future. Issues that arise when network bandwidth and processor processing power increase are as follows.
1. Problem of fine tuning: Since a protocol of a transport layer such as TCP is usually implemented in a kernel area of an OS (operating system), a detailed portion cannot be controlled from a general application program. In particular, the frequency of returning an ACK (acknowledgement) of TCP and the length of timeout before retransmission greatly affect applications such as moving image reproduction, but it is difficult to directly use these from applications. .
2. ACK overhead: In TCP, one ACK (acknowledgement) packet is returned in response to reception of two data packets. However, the following problems occur at the time of high-speed transfer. In a normal terminal, an interrupt is generated in the processor every time a packet is received. This causes the transmission / reception process to be interrupted once for every two packets. Also, frequent transmission and reception of ACK packets causes a decrease in usage efficiency due to contention of the I / O bus. Furthermore, the consumption of network bandwidth by ACK cannot be ignored. For example, in order to obtain a data transmission rate of 1 Gbps using Ethernet (registered trademark), a bandwidth of 50 Mbps acknowledgment packet is required. That is, there is a problem that the data transmission band is affected by the acknowledgment band.
[0009]
Window size limitation: As a technique for improving the transfer rate of TCP, a method of operating the window size is often used, but the network bandwidth varies greatly from several kbps to several hundred Mbps depending on the terminal environment and connection destination. Therefore, the optimum window size that can be used in all cases cannot be uniquely determined. For example, if a window size optimized for a high-speed link with a large delay is used on a low-speed link with a low delay, the transfer speed may be extremely deteriorated due to packet loss. Further, in TCP, since there is no transmission speed adjustment mechanism for packets within a window size, and traffic is transmitted in a burst manner, there is a case that the receiving side may miss and the network may become unstable.
[0010]
The present invention is intended to solve such a problem, and provides a method and apparatus for realizing high-reliability and high-speed data transfer service similar to TCP with a very small overhead for a higher-level application. It is aimed at.
[0011]
[Means for Solving the Problems]
The packet transfer method according to the present invention achieves the above object by achieving the following items.
1. Implemented as application software
2. Reduction of acknowledgment bandwidth
3. Automatic shaping and speed adjustment when transmitting from the transmitting terminal
[0012]
Details of the means for realizing the above items are as follows.
1. Implemented as application software
Using UDP as a transport layer protocol, functions necessary for ensuring reliability such as an error correction function, a retransmission control function, and a flow control function can be implemented as a library of application software. This eliminates the need for dedicated hardware and device drivers, and enables low-cost implementation. Also, since TCP normally operates inside the operating system, it was difficult to easily change parameters such as the window size and retransmission frequency from the application. However, by implementing this parameter as a library, these parameters can be changed from the application. It can be easily changed. As a result, the problems of the prior art 1. Can be solved.
[0013]
2. Reduction of acknowledgment bandwidth
The transmission of the acknowledgment packet can be performed independently of the reception of the data packet. Also, acknowledgment information for a plurality of data packets can be transmitted with a single acknowledgment packet. As a result, both the transmission and reception frequency band of the acknowledgment band can be significantly reduced. For example, in the embodiment described below, when an acknowledgment is sent once every 10 milliseconds, the bandwidth of the acknowledgment packet can be reduced to a maximum of about 1/1000 compared to TCP. In addition, since the contention of the I / O bus can be suppressed to a minimum, the problems of the prior art described in 2. Can be solved.
[0014]
3. Automatic shaping and speed adjustment when transmitting from the transmitting terminal
The transmitting terminal can perform shaving when transmitting a data packet.
As a result, it is possible to prevent bursty traffic outflow, which has been a problem in the speed adjustment mechanism based on the TCP window size, and to immediately obtain a desired band. Accordingly, the above-mentioned problem of the prior art, 3. Can be solved.
[0015]
Next, the synergistic effect of the independence of the acknowledgment cycle and the transmission rate control function will be described. In the conventional TCP flow control method, the concept of "window" is used to adjust the transmission speed to an appropriate value. The window means the amount of data that can be transmitted without receiving an acknowledgment from the receiving terminal. When the acknowledgment is received from the receiving terminal, the position of the window is slid accordingly, and the next data can be transmitted. In a system using this window, the transmission bandwidth is indirectly controlled by adjusting the width of the window. In addition, in order to transmit data, it is necessary to always acknowledge the old data.
On the other hand, in the method of directly controlling the transmission band according to the present invention, since “the transmission speed is controlled according to the reception speed”, in other words, “the transmission band is controlled by the shaping means on the transmission terminal side. Therefore, it is not always necessary to send and receive an acknowledgment. Even if the transmission bandwidth is exceeded, packets that were not transmitted
You can resend it later. From this, as a result, "the period of the acknowledgment can be made independent of the reception speed", and as a result, the effect of saving the band of the acknowledgment from the receiving terminal to the transmitting terminal can be achieved. . Derived from this, the problems such as the need to transmit bursty traffic and the need to tune the window size, which are problems in TCP, are solved, and moreover, competition on the I / O bus and reduction in throughput are eliminated. Is achieved.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, one embodiment of the present invention will be described with reference to the drawings.
FIG. 1 shows a flow of a packet between transmitting and receiving terminals in a conventional data transfer using TCP. The time axis runs vertically from top to bottom. A data packet P21 is transmitted from the transmitting terminal on the left side to the receiving terminal on the right side in the figure, and an acknowledgment packet P22 is returned from the receiving terminal to the transmitting terminal. In the TCP, in a steady state without packet loss or order reversal, one acknowledgment packet is returned for two data packets as shown in the figure. Since the transmission frequency of the acknowledgment packet is proportional to the data packet reception frequency, the above-described problem occurs during high-speed communication.
[0017]
FIG. 2 shows the flow of packets between the transmitting and receiving terminals in the system according to the present invention in chronological order. The time axis runs vertically from top to bottom. A data packet P31 is transmitted from the transmitting terminal on the left side of the drawing to the receiving terminal on the right side, and an acknowledgment packet P32 is periodically returned from the receiving terminal to the transmitting terminal. In the system according to the present invention, an acknowledgment is periodically returned independently of the reception frequency of the data packet.
[0018]
FIG. 3 is a diagram showing a configuration of an example of the data transfer system according to the present invention. The transmitting terminal device 1 and the receiving terminal device 2 are connected via a packet transfer network 3. These terminal devices, that is, the packet transmission / reception device, can be, for example, a server that distributes various information and data, a personal computer having a communication function, a portable information terminal, or a mobile phone. Therefore, for example, for distribution of data and content between the content distribution server and the portable terminal device or personal computer, transmission and reception of data between portable terminal devices, and transmission and reception of data between the portable terminal device and personal computer. The present invention can be applied. Although only two terminal devices are shown in the drawing, it is assumed that a plurality of terminal devices are connected to the packet transfer network 3.
[0019]
The data packet is transferred from the terminal device 1 on the transmitting side to the terminal device 2 on the receiving side via the packet transfer network 3, and an acknowledgment packet corresponding thereto is transferred from the terminal device 2 on the receiving side to the terminal device 1 on the transmitting side. Is done. In the transmitting terminal device 1, data to be transmitted by the transmitting means 10 is selected, a data packet is created based on the selected data, and a sequence number is given in packet units. Next, the transmission speed is appropriately adjusted by the shaping means 11 and transmitted to the packet transfer network 3. On the other hand, in the receiving side terminal device 2, the data packet received via the packet receiving means (not shown) is stored in the storing means (main storage device) 12, and the sequence number of the packet received by the acknowledgment means 13 is stored. The packet is checked, an acknowledgment packet is created, and transmitted to the packet transfer network 3 via a packet transmitting means (not shown). At that time, the timer 14 can be used to measure the timing of transmitting the acknowledgment packet. Further, a receiving speed measuring unit (not shown) is provided to measure the receiving speed of the received data packet, and the measurement result is supplied to the confirmation response unit 13. Then, the confirmation response means 13 can include the measured reception speed information in the confirmation response. In addition, it has a creation unit (not shown) for creating various data or information included in the acknowledgment shown in FIG. 6, and these data or information can be included in the acknowledgment packet.
[0020]
The transmitted acknowledgment packet is transferred to the transmitting terminal 1 via the packet transfer network 3. The acknowledgment packet received by the transmitting terminal device 1 is used by the flow control means 15 and the retransmission control means 16. The flow control means 15 calculates the packet loss rate from the contents of the acknowledgment packet, and provides feedback for adjusting the data packet transmission speed. The retransmission control unit 16 specifies a packet that requires retransmission from the contents of the acknowledgment packet, and reflects the packet on the transmission content of the transmission unit 10.
[0021]
In the embodiment shown in FIG. 3, each terminal device can be a terminal device having both functions of a data transmission function on the transmission side and a data reception function on the reception side, or a function on the transmission side or a reception side. A terminal device having only the above function may be used.
[0022]
FIG. 4 illustrates the operation of the feedback control in the data transfer system shown in FIG. The system forms two feedback loops. That is, a transmission content feedback loop LOl and a transmission speed feedback loop LO2. The transmission content feedback LOl is for retransmitting a packet loss or an error packet based on the sequence number of the unreceived packet included in the acknowledgment, and passing error-free data to a higher-level application. The transmission speed feedback LO2 is for obtaining an optimum transmission speed for improving network utilization efficiency and reducing packet retransmission based on the reception speed information of the receiving terminal device included in the acknowledgment.
[0023]
The transmission content feedback LOl includes a transmission unit 10, a shaping unit 11, a packet transfer network 3, an acknowledgment unit 13, and a retransmission control unit 16. The transmitting unit 10 retransmits the already transmitted packet based on the instruction from the retransmission control unit 16 in addition to the packet transmission according to the sequence number. Although the same shaping can be applied to all packets regardless of the packet transmission contents, the retransmission packet may be shaped based on a policy different from that of the first packet. After the shaped packet undergoes a change such as delay or loss in the packet transfer network 3, the acknowledgment means 13 checks the error or the sequence number content and returns the acknowledgment packet. The retransmission control means 16 determines a packet requiring retransmission based on the contents of the acknowledgment packet, and issues an instruction for retransmission to the transmission means 10.
[0024]
The transmission speed feedback LO2 includes a shaping unit 11, a packet transfer network 3, an acknowledgment unit 13, and a flow control unit 15. The flow control means 15 has a function of adjusting the data packet transmission speed based on the reception speed information of the receiving terminal device included in the acknowledgment. The shaping unit 11 adjusts the packet transmission speed based on an instruction from the flow control unit 15. If the packet transfer network NOl is a best-effort network, the transmitted packet merges with other traffic, causing a delay that changes every moment and loss of the packet. The contents of the packet that has passed through the packet transfer network 3 are checked by the acknowledgment means 13 and fed back to the flow control means 15 using the same packet used in the previous transmission content feedback LOL. The flow control unit 15 determines an optimum transmission speed from the packet loss rate, the number of retransmissions, the packet reception speed on the receiving side, and the like, and gives an instruction to the shaping unit 11. That is, if the loss rate or the number of retransmissions is high or the acknowledgment packet is not received, the shaping speed is set low, and if the loss rate or the number of retransmissions is low, the shaping speed is set high. With the above control, highly reliable data transfer can be realized at an optimum speed.
[0025]
A specific example of the method of controlling the transmission speed in the flow control means 15 will be described. Using the reception rate B obtained from the acknowledgment transmission means 13 and the target packet loss rate C, a new transmission rate A can be calculated as follows.
A = B / (1-B)
For example, if the reception speed transmitted by the acknowledgment is 90 Mbps and the target packet loss rate is 10% (= 0.1), the new transmission speed can be set to 100 Mbps based on the above equation. .
[0026]
FIG. 5 shows an example of a format of a data packet transferred from the transmitting terminal to the receiving terminal in the data transfer system of the present invention shown in FIG. This packet contains four fields. That is, it includes an IP header 21, a UDP header 22, a packet sequence number 23, and a payload 24. The IP header 21 is used to transfer a packet between a transmitting terminal and a receiving terminal via an IP network. The UDP header 22 is used in the terminal to distinguish packets from a plurality of applications. Further, the UDP header 22 has a checksum field, and can check a packet for errors during transmission. The packet sequence number 23 is used for detecting the order inversion, loss, and duplication of the packet in the network. A part of the entire transmission data is stored in the payload.
[0027]
FIG. 6 shows an example of the format of the acknowledgment packet transferred from the receiving terminal to the transmitting terminal in the packet transfer control system of the present invention shown in FIG. This packet is for notifying the reception rate and requesting a retransmission of a packet having an error or loss during transfer. The packet contains six fields. That is, it includes an IP header 31, a UDP header 32, a maximum value 33 of a received sequence number, a reception speed 34, an acknowledgment number 35, and a column 36 of a sequence number not received. The IP header 31 and the UDP header 32 are used for the same purpose as in the case of a data packet. The maximum value 33 of the received sequence number is the maximum value of the sequence number of the packet received at the time of transmitting the acknowledgment packet. The reception speed 34 is the reception speed of the data packet received after the previous transmission of the acknowledgment packet. The number of acknowledgments 35 is the number of elements included in the sequence number column 36 of the subsequent unreceived packet. The sequence number column 36 of the packet that has not been received is a sequence number column of the packet that has not been received yet among the packets whose sequence numbers are smaller than the maximum value 33 of the received sequence number.
[0028]
The transmitting terminal can calculate the packet loss rate by comparing the reception speed 34 included in the acknowledgment packet with the set value of the flow control means 15. Further, from the maximum value 33 of the received sequence numbers and the column 36 of the sequence numbers not received, it is possible to completely know which packets have been received and which packets have not been received by the receiving terminal.
[0029]
Next, the period of the acknowledgment transmitted from the receiving terminal device to the transmitting terminal device will be described. As a method of setting the cycle of the acknowledgment, there are a method of fixing the cycle and a method of dynamically controlling the cycle according to the network condition. When the period of the acknowledgment is fixed, as described above, the acknowledgment is transmitted at an interval of, for example, 10 milliseconds, and when the data is corrected at a speed of 1 Gbps, the bandwidth of the acknowledgment is compared with TCP. It can be reduced to about 1/1000. On the other hand, when the cycle of the acknowledgment is dynamically controlled according to the network condition, that is, based on the available bandwidth of the network, when the available bandwidth of the network changes every moment, the By setting the frequency of response transmission high and when the change is moderate, setting the frequency of acknowledgment transmission low will quickly adapt to network conditions and save more bandwidth compared to a fixed period. be able to. As the available bandwidth information of the network, a data packet reception speed or a packet loss rate in the receiving terminal device can be used. Therefore, by dynamically controlling the transmission cycle of the acknowledgment using the reception speed information of the data packet, the bandwidth can be further reduced.
[0030]
As a specific control procedure for dynamically controlling the cycle of the acknowledgment, for example, the following calculation can be performed. First, the variation of the available bandwidth X of the network is calculated as the variance Z from the average available bandwidth by the following equation.
Z = σ (X1, X2, X3... Xn)
Here, X1, X2, X3,..., Xn can use the measurement data of n times immediately before, which is to be used for the calculation of the dispersion of the band. With this variance Z, a new acknowledgment interval Y = f (Z) can be calculated using a function f (Z) in which the value decreases when the argument is large and decreases when the argument is small. Therefore, by providing the acknowledgment cycle control means for performing the above-described processing using the reception speed information obtained from the reception speed detection means in the receiving terminal device, it is possible to dynamically control the transmission cycle of the acknowledgment. it can.
[0031]
FIG. 7 shows an example of a table used in the confirmation response unit 13. The acknowledgment range table TOl includes “minimum value of unreceived sequence number”, “maximum value of already received sequence number”, and “buffer position at previous acknowledgment”. These are the smallest value among the sequence numbers that have not been received, the largest value among the sequence numbers of the packets received so far, and a pointer to the end of the reception buffer BOl when the acknowledgment was last performed. It is. The reception management table TO2 is composed of two columns, and each column holds a “sequence number” and a “position (pointer) on the buffer storing the received packet”. The reception buffer BOl holds the received “contents of the packet” at the location represented by the “address”.
[0032]
When a data packet is received, the sequence number of the packet is checked, and at the same time, the contents of the packet are stored in order from the beginning of the reception buffer BOl. Further, the pointer to the reception buffer BO1 is recorded in the row of the corresponding sequence number in the reception management table TO2. An unreceived packet is indicated by a blank pointer in the reception management table TO2. The sequence number of the received data bucket is also compared with the acknowledgment range table TOl. The sequence number of the received packet is compared with the maximum value of the already received sequence number. If the sequence number of the received packet is larger, the maximum value of the already received sequence number is overwritten with that value. Further, the sequence number of the received packet is compared with the minimum value of the unreceived sequence number, and if they match, the reception management table TO2 is searched, and the minimum value of the unreceived sequence number is overwritten with the smallest sequence number that has not been received yet. I do.
[0033]
When transmitting the acknowledgment response packet, a pointer whose pointer column is blank is picked up from the reception management table TO2 in the range from the minimum value of the unreceived sequence number to the maximum value of the already received sequence number, so that the acknowledgment shown in FIG. A "sequence number sequence of unreceived packet" 36 and "acknowledgment number" 35 of the response packet can be created. The “maximum value of the received sequence number” 33 in FIG. 6 can use the maximum value of the already received sequence number in FIG.
[0034]
FIG. 8 is an example of an acknowledgment packet generated from the example of the table for implementing the acknowledgment unit described in FIG. At the time when the acknowledgment packet is transmitted, the maximum value of the sequence numbers received is 6, and the number of the sequence numbers not received is 2 or 5.
[0035]
9 to 11 show various examples in which the data transfer system according to the present invention is applied to a content distribution system. In the content distribution system shown in FIG. 9, the video content server 40 and the mobile terminals 41 a to 41 n are connected to the packet transfer network 3, and the content is distributed from the video content server 40 to the mobile terminal 41 via the packet transfer network 3. In this example, a large amount of content stored in the video content server 40 can be transferred to a mobile terminal 41 such as a mobile phone at a high speed. In general, portable terminals are required to be able to simplify the download process as much as possible in order to extend the battery life and reduce the weight. In this case, according to the present invention, the performance required for the processor of the mobile terminal can be reduced, and the size and weight of the mobile terminal can be reduced.
[0036]
FIG. 10 shows a content distribution system in which a video content server 40 and personal computers (PCs) 42 a to 42 n are connected to a packet transfer network 3 and a large amount of content stored in the video content server 40 is transferred to a client PC at high speed. Is shown. In this example, the transmission and reception processing of the server and the PC becomes more efficient, so that the server can distribute the video content to more client PCs than before. Also, in the client PC, the same processing speed can be obtained with a lower cost device than before.
[0037]
FIG. 11 shows a content distribution system that distributes content between content servers. The first large-capacity content server and the first group of terminal devices 43a to 43n are connected via the packet transfer network 3, and the second large-capacity content server 40b and the second group are similarly connected via the network 3 Terminal devices 44a to 44n. Then, the content is distributed between the first content server 40a and the second content server 40b via the network 3. In this example, both the content servers 40a and 40b have the functions of both the transmitting terminal device 1 and the receiving terminal device 2 shown in FIG. Therefore, the data transfer method according to the present invention can be applied to distribute the latest content between the content servers 40a and 40b. Video content servers need to synchronize large volumes of content or perform backup operations at high speed, but conventional content distribution systems require very high performance to perform these processes. Had been requested. On the other hand, according to the present invention, performance required for a server can be reduced, or more contents can be transmitted and received in a shorter time than when a server having the same performance is used.
[0038]
FIG. 12 is a diagram showing a modification of the data transfer system according to the present invention. This example is a modification of the data transfer system shown in FIG. 3, and the same components as the members used in FIG. In the embodiment shown in FIG. 3, the flow control is executed in the transmitting terminal device, but in the present embodiment, the flow control is performed in the receiving terminal device. The receiving terminal device 1 detects the packet receiving speed and the packet loss rate in response to the reception of the data packet, and creates the transmission speed information of the data packet in the transmitting terminal device in the flow control means 15 using the detected receiving speed information. I do. That is, the flow control unit 15 calculates the optimum transmission band to be used by the transmitting terminal device from the received data band, the transmitting band, the packet loss rate, and the like as necessary, and notifies the transmitting terminal device. The clock means 14 can be used for calculating the reception band. For example, it is possible to calculate the data amount D received during a predetermined time T by the clock means, and calculate the reception band by D / T. Also, in order to improve the calculation accuracy of the transmission band, an instruction identifier for identifying each of the instructions is transmitted together with the instruction of the transmission band addressed from the receiving terminal to the transmitting terminal. By embedding the instruction identifier in a data packet transmitted from the transmitting terminal apparatus, the receiving terminal apparatus can know "at which transmission rate the instruction is based". Therefore, only the acknowledgment packet based on the transmission bandwidth instruction at a certain point in the past can be extracted and the reception bandwidth can be measured individually. Alternatively, by embedding information relating to the “current transmission speed” in a data packet transmitted from the transmitting terminal device, the receiving terminal device can simply look at the received data packet and determine when the data packet was transmitted. You can know the exact band at. By comparing this with the reception band, the packet loss rate can be accurately calculated.
[0039]
The created transmission speed information is supplied to the acknowledgment transmitting means 13 and included in the acknowledgment, and transmitted to the transmitting terminal 1 together with other information. In this case, a field indicating "new transmission band" is provided in the acknowledgment transmitted from the receiving terminal apparatus to the transmitting terminal apparatus, and the transmission rate information calculated by the flow control means can be included in the field. . The acknowledgment is received by the transmitting terminal device, and the transmission speed information is supplied to the shaping means 11. The shaping means 11 transmits the data packet based on the band described in the "new transmission band" field of the transmitted acknowledgment. Set the transmission speed of As described above, by performing flow control in the receiving terminal device, the load on the transmitting terminal device can be reduced.
[Brief description of the drawings]
FIG. 1 is a diagram showing a time series of data transfer by the conventional TCP.
Configuration example of data transfer system according to the present invention
FIG. 2 is a diagram showing an example of a time sequence of data transfer according to the present invention.
FIG. 3 is a diagram showing an example of a data transfer system according to the present invention.
FIG. 4 is a diagram showing feedback processing in packet processing of the present invention.
FIG. 5 is a diagram illustrating an example of a data packet.
FIG. 6 is a diagram illustrating an example of an acknowledgment packet.
FIG. 7 is a diagram showing an example of a table for implementing an acknowledgment step according to the present invention.
FIG. 8 is a diagram illustrating an example of an acknowledgment packet.
FIG. 9 is a diagram showing an example of a content distribution system according to the present invention.
FIG. 10 is a diagram showing another embodiment of the content distribution system according to the present invention.
FIG. 11 is a diagram showing another embodiment of the content distribution system according to the present invention.
FIG. 12 is a diagram showing a modification of the data transfer system according to the present invention.
[Explanation of symbols]
1 transmitting terminal
2 Receiving terminal device
3 packet transfer network
10 Packet transmission means
11 Shaping means
12 accumulation means
13 Acknowledgment transmission means
14 Timekeeping means
15 Flow control means
16 retransmission control means
P21 data packet
P22 Acknowledgment packet
P31 data packet
P32 acknowledgment packet

Claims (26)

パケット転送ネットワークを介して複数の端末装置が接続され、送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側の端末装置は、データパケットの受信に応じて送信側の端末装置に確認応答を送信するデータ転送方法において、
送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信するパケット送信ステップと、
データパケットの受信に応じて、確認応答を、データパケットの受信速度から独立した周期で送信側の端末装置に送信するステップと、
受信したデータパケットを主記憶装置に蓄積する蓄積ステップと、
少なくともデータパケットの受信速度情報を用いてデータパケットの送信速度を制御するフロー制御ステップと、
前記フロー制御ステップにおいて得られた送信速度情報に基づいてパケット送信速度を設定するシェーピングステップとを具えることを特徴とするデータ転送方法。
A plurality of terminal devices are connected via the packet transfer network, a data packet is transmitted from the transmitting terminal device to the receiving terminal device via the packet transfer network, and the receiving terminal device receives the data packet. A data transfer method for transmitting an acknowledgment to the transmitting terminal device in response to the
A packet transmitting step of creating a data packet from data to be transmitted, transmitting the data packet to the network with a packet unit sequence number added thereto,
Transmitting, in response to the reception of the data packet, an acknowledgment to the terminal device on the transmission side at a period independent of the reception speed of the data packet;
An accumulation step of accumulating the received data packet in a main storage device;
A flow control step of controlling a data packet transmission rate using at least the data packet reception rate information,
A data transmission method comprising: setting a packet transmission rate based on the transmission rate information obtained in the flow control step.
請求項1に記載のデータ転送方法において、前記受信側端末装置から送信側端末装置へ送信される確認応答が、データパケットの受信速度に関する受信速度情報を含み、送信側端末装置は、フロー制御ステップにおいて確認応答に含まれる受信速度情報と設定されている送信速度とに基づいてデータパケットの送信速度を制御することを特徴とするデータ転送方法。2. The data transfer method according to claim 1, wherein the acknowledgment transmitted from the receiving terminal device to the transmitting terminal device includes receiving speed information on a receiving speed of a data packet, and the transmitting terminal device performs a flow control step. 3. The data transfer method according to claim 1, wherein the transmission rate of the data packet is controlled based on the reception rate information included in the acknowledgment and the set transmission rate. 請求項1に記載のデータ転送方法において、前記受信側端末装置がデータパケットの受信速度を検出する手段を有し、検出されたデータパケットの受信速度情報を用いてデータパケットの送信速度情報を作成し、当該送信速度情報を確認応答に含ませて送信側端末装置に送信し、前記シェーピングステップにおいて、送信されてきた送信速度情報を用いて前記パケット送信速度を設定することを特徴とするデータ転送方法。2. The data transfer method according to claim 1, wherein the receiving terminal device has a unit for detecting a reception speed of the data packet, and creates transmission speed information of the data packet using the reception speed information of the detected data packet. Transmitting the transmission rate information to the transmitting side terminal device by including the transmission rate information in an acknowledgment, and setting the packet transmission rate using the transmitted transmission rate information in the shaping step. Method. 請求項1又は2に記載のデータ転送方法において、前記受信側端末装置から送信側端末装置へ送信される確認応答が、受信端末装置で受信されなかったデータパケットに関する情報を含み、前記送信側端末装置は、受信した確認応答に基づいて受信側端末装置で受信されなかったデータパケットを特定し、当該データパケットを再送することを特徴とするデータ転送方法。3. The data transfer method according to claim 1, wherein the acknowledgment transmitted from the receiving terminal device to the transmitting terminal device includes information on a data packet not received by the receiving terminal device, A data transfer method comprising: identifying a data packet not received by a receiving terminal device based on a received acknowledgment and retransmitting the data packet. 請求項1から4までのいずれか1項に記載のデータ転送方法において、さらに、ネットワークの利用可能帯域を検出するステップを具え、検出されたネットワークの利用可能帯域に基づいて確認応答の送信周期を動的に制御することを特徴とするデータ転送方法。The data transfer method according to any one of claims 1 to 4, further comprising a step of detecting an available bandwidth of the network, wherein the transmission cycle of the acknowledgment is determined based on the detected available bandwidth of the network. A data transfer method characterized by dynamic control. パケット転送ネットワークを介して複数の端末装置が接続され、送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側の端末装置は、データパケットの受信に応じて送信側の端末装置に確認応答を送信するデータ転送システムに用いられるプログラムであって、コンピュータに、
送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信する手順と、
データパケットの受信に応じて、確認応答を、データパケットの受信速度から独立した周期で送信側の端末装置に送信する手順と、
受信したデータパケットを主記憶装置に蓄積する手順と、
少なくともデータパケットの受信速度情報を用いてデータパケットの送信速度を制御するフロー制御手順と、
パケット転送速度を、前記フロー制御された送信速度に設定するシェーピング手順とを実行させるためのプログラム。
A plurality of terminal devices are connected via the packet transfer network, a data packet is transmitted from the transmitting terminal device to the receiving terminal device via the packet transfer network, and the receiving terminal device receives the data packet. A program used in a data transfer system that transmits an acknowledgment to the terminal device on the transmitting side in response to the computer,
Creating a data packet from the data to be transmitted, transmitting the data packet to the network with a packet unit sequence number added,
A step of transmitting an acknowledgment to the terminal device on the transmitting side in a cycle independent of the reception speed of the data packet in response to the reception of the data packet;
Storing a received data packet in a main storage device;
A flow control procedure for controlling the transmission speed of the data packet using at least the reception speed information of the data packet,
And a shaping procedure for setting a packet transfer rate to the flow-controlled transmission rate.
請求項6に記載のプログラムにおいて、前記受信側端末装置から送信側端末装置へ送信される確認応答が、データパケットの受信速度に関する受信速度情報を含み、前記フロー制御手順において確認応答に含まれる受信速度情報と設定されている送信速度とに基づいてデータパケットの送信速度を制御するプログラム。7. The program according to claim 6, wherein the acknowledgment transmitted from the receiving terminal to the transmitting terminal includes reception speed information on a reception speed of a data packet, and the acknowledgment included in the acknowledgment in the flow control procedure. A program for controlling a data packet transmission speed based on the speed information and a set transmission speed. 請求項6又は7に記載のプログラムにおいて、さらに、受信した確認応答に基づいて受信側端末装置で受信されなかったデータパケットを特定し、当該データパケットを再送する再送制御手順を含むプログラム。8. The program according to claim 6, further comprising a retransmission control procedure for identifying a data packet not received by the receiving terminal device based on the received acknowledgment and retransmitting the data packet. 請求項6から8までのいずれか1項に記載のプログラムが記録された記録媒体。A recording medium on which the program according to claim 6 is recorded. パケット転送ネットワークを介して複数の端末装置が接続され、送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側の端末装置は、データパケットの受信に応じて送信側の端末装置に確認応答を送信するデータ転送システムにおいて、
送信側の端末装置は、送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信するパケット送信手段と、受信側の端末装置から送られてきた確認応答に基づいてデータパケットの送信速度を制御するフロー制御手段と、前記フロー制御手段からの出力に応じてパケット送信速度を設定するシェーピング手段とを具え、
受信側の端末装置は、受信したデータパケットを蓄積する主記憶装置と、データパケットの受信に応じて確認応答を送信側端末装置に送信する確認応答送信手段とを具え、
前記受信側端末装置の確認応答送信手段は、データパケットを受信した際、確認応答を、受信データパケットの受信速度から独立した周期で送信側端末装置に返送することを特徴とするデータ転送システム。
A plurality of terminal devices are connected via the packet transfer network, a data packet is transmitted from the transmitting terminal device to the receiving terminal device via the packet transfer network, and the receiving terminal device receives the data packet. In a data transfer system that transmits an acknowledgment to the transmitting terminal device in response to the
The transmitting-side terminal device generates a data packet from the data to be transmitted, adds a sequence number to the packet in packet units, and transmits the data packet to the network, and a packet transmitted from the receiving-side terminal device. Flow control means for controlling the transmission rate of data packets based on the acknowledgment, and shaping means for setting the packet transmission rate according to the output from the flow control means,
The receiving-side terminal device includes a main storage device that stores the received data packet, and an acknowledgment transmitting unit that transmits an acknowledgment to the transmitting-side terminal device in response to receiving the data packet,
A data transfer system, wherein the acknowledgment transmitting means of the receiving terminal returns an acknowledgment to the transmitting terminal at a period independent of the reception speed of the received data packet when receiving the data packet.
パケット転送ネットワークを介して複数の端末装置が接続され、送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側の端末装置は、データパケットの受信に応じて送信側の端末装置に確認応答を送信するデータ転送システムにおいて、
送信側の端末装置は、送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信するパケット送信手段と、パケット送信速度を設定するシェーピング手段とを具え、
受信側の端末装置は、受信したデータパケットを蓄積する主記憶装置と、データパケットの受信に応じて確認応答を送信側端末装置に送信する確認応答送信手段と、データパケットの受信速度情報を用いて送信側端末装置におけるパケット送信速度を制御するフロー制御手段とを具え、
前記受信側端末装置の確認応答送信手段は、データパケットを受信した際、確認応答を、受信データパケットの受信速度から独立した周期で送信側端末装置に返送することを特徴とするデータ転送システム。
A plurality of terminal devices are connected via the packet transfer network, a data packet is transmitted from the transmitting terminal device to the receiving terminal device via the packet transfer network, and the receiving terminal device receives the data packet. In a data transfer system that transmits an acknowledgment to the transmitting terminal device in response to the
The transmitting-side terminal device generates a data packet from data to be transmitted, adds a sequence number to the data packet, and transmits the data packet to the network, and a shaping unit that sets a packet transmission speed. With
The receiving-side terminal device uses a main storage device that stores the received data packet, an acknowledgment transmitting unit that transmits an acknowledgment to the transmitting-side terminal device in response to the reception of the data packet, and the reception speed information of the data packet. Flow control means for controlling the packet transmission rate in the transmitting terminal device,
A data transfer system, wherein the acknowledgment transmitting means of the receiving terminal returns an acknowledgment to the transmitting terminal at a period independent of the reception speed of the received data packet when receiving the data packet.
請求項10又は11に記載のデータ転送システムにおいて、前記確認応答送信手段は、受信した複数のデータパケットに対する応答を単一のパケットに収めて送信側端末装置に返送することを特徴とするデータ転送システム。12. The data transfer system according to claim 10, wherein said acknowledgment transmitting means returns a response to the plurality of received data packets in a single packet and returns the response to the transmitting terminal device. system. 請求項10又は11に記載のデータ転送システムにおいて、前記受信帯域装置がデータパケットの受信速度を検出する手段を有し、前記受信側端末装置から送信側端末装置へ送信される確認応答が、受信側端末装置におけるパケット受信速度に関する受信速度情報を含み、前記送信側端末装置のフロー制御手段は、受信した確認応答に含まれる受信速度情報に基づいてパケット送信速度を調整することを特徴とするデータ転送システム。12. The data transfer system according to claim 10, wherein the reception band device has a unit for detecting a reception speed of a data packet, and the acknowledgment transmitted from the reception terminal device to the transmission terminal device is a reception response. Data including reception speed information on a packet reception speed in the side terminal device, wherein the flow control means of the transmission side terminal device adjusts the packet transmission speed based on the reception speed information included in the received acknowledgment. Transfer system. 請求項10、11、12又は13記載のデータ転送システムにおいて、送信側の端末装置が、受信した確認応答に基づいて、データパケットの再送を制御する再送制御手段を具えることを特徴とするデータ転送システム。14. The data transfer system according to claim 10, wherein the transmission-side terminal device comprises retransmission control means for controlling retransmission of a data packet based on the received acknowledgment. Transfer system. 請求項10から14までのいずれか1項に記載のデータ転送システムにおいて、ネットワークの利用可能帯域情報を検出する手段を有し、検出されたネットワークの利用可能帯域情報に基づいて確認応答の送信周期を動的に制御することを特徴とするデータ転送システム。The data transfer system according to any one of claims 10 to 14, further comprising means for detecting available bandwidth information of a network, and a transmission cycle of an acknowledgment based on the detected available bandwidth information of the network. A data transfer system characterized by dynamically controlling the data transfer. 請求項10から15までのいずれか1項に記載のデータ転送システムにおいて、前記データパケットが、少なくともIPヘッダ、UDPヘッダ、パケットのシーケンス番号、及びペイロードを含むことを特徴とするデータ転送システム。The data transfer system according to any one of claims 10 to 15, wherein the data packet includes at least an IP header, a UDP header, a packet sequence number, and a payload. 請求項10から16までのいずれか1項に記載のデータ転送システムにおいて、前記確認応答が、少なくともIPヘッダ、UDPヘッダ、受信したシーケンス番号、受信速度、確認応答数、受信されなかったシーケンス番号の列を含むことを特徴とするデータ転送システム。17. The data transfer system according to claim 10, wherein the acknowledgment includes at least an IP header, a UDP header, a received sequence number, a reception speed, an acknowledgment number, and a sequence number not received. A data transfer system comprising columns. 請求項10から17までのいずれか1項に記載のデータ転送システムにおいて、前記フロー制御手段は、受信した確認応答パケットに含まれる受信速度と設定されているパケット送信速度とからパケット損率を計算し、その計算結果に基づいてデータパケットの送信速度を調節することを特徴とするデータ転送システム。18. The data transfer system according to claim 10, wherein the flow control unit calculates a packet loss rate from a reception speed included in the received acknowledgment packet and a set packet transmission speed. A data transfer system for adjusting a transmission rate of the data packet based on a result of the calculation. 請求項10から18までのいずれか1項に記載のデータ転送システムにおいて、前記再送制御手段は、受信した確認応答の受信したシーケンス番号と受信されなかったシーケンス番号の列とから再送が必要なパケットを特定することを特徴とするデータ転送システム。19. The data transfer system according to claim 10, wherein the retransmission control unit determines a packet that needs to be retransmitted from a sequence of a received sequence number and a sequence of a sequence number not received in the received acknowledgment. A data transfer system characterized by specifying the following. パケット転送ネットワークを介して、コンテンツ配信サーバと複数の端末装置とが接続され、コンテンツ配信サーバからパケット転送ネットワークを介して端末装置にデータパケットが送信され、データパケットを受信した端末装置は、データパケットの受信に応じてコンテンツ配信サーバに確認応答を送信するコンテンツ配信システムにおいて、
前記コンテンツ配信サーバは、送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して前記ネットワークに送信するパケット送信手段と、受信側の端末装置から送られてきた確認応答に基づいてデータパケットの送信速度を制御するフロー制御手段と、前記フロー制御手段からの出力に応じてパケット送信速度を設定するシェーピング手段とを具え、
前記端末装置は、受信したデータパケットを蓄積する主記憶装置と、データパケットの受信に応じて確認応答を送信側パケット送受信装置に送信する確認応答送信手段とを具え、
前記端末装置の確認応答送信手段は、データパケットを受信した際、確認応答を、受信データパケットの受信速度から独立した一定の周期で送信側のパケット送受信装置に返送することを特徴とするコンテンツ配信システム。
A content distribution server and a plurality of terminal devices are connected via a packet transfer network, and a data packet is transmitted from the content distribution server to the terminal device via the packet transfer network. In a content distribution system that transmits an acknowledgment to the content distribution server in response to the reception of
The content distribution server creates a data packet from the data to be transmitted, adds a sequence number to the data packet with a packet unit, and transmits the data packet to the network. A flow control means for controlling a transmission rate of a data packet based on an acknowledgment, and a shaping means for setting a packet transmission rate in accordance with an output from the flow control means,
The terminal device includes a main storage device that stores the received data packet, and an acknowledgment transmission unit that transmits an acknowledgment to the transmission-side packet transmitting / receiving device in response to the reception of the data packet,
Content distribution characterized in that the acknowledgment transmitting means of the terminal device, upon receiving a data packet, returns an acknowledgment to the transmitting-side packet transmitting / receiving device at a fixed period independent of the reception speed of the received data packet. system.
請求項20に記載のコンテンツ配信システムにおいて、前記端末装置から構成配信サーバに送られる確認応答が、当該端末装置におけるデータパケットの受信速度情報を含み、前記フロー制御手段は、受信した確認応答に含まれる受信速度情報に基づいてパケット送信速度を制御することを特徴とするコンテンツ配信システム。21. The content delivery system according to claim 20, wherein the acknowledgment sent from the terminal device to the configuration delivery server includes reception speed information of a data packet in the terminal device, and the flow control unit includes the received acknowledgment. A content transmission system for controlling a packet transmission speed based on received speed information. 請求項20又は21に記載のコンテンツ配信システムにおいて、前記コンテンツ配信サーバは、データパケットの再送を制御する再送制御手段を有し、当該再送制御手段は、受信した確認応答に含まれるデータパケットのシーケンス番号情報に基づいて再送すべきデータパケットを特定することを特徴とするコンテンツ配信システム。22. The content distribution system according to claim 20, wherein the content distribution server has retransmission control means for controlling retransmission of the data packet, wherein the retransmission control means includes a sequence of data packets included in the received acknowledgment. A content distribution system for identifying a data packet to be retransmitted based on number information. 請求項20、21又は22に記載のコンテンツ配信システムにおいて、前記端末装置を、携帯型情報端末装置、パーソナルコンピュータ、又は携帯電話としたことを特徴とするコンテンツ配信システム。23. The content distribution system according to claim 20, 21, or 22, wherein the terminal device is a portable information terminal device, a personal computer, or a mobile phone. 請求項20から23までのいずれか1項に記載のコンテンツ配信システムにおいて、前記パケット転送ネットワークに接続されている1つの端末装置を別のコンテンツ配信サーバとし、一方のコンテンツ配信サーバから他方のコンテンツ配信サーバにデータパケットが送信され、他方のコンテンツ配信サーバから前記一方のコンテンツ配信サーバに確認応答が送信されることを特徴とするコンテンツ配信システム。24. The content distribution system according to any one of claims 20 to 23, wherein one terminal device connected to the packet transfer network is another content distribution server, and one content distribution server distributes the other content. A content distribution system, wherein a data packet is transmitted to a server, and an acknowledgment is transmitted from the other content distribution server to the one content distribution server. 送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側のパケット送受信装置は、データパケットの受信に応じて送信側のパケット送受信装置に確認応答を送信するパケット転送システムに用いられる端末装置であって、
送信すべきデータからデータパケットを作成し、当該データパケットをパケット単位のシーケンス番号を付加して送信するパケット送信手段と、
データパケットの受信に応じて、データパケットの受信速度から独立した周期で確認応答を送信する確認応答送信手段と、
データパケットの受信速度情報を用いてデータパケットの送信速度を制御するフロー制御手段と、
前記フロー制御手段からの出力に応じてパケット送信速度を設定するシェーピング手段と、
受信したデータパケットを蓄積する主記憶装置とを具えることを特徴とする端末装置。
The data packet is transmitted from the transmitting terminal device to the receiving terminal device via the packet transfer network, and the receiving packet transmitting / receiving device transmits an acknowledgment to the transmitting packet transmitting / receiving device in response to the reception of the data packet. Terminal device used for a packet transfer system,
Packet transmission means for creating a data packet from the data to be transmitted, transmitting the data packet with a packet unit sequence number added thereto,
Acknowledgment transmitting means for transmitting an acknowledgment in a cycle independent of the data packet receiving speed in response to receiving the data packet;
Flow control means for controlling the data packet transmission speed using the data packet reception speed information,
Shaping means for setting a packet transmission rate according to the output from the flow control means,
A terminal device, comprising: a main storage device for storing received data packets.
送信側の端末装置からパケット転送ネットワークを介して受信側の端末装置にデータパケットが送信され、受信側のパケット送受信装置は、データパケットの受信に応じて送信側のパケット送受信装置に確認応答を送信するパケット転送システムに用いられる端末装置であって、
送信側端末装置から、パケット単位のシーケンス番号が付加されて送られてきたデータパケットを受信する手段と、
受信したデータパケットを記憶する記憶手段と、
受信したデータパケットからデータパケットの受信速度情報を作成し、当該受信速度情報を含む確認応答を作成する手段と、
前記作成した確認応答を、データパケットの受信速度から独立した一定の周期で送信側端末装置に送信する確認応答送信手段とを具えることを特徴とする端末装置。
The data packet is transmitted from the transmitting terminal device to the receiving terminal device via the packet transfer network, and the receiving packet transmitting / receiving device transmits an acknowledgment to the transmitting packet transmitting / receiving device in response to the reception of the data packet. Terminal device used for a packet transfer system,
Means for receiving a data packet transmitted from the transmitting terminal device with a packet unit sequence number added thereto,
Storage means for storing the received data packet;
Means for creating reception speed information of the data packet from the received data packet and creating an acknowledgment including the reception speed information;
A terminal device comprising: an acknowledgment transmitting unit that transmits the created acknowledgment to the transmitting terminal device at a constant period independent of the data packet reception speed.
JP2002233363A 2002-08-09 2002-08-09 Data transfer method, data transfer system, and content distribution system Pending JP2004080070A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002233363A JP2004080070A (en) 2002-08-09 2002-08-09 Data transfer method, data transfer system, and content distribution system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002233363A JP2004080070A (en) 2002-08-09 2002-08-09 Data transfer method, data transfer system, and content distribution system

Publications (1)

Publication Number Publication Date
JP2004080070A true JP2004080070A (en) 2004-03-11

Family

ID=32018505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002233363A Pending JP2004080070A (en) 2002-08-09 2002-08-09 Data transfer method, data transfer system, and content distribution system

Country Status (1)

Country Link
JP (1) JP2004080070A (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166281A (en) * 2005-12-14 2007-06-28 Casio Hitachi Mobile Communications Co Ltd Data packet transfer device, method and program thereof
JP2008535080A (en) * 2005-03-31 2008-08-28 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Protecting data delivered out of order
JP2008219170A (en) * 2007-02-28 2008-09-18 Nippon Hoso Kyokai <Nhk> File transmission device and file transmission program, file reception device and file reception program
JP2010263350A (en) * 2009-05-01 2010-11-18 Nec Corp Communications device, pseudo-response device, transmission rate control method and program
WO2011033894A1 (en) * 2009-09-16 2011-03-24 株式会社日立製作所 Communication apparatus and communication system for enhancing speed of communications between terminals
JP2011071764A (en) * 2009-09-25 2011-04-07 Nippon Hoso Kyokai <Nhk> File transmission/reception system, file receiver, file transmitter, file repeater, file replacing device, file combining device, and program
WO2011048740A1 (en) * 2009-10-19 2011-04-28 日本電気株式会社 Data transmission system, transmission rate controlling method, receiving terminal and transmitting terminal
WO2012066824A1 (en) 2010-11-16 2012-05-24 株式会社日立製作所 Communication apparatus and communication system
JPWO2010070699A1 (en) * 2008-12-15 2012-05-24 富士通株式会社 Data transmission method
US8223766B2 (en) 2007-02-28 2012-07-17 Fujitsu Limited Communication method for system including client device and plural server devices
WO2019239541A1 (en) * 2018-06-14 2019-12-19 三菱電機株式会社 Electric apparatus, communication system, and control method
JP2021145168A (en) * 2020-03-10 2021-09-24 日本放送協会 Distribution server and program
CN116321250A (en) * 2023-05-23 2023-06-23 北京星河亮点技术股份有限公司 Data forwarding system and method

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008535080A (en) * 2005-03-31 2008-08-28 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Protecting data delivered out of order
US8352727B2 (en) 2005-03-31 2013-01-08 Telefonaktiebolaget L M Ericsson (Publ) Protection of data delivered out-of-order
JP2007166281A (en) * 2005-12-14 2007-06-28 Casio Hitachi Mobile Communications Co Ltd Data packet transfer device, method and program thereof
JP2008219170A (en) * 2007-02-28 2008-09-18 Nippon Hoso Kyokai <Nhk> File transmission device and file transmission program, file reception device and file reception program
US8223766B2 (en) 2007-02-28 2012-07-17 Fujitsu Limited Communication method for system including client device and plural server devices
JPWO2010070699A1 (en) * 2008-12-15 2012-05-24 富士通株式会社 Data transmission method
JP2010263350A (en) * 2009-05-01 2010-11-18 Nec Corp Communications device, pseudo-response device, transmission rate control method and program
JP5175982B2 (en) * 2009-09-16 2013-04-03 株式会社日立製作所 Communication apparatus and communication system for speeding up communication between terminals
WO2011033894A1 (en) * 2009-09-16 2011-03-24 株式会社日立製作所 Communication apparatus and communication system for enhancing speed of communications between terminals
US9118609B2 (en) 2009-09-16 2015-08-25 Hitachi, Ltd. Communication apparatus and communication system for enhancing speed of communication between terminals
US8605745B2 (en) 2009-09-16 2013-12-10 Hitachi, Ltd. Communication apparatus and communication system for enhancing speed of communications between terminals
JP2011071764A (en) * 2009-09-25 2011-04-07 Nippon Hoso Kyokai <Nhk> File transmission/reception system, file receiver, file transmitter, file repeater, file replacing device, file combining device, and program
WO2011048740A1 (en) * 2009-10-19 2011-04-28 日本電気株式会社 Data transmission system, transmission rate controlling method, receiving terminal and transmitting terminal
WO2012066824A1 (en) 2010-11-16 2012-05-24 株式会社日立製作所 Communication apparatus and communication system
US9124518B2 (en) 2010-11-16 2015-09-01 Hitachi, Ltd. Communication device and communication system
US9979658B2 (en) 2010-11-16 2018-05-22 Hitachi, Ltd. Communication device and communication system
WO2019239541A1 (en) * 2018-06-14 2019-12-19 三菱電機株式会社 Electric apparatus, communication system, and control method
JPWO2019239541A1 (en) * 2018-06-14 2020-12-17 三菱電機株式会社 Electrical equipment, communication systems, and control methods
JP7004815B2 (en) 2018-06-14 2022-01-21 三菱電機株式会社 Air conditioners, communication systems, and control methods
JP2021145168A (en) * 2020-03-10 2021-09-24 日本放送協会 Distribution server and program
JP7474078B2 (en) 2020-03-10 2024-04-24 日本放送協会 Distribution server and program
CN116321250A (en) * 2023-05-23 2023-06-23 北京星河亮点技术股份有限公司 Data forwarding system and method
CN116321250B (en) * 2023-05-23 2023-09-19 北京星河亮点技术股份有限公司 Data forwarding system and method

Similar Documents

Publication Publication Date Title
US9043486B2 (en) Data transfer method, system and protocol
US9413494B2 (en) FEC-based reliable transport control protocols for multipath streaming
JP4623616B2 (en) Data transmission method and apparatus
JP4016387B2 (en) Data flow control method
JP4520032B2 (en) Header compression apparatus and header compression method
JP4000905B2 (en) Information processing system and method, information processing apparatus and method, recording medium, and program
KR101229768B1 (en) Block ack protocols for wireless packet network
US6141324A (en) System and method for low latency communication
US20030023746A1 (en) Method for reliable and efficient support of congestion control in nack-based protocols
US8306062B1 (en) Method and apparatus of adaptive large receive offload
US20150312158A1 (en) Method and system for medium access control (mac) layer specialization for voice and multimedia data streams
US20050135252A1 (en) Transparent optimization for transmission control protocol flow control
WO2010108144A1 (en) Systems and methods for improved wireless interface aggregation
JP2009520389A (en) Apparatus, method, and computer program for providing retransmission using a plurality of ARQ mechanisms
CN106658223B (en) Video uplink transmission method and device under Long Term Evolution (LTE) network
JP2004080070A (en) Data transfer method, data transfer system, and content distribution system
US20030128672A1 (en) Transmission and flow control
WO2019144802A1 (en) Data transmission method and related device
CN114980199A (en) Data transmission control method for multi-communication link fusion and satellite communication system
US8578040B2 (en) Method, system and article for client application control of network transmission loss tolerance
US11811877B2 (en) Universal transport framework for heterogeneous data streams
US12206737B2 (en) Universal transport framework for heterogeneous data streams
US20240154735A1 (en) Method and apparatus for transmitting objects based on deadline-aware
CN117394953A (en) A QUIC adaptive data retransmission method, device and system
CN119583018A (en) A method, device and system for data transmission in a dense network

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060314