JP5773820B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP5773820B2 JP5773820B2 JP2011203505A JP2011203505A JP5773820B2 JP 5773820 B2 JP5773820 B2 JP 5773820B2 JP 2011203505 A JP2011203505 A JP 2011203505A JP 2011203505 A JP2011203505 A JP 2011203505A JP 5773820 B2 JP5773820 B2 JP 5773820B2
- Authority
- JP
- Japan
- Prior art keywords
- connection
- connections
- speed
- grouping
- processing unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
この問題を解決するために、複数のTCPコネクションを用いる方法が挙げられる。
複数のTCPコネクションを用いる方法には、TCPコネクション数を固定にする手法と変動させる手法とがある。TCPコネクションを変動させる手法にはTCPパケットの再送回数を測定し受信側のウィンドウサイズを変える、又はTCPコネクションを動的に開閉する手法を取る方法がある(特許文献1参照)。
しかし、単に帯域確保のためにTCPコネクションを増加させると、同通信路を利用している他ユーザの通信パフォーマンスを低下させる恐れがある。
初めに、下記で示す実施形態で使用する用語の定義について説明する。
コネクションとは、TCP(Transmission Control Protocol)プロトコルにおいて接続が確立した状態の、論理的な1つの通信路を意味する。より具体的には、コネクションとは、接続側のIPアドレスとポート番号との組で表される。
コンテンツとは、例えば、文書データや画像データを組み合わせた電子データを指す。
RTTとは、Round Trip Timeの略であり、受信側と送信側との間の往復遅延時間を意味する。
図1は、通信システムのシステム構成の一例を示す図である。
図1に示されるように、通信システムは、サーバコンピュータ102とクライアントコンピュータ103とがネットワーク100及びインターネット101を介して通信相手として接続されている。
ネットワーク100は、上述の各装置の間で情報をやり取りするための通信回線である。インターネット101は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット101により、サーバコンピュータ102が属するネットワーク100とクライアントコンピュータ103が属するネットワーク100とは、ファイアウォールを越えて通信が可能である。ネットワーク100、インターネット101は、例えば、TCP/IPプロトコル等をサポートする通信回線網であり有線・無線は問わない。
図1において、サーバコンピュータ102は、1台のサーバとして示されているが複数台のサーバで構成されていてもよい。また、サーバコンピュータ102は、仮想PCとして構成されていてもよい。
図2に示されるように情報処理装置は、ハードウェア構成として、CPU201、ROM202、RAM203、システムバス204、外部記憶装置205、ネットワークI/F制御部206を含む。CPU201、ROM202、RAM203、外部記憶装置205、ネットワークI/F制御部206は、システムバス204を介して接続される。
CPU201は、ROM202のプログラム用ROM或いは外部記憶装置205に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した処理を実行する。更に、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
なお、情報処理装置は、図2に示される以外に入出力装置等をハードウェア構成として備えていてもよい。
また、ROM202のプログラム用ROM或いは外部記憶装置205には、CPU201の制御プログラムであるオペレーションシステム等を記憶する。ROM202のデータ用ROM或いは外部記憶装置205は、各種データを記憶する。
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。ネットワークI/F制御部206は、ネットワーク100とのデータの送受信を制御する。
クライアントコンピュータ103のCPU201が、ROM202又は外部記憶装置205に記憶されたプログラム等に基づいて処理を実行することによって、後述するソフトウェア構成、及びフローチャートの各ステップの処理が実現される。
動的マルチコネクション制御システム300は、上位アプリケーション301、又はユーザから呼び出される。動的マルチコネクション制御システム300は、RTT測定処理部305、コネクション管理処理部306、結合処理部308によって構成される。また、コネクション管理処理部306は、グルーピング処理部307を持つ。
通信回路304は、ネットワーク100等である。HTTP(S)プロトコル処理部302は、HTTP(又はHTTPS)のプロトコルの処理を行う。下位プロトコル処理部303は、HTTP(又はHTTPS)より下位のプロトコルの処理を行う。
まず、F401において、上位アプリケーション301は、動的マルチコネクション制御システム300に対してファイル受信要求のイベントを発生させる。
イベントを認知した動的マルチコネクション制御システム300は、ファイル受信処理をコネクション管理処理部306に委託する。
F402において、処理を委託されたコネクション管理処理部306は、サーバコンピュータ102に対してファイルサイズ要求を送信する。
ファイルサイズ要求を受信したサーバコンピュータ102は、F403において、指定されたファイルが送信可能であれば、指定されたファイルのサイズを返送し、なんらかの原因で送信ができなければエラー情報を返送する。
ファイルサイズを受信したコネクション管理処理部306は、F404において、ファイルサイズ要求時に現在時間と取得時の時間とから、RTT(往復遅延時間)を計算する。
F406において、サーバコンピュータ102は、データ転送を行う。このとき、コネクションの数は初期コネクション数のままではなく、帯域状況に応じてコネクション管理処理部306がコネクションの数を動的に増減させる。
データ転送終了後、F407において、コネクション管理処理部306は、各コネクションが受信したデータの結合を結合処理部308に依頼する。
結合処理部308は、データの結合後、依頼された上位アプリケーションに結合データを提供し、動的マルチコネクション制御システム300の処理は終了する。
図5では動的マルチコネクション制御システム300が、コンテンツの取得から通信を終了するまでを表している。始めに、上位アプリケーション、又はユーザは、動的マルチコネクション制御システム300に対して、コンテンツの転送要求を指示する。
S501において、動的マルチコネクション制御システム300は、転送指示されたコンテンツのURLに対してファイルサイズの取得を行う。
また、S502において、動的マルチコネクション制御システム300は、RTTの計測を行う。
ファイルサイズの取得要求を受け付けたサーバコンピュータ102は、指定されたURLのファイルサイズを返送する。
このとき、マルチコネクション転送処理が有効かどうか判断できれば、どのような方法でもよい。例えば、コネクション管理処理部306は、ファイルサイズが10MB以上、かつ、RTTが100ms以上の場合にマルチコネクション転送が有効になると判断する。また、例えば、コネクション管理処理部306は、ユーザインターフェース画面を介してユーザの条件指定によってマルチコネクション転送が有効になると判断してもよい。
サーバコンピュータ102は、ファイルの取得要求を受信後、取得要求のあったコネクションを通して、要求されたファイル本体の転送を開始する。
全てのデータを受信後、S506において、コネクション管理処理部306は、結合処理部308に受信データの結合を依頼する。なお、結合処理部308は、必要な場合のみ受信データを結合する。その後、動的マルチコネクション制御システム300は、上位アプリケーション301にデータを渡し、一連の処理を終了する。
一方で、マルチコネクション転送が有効であると決定した場合、S505において、コネクション管理処理部306は、マルチコネクション転送処理を行う。
全てのデータを受信後、同様に、S506において、コネクション管理処理部306は、結合処理部308に受信データの結合を依頼する。
N = |(a*FileSize + b*RTT)|
ここで|*|は四捨五入を表し、a,bは定数である。
それぞれのコネクションはサーバコンピュータ102に対して、指定されたURLのファイルの指定された範囲の取得要求を送信する。
転送開始後、S604において、コネクション管理処理部306は、RTT測定処理部305に対してRTTの取得を行う。RTT測定処理部305は、定期的に指定されたURLに対して空の要求を送り、その返送までの時間からRTTを求める。また、コネクション管理処理部306は、RTT測定処理部305から取得したRTTの中で、最小のRTTを保持しておく。この最小RTTは今までに取得したRTTのうち、最も時間の短かったRTTとする。但し、回線が低負荷のときのRTTを推定できるのであればこの限りではない。
次にS605において、コネクション管理処理部306は、ファイルサイズとRTTとから増減コネクション数を決定する。ここではS601と同様に、ファイルサイズが大きく、RTTが長い程多くすべきである。
S702において、グルーピング処理部307は、転送速度が十分に遅いかどうかの判定を行う。例えば、グルーピング処理部307は、各コネクションの平均に対して、標準偏差を基にどの程度遅いかといった閾値を決め、転送速度がその閾値より遅いか否かを判定する。
グルーピング処理部307は、S703とS704とにおいて、各コネクションを高速グループか、低速グループかにグルーピングする。グルーピングの実体は適切に分類できるものであればどのようなデータ構造でもよいが、例えば、コネクションの番号をキーとし、真か偽をとる真理値を値としたマップであってもよい。全てのコネクションに対して、グルーピングが終わった後、全体としてのグルーピング処理S606は終了する。
S607のコネクション数増減処理は、通信帯域の状況に応じてコネクション数を増減させる処理である。このコネクション数増減処理について、図8を用いて詳細に説明する。
S801において、コネクション管理処理部306は、通信負荷が少ないかどうかの判定を行う。この判定は、適切に通信負荷が低いと判定できるものであればよいが、例えば、
a * 最小 RTT > 現在のRTT
のような判定である。
なお、aは、通信負荷が低いとみなす誤差の割合である。
ここで、通信負荷が低いと判定した場合、S802において、コネクション管理処理部306は、増減フラグに真をセットする。
b*最小 RTT < 現在のRTT
のような判定である。なお、bは、通信負荷が高いとみなす、最小RTTを基にした割合である。ここで、通信負荷が高いと判定した場合、コネクション管理処理部306は、S804において、増減フラグに偽をセットする。
なお、S801とS803とにおいて判定結果が共に、真とならなかった場合には、現状維持と判断し、コネクションの増減処理は行われず、処理が戻される。
次にS806において、コネクション管理処理部306は、低速グループの中から最も転送の残量が多いコネクションを選択する。
S807において、コネクション管理処理部306は、選択したコネクションが接続時オーバヘッドを考慮しても分割転送が有効かどうかを判断する。このとき、接続時オーバヘッドを適切に考慮できる方法であればよいが、例えば、コネクション管理処理部306は、
S(RTT+Tprotcol)<B/2
を満たすとき分割転送は有効であるとする。なお、Bは、転送残量である。Sは、コネクションの転送速度である。Tprotcolは、プロトコルスタックの接続時オーバヘッドである。
まずS901において、コネクション管理処理部306は、選択したコネクションを分割するために、分割点として適切な位置を開始ポイントとして選択する。
次にS902において、コネクション管理処理部306は、選択したポイントから、コネクションに与えられた転送範囲の終わりまでを範囲とした、新たなコネクションの接続を開始する。S901では分割点を指定するが、分割ポイントはどのような方法で決めてもよいが、接続時オーバヘッドを考慮した手法であるとなおよい。
例えば図10Aのように、コネクションの残量の残り半分を指定する方法があるが、この手法の場合、接続時オーバヘッドのため、新しく作ったコネクションが転送完了するまでに時間遅延が発生する。そのため、図10Bのように接続時オーバヘッドを考慮した分割点を求める手法であってもよい。より具体的にはコネクション管理処理部306は、
A−B/2+S(RTT+Tprotcol)
のような式で分割点を求める。なお、Aは、コネクションの転送サイズである。Bは、転送残量である。Sは、コネクションの転送速度である。Tprotcolは、プロトコルスタックの接続時オーバヘッドである。F1101は、S809の処理の際に呼ばれるフローである。
S1001において、コネクション管理処理部306は、転送が完了したコネクションを検出すると、まず停止中のコネクションがあるかを確認する。停止中のコネクションがある場合、コネクション管理処理部306は、そのコネクションを再開する。
もし停止コネクションが無かった場合、S1002において、コネクション管理処理部306は、低速グループに少なくとも1本以上のコネクションがあることを確認する。
1本以上ある場合、S1003において、コネクション管理処理部306は、低速グループのコネクションの中から最も転送残量の多いコネクションを選択する。
S1004において、コネクション管理処理部306は、最も残量の多いコネクションが、接続時オーバヘッドを考慮しても分割転送が有効であると判断した場合、選択したコネクションを分割する。
S1005でコネクションがあると判断した場合、S1006において、コネクション管理処理部306は、高速グループの中から最も転送残量の多いコネクションを選択する。
S1007で選択したコネクションが接続時オーバヘッドを考慮しても分割転送が有効であると判断した場合、S1008において、コネクション管理処理部306は、選択したコネクションを分割する。
もしS1005において高速グループのコネクションが1本も無い、又はS1007において接続時オーバヘッドを考慮した場合に分割転送が有効ではないと判断した場合、コネクション管理処理部306は、何も行わない。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
したがって、アプリケーション層で操作可能な範囲のみで、他ユーザの通信パフォーマンスを落とさずにマルチコネクション通信を用いて適切にデータを受信することができる。
Claims (5)
- ネットワークを介して通信相手と複数のコネクションを確立してデータの受信を行う際に、前記複数のコネクションの各転送速度を測定する測定手段と
前記測定手段で測定した転送速度に基づいて、前記複数のコネクションを閾値より速度の遅い低速グループと前記閾値より速度の速い高速グループとにグルーピングするグルーピング手段と、
動的にコネクションを減少させる際に、前記グルーピング手段でグルーピングした低速グループの中で最も転送残量の多いコネクションを切断する切断手段と、
を有する情報処理装置。 - 動的にコネクションを増加させる際に、前記グルーピング手段でグルーピングした低速グループの中で最も転送残量の多いコネクションを分割する分割手段を更に有する請求項1記載の情報処理装置。
- 前記コネクションは、TCP(Transmission Control Protocol)コネクションである請求項1又は2記載の情報処理装置。
- 情報処理装置が実行する情報処理方法であって、
ネットワークを介して通信相手と複数のコネクションを確立してデータの受信を行う際に、前記複数のコネクションの各転送速度を測定する測定ステップと
前記測定ステップで測定した転送速度に基づいて、前記複数のコネクションを閾値より速度の遅い低速グループと前記閾値より速度の速い高速グループとにグルーピングするグルーピングステップと、
動的にコネクションを減少させる際に、前記グルーピングステップでグルーピングした低速グループの中で最も転送残量の多いコネクションを切断する切断ステップと、
を含む情報処理方法。 - コンピュータに、
ネットワークを介して通信相手と複数のコネクションを確立してデータの受信を行う際に、前記複数のコネクションの各転送速度を測定する測定ステップと
前記測定ステップで測定した転送速度に基づいて、前記複数のコネクションを閾値より速度の遅い低速グループと前記閾値より速度の速い高速グループとにグルーピングするグルーピングステップと、
動的にコネクションを減少させる際に、前記グルーピングステップでグルーピングした低速グループの中で最も転送残量の多いコネクションを切断する切断ステップと、
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011203505A JP5773820B2 (ja) | 2011-09-16 | 2011-09-16 | 情報処理装置、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011203505A JP5773820B2 (ja) | 2011-09-16 | 2011-09-16 | 情報処理装置、情報処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013066059A JP2013066059A (ja) | 2013-04-11 |
JP5773820B2 true JP5773820B2 (ja) | 2015-09-02 |
Family
ID=48189163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011203505A Expired - Fee Related JP5773820B2 (ja) | 2011-09-16 | 2011-09-16 | 情報処理装置、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5773820B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014096674A (ja) * | 2012-11-08 | 2014-05-22 | Hitachi High-Technologies Corp | ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11242640A (ja) * | 1998-02-25 | 1999-09-07 | Kdd Corp | ファイル転送方法 |
JP3472511B2 (ja) * | 1999-07-12 | 2003-12-02 | Kddi株式会社 | データ伝送装置 |
JP2004206172A (ja) * | 2002-12-20 | 2004-07-22 | Sanyo Electric Co Ltd | 通信制御方法および装置 |
JP2008293232A (ja) * | 2007-05-24 | 2008-12-04 | Kyocera Mita Corp | 機器管理プログラム、通信機器及び機器管理方法 |
US20120054362A1 (en) * | 2010-08-31 | 2012-03-01 | Canon Kabushiki Kaisha | Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections |
-
2011
- 2011-09-16 JP JP2011203505A patent/JP5773820B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013066059A (ja) | 2013-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9313047B2 (en) | Handling high throughput and low latency network data packets in a traffic management device | |
WO2023005773A1 (zh) | 基于远程直接数据存储的报文转发方法、装置、网卡及设备 | |
JP2018509674A (ja) | ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化 | |
JP6289092B2 (ja) | 情報処理装置、その制御方法およびコンピュータプログラム | |
CN108028833A (zh) | 一种nas数据访问的方法、系统及相关设备 | |
US8819242B2 (en) | Method and system to transfer data utilizing cut-through sockets | |
WO2023011254A1 (zh) | 基于远程直接数据存储的热迁移方法、装置及设备 | |
US11403253B2 (en) | Transport protocol and interface for efficient data transfer over RDMA fabric | |
US10432530B2 (en) | System and method of providing compression technique for jitter sensitive application through multiple network links | |
US10523741B2 (en) | System and method for avoiding proxy connection latency | |
CN115396372B (zh) | 数据流的速率控制方法、智能网卡、云端设备及存储介质 | |
JP2014195158A (ja) | 通信装置と、当該通信装置を含む通信システム、及びその制御方法とプログラム | |
WO2022057131A1 (zh) | 数据拥塞处理方法、装置、计算机设备和存储介质 | |
JP5773820B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
US11444882B2 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
WO2017000094A1 (zh) | 一种数据存储方法、装置和系统 | |
CN103490939A (zh) | 一种处理数据包的方法及装置 | |
CN112311694A (zh) | 一种优先级调整方法及装置 | |
WO2015062390A1 (zh) | 虚拟机迁移方法、装置及系统 | |
US11941445B2 (en) | RLC channel management for low memory 5G devices | |
US20130346601A1 (en) | Network device, method of controlling the network device, and network system | |
EP2204953A1 (en) | Method, apparatus and system for realizing dynamic correlation of control plane traffic rate | |
US9143458B2 (en) | Network device, method for controlling the network device, and network system | |
Zhang et al. | QoE-Driven Data Communication Framework for Consumer Electronics in Tele-Healthcare System | |
EP3016333B1 (en) | Handling high throughput and low latency network data packets in a traffic management device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140908 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150522 |
|
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: 20150602 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150630 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5773820 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |