説明

データ伝送方式、及び、複数拠点データ配信方式

【課題】データ伝送中にパケットロスや遅延のゆらぎが起こっても、データ伝送速度が大きく低下することのない高速なデータ伝送方式を提供する。
【解決手段】一実施形態に係るデータ伝送方法は、受信先に対して複数のパケットを連続的に送出する第一のステップと、受信先から送出された、受信先が複数のパケットのうち少なくとも一部を受領したことを示す受領確認を受信する第二のステップと、受領確認によって受信先による受領が確認されたパケットよりも前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送する第三のステップと、を備える。また、このデータ伝送方法を利用して、複数拠点にデータを略同時に配信する配信方式を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを高速に伝送する通信制御方式に関する。また、当該通信制御方式を利用した複数拠点データ配信方式に関する。
【背景技術】
【0002】
従来、ファイルの伝送にはTCP(Transmission Control Protocol)が一般的であるが、TCPでは一定量のパケットを投げたあと、応答パケットを待つため、拠点間の往復遅延(RTT)が通信速度に非常に影響する。標準的な64KBのウィンドウサイズで、東京−大阪間(RTTが20msと仮定)の場合、理論上、どんなに速い回線を用意したとしても、25.6Mbpsまでしか速度がでない。ウィンドウサイズを大きくすれば、一度に送信できるデータのサイズが増えるため理論上の通信速度は上がるが、パケットロスが発生した場合には、再送に時間がかかり転送速度が遅くなるなど、かえって転送効率が落ちてしまう場合もある。
【0003】
一方、UDP(User Datagram Protocol)を用いてデータ転送を行う技術自体は既存の技術が存在するが、利用する回線に対して最適なパラメータを設定しなければならないものや、パケットロスや遅延のゆらぎが発生すると転送速度が低下してしまうもの、回線のキャパシティいっぱいまでは使いきれないものなど、従来では解決できていない課題が多い。
【0004】
また従来、複数拠点に同時伝送を行うには、中央にサーバを置き各拠点に配信する方式が知られている。また、マルチキャストというプロトコルも存在するが、一般的なインターネットでの適応は難しく、または、パケットロスに対する制御などが別途必要になる(特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−85932号公報
【特許文献2】特開2000−207298号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のデータ伝送方式の多くは、パケットロスを輻輳と定義し、パケットロスが発生した場合には、輻輳が起きているものとみなしている。そして、パケットロスが発生しないように制御したり、また、パケットロスが発生した場合には、輻輳が抑止されるように転送レートやパケット転送間隔を制御したりすることが一般的である。
【0007】
このため、従来のデータ伝送方式は、パケットロスが生じると通信速度が大幅に低下してしまうという課題を有している。他にも、従来のデータ伝送方式は、パケット遅延のゆらぎにより通信速度が低下する、通信開始当初の通信速度が遅い、RTTが大きいと通信速度が影響を受けてしまう、といった点が指摘されている。
【0008】
また、複数拠点にデータをほぼ同時に伝送する配信方式においては、中央サーバをおく方式では、複数拠点同時配信に耐えうる高性能な中央サーバと、配信先の数に応じた広帯域な回線が必要である。マルチキャスト配信を用いる場合、特別な回線が必要となり、かつ、パケットロスに対応するためサーバから個別に再送などを制御しなければならない。
【0009】
本発明はかかる実情に鑑みてなされたものであり、データ伝送中にパケットロスや遅延のゆらぎが発生することを前提とし、パケットロス等が生じても、データ伝送速度が大きく低下することのない高速なデータ伝送方式を提供しようとするものである。また、このようなデータ伝送方式を利用して、複数拠点にデータをほぼ同時に配信する配信方式を提供しようとするものである。
【課題を解決するための手段】
【0010】
本発明の一実施形態に係るデータ伝送方法は、送信側装置から受信側装置に対してパケット通信網を介してデータを伝送する方法であって、送信側装置が、受信側装置に対して複数のパケットを連続的に送出する第一のステップと、受信側装置から送出された、受信側装置が複数のパケットのうち少なくとも一部を受領したことを示す受領確認を受信する第二のステップと、受領確認によって受信先による受領が確認されたパケットよりも前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送する第三のステップと、を備える。すなわち、本発明の一実施形態においては、パケットを連続送信後、受領確認(Ack)が返って来たパケットより前に送信したパケットをパケットロスとみなすことにより、従来のデータ伝送方式とは異なり、送信後一定時間経過する前に受領が確認されなくても、パケットの再送を行わずに、そのままパケットを送信し続ける。ネットワークスイッチ等はパケットをバッファに受信してから処理を行うため、パケットを送り込む間隔を短くすればするほど、バッファにそのパケットが入る確率を上げることが出来る。本発明は、回線のキャパシティよりも速い速度でパケットを送り込むことで、より高速なデータ転送を可能としている。回線のキャパシティを溢れた分はパケットロスとなるが、本発明においては、パケットロスが起こることを前提としているため、データ伝送上の問題は生じない。
【0011】
近年、IP網を構成している装置はほとんどがスイッチであり、装置内部にバッファを備えている。装置間は全二重で任意のタイミングで通信可能であり、送られてきたパケットはスイッチ内部のバッファに一旦溜められ、そのバッファから送るべき通信相手にパケット送信される。バッファがいっぱいにならない限り、同じ機器に対するパケットが複数個所から送られてきたとしても、順番に処理されるだけでパケットロスは発生しない。ただし、遅延時間は変化する。バッファがいっぱいになると、バッファに空きができるまで、その後に届いたパケットは破棄されてしまう(パケットロス)が、バッファに入った分のパケットについては正しく処理される。したがって、従来の通信制御方式が前提としている「輻輳」は、誰も正常な通信をできないような状況のことを指すが、そのような状況は、現在の装置間では発生しにくい。
【0012】
好適には、第三のステップは、受領確認によって受信先による受領が確認されたパケットのうち最も直近に送出されたパケットの送出時刻よりも所定時間以上前に送出されたパケットを再送する。パケットがリオーダーで届く場合もあるので、パケットロスと判定する時刻に若干の遊びを持たせることにより、受信側ですでに受信済みのパケットを再度受信してしまうことがほぼなくなり、効率の良いデータ伝送が可能となる。
【0013】
第一のステップは、パケットを送出する際に、当該パケットを識別可能な識別情報と当該パケットの送出時刻とを対応付けて記録するステップを含むことが好ましい。好適には、受領確認は、受信先が受領したパケットの識別情報を含む。さらに、受領確認は、過去所定回分の受領確認に含まれていた識別情報を含むことが好ましい。過去数回分の受領確認情報を、受領確認パケットに入れて送付することにより、受領確認パケットのパケットロスも考慮したデータ伝送方式を提供することができる。
【0014】
また、本発明の一実施形態に係るデータ配信方法は、上述のデータ伝送方法によるデータ送受信が可能な複数の送受信装置の間で、数珠つなぎにデータ伝送を行うことによって、複数の送受信装置間で略同時にデータ伝送を行う。すなわち、上述のデータ伝送方法を基本技術として利用して、A拠点からB拠点に投げたパケットを、B拠点はC拠点に中継する、といった処理を繰り返す。基本的には1対1の通信のため、中央サーバは必要ない。また、特別な広帯域回線は必要なく、一般的なBフレッツに代表される上下対称な光ファイバーブロードバンド回線を利用可能である。さらに、パケット単位で中継されるため、最小単位でデータ配信が行われる。これにより、ファイル全体が転送完了するのを待つことなく、パケット単位でデータ転送できるため、1対1で通信するのとほぼ同等な時間で、複数拠点への同時伝送が可能である。
【発明の効果】
【0015】
本発明のデータ伝送方式によれば、データ伝送中にパケットロスや遅延のゆらぎが起こっても、データ伝送速度が大きく低下することがなく、高速にデータを伝送可能なデータ伝送方式を提供することができる。また、このようなデータ伝送方式を利用して、複数拠点にデータを略同時に配信する配信方式を提供することが可能である。
【0016】
より具体的には、本発明の所定の実施形態によれば、インターネット等のIP通信網を用いて、回線のキャパシティいっぱいまで活用して高速に拠点から拠点へデータを転送するためのプロトコルおよび制御方式を提供できる。パケットロスが頻発するような回線であっても、ほとんど影響を受けずに安定したデータ転送が可能である。また、回線速度、回線品質にほとんど影響されず、ユーザが回線にあわせた特別な設定を行うこともなく、回線のキャパシティいっぱいまで利用して高速なデータ転送が可能である。
【0017】
また、本発明の所定の実施形態によれば、上述のデータ伝送方式を応用し、ある拠点から複数拠点を数珠つなぎにパケットを中継し、データの同時伝送を可能としている。特別な回線は必要なく、一般的なBフレッツに代表される光ファイバーブロードバンドを用いて回線のキャパシティいっぱいまで利用した上で、複数拠点への高速な同時転送を可能としている。
【図面の簡単な説明】
【0018】
【図1】本発明の一実施形態に係るデータ伝送システム1のアーキテクチャを示す図である。
【図2】本発明の一実施形態に係る送信側装置10及び受信側装置20の機能構成を示すブロック図である。
【図3】本発明の一実施形態におけるデータ伝送処理の制御プロトコルを示すフローチャートである。
【図4】本発明の一実施形態におけるデータ伝送の概略を示す概念図である。
【図5】本発明の一実施形態に係るデータ伝送方式のアルゴリズムを説明するための模式図である。
【図6】本発明の一実施形態に係るデータ伝送方式のアルゴリズムを説明するための模式図である。
【図7】本発明の一実施形態に係るデータ伝送方式を利用した複数拠点配信システムのアーキテクチャを示す図である。
【図8】本発明の一実施形態に係る送信側装置10、受信側装置20、及びこれらを含む送受信装置70の機能構成を示すブロック図である。
【図9】本発明の一実施形態における複数拠点配信処理の概略を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。
【0020】
図1は、本発明の一実施形態に係るデータ伝送システム1のアーキテクチャを示す図である。データ伝送システム1は、送信側装置10と受信側装置20とがネットワークNを介して接続されて構成される。
【0021】
送信側装置10は、ネットワークNを介して受信側装置20に向けてデータを送信するための装置である。受信側装置20は、送信側装置10から送信されたデータを受信するための装置である。送信側装置10と受信側装置20はそれぞれ、専用の装置により構成してもよいし、汎用のコンピュータが送信側装置10及び/又は受信側装置20の機能を備えるよう構成してもよい。
【0022】
ネットワークNは、送信側装置10と受信側装置20との間でデータを伝送するための通信回線である。これはLANやインターネット網に代表されるパケット通信網(またはその組み合わせ)であればよく、物理層には左右されない。よって、物理層としては、イーサネット(登録商標)、無線通信網、公衆電話通信網、一般電話回線網、その他の通信回線、それらの組み合わせ等のいずれであってもよい。また、各通信網間を接続するためのゲートウェイや各種基地局、交換機などもネットワークNに含まれ得る。
【0023】
図2は、本発明の一実施形態に係る送信側装置10及び受信側装置20の機能構成を示すブロック図である。
【0024】
送信側装置10は、送出時刻記録モジュール11と、パケット送出モジュール12と、送出レート調整モジュール13と、受領確認(Ack)受信モジュール14と、再送判定モジュール15とを含んで構成される。
【0025】
送出時刻記録モジュール11は、パケット単位で、パケットを識別するためのパケット番号と、当該パケットを送出した日時に関する送信時刻情報とを対応付けて記録する。なお、パケット番号に換えて、パケットを識別可能な任意の情報を利用可能である。パケット送出モジュール12は、送信するデータをパケットに分けて、ネットワークNに送出する。送出レート調整モジュール13は、ネットワークNに送信するビットレート等、パケットの送出レートを調整する。受領確認(Ack)受信モジュール14は、受信側装置20から受領確認(Ack)を受信して、受信側装置20がパケットを受信したか否かをパケット番号毎に管理する。再送判定モジュール15は、所定の条件を満たすパケットを受信側装置20に再送する。
【0026】
受信側装置20は、パケット受信モジュール21と、受信パケット番号記録モジュール22と、受領確認(Ack)送信モジュール23と、過去分受領確認(Ack)情報記憶モジュール24と、ソート処理モジュール25と、受信レート計算モジュール26と、タイマー27とを含んで構成される。
【0027】
パケット受信モジュール21は、送信側装置10から送出されたパケットを受信する。受信パケット番号記録モジュール22は、受信したパケットのパケット番号を記録する。受領確認(Ack)送信モジュール23は、パケットを受領したときに、受領したパケットの受領確認を送信側装置10に向けて送信する。このとき、受領したパケットを一定個数分まとめて、又は、所定時間が経過した場合にそれまでに受領したパケットをまとめて、受領確認を返送することが好ましい。過去分受領確認(Ack)情報記憶モジュール24は、過去に送出した受領確認を、パケット番号と対応付けて記憶する。ソート処理モジュール25は、受信したパケットを結合してデータを読み出すためのものである。受信レート計算モジュール26は、受信したパケットに基づいて、受信レートを計算する。タイマー27は、受領時間等を測定し、また、受領確認を送信するタイミングを計るためのものである。
【0028】
次に、上記のように構成されるデータ伝送システム1の動作の概要について説明する。
【0029】
図3は、本発明の一実施形態におけるデータ伝送処理の制御プロトコルを示すフローチャートである。本実施形態では、データの伝送及び制御にUDPプロトコルのみを用いるものとする。そのため、特許文献2にあるようなTCPを制御、UDPをデータ転送に用いるようなプロトコルと比較して、TCP分の帯域を確保する必要はなく、回線キャパシティをフルに利用できる。なお、コネクションレスのデータグラム型プロトコルであれば、UDPプロトコルに限らず適用可能である。送信データのパケットは、UDPパケットのヘッダを除いた先頭4バイトをパケット番号とする。先頭4バイトを除いた残りのデータを、転送すべきデータの一部(ペイロード)とする。ペイロードのサイズは、送るべきデータの最終パケットを除き、固定の大きさとする。しかし、パケット番号やペイロードのサイズ等は、これらに限定されない。
【0030】
送信側装置10のパケット送出モジュール12は、送信側装置10から受信側装置20に転送するデータをペイロードサイズごとに分け、パケット番号を付加した上で、受信側装置20にパケット送出する(S41)。その際、送出時刻記録モジュール11は、パケット送信をした時刻をパケット番号毎に記録しておく。
【0031】
データ転送開始当初、送信側装置10から受信側装置20までの回線がどの程度のキャパシティがあるのか不明であるため、送信側装置10は可能な限り速い速度で次々にパケットを送出する。なお、ネットワークNのキャパシティを超えた分のパケットは、ネットワークN上で破棄されることになる。
【0032】
受信側装置20のパケット受信モジュール21がパケットを受信すると、送信側装置10から届いたパケットをソート処理モジュール25がパケット番号順にソートし、パケット番号が連続して受信できた部分について、ディスク装置や後の処理系にデータを出力する(S42)。ただし、受信パケットのパケット番号がすでに受信済みのパケット番号だった場合は、この処理を行わない。
【0033】
受信側装置20の受信パケット番号記録モジュール22は、届いたパケットのパケット番号を記録する。受領確認送信モジュール23は、前回の受領確認パケット送付から、一定個数(例えば64個)パケットが届いた場合、または、直近の通信速度から換算して一定個数のパケットが届くはずの時間に所定時間を加えた時間が経過した場合に、送信側装置10に対し受領確認(Ack)を送付する(S43)。送付した受領確認のログは、過去分受領確認情報記憶モジュール24に記録される。なお、届いたパケットのパケット番号を記録する際、過去に受信済みのパケット番号も処理対象とする。
【0034】
受領確認(Ack)パケットは、UDPパケットのヘッダを除いた先頭4バイトを受領確認パケット番号とし、その後ろに、直近の一定時間(例えば、1/3秒をタイマー27で計測)で算出したビットレートの情報を付加する。そして、その後ろに、届いたパケット番号(4バイト)を列挙する。パケット番号が連続している場合は、連続しているパケット番号の先頭と最終のパケット番号に連続フラグをつけて、受領確認パケットのサイズを圧縮する。また、受領確認パケットがパケットロスになる可能性を考慮し、過去N回分(例えば、N=1)の受領確認パケットに列挙したパケット番号情報を付加する。これにより、受領確認パケットが連続で(N+1)回パケットロスしない限り、受領確認情報は正しく送信側装置10に伝わる。ビットレートの情報は、受信レート計算モジュール26が、一定時間に受信したパケット数(重複パケットを含む)を用いて算出する。過去の受領確認は過去分受領確認情報記憶モジュール24から取得される。
【0035】
なお、本実施形態においては、データ伝送中にパケットロスが発生することを前提としているため、受信されたデータは歯抜け状態となることが多い。しかし、ソート処理モジュール25からディスク装置等にデータを出力する際には、シーケンシャルにデータを書き出さないと性能が劣化してしまう。そのため、受信側装置20は適切な量のバッファを持ち、歯抜け状態が解消された部分までをシーケンシャルデータとして、ディスク装置に書き出したり、後の処理系に出力したりする。
【0036】
送信側装置10は、受領確認パケットが届くと、受領確認受信モジュール14が受領確認パケットを受信する(S44)。そして、再送判定モジュール15は、受領確認パケットに列挙された受信済みパケット番号について、それぞれのパケットを送信側装置10が元々送付した時刻のうち最も直近の時刻を、「応答済み最終パケット送信時刻」(T)とし、まだ受領確認が返ってきていないパケットの送信時刻(S)との差(T−S)が、所定の閾値β(例えば、β=200ミリ秒)以上になった場合に、その受領確認が返ってきていないパケットについて、次に新規に送るべきパケットに割り込む形で、再送を行う(S45)。なお、再送時にも、そのパケットを再送した時刻を記録しておく。
【0037】
送信側装置10の送出レート調整モジュール13は、受領確認パケットに記載された直近のビットレート情報をもとに、次以降、パケットを送出する時間間隔を制御する(S46)。具体的には、転送開始からのビットレート情報で最も高い数値(最大値)に対し、θ倍(例えば、θ=1.2)の速度でパケットを送出する。本発明においては、パケットロスは発生することが前提であるため、回線のキャパシティを超えてパケットを送信し、パケットロスが発生してもデータ伝送上の問題は生じない。また、通信開始当初、回線が過度に混雑していてあまり高いレートが出なかった場合でも、回線が空けば速度は回復する。逆に、通信開始当初、回線が空いていて、次第に混雑した場合でも、混雑した分の実転送速度は落ちるが、パケットロスが多めに発生するようになるだけであり、通信の信頼性には影響しない。仮に通信中に回線が混雑したとしても、本来、ビットレート情報の最大値までのキャパシティはあるはずであるため、転送速度を遅くすることはしない。
【0038】
送信側装置10は、送信すべきデータのパケットがまだ残っている場合(S47:No)、上記S41〜S46の処理を繰り返してパケットを送信する。送信すべきデータの最後のパケットまで送信した場合(S47:Yes)、送信データの終わりを示すパケットを送信し、さらに、受領確認がまだ返ってきていない(と送信側装置10が認識している)パケットについて強制的に再送を行う(S48)。この強制再送モードでは、受領確認が返ってきていないパケットを未送信と同じ状態として扱い、S41〜S47の処理を行う。転送をやめたり、一時停止したりすることはしない。なお、この送信データの終わりを示すパケットもパケットロス時は再送対象となる。
【0039】
受信側装置20は、全てのパケットを受信した場合、受信完了のステータスとするが、まだ送信側装置10からパケットがまだ送られてくる場合は、受領確認パケットを返す処理は続行する。
【0040】
送信側装置10は、受領確認パケットを受信するまで、S48の処理を繰り返す(S49:No)。そして、受領確認パケットにより、受信側装置20が全てのパケットを受信したことを検出した時点で送信処理を完了する(S49:Yes)。
【0041】
図4は、本発明の一実施形態におけるデータ伝送の概略を示す概念図である。同図に示すように、本実施形態では、送信側装置10から受信側装置20に対して、データパケットを、回線速度を超えて連続的に送信する。ネットワークN上のルータ等のバッファ30で処理しきれないパケットは捨てられる(矢印32)が、送信側装置10からルータ等のバッファ30に絶え間なくパケットが来るため、この速度が速ければ速いほど、送信側装置10から送信されたパケットがルータ等のバッファ30に入る確率が上がる(矢印34)。受信側装置20は、パケットを受信すると、受領確認(Ack)パケットを返送するが、このとき、複数個分のデータパケットの受領確認を、1つの受領確認パケットにまとめて送信側装置10に返送する。
【0042】
図5及び図6は、本発明の一実施形態に係るデータ伝送方式のアルゴリズムを説明するための模式図である。
【0043】
図5は、送信側装置10からのデータの転送速度が8.192Mbps、ペイロードのサイズは1024バイト、すなわち1ミリ秒毎に絶えずデータパケットが送信され続けるものとし、RTT=0ミリ秒と仮定している。例えば、パケット番号1のデータパケットは送信時刻1ミリ秒に送信され、パケット番号2のデータパケットは送信時刻2ミリ秒に送信され、以降、パケット番号259のデータパケットまで1ミリ秒毎に送信されている。送信されたデータパケットは、パケット番号と送信時刻とが対応付けて記録される。また、送信時刻に閾値β(本実施例では、β=200ミリ秒とする。)を足した値が、再送判定時刻である。なお、説明の便宜上、図5では、送信時刻と再送判定時刻とを併記している。
【0044】
一方、受信側装置20は、送信側装置10から送信されたデータパケットを受信する。同図では、パケット番号1のデータパケットが受信時刻1ミリ秒に受信され、パケット番号3のデータパケットが受信時刻3ミリ秒に受信され、以降、データ伝送の遅延が生じることなく、パケット番号259のデータパケットまで1ミリ秒毎にパケットを受信している。しかし、パケット番号2のデータパケットは、パケットロスのため、受信側装置20に受信されていない。
【0045】
このとき、受信側装置20は、64個のデータパケットを受信するたびに、この64個のデータパケットの受領確認を1つの受領確認パケットにまとめて、送信側装置10に返送する。受領確認パケット51は、パケット番号1及び3〜65のデータパケットの受領確認が1つにまとめられている。パケット番号65のデータパケットは、受信時刻65ミリ秒に受信され、このパケットの受信後に、この場合は処理に1ミリ秒かかったと仮定して、時刻66ミリ秒に受領確認パケット51が送信側装置10に返送される。
【0046】
送信側装置10は、受領確認パケット51を受信すると、当該パケットに含まれるパケット番号に基づいて、受信側装置20で受信されたデータパケットを特定し、パケット番号に対応付けて受信の済または未済を表すフラグを立てる。図5の例では、パケット番号1及び3〜65に受信「済」フラグを立てる。これにより、受信側装置20が受信したデータパケット及び受信していないデータパケットが管理される。
【0047】
続けて、受領確認パケットに含まれる受領済みパケットのうち最終のパケット(最も直近に送信されたパケット)の送信時刻と、受信が未済のパケットの再送判定時刻とが比較される。受領確認パケット51から得られる応答済み最終パケット送信時刻は65ミリ秒であり、受信が未済のパケット番号2の再送判定時刻は202ミリ秒である。応答済み最終パケット送信時刻(65ミリ秒)がパケット番号2の再送判定時刻(202ミリ秒)を超えていないので、パケット2はまだ再送不要と判断される。
【0048】
この間も、送信側装置10から受信側装置20へのデータパケットの送信は絶えず続き、時刻129ミリ秒のときパケット番号129のデータパケットが受信され、これにより、受領確認を未送信のものがパケット番号66からパケット番号129までの計64個たまった状態になる。そこで、時刻130ミリ秒のときに受領確認パケット52が受信側装置20から送信側装置10に送信される。この受領確認パケット52は、今回新たに発生したパケット番号66〜129の64個のデータパケットの受領確認のみならず、前回送信したパケット番号1及び3〜65の受領確認も含む。送信側装置10は、受領確認パケット52を受信すると、このパケットに含まれるパケット番号に基づいて、パケット番号66〜129の受信「済」フラグをたてる。その後、応答済み最終パケット送信時刻の129ミリ秒と、まだ受信されていないパケット番号2の再送判定時刻202ミリ秒とが比較され、応答済み最終パケット送信時刻(129ミリ秒)がパケット番号2の再送判定時刻(202ミリ秒)を超えていないので、パケット2はまだ再送不要と判断される。
【0049】
その後も同様に処理が続けられ、データパケットの送信は引き続き絶えず行われ、パケット番号130〜193の受領確認を含む受領確認パケット53が受信側装置20から送信側装置10に送信される。この受領確認パケット53を受信した送信側装置10では、パケット番号130〜193が受信済みと判断される。また、応答済み最終パケット送信時刻(193ミリ秒)がパケット番号2の再送判定時刻(202ミリ秒)を超えていないので、パケット2はまだ再送不要と判断される。
【0050】
その後、パケット番号194〜257の受領確認を含む受領確認パケット54が受信側装置20から送信される。送信側装置10が受領確認パケット54を受信して、パケット番号194〜257の受信「済」フラグを立てた後、応答済み最終パケット送信時刻と、受信が未済のパケット番号2の再送判定時刻とが比較される。このとき、応答済み最終パケット送信時刻(257ミリ秒)がパケット番号2の再送判定時刻(202ミリ秒)を超えているので、再送が必要と判断される。つまり、パケット番号2のパケットが送信されてから200ミリ秒後に送信されたデータパケットですら既に受信されているので、パケット2はパケットロスしたものと判断され、再送されることになる。再送処理を受領確認パケット54の受信直後に行ったとしても、すでに送信しようとするパケットデータが送信側装置10のバッファにたまっているので、実際にパケット番号2のデータパケットが再送されるのは、この例では、時刻300ミリ秒である。
【0051】
再送処理の間、及び、再送処理の後も、送信側装置10はデータパケットを送信し続け、受信側装置20はパケット番号258〜321の受領確認を含む受領確認パケット55を送信する。送信側装置10は受領確認パケット55を受信して、受信「済」パケットの管理と再送判定処理を実施する。
【0052】
図6は、図5と同様のセッティングの実施例において、途中で、データ伝送の遅延が発生した場合の実施例である。同図の例では、時刻129ミリ秒までは、図5と同じ処理が行われる。すなわち、送信側装置10からは1ミリ秒ごとにデータパケットが送信され続ける。受信側装置20は、受領確認パケット61と62を返している。そして、パケット番号2のデータパケットがパケットロスしている。
【0053】
このような状況で、図6の例では、パケット番号129のパケットを受信した後、データ伝送の遅延が発生し、パケット番号130のデータパケットを受信したのは500ミリ秒後、すなわち時刻630ミリ秒であり、その後、1ミリ秒毎に1つのデータパケットが受信されている。
【0054】
このとき、受領確認パケット63は、時刻694ミリ秒で受信側装置20から送信されている。送信側装置10は受領確認パケット63を受信すると、受領確認パケット63に含まれるパケット番号に基づいて、パケット番号130〜193が受信済みと判断される。また、応答済み最終パケット送信時刻(193ミリ秒)がパケット番号2の再送判定時刻(202ミリ秒)を超えていないので、パケット2はまだ再送不要と判断される。
【0055】
その後、パケット番号194〜257の受領確認を含む受領確認パケット64が、時刻758ミリ秒に、受信側装置20から送信される。送信側装置10が受領確認パケット64を受信して、パケット番号194〜257の受信「済」フラグを立てた後、応答済み最終パケット送信時刻と、受信が未済のパケット番号2の再送判定時刻とが比較される。このとき、応答済み最終パケット送信時刻(257ミリ秒)がパケット番号2の再送判定時刻(202ミリ秒)を超えているので、再送が必要と判断される。そして、例えば時刻800ミリ秒に、パケット番号2のデータパケットが再送される。
【0056】
図5と図6を比較すると明らかなように、本実施形態では、仮にネットワークが混雑して大幅な遅延が発生しても、比較対象が変わらないので、問題にならない。これに対し、通常のデータ伝送方式では、ネットワークにデータ転送の遅延が生じた時点で、データパケットの送信が中断され、輻輳を回避するためにデータ伝送速度を落として、パケットの再送処理が行われることになるため、データの伝送時間が遅くなる。
【0057】
このように、本発明においては、パケットロスや遅延のゆらぎは発生するものという前提に立ち、回線のキャパシティよりも速い速度でパケットを送り込む。これにより、スイッチのバッファに空きが出た際に自分のパケットがバッファに入る確率を上げることが出来る。
【0058】
実際にパケットロスが発生した場合、そのことを素早く検知し、再送を行わなければならないが、「パケットを送信後一定時間を経過しても受領確認(Ack)が来ない場合にパケットロスとする」といった従来のTCPなどにおける制御方式だと、遅延に揺らぎが発生した場合に実際はパケットロスしていなかったのに待ち時間の閾値を越えてしまう場合がある。実際、スイッチのバッファがいっぱいになると、遅延量が数百ミリ秒以上、酷いときには1秒を超えることもあり、それだけの揺らぎが発生することを考慮しなければならない。また、従来の技術では、「遅延の発生」=「回線混雑度の増加」=「パケットロスの発生確率の上昇」と考え、遅延が発生しないように制御するものがほとんどであった。
【0059】
これに対し、本発明では、パケットロスや遅延は発生するものという前提で通信が制御され、どれだけ揺らぎや遅延が発生しても問題が発生しない方式として、「パケットを連続送信後、受領確認(Ack)が返って来たパケットより前に送信したが受領確認が返ってきていないパケットをパケットロスとする」という制御方式を採用している。パケットの受領確認が返ってくる時間を予定していないという点で、従来の制御方式とは異なる制御方式である。ただし、実際には、パケットがリオーダーで届く場合もあるので、パケットロスと判定する時刻に若干の遊びを持たせることが好ましい。これにより、受信側ですでに受信済みのパケットを再度受信してしまうことがほぼなくなり、非常に効率の良い転送が可能となる。
【0060】
また、本高速転送プロトコルは、回線のキャパシティをほとんど使い切ってしまうため、自分が専有して良い回線であれば問題ないが、他者と共有する回線の場合、問題が発生する場合がありうる。そのため、転送効率指定を可能とすることが好ましい。これは、例えば、70%と指定した場合、回線のキャパシティの70%まで使用して転送する方式である。
【0061】
そのためには、定期的かつ瞬間的に(例えば10秒に1秒間)、回線のキャパシティを計るため、速い速度でパケットを投げ、そこで得られたレート情報に転送効率を掛けたレートを通常の上限レートとして制御する。これは、瞬間的に回線を圧迫するが、他の時間は回線に空きがあるため、他の通信が途切れてしまうことはない。
【0062】
さらに、サーバに対し、UDPの1ポートのみで、データ転送および制御を行うことが好ましい。これにより、クライアントやサーバがNAT環境であっても問題なくデータ転送が可能である。
【0063】
次に、本発明の一実施形態によるデータ伝送方式を利用した複数拠点配信処理について説明する。
【0064】
図7は、本発明の一実施形態に係るデータ伝送方式を利用した複数拠点配信システム80のアーキテクチャを示す図である。複数拠点配信システムは、送信側装置10と受信側装置20と複数の送受信装置70とがネットワークNを介して接続されて構成される。
【0065】
送信側装置10、受信側装置20、及びネットワークNは上述の例と同じ構成であるので詳細を省略する。送受信装置70は、送信側装置10の機能と受信側装置20の機能を含んで構成される。そして、送信側装置10(送受信装置70に含まれる送信側装置10を含む)と受信側装置20(送受信装置70に含まれる受信側装置20を含む)の間を本発明による高速データ伝送方式で通信を制御し、これらを数珠繋ぎに直列的に繋ぎ合わせることによって複数拠点配信処理を実現している。
【0066】
図8は、本発明の一実施形態に係る送信側装置10、受信側装置20、及びこれらを含む送受信装置70の機能構成を示すブロック図である。
【0067】
同図に示すように、送受信装置70は受信側装置20と送信側装置10とが一つの機器に納められている。そして、受信側装置20のパケット受信モジュール21で受信したデータパケットが、そのまま同一の機器内にある送信側装置10のパケット送出モジュール12に渡される。その他、送信側装置10及び受信側装置20の機能構成は上述の実施形態と同様である。
【0068】
図9は、本発明の一実施形態における複数拠点配信処理の概略を示すフローチャートである。なお、本実施例では、A拠点から、B拠点を経由して、C拠点に配信する場合を想定している。なお、同図は一例にすぎず、実際は拠点数に制限はない。
【0069】
まず、A拠点はB拠点に対し、上述の高速データ転送プロトコルを用い、データ転送を開始する(S91)。
【0070】
B拠点は、上述の高速データ伝送における受信側装置20と同様の処理を行いつつ、送信側装置10としても機能し、A拠点から受信したデータパケットをC拠点に転送する(S92)。ただし、B拠点がすでに受信済みのパケットを再度受信した場合は、C拠点への転送は行わない。B拠点とC拠点間では、上述の高速データ伝送における送信側装置10と受信側装置20と同様に、経路中でパケットロスが発生した場合は、B拠点から再送処理を行う。拠点数が多い場合でも、上記のB拠点に相当する拠点が増えるだけで、全体の効率としてはほとんど変わらない。
【0071】
このように、上述の受信側装置20と送信側装置10の機能を備え、上述のデータ伝送方式による受信と送信をほぼ同時に行うことのできる送受信装置70を前提に、これらの拠点間を数珠つなぎにデータ転送することで、複数拠点に高速略同時データ伝送を可能としている。なお、光ファイバー等の全二重で上下対象の回線網であれば、上下の両方の帯域が活用できる。従来の技術や製品では、転送をファイル単位で扱うため、ひとつのファイルの転送が終らないと、次の転送が行えなかったり、TCPを用いているため、パケットロスや遅延のゆらぎにより転送レートが劣化するものがほとんどであったところ、本複数拠点配信方式では、上述の高速データ伝送の制御プロトコル、および、各拠点が同程度の回線に接続されていることを前提とし、サーバは、パケット単位で受信したデータを、次のサーバにそのまま転送する。上下対称の回線であれば、受信と送信は同時に行えるため、効率はほとんど落ちない。これにより、複数の拠点に対し、1対向のみで転送する場合と比べて、ほとんど同じ時間で複数の拠点に高速で転送が可能である。
【0072】
以上、詳述したとおり、本発明は、インターネット等のIP通信網を用いて、回線のキャパシティいっぱいまで活用して高速に拠点から拠点へデータを転送するためのプロトコルおよび制御方式に関する。本発明によれば、パケットロスが頻発するような回線であっても、ほとんど影響を受けずに安定したデータ伝送が可能である。
【0073】
具体的には、UDPのようなAck応答を要しないプロトコルを用いて、信頼性を確保しつつ、高速なデータ伝送を可能とする制御方式であり、本発明の実施形態はさらにその効率を高め、回線速度、回線品質にほとんど影響されず、ユーザが回線にあわせた特別な設定を行うこともなく、回線のキャパシティいっぱいまで利用して高速なデータ伝送を可能とする制御方式である。
【0074】
また、このデータ伝送システムを応用し、ある拠点から複数拠点を数珠つなぎにパケットを中継し、データの同時伝送を可能とする。本実施形態によれば、特別な回線は必要なく、一般的なBフレッツに代表される光ファイバーブロードバンドを用いて回線のキャパシティいっぱいまで利用した上で、複数拠点への高速な同時転送を可能としている。
【0075】
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【符号の説明】
【0076】
1…データ伝送システム、10…送信側装置、11…送出時刻記録モジュール、12…パケット送出モジュール、13…送出レート調整モジュール、14…受領確認受信モジュール、15…再送判定モジュール、20…受信側装置、21…パケット受信モジュール、22…受信パケット番号記録モジュール、23…受領確認送信モジュール、24…過去分受領確認情報記憶モジュール、25…ソート処理モジュール、26…受信レート計算モジュール、27…タイマー、70…送受信装置、80…複数拠点配信システム

【特許請求の範囲】
【請求項1】
送信側装置から受信側装置に対してパケット通信網を介してデータを伝送する方法であって、前記送信側装置が、
前記受信側装置に対して複数のパケットを連続的に送出する第一のステップと、
前記受信側装置から送出された、前記受信側装置が前記複数のパケットのうち少なくとも一部を受領したことを示す受領確認を受信する第二のステップと、
前記受領確認によって前記受信側装置による受領が確認されたパケットよりも前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送する第三のステップと、
を備えるデータ伝送方法。
【請求項2】
前記第三のステップは、前記受領確認によって前記受信側装置による受領が確認されたパケットのうち最も直近に送出されたパケットの送出時刻よりも所定時間以上前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送することを特徴とする請求項1に記載のデータ伝送方法。
【請求項3】
前記第一のステップは、パケットを送出する際に、当該パケットを識別可能な識別情報と当該パケットの送出時刻とを対応付けて記録するステップを含むことを特徴とする請求項1又は2に記載のデータ伝送方法。
【請求項4】
前記受領確認は、前記受信側装置が受領したパケットの識別情報を含むことを特徴とする請求項3記載のデータ伝送方法。
【請求項5】
前記受領確認は、過去の受領確認に含まれていた識別情報を含むことを特徴とする請求項4記載のデータ伝送方法。
【請求項6】
前記第一のステップは、回線キャパシティより速くパケットを送出することを特徴とする請求項1乃至5のいずれかに記載のデータ伝送方法。
【請求項7】
受信側装置に対してパケット通信網を介してデータを伝送する送信側装置であって、
受信側装置に対して複数のパケットを連続的に送出するパケット送出モジュールと、
前記受信側装置から送出された、前記受信側装置が前記複数のパケットのうち少なくとも一部を受領したことを示す受領確認を受信する受領確認受信モジュールと、
前記受領確認によって前記受信側装置による受領が確認されたパケットよりも前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送する再送判定モジュールと、
を備える送信側装置。
【請求項8】
前記再送判定モジュールは、前記受領確認によって前記受信側装置による受領が確認されたパケットのうち最も直近に送出されたパケットの送出時刻よりも所定時間以上前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送することを特徴とする請求項7に記載の送信側装置。
【請求項9】
前記パケット送出モジュールは、回線キャパシティより速くパケットを送出することを特徴とする請求項7又は8に記載の送信側装置。
【請求項10】
送信側装置と受信側装置とを備え、パケット通信網を介してデータを伝送するデータ伝送システムにおいて、
前記送信側装置は、
受信側装置に対して複数のパケットを連続的に送出するパケット送出モジュールと、
前記受信側装置から送出された、前記受信側装置が前記複数のパケットのうち少なくとも一部を受領したことを示す受領確認を受信する受領確認受信モジュールと、
前記受領確認によって前記受信側装置による受領が確認されたパケットよりも前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送する再送判定モジュールと、
を備え、
前記受信側装置は、
前記送信側装置から受信したパケットの受領確認を送信する受領確認送信モジュールを備える、
ことを特徴とするデータ伝送システム。
【請求項11】
前記再送判定モジュールは、前記受領確認によって前記受信側装置による受領が確認されたパケットのうち最も直近に送出されたパケットの送出時刻よりも所定時間以上前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送することを特徴とする請求項10に記載のデータ伝送システム。
【請求項12】
前記パケット送出モジュールは、回線キャパシティより速くパケットを送出することを特徴とする請求項10又は11に記載のデータ伝送システム。
【請求項13】
請求項1乃至6のいずれかに記載のデータ伝送方法をコンピュータに実行させるためのプログラム。
【請求項14】
請求項13に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項15】
前記請求項1乃至6のいずれかに記載のデータ伝送方法によるデータ送受信が可能な複数の送受信装置の間で、数珠つなぎにデータ伝送を行うことによって、前記複数の送受信装置間で略同時にデータ伝送を行うことを特徴とするデータ転送方法。
【請求項16】
パケット通信網を介して、一の装置から受信したデータを他の装置に転送する方法であって、
前記一の装置から複数のパケットを受信する第一のステップと、
前記他の装置に対して、前記受信した複数のパケットを送出する第二のステップと、
前記他の装置から送出された、前記他の装置が前記複数のパケットのうち少なくとも一部を受領したことを示す受領確認を受信する第三のステップと、
前記受領確認によって前記他の装置による受領が確認されたパケットよりも前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送する第四のステップと、
を備えるデータ転送方法。
【請求項17】
前記一の装置から受信したパケットの受領確認を送信する第五のステップをさらに備えることを特徴とする請求項16に記載のデータ転送方法。
【請求項18】
前記第四のステップは、前記受領確認によって前記他の装置による受領が確認されたパケットのうち最も直近に送出されたパケットの送出時刻よりも所定時間以上前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送することを特徴とする請求項16又は17に記載のデータ転送方法。
【請求項19】
前記第二のステップは、回線キャパシティより速くパケットを送出することを特徴とする請求項16乃至18のいずれかに記載のデータ転送方法。
【請求項20】
パケット通信網を介して、一の装置から受信したデータを他の装置に転送する送受信装置であって、
前記一の装置からパケットを受信するパケット受信モジュールと、
前記他の装置に対して、前記受信したパケットを送出するパケット送出モジュールと、
前記他の装置から送出された、前記他の装置が前記送出したパケットのうち少なくとも一部を受領したことを示す受領確認を受信する受領確認受信モジュールと、
前記受領確認によって前記他の装置による受領が確認されたパケットよりも前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送する再送判定モジュールと、
を備える送受信装置。
【請求項21】
前記一の装置から受信したパケットの受領確認を送信する受領確認送信モジュールを更に備えることを特徴とする請求項20に記載の送受信装置。
【請求項22】
前記再送判定モジュールは、前記受領確認によって前記他の装置による受領が確認されたパケットのうち最も直近に送出されたパケットの送出時刻よりも所定時間以上前に送出されたパケットであり、かつ、受領確認を受信していないパケットを再送することを特徴とする請求項20又は21に記載の送受信装置。
【請求項23】
前記パケット送出モジュールは、回線キャパシティより速くパケットを送出することを特徴とする請求項20乃至22のいずれかに記載の送受信装置。
【請求項24】
前記請求項20乃至23のいずれかに記載された送受信装置を複数備え、当該複数の送受信装置の間で、数珠つなぎにデータ伝送を行うことによって、前記複数の送受信装置間で略同時にデータ伝送を行うことを特徴とするデータ転送システム。
【請求項25】
請求項16乃至19のいずれかに記載のデータ転送方法をコンピュータに実行させるためのプログラム。
【請求項26】
請求項25に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−100165(P2012−100165A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−247727(P2010−247727)
【出願日】平成22年11月4日(2010.11.4)
【出願人】(509137087)株式会社TBSテレビ (3)
【Fターム(参考)】