JP2014068126A - 通信装置及び通信方法 - Google Patents

通信装置及び通信方法 Download PDF

Info

Publication number
JP2014068126A
JP2014068126A JP2012210959A JP2012210959A JP2014068126A JP 2014068126 A JP2014068126 A JP 2014068126A JP 2012210959 A JP2012210959 A JP 2012210959A JP 2012210959 A JP2012210959 A JP 2012210959A JP 2014068126 A JP2014068126 A JP 2014068126A
Authority
JP
Japan
Prior art keywords
data
tcp
network
communication
tcp connection
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
JP2012210959A
Other languages
English (en)
Inventor
Kosuke Nogami
耕介 野上
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2012210959A priority Critical patent/JP2014068126A/ja
Publication of JP2014068126A publication Critical patent/JP2014068126A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 TCPコネクション数を制御し、スループットを向上させる。
【解決手段】 本発明の通信装置は、ネットワークの状態を基に、通信に用いるTCPのコネクション数の増加を判断するコネクション数導出部と、前記判断を基にTCPコネクションを管理し、データを送受信するTCPコネクション管理部と、TCPコネクションを通じて受信したデータを統合するデータ統合部とを含む。
【選択図】 図1

Description

本発明は、ネットワーク通信に関し、特に、複数のTCPコネクションを用いる通信装置、及び、通信方法に関する。
インターネットを通じて、様々なサービスが、提供されるようになっている。そのため、ネットワークの性能が、サービスのレスポンス性などのサービス品質に大きな影響を与えている。
インターネットを通じてやりとりされるデータの多くは、TCP(Transmission Control Protocol)と呼ばれるプロトコルを利用している。TCPは、特徴の一つとして、輻輳制御とフロー制御との組み合わせに基づき、データの送出量を制御する機構を持つ。
輻輳制御は、ネットワークの状態に応じて、送出可能なデータ量の上限値を決定し、その上限値を超えない範囲でデータ送出量を制御する方法である。輻輳制御は、ネットワークの輻輳発生の抑制を目的とする。
フロー制御は、送出データを受信する端末が受信可能なデータ量を通知する受信ウィンドウサイズ(TCP receive window size)を利用し、送出量を制御する方法である。フロー制御は、受信端末がデータを受け取れない事態になることを防止する目的で実行される。
TCPは、輻輳制御とフロー制御とを同時に実行している。TCPは、輻輳制御で求めるデータ送出量とフロー制御で求める受信ウィンドウサイズとを比較する。そして、TCPは、2つの中で小さい値を、送出可能なデータ量の上限値とするように振る舞う。そのため、ネットワークが安定している場合、受信ウィンドウサイズの値が、TCPのデータ送出量を決定することが多い。
TCPの受信ウィンドウサイズの上限値は、TCPコネクションを確立する際に決定され、その後、変更されない。また、TCPの受信ウィンドウサイズは、TCPが動作するオペレーティングシステムなどを基に固定的に設定されている場合が多い。このように、TCPの受信ウィンドウサイズは、利用するネットワークに応じて動的に決定されることが少ない。また、受信ウィンドウサイズの拡大を可能とする方式として、RFC(Request for Comments)にて、「Window Scaling Option」が、定義されている。しかし、「Window Scaling Option」は、送信側及び受信側の両方のサポートが必要である。そのため、「Window Scaling Option」は、必ずしも利用できるとは限らない。
これらの要因のため、TCPの受信ウィンドウサイズ値として、十分に大きな値を設定できない場合、受信ウィンドウサイズが、TCPの性能限界を決定する。その結果、本来利用できるネットワーク資源を十分に利用できない状況が、発生する。
そこで、TCPのスループットを向上させるため、輻輳制御アルゴリズムの改良が、提案されている(例えば、非特許文献1及び非特許文献2を参照)。
また、複数の経路上に複数のコネクションを形成し、TCPのスループット向上を図るアプローチが、提案されている(例えば、特許文献1を参照)。
特開2010−056990
Sangtae Ha, Injong Rhee and Lisong Xu, "CUBIC: a new TCP-friendly high-speed TCP variant", ACM SIGOPS Operating Systems Review - Research and developments in the Linux kernel, Volume 42 Issue 5, July 2008 Kun Tan, Jingmin Song, Qian Zhang, and Murari Sridharan, "A Compound TCP Approach for High-speed and Long Distance Networks", Microsoft Research Technical Report, July 2005
非特許文献1及び非特許文献2に記載の提案は、TCPコネクションの確立後の挙動に関するアプローチである。そのため、非特許文献1及び非特許文献2に記載の提案は、初期値に基づき決定された上限値を改善できないという問題点があった。
また、特許文献1に記載の発明は、複数のコネクションの送信速度に応じて、データを送信する。そのため、特許文献1に記載の発明は、TCPの受信ウィンドウサイズ値に、大きな値を設定できない場合に対応できないという問題点があった。
本発明の目的は、上記の課題である、TCPがネットワークの資源を効率的に利用できない状況を解決して、TCPのスループットを向上する通信装置及び通信方法を提供することにある。
かかる目的を達成するための本発明の通信装置は、ネットワークの状態を基に、通信に用いるTCPのコネクション数の増加を判断するコネクション数導出部と、前記判断を基に前記TCPコネクションを管理し、データを送受信するTCPコネクション管理部と、前記TCPコネクションを通じて受信したデータを統合するデータ統合部とを含む。
かかる目的を達成するための本発明の通信方法は、ネットワークの状態を基に、通信に用いるTCPのコネクション数の増加を判断し、前記判断を基に前記TCPコネクションを管理し、データを送受信し、前記TCPコネクションを通じて受信したデータを統合する。
かかる目的を達成するための本発明のプログラムは、ネットワークの状態を基に、通信に用いるTCPのコネクション数の増加を判断する処理と、前記判断を基に前記TCPコネクションを管理する処理と、データを送受信する処理と、前記TCPコネクションを通じて受信したデータを統合する処理とをコンピュータに実行させる。
本発明の通信装置は、TCPのスループットを向上させる効果を得ることができる。
図1は、本発明のおける第1の実施の形態に係る通信装置の構成の一例を示すブロック図である。 図2は、第1の実施の形態に係る通信装置の動作の一例を示すフローチャートである。 図3は、第1の実施の形態に係る通信装置の別の構成の一例を示すブロック図である。 図4は、第1の実施の形態に係る通信装置の別の構成の一例を示すブロック図である。 図5は、第2の実施の形態に係る通信装置の構成の一例を示すブロック図である。 図6は、第2の実施の形態に係る通信装置の動作の一例を示すフローチャートである。 図7は、第3の実施の形態に係る通信装置の構成の一例を示すブロック図である。 図8は、第3の実施の形態の動作を示すフローチャートである。 図9は、第1の実施例の接続構成を説明するための図である。 図10は、第2の実施例の接続構成を説明するための図である。
次に、本発明の実施の形態について図面を参照して説明する。
なお、各図面は、本発明の実施の形態を説明するものである。そのため、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明は、省略する場合がある。
(第1の実施の形態)
図1は、本発明における第1の実施の形態の通信装置100の構成の一例を示すブロック図である。
図1を参照すると、本実施の形態に係る通信装置100は、可用帯域計測部101と、コネクション数導出部102と、TCPコネクション管理部103と、データ統合部104とを含む。
可用帯域計測部101は、データを送受信している対向装置と自装置との間のネットワークの可用帯域を計測する。つまり、可用帯域計測部101は、ネットワークの状態を計測する。
コネクション数導出部102は、可用帯域計測部101が計測した可用帯域を基に、データの送信のために最適なTCPのコネクション数を決定する。つまり、コネクション数導出部102は、ネットワークの状態を基に、最適なTCPのコネクション数を決定する。
TCPコネクション管理部103は、複数のTCPコネクションを管理し、送信データのTCPコネクションへの割当を実行する。
データ統合部104は、複数のTCPコネクションを通じて受信したデータを統合する。
次に、図1の構成図と図2のフローチャートとを参照して、本実施の形態の通信装置100の全体の動作について説明する。
可用帯域計測部101は、データを送受信している対向装置と自装置との間のネットワークの可用帯域を計測する(ステップS101)。
ネットワークの可用帯域の計測は、可用帯域を計測するためのプローブパケットを自ら発行する「アクティブ計測」、送受信されるデータパケットの挙動から可用帯域を推測する「パッシブ計測」、実際に送受信するパケットをプローブパケットに見立て帯域を計測する「インライン計測」の3種類がある。可用帯域計測部101は、いずれの計測を使うことも可能である。
可用帯域計測部101がインライン計測を使う場合、TCPコネクション管理部103は、送信されるデータパケットを、可用帯域を計測するためのアルゴリズム(パケットトレインやパケットペアなど)に基づいて送出する。可用帯域計測部101は、その送受信結果から可用帯域を計測する。
コネクション数導出部102は、ステップS101で計測した可用帯域値を現在形成されているTCPコネクションのスループット値で割り算し、TCPコネクション数を確保できる本数を計算する(ステップS102)。計算結果が割り切れない数値となった場合、コネクション数導出部102は、切り捨てた数値の利用が望ましい。しかし、コネクション数導出部102は、切り上げた数値を利用してもよい。
TCPコネクション管理部103は、ステップS102で導出したTCPコネクション数が1本又は1本を超えるか否かを判定する(ステップS103)。
ステップS103の結果、ステップS102で導出したTCPコネクション数が、1本又は1本を超える場合(ステップS103で「Yes」)、TCPコネクション管理部103は、ステップS102で導出した数に相当する新たなTCPコネクションを確立する。そして、TCPコネクション管理部103は、確立したTCPコネクションをデータの送受信に利用する(ステップS104)。ただし、既に確立済みであるが、データの送受信に利用していないTCPコネクションが存在する場合、TCPコネクション管理部103は、新たにTCPコネクションを確立せず、このTCPコネクションを利用しても良い。
ステップS103の結果、ステップS102で導出したTCPコネクション数が、1本を下回る場合(ステップS103で「No」)、TCPコネクション管理部103は、新規にコネクションを追加する必要はないと判断し、何も実行しないで、ステップS105に進む。
なお、TCPコネクション管理部103は、停止できるTCPコネクションがあるか否かを確認しても良い。そして、停止できるTCPコネクションがある場合、TCPコネクション管理部103は、そのTCPコネクションを停止しても良い。そして、TCPコネクション管理部103は、停止したTCPコネクションを切断する。あるいは、TCPコネクション管理部103は、再利用のために、データを送受信しない状態のTCPコネクションを、維持しても良い。ただし、TCPコネクション管理部103は、少なくとも1本以上のTCPコネクションの利用を継続する。
TCPコネクション管理部103は、送信するデータを複数のTCPコネクションに割り当て、データを送信する(ステップS105)。
TCPコネクション管理部103は、データの割り当て方法として、すべてのTCPコネクションに均等にデータを割り当てるラウンドロビン方式などを利用する。
データを受信する通信装置100に含まれるデータ統合部104は、複数のTCPコネクションを通じて受信したデータを統合し、アプリケーションにデータを渡す(ステップS106)。
以降、通信装置100は、ステップS101〜S106の処理を定期的あるいは必要に応じて繰り返す。
本実施の形態の通信装置100の効果について説明する。
本実施の形態の通信装置100は、既存のTCPの枠組みを利用して、ネットワークを通じて送受信可能なデータ量を増加させる効果を得ることができる。
その理由は、次のとおりである。
本実施の形態の通信装置100は、データの通信に利用可能なネットワークの帯域(可用帯域)を計測し、その帯域を十全に活用できるTCPのコネクション数を確立し、データを送受信する。このため、本実施形態の通信装置100は、1本のTCPコネクションを利用する場合と比較し、送受信可能なデータ量を増加できるためである。
<変形例1>
なお、本実施の形態の通信装置100の構成は、図1の構成に限る必要はない。通信装置100は、各構成を複数の構成に分けて構成してもよい。あるいは、通信装置100は、一部又はすべての構成を1つの構成としても良い。
例えば、コネクション数導出部102は、可用帯域計測部101の機能、つまりネットワークの状態の計測機能に取り込んでも良い。
また、通信装置100とは別に、ネットワークは、通信状態を計測するモニタ装置を含む場合もある。その場合、通信装置100は、ネットワークに状態に関する情報を、図示しないモニタ装置から受け取ってもよい。
図3は、別の構成である通信装置110の構成の一例を示すブロック図である。
図3を参照すると、通信装置110は、コネクション数導出部112と、TCPコネクション管理部103と、データ統合部104とを含む。
コネクション数導出部112は、ネットワークの状態の情報を基に、データの送信のために最適なTCPのコネクション数を決定する。なお、コネクション数導出部112は、ネットワークの状態を、図示しないモニタ装置から情報を受け取っても良い。あるいは、コネクション数導出部112は、図示しないネットワーク状態計測部(例えば、図1の可用帯域計測部101に相当する構成)から情報を受け取っても良い。
TCPコネクション管理部103とデータ統合部104は、通信装置100と同様のため、詳細な説明を省略する。
このように構成された通信装置110は、通信装置100と同様の効果を得ることができる。
その理由は、通信装置110は、通信装置100と同様に、可用帯域を基に、TCPのコネクション数を確立して、データを送受信できるためである。
なお、通信装置110は、本発明の最小構成である。
<変形例2>
さらに、通信装置100は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)と、NIC(Network Interface Card)とを含むコンピュータとして実現しても良い。なお、通信装置100は、通信装置100の利用者とやり取りする機器との接続を実現するための入出力部(Input/Output Unit、以下、「IO」と言う。)を含んでもよい。
図4は、CPUを用いた通信装置600を構成の一例を示すブロック図である。
通信装置600は、CPU610と、ROM620と、RAM630と、内部記憶装置640と、IO650と、NIC680とを含み、コンピュータを構成している。
CPU610は、ROM620又は内部記憶装置640からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、通信装置100の可用帯域計測部101と、コネクション数導出部102と、TCPコネクション管理部103と、データ統合部104としての各機能を実現する。CPU610は、各機能を実現する際に、RAM630及び内部記憶装置640を一時記憶として使用する。また、CPU610は、IO650及びNIC680を介して、他の機器と接続する。
なお、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体690が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、CPU610は、NIC680を介して、図示しない他の装置からプログラムを受け取っても良い。
ROM620は、CPU610が実行するプログラム、及び、固定的なデータを記憶する。ROM620は、例えば、P−ROM(Programmable-ROM)やフラッシュROMである。
RAM630は、CPU610が実行するプログラムやデータを一時的に記憶する。RAM630は、例えば、D−RAM(Dynamic-RAM)である。
内部記憶装置640は、通信装置600が長期的に保存するデータやプログラムを保存する。また、内部記憶装置640は、CPU610の一時記憶装置として動作しても良い。内部記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)、又は、ディスクアレイ装置である。
IO650は、CPU610と、入力機器660及び表示機器670とのデータを仲介する。IO650は、例えば、IOインターフェースカードである。
入力機器660は、通信装置600の操作者からの入力指示を受信する入力部である。入力機器660は、例えば、キーボード、マウス又はタッチパネルである。
表示機器670は、通信装置600の表示部である。表示機器670は、例えば、液晶ディスプレイである。
NIC680は、データを送受信している対向装置とのデータのやり取りを仲介する。NIC680は、例えば、LAN(Local Area Network)カードである。
このように構成された通信装置600は、通信装置100と同様の効果を得ることができる。
その理由は、通信装置600のCPU610が、プログラムに基づいて通信装置100と同様の動作を実現できるためである。
(第2の実施の形態)
図5は、本発明の第2の実施の形態に係る通信装置200の構成の一例を示すブロック図である。
図5を参照すると、本実施の形態に係る通信装置200は、スループット計算部201、コネクション数導出部202と、ネットワーク監視部203と、TCPコネクション管理部204と、データ統合部205とを含む。
スループット計算部201は、ネットワークの遅延やパケットロスの観測値、及び、これらを用いてスループットを計算するスループット計算式を用いて、理想的なTCPのスループット値を計算する。スループット計算式については、後ほど説明する。
コネクション数導出部202は、スループット計算部201の計算を基に、データの送信のために最適なTCPのコネクション数を決定する。
ネットワーク監視部203は、TCPコネクションを通じてやりとりされるデータを監視し、スループット計算部201が計算に用いるネットワークの遅延やパケットロスを計測する。
ここで、ネットワーク監視部203とスループット計算部201は、ネットワークの状態を計測している。そのため、コネクション数導出部202は、第1の実施の形態のコネクション数導出部102と同様に、ネットワークの状態を基に、コネクション数を導出しているとも言える。
TCPコネクション管理部204は、複数のTCPコネクションを管理し、送信データの割当を実行する。TCPコネクション管理部204は、第1の実施の形態のTCPコネクション管理部103と同様に動作する。
データ統合部205は、複数のTCPコネクションを通じて受信したデータを統合する。データ統合部205は、第1の実施の形態のデータ統合部104と同様に動作する。
なお、本実施形態の通信装置200は、図4に示す通信装置600と同様に、コンピュータで実現しても良い。
次に、図5の構成図と図6のフローチャートとを参照して、本実施の形態の通信装置200の動作について説明する。
ネットワーク監視部203は、TCPコネクションを通じてやりとりされるデータの送受信を監視し、ネットワークの遅延やパケットロスを計測する。
スループット計算部201は、計測されたネットワークの遅延やパケットロスの計測値を基に、TCPのスループットの計算式を用いて、TCPの理想的なスループット値を計算する(ステップS201)。スループット計算部201が用いるスループットの計算式は、特に制限がない。スループット計算部201は、TCPのスループットの計算式として、例えば、「TCP Friendly Rate Control」で利用されるTCPのスループット値の計算式を利用しても良い。
コネクション数導出部202は、理想的なスループット値を実現するために必要なTCPコネクション数を計算する(ステップS202)。具体的には、コネクション数導出部202は、ステップS201で導出したTCPの理想的なスループット値を、現在形成されているTCPコネクションのスループット値で割り算する。計算結果が割り切れない数値の場合、コネクション数導出部202は、必要なTCPコネクション数として、切り捨てた数値あるいは切り上げた数値のいずれかの数値を採用する。
TCPコネクション管理部204は、ステップS202で導出したTCPコネクション数と、現在のデータの送受信に利用しているTCPコネクション数とを比較する(ステップS203)。
ステップS203の結果、ステップS202で導出したTCPコネクション数が、現在、データの送受信に利用しているTCPコネクション数を上回る場合(ステップS203で「Yes」)、TCPコネクション管理部204は、新しいTCPコネクションを確立する。そして、TCPコネクション管理部204は、確立したTCPコネクションをデータの送受信に利用する(ステップS204)。ただし、既に確立済みであるが、データの送受信に利用していないTCPコネクションが存在する場合、TCPコネクション管理部204は、新たにTCPコネクションを確立せず、このTCPコネクションを利用しても良い。
ステップS203の結果、ステップS202で導出したTCPコネクション数が、現在、データの送受信に利用しているTCPコネクション数を下回る場合(ステップS203で「No」)、TCPコネクション管理部204は、その差分数に相当するTCPコネクションの利用を停止する(ステップS205)。ただし、TCPコネクション管理部204は、少なくとも1本以上のTCPコネクションの利用を継続する。また、TCPコネクション管理部204は、利用を停止したTCPコネクションを切断する。ただし、TCPコネクション管理部204は、ステップS204で述べたように、再利用のために、データを送受信しない状態のTCPコネクションを、維持しても良い。
TCPコネクション管理部204は、送信するデータを複数のTCPコネクションに割り当て、データを送信する(ステップS206)。TCPコネクション管理部204は、データの割り当て方法として、例えば、すべてのTCPコネクションに均等にデータを割り当てるラウンドロビン方式を利用する。
データを受信する通信装置200に含まれるデータ統合部205は、複数のTCPコネクションを通じて受信したデータを統合し、アプリケーションにデータを渡す(ステップS207)。
以降、通信装置200は、ステップS201〜S207の処理を定期的あるいは必要に応じて、繰り返す。
本実施の形態の通信装置200の効果について説明する。
本実施の形態の通信装置200は、既存のTCPの枠組みを利用して、ネットワークを通じて送受信可能なデータ量を増加させることができる。
その理由は、通信装置200は、本来実現できるスループット値を計算し、計算されたスループット値を実現するために必要なTCPのコネクション数を確立し、データを送受信する。そのため、通信装置200は、1本のTCPコネクションを利用する場合と比較し、送受信可能なデータ量を増加できるためである。
(第3の実施の形態)
図7は、本発明の第3の実施の形態に係る通信装置300の構成の一例を示すブロック図である。
図7を参照すると、本実施の形態に係る通信装置300は、送信時間計算部301と、コネクション数導出部302と、ネットワーク監視部303と、TCPコネクション管理部304と、データ統合部305とを含む。
送信時間計算部301は、送信先の受信ウィンドウサイズに相当するデータ量を送信するのに要する経過時間を計測する。
コネクション数導出部302は、受信ウィンドウサイズに相当するデータ量の送信に要する時間と往復遅延時間とを比較し、データを送受信するTCPのコネクション数の増加の是非を決定する。
ネットワーク監視部303は、TCPコネクションを通じてやりとりされるデータを監視し、送信されるデータや送信データの受信情報を示す確認応答情報に関する情報を取得する。
ここで、送信時間計算部301とネットワーク監視部303は、ネットワークの状態を計測している。そのため、コネクション数導出部302は、第1の実施の形態のコネクション数導出部102と同様に、ネットワークの状態を基に、コネクション数を導出しているとも言える。
TCPコネクション管理部304は、複数のTCPコネクションを管理し、送信データの割当を実行する。TCPコネクション管理部304は、第1の実施の形態のTCPコネクション管理部103と同様に動作する。
データ統合部305は、複数のTCPコネクションを通じて受信したデータを統合する。データ統合部305は、第1の実施の形態のデータ統合部104と同様に動作する。
なお、本実施の形態の通信装置300は、図4に示す通信装置600と同様に、コンピュータで実現しても良い。
次に、図7の構成図と図8のフローチャートとを参照して、本実施の形態の通信装置300の全体の動作について説明する。
ネットワーク監視部303は、TCPコネクションを通じてやりとりされるデータの送受信を監視し、送信データサイズ、送信時刻及び送信データを受信したことを示す確認応答の受信時刻に関する情報を取得する。
送信時間計算部301は、ネットワーク監視部303を通じて取得した情報を利用して、送信相手の受信ウィンドウサイズに相当するデータ量を送信相手が受信するのに要する時間を、計測する(ステップS301)。例えば、送信時間計算部301は、複数の送信データのシーケンス番号及びデータサイズを記憶する。そして、送信時間計算部301は、確認応答を通じて、個々の送信データのシーケンス番号及び受信時刻を基に、受信データサイズが受信ウィンドウサイズに相当するまでに要する時間を求める。あるいは、送信時間計算部301は、往復遅延時間の間に受信が確認されたデータ量を計算する。
コネクション数導出部302は、ステップS301で求めたデータ送信時間と送信相手との往復遅延時間を比較する(ステップS302)。
ステップS302の結果、データ送信時間が送信相手との往復遅延時間より小さい場合(ステップS302で「Yes」)、コネクション数導出部302は、受信ウィンドウサイズがボトルネックになっており、TCPコネクションを追加する余地があると判断する。その判断を受け、TCPコネクション管理部304は、新しいTCPコネクションを確立する(ステップS303)。ただし、既に確立済みであるが、データの送受信に利用していないTCPコネクションが存在する場合、TCPコネクション管理部304は、新たにTCPコネクションを確立せず、このTCPコネクションを利用しても良い。
複数のTCPコネクションを通じて通信している場合、通信装置300は、個々のTCPコネクションに対して、同様の計算を実行する。そして、すべてのTCPコネクションにおいて、データ送信時間が往復遅延時間より小さい場合、通信装置300は、TCPコネクションを追加すると判断する。
ステップS302の結果、データ送信時間が送信相手との往復遅延時間以上の場合(ステップS302で「No」)、通信装置300は、特に動作せずに、ステップS304に進む。
TCPコネクション管理部304は、ステップS303を通じて確保された複数のTCPコネクションに送信するデータを割り当て、データを送信する(ステップS304)。ステップS303を実行しない場合、TCPコネクション管理部304は、確保しているTCPコネクションに送信するデータを割り当て、データを送信する。TCPコネクション管理部304は、データの割り当て方法として、例えば、すべてのTCPコネクションに均等にデータを割り当てるラウンドロビン方式を利用する。
データを受信する通信装置300に含まれるデータ統合部305は、複数のTCPコネクションを通じて受信したデータを統合し、アプリケーションにデータを渡す(ステップS305)。
以降、通信装置300は、ステップS301〜S305の処理を定期的あるいは必要に応じて、繰り返す。
本実施の形態の通信装置300の効果について説明する。
本実施の形態の通信装置300は、既存のTCPの枠組みを利用して、ネットワークを通じて送受信可能なデータ量を増加させることができる。
その理由は、通信装置300は、受信ウィンドウサイズに相当するデータ量を送信するのに必要な時間と往復遅延時間とを比較する。そして、その比較を通じて、通信装置300は、現在利用しているTCPコネクションがネットワークの帯域を十分に使いきっているか否かを判断する。使い切っていない場合、通信装置300は、TCPコネクション数を増加させ、ネットワークの帯域に応じたTCPコネクションを確立し、利用できるためである。そのため、通信装置300は、1本のTCPコネクションを利用する場合と比較し、送受信可能なデータ量を増加できるためである。
(第1の実施例)
具体的な実施例を用いて、本発明の実施の形態の動作を説明する。
なお、以下の説明において、通信装置100を用いるが、これは説明の便宜のためである。以下の実施例は、通信装置100を、ここまで説明した通信装置200、通信装置300及び通信装置600に置き換えてもよい。
図9は、第1の実施の形態の通信装置100に相当する装置を含む受信端末1100と送信端末1200、及び、両端末を結ぶネットワーク1000との接続構成を示している。
送信端末1200は、アプリケーションの実行に必要なデータを配信するデータ配信アプリケーション1201と、データ配信アプリケーション1201のデータを通信する第1の実施形態の通信装置100に相当する通信装置1202とを含む。
受信端末1100は、データ配信アプリケーション1201からのデータを受信し、アプリケーションを実行するデータ受信アプリケーション1101と、データを通信する第1の実施形態の通信装置100に相当する通信装置1102とを含む。例えば、データ配信アプリケーション1201は、ネットワーク上に保存されているユーザの画像データを配信する。また、データ受信アプリケーション1101は、多数の画像データを受信し、スライドショーのように表示するアプリケーションなどである。
本実施例では、まず、受信端末1100と送信端末1200との間に1本のTCPコネクションが、確立している。受信端末1100と送信端末1200は、このTCPコネクションを利用してデータを送受信する。
通信装置1102と通信装置1202は、例えば、「SLoPS(Self-Loading Periodic Streams)」と呼ばれる手法を用いて、受信端末1100と送信端末1200とを結ぶネットワーク1000の可用帯域を計測する。
ここでは、可用帯域の計測結果が、「11[Mbps]」であったとする。また、このときのネットワーク遅延は「100[ミリ秒]」、TCPコネクションを確立した際の受信端末1100の受信ウィンドウサイズは「64[キロバイト]」とする。この場合、TCPの理論的なスループット値は、「5.12[Mbps]」となる。
そのため、通信装置1202は、計測された可用帯域において、2本のTCPコネクションを追加できる余地があると判断する(11[Mbps]/5.12[Mbps]=2.148[本]である。なお、本実施例の通信装置1202は、端数は切り捨てるとする。)。そして、通信装置1202は、通信装置1102との間に新たに2本のTCPコネクションを確立する。そして、通信装置1202は、データ配信アプリケーション1201の送信データを、3本のTCPコネクションを介して送信する。
通信装置1102は、3本のTCPコネクションを通じて受信したデータを統合し、データ受信アプリケーション1101に渡す。データ受信アプリケーション1101は、受信したデータを利用して、アプリケーションを実行する。
一定時間経過後、通信装置1202は、再度、可用帯域を計測する。
今回は、可用帯域として、「2[Mbps]」が計測されたとする。先と同様に、通信装置1202は、計測された可用帯域において、新たなTCPコネクションを追加可能か否か判断する。
通信装置1202は、可用帯域「2[Mbps]」に対して、新たなTCPコネクションを追加する余地はないと判断する(2[Mbps]/5.12[Mbps]=0.39[本])。そのため、通信装置1202は、現在のTCPコネクション数である3本を通じて、データを送受信する。
以下、通信装置1202は、定期的あるいは随時、可用帯域を計測し、計測結果に応じて、TCPコネクション数を制御する。
本実施例で説明した通信装置1202及び通信装置1102の利用を基に、受信端末1100及び送信端末1200は、高速な通信を実現できる。
その理由は、通信装置1202及び通信装置1102は、計測した可用帯域を基に、TCPコネクションを追加できるか否かを判断する。そして、追加できると判断した場合、通信装置1202及び通信装置1102は、TCPコネクションを追加できるためである。
(第2の実施例)
第1の実施例とは異なる実施例を用いて、本発明を実施の形態の通信装置100の動作をさらに説明する。
図10は、第1の実施の形態の通信装置100を含みデータを中継する中継通信装置である中継ゲートウェイ2001と中継ゲートウェイ2101とを用いた第2の実施例の接続構成を示す図である。
図10は、中継ゲートウェイ2001と、中継ゲートウェイ2101と、ネットワーク2200と、企業ネットワーク2000と、受信端末2002と、送受信端末2003と、企業ネットワーク2100と、送信サーバ2102と、送受信端末2103とを含む。
ネットワーク2200は、中継ゲートウェイ2001と中継ゲートウェイ2101とを結ぶネットワークである。
企業ネットワーク2000は、中継ゲートウェイ2001が所属するネットワークである。
受信端末2002及び送受信端末2003は、企業ネットワーク2000に属する。
企業ネットワーク2100は、中継ゲートウェイ2101が所属するネットワークである。
送信サーバ2102及び送受信端末2103は、企業ネットワーク2100に属する。
送信サーバ2102は、アプリケーションの実行に必要なデータを、受信端末2002に送信する。
受信端末2002は、受信したデータを利用して、アプリケーションを実行する。
送受信端末2003と送受信端末2103は、お互いにアプリケーションの実行に必要なデータを送受信する。送受信端末2003と送受信端末2103は、それぞれ、TCPを利用して通信する。
本実施例において、中継ゲートウェイ2001と中継ゲートウェイ2101が、受信端末2002と送信サーバ2102の間の通信及び送受信端末2003と送受信端末2103の間の通信を仲介する。そして、中継ゲートウェイ2001と中継ゲートウェイ2101は、TCPのスループット向上を実現する。
このため、受信端末2002及び送受信端末2003は、中継ゲートウェイ2001とTCPコネクションを通じて接続している。同様に、送信サーバ2102と送受信端末2103は、中継ゲートウェイ2101とTCPコネクションを通じて接続している。
また、企業ネットワーク2000及び企業ネットワーク2100の内部の通信は、ネットワーク2200を介する通信と比較して、非常に短い遅延で通信できるとする。そのため、中継ゲートウェイ2001及び中継ゲートウェイ2101と通信する装置(受信端末2002、送受信端末2003、送受信端末2103及び送信サーバ2102)は、1本のTCPコネクションで十分に高速なスループットを実現できるとする。
中継ゲートウェイ2001と中継ゲートウェイ2101は、まず、受信端末2002と送信サーバ2102との通信のためのTCPコネクション及び送受信端末2003と送受信端末2103との通信のためのTCPコネクションの2本を確立し、データを送受信しているとする。
中継ゲートウェイ2001と中継ゲートウェイ2101は、それぞれ、ネットワーク2200の可用帯域を計測する。つまり、中継ゲートウェイ2001と中継ゲートウェイ2101は、両方向で、可用帯域を計測する。
可用帯域を計測する方法として、中継ゲートウェイ2001と中継ゲートウェイ2101は、例えば、「SLoPS(Self-Loading Periodic Streams)」と呼ばれる手法を用いる。ここでは、両方向とも可用帯域の計測結果は、「10[Mbps]」とする。
また、このときのネットワーク遅延は「200[ミリ秒]」、TCPコネクションを確立した際の中継ゲートウェイ2001及び中継ゲートウェイ2101の受信ウィンドウサイズは「64[キロバイト]」とする。すると、TCPの理論的なスループット値は、「2.56[Mbps]」となる。
中継ゲートウェイ2001及び中継ゲートウェイ2101は、それぞれ、新たに4本のTCPコネクションを追加する余地があると判断する(10[Mbps]/2.56[Mbps]=3.9[本]、本実施例の中継ゲートウェイ2001及び中継ゲートウェア2101は、端数を切り上げる)。そして、中継ゲートウェイ2001及び中継ゲートウェイ2101は、新規のTCPコネクションを確立する。
このとき、中継ゲートウェイ2001及び中継ゲートウェイ2101は、それぞれ、複数の装置(それぞれ、受信端末2002と送受信端末2003、及び、送信サーバ2102と送受信端末2103)と接続している。中継ゲートウェイ2001及び中継ゲートウェイ2101は、新たに確立したTCPコネクションを、複数の装置に、適切に割り当てる。
新たに確立したTCPコネクションの割り当て方法として、中継ゲートウェイ2001及び中継ゲートウェイ2101は、複数の装置に公平に割り当てるラウンドロビンやランダムに割り当てる方法を用いても良い。あるいは、中継ゲートウェイ2001及び中継ゲートウェイ2101は、事前に設定された各装置又はその上で動作するアプリケーションの優先度に基づいて割り当てる方法を用いても良い。あるいは、中継ゲートウェイ2001及び中継ゲートウェイ2101は、各装置又はその上のアプリケーションの通信量に応じて割り当てる方法を用いてもよい。
本実施例の説明では、中継ゲートウェイ2001及び中継ゲートウェイ2101は、新たに確保したTCPコネクションを、各装置にラウンドロビン方式に基づき割り当てるとする。
以降、中継ゲートウェイ2001及び中継ゲートウェイ2101は、定期的又は所定のタイミングで、可用帯域を計測する。そして、中継ゲートウェイ2001及び中継ゲートウェイ2101は、その結果に基づいて、TCPコネクション数の増減を制御し、受信端末2002と送信サーバ2102との通信及び送受信端末2003と送受信端末2103との通信におけるスループットを向上させ、より快適な利用を実現する。
本実施例で説明した中継ゲートウェイ2001及び中継ゲートウェイ2101は、高速な通信を実現できる。
その理由は、中継ゲートウェイ2001及び中継ゲートウェイ2101は、計測した可用帯域を基に、TCPコネクションを追加できるか否かを判断する。そして、追加できると判断した場合、中継ゲートウェイ2001及び中継ゲートウェイ2101は、TCPコネクションを追加できるためである。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態及び実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
100 通信装置
101 可用帯域計測部
102 コネクション数導出部
103 TCPコネクション管理部
104 データ統合部
110 通信装置
112 コネクション数導出部
200 通信装置
201 スループット計算部
202 コネクション数導出部
203 ネットワーク監視部
204 TCPコネクション管理部
205 データ統合部
300 通信装置
301 送信時間計算部
302 コネクション数導出部
303 ネットワーク監視部
304 TCPコネクション管理部
305 データ統合部
600 通信装置
610 CPU
620 ROM
630 RAM
640 内部記憶装置
650 IO
660 入力機器
670 表示機器
680 NIC
690 記憶媒体
1000 ネットワーク
1100 受信端末
1101 データ受信アプリケーション
1102 通信装置
1200 送信端末
1201 データ配信アプリケーション
1202 通信装置
2000 企業ネットワーク
2001 中継ゲートウェイ
2002 受信端末
2003 受信端末
2101 中継ゲートウェイ
2100 企業ネットワーク
2102 送信サーバ
2103 送受信端末
2200 ネットワーク

Claims (8)

  1. ネットワークの状態を基に、通信に用いるTCPのコネクション数の増加を判断するコネクション数導出部と、
    前記判断を基に前記TCPコネクションを管理し、データを送受信するTCPコネクション管理部と、
    前記TCPコネクションを通じて受信したデータを統合するデータ統合部と
    を含む通信装置。
  2. ネットワークの可用帯域を計測する可用帯域計測部をさらに含み、
    前記コネクション数導出部が、
    前記ネットワークの状態として、前記可用帯域の計測値を用いる
    ことを特徴とする請求項1に記載の通信装置。
  3. ネットワークの遅延及びパケットロス値を計測するネットワーク監視部と、
    前記ネットワークの遅延及びパケットロス値を用いて、TCPのスループット値を計算するスループット計算部とをさらに含み、
    前記コネクション数導出部が、
    前記ネットワークの状態として、前記TCPのスループット値と現在のTCPのスループット値を用いる
    ことを特徴とする請求項1又は請求項2に記載の通信装置。
  4. 送信データの送受信に要する時間を計測する送信時間計算部をさらに含み、
    前記コネクション数導出部が、
    前記ネットワークの状態として、前記データ送信に要する時間と往復遅延時間を用いる
    ことを特徴とする請求項1乃至請求項3のいずれか1項に記載の通信装置。
  5. 請求項1乃至4のいずれか1項に記載の通信装置を含み
    前記通信装置を介してアプリケーションのデータを送受信する端末装置。
  6. 請求項1乃至4のいずれか1項に記載の通信装置を含み、
    データを送受信する複数の装置を含むネットワークに接続し、前記ネットワークと他の装置又はネットワークとのデータを中継する通信中継装置。
  7. ネットワークの状態を基に、通信に用いるTCPのコネクション数の増加を判断し、
    前記判断を基に前記TCPコネクションを管理し、データを送受信し、
    前記TCPコネクションを通じて受信したデータを統合する
    通信方法。
  8. ネットワークの状態を基に、通信に用いるTCPのコネクション数の増加を判断する処理と、
    前記判断を基に前記TCPコネクションを管理する処理と、データを送受信する処理と、
    前記TCPコネクションを通じて受信したデータを統合する処理と
    をコンピュータに実行させるプログラム。
JP2012210959A 2012-09-25 2012-09-25 通信装置及び通信方法 Pending JP2014068126A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012210959A JP2014068126A (ja) 2012-09-25 2012-09-25 通信装置及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012210959A JP2014068126A (ja) 2012-09-25 2012-09-25 通信装置及び通信方法

Publications (1)

Publication Number Publication Date
JP2014068126A true JP2014068126A (ja) 2014-04-17

Family

ID=50744143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012210959A Pending JP2014068126A (ja) 2012-09-25 2012-09-25 通信装置及び通信方法

Country Status (1)

Country Link
JP (1) JP2014068126A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076857A (ja) * 2014-10-07 2016-05-12 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2018037770A (ja) * 2016-08-30 2018-03-08 コニカミノルタ株式会社 サービス提供システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076857A (ja) * 2014-10-07 2016-05-12 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2018037770A (ja) * 2016-08-30 2018-03-08 コニカミノルタ株式会社 サービス提供システム

Similar Documents

Publication Publication Date Title
Bhanage et al. SplitAP: leveraging wireless network virtualization for flexible sharing of WLANs
Samanta et al. Battle of microservices: Towards latency-optimal heuristic scheduling for edge computing
JP2016525819A5 (ja)
EP3035193A1 (en) Memory module access method and device
JP2012065314A (ja) データ配送装置及びデータ配送システム
JP2002057699A (ja) パケット伝送方式、パケット伝送方法及び記録媒体
JP2020521391A (ja) データ分配方法、装置及びシステム
WO2013178108A1 (zh) 一种基于wlan网络的速率控制系统和方法
KR101212645B1 (ko) 가상네트워크 환경에서의 자원 할당 방법 및 장치
JP2011203810A (ja) サーバ、計算機システム及び仮想計算機管理方法
JP2015201769A (ja) 無線通信装置、無線通信方法および無線通信プログラム
JP2014068126A (ja) 通信装置及び通信方法
JP6073759B2 (ja) 通信システムおよび通信制御装置
WO2014198138A1 (zh) 数据包传输方法、接入点及无线通信系统
JP2016046669A (ja) パケット処理装置、プログラム及び方法
US20170019908A1 (en) Method and System for Controlling Quality of Service of Sharing Network
JP2009212632A (ja) 通信装置および通信方法
US9544235B2 (en) Scaling WiFi performance for large-audience environments via access points
KR100823134B1 (ko) 무선 메쉬 네트워크 시스템 및 그의 대역폭 재할당 방법
US20120257498A1 (en) METHOD AND SYSTEM FOR PROVIDING END-TO-END QoS IN CONVERGED NETWORKS USING PROBABILISTIC PREFERENTIAL ADMISSION CONTROL
JP2015050502A (ja) 無線通信装置、収容予測装置、境界情報取得装置、収容予測方法、境界情報取得方法、及びプログラム
WO2019124290A1 (ja) 送信データ量制御装置、方法および記録媒体
US8270411B1 (en) Bandwidth allocation based on dormancy transitions
Detti et al. Per-station throughput fairness in a WLAN hot-spot with TCP traffic
WO2021186234A1 (en) Dimensioning granular multi-timescale fairness