JP2014131093A - プログラム、情報処理装置、及び通信方法 - Google Patents

プログラム、情報処理装置、及び通信方法 Download PDF

Info

Publication number
JP2014131093A
JP2014131093A JP2012286543A JP2012286543A JP2014131093A JP 2014131093 A JP2014131093 A JP 2014131093A JP 2012286543 A JP2012286543 A JP 2012286543A JP 2012286543 A JP2012286543 A JP 2012286543A JP 2014131093 A JP2014131093 A JP 2014131093A
Authority
JP
Japan
Prior art keywords
data
information processing
processing apparatus
packet
sessions
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.)
Granted
Application number
JP2012286543A
Other languages
English (en)
Other versions
JP5998923B2 (ja
Inventor
Takahiro Takenaka
隆宏 武中
Minoru Inoue
井上  稔
Daisuke Fujita
大丞 藤田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012286543A priority Critical patent/JP5998923B2/ja
Priority to US14/138,914 priority patent/US9906331B2/en
Publication of JP2014131093A publication Critical patent/JP2014131093A/ja
Application granted granted Critical
Publication of JP5998923B2 publication Critical patent/JP5998923B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Environmental & Geological Engineering (AREA)

Abstract

【課題】あるセッションの送信遅延が大きくなるリスクを低減すること。
【解決手段】複数のセッションのデータ21、22を他の情報処理装置7に送信可能な情報処理装置10が提供される。情報処理装置10は、通信部11及び制御部12を有する。通信部11は、他の情報処理装置7が受信した第1のデータ24の処理に要した時間に応じた処理時間情報25を、他の情報処理装置7から受信し、また、1又は2以上のセッションのデータ21、22を含む第2のデータ23を他の情報処理装置7に送信する。制御部12は、処理時間情報25を用いて、複数のセッションそれぞれについて送信を許可する単位時間当たりのデータ量の上限値を算出し、第2のデータ23を送信するとき、算出した上限値に基づいてセッション毎のデータ量を制限する。
【選択図】図1

Description

本発明は、プログラム、情報処理装置、及び通信方法に関する。
現在、データ通信用のネットワークとして、インターネット、Local Area Network(LAN)、Wide Area Network(WAN)、携帯電話網などの様々なネットワークが利用されている。データ通信ネットワークにおいては、有限の通信リソースに対して過大なトラフィックが発生し障害が起こらないように、帯域制御を行うことが多い。帯域制御においては、ユーザや情報処理装置やアプリケーションソフトウェアなどの通信主体の間の公平を図る観点から、通信主体毎に帯域を制限することもある。
例えば、ユーザ毎に当該ユーザによって確立された1又は2以上のTransmission Control Protocol(TCP)セッションの使用帯域を合計し、合計帯域が閾値を超えたユーザについて帯域制限を行う帯域制御装置が提案されている。この帯域制御装置は、帯域制限を行うユーザのTCPウィンドウサイズを減少させるか、又はTCPのACKパケットの返信を遅延させることで、ユーザ毎の帯域制限を実現する。
なお、ある通信用端末において利用可能な最大帯域を計測し、最大帯域が閾値以上であるか否かに応じて、符号化速度、パケット長、パケット送信間隔、パケット優先度、コーデック種別などを動的変換する呼接続システムが提案されている。この呼接続システムは、通信用端末における最大帯域を、パケットの往復遅延時間やパケットロス率に基づいて算出する。また、複数のソースから供給されるデータを多重化して転送するデータ多重化方法が提案されている。このデータ多重化方法では、データを多重化する際に、セッション識別子とパケット通し番号をヘッダ情報としてデータに付加する。
国際公開第2005/006673号 特開2007−36960号公報 特開2007−235356号公報
送信装置が複数のセッションのデータを受信装置に対して送信し得るとき、セッション間の公平性の観点から、セッション毎に帯域制限が行われることが好ましい。しかし、従来の帯域制限は、主にネットワークの通信状態に基づいて行われていた。そのため、受信装置のデータ処理の負荷がボトルネックになっていると、送信装置が空いた通信帯域を用いて受信装置にとって過大な量のデータを送信してしまう可能性があった。その結果、従来の帯域制限の方法では、複数のセッションの間の公平を十分に図れなくなり、帯域制限の目的を十分に達成できなくなるおそれがあるという問題があった。
例えば、セッション#1のデータを、ネットワークの通信帯域を占有しないように送信し始め、その後にセッション#2のデータを送信し始めるとする。通信帯域に余裕があることから、セッション#2のデータも円滑に送信できると期待される。しかしながら、受信装置が先に受信したセッション#1のデータについて、計算量の大きい処理(例えば、誤り訂正復号)や低速な処理(例えば、補助記憶装置へのデータの書き込み)を行うと、データ処理がボトルネックになり得る。その場合、例えば、受信装置から、後続のセッション#2のデータの受信が一時的に拒否されることも有り得る。これは、セッション#1のデータを多く送信し過ぎたことが一因であると考えられる。
なお、上記の問題が生じる場合の「セッション」は、複数のデータストリームを互いに区別できるような論理的な通信単位であればよい。例えば、ユーザや情報処理装置やアプリケーションソフトウェアなどの通信主体が同じデータ群を、同一のセッションに属するデータ群として扱ってもよい。また、TCPセッションのように、同じ通信主体が並行して複数確立できる論理的な通信単位を「セッション」として扱ってもよい。
1つの側面では、本発明は、あるセッションの送信遅延が大きくなるリスクを低減したプログラム、情報処理装置、及び通信方法を提供することを目的とする。
1つの態様では、複数のセッションのデータを他のコンピュータに送信可能なコンピュータに実行させるプログラムが提供される。プログラムを実行するコンピュータは、他のコンピュータが受信した第1のデータの処理に要した時間に応じた処理時間情報を、他のコンピュータから取得する。処理時間情報を用いて、複数のセッションそれぞれについて送信を許可する単位時間当たりのデータ量の上限値を算出する。1又は2以上のセッションのデータを含む第2のデータを他のコンピュータに送信するとき、算出した上限値に基づいてセッション毎のデータ量を制限する。
また、1つの態様では、複数のセッションのデータを他の情報処理装置に送信可能な情報処理装置が提供される。また、1つの態様では、複数のセッションのデータを他の情報処理装置に送信可能な情報処理装置が実行する通信方法が提供される。
1つの側面では、あるセッションの送信遅延が大きくなるリスクを低減できる。
第1の実施の形態に係る情報処理装置の例を示した図である。 第2の実施の形態に係る通信システムの例を示した図である。 第2の実施の形態に係る情報処理装置のハードウェアの例を示した図である。 第2の実施の形態に係る送信側の情報処理装置の機能ブロックの例を示した図である。 第2の実施の形態に係る受信側の情報処理装置の機能ブロックの例を示した図である。 RPS符号及びUDPを利用したデータの送信方法の例を示した図である。 RPS符号化及びRPS復号の処理について説明した図である。 RPS符号及びUDPを利用したデータ送信方法における再送要求の方法について説明した図である。 第2の実施の形態に係るデータの送信方法の例を示した図である。 第2の実施の形態に係るデータパケットの構造例を示した図である。 第2の実施の形態に係る送信処理の流れについて説明した図である。 第2の実施の形態に係る処理速度の取得方法について説明した図である。 第2の実施の形態に係る処理速度の計測方法について説明した図である。 第2の実施の形態に係る受信処理の流れについて説明した図である。
以下、図面を参照しながら実施の形態について説明する。
[第1の実施の形態]
第1の実施の形態について説明する。
図1は、第1の実施の形態に係る情報処理装置の例を示した図である。
図1に示すように、第1の実施の形態に係る情報処理装置10は、通信部11及び制御部12を有する。また、情報処理装置10は、ネットワーク5を介して他の情報処理装置7と接続されている。
また、図示しないが、送信側の情報処理装置10及び受信側の情報処理装置7は、記憶装置を有している。この記憶装置は、Random Access Memory(RAM)などの揮発性記憶装置であってもよいし、Hard Disk Drive(HDD)やフラッシュメモリなどの不揮発性記憶装置であってもよい。
また、制御部12は、Central Processing Unit(CPU)やDigital Signal Processor(DSP)などのプロセッサであってもよい。また、制御部12は、Application Specific Integrated Circuit(ASIC)やField Programmable Gate Array(FPGA)などのプロセッサ以外の電子回路であってもよい。また、制御部12は、上述した記憶装置又は他のメモリに記憶されたプログラムを実行する。
情報処理装置10は、複数のセッションのデータ21、22を他の情報処理装置7に送信可能である。例えば、情報処理装置10は、データ21、22にセッションを識別する識別情報を付加したデータパケットを生成し、そのデータパケットを符号化して他の情報処理装置7に送信することができる。
通信部11は、他の情報処理装置7が受信した第1のデータ24の処理に要した時間に応じた処理時間情報25を、他の情報処理装置7から受信する。例えば、通信部11は、既知のデータを含むデータパケットを他の情報処理装置7に送信し、既知のデータの処理に要した時間を含む処理時間の情報を取得する。処理時間には、例えば、復号処理やデータの書き込み処理などに要した時間が含まれる。
また、通信部11は、1又は2以上のセッションのデータ21、22を含む第2のデータ23を他の情報処理装置7に送信する。
制御部12は、処理時間情報25を用いて、複数のセッションそれぞれについて送信を許可する単位時間当たりのデータ量の上限値を算出する。制御部12は、第2のデータ23を送信するとき、算出した上限値に基づいてセッション毎のデータ量を制限する。このように、受信側の処理時間に応じてセッション毎の送信可能なデータ量を制限することで、あるセッションの送信遅延が大きくなるリスクを低減できる。
以上、第1の実施の形態について説明した。
[第2の実施の形態]
図2は、第2の実施の形態に係る通信システムの例を示した図である。
(システムについて)
まず、図2を参照しながら、第2の実施の形態に係る通信システム100について説明する。図2は、第2の実施の形態に係る通信システムの例を示した図である。
図2に示すように、通信システム100は、情報処理装置110と、ネットワーク94を介して情報処理装置110に接続された情報処理装置130とを有する。なお、以下の説明では、情報処理装置110を送信側、情報処理装置130を受信側と表現することがある。また、説明の都合上、情報処理装置110から情報処理装置130へとデータを送信する場合を想定して説明を進める。但し、情報処理装置130から情報処理装置110へと情報が送信されることもある。
図2の例では情報処理装置110、130が共に据え置き型のコンピュータの形状で表現されているが、情報処理装置110、130は据え置き型のコンピュータ以外であってもよい。例えば、情報処理装置110は、ノート型パーソナルコンピュータ、タブレット型コンピュータ、携帯電話、スマートフォン、デジタルカメラ、カーナビゲーションシステムなどであってもよい。また、情報処理装置110は、無線基地局、無線通信端末、ルータ、ハブ、モデム、衛星通信用の通信機器、その他の通信機器であってもよい。なお、情報処理装置130についても同様である。
また、図2の例では情報処理装置110を1台のコンピュータで表現しているが、複数台のコンピュータを接続した並列型のコンピュータであってもよいし、クラウドコンピューティングシステムであってもよい。この場合、情報処理装置110が有する機能の一部又は全部は、複数のコンピュータを利用して実現される。なお、情報処理装置130についても同様である。また、情報処理装置110、130のうち一方の機能を1台のコンピュータで実現させ、他方の機能を複数台のコンピュータで実現させてもよい。
(ハードウェアについて)
情報処理装置110の機能は、図3に示すようなハードウェアにより実現される。図3は、第2の実施の形態に係る情報処理装置のハードウェアの例を示した図である。なお、図3に示したハードウェア要素の組み合わせは一例であり、実施の態様に応じて一部の要素を省略してもよいし、新たな要素を追加することも可能である。
図3に示すように、情報処理装置110は、例えば、CPU901、RAM902、HDD903、画像信号処理部904、入力信号処理部905、ディスクドライブ906、及び通信インターフェース907を有する。
なお、CPU901は、第1の実施の形態に係る制御部12の一例である。RAM902やHDD903は、第1の実施の形態に係る記憶装置の一例である。CPU901及び通信インターフェース907は、第1の実施の形態に係る通信部11の一例である。
CPU901は、プログラムに記述された命令を実行する演算器を含むプロセッサである。CPU901は、HDD903に記憶されているプログラムやデータの少なくとも一部をRAM902にロードし、プログラムに記述された命令を実行する。なお、CPU901は、複数のプロセッサコアを含んでいてもよい。また、情報処理装置110は、複数のCPU901を搭載していてもよい。この場合、情報処理装置110は、処理を並列実行することができる。
RAM902は、CPU901が実行するプログラムや、処理に用いられるデータを一時的に記憶するための揮発性メモリである。なお、情報処理装置110は、RAM902とは異なる種類のメモリを有していてもよい。また、情報処理装置110は、複数のメモリを備えていてもよい。
HDD903は、Operating System(OS)、ファームウェア、或いは、アプリケーションソフトウェアなどのプログラムや、処理に用いられるデータなどを記憶する不揮発性記憶装置の一例である。なお、情報処理装置110は、フラッシュメモリやSolid State Drive(SSD)など、HDD903とは異なる種類の記憶装置を有していてもよい。また、情報処理装置110は、複数の記憶装置を有していてもよい。
画像信号処理部904は、CPU901による制御を受け、情報処理装置110に接続された表示装置91に画像を出力する。表示装置91は、例えば、Cathode Ray Tube(CRT)ディスプレイ、Liquid Crystal Display(LCD)、Plasma Display Panel(PDP)、Organic Electro-Luminescence Display(OELD)などの表示デバイスである。
入力信号処理部905は、情報処理装置110に接続された入力デバイス92から入力信号を取得し、CPU901に通知する。入力デバイス92としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、トラックボール、リモートコントローラ、ボタンスイッチなどを用いることができる。
ディスクドライブ906は、記録媒体93に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体93としては、例えば、Flexible Disk(FD)、HDDなどの磁気ディスク、Compact Disc(CD)やDigital Versatile Disc(DVD)などの光ディスク、Magneto-Optical disk(MO)などの光磁気ディスクを用いることができる。ディスクドライブ906は、例えば、CPU901による制御を受け、記録媒体93から読み取ったプログラムやデータをRAM902又はHDD903に格納する。
通信インターフェース907は、ネットワーク94を介して他のコンピュータと通信を行うためのインターフェースである。通信インターフェース907は、有線インターフェースであってもよいし、無線インターフェースであってもよい。また、通信インターフェース907は、衛星通信用の通信インターフェースであってもよいし、携帯電話網に接続するための通信インターフェースであってもよい。
(情報処理装置110の機能について)
上記のハードウェアを用いることで、情報処理装置110は、図4に示すような機能を実現することができる。図4は、第2の実施の形態に係る送信側の情報処理装置の機能ブロックの例を示した図である。
図4に示すように、情報処理装置110は、データ入力部111と、ブロック化部113と、パケット生成部112と、消失訂正符号化部114と、通信部115と、制御部116とを有する。
なお、ブロック化部113、パケット生成部112、消失訂正符号化部114、通信部115、及び制御部116が有する機能の一部又は全部は、CPU901が実行するプログラムのモジュールとして実現できる。また、ブロック化部113、パケット生成部112、消失訂正符号化部114、通信部115、及び制御部116が有する機能の一部又は全部をソフトウェアではなく電子回路として実現することも可能である。
データ入力部111には、受信側の情報処理装置130に送信するデータが入力される。データ入力部111に入力されるデータは、情報処理装置110とは異なる外部のコンピュータ上で動作しているアプリケーションソフトウェアから提供されたものであってもよいし、情報処理装置110上で動作しているアプリケーションソフトウェアから提供されたものであってもよい。ここでは、複数の異なるアプリケーションソフトウェアからデータ入力部111にデータが入力された状況を想定して説明を進める。
なお、アプリケーションソフトウェアの例として、情報処理装置110の起動後に固定的に起動されて常駐するアプリケーションソフトウェアを想定する。このようなアプリケーションソフトウェアの数は予め設定されているものとする。但し、起動中のアプリケーションソフトウェアやデータの送信を行っているアプリケーションソフトウェアをデータ入力部111が動的に検知するような仕組みに変形してもよい。
1つのアプリケーションソフトウェアは、複数のセッションを確立することができる。セッションは、アプリケーションソフトウェアがポート番号をトランスポート層に指定することで確立される。このとき、送信側のアプリケーションソフトウェアは送信元ポート番号を指定し、受信側のアプリケーションソフトウェアは宛先ポート番号を指定する。各アプリケーションソフトウェアが確立するセッションの数は動的に変化する。ある時点で確立されているセッションの数はトランスポート層により把握されている。
上記のようなアプリケーションソフトウェアからデータ入力部111に入力されたデータは、パケット生成部112に入力される。パケット生成部112は、データにヘッダを付加してデータパケットを生成する。ヘッダには、各データに対応するセッションの識別情報(セッションID)やデータ長などの情報が含まれる。なお、各データは、セッション毎(トランスポート層のポート番号毎)に分類されてアプリケーションソフトウェアと受け渡しされる。このとき、セッションIDが参照される。パケット生成部112により生成されたデータパケットは、ブロック化部113に入力される。
ブロック化部113は、パケット生成部112から入力されたデータパケットをブロック化する。ここで言うブロック化とは、予め設定した数のデータパケットを蓄積し、蓄積したデータパケットを1つのパケット群(ブロック)として管理することを意味する。このとき、ブロック化部113は、複数の異なるアプリケーションソフトウェアから入力されたデータのデータパケットを同じブロックに割り当てることを許容してデータパケットのブロック化を実行する。
このように、複数のアプリケーションソフトウェアから入力されたデータのデータパケットが混在することを許容することで、1つのブロックを1つのアプリケーションソフトウェアが占有する場合と比べ、他のアプリケーションソフトウェアのデータ送信の遅延を抑制できる。
ブロック化部113は、ブロックにデータパケットを割り当てていき、割り当てたデータパケットの数が当該ブロックに割り当て可能なデータパケットの数に達した場合(ブロックが満杯になった場合)、当該ブロックをブロックリストに登録する。このブロックリストは、符号化可能なブロックを登録するための情報である。あるブロックが満杯になった場合、ブロック化部113は、当該ブロックの次のブロックに対してデータパケットを割り当てる。
消失訂正符号化部114は、ブロックリストに登録された1つのブロックに対応する複数のデータパケットを符号化して複数のパリティパケットを生成する。このように、ブロックリストを利用することで、ブロック化部113によるブロック化の処理と、消失訂正符号化部114による符号化の処理とを非同期に実行することができる。
符号化の方式としては、例えば、RPS符号などの消失訂正符号を用いる方式が適用される。消失訂正符号はForward Error Correction(FEC)符号の一種である。消失訂正符号を用いるデータ転送方式では、送信側で予めデータに冗長性を付加しておき、伝送路でパケットの一部が消失しても受信側で追加の情報を得ずに元のデータを復元できるようにする。
消失訂正符号化部114によりブロック毎に生成された複数のパリティパケットは、通信部115に入力される。なお、各パリティパケットには、Cyclic Redundancy Check(CRC)などの誤り検出符号が付加されていてもよい。通信部115は、消失訂正符号化部114により生成された複数のパリティパケットを受信側の情報処理装置130へと送信する。
制御部116は、受信側の情報処理装置130における負荷状況を示す情報を取得する。例えば、制御部116は、予め用意したダミーパケットを消失訂正符号化したダミーのパリティパケットを通信部115により受信側の情報処理装置130へと送信し、受信側の情報処理装置130でダミーパケットの復元に要した処理時間を計測させる。そして、制御部116は、負荷状況を示す情報として、受信側の情報処理装置130から単位時間当たりの処理データ量を示す処理速度の情報を取得する。
なお、処理速度の情報を取得する方法に代えて、処理時間及び復元したデータのデータ量を示す情報を取得し、取得した情報から制御部116が処理速度の情報を計算する方法も考えられる。この場合、処理時間及びデータ量の情報を取得した制御部116は、取得した情報を利用して、単位時間当たりの処理データ量を示す処理速度の情報を計算する。但し、以下では処理速度の情報が受信側の情報処理装置130から得られることを前提に説明を進める。
制御部116は、受信側の情報処理装置130から取得した処理速度の情報に基づいて、受信側の情報処理装置130へデータを送信する際の帯域を制限する。制御部116は、受信側の情報処理装置130へ出力可能なデータの送信レートを、取得した処理速度に設定する。制御部116は、この送信レートをセッション毎に割り当てる。
まず、制御部116は、アプリケーションソフトウェア毎に送信レートを割り当てる。例えば、3つのアプリケーションソフトウェアが存在する場合、制御部116は、設定した送信レートを3分割する。あるアプリケーションソフトウェアが複数のセッションを確立している場合、制御部116は、そのアプリケーションソフトウェアに割り当てた送信レートをセッション数でさらに分割し、分割した送信レートをセッション毎に割り当てる。
なお、制御部116は、受信側の情報処理装置130から取得した処理速度の情報に基づいて1つのブロックに含めるデータパケットの数を制御してもよい。
上記のように、制御部116は、受信側の情報処理装置130の負荷状況に応じてセッション毎に割り当てる帯域を制御する。例えば、前回計測された処理速度よりも今回計測された処理速度の方が遅い場合、制御部116は、受信側の情報処理装置130の処理負荷が高い状態にあると判断して、セッション毎に割り当てる帯域を低減させる。一方、前回計測された処理速度よりも今回計測された処理速度の方が速い場合、制御部116は、セッション毎に割り当てる帯域を増加させる。
なお、上記のような帯域制御は、トランスポート層がアプリケーションソフトウェアに対して行う受理応答を制御することで実現される。データを送信する際、アプリケーションソフトウェアは、セッション(送信元ポート番号)を指定してトランスポート層にデータを渡す。このアプリケーションソフトウェアが次のデータを送信するには、前に渡したデータに対する受理応答をトランスポート層から受け取ることが求められる。そのため、この受理応答を遅延させることで帯域を制限することができる。
例えば、制御部116は、アプリケーションソフトウェアから単位時間当たりに受理するデータ量がセッション毎に割り当てた帯域を超えないように受理応答を遅延させる。このような制御を実施することで、受信側の情報処理装置130による復号処理が追い付かずに受信バッファがオーバーフローすることなどを回避することができる。
また、制御部116は、処理速度に加えて、通信速度、パケットロス率、及びRound Trip Time(RTT)などのネットワーク状況をさらに考慮してセッション毎に割り当てる帯域を制御してもよい。通信速度は、単位時間当たりに送信できたデータ量から算出される。
パケットロス率は、送信したデータパケットのうち消失訂正復号によって復元されたデータパケットの割合である。但し、パケットロス率は、再送制御が開始される前に復元されたデータパケットの数に基づいて計算される。また、RTTは、送信が開始されてから、データパケットの復元完了後に送達される送達確認を受信するまでにかかった時間と処理時間との差分である。つまり、データパケットの送受信にかかった時間から、アプリケーション層で実行される処理にかかった時間を差し引いた時間をRTTとする。
例えば、パケットロス率が高い場合、制御部116は、セッション毎に割り当てる帯域や各ブロックに割り当てるデータのデータ量を低減させる。通信速度が速い場合、制御部116は、処理速度から判断される処理可能なデータ量の範囲内でセッション毎に割り当てる帯域や各ブロックに割り当てるデータのデータ量を増加させる。RTTが大きい場合、制御部116は、セッション毎に割り当てる帯域や各ブロックに割り当てるデータのデータ量を大きくする。
なお、各ブロックに割り当てるデータのデータ量を増加させることで、一度に多くのデータを送信することができる上、一又は複数のブロックを単位として受信処理が完了した際に送信される送達確認の頻度を低減できる。逆に、各ブロックに割り当てるデータのデータ量を減少させることで、復号処理の負荷を低減することができる。
上記のように、受信側の処理速度から判断される処理可能なデータ量の範囲内で、通信速度、パケットロス率、及びRTTを考慮してセッション毎に割り当てる帯域や各ブロックに割り当てるデータのデータ量を調整することにより、スループットを良好な状態に保つことが可能になる。
なお、受信側の情報処理装置130で一部のデータパケットが復元できなかった場合、制御部116は、パリティパケットの再送制御を実行する。例えば、パリティパケットA及びBからデータパケット#1が復元できる設定において、パリティパケットBが伝送路で失われるとデータパケット#1が復元不能になる。この場合、制御部116は、少なくともパリティパケットBを再送させる。
以上、送信側の情報処理装置110の機能について説明した。
(情報処理装置130の機能について)
次に、図5を参照しながら、受信側の情報処理装置130の機能について説明する。図5は、第2の実施の形態に係る受信側の情報処理装置の機能ブロックの例を示した図である。なお、受信側の情報処理装置130が有する機能は、送信側の情報処理装置110と同じハードウェアを用いて実現できる。
図5に示すように、情報処理装置130は、通信部131と、消失訂正復号部132と、再送制御部133と、整列部134と、データ出力部135とを有する。
なお、通信部131、消失訂正復号部132、再送制御部133、整列部134、及びデータ出力部135が有する機能の一部又は全部は、CPU901が実行するプログラムのモジュールとして実現できる。また、通信部131、消失訂正復号部132、再送制御部133、整列部134、及びデータ出力部135が有する機能の一部又は全部をソフトウェアではなく電子回路として実現することも可能である。
通信部131は、送信側の情報処理装置110から送信された1つのブロックに対応する複数のパリティパケットを受信する。通信部131により受信された複数のパリティパケットは、消失訂正復号部132に入力される。消失訂正復号部132は、各パリティパケットに対する誤り検出を実行して、当該パリティパケットが正しく受信されたか確認する。また、消失訂正復号部132は、各ブロックに対応する複数のパリティパケットのうち正しく受信されたパリティパケットを利用し、消失訂正復号の処理を実行して元のデータパケットを復元する。
また、消失訂正復号部132は、復元不能なデータパケットが存在する場合、再送制御部133に対し、復元不能なデータパケットを復元するために利用するパリティパケットの再送を要求するように依頼する。
例えば、データパケット#1を復元するためにパリティパケットA及びBが利用される場合、伝送路でパリティパケットBが失われると、データパケット#1が復元不能になる。この場合、消失訂正復号部132は、少なくともパリティパケットBの再送を要求するように再送制御部133に依頼する。この依頼を受けた再送制御部133は、送信側の情報処理装置110に対して復元不能なデータパケットの復元に用いるパリティパケットの再送を要求する。
再送されたパリティパケットは、通信部131により受信され、消失訂正復号部132に入力される。消失訂正復号部132は、再送されたパリティパケット、及び再送前に受信していたパリティパケットを利用して復元不能となっていたデータパケットを復元する。
上記のような再送制御に係る処理は、全てのデータパケットが復元されるまで繰り返し実行される。全てのデータパケットが復元された場合、消失訂正復号部132は、復元されたデータパケットを整列部134に入力する。整列部134は、復元されたデータパケットをセッション毎に分類する。また、順序が入れ替わったデータパケットがある場合、整列部134は、データパケットの順序を元に戻す。
整列部134によりセッション毎に分類されたデータパケットは、データ出力部135に入力される。データ出力部135は、セッション毎に分類されたデータパケットのデータをアプリケーションソフトウェアに出力する。例えば、データ出力部135は、受信側のアプリケーションソフトウェアにデータを渡すか、或いは、受信側の情報処理装置130に内蔵又は外部接続された記憶装置(例えば、HDDなどの補助記憶装置)にデータを格納する。
なお、通信部131がダミーパケットを消失訂正符号化したパリティパケットを受信した場合、消失訂正復号部132は、そのパリティパケットを対象に誤り検出及び消失訂正復号の処理を実行してダミーパケットを復元する。この場合、消失訂正復号部132は、消失訂正復号の処理に要した処理時間を計測する。また、消失訂正復号部132は、計測した処理時間の情報を用いて単位時間当たりの処理データ量を示す処理速度を計算する。
但し、消失訂正復号部132は、ダミーパケットの復元処理を開始した時点から、データ出力部135がダミーパケットのデータを出力するまで(例えば、補助記憶装置へのデータの書き込みが完了するまで)の時間を処理時間として計測してもよい。この場合、復号処理以外にアプリケーション層で実行された種々の処理の時間を含む処理時間が計測されるため、受信側の情報処理装置130の負荷状況をより的確に反映した処理速度の情報が得られることもある。例えば、記憶装置へのアクセスが集中することで処理が滞っている場合など、復号処理以外の処理が過負荷となっている状態を送信側の情報処理装置110で考慮することが可能になる。
さて、ダミーパケットの復元処理が完了すると、通信部131は、送信側の情報処理装置110に対して送達確認を送信する。この送達確認には、上記のようにして計算された処理速度の情報が含まれる。但し、送達確認には、処理速度の情報に代えて、処理時間及び復元したデータのデータ量を示す情報が含まれていてもよい。このように、処理速度の情報を含む送達確認を送信側の情報処理装置110に送信することで、送信側の情報処理装置110において処理速度に応じた帯域の制御を行うことが可能になる。
なお、処理速度の情報を含む送達確認は、ダミーパケットの復元処理を完了したタイミングのみで送信されてもよいし、一又は複数のブロックに対応するデータの復元処理が完了したタイミングでも送信されてもよい。後者の場合、実際にデータパケットが転送されている期間に、送達確認に含まれる処理速度の情報に基づいてセッション毎の帯域を制御できるようになり、時々刻々と変化する負荷状況をリアルタイムに反映させる動的な制御が可能になる。
以上、受信側の情報処理装置130の機能について説明した。
(RPS符号+UDPを用いたデータ送信方法について)
次に、消失訂正符号の一例としてRPS符号を取り上げ、RPS符号化したアプリケーションソフトウェアのデータをUser Datagram Protocol(UDP)により送信するデータ送信方法について説明する。
まず、図6を参照しながら、RPS符号及びUDPを利用したアプリケーションソフトウェアのデータの送信方法について説明する。図6は、RPS符号及びUDPを利用したデータの送信方法の例を説明した図である。図6の例は、送信側のアプリケーションソフトウェアAT、BTから、それぞれ受信側のアプリケーションソフトウェアAR、BRへとデータDA、DBを送信する処理を示している。
アプリケーションソフトウェアATから提供されたデータDAは、ミドルウェアMTによりブロックBL1などに割り当てられる。また、アプリケーションソフトウェアBTから提供されたデータDBは、ミドルウェアMTによりブロックBL2などに割り当てられる。
なお、ミドルウェアMTは、送信側の情報処理装置110上で動作しているソフトウェアである。ミドルウェアMTは、ブロックBL1に割り当てたデータをパケット化及びRPS符号化してRPS符号RPS1を生成する。同様に、ミドルウェアMTは、ブロックBL2、…、BLNにそれぞれ対応するRPS符号RPS2、…、RPSNを生成する。なお、RPS符号RPS1、…、RPSNは、パリティパケットの一例である。
RPS符号RPS1、…、RPSNは、UDPに従って受信側の情報処理装置130上で動作しているミドルウェアMRへと送信される。ミドルウェアMRは、RPS符号RPS1をRPS復号してブロックBL1に割り当てられたデータを復元する。
同様に、ミドルウェアMRは、ブロックBL2、…、BLNにそれぞれ割り当てられたデータを復元する。また、ミドルウェアMRは、アプリケーションソフトウェアATに対応するデータDA、及びアプリケーションソフトウェアBTに対応するデータDBを仕分ける。そして、ミドルウェアMRは、データDAをアプリケーションソフトウェアARに入力し、データDBをアプリケーションソフトウェアBRに入力する。
上記のように、UDPに従ってデータを送信することで、送達確認の頻度を抑制することができる分だけスループットを向上させることができる。また、データがRPS符号化されるため、伝送路で一部のRPS符号が消失してもデータを復元することができる。そのため、データ転送の確実性が向上する。また、消失訂正能力の高いRPS符号を適用することで、再送要求の頻度が低減され、スループットがさらに向上する。
(RPS符号化及び復号について)
ここで、図7を参照しながら、RPS符号化及びRPS復号の処理について説明を補足する。図7は、RPS符号化及びRPS復号の処理について説明した図である。図7の例は、データパケット#1〜#4をRPS符号化して送信し、RPS復号によりデータパケット#1〜#4を復元する処理を示している。
図7に示すように、RPS符号化方式では、送信する複数のデータパケットを組み合わせ、全てのデータパケットが複数のパリティパケットに変換される。各パリティパケットを生成するために用いるデータパケットの組み合わせは、一部のパリティパケットの消失に対して全てのデータパケットが復元できる可能性が高くなるような組み合わせに設定される。例えば、シミュレーションなどを用いてパリティパケットの組み合わせが決定される。
また、所定数のデータパケットに対してRPS符号化により生成されるパリティパケットの数は自由に変更することが可能である。そのため、パケットロス率が高い伝送路を用いる場合にはパリティパケットの数を増加させ、パケットロス率が低い伝送路を用いる場合にはパリティパケットの数を減少させるなど、状況に応じた柔軟な対応が可能になる。
図7の例では、データパケット#1、#2を用いてパリティパケットAが、データパケット#2、#3を用いてパリティパケットBが生成されている。また、データパケット#1、#3を用いてパリティパケットCが、データパケット#1、#2、#3、#4を用いてパリティパケットDが生成されている。
また、データパケット#3、#4を用いてパリティパケットEが、データパケット#1、#2、#3を用いてパリティパケットFが、データパケット#2、#3、#4を用いてパリティパケットGが生成されている。このように、各パリティパケットは、複数のデータパケットを用いて生成される。
図7に示すように、パリティパケットA〜Gは、UDPに従って送信される。伝送路で一部のパリティパケットB、E、Fが失われた場合、データパケット#1はパリティパケットA、Dを用いて復元され、データパケット#2はパリティパケットA、D、Gを用いて復元される。また、データパケット#3はパリティパケットC、D、Gを用いて復元され、データパケット#4はパリティパケットD、Gを用いて復元される。
図7の例ではパリティパケットB、E、Fが伝送路で失われているが、データパケット#1〜#4が全て復元されている。このように、各データパケットの復元に用いるパリティパケットの組み合わせが適当であれば、伝送路で一部のパリティパケットが消失しても、各データパケットを正しく復元することができる。
RPS符号は消失訂正能力の高い符号であるが、伝送路で多くのパリティパケットが消失した場合には、一部のデータパケットが復元不能となることがある。例えば、図8に示すように、パリティパケットB、D、E、Fが消失した場合、データパケット#4が復元不能になる。この場合、データパケット#4の復元に用いるパリティパケットの再送制御が行われる。図8は、RPS符号及びUDPを利用したデータ送信方法における再送要求の方法について説明した図である。
データパケット#4は、例えば、パリティパケットD、Gがあれば復元することが可能である。つまり、パリティパケットDが再送されればデータパケット#4を復元することができる。そのため、図8の例ではパリティパケットDの再送が要求される。但し、データパケット#4はパリティパケットE、Gの組み合わせでも復元可能であるため、パリティパケットEの再送が要求されてもよい。このように、再送を要求するパリティパケットの選択が可能な場合もある。
再送を要求するパリティパケットの選択が可能な場合、再送するパリティパケットの数がより少なくなるように、再送を要求するパリティパケットの組み合わせを選択することが好ましい。
例えば、2つのデータパケットを復号可能にするパリティパケットXと、4つのデータパケットを復号可能にするパリティパケットYとがある場合、パリティパケットYの再送を要求する方が好ましい。このような方法でパリティパケットを選択することにより、効率的に全てのデータパケットを復元することが可能になる。
以上説明したように、RPS符号は、所定数のデータパケットを送信するために用いるパリティパケットの数を自由に変更することができる。そのため、パケットロス率が低い伝送路ではパリティパケットの数を少なくし、パケットロス率が高い伝送路ではパリティパケットの数を多くするなどの調整を行うことができる。
(データ送信方法について)
図9は、第2の実施の形態に係るデータの送信方法の例を示した図である。図9の例は、送信側のアプリケーションソフトウェアAT、BTから、それぞれ受信側のアプリケーションソフトウェアAR、BRへとデータDA、DBを送信する処理を示している。
アプリケーションソフトウェアATから提供されたデータDAのデータパケットは、例えば、ミドルウェアMTによりブロックBL1に割り当てられる。但し、図9の例において、ミドルウェアMTは、ブロックBL1に割り当て可能なデータ量の全てをデータDAのデータパケットで満たすような割り当てを行わない。そのため、データDAのデータパケットの割り当て後も、ブロックBL1には割り当て可能なデータ量が残存する。
ミドルウェアMTは、残存するデータ量の分だけ、アプリケーションソフトウェアBTから提供されたデータDBのデータパケットをブロックBL1に割り当てる。同様に、ミドルウェアMTは、ブロックBL2、…、BLNに対してもデータDA、DBのデータパケットを公平に割り当てる。
ミドルウェアMTは、ブロックBL1に割り当てたデータパケットをRPS符号化してRPS符号RPS1を生成する。同様に、ミドルウェアMTは、ブロックBL2、…、BLNにそれぞれ対応するRPS符号RPS2、…、RPSNを生成する。RPS符号RPS1、…、RPSNは、UDPに従って受信側の情報処理装置130上で動作しているミドルウェアMRへと送信される。
ミドルウェアMRは、RPS符号RPS1をRPS復号してブロックBL1に割り当てられたデータパケットを復元する。同様に、ミドルウェアMRは、ブロックBL2、…、BLNにそれぞれ割り当てられたデータパケットを復元する。また、ミドルウェアMRは、復元したデータパケットをセッション毎に分類し、アプリケーションソフトウェアATに対応するデータDA、及びアプリケーションソフトウェアBTに対応するデータDBを復元する。そして、ミドルウェアMRは、データDAをアプリケーションソフトウェアARに入力し、データDBをアプリケーションソフトウェアBRに入力する。
上記の方法でも図6の例と同様にUDPに従ってデータを送信するため、送達確認の頻度を抑制することができる分だけスループットを向上させることができる。また、データがRPS符号化されるため、伝送路で一部のRPS符号が消失してもデータを復元することができる。そのため、データ転送の確実性が向上する。また、消失訂正能力の高いRPS符号を適用することで、再送要求の頻度が低減され、スループットがさらに向上する。
さらに、1つのブロックに対し、アプリケーションソフトウェアAT、BTからそれぞれ提供されたデータDA、DBが公平に割り当てられるため、1つのブロックを1つのアプリケーションソフトウェアが占有する場合と比べて、他のアプリケーションソフトウェアのデータ送信の遅延を抑制できる。その結果、アプリケーションソフトウェアAT、BTの公平性を確保することができる。
ところで、上記の方法を用いる場合、1つのブロックに複数のアプリケーションソフトウェアから提供されるデータのデータパケットが混在することになる。そのため、データパケットに含まれるヘッダには、図10に示すように、セッションを識別するための識別情報(セッションID)が含まれる。図10は、第2の実施の形態に係るデータパケットの構造例を示した図である。
図10に示すように、データパケットは、ヘッダ部及びデータ部を有する。データ部には、アプリケーションソフトウェアから提供されるデータが含まれる。ヘッダ部には、セッションID及びデータ長を示す情報が含まれる。
セッションIDは、例えば、アプリケーションソフトウェアATとミドルウェアMTとの間で確立したセッションを特定するための識別情報である。受信側でデータパケットに含まれるセッションIDを利用することで、セッション毎にデータパケットを仕分けることができるようになる。
上記のデータ送信方法によれば、あるアプリケーションソフトウェアが多量のデータを続けて入力し、そのデータが複数のブロックを占有してしまう場合や頻繁に再送要求が行われるような場合でも、他のアプリケーションソフトウェアが長い間待たされることが少なくなる。
ところで、送信側のアプリケーションソフトウェアと送信側のトランスポート層との間では複数のポート番号(セッション)が使われる。同様に、受信側のアプリケーションソフトウェアと受信側のトランスポート層との間では複数のポート番号(セッション)が使われる。しかし、送信側のトランスポート層と受信側のトランスポート層との間(ミドルウェアMT、MR間(WAN区間))では、1つのポート番号(セッション)しか使われない。つまり、1つのブロックに複数セッション分のデータを詰め込むことに伴い、ポート変換が発生し、WAN区間では1つのセッションへの多重化が行われていることになる。
(送信処理について)
次に、図11を参照しながら、第2の実施の形態に係る送信処理の流れについて説明する。図11は、第2の実施の形態に係る送信処理の流れについて説明した図である。なお、図11に示した送信処理は送信側の情報処理装置110により実行される。
(S101)制御部116は、ダミーパケットを受信側の情報処理装置130に送信し、受信側の情報処理装置130から処理速度の情報を取得する。なお、処理速度の情報は、定期的に取得されるようにしてもよい。
(S102)制御部116は、受信側の情報処理装置130から取得した処理速度の情報に基づいてセッション毎に割り当てる帯域を設定する。
制御部116は、受信側の情報処理装置130へ出力可能なデータの送信レートを、取得した処理速度に設定する。制御部116は、この送信レートをセッション毎に割り当てる。まず、制御部116は、設定した送信レートをアプリケーションソフトウェアの数で分割する。あるアプリケーションソフトウェアが複数のセッションを確立している場合、制御部116は、そのアプリケーションソフトウェアに割り当てた送信レートをセッション数でさらに分割し、分割した送信レートをセッション毎に割り当てる。
(S103)データ入力部111は、1つのアプリケーションソフトウェアからデータを取得する。
(S104)パケット生成部112は、1つのアプリケーションソフトウェアから取得したデータに対し、セッションの識別情報(セッションID)を含むヘッダを付加してデータパケットを生成する。
(S105)ブロック化部113は、S104で生成されたデータパケットをブロックに割り当てる。
(S106)1つのブロックに割り当て可能な数のデータパケットが1つのブロックに割り当てられた場合(ブロックが満杯になった場合)、処理はS107に進む。一方、ブロックが満杯になっていない場合、処理はS103に進む。
(S107)消失訂正符号化部114は、ブロックに割り当てられたデータパケットをRPS符号化してパリティパケットを生成する。
(S108)通信部115は、S106の処理で生成されたパリティパケットを受信側の情報処理装置130へと送信する。S108の処理を終えると、図11に示した一連の処理は終了する。
(処理速度の取得方法について)
ここで、図12を参照しながら、S101の処理に係る処理速度の取得方法について処理の流れをさらに説明する。図12は、第2の実施の形態に係る処理速度の取得方法について説明した図である。
(S131)制御部116は、予め用意されたダミーデータを取得する。
(S132)パケット生成部112は、ダミーデータにヘッダを付加してダミーパケットを生成する。ブロック化部113は、ダミーパケットをブロックに割り当てる。
(S133)消失訂正符号化部114は、ブロックに割り当てられたダミーパケットをRPS符号化してダミーのパリティパケットを生成する。
(S134)通信部115は、S133の処理で生成されたダミーのパリティパケットを受信側の情報処理装置130へと送信する。このダミーのパリティパケットを受信した受信側の情報処理装置130は、ダミーパケットの復号処理に要した処理時間及びダミーデータのデータ量から処理速度を計算し、処理速度の情報を送達確認に含めて送信する。
(S135)通信部115は、処理速度の情報を含む送達確認を受信する。また、制御部116は、送達確認から処理速度の情報を抽出する。S135の処理を終えると、図12に示した一連の処理は終了する。
(処理速度の計測処理について)
次に、図13を参照しながら、受信側の情報処理装置130による処理速度の計測処理の流れについて説明する。図13は、第2の実施の形態に係る処理速度の計測方法について説明した図である。
(S151)通信部131は、送信側の情報処理装置110からダミーのパリティパケットを受信する。
(S152)消失訂正復号部132は、ダミーのパリティパケットに対するRPS復号の処理を開始すると共に、処理時間の計測を開始する。
(S153)消失訂正復号部132は、ダミーのパリティパケットに対するRPS復号の処理を実行し、元のダミーパケットを復元する。
(S154)消失訂正復号部132は、ダミーパケットの復元を完了し、処理時間の計測を終了する。
(S155)消失訂正復号部132は、復元したダミーデータのデータ量及び計測した処理時間に基づいて、単位時間当たりに復元できたデータ量を示す処理速度を計算する。
(S156)通信部131は、ダミーデータの復元完了を通知するための送達確認にS155の処理で計算された処理速度の情報を付加する。
(S157)通信部131は、送達確認を送信側の情報処理装置110に送信する。S157の処理を終えると、図13に示した一連の処理は終了する。
(受信処理について)
次に、図14を参照しながら、第2の実施の形態に係る受信処理の流れについて説明する。図14は、第2の実施の形態に係る受信処理の流れについて説明した図である。図14に示した受信処理は受信側の情報処理装置130により実行される。
(S171)通信部131は、1つのブロック分のパリティパケットを受信する。
(S172)消失訂正復号部132は、パリティパケットの誤り検出を実行する。
(S173)消失訂正復号部132は、誤りが検出されなかったパリティパケットを用いてRPS復号の処理を実行し、データパケットを復元する。
(S174)S173の処理で1つのブロック分の全てのデータパケットが復元された場合、処理はS176へと進む。一方、S173の処理で一部のデータパケットが復元できなかった場合、処理はS175へと進む。
(S175)再送制御部133は、S173の処理で復元できなかったデータパケットの復元に用いるパリティパケットの再送を送信側の情報処理装置110に要求する。この要求に応じて送信側の情報処理装置110からパリティパケットが再送され、通信部131により再送されたパリティパケットが受信された場合、処理はS173に進む。
(S176)通信部131は、全てのデータパケットを受信した旨を通知する送達確認を送信側の情報処理装置110に送信する。
(S177)整列部134は、データパケットの到達順序が入れ替わっている場合にデータパケットの入れ替わりを修正する。
(S178)データ出力部135は、データパケットに含まれるセッションIDから宛先ポート番号を判定し、宛先ポート番号を指定して当該データパケットのデータをアプリケーションソフトウェアに出力する。S178の処理を終えると、図14に示した一連の処理は終了する。
以上説明したように、UDPに従ってデータを送信することで、送達確認の頻度を抑制することができる分だけスループットを向上させることができる。また、データがRPS符号化されるため、伝送路で一部のRPS符号が消失してもデータを復元することができる。そのため、データ転送の確実性が向上する。また、消失訂正能力の高いRPS符号を適用することで、再送要求の頻度が低減され、スループットがさらに向上する。また、各ブロックに対し、複数のアプリケーションソフトウェアからそれぞれ提供されたデータが公平に割り当てられるため、各ブロックに割り当てられたデータの処理が完了するまで一方のアプリケーションソフトウェアが待たされることがない。その結果、アプリケーションソフトウェア間の公平性を確保することができる。
ところで、これまでは一例としてRPS符号化方式を前提に説明を進めてきたが、RPS符号に代えてLDPC符号やターボ符号などの誤り訂正符号を適用する方法も考えられる。この場合、符号化の対象とするデータパケット群に、複数の異なるアプリケーションソフトウェアから提供されたデータのデータパケットを混在させ、受信側で復元したデータパケットの仕分けを行うことにより、アプリケーションソフトウェア間の公平性を確保することができる。また、受信側の処理速度に応じて符号長を調整する方法や、符号化対象とするデータのデータ量を調整する方法を適用することで、安定して高いスループットを維持することができる。
以上、第2の実施の形態について説明した。
7、10、110、130 情報処理装置
11、115、131 通信部
12、116 制御部
21、22、23、24 データ
25 処理時間情報
100 通信システム
111 データ入力部
112 パケット生成部
113 ブロック化部
114 消失訂正符号化部
132 消失訂正復号部
133 再送制御部
134 整列部
135 データ出力部

Claims (6)

  1. 複数のセッションのデータを他のコンピュータに送信可能なコンピュータに、
    前記他のコンピュータが受信した第1のデータの処理に要した時間に応じた処理時間情報を、前記他のコンピュータから取得し、
    前記処理時間情報を用いて、前記複数のセッションそれぞれについて送信を許可する単位時間当たりのデータ量の上限値を算出し、
    1又は2以上のセッションのデータを含む第2のデータを前記他のコンピュータに送信するとき、前記算出した上限値に基づいてセッション毎のデータ量を制限する、
    処理を実行させるプログラム。
  2. 前記第1及び第2のデータはそれぞれ符号化されて送信され、
    前記第1のデータの処理に要した時間は、前記他のコンピュータが前記第1のデータを復号する時間を含む、
    請求項1に記載のプログラム。
  3. セッション毎のデータ量の制限は、当該セッションを確立したアプリケーションソフトウェアから当該セッションのデータを受け付けることを制限することにより行う、
    請求項1又は2に記載のプログラム。
  4. 前記複数のセッションそれぞれは、複数のアプリケーションソフトウェアの何れかによって確立され、前記複数のセッションのうち第1及び第2のセッションは、同一のアプリケーションソフトウェアによって確立されており、
    前記上限値の算出では、前記複数のアプリケーションソフトウェアそれぞれの上限値を算出し、前記同一のアプリケーションソフトウェアの上限値から前記第1及び第2のセッションそれぞれの上限値を算出する、
    請求項1乃至3の何れか一項に記載のプログラム。
  5. 複数のセッションのデータを他の情報処理装置に送信可能な情報処理装置であって、
    前記他の情報処理装置が受信した第1のデータの処理に要した時間に応じた処理時間情報を、前記他の情報処理装置から受信し、また、1又は2以上のセッションのデータを含む第2のデータを前記他の情報処理装置に送信する通信部と、
    前記処理時間情報を用いて、前記複数のセッションそれぞれについて送信を許可する単位時間当たりのデータ量の上限値を算出し、前記第2のデータを送信するとき、前記算出した上限値に基づいてセッション毎のデータ量を制限する制御部と、
    を有する情報処理装置。
  6. 複数のセッションのデータを他の情報処理装置に送信可能な情報処理装置が実行する通信方法であって、
    前記他の情報処理装置が受信した第1のデータの処理に要した時間に応じた処理時間情報を、前記他の情報処理装置から取得し、
    前記処理時間情報を用いて、前記複数のセッションそれぞれについて送信を許可する単位時間当たりのデータ量の上限値を算出し、
    1又は2以上のセッションのデータを含む第2のデータを前記他の情報処理装置に送信するとき、前記算出した上限値に基づいてセッション毎のデータ量を制限する、
    通信方法。
JP2012286543A 2012-12-28 2012-12-28 プログラム、情報処理装置、及び通信方法 Active JP5998923B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012286543A JP5998923B2 (ja) 2012-12-28 2012-12-28 プログラム、情報処理装置、及び通信方法
US14/138,914 US9906331B2 (en) 2012-12-28 2013-12-23 Communication method, information processing apparatus and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012286543A JP5998923B2 (ja) 2012-12-28 2012-12-28 プログラム、情報処理装置、及び通信方法

Publications (2)

Publication Number Publication Date
JP2014131093A true JP2014131093A (ja) 2014-07-10
JP5998923B2 JP5998923B2 (ja) 2016-09-28

Family

ID=51018562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012286543A Active JP5998923B2 (ja) 2012-12-28 2012-12-28 プログラム、情報処理装置、及び通信方法

Country Status (2)

Country Link
US (1) US9906331B2 (ja)
JP (1) JP5998923B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021157513A1 (ja) * 2020-02-04 2021-08-12

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979970B2 (en) * 2014-08-08 2018-05-22 Qualcomm Incorporated System and method for determining buffer fullness for display stream compression
EP3466169B1 (en) * 2016-05-27 2024-05-08 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for frequency selective scheduling in ofdma based wlans

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005006673A1 (ja) * 2003-07-15 2005-01-20 Fujitsu Limited 帯域制御装置
US20050286416A1 (en) * 2004-06-25 2005-12-29 Nec Corporation Communication system
JP2006254383A (ja) * 2005-03-14 2006-09-21 Fujitsu Ltd 通信制御システムおよび通信制御方法
JP2007036960A (ja) * 2005-07-29 2007-02-08 Kddi Corp 動的にセッションを切り替えるrtp通信用端末、呼接続システム及びプログラム
JP2008053888A (ja) * 2006-08-23 2008-03-06 Matsushita Electric Ind Co Ltd 通信装置、プログラム、情報記憶媒体および通信制御方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
EP0948168A1 (en) * 1998-03-31 1999-10-06 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Method and device for data flow control
JP2001237882A (ja) * 2000-02-23 2001-08-31 Nec Corp パケットデータ転送におけるパケットサイズ制御装置及びその制御方法
US20020194361A1 (en) * 2000-09-22 2002-12-19 Tomoaki Itoh Data transmitting/receiving method, transmitting device, receiving device, transmiting/receiving system, and program
FI116498B (fi) * 2002-09-23 2005-11-30 Nokia Corp Kaistanleveyden mukauttaminen
US20050201375A1 (en) * 2003-01-14 2005-09-15 Yoshihide Komatsu Uninterrupted transfer method in IP network in the event of line failure
WO2004072765A2 (en) * 2003-02-13 2004-08-26 Nokia Corporation Method for signaling streaming quality adaptation and control mechanisms in multimedia streaming
KR100698620B1 (ko) * 2003-06-16 2007-03-21 삼성전자주식회사 강건한 에러 정정 부호화 장치를 가지는 디지털 송/수신시스템 및 그의 에러정정부호화/정정방법
US7457868B1 (en) * 2003-12-30 2008-11-25 Emc Corporation Methods and apparatus for measuring network performance
US7532642B1 (en) * 2004-03-11 2009-05-12 Sun Microsystems, Inc. Methods and apparatus supporting adaptive bandwidth management
US7558289B1 (en) * 2004-06-17 2009-07-07 Marvell International Ltd. Method and apparatus for providing quality of service (QOS) in a wireless local area network
US7545788B2 (en) * 2004-08-20 2009-06-09 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for modifying bandwidth and/or quality of service in a core network
US7990978B1 (en) * 2004-12-17 2011-08-02 Verizon Services Corp. Dynamic bandwidth queue allocation
IL167059A (en) * 2005-02-23 2010-11-30 Tejas Israel Ltd Network edge device and telecommunications network
JP4868392B2 (ja) 2006-02-28 2012-02-01 独立行政法人 宇宙航空研究開発機構 データにセッション識別符号を割り当てることによって、データとデータの間の分離を行うことを可能とする装置、方法、および、コンピュータプログラム
FR2906428A1 (fr) * 2006-09-26 2008-03-28 Canon Kk Procede, dispositif et application logicielle pour la transmission de paquets de donnees dands un systeme de communication.
JP4755066B2 (ja) * 2006-10-30 2011-08-24 富士通株式会社 帯域制御装置および帯域制御方法
US7962637B2 (en) * 2006-11-03 2011-06-14 Apple Computer, Inc. Dynamic adjustments of video streams
US8831024B2 (en) * 2006-12-29 2014-09-09 Broadcom Corporation Dynamic header creation and flow control for a programmable communications processor, and applications thereof
JP4912158B2 (ja) * 2007-01-06 2012-04-11 富士通株式会社 処理速度算出方法、算出装置及びプログラム
US8332896B2 (en) * 2007-07-05 2012-12-11 Coherent Logix, Incorporated Transmission of multimedia streams to mobile devices with cross stream association
US7987285B2 (en) * 2007-07-10 2011-07-26 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
KR20090036765A (ko) * 2007-10-10 2009-04-15 삼성전자주식회사 와이브로 시스템에서 영상 데이터 전송을 위한 출력 비트레이트 설정 방법
US8477624B2 (en) * 2008-03-31 2013-07-02 Lenovo (Singapore) Pte. Ltd Apparatus, system, and method for managing network bandwidth
JP2009284024A (ja) * 2008-05-19 2009-12-03 Fujitsu Ltd フレーム伝送装置およびフレーム伝送方法
EP2395792B1 (en) * 2009-02-09 2018-07-11 Nec Corporation Path control system, path control device, path control method, and computer program product
JP5652388B2 (ja) * 2009-03-06 2015-01-14 日本電気株式会社 通信レート制御方法、送信装置および通信システム
WO2010135333A1 (en) * 2009-05-19 2010-11-25 Beaumaris Networks Inc. Methods, apparatus and computer readable medium for managed adaptive bit rate for bandwidth reclamation
JP5175982B2 (ja) * 2009-09-16 2013-04-03 株式会社日立製作所 端末間の通信を高速化する通信装置および通信システム
US8514715B2 (en) * 2010-04-22 2013-08-20 Akamai Technologies, Inc. Congestion window control based on queuing delay and packet loss
US8462659B2 (en) * 2010-06-15 2013-06-11 Velocent Systems Incorporated Method and apparatus pertaining to the assessment of mobile communications network infrastructure latency through high-speed channels
US9240950B2 (en) * 2011-03-23 2016-01-19 Hughes Network Systems, Llc System and method for providing quality of service over dedicated local loop networks
WO2012138660A2 (en) * 2011-04-07 2012-10-11 Activevideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
WO2012169134A1 (ja) * 2011-06-09 2012-12-13 パナソニック株式会社 ネットワークノード、端末、帯域幅変更判断方法及び帯域幅変更方法
US9118594B2 (en) * 2011-12-06 2015-08-25 Brocade Communications Systems, Inc. Lossless connection failover for single devices
JP5832335B2 (ja) * 2012-02-24 2015-12-16 株式会社日立製作所 通信装置および通信システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005006673A1 (ja) * 2003-07-15 2005-01-20 Fujitsu Limited 帯域制御装置
US20050286416A1 (en) * 2004-06-25 2005-12-29 Nec Corporation Communication system
JP2006254383A (ja) * 2005-03-14 2006-09-21 Fujitsu Ltd 通信制御システムおよび通信制御方法
JP2007036960A (ja) * 2005-07-29 2007-02-08 Kddi Corp 動的にセッションを切り替えるrtp通信用端末、呼接続システム及びプログラム
JP2008053888A (ja) * 2006-08-23 2008-03-06 Matsushita Electric Ind Co Ltd 通信装置、プログラム、情報記憶媒体および通信制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021157513A1 (ja) * 2020-02-04 2021-08-12
WO2021157513A1 (ja) * 2020-02-04 2021-08-12 ファナック株式会社 制御システム
JP7460663B2 (ja) 2020-02-04 2024-04-02 ファナック株式会社 制御システム

Also Published As

Publication number Publication date
JP5998923B2 (ja) 2016-09-28
US9906331B2 (en) 2018-02-27
US20140189105A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
US10009259B2 (en) Multi-path data transfer using network coding
US20210119930A1 (en) Reliable transport architecture
JP6284549B2 (ja) マルチパスストリーミングのためのfecベースの信頼性のある転送制御プロトコル
US10034200B2 (en) Iteratively transmitting random linear network encoded packets from multiple transmission nodes
JP5935940B2 (ja) 通信方法、通信装置、および、通信プログラム
CN111800218B (zh) 一种数据流的传输方法和设备
CN110087140B (zh) 一种传输流媒体数据的方法、装置、介质及设备
CN103141050B (zh) 快速通道互联***中数据包重传方法、节点
US20230071243A1 (en) Conserving network resources during transmission of packets of interactive services
JP2015027100A (ja) パケット通信の伝送制御方法及びパケット通信システム
US9130740B2 (en) Variable acknowledge rate to reduce bus contention in presence of communication errors
KR20150045346A (ko) 이동 통신 시스템에서 멀티미디어 데이터 송수신 방법 및 장치
JP6064593B2 (ja) プログラム、情報処理装置、及び通信方法
JP2019106697A (ja) 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス
US10412151B2 (en) Method and system for on-demand file repair
JP5998923B2 (ja) プログラム、情報処理装置、及び通信方法
US11509592B2 (en) Dynamic network receiver-driven data scheduling over a datacenter network for managing endpoint resources and congestion mitigation
JP2017092692A (ja) データ伝送制御システム及び方法、並びに、データ伝送制御プログラム
US10461892B2 (en) Low latency communications
WO2023078222A1 (zh) 数据传输方法、装置、设备和介质
CN117118569A (zh) 数据重传的方法、装置、计算机设备及存储介质
JP2009094863A (ja) 高信頼マルチキャストデータ配信システム,高信頼マルチキャストデータ配信方法および高信頼マルチキャストデータ配信プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160714

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160815

R150 Certificate of patent or registration of utility model

Ref document number: 5998923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150