JP2014049995A - Communication device, system and program - Google Patents
Communication device, system and program Download PDFInfo
- Publication number
- JP2014049995A JP2014049995A JP2012192661A JP2012192661A JP2014049995A JP 2014049995 A JP2014049995 A JP 2014049995A JP 2012192661 A JP2012192661 A JP 2012192661A JP 2012192661 A JP2012192661 A JP 2012192661A JP 2014049995 A JP2014049995 A JP 2014049995A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- transmission
- data
- communication
- 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.)
- Granted
Links
Images
Abstract
Description
本発明の実施形態は、通信装置、システム及びプログラムに関する。 Embodiments described herein relate generally to a communication device, a system, and a program.
従来から、ネットワークを介して接続されたサーバ装置とクライアント装置とを含むシステムにおいて、サーバ装置とクライアント装置との間のデータ伝送に用いる伝送プロトコルにTCP/IPを利用する場合が多い。 Conventionally, in a system including a server device and a client device connected via a network, TCP / IP is often used as a transmission protocol used for data transmission between the server device and the client device.
伝送プロトコルにTCP/IPを用いてデータを送信する場合、サーバは、TCP層において、TCPストリームを用いてデータの伝送レート(通信帯域幅)の制御を行いながら、IP層にデータを渡し、IP層がネットワークにデータを送出する。 When transmitting data using TCP / IP as a transmission protocol, the server passes data to the IP layer while controlling the data transmission rate (communication bandwidth) using the TCP stream in the TCP layer. The layer sends data to the network.
従来、サーバとクライアント装置との間でTCPストリームは単数本確立して、データ伝送を行っていた。しかしながら、近年、サーバとクライアント装置との間でTCPストリームを複数本確立し、複数のデータに分割して、分割したデータを並列的に伝送する手法が用いられるようになってきた。複数のTCPストリームを用いると、データの伝送レートを向上することができる。 Conventionally, a single TCP stream has been established between a server and a client device to perform data transmission. However, in recent years, a technique has been used in which a plurality of TCP streams are established between a server and a client device, divided into a plurality of data, and the divided data is transmitted in parallel. If a plurality of TCP streams are used, the data transmission rate can be improved.
データの送受信を正しく行うためには、サーバとクライアントとは、同一の伝送方式に対応している必要がある。例えば、前出の複数のTCPストリームを用いる伝送方式を例にすると、通信の相手が単一のTCPストリームを用いる伝送方式にしか対応していない場合、複数のTCPストリームによる接続確立を行っても失敗するため、データの送受信を開始することができない。 In order to correctly transmit and receive data, the server and the client need to support the same transmission method. For example, taking the transmission method using a plurality of TCP streams as described above as an example, if the communication partner only supports the transmission method using a single TCP stream, even if connection establishment is performed using a plurality of TCP streams. Because it fails, data transmission / reception cannot be started.
そこで、サーバとクライアント装置とが対応する伝送方式をネゴシエーションする必要が生じる。しかしながらネゴシエーションを行うためには、双方の間で対応する伝送方式の種類を交換する等の手順が必要であり、ネゴシエーションが完了するまで時間を要する。このため、データの送信の必要が生じてから実際に送出が行えるようになるまで遅延が発生する点が問題である。また、そのようなネゴシエーションの機構を持たないサーバまたはクライアント装置が既に広く普及しているのであれば、ネゴシエーションの機能を後からそれらの装置に追加することは困難である。 Therefore, it becomes necessary to negotiate a transmission method corresponding to the server and the client device. However, in order to perform the negotiation, a procedure such as exchanging the type of transmission method corresponding to both parties is necessary, and it takes time until the negotiation is completed. For this reason, there is a problem in that a delay occurs until the data can be actually transmitted after the data needs to be transmitted. In addition, if a server or a client device that does not have such a negotiation mechanism is already widely used, it is difficult to add a negotiation function to these devices later.
本発明の一側面は、サーバ装置及びクライアント装置が複数種類の伝送方式に対応する場合に、ネゴシエーションによる、データ伝送の遅延を低減することを目的とする。 An object of one aspect of the present invention is to reduce a data transmission delay due to negotiation when a server apparatus and a client apparatus support a plurality of types of transmission schemes.
本発明の一側面に係る通信装置は、
ネットワークを介して接続された第1の通信装置との間で通信を行う装置であって、第1の接続を確立するための処理を行うとともに、前記第1の通信装置と前記第1の接続を確立した場合に、第1の伝送方式で通信を行う第1の通信部と、第2の接続を確立するための処理を行うとともに、前記第1の通信装置と前記第2の接続を確立した場合に、第2の伝送方式で通信を行う第2の通信部と、前記第1の通信部が前記第1の接続を確立するための処理を行うタイミングと、前記第2の通信部が前記第2の接続を確立するための処理を行うタイミングとが重複する様に、前記第1の通信部に対して前記第1の接続を確立するための処理を行うように第1の指示を出すとともに、前記第2の通信部に対して前記第2の接続を確立するための処理を行うように第2の指示を出す指示部と、分配部と、を備え、前記第1の通信部は、前記第1の接続を確立するための処理を完了した場合に、前記分配部に第1メッセージを通知し、前記第2の通信部は、前記第2の接続を確立するための処理を完了した場合に、前記分配部に第2メッセージを通知し、前記分配部は、前記送信データを、通信に用いるすべての接続の確立を最初に完了した前記第1の通信部又は前記第2の通信部のいずれか一方に分配するとともに、前記第1の通信部が最初に前記第1の接続を確立するための処理を完了した場合に、前記第1の通信部に前記送信データを分配するとともに、前記第2の通信部が前記第2の接続の確立するための処理を完了後、前記送信データの分配先を前記第1の通信部から前記第2の通信部に切り替えることを特徴とする。
A communication apparatus according to one aspect of the present invention is provided.
A device that communicates with a first communication device connected via a network, and performs processing for establishing a first connection, and the first communication device and the first connection Is established, the first communication unit that performs communication using the first transmission method and the process for establishing the second connection are performed, and the second connection is established with the first communication device. A second communication unit that performs communication using the second transmission method, a timing at which the first communication unit performs processing for establishing the first connection, and the second communication unit includes: Instructing the first communication unit to perform the process for establishing the first connection so that the timing for performing the process for establishing the second connection overlaps. And processing for establishing the second connection to the second communication unit An instruction unit that issues a second instruction; and a distribution unit, wherein the first communication unit sends a first message to the distribution unit when the process for establishing the first connection is completed. And the second communication unit notifies the distribution unit of a second message when the process for establishing the second connection is completed, and the distribution unit communicates the transmission data with the second message. Distribution of all the connections used for the first communication unit to the first communication unit or the second communication unit that is first completed, and the first communication unit first establishes the first connection. The transmission data is distributed to the first communication unit and the second communication unit completes the process for establishing the second connection, and then the transmission data The distribution destination of the network from the first communication unit to the second communication unit And wherein the door.
以下、本発明の実施の形態について、図面を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the drawings, the same portions are denoted by the same reference numerals, and redundant description is omitted.
<第1の実施形態>
第1の実施形態では、サーバ装置とクライアント装置が、それぞれ単一のTCPストリームによる伝送方式と複数のTCPストリームによる伝送方式のいずれか一方または両方に対応するものとする。なお伝送方式はこれらに限る必要はない。また三種類以上であってもよい。
<First Embodiment>
In the first embodiment, it is assumed that the server device and the client device respectively correspond to one or both of a transmission method using a single TCP stream and a transmission method using a plurality of TCP streams. The transmission method need not be limited to these. Three or more types may be used.
図1は、第1の実施形態にかかるシステムの構成を示すブロック図である。図1のシステムは、クライアント装置1とサーバ装置2とが、ネットワーク3を介して接続されている。クライアント装置1とサーバ装置2とは、単数若しくは複数のTCPストリームを確立し、確立したTCPストリームを用いて通信を行う装置である。
FIG. 1 is a block diagram illustrating a configuration of a system according to the first embodiment. In the system of FIG. 1, a
本発明の一観点に係るクライアント装置1は、ネットワーク3を介して接続された第サーバ装置2との間で通信を行う装置であって、単一のストリームを確立するための処理を行うとともに、サーバ装置2と前記単一のストリームを確立した場合に、前記単一のストリームを用いて通信を行う第1の送信部103と、複数のストリームを確立するための処理を行うとともにサーバ装置2と前記複数のストリームを確立した場合に、前記複数のストリームを用いて通信を行う第2の送信部104と、第1の送信部103が、前記単一のストリームを確立するための処理を行うタイミングと、第2の送信部104が、前記複数のストリームを確立するための処理を行うタイミングとが、重複する様に、第1の送信部103に対して、前記単一のストリームを確立するための処理を行うように第1の指示を出すとともに、第2の送信部104に対して、前記複数のストリームを確立するための処理を行うように第2の指示を出す確立指示部101と、第1分配部102と、を備え、第1の送信部103は、前記単一のストリームを確立するための処理を完了した場合に、第1分配部102に、第1メッセージを通知し、第2の送信部104は、前記複数のストリームを確立するための処理を完了した場合に第1分配部102に、第2メッセージを通知し、第1分配部102は、前記送信データを、通信に用いるすべてのストリームの確立を最初に完了した、第1の送信部103又は第2の送信部104のいずれか一方に分配するとともに、第1の送信部103が最初に、前記単一のストリームを確立するための処理を完了した場合に、第1の送信部103に、前記送信データを分配するとともに、第2の送信部104が、前記複数のストリームの確立するための処理を完了後、前記送信データの分配先を、第1の送信部103から第2の送信部104に切り替えることを特徴とする。
The
以下では、まず、クライアント装置1及びサーバ装置2の構成を図1を用いて説明する。
Below, the structure of the
≪ クライアント装置の構成 ≫
クライアント装置1は、データ供給部100と、確立指示部101と、第1分配部102と、第1の送信部103と、第2の送信部104とを備える。第1の送信部103は、確立部105を備える。第2の送信部104は、確立部106と第2分配部107とを備える。
≪ Client device configuration ≫
The
データ供給部100は、サーバ装置2に伝送すべきデータを供給する。
The
確立指示部101は、第1の送信部103の確立部105と第2の送信部104の確立部106を用いてサーバ装置2との間で接続の確立を指示する。(確立部105及び確立部106に対するそれぞれの指示を、第1の指示及び第2の指示と称する。)
第1分配部102は、データ供給部100から渡されたデータを第1の送信部103または第2の送信部104に渡し、データの送出を指示する。
The
The
第1の送信部103は、第1の伝送方式によるデータ送信を行う。本実施形態では、第1の伝送方式は、単一のTCPストリームを用いる伝送方式である。
The
第2の送信部104は、第2の伝送方式によるデータ送信を行う。本実施形態では、第2の伝送方式は、複数TCPストリームを用いる伝送方式である。
The
確立部105は、第1の伝送方式における接続確立を行う。確立部105は、具体的には、サーバ装置2の第1の受信部200との間で単一のTCPストリームの作成を行う。
The establishment unit 105 establishes connection in the first transmission method. Specifically, the establishing unit 105 creates a single TCP stream with the
確立部106は、第2の伝送方式における接続確立を行う。確立部106は、具体的には、まず、サーバ装置2の第2の受信部201との間で制御用のTCPストリームの作成を行う。確立部106は、次に、制御用TCPストリームを用いてデータ用の(複数の)TCPストリームの作成に関する情報を交換し、交換した情報を用いて、データ用TCPストリームの作成を行う。
The establishment unit 106 establishes connection in the second transmission method. Specifically, the establishing unit 106 first creates a control TCP stream with the
第2分配部107は、第2の伝送方式におけるデータ分配を行う。第2分配部107は、具体的には、第1分配部102から渡されたデータを分割し、分割順序を表すヘッダを付加した上で、複数のTCPストリームに渡し送信を行う。分割部107の動作の詳細は、図2を用いて後述する。
The
以上が、クライアント装置1の構成の説明である。
The above is the description of the configuration of the
≪ サーバ装置の構成 ≫
次に、サーバ装置2の構成を説明する。
≪ Server device configuration ≫
Next, the configuration of the
サーバ装置2は、第1の受信部200と、第2の受信部201と、第2収集部205と、データ出力部206とを備える。第1の受信部200は、待受部202を備える。第2の受信部201は待受部203と第1収集部204とを備える。
The
第1の受信部200は、第1の伝送方式によるデータ受信を行う。
The
第2の受信部201は、第2の伝送方式によるデータ受信を行う。
The
待受部202は、第1の伝送方式における接続待受を行う。待受部202は、具体的には、クライアント装置1の第1の送信部103との間でTCPストリームの作成を行う。
The
待受部203は、第2の伝送方式における接続待受を行う。待受部203は、具体的には、クライアント装置1の第2の送信部104との間で制御用TCPストリームの作成を行い、この制御用TCPストリームを用いてデータ用TCPストリームの作成に関する情報を交換した後で、複数のデータ用TCPストリームの作成を行う。
The
第1収集部204は、第2の伝送方式におけるデータ収集を行う。具体的には、第1収集部204は、第2の送信部104から受信したデータに付加された分割情報を表すヘッダにもとづいて分割前のデータを再現し、第2収集部205へ渡す。
The
第2収集部205は、第1の受信部200または第2の受信部201から渡されたデータ収集し、データ出力部206へ渡す。
The
データ出力部206は第2収集部205から渡されたデータを出力する。
The
以上が、サーバ装置2の構成の説明である。
The above is the description of the configuration of the
≪ 処理の流れ ≫
次に、第1の実施形態に係るシステムにより行われる処理について、図面を適宜参照しながら説明する。
≪Process flow≫
Next, processing performed by the system according to the first embodiment will be described with reference to the drawings as appropriate.
クライアント装置1とサーバ装置2がネットワーク3を介して物理的に接続されている。第1の伝送方式を、単一のTCPストリームを用いる伝送方式であるとし、第2の伝送方式を、複数TCPストリームを用いる伝送方式であるとする。その上で、クライアント装置1とサーバ装置2が両方とも複数TCPストリームを用いる伝送方式に対応する場合はそれを優先的に使用するものとする。
A
≪ 処理の流れ(接続の確立) ≫
始めに、サーバ装置2は接続の待受処理を行う。待受処理の開始タイミングは、例えばサーバ装置2が起動したタイミングや、ユーザから明示的に指示があったタイミングなど、任意のタイミングであってよい。第1の受信部200の待受部202と、第2の受信部201の待受部203が、それぞれ待受処理を開始する。待受部202は、ソケットを作成し、第1の受信部200の固有のポート番号をソケットに割り当ててポートをオープンにし、クライアント装置1からの接続を待ち受ける。また待受部203も、ソケットを作成し、第2の受信部201の固有のポート番号をソケットに割り当ててポートをオープンにし、クライアント装置1からの接続を待ち受ける。
≪ Process flow (connection establishment) ≫
First, the
次に、クライアント装置1の確立指示部101は接続の確立処理を行う。確立処理の開始タイミングは例えばユーザから明示的に指示があったタイミングや、データ供給部100において送信すべきデータが発生したタイミングなど、任意のタイミングであってよい。確立指示部101は、第1の送信部103の確立部105と、第2の送信部104の確立部106に対して、それぞれ接続の確立処理を開始するよう指示する。
Next, the
なお、本実施形態では確立部105と確立部106に対して同時のタイミングで接続の確立処理を開始するよう指示を出すものとしたが、必ずしもこれに限る必要はない。指示を出すタイミングに時間差を生じさせても良い。 In the present embodiment, the establishment unit 105 and the establishment unit 106 are instructed to start connection establishment processing at the same timing. However, the present invention is not necessarily limited to this. A time difference may be generated at the timing of issuing the instruction.
確立部105は、待受部202がオープンにしたポートに対しSYNを送出し、3ウェイハンドシェイクによるTCPの接続確立を行う。SYNとACK(確認応答)を交換し終わると、両者の間でTCPストリームが作成された状態となる。TCPストリームの作成が完了すると、確立部105は接続の確立が成功したことを確立指示部101に通知する。
The establishment unit 105 sends SYN to the port opened by the
確立部106は、待受部203がオープンにしたポートに対しSYNを送出し、3ウェイハンドシェイクによるTCPの接続確立を行う。SYNとACKを交換し終わると、両者の間でTCPストリームが作成された状態となる。第2の送信部104ではこのTCPストリームを制御用TCPストリームと呼ぶ。制御用TCPストリームの作成が完了すると、確立部106はこの制御用TCPストリームを用いて、データ用TCPストリームの作成に関する情報を交換する。始めに確立部106は、データ用TCPストリームで使用するポート番号の取得要求を待受部203に送出する。待受部203は、取得要求を受け取ると、その時点でサーバ装置2において任意のポートを選択し、このうち要求された個数のポート番号を選択し、データ用TCPストリームに割り当てる。待受部203は、要求された個数のソケットを作成し、選択したポート番号をそれぞれのソケットに割り当ててポートをオープンにする。そしてオープンにしたポート番号の一覧の情報を確立部106に送出する。次に確立部106は、ポート番号の一覧情報を受け取ると、それらのポートに対し3ウェイハンドシェイクによるTCPの接続確立を行う。SYN/ACKを交換しTCPストリームが作成された状態となると、確立部106は接続の確立が成功したことを確立指示部101に通知する。
The establishing unit 106 sends SYN to the port opened by the
なお、本実施形態では待受部203はデータ用TCPストリームを作成する際に任意のポートを選択するものとしたが、必ずしもこれに限る必要はない。待受部203は、サーバ装置2におけるポート番号を管理するためのポート管理部をさらに有し、サーバ装置2において未使用であるポート番号を探索し使用してもよい。これにより、選択したポート番号が既に使用中であるために接続確立が失敗するという可能性を低減することが可能となる。
In the present embodiment, the
また、待受部203は、第2の受信部201におけるデータ伝送速度を管理する伝送速度管理部をさらに有しても良い。サーバ装置2において他のアプリケーションが行うデータ伝送の速度を取得し、この値に基づいて、データ用TCPストリームの個数に制限を加えても良い。あるいは任意の方法により各データ用TCPストリームにおいて達成可能な伝送速度に制限を加えてもよい。
The
≪ 処理の流れ(データの伝送) ≫
第1の送信部103における接続の確立処理と、第2の送信部104における接続の確立処理は、並行的に実行される。このため、確立指示部101は、接続の確立の結果の通知を、先に完了した方から順に受け取ることになる。確立指示部101は、第1の送信部103の接続確立が先に完了した場合と、第2の送信部104の接続確立が先に完了した場合で、それぞれ異なる処理手順を実行する。以下では、それぞれの場合について、確立指示部101の処理手順を述べる。
≪ Processing flow (data transmission) ≫
The connection establishment process in the
第1の送信部103の接続が先に完了した場合について、図3を参照しながら述べる。図3は、第1の実施形態に係るシステムの処理の流れの一例を示すシーケンス図である。
確立指示部101は、確立部105から接続の確立が成功したことの通知を受け取ると、第1分配部102に対し、データの分配先を第1の送信部103とするよう指示を出す。次に、確立指示部101は、データ供給部100に対しデータの送出が可能になったことを通知し、以降、データ供給部100からデータの入力が行われる。データ供給部100は第1分配部102にデータを渡す。第1分配部102はデータを第1の送信部103に渡す。ここで、第1分配部102は、第1の送信部103へ渡したデータサイズの累計値を保持するための記憶領域を持っており、第1の送信部103にデータを渡すごとに、当該のデータサイズの値を記憶領域の値に加算する。この値を累積送信済みデータサイズと呼ぶ。第1の送信部103に渡されたデータは、TCP/IPの各ヘッダが付与されて、TCPストリームを通じて第1の受信部200へ送出される。さらにデータは第2収集部205に渡される。第2収集部205は受け取ったデータをデータ出力部206に渡す。ここで、第2収集部205は、第1の受信部200から受け取ったデータサイズの累計値を保持するための記憶領域を持っており、データを受け取るごとに、当該のデータサイズの値を記憶領域の値に加算する。この値を累積受信済みデータサイズと呼ぶ。データ出力部206は、得られたデータを任意の方法で出力する。以降、データ供給部100からデータの入力が行われるごとに、以上の処理によりデータが最終的にデータ出力部206へと伝送される。
A case where the connection of the
When the
次に、この後で第2の送信部104の接続が完了する。確立指示部101は、確立部106から接続の確立が成功したことの通知を受け取ると、第1分配部102に対し、データの分配先を第1の送信部103から第2の送信部104へと切り替えるように指示を出す。以後、第1分配部102は、データ供給部100から送信すべきデータを受け取ると、これを第2の送信部104の第2分配部107へ渡す。第2分配部107に渡されたデータは、分割され、分割順序を表すヘッダが付与されて、さらにTCP/IPの各ヘッダが付与されて、複数のデータ用TCPストリームを通じて並列的に第2の受信部201の第1収集部204へ送出される。データが分割され分割順序を表すヘッダが付与される様子を図2に示す。図では、データが4分割され、それぞれに1から4までの通し番号と分割数からなるヘッダが付加されている。この情報を分割情報と呼ぶ。分割後のデータは任意の方法で複数のデータ用TCPストリームに割り当てられ、それぞれ送信される。受信後のデータは第1収集部204へ渡される。単一のTCPストリームにおいて送信されたデータはその順序性が保証されるが、複数のTCPストリームに分けられた場合、各ストリームの間での順序性は保証されない。そこで、第1収集部204は、分割情報を参照し、順序が元の順序に正しくなるよう並び替えを行った上で、第2収集部205へデータを渡す。分割順序を表すヘッダは除去される。
Next, the connection of the
さらに確立指示部101は、データの分配先を切り替える指示を出すのに合わせて、同じく第1分配部102から、第1の送信部103へ渡した累積送信済みデータサイズ値を読み出す。確立指示部101は、この値を第2の送信部104に通知し、制御用TCPストリームを通じてこの値を第2の受信部201へ通知するよう指示する。第2の受信部201へ通知された値はさらに第2収集部205へ通知される。ここで、第2収集部205は、通知された累積送信済みデータサイズの値と、自身が持つ累積受信済みデータサイズの値が等しくなるまで、第2の受信部201から受け取ったデータをデータ出力部206に渡さず、自身に保持しておく。つまり、第1の伝送方式を用いて伝送されたすべてのデータを受け取るまで、第2の伝送方式を用いて伝送されたデータの受け渡しを待機する。通知された累積送信済みデータサイズの値と、自身が持つ累積受信済みデータサイズの値が等しくなったタイミングで、保持していた第2の受信部201からのデータをすべてデータ出力部206へ受け渡す。このようにすることで、第1の伝送方式と第2の伝送方式との間で生じたデータの到着順序の入れ違いを解消することが可能になる。
Further, the
以上、第1の送信部103の接続が先に完了した場合について述べた。
The case where the connection of the
次に、第2の送信部104の接続が先に完了した場合について述べる。確立指示部101は、確立部106から接続の確立が成功したことの通知を受け取ると、第1分配部102に対し、データの分配先を第2の送信部104とするよう指示を出す。次に確立指示部101は、データ供給部100に対しデータの送出が可能になったことを通知する。以降、データ供給部100のデータは第1分配部102において第2の送信部104(の第2分配部107)へと分配される。分配されたデータが第2の伝送方式に則って最終的に第2収集部205へ伝送されるまでの処理手順は前出と同様である。第2収集部205は受け取ったデータをデータ出力部206に渡す。
Next, a case where the connection of the
本実施形態では、第1の送信部103による単一TCPストリームを用いた伝送方式が、第2の送信部104による複数TCPストリームを用いた伝送方式よりも優先するものとしている。そこで確立指示部101は、第2の送信部104の接続の完了通知を受け取ったタイミングで、最早第1の伝送方式を使用する必要がなくなったことになる。そこで確立指示部101はこのタイミングで、第1の送信部103に対し、接続の確立の中断を指示する。第1の送信部103はソケット終了やポート等リソースの開放を行う。あるいは通知を受け取ったタイミングでは接続の確立の中断を行うのではなく、第1の送信部103の接続が完了するまで待機し、完了した時点で即座に第1の送信部103の接続を終了するという動作であってもよい。
In this embodiment, the transmission method using a single TCP stream by the
以上、第2の送信部104の接続が先に完了した場合について述べた。
The case where the connection of the
なお、本実施形態では第1の送信部103と第2の送信部104はそれぞれ独立して動作するものとしたが、必ずしもこれに限らなくともよく、一方の送信部でデータ送信を行っている間に取得した情報を、もう一方の送信部に渡しても良い。例を示す。いま、クライアント装置1において、第1の送信部103の接続確立が完了し、第2の送信部104の接続確立が未完了であり、データ供給部100から入力されたデータが第1の送信部103を通じてサーバ装置2へ送信されている状況であるとする。このとき、第1の送信部103は、第1の受信部200との間のTCPストリームのデータ伝送速度を計測し、自身に保持しておく。さらにこの後で、第2の送信部104の接続確立が完了したとする。確立指示部101は、第2の送信部104から接続確立の成功の通知を受けると、第1の送信部103に対し、累積送信済みデータサイズの値を問い合わせるとともに、データ伝送速度の値を問い合わせる。確立指示部101は両値を第2の送信部104の確立部106に通知する。確立部106は、通知されたデータ伝送速度の値を利用して、データ伝送用TCPストリームの個数を調整することが可能である。例えば、規定の値(第2の送信部104において実現したいデータ伝送速度の値)を通知されたデータ伝送速度で割って得られた値をデータ伝送用TCPストリームの個数とし、既に確立したデータ用TCPストリームのうちこの個数のストリームのみを以後使用するという制御を行っても良い。このように、第1の送信部103において取得したサーバ装置2やネットワーク3の特性に関する情報を第2の送信部104に通知し第2の送信部104はこれを利用することにより、これらの特性に応じて第2の送信部104の動作を適応的に調整することが可能となる。なお、測定・通知する情報はデータ伝送速度に限らなくともよい。例えばデータの伝送遅延やIPパケットのロス確率といったネットワーク3の特性に関する情報や、TCPストリームのウィンドウサイズといった第1の送信部103や第1の受信部200に関する情報などであってよい。
In the present embodiment, the
また、第1の送信部103で使用したTCPストリームを第2の送信部104において再利用するという制御を行っても良い。例を示す。上述と同様、いま、クライアント装置1において、第1の送信部103によるデータ伝送を行っている最中に、第2の送信部104における接続確立が完了したとする。確立指示部101は、第2の送信部104より接続確立の成功を受け取ると、第1の送信部103に対し、累積送信済みデータ送信サイズの値を問い合わせるとともに、第1の送信部103が使用するTCPストリームのクライアント装置1における識別子の値を問い合わせる。確立指示部101は両値を第2の送信部104に通知する。第2の送信部104は、通知されたTCPストリームの識別子を記憶し、以後、このストリームをデータ用ストリームと同等に扱う。つまり第1の送信部103のTCPストリームをデータ用ストリームとして再利用する。これにより、TCPストリームの作成に伴う処理負荷を削減することが可能となる。
Alternatively, control may be performed so that the TCP stream used in the
≪ 一方の伝送方式のみ対応する場合 ≫
次に、クライアント装置1またはサーバ装置2のいずれかが第2の伝送方式に対応していない場合の動作について説明する。
≪ When only one transmission method is supported ≫
Next, an operation when either the
始めに、サーバ装置2が第1の伝送方式のみに対応し、第2の伝送方式に対応していない場合の動作について説明する。クライアント装置1は両方の伝送方式に対応するものと仮定する。
First, an operation in the case where the
サーバ装置2が第2の伝送方式に対応していない場合、サーバ装置2において第2の受信部201は存在しない。サーバ装置2は接続の待受処理において、第1の受信部200の待受部202のみがポートをオープンにし、クライアント装置1からの接続を待ち受ける状態となる。
When the
クライアント装置1の確立指示部101における接続の確立処理は前述と同様であり、第1の送信部103の確立部105と、第2の送信部104の確立部106のそれぞれにおいて、接続の確立処理が開始される。ここで、第1の伝送方式に対するポートと、第2の伝送方式に対応するポートの両方に対し、SYNが送出されることになる。このうち第1の伝送方式に関しては、第1の受信部200の待受部202がポートをオープンにしているため、3ウェイハンドシェイクによるTCPの接続確立は成功する。一方、第2の伝送方式に関しては、対応するポートがオープンにされていないため、TCPの接続確立は失敗する。確立部106は接続確立に失敗したことを確立指示部101に通知する。このとき、確立指示部101は、第1の送信部103からは接続確立成功の通知を受け、第2の送信部104からは接続確立失敗の通知を受けることになる。本実施形態では、確立指示部101は接続確立成功の通知を受けたタイミングで第1の伝送方式によるデータ送信を開始し、接続確立失敗の通知を受けたタイミングで特別な処理は行わないものとする。
The connection establishment process in the
次に、クライアント装置1が第1の伝送方式のみに対応し、第2の伝送方式に対応していない場合の動作について説明する。サーバ装置2は両方の伝送方式に対応するものと仮定する。
Next, an operation when the
クライアント装置1が第2の伝送方式に対応していない場合、クライアント装置1において第2の送信部104は存在しない。クライアント装置1は接続の確立処理において、サーバ装置2の第1の受信部200に対してのみ、TCPの接続確立を試みることになる。この接続確立は成功し、確立指示部101は成功の通知を受け取ると、以降、データ供給部100からのデータ送出が第1の送信部103を通じて行われることになる。
When the
以上、クライアント装置1またはサーバ装置2のいずれかが第2の伝送方式に対応していない場合の動作について説明した。
The operation when either the
<第1の実施形態の変形例>
図4は、第1の実施形態の変形例にかかるシステムを示すブロック図である。
<Modification of First Embodiment>
FIG. 4 is a block diagram showing a system according to a modification of the first embodiment.
第1の実施形態に係るシステムは、クライアント装置1がデータを送信し、サーバ装置22がデータを受信する場合についての説明だった。第1の実施形態の変形例にかかるシステムは、クライアント装置21がデータを受信し、サーバ装置22がデータを送信する場合を説明する。第1の実施形態の変形例にかかるクライアント装置21及びサーバ装置22は、クライアント装置とサーバ装置とが、送受信側の立場が第1の実施形態の立場と変わったこと以外は、第1の実施形態と同様である。
The system according to the first embodiment has been described for the case where the
図4において、クライアント装置21は、データ供給部110と、確立指示部111と、第3収集部112と、第1の受信部113と、第2の受信部114とを備える。
4, the client device 21 includes a
また、サーバ装置22は、第1の送信部210と、第2の送信部211と、待受部215と、第4分配部216と、データ供給部217とを有する。
The server device 22 includes a
ここで、クライアント装置21の確立指示部111、確立部115、及び確立部116は第1の実施形態と同様の動作を行う。また、サーバ装置22の第1の待受部212、待ち受け部215、及び待ち受け部213は第1の実施形態と同様の動作を行う。
Here, the
始めに、サーバ装置22は接続の待受処理を行う。これは第1の実施形態と同一の動作である。第1の送信部210の待受部212と、第2の送信部211の待受部213は、それぞれ固有のポート番号をソケットに割り当ててポートをオープンにし、クライアント装置21からの接続を待ち受ける。
First, the server device 22 performs a connection standby process. This is the same operation as in the first embodiment. The standby unit 212 of the
次に、クライアント装置21の確立指示部111は接続の確立処理を行う。確立指示部111は、第1の受信部113の確立部115と、第2の受信部114の確立部116に対して、それぞれ接続の確立処理を開始するよう指示する。それぞれの接続の確立処理は並列的に行われる。確立部115は、待受部212との間でTCPの接続確立を試みる。TCPストリームの作成が完了すると、確立部115は接続の確立が成功したことを確立指示部111に通知する。同様に、確立部116は、待受部213との間でTCPの接続確立を試みる。TCPストリーム(制御用TCPストリーム)の作成が完了すると、次に確立部116はこの制御用ストリームを用いて、データ用TCPストリームの作成に関する情報を待受部213と交換する。始めに確立部116は、データ用TCPストリームで使用するポート番号の取得要求を待受部213に送出する。待受部213は、取得要求を受け取ると、その時点でサーバ装置22において未使用であるポートを調べ、このうち任意の個数のポート番号を選択し、データ用TCPストリームに割り当てる。待受部213は、選択した個数のソケットを作成し、選択したポート番号をそれぞれのソケットに割り当ててポートをオープンにする。そしてオープンにしたポート番号の一覧の情報を確立部116に送出する。次に確立部116は、ポート番号の一覧情報を受け取ると、それらのポートに対しTCPの接続確立を行う。データ用TCPストリームが作成された状態となると、確立部116は接続の確立が成功したことを確立指示部111に通知する。
Next, the
第1の送信部210の待受部212は、確立部115との間でTCPストリームの作成が完了すると、接続の確立が成功したことを待受部215に通知する。同様に、第2の送信部211の待受部213は、確立部116との間でデータ用TCPストリームの作成が完了すると、接続の確立が完了したことを待受部215に通知する。
When the standby unit 212 of the
第1の送信部210における接続の確立処理と、第2の送信部211における接続の確立処理は、並行的に実行される。このため、待受部215は、接続の確立の結果の通知を、先に完了した方から順に受け取ることになる。待受部215は、第1の送信部210の接続確立が先に完了した場合と、第2の送信部211の接続確立が先に完了した場合で、それぞれ異なる処理手順を実行する。以下では、それぞれの場合について、待受部215の処理手順を述べる。
The connection establishment process in the
第1の送信部210の接続が先に完了した場合について述べる。待受部215は、待受部212から接続の確立が成功したことの通知を受け取ると、第4分配部216に対し、データの分配先を第1の送信部210とするよう指示を出す。次に待受部215は、データ供給部217に対しデータの送出が可能になったことを通知し、以降、データ供給部217からデータの入力が行われる。データ供給部217は第4分配部216にデータを渡す。第4分配部216はデータを第1の送信部210に渡す。ここで、第4分配部216は、第1の送信210へ渡したデータサイズの累計値を保持するための記憶領域を持っており、第1の送信部210にデータを渡すごとに、当該のデータサイズの値を記憶領域の値に加算する。この値を累積送信済みデータサイズと呼ぶ。第1の送信部210に渡されたデータは、TCP/IPの各ヘッダが付与されて、TCPストリームを通じて第1の受信部113へ送出される。さらにデータは第3収集部112に渡される。第3収集部112は受け取ったデータをデータ出力部110に渡す。ここで、第3収集部112は、第1の受信部113から受け取ったデータサイズの累計値を保持するための記憶領域を持っており、データを受け取るごとに、当該のデータサイズの値を記憶領域の値に加算する。この値を累積受信済みデータサイズと呼ぶ。データ出力部110は、得られたデータを任意の方法で出力する。以降、データ供給部217からデータの入力が行われるごとに、以上の処理によりデータが最終的にデータ出力部110へと伝送される。
A case where the connection of the
次に、この後で第2の送信部211の接続が完了する。待受部215は、213から接続の確立が成功したことの通知を受け取ると、第4分配部216に対し、データの分配先を第1の送信部210から第2の送信部211へと切り替えるように指示を出す。以後、第4分配部216は、データ供給部217から送信すべきデータを受け取ると、これを第2の送信部211の第3分配部214へ渡す。第3分配部214に渡されたデータは、分割され、分割順序を表すヘッダが付与されて、さらにTCP/IPの各ヘッダが付与されて、複数のデータ用TCPストリームを通じて並列的に第2の受信部114の第4収集部117へ送出される。第4収集部117は、分割情報を参照し、順序が元の順序に正しくなるよう並び替えを行った上で、第3収集部112へデータを渡す。
Next, the connection of the
さらに待受部215は、データの分配先を切り替える指示を出すのに合わせて、同じく第4分配部216から、第1の送信部210へ渡した累積送信済みデータサイズ値を読み出す。待受部215は、この値を第2の送信部211に通知し、制御用TCPストリームを通じてこの値を第2の受信部114へ通知するよう指示する。第2の受信部114へ通知された値はさらに第3収集部112へ通知される。ここで、第3収集部112は、通知された累積送信済みデータサイズの値と、自身が持つ累積受信済みデータサイズの値が等しくなるまで、第2の受信部113から受け取ったデータをデータ出力部110に渡さず、自身に保持しておく。つまり、第1の伝送方式を用いて伝送されたすべてのデータを受け取るまで、第2の伝送方式を用いて伝送されたデータの受け渡しを待機する。通知された累積送信済みデータサイズの値と、自身が持つ累積受信済みデータサイズの値が等しくなったタイミングで、保持していた第2の受信部114からのデータをすべてデータ出力部110へ受け渡す。このようにすることで、第1の伝送方式と第2の伝送方式との間で生じたデータの到着順序の入れ違いを解消することが可能になる。
Further, the
以上、第1の送信部210の接続が先に完了した場合について述べた。
The case where the connection of the
次に、第2の送信部211の接続が先に完了した場合について述べる。待受部215は、待受部213から接続の確立が成功したことの通知を受け取ると、第4分配部216に対し、データの分配先を第2の送信部211とするよう指示を出す。次に待受部215は、データ供給部217に対しデータの送出が可能になったことを通知する。以降、データ供給部217のデータは第4分配部216において第2の送信部211(の第3分配部214)へと分配される。分配されたデータが第2の伝送方式に則って最終的に第3収集部112へ伝送されるまでの処理手順は前出と同様である。第3収集部112は受け取ったデータをデータ出力部110に渡す。
Next, a case where the connection of the
本実施形態では、第1の送信部210による単一TCPストリームを用いた伝送方式が、第2の送信部211による複数TCPストリームを用いた伝送方式よりも優先するものとしている。そこで待受部215は、第2の送信部211の接続の完了通知を受け取ったタイミングで、最早第1の伝送方式を使用する必要がなくなったことになる。そこで待受部215はこのタイミングで、第1の送信部210に対し、接続の確立の中断を指示する。第1の送信部210はソケット終了やポート等のリソース開放を行う。あるいは通知を受け取ったタイミングでは接続の確立の中断を行わずに、第1の送信部210の接続が完了するまで待機し、完了した時点で即座に第1の送信部210の接続を終了するという動作であってもよい。
In this embodiment, the transmission method using a single TCP stream by the
以上、第2の送信部211の接続が先に完了した場合について述べた。
The case where the connection of the
以上のように第1の実施形態によれば、第1の伝送方式と第2の伝送方式の仕様の優先度の違いに応じて、優先度の低い伝送方式(第1の伝送方式)が先に接続確立完了したときにはそちらを用いてデータ伝送を開始し、優先度の高い伝送方式(第2の伝送方式)が後から接続確立完了したときにはそちらに切り替えて以降のデータ伝送を行い、一方、優先度の高い伝送方式が先に接続確立完了したときにはそちらを使用し続ける。これにより、クライアント装置およびサーバ装置が複数の種類の伝送方式に対応する場合に、早く接続完了が完了した方でデータ伝送を開始できるようになるため、データ伝送までの所要時間を短縮することが可能になる。また、それぞれの対応状況に応じて優先度の高い伝送方式を使用できるようになる。 As described above, according to the first embodiment, according to the difference in the priority between the specifications of the first transmission method and the second transmission method, the transmission method with the lower priority (first transmission method) is the first. When the connection establishment is completed, data transmission is started using that, and when a transmission method with a high priority (second transmission method) is completed later, the subsequent data transmission is performed by switching to that, When a high-priority transmission method completes connection establishment first, it continues to use it. As a result, when the client device and the server device support a plurality of types of transmission methods, data transmission can be started when the connection completion is completed earlier, so that the time required for data transmission can be shortened. It becomes possible. In addition, a transmission method with a high priority can be used in accordance with each corresponding situation.
さらに、本実施形態によれば、伝送方式への対応状況をネゴシエーションする機構を持たないサーバ装置またはクライアント装置が既に広く普及している場合であっても、ネゴシエーションの機構を後から追加する必要がない。 Furthermore, according to the present embodiment, even when a server device or a client device that does not have a mechanism for negotiating the correspondence status to the transmission method is already widely used, it is necessary to add a negotiation mechanism later. Absent.
また、第1の実施形態にかかるクライアント1装置及びサーバ装置2は、第1の伝送方式は単数のストリームを用いて通信を行う伝送方式であり、第2の伝送方式は複数のストリームを用いて通信を行う伝送方式である例を説明したが、第1の伝送方式と第2の伝送方式はこの例に限られない。第1の伝送方式と第2の伝送方式は異なる伝送方式であればよい。例えば、DCCP(Datagram Congestion Control Protocol)やSCTP(Stream Control Transmission Ptorocol)といったプロトコルによる伝送方式の他、ATMやフレームリレーによる伝送方式であっても良い。またTLS(Transport Layer Security)のように、接続確立に認証等の手続きを含む伝送方式であっても良い。この場合、第2の送信部104及び第2の受信部201は、単一のストリームを確立し、単一のストリームを用いて通信を行うものであっても良い。この場合、第2の送信部104は第2分配部107を有していなくて良く、第2の受信部201は第1収集部204を有していなくても良い。また第1の伝送方式または第2の伝送方式は、UDP(User Datagram Protocol)といったコネクションレス型のプロトコルによる伝送方式であっても良い。コネクションレス型の伝送方式を含む場合、例えば第1の伝送方式はUDPを用いて通信を行う伝送方式であり、第2の伝送方式はTCPを用いて通信を行う伝送方式とする。UDPは接続確立の手続きを持たない伝送プロトコルであるため、この場合、第1の送信部103は確立部105を有していなくても良い。第1の受信部200は待受部202を有していなくても良い。その場合、確立指示部101は接続の確立処理を行う際に、第1の送信部103に対して接続の確立処理を開始するよう指示するステップを省略し、その時点で接続の確立処理が完了したものとして動作する。つまり、確立指示部101は、第1分配部102に対し、データの分配先を第1の送信部103とするよう指示を出し、さらに、データ供給部100に対しデータの送出が可能になったことを通知する。
In the
また、クライアント装置1は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、データ供給部100、確立指示部101、第1分配部102、第1の送信部、第2の送信部104は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、クライアント装置1は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
The
また、サーバ装置2は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、第1の受信部200、第2の受信部201、第2収集部205、データ出力部206は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、サーバ装置2は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
The
また、クライアント装置21及びサーバ装置22も同様に、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。 Similarly, the client device 21 and the server device 22 can also be realized by using a general-purpose computer device as basic hardware.
<第2の実施形態>
図5は、本発明の第2の実施形態のシステムを示すブロック図である。
<Second Embodiment>
FIG. 5 is a block diagram showing a system according to the second embodiment of this invention.
以下では、第2の実施形態のシステムは、サーバ装置の画面の情報をパケット化してリアルタイムで配信する「画面転送システム」であるとして説明する。しかしながら、第2の実施形態のシステムは、画面転送システムに限らず、任意の種類のデータ伝送を行うシステムにも適用できる。 In the following description, it is assumed that the system of the second embodiment is a “screen transfer system” that packetizes server screen information and distributes it in real time. However, the system of the second embodiment can be applied not only to the screen transfer system but also to a system that performs any kind of data transmission.
図5に示すように、第2の実施形態に係るシステムは、サーバ装置32とクライアント装置31とが、ネットワーク3を介して接続されている。
As shown in FIG. 5, in the system according to the second embodiment, a
第2の実施形態にかかるサーバ装置32は、複数の送信部3203A〜Zと、第1のデータを分割することにより複数の第1分割データを生成するとともに、前記複数の第1分割データを、複数の送信部3203A〜Zに分配する第5分配部3202と、複数の送信部3203A〜Zが、任意の期間の中で、第1のデータを前記クライアント装置31に送信するために要した送信処理時間の割合である送信処理時間率を算出する送信処理時間算出部3205と、送信処理時間率に基づき、第5分配部3202が、第2のデータを分割して生成する複数の第2の分割データを、何個の送信部に分配するかを決定するストリーム数決定部3206とを備え、第5分配部3202は、複数の第2の分割データを、決定部3206が決定した数の送信部に分配することを特徴とする。
The
以下では、まず、ストリーム数決定部3206が、第5分配部3202に何個の送信部に分配させるかについて決定する際、送信処理時間率に基づき決定理由について説明する。
Hereinafter, first, the reason for determination will be described based on the transmission processing time rate when the number-of-
一般的に、複数のTCPストリームでデータ伝送を行う場合、適切なストリームの数(図5では、送信部の数)を決定することが好ましいと言える。TCPストリームの数を増やせば、データの送信レートは向上する。しかしながら、送信レートがネットワーク帯域を超えた場合、それ以上、TCPストリームの数を増やしても、送信レートに変化はない。一方で、TCPストリームの数を増やせば増やすほど、装置の処理負荷が上がる。したがって、送信レートを確保しつつ、不要な処理負荷をかけないためにも、TCPストリームの数を適切な値に設定することが必要である。 In general, when data transmission is performed using a plurality of TCP streams, it can be said that it is preferable to determine an appropriate number of streams (the number of transmission units in FIG. 5). If the number of TCP streams is increased, the data transmission rate is improved. However, when the transmission rate exceeds the network bandwidth, there is no change in the transmission rate even if the number of TCP streams is further increased. On the other hand, as the number of TCP streams increases, the processing load on the apparatus increases. Therefore, it is necessary to set the number of TCP streams to an appropriate value in order to ensure a transmission rate and not apply unnecessary processing load.
従来、TCPストリームの数の決定方法として、例えば、TCPストリームの数を一つずつ増やしていき、当該TCPストリームの数毎に送信レートを測定し、送信レートの測定値に応じて、TCPストリームの数を決定する方法があった。例えば、TCPストリームの数をN本からN+1本に増加させた場合に、送信レートの測定値が変化しなかった場合、若しくは減少した場合に、TCPストリームの数がN本に決定する方法が考えられる。TCPストリームの数をN+1本とした場合に、N+1本で実現可能な送信レートがネットワーク帯域を超えたと判断し、これ以上増やしても、処理負荷だけ上がり、送信レートは上がらないと考えられる為である。 Conventionally, as a method for determining the number of TCP streams, for example, the number of TCP streams is increased by one, the transmission rate is measured for each number of the TCP streams, and the TCP stream is determined according to the measured value of the transmission rate. There was a way to determine the number. For example, when the number of TCP streams is increased from N to N + 1, and the measured value of the transmission rate does not change or decreases, a method of determining the number of TCP streams to N is considered. It is done. When the number of TCP streams is N + 1, it is determined that the transmission rate that can be achieved with N + 1 exceeds the network bandwidth, and even if it is increased further, the processing load will increase and the transmission rate will not increase. is there.
しかしながら、この方法では、TCPストリームの数を適切な値に設定できない場合がある。 However, with this method, the number of TCP streams may not be set to an appropriate value.
送信レートは、送信するデータの量にも影響を受ける。したがって、送信するデータ量が小さい場合は、TCPストリームの数を多くしても、送信レートが小さくなる。つまり、送信するデータ量が小さい場合は、測定される送信レートは、TCPストリームの実現可能な送信レートより小さくなる場合がある。 The transmission rate is also affected by the amount of data to be transmitted. Therefore, when the amount of data to be transmitted is small, the transmission rate is reduced even if the number of TCP streams is increased. That is, when the amount of data to be transmitted is small, the measured transmission rate may be smaller than the realizable transmission rate of the TCP stream.
このように、TCPストリームの数を決定するために用いる送信レートの測定値が、TCPストリームの実現可能な送信レートより大きく下回っている場合もあり得る。このような場合、前述の決定方法では、TCPストリームの数を適切な値に設定できない場合がある。 Thus, the measurement value of the transmission rate used for determining the number of TCP streams may be significantly lower than the feasible transmission rate of the TCP stream. In such a case, the above-described determination method may not be able to set the number of TCP streams to an appropriate value.
例えば、TCPストリームの数を、N本からN+1本に増加させた場合に、送信レートの測定値が変化しなかった、もしくは減少した場合に、その原因が、送信レートがネットワーク帯域を超えたことではなくて、送信するデータ量が小さいことである場合もある。このような場合、本来、N+1本以上のTCPストリームが適切な値であるにもかかわらず、N本に決定してしまう場合がある。 For example, when the number of TCP streams is increased from N to N + 1, if the transmission rate measurement value does not change or decreases, the cause is that the transmission rate exceeds the network bandwidth. Instead, the amount of data to be transmitted may be small. In such a case, N + 1 or more TCP streams may be determined to be N in spite of proper values.
したがって、送信レートの測定値のみで、TCPストリームの数を決定すると、TCPストリームの数を適切に決定できない場合がある。 Therefore, if the number of TCP streams is determined only by the measurement value of the transmission rate, the number of TCP streams may not be determined appropriately.
TCPストリームの数を決定する際に、判断基準に用いる送信レートの測定値は、そのTCPストリームの数において、実現可能な送信レートが実現できる程度のデータ量を送信する際の測定値に比較であることが好ましい。 When determining the number of TCP streams, the measured value of the transmission rate used as a criterion is compared with the measured value when transmitting a data amount that can realize a feasible transmission rate in the number of TCP streams. Preferably there is.
本発明の一側面は、サーバ装置とクライアント装置間で送信するデータ量が変化する場合であっても、サーバ装置とクライアント装置間で用いるTCPストリームの数として、送信レートを確保しつつ、不要な処理負荷をもたらさない適切なTCPストリームの数に決定できるようにすることを目的とする。 One aspect of the present invention is an unnecessary aspect of securing the transmission rate as the number of TCP streams used between the server apparatus and the client apparatus even when the amount of data to be transmitted between the server apparatus and the client apparatus changes. The aim is to be able to determine an appropriate number of TCP streams that do not cause processing load.
そのために、本実施形態では、ストリーム数を決定(何個の送信部に分配するかを決定)する際、送信処理時間率に基づき決定している。 Therefore, in this embodiment, when the number of streams is determined (how many transmission units are distributed), the number is determined based on the transmission processing time rate.
≪ サーバ装置の構成 ≫
次に、図5を用いて、本実施形態に係るサーバ装置32の構成を説明する。
≪ Server device configuration ≫
Next, the configuration of the
サーバ装置32は、データ供給部3201と、第5分配部3202と、複数の送信部3203A〜3203Zと、送信レート測定部3204と、送信処理時間率算出部3205と、ストリーム数決定部3206とを備える。
The
データ供給部3201は、クライアント装置31に伝送すべきデータを入力する。本実施形態の画面転送システムにおいては、入力されるデータは、サーバ装置32における画面更新である。画面更新についての詳細は、図6及び図7を用いて後述する。
The
第5分配部3202は、データ供給部3201から渡されたデータを分割し、分割されたデータを送信部3203A〜103Zに分配する。分割後のデータに対し、クライアント装置31において結合を行うために必要となる分割情報を付与する。データの分割方法及び分割情報については、図8を用いて後述する。
The
送信部3203A〜Zは、分割されたデータの送信処理を行う。入力されたデータをネットワーク上において伝送可能な形式に変換し、クライアント装置31の対応する受信部201に対し送信する。伝送プロトコルにはTCP/IPを使用する。本実施形態では各送信部103はTCPのストリーム(データを送る論理的なパイプ)である。
送信レート測定部3204は、データの送信レートの測定を行う。ここで、送信レートとは、単位時間あたりに、送信されたデータ量である。送信レートの単位は、ビット毎秒で表される。
The transmission
送信処理時間率算出部3205は、データ送信の送信処理時間率を測定する。送信処理時間率とは、規定の時間間隔においてデータの送信処理に費やされた時間が占める割合である。
The transmission processing time
≪ クライアント装置の構成 ≫
クライアント装置31は、受信部3101A〜Zと、結合部3102と、表示部3103とを備える。
≪ Client device configuration ≫
The
受信部3101A〜Zは、ネットワーク3を介してサーバ装置32からデータを受信する。
The receiving units 3101 </ b> A to 3101 receive data from the
結合部3102は、受信部201から渡されたデータに付与された分割情報を利用してデータの結合を行う。
The combining
表示部3103は、結合されたデータを表示する。
The
≪ 処理の流れ ≫
次に、本実施形態に係る画面転送システムにより行われる処理について、図面を適宜参照しながら説明する。サーバ装置32とクライアント装置31がネットワーク3を介して物理的に接続されている。
≪Process flow≫
Next, processing performed by the screen transfer system according to the present embodiment will be described with reference to the drawings as appropriate. The
≪ 処理の流れ(画面更新の生成) ≫
画面転送の実行が開始されると、サーバ装置32のデータ供給部3201は、オペレーティングシステムやアプリケーションの実行状態に応じて画面更新の生成処理を行う。画面更新とは、画面の描画状態を変化させるための情報である。図6に画面更新の例を示す。画面更新は、更新する領域の位置を表す領域情報と、対応する領域の画像情報からなる。領域情報は、画面領域における画像情報の表示位置を示す数値である。図7は、領域情報を説明するための図である。
≪ Processing flow (generation of screen update) ≫
When execution of screen transfer is started, the
例えば図7に示すように、画面領域の左上角を(0,0)、右下角を(Width,Height)としたときの、表示位置の左上座標(Left,Top)と右下座標(Right,Bottom)からなる矩形情報で示される。画像情報は、領域情報に対応する領域の更新後のビットマップデータ(矩形の各画素におけるRGB3色の値など)である。データ供給部3201は画面更新を送信すべきデータとして第5分配部3202に出力する。
For example, as shown in FIG. 7, when the upper left corner of the screen area is (0, 0) and the lower right corner is (Width, Height), the upper left coordinates (Left, Top) of the display position and the lower right coordinates (Right, (Bottom). The image information is bitmap data after updating the area corresponding to the area information (such as RGB three color values in each rectangular pixel). The
第5分配部3202の処理を図9を参照しながら説明する。図9は、図5のサーバ装置32の第5分配部3202の処理を示すフローチャートである。第5分配部3202は、データ供給部3201から、送信すべきデータを受け取ると、複数の送信部3203A〜Zに分配する。始めに、データ供給部3201から受け取ったデータを規定のサイズ(例:8キロバイトなど)ごとに分割する(ステップS1001)。次に、分割後の各データに対して、クライアント装置31において結合を行うために必要となる分割情報を付与する。分割情報の例を図8に示す。例では、送信すべきデータが4分割された後で、それぞれに分割情報が付与されている。分割情報は、「分割後のデータの通し番号」/「分割後のデータの総数」という2つの数値からなる。
The processing of the
次に第5分配部3202は分割後のデータを送信部3203A〜Zに分配する。第5分配部3202は、分割後のデータについて、それぞれどの送信部103を用いて送信処理を行うか、分配先を決定する。第5分配部3202は利用するTCPストリーム数の値をパラメータとして保持し、この値に等しい個数の送信部103に分配を行う。TCPストリーム数の初期値は任意(たとえば1)であり、以後、ストリーム数決定部3206によりこのTCPストリーム数の値は変更される。分配先の決定の仕方は任意である。例えば、送信部3203Aから順番に割り当てるやり方であってよい。各送信部103に対応するTCPストリームの状態の値(輻輳ウィンドウのサイズなど)を調べて、値の大きな送信部103から優先的に割り当てるやり方であってよい。
Next, the
次に第5分配部3202は、データを送信部103に渡す前に、現在時刻(サーバ装置32が起動してからの経過時間など)を送信処理開始時刻としていったん自身に記録してから(ステップS1002)、前述の割り当てにしたがって、分割後のデータを各送信部103に渡す。各送信部103は、受け取ったデータをネットワーク上において伝送可能な形式に変換し、クライアント装置31の対応する受信部201に対し送信する(ステップS1003)。送信部103は、送信処理が完了すると、それぞれ第5分配部3202に通知する。次に第5分配部3202は、送信すべきデータがすべて送信完了したことを確認すると、ふたたび現在時刻を調べ、送信処理終了時刻として自身に記録する(ステップS1004)。送信処理開始時刻との差から送信処理に要した送信処理時間を算出し、これを送信処理時間率算出部3205に通知する。送信処理時間率算出部3205は、送信処理時間の累積値を格納するための記憶領域を有しており、通知された値を格納値に加算する。以降、後述のストリーム数決定部3206から送信処理時間率の取得依頼を受け取るまで、通知を受けるごとに格納値を更新していく。さらに第5分配部3202は、送信完了したデータサイズを送信レート測定部3204に通知する(ステップS1006)。送信レート測定部3204は、データサイズの累積値を格納するための記憶領域を有しており、通知された値を格納値に加算する。以降、ストリーム数決定部3206から送信レートの取得依頼を受け取るまで、通知を受けるごとに格納値を更新していく。
Next, the
なお、送信部103が送信完了を通知するタイミングは、実装に応じて様々なやり方が考えられるが、本実施形態はそのいずれかに限定するものではない。例えば、送信部103が受信部201宛てにネットワーク3へデータを送出し終わったタイミングをもって送信完了を通知してもよい。例えば、受信部201から当該のデータに対する確認応答(ACK)を受け取ったタイミングをもって送信完了を通知してもよい。例えば、送信部103の送信バッファ(ネットワーク3への送出待ちあるいは送出後データのACK待ちのデータを一時的に保持しておくためのバッファ)へのコピーが完了したタイミングをもって送信完了を通知してもよい。
In addition, although the timing which the
また、本実施形態では、第5分配部3202がデータ供給部3201から送信すべきデータを受け取ってから、すべてのデータが送信完了するまでの所要時間を送信処理時間としていたが、必ずしもこれに限らなくともよい。例えば送信処理時間を次のようにしてもよい。第5分配部3202は、送信待ちのデータを一時的に保持しておくためのバッファを持ち、データ供給部3201から送信すべきデータが渡されたとき、バッファが空であれば、送信すべきデータをバッファにコピーする。バッファが空でない場合は、空になるまで待機してからコピーを行う。バッファへのコピーが完了したタイミングをもって送信処理終了時刻とし、ここから送信処理時間を算出する。
In the present embodiment, the time required from when the
以上のように各送信部3203A〜Zに渡されたデータは、ネットワーク3を通じて、それぞれ対応する受信部3101A〜Zに到達する。到達したデータは結合部3102に渡される。
As described above, the data passed to each of the
結合部3102は、データを受け取ると、付与された分割情報を利用してデータの結合を行う。分割情報に記された分割後のデータの総数すべてのデータを受け取れた時点で、それらを結合し、元のデータ(サーバ装置32のデータ供給部3201で生成された画面更新)を再構成する。元のデータは表示部3103に渡される。表示部3103はフレームバッファ(画面領域に対応する記録領域)を有しており、画面更新に含まれる領域情報に対応する情報を、画面情報で上書き更新する。フレームバッファの最新の状態はユーザに視覚的に提示される。
When the combining
以上、サーバ装置32において画面更新が生成されてから、それがクライアント装置31に伝わり、表示されるまでの処理の流れを説明した。
The flow of processing from when a screen update is generated in the
≪ 処理の流れ(ストリーム数の決定) ≫
次に、ストリーム数決定部3206の処理の流れを説明する。ストリーム数決定部3206は、任意のタイミング(例えば5秒おきなど)で、以下に述べる手順で次のストリーム数を決定する。決定した値を第5分配部3202に通知し、第1分配部102が伝送時に使用するTCPストリーム(送信部103)の個数を変更する。
≪ Processing flow (deciding the number of streams) ≫
Next, the processing flow of the stream
始めにストリーム数決定部3206は、送信レート測定部3204に送信レートの取得依頼を出す。送信レート測定部3204にはデータサイズの累積値が記憶されており、送信レート測定部3204は取得依頼を受け取ると、前回取得時からの経過時間を算出し、これでデータサイズの累積値を除することで送信レートを算出する。送信レート測定部3204は算出値をストリーム数決定部3206に出力した後で、累積値をゼロにリセットする。
First, the stream
次にストリーム数決定部3206は、送信処理時間率算出部3205に送信処理時間率の取得依頼を出す。送信処理時間率算出部3205には送信処理時間の累積値が記憶されており、送信処理時間率算出部3205は取得依頼を受け取ると、送信処理時間率を算出する。送信処理時間率とは、ある時間間隔においてデータの送信処理に費やされた時間が占める割合のことである。まず前回取得時からの経過時間を算出し、これで送信処理時間の累積値を除することで送信処理時間率を算出する。送信処理時間率算出部3205は算出値をストリーム数決定部3206に出力した後で、累積値をゼロにリセットする。
Next, the stream
またストリーム数決定部3206は、現在使用しているTCPストリーム数の値を第5分配部3202から取得する。
Also, the stream
以上のようにして、ストリーム数決定部3206は、TCPストリーム数、送信レート、送信処理時間率の各値を得る。以降、TCPストリーム数をN、そのときの送信レートをS、送信処理時間率をRと記載する。ストリーム数決定部3206は、N,S,Rの値をもとに、次に使用するTCPストリーム数Nnextの値を決定する。
As described above, the stream
≪ 決定処理の第一の例 ≫
ストリーム数の決定処理の第一の例を図10を用いて説明する。始めにストリーム数決定部3206は、送信処理時間率Rが既定の閾値Rt(例えば0.9など)を上回るか否かを判断する(ステップS1101)。前述の通り、送信処理時間率Rは、サーバ装置32の処理時間においてデータの送信処理に費やされた時間が占める割合を示す指標である。したがって、Rの値が大きい場合、サーバ装置32の処理時間の多くが送信処理に費やされているとみなすことができる。このことは、つまり、送信部103(TCPストリーム)が十分なレートでのデータ送信が行えておらず、TCPストリーム数を増加させて並列の度合いを高くすることにより送信レートが向上する可能性があることを意味している。一方、Rの値が小さい場合、サーバ装置32の処理時間のうち送信処理に費やされている時間は比較的小さいとみなすことができる。このことは、つまり、送信部103により達成可能なデータの送信レートよりも、データ供給部3201から供給されるデータのレート(データ入力レート)の方が小さいことを意味する。このとき、TCPストリーム数の値をこれ以上増加させたところで送信レートの向上は期待できない。したがって、本決定処理では、送信処理時間率Rが閾値Rtを下回る場合は、次に用いるTCPストリーム数Nnextの値を現在のTCPストリーム数Nから変化させたところで送信レートの向上は見込めないため、現状と同じ値を使用するという方針をとる。
≪ First example of decision processing ≫
A first example of the process for determining the number of streams will be described with reference to FIG. First, the stream
RがRtを下回る場合、NnextはNと同じ値を用いると決定し(ステップS1107)、決定処理は終了する。上回る場合、N,Sの値を次のように記憶する(ステップS1102)。ストリーム数決定部3206は図11に示すテーブルを、記憶部32061内に保持する。図11は、図5のサーバ装置32のストリーム数決定部3206の記憶部32061が保持するテーブルの一例を示す図である。尚、記憶部32061は、ストリーム数決定部3206内にあるとして説明するが、ストリーム数決定部3206の外にあっても良い。
When R is less than Rt, Nnext is determined to use the same value as N (step S1107), and the determination process ends. If it exceeds, the values of N and S are stored as follows (step S1102). The stream
このテーブルは、NとSの値の組がNの昇順で記憶されている。さらにその序数が記憶されている。序数i、TCPストリーム数N、送信レートSの1つの組をエントリと呼ぶ。ストリーム数決定部3206は、始めに、取得したNの値に等しいエントリがテーブルに存在するかを調べ、存在していれば、当該のエントリのSの値を取得したSの値で上書き更新する。存在していなければ、取得したNとSの値からなる新しいエントリを作成しテーブルに追加する。追加後のテーブルをNに関してソートし、序数を付け直す。
In this table, pairs of N and S values are stored in ascending order of N. Furthermore, the ordinal number is stored. One set of ordinal number i, TCP stream number N, and transmission rate S is called an entry. The number-of-
以上のように更新したテーブルを用いて、ストリーム数決定部3206はNnextを以下の方針に従って決定する。通常、TCPストリーム数を増やしていけば送信レートは向上する。しかし、送信レートがネットワークの帯域の上限に達した場合は、それ以上増やしても送信レートは向上しない。そこで、テーブルの送信レートSの値がNに関し単調増加の傾向を示すなら、次に用いるTCPストリーム数Nnextはテーブルに記憶されたストリーム数よりもさらに大きな値を選択する。もし単調増加の傾向を示さず、ある程度以上のNでSの増加が頭打ちに至るなら、それ以上Nの値を大きくとったところで効果はない。この場合は、頭打ちにいたるちょうどのNの値をNnextとして選択する。
Using the table updated as described above, the stream
具体的には以下の手順を行う。始めに、序数iとして1を選択し(ステップS1103)、次のループ処理を行う。テーブルのエントリの個数(序数iの最大値)をimaxとし、iがimaxに等しければループを抜ける(ステップS1104)。序数iのエントリの送信レート(S[i]と呼ぶ)と序数i+1のエントリの送信レート(S[i+1]と呼ぶ)の差と、規定の閾値Stとの大小を比較する(ステップS1105)。閾値Stは任意であってよく、例えば、そのときの序数iのエントリのTCPストリーム数N[i]と、序数i+1のエントリのTCPストリーム数N[i+1]を用いて、St=(N[i+1]−N[i])×4Mbpsとする。差がStを超えていれば、iの値を1インクリメントし(ステップS1106)ループの処理を継続する。Stを超えていなければ、そのときの序数i+1のエントリのTCPストリーム数(N[i+1]と呼ぶ)のところで送信レートが頭打ちに至ると判断できるので、これ以上のTCPストリーム数を増やしても効果はないと予期できる。そこで次のTCPストリーム数Nnextは、序数iのエントリのTCPストリーム数(N[i]と呼ぶ)とN[i+1]との中間の値とする(ステップS1109)。一方、すべてのiについてS[i+1]とS[i]の差が閾値Stを超えていたならば、送信レートはNに対し単調増加しているとみなすことができるため、Nnextは、テーブルで最大のTCPストリーム数N[imax]よりもさらに1増やした値とする(ステップS1108)。 Specifically, the following procedure is performed. First, 1 is selected as the ordinal number i (step S1103), and the next loop processing is performed. The number of entries in the table (the maximum value of the ordinal number i) is set to imax, and if i is equal to imax, the loop is exited (step S1104). The difference between the transmission rate of the entry with ordinal number i (referred to as S [i]) and the transmission rate of the entry with ordinal number i + 1 (referred to as S [i + 1]) is compared with the prescribed threshold value St (step S1105). The threshold value St may be arbitrary. For example, the number of TCP streams N [i] of the entry with the ordinal number i at that time and the number of TCP streams N [i + 1] of the entry with the ordinal number i + 1 are used, and St = (N [i + 1 ] −N [i]) × 4 Mbps. If the difference exceeds St, the value of i is incremented by 1 (step S1106) and the loop processing is continued. If it does not exceed St, it can be determined that the transmission rate reaches the peak at the number of TCP streams of the ordinal number i + 1 at that time (referred to as N [i + 1]), so it is effective to increase the number of TCP streams beyond this. You can expect no. Therefore, the next TCP stream number Nnext is set to an intermediate value between the number of TCP streams of the entry of the ordinal number i (referred to as N [i]) and N [i + 1] (step S1109). On the other hand, if the difference between S [i + 1] and S [i] exceeds the threshold value St for all i, it can be considered that the transmission rate monotonically increases with respect to N. The value is further increased by 1 from the maximum number of TCP streams N [imax] (step S1108).
動作例を示す。いま、送信処理時間率Rの値が閾値Rtを超えており、テーブルのエントリの更新が完了した状態であるとする。そのときのテーブルが図11に示した状態であるとする。さらに、送信レートの差の閾値Stは(N[i+1]−N[i])×4Mbpsと仮定する。始めに、S[1]とS[2]の差とStとの大小が比較される。N[1]=1、N[2]=2、S[1]=5Mbps、S[2]=10Mbpsであるため、S[2]−S[1]=10−5=5Mbps、St=(2−1)×4=4Mbpsとなり、ステップS1105のS[i+1]−S[i]>St?の判定はYESとなる。次に、S[2]とS[3]の差とStとの大小が比較される。N[2]=2、N[3]=4、S[2]=10Mbps、S[3]=19Mbpsであるため、S[3]−S[2]=19−10=9Mbps、St=(4−2)×4=8Mbpsとなり、ステップS1105の判定は再びYESとなる。次に、S[3]とS[4]の差とStとの大小が比較される。N[3]=4、N[4]=6、S[3]=19Mbps、S[4]=20Mbpsであるため、S[4]−S[3]=20−19=1Mbps、St=(6−4)×4=8Mbpsとなり、ステップS1105の判定はNOとなる。処理はステップS1109に進み、このときのiの値は3であることから、Nnextの値は、(N[3]+N[4])/2=(4+6)/2=5と決定される。 An operation example is shown. Now, it is assumed that the value of the transmission processing time rate R exceeds the threshold value Rt and the update of the table entry is completed. Assume that the table at that time is in the state shown in FIG. Furthermore, the transmission rate difference threshold St is assumed to be (N [i + 1] −N [i]) × 4 Mbps. First, the difference between S [1] and S [2] and the magnitude of St are compared. Since N [1] = 1, N [2] = 2, S [1] = 5 Mbps, and S [2] = 10 Mbps, S [2] −S [1] = 10−5 = 5 Mbps, St = ( 2-1) × 4 = 4 Mbps, and S [i + 1] −S [i]> St in step S1105? This determination is YES. Next, the difference between S [2] and S [3] and St is compared. Since N [2] = 2, N [3] = 4, S [2] = 10 Mbps, and S [3] = 19 Mbps, S [3] −S [2] = 19−10 = 9 Mbps, St = ( 4-2) × 4 = 8 Mbps, and the determination in step S1105 is YES again. Next, the difference between S [3] and S [4] and the magnitude of St are compared. Since N [3] = 4, N [4] = 6, S [3] = 19 Mbps, and S [4] = 20 Mbps, S [4] −S [3] = 20−19 = 1 Mbps, St = ( 6-4) × 4 = 8 Mbps, and the determination in step S1105 is NO. The process proceeds to step S1109. Since the value of i at this time is 3, the value of Nnext is determined as (N [3] + N [4]) / 2 = (4 + 6) / 2 = 5.
このように、送信処理時間率Rの値に加えて送信レートSの値を利用して次のTCPストリーム数Nの値を利用することで、Nの値をある値以上増加させても送信レート向上の効果がないといった状況においてもそれを適切に判断し、不要なTCPストリーム数の増加を回避する。 In this way, by using the value of the next TCP stream number N using the value of the transmission rate S in addition to the value of the transmission processing time rate R, the transmission rate is increased even if the value of N is increased by a certain value or more. Even in a situation where there is no improvement effect, it is determined appropriately, and an increase in the number of unnecessary TCP streams is avoided.
なお、本第1の例では、送信レートSの値がNに関し単調増加の傾向を示すか否かに応じてNnextの決定方法を切り替えていたが、より細かな切り替えを行っても良い。例えばステップS1105の結果がNOだった場合、序数iの値が1だった場合は、Nnextの値をN[1]よりさらに小さな値にするという選択を行っても良い。 In the first example, the method for determining Nnext is switched depending on whether or not the value of the transmission rate S shows a monotonically increasing tendency with respect to N. However, more detailed switching may be performed. For example, if the result of step S1105 is NO, and the value of the ordinal i is 1, a selection may be made to make the value of Nnext smaller than N [1].
また、テーブルにおいて、記憶後、規定時間以上が経過したエントリを削除する処理を追加してもよい。これにより、導入先ごとに異なるネットワーク3の環境や、時々刻々と変動するネットワーク3の状況に適応しながら適切なTCPストリーム数を選択し続けることが可能になる。
In the table, a process of deleting an entry that has passed a predetermined time after storage may be added. As a result, it is possible to continue to select an appropriate number of TCP streams while adapting to the environment of the
以上、決定処理の第一の例を説明した。 The first example of the determination process has been described above.
≪ 決定処理の第二の例 ≫
次に、決定処理の第二の例を図12を用いて説明する。図12は、ストリーム数の決定処理の第2の例のフローチャートを示す図である。
≪ Second example of decision processing ≫
Next, a second example of the determination process will be described with reference to FIG. FIG. 12 is a diagram illustrating a flowchart of a second example of the process for determining the number of streams.
ストリーム数決定部3206の記憶部32061は、取得したN,S,Rの値を保持するためのテーブルを持つ。テーブルの例を図13に示す。図13は、図5のサーバ装置32のストリーム数決定部3206の記憶部32061が保持するテーブルの第2の例を示す図である。尚、記憶部32061は、ストリーム数決定部3206内にあるとして説明するが、ストリーム数決定部3206の外にあっても良い。
The
第一の例と異なり、第二の例では、N,Sに加えてRの値を記憶する(ステップS1201)。ストリーム数決定部3206は、始めに、取得したNの値に等しいエントリがテーブルに存在するかを調べ、存在していれば、当該のエントリのSとRの値を取得したSとRの値で上書き更新する。テーブルには、N,S,Rに加えて、SをRで割った値をあわせて記憶される。存在していなければ、取得したN,S,Rの値からなる新しいエントリを作成しテーブルに追加する。追加後のテーブルをNに関してソートし、序数を付け直す。
Unlike the first example, in the second example, the value of R is stored in addition to N and S (step S1201). First, the number-of-
送信処理時間率Rは、サーバ装置32の処理時間においてデータの送信処理に費やされた時間が占める割合である。このときの送信レートがSで与えられることから、S/Rの値は送信部103で達成可能な伝送レートの上限の近似値とみなすことができる。そこで、S/Rの値がNに関し単調増加するか否かに応じて、次に用いるTCPストリーム数Nnextの値を決定する。
The transmission processing time rate R is the ratio of the time spent for data transmission processing in the processing time of the
以降の決定処理は、第一の例のステップS1103以降を、S→S/Rと読み替えた手続きと同一である。序数iとして1から順に(ステップS1202〜S1205)、序数iのエントリのS[i]/R[i]と序数i+1のエントリのS[i+1]/R[i+1]との差と、規定の閾値(S/R)tとの大小を比較する。差が閾値(S/R)tを下回れば、そのときのiを用いて、Nnextの値を(N[i]+N[i+1])/2と定める。imax未満の全てのiについて差が(S/R)tを上回っていれば、S/RはNに関し単調増加していると見なし、Nnextの値をN[imax]より1大きな値とする。動作例は省略する。 The subsequent determination processing is the same as the procedure in which step S1103 and subsequent steps in the first example are read as S → S / R. In order from 1 as the ordinal number i (steps S1202 to S1205), the difference between the S [i] / R [i] of the entry of the ordinal number i and S [i + 1] / R [i + 1] of the entry of the ordinal number i + 1, and the prescribed threshold value (S / R) The magnitude is compared with t. If the difference falls below the threshold value (S / R) t, the value of Nnext is determined as (N [i] + N [i + 1]) / 2 using i at that time. If the difference is greater than (S / R) t for all i less than imax, S / R is regarded as monotonically increasing with respect to N, and the value of Nnext is set to a value larger than N [imax]. An operation example is omitted.
≪ 決定処理の第三の例 ≫
決定処理の第三の例を図14を用いて説明する。図14は、ストリーム数の決定処理の第3の例のフローチャートを示す図である。
≪ Third example of decision processing ≫
A third example of the determination process will be described with reference to FIG. FIG. 14 is a diagram illustrating a flowchart of a third example of the process for determining the number of streams.
ストリーム数決定部3206は、送信処理時間率Rが既定の閾値Rt(例えば0.9など)を上回るか否かを判断する(ステップS1301)。Rの値が閾値よりも小さい場合(ステップS1302)、決定処理の第一の例と同様の判断より、Nnextの値として、現状と同じNの値を使用する。一方、閾値を上回る場合(ステップS1303)、サーバ装置32の処理時間の多くが送信処理に費やされていることから、TCPストリーム数を増加させることにより送信レートに改善の可能性が見込める。よって、Nnextの値として、現状より大きなN+1を使用する。動作例は省略する。
The stream
以上のように本実施の形態によれば、伝送すべきデータの入力されるレートが時間によって変動する場合であっても、送信レートを確保しつつ、不要な処理負荷をもたらさない適切なTCPストリーム数を決定することが可能になる。 As described above, according to the present embodiment, even when the input rate of data to be transmitted varies with time, an appropriate TCP stream that secures a transmission rate and does not cause unnecessary processing load. The number can be determined.
また、サーバ装置32は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、データ供給部3201と、第5分配部3202と、複数の送信部3203A〜3203Zと、送信レート測定部3204と、送信処理時間率算出部3205と、ストリーム数決定部3206とは、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、サーバ装置32は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
The
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
1・・・クライアント装置31・・・サーバ装置、3・・・ネットワーク、100・・・データ供給部、101・・・確立指示部、102・・・第1分配部、103・・・第1の送信部、104・・・第2の送信部、105・・・確立部、106・・・確立部、107・・・第2分配部、200・・・第1の受信部、201・・・第2の受信部、202・・・待受部、203・・・待受部、204・・・第1収集部、205・・・第2収集部、206・・・データ入出力部、110・・・データ供給部、111・・・確立指示部、112・・・第3収集部、113・・・第1の受信部、114・・・第2の受信部、115・・・確立部、116・・・確立部、117・・・第4収集部、210・・・第1の送信部、211・・・第2の送信部、212・・・待受部、213・・・待受部、214・・・第3分配部、215・・・待受部、216・・・第4分配部、217・・・データ入出力部、31・・・クライアント装置、32・・・サーバ装置、3101A〜Z・・・受信部、3102・・・結合部、3103・・・表示部、3201・・・データ供給部、3202・・・第5分配部、3203A〜Z・・・送信部、3204・・・送信レート測定部、3205・・・送信処理時間測定部、3206・・・ストリーム数決定部、32061・・・記憶部。
DESCRIPTION OF
Claims (24)
第1の接続を確立するための処理を行うとともに、前記第1の通信装置と前記第1の接続を確立した場合に、第1の伝送方式で通信を行う第1の通信部と、
第2の接続を確立するための処理を行うとともに、前記第1の通信装置と前記第2の接続を確立した場合に、第2の伝送方式で通信を行う第2の通信部と、
前記第1の通信部が前記第1の接続を確立するための処理を行うタイミングと、前記第2の通信部が前記第2の接続を確立するための処理を行うタイミングとが重複する様に、前記第1の通信部に対して前記第1の接続を確立するための処理を行うように第1の指示を出すとともに、前記第2の通信部に対して前記第2の接続を確立するための処理を行うように第2の指示を出す指示部と、
分配部と、を備え、
前記第1の通信部は、前記第1の接続を確立するための処理を完了した場合に、前記分配部に第1メッセージを通知し、
前記第2の通信部は、前記第2の接続を確立するための処理を完了した場合に、前記分配部に第2メッセージを通知し、
前記分配部は、前記送信データを、通信に用いるすべての接続の確立を最初に完了した前記第1の通信部又は前記第2の通信部のいずれか一方に分配するとともに、前記第1の通信部が最初に前記第1の接続を確立するための処理を完了した場合に、前記第1の通信部に前記送信データを分配するとともに、前記第2の通信部が前記第2の接続の確立するための処理を完了後、前記送信データの分配先を前記第1の通信部から前記第2の通信部に切り替えることを特徴とする通信装置。 A device for communicating with a first communication device connected via a network,
A first communication unit that performs processing for establishing a first connection, and performs communication by a first transmission method when the first connection is established with the first communication device;
A second communication unit that performs processing for establishing a second connection, and performs communication using the second transmission method when the second connection is established with the first communication device;
The timing at which the first communication unit performs processing for establishing the first connection and the timing at which the second communication unit performs processing for establishing the second connection overlap. And instructing the first communication unit to perform processing for establishing the first connection, and establishing the second connection to the second communication unit. An instruction unit for issuing a second instruction so as to perform processing for
A distribution unit;
When the first communication unit completes the process for establishing the first connection, the first communication unit notifies the distribution unit of a first message;
The second communication unit, when completing the process for establishing the second connection, notifies the distribution unit of a second message,
The distribution unit distributes the transmission data to either the first communication unit or the second communication unit that first completed establishment of all connections used for communication, and the first communication. When the first unit completes the process for establishing the first connection, the transmission data is distributed to the first communication unit, and the second communication unit establishes the second connection. A communication apparatus that switches a distribution destination of the transmission data from the first communication unit to the second communication unit after completing the processing for performing the processing.
前記第1の通信装置は、
第1の接続を確立するための処理を行うとともに、前記第1の通信装置と前記第1の接続を確立した場合に、第1の伝送方式で通信を行う第1の通信部と、
第2の接続を確立するための処理を行うとともに、前記第1の通信装置と前記第2の接続を確立した場合に、第2の伝送方式で通信を行う第2の通信部と、
前記第1の通信部が前記第1の接続を確立するための処理を行うタイミングと、前記第2の通信部が前記第2の接続を確立するための処理を行うタイミングとが重複する様に、前記第1の通信部に対して前記第1の接続を確立するための処理を行うように第1の指示を出すとともに、前記第2の通信部に対して前記第2の接続を確立するための処理を行うように第2の指示を出す指示部と、
分配部と、を備え、
前記第1の通信部は、前記第1の接続を確立するための処理を完了した場合に、前記分配部に第1メッセージを通知し、
前記第2の通信部は、前記第2の接続を確立するための処理を完了した場合に、前記分配部に第2メッセージを通知し、
前記分配部は、前記送信データを、通信に用いるすべての接続の確立を最初に完了した前記第1の通信部又は前記第2の通信部のいずれか一方に分配するとともに、前記第1の通信部が最初に前記第1の接続を確立するための処理を完了した場合に、前記第1の通信部に前記送信データを分配するとともに、前記第2の通信部が前記第2の接続の確立するための処理を完了後、前記送信データの分配先を前記第1の通信部から前記第2の通信部に切り替え、
前記第2の通信装置は、
第1の接続を確立するための処理を行うとともに、前記第1の通信装置の前記第1の通信部と、前記第1の接続を確立した場合に、前記第1の伝送方式で通信を行う第3の通信部と、
第2の接続を確立するための処理を行うとともに、前記第1の通信装置の前記第2の通信部と前記第2の接続を確立した場合に、第2の通信方式で通信を行う第4の通信部と、
前記第3の通信部及び前記第2の通信部が通信により受信した前記送信データを、前記通信部及び前記第2の通信部から受け取るとともに、受け取った前記送信データを出力する収集部とを備え、
前記収集部は、前記分配部が、前記送信データの分配先を、前記第1の通信部から前記第2の通信部に切り替えた場合に、前記第3の通信部から受け取ったすべての前記送信データを出力後、前記第4の通信部から受け取った前記送信データの出力を開始することを特徴とする
システム。 A system comprising a first communication device and a second communication device connected via a network,
The first communication device is:
A first communication unit that performs processing for establishing a first connection, and performs communication by a first transmission method when the first connection is established with the first communication device;
A second communication unit that performs processing for establishing a second connection, and performs communication using the second transmission method when the second connection is established with the first communication device;
The timing at which the first communication unit performs processing for establishing the first connection overlaps with the timing at which the second communication unit performs processing for establishing the second connection. And instructing the first communication unit to perform processing for establishing the first connection, and establishing the second connection to the second communication unit. An instruction unit for issuing a second instruction so as to perform processing for
A distribution unit;
When the first communication unit completes the process for establishing the first connection, the first communication unit notifies the distribution unit of a first message;
When the second communication unit completes the process for establishing the second connection, the second communication unit notifies the distribution unit of a second message,
The distribution unit distributes the transmission data to either the first communication unit or the second communication unit that first completed establishment of all connections used for communication, and the first communication. When the unit first completes the process for establishing the first connection, the transmission data is distributed to the first communication unit, and the second communication unit establishes the second connection. After completing the process for the transmission, the distribution destination of the transmission data is switched from the first communication unit to the second communication unit,
The second communication device is:
Performs processing for establishing a first connection, and communicates with the first communication unit of the first communication device using the first transmission method when the first connection is established. A third communication unit;
A process for establishing a second connection and performing communication in the second communication method when the second connection is established with the second communication unit of the first communication device. The communication department of
A collection unit that receives the transmission data received by the third communication unit and the second communication unit from the communication unit and the second communication unit, and outputs the received transmission data; ,
The collection unit receives all the transmissions received from the third communication unit when the distribution unit switches the distribution destination of the transmission data from the first communication unit to the second communication unit. After outputting data, the system starts outputting the transmission data received from the fourth communication unit.
前記収集部は、通知された前記データサイズの前記送信データを出力した場合に、前記第3の通信部から受け取った全ての前記送信データを出力したと判断することを特徴とする請求項3記載のシステム。 The first communication device transmits the transmission data distributed to the first communication unit by the distribution unit until the transmission destination of the transmission data is switched from the first communication unit to the second communication unit. Informing the second communication device of the data size of the data;
The said collection part judges that all the said transmission data received from the said 3rd communication part were output, when the said transmission data of the notified said data size was output. System.
複数の送信部と、
第1のデータを分割することにより複数の第1分割データを生成するとともに、前記複数の第1分割データを、前記複数の送信部に分配する分配部と、
前記複数の送信部が、任意の期間の中で、前記第1のデータを前記第1の通信装置に送信するために要した送信処理時間の割合である送信処理時間率を算出する算出部と、
前記送信処理時間率に基づき、前記分配部が、第2のデータを分割して生成する複数の第2の分割データを、何個の前記送信部に分配するかを決定する決定部とを備え、
前記分配部は、前記複数の第2の分割データを、前記決定部が決定した数の前記送信部に分配することを特徴とする
通信装置。 A device that communicates with a first communication device connected via a network,
A plurality of transmitters;
A plurality of first division data generated by dividing the first data, and a distribution unit that distributes the plurality of first division data to the plurality of transmission units;
A calculation unit that calculates a transmission processing time rate that is a ratio of a transmission processing time required for the plurality of transmission units to transmit the first data to the first communication device in an arbitrary period; ,
The distribution unit includes a determination unit that determines, based on the transmission processing time ratio, a number of the plurality of second divided data generated by dividing the second data to be distributed to the number of the transmission units. ,
The distribution unit distributes the plurality of second divided data to the number of transmission units determined by the determination unit.
前記決定部は、前記送信処理時間率及び前記送信レートに基づき、前記第2の分割データを、何個の送信部に分配するかを決定することを特徴とする請求項8記載の通信装置。 A transmission rate measuring unit that measures a transmission rate that is an amount of data transmitted by the plurality of transmitting units in a certain period of time;
9. The communication apparatus according to claim 8, wherein the determination unit determines how many transmission units the second divided data is distributed based on the transmission processing time rate and the transmission rate.
前記決定部は、前記送信処理時間率が所定の閾値より大きい場合に、前記分配部が前記第1分割データを分配した送信部の個数と、前記測定部が測定した第1データを送信しているときの複数の前記送信部の送信レートとの対応関係に基づき、前記記憶部が記憶する前記対応関係を更新するとともに、更新後の対応関係に基づき、前記分配部が、前記第2の分割データを、何個の送信部に分配するかを決定することを特徴とする請求項9記載の通信装置。 In the past, the distribution unit further includes a storage unit that stores a correspondence relationship between the number of the transmission units to which the data has been distributed and a transmission rate that is the amount of data transmitted by the number of transmission units in a certain period of time.
The determination unit transmits the number of transmission units to which the distribution unit has distributed the first divided data and the first data measured by the measurement unit when the transmission processing time rate is greater than a predetermined threshold. And updating the correspondence relationship stored in the storage unit based on the correspondence relationship with the transmission rates of the plurality of transmission units when the distribution unit is configured to update the second division. 10. The communication apparatus according to claim 9, wherein the number of transmission units to which data is distributed is determined.
前記決定部は、前記送信レートを前記送信処理時間率で割った値に基づき、前記第2の分割データを、何個の送信部に分配するかを決定することを特徴とする請求項6記載の通信装置。 And a transmission rate measuring unit that measures a transmission rate indicating the amount of the first data transmitted by the plurality of transmitting units in a certain time period,
The said determination part determines how many transmission parts distribute the said 2nd division | segmentation data based on the value which divided the said transmission rate by the said transmission processing time rate. Communication equipment.
前記決定部は、前記分配部が前記第1データを分配した送信部の個数と、前記測定部が測定した第1データを送信している時の複数の前記送信部の送信レートを送信処理時間で割った値との対応関係に基づき、前記記憶部が記憶する対応関係を更新するとともに、更新後の対応関係に基づき、前記分配部が、前記第2の分割データを、何個の送信部に分配するかを決定することを特徴とする請求項16記載の通信装置。 In the past, the distribution unit stores the correspondence between the number of the transmission units that have distributed data and the value obtained by dividing the transmission rate when the data is transmitted using the number of transmission units by the transmission processing time rate. A storage unit;
The determination unit determines the number of transmission units to which the distribution unit has distributed the first data and the transmission rates of the plurality of transmission units when transmitting the first data measured by the measurement unit. Based on the correspondence relationship with the value divided by the number, the correspondence relationship stored in the storage unit is updated, and on the basis of the updated correspondence relationship, the distribution unit converts the second divided data into the number of transmission units. The communication device according to claim 16, wherein it is determined whether or not to distribute the data.
第1の接続を確立するための処理を行うとともに、前記第1の通信装置と前記第1の接続を確立した場合に、第1の伝送方式で通信を行う第1の通信機能と、
第2の接続を確立するための処理を行うとともに、前記第1の通信装置と前記第2の接続を確立した場合に、第2の伝送方式で通信を行う第2の通信機能と、
前記第1の通信機能が前記第1の接続を確立するための処理を行うタイミングと、前記第2の通信機能が前記第2の接続を確立するための処理を行うタイミングとが重複する様に、前記第1の通信機能に対して前記第1の接続を確立するための処理を行うように第1の指示を出すとともに、前記第2の通信機能に対して前記第2の接続を確立するための処理を行うように第2の指示を出す指示機能と、
分配機能と、を備え、
前記第1の通信機能は、前記第1の接続を確立するための処理を完了した場合に、前記分配機能に第1メッセージを通知し、
前記第2の通信機能は、前記第2の接続を確立するための処理を完了した場合に、前記分配機能に第2メッセージを通知し、
前記分配機能は、前記送信データを、通信に用いるすべての接続の確立を最初に完了した前記第1の通信機能又は前記第2の通信機能のいずれか一方に分配するとともに、前記第1の通信機能が最初に前記第1の接続を確立するための処理を完了した場合に、前記第1の通信機能に前記送信データを分配するとともに、前記第2の通信機能が前記第2の接続の確立するための処理を完了後、前記送信データの分配先を前記第1の通信機能から前記第2の通信機能に切り替えることを特徴とする
プログラム。 A program for controlling a device that communicates with a first communication device connected via a network,
A first communication function for performing a process for establishing a first connection and performing communication in a first transmission method when the first connection with the first communication device is established;
A second communication function for performing a process for establishing a second connection and performing communication in a second transmission method when the second connection is established with the first communication device;
The timing at which the first communication function performs processing for establishing the first connection and the timing at which the second communication function performs processing for establishing the second connection overlap. Instructing the first communication function to perform the process for establishing the first connection, and establishing the second connection for the second communication function An instruction function for issuing a second instruction to perform processing for
A distribution function,
When the first communication function completes the process for establishing the first connection, the first communication function notifies the distribution function of a first message;
When the second communication function completes the process for establishing the second connection, the second communication function notifies the distribution function of a second message;
The distribution function distributes the transmission data to either the first communication function or the second communication function that has first completed establishment of all connections used for communication, and the first communication. When the function first completes the process for establishing the first connection, the transmission data is distributed to the first communication function, and the second communication function establishes the second connection. A program for switching the distribution destination of the transmission data from the first communication function to the second communication function after completion of the processing for performing the processing.
複数の送信機能と、
第1のデータを分割することにより複数の第1分割データを生成するとともに、前記複数の第1分割データを、前記複数の送信機能に分配する分配機能と、
前記複数の送信機能が、第1期間の中で、前記第1のデータを前記第1の通信装置に送信するために要した送信処理時間の割合である送信処理時間率を算出する算出機能と、
前記送信処理時間率に基づき、前記分配機能が、第2のデータを分割して生成する複数の第2の分割データを、前記複数の送信機能のうち、何個の送信機能に分配するかを決定する決定機能とを備え、
前記分配機能は、前記複数の第2の分割データを、前記決定機能が決定した数の送信機能に分配することを特徴とする
プログラム。 A program for controlling a device that communicates with a first communication device connected via a network,
Multiple sending functions,
A distribution function for dividing the first data to generate a plurality of first divided data and distributing the plurality of first divided data to the plurality of transmission functions;
A calculation function in which the plurality of transmission functions calculate a transmission processing time ratio that is a ratio of a transmission processing time required to transmit the first data to the first communication device in the first period; ,
Based on the transmission processing time rate, the distribution function distributes a plurality of second divided data generated by dividing the second data to the number of transmission functions among the plurality of transmission functions. With a decision function to decide,
The distribution function distributes the plurality of second divided data to the number of transmission functions determined by the determination function.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012192661A JP5771169B2 (en) | 2012-08-31 | 2012-08-31 | system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012192661A JP5771169B2 (en) | 2012-08-31 | 2012-08-31 | system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015061711A Division JP5933064B2 (en) | 2015-03-24 | 2015-03-24 | Communication apparatus and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014049995A true JP2014049995A (en) | 2014-03-17 |
JP5771169B2 JP5771169B2 (en) | 2015-08-26 |
Family
ID=50609229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012192661A Active JP5771169B2 (en) | 2012-08-31 | 2012-08-31 | system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5771169B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099844A1 (en) * | 2000-08-23 | 2002-07-25 | International Business Machines Corporation | Load balancing and dynamic control of multiple data streams in a network |
JP2009526483A (en) * | 2006-02-09 | 2009-07-16 | テルコーディア テクノロジーズ インコーポレイテッド | A method for adaptive seamless mobility of multimedia communication sessions |
JP2012134989A (en) * | 2007-02-21 | 2012-07-12 | Qualcomm Inc | Wireless node search procedure |
JP2013081004A (en) * | 2011-09-30 | 2013-05-02 | Toshiba Corp | Server, server control method, and server control program |
JP2013175938A (en) * | 2012-02-24 | 2013-09-05 | Ntt Communications Kk | Communication apparatus, communication method and program |
-
2012
- 2012-08-31 JP JP2012192661A patent/JP5771169B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099844A1 (en) * | 2000-08-23 | 2002-07-25 | International Business Machines Corporation | Load balancing and dynamic control of multiple data streams in a network |
JP2009526483A (en) * | 2006-02-09 | 2009-07-16 | テルコーディア テクノロジーズ インコーポレイテッド | A method for adaptive seamless mobility of multimedia communication sessions |
JP2012134989A (en) * | 2007-02-21 | 2012-07-12 | Qualcomm Inc | Wireless node search procedure |
JP2013081004A (en) * | 2011-09-30 | 2013-05-02 | Toshiba Corp | Server, server control method, and server control program |
JP2013175938A (en) * | 2012-02-24 | 2013-09-05 | Ntt Communications Kk | Communication apparatus, communication method and program |
Also Published As
Publication number | Publication date |
---|---|
JP5771169B2 (en) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7154399B2 (en) | DATA TRANSMISSION METHOD, APPARATUS, COMPUTER-READABLE MEDIUM AND ELECTRONIC DEVICE | |
US20160269302A1 (en) | System and method for improving tcp performance in virtualized environments | |
US7254620B2 (en) | Storage system | |
JPWO2011074630A1 (en) | Load distribution system, load distribution method, apparatus and program constituting load distribution system | |
JP6648893B2 (en) | Provide functional requirements for network connection from local library | |
JP6037251B2 (en) | Method, device, and system for controlling network paths | |
KR101426217B1 (en) | Reducing the maximum latency of reserved streams | |
US8838782B2 (en) | Network protocol processing system and network protocol processing method | |
JP5437290B2 (en) | Service distribution method, service distribution device, and program | |
JP5933064B2 (en) | Communication apparatus and program | |
JP5771169B2 (en) | system | |
JP4750538B2 (en) | Terminal device, wireless communication method, and wireless communication program | |
JP2018064187A (en) | Communication device, communication method, and program | |
JP5935602B2 (en) | Transfer device, transfer method, and transfer program | |
US9450863B2 (en) | Route request mediation apparatus, control apparatus, route request mediation method and program | |
JP5613710B2 (en) | Server terminal, screen transfer system, and screen transfer method | |
JP6758858B2 (en) | Communication equipment, communication methods and programs | |
JP2014170379A (en) | Information equipment, printing system, computer program and data transfer method | |
JP7051396B2 (en) | Communication equipment, communication methods, and programs | |
CN109688085B (en) | Transmission control protocol proxy method, storage medium and server | |
JP6488557B2 (en) | Communication control system, communication system, communication control method, and communication control program | |
WO2020184381A1 (en) | Processing device, information processing system, information processing method, and program | |
JP7456603B2 (en) | switch device | |
JP2018170680A (en) | Communication device and transmission control method | |
JP6568571B2 (en) | Data transfer device, data transfer method, and communication device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140408 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150123 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20150216 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20150218 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20150317 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150324 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150317 |
|
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: 20150529 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150626 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5771169 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |