JP2016019156A - 通信装置およびその制御方法 - Google Patents
通信装置およびその制御方法 Download PDFInfo
- Publication number
- JP2016019156A JP2016019156A JP2014140867A JP2014140867A JP2016019156A JP 2016019156 A JP2016019156 A JP 2016019156A JP 2014140867 A JP2014140867 A JP 2014140867A JP 2014140867 A JP2014140867 A JP 2014140867A JP 2016019156 A JP2016019156 A JP 2016019156A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- information
- communication device
- tcp connection
- rto
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/18—End to end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
【課題】TCP通信のスループットを改善する適切な通信制御を行う。
【解決手段】通信装置は、外部通信装置との間でTCPコネクションを確立して通信する通信手段と、TCPコネクションを確立する際に、外部通信装置から当該外部通信装置の機器情報を受信する受信手段と、受信した外部通信装置の機器情報に基づいて、TCPコネクションの再送タイムアウト(RTO)タイマー値を変更するよう制御する制御手段と、を有する。
【選択図】図4
【解決手段】通信装置は、外部通信装置との間でTCPコネクションを確立して通信する通信手段と、TCPコネクションを確立する際に、外部通信装置から当該外部通信装置の機器情報を受信する受信手段と、受信した外部通信装置の機器情報に基づいて、TCPコネクションの再送タイムアウト(RTO)タイマー値を変更するよう制御する制御手段と、を有する。
【選択図】図4
Description
本発明は、TCP通信のスループットを改善する技術に関するものである。
インターネット通信において輻輳制御を行うプロトコルとしてTCP(Transmission Control Protocol)が広く知られている。TCPはRFC793、RFC1122、RFC2581、RFC2582等の文書に記載されており、その改良のための研究が続けられている。ところで、TCPは誤り制御にARQ(自動再送要求)方式を採用している。ARQ方式では送信側から受信側へデータパケットが送信され、これを受信した受信側から送信側へACK(肯定応答)パケットが返送される。ACKパケットが返送されないデータパケットがあった場合には、送信側からデータパケットが再送される。また、送信側はスループットを大きくするため、一定サイズ以内の複数のパケットをまとめて送信しようとする。このような制御は、スライディングウィンドウ方式のフロー制御と呼ばれている。さらに、この制御は、ネットワーク上の輻輳を回避するため、徐々にスループットを上げるように設計されている。
また、近年、移動体通信端末は高速な通信方式を持つものが多くなってきている。一方で省電力化も進んでおり、高速な通信を行える機能がありながら、省電力化の影響により通信遅延のゆらぎや、突発的な遅延が発生しやすくなっている。突発的な遅延が発生すると、ACKパケットを受信する時間が遅れるために、送信側はデータパケットを再送してしまう。また、送信側はデータパケットの再送を行った段階で、ネットワーク上で輻輳が発生していると判断し、スループットを落とす方向に制御を行ためスループットは低下してしまう。このような無線環境下における突発的な遅延の発生の対策として、例えば、特許文献1には、ネットワーク特性情報に基づき時間的な変動の有無を判定し輻輳制御変数の値を制御する技術が開示されている。
しかしながら、特許文献1に示されるようなネットワーク特性情報に基づく時間的な変動の有無の判定だけでは適切な通信制御を行うことができない。例えば、上述のような、通信端末の省電力特性情報や通信端末のOS(オペレーティングシステム)に関する制御情報は利用することができない。
本発明は上述の問題点に鑑みなされたものであり、TCP通信のスループットを改善する適切な通信制御を行うことのできる技術を提供することを目的としている。
上述の問題点を解決するため、本発明に係る通信装置は以下の構成を備える。すなわち、通信装置は、外部通信装置との間でTCPコネクションを確立して通信する通信手段と、前記TCPコネクションを確立する際に、前記外部通信装置から該外部通信装置の機器情報を受信する受信手段と、前記受信した前記外部通信装置の機器情報に基づいて、前記TCPコネクションの再送タイムアウト(RTO)タイマー値を変更するよう制御する制御手段と、を有する。
本発明によれば、TCP通信のスループットを改善する適切な通信制御を行うことのできる技術を提供することができる。
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
(第1実施形態)
本発明に係る通信装置の第1実施形態として、Webサービスを提供するサーバ装置101を例に挙げて以下に説明する。
本発明に係る通信装置の第1実施形態として、Webサービスを提供するサーバ装置101を例に挙げて以下に説明する。
<用語>
まず、以下の実施形態の説明で用いる用語について説明する。
TCP(Transmission Control Protocol):ファイルの送受信のような信頼性を要求する通信に一般的に利用されるプロトコル
HTTP(Hypertext Transfer Protocol):Webクライアント装置とWebサーバ装置の間で各種コンテンツの送受信に用いられるプロトコル(RFC1945、RFC2068、RFC2616)
ソケット:TCPレイヤ上の通信路を識別、分類するための表記(IPアドレスとTCPポート番号の組のことを指す。)
TCPコネクション:TCPレイヤにおけるひとつの通信路(受信側ソケットと送信側ソケットの組のことを指す。)
受信ウィンドウサイズ:TCPプロトコルにおける、受信用のバッファ領域のサイズ(TCPは残り受信ウィンドウサイズを送信側に通知することにより、バッファ溢れを防ぐことが出来る。)
輻輳ウィンドウサイズ:TCPプロトコルにおける、送信用のバッファ領域のサイズ(TCPは輻輳ウィンドウサイズを徐々に大きくすることにより、通信速度の向上を試みる。一方で輻輳ウィンドウサイズを単に大きくすると、通信路の輻輳に繋がるため、これらウィンドウサイズの制御を行う輻輳回避アルゴリズムが必要である。TCPに実装される輻輳回避アルゴリズムには、Tahoe、Reno等がある。)
RTO(再送タイムアウト):TCPにおいて受信側からACKパケットが返信されなかった場合、ネットワーク上で送信パケットが損失したとみなし、再送を行うこと
RTOタイマー:送信パケットが損失したと判定するまでの時間を測るタイマー(TCPでは一般的に「A+4D」で計算されている。ここで、「A」はRTT(Round Trip Time)の指数移動平均、「D」はRTTの平均偏差の指数移動平均を指す。この「4D」の項により、急な遅延の変化に対応出来る、とされている。)
IEEE802.11:IEEE(The Insitute of Electrical and Electronics Engineers)で策定されている無線LANに関する標準規格
まず、以下の実施形態の説明で用いる用語について説明する。
TCP(Transmission Control Protocol):ファイルの送受信のような信頼性を要求する通信に一般的に利用されるプロトコル
HTTP(Hypertext Transfer Protocol):Webクライアント装置とWebサーバ装置の間で各種コンテンツの送受信に用いられるプロトコル(RFC1945、RFC2068、RFC2616)
ソケット:TCPレイヤ上の通信路を識別、分類するための表記(IPアドレスとTCPポート番号の組のことを指す。)
TCPコネクション:TCPレイヤにおけるひとつの通信路(受信側ソケットと送信側ソケットの組のことを指す。)
受信ウィンドウサイズ:TCPプロトコルにおける、受信用のバッファ領域のサイズ(TCPは残り受信ウィンドウサイズを送信側に通知することにより、バッファ溢れを防ぐことが出来る。)
輻輳ウィンドウサイズ:TCPプロトコルにおける、送信用のバッファ領域のサイズ(TCPは輻輳ウィンドウサイズを徐々に大きくすることにより、通信速度の向上を試みる。一方で輻輳ウィンドウサイズを単に大きくすると、通信路の輻輳に繋がるため、これらウィンドウサイズの制御を行う輻輳回避アルゴリズムが必要である。TCPに実装される輻輳回避アルゴリズムには、Tahoe、Reno等がある。)
RTO(再送タイムアウト):TCPにおいて受信側からACKパケットが返信されなかった場合、ネットワーク上で送信パケットが損失したとみなし、再送を行うこと
RTOタイマー:送信パケットが損失したと判定するまでの時間を測るタイマー(TCPでは一般的に「A+4D」で計算されている。ここで、「A」はRTT(Round Trip Time)の指数移動平均、「D」はRTTの平均偏差の指数移動平均を指す。この「4D」の項により、急な遅延の変化に対応出来る、とされている。)
IEEE802.11:IEEE(The Insitute of Electrical and Electronics Engineers)で策定されている無線LANに関する標準規格
<装置構成>
図1は、第1実施形態に係る通信装置であるサーバ装置101を含む通信システムの構成を説明する図である。
図1は、第1実施形態に係る通信装置であるサーバ装置101を含む通信システムの構成を説明する図である。
サーバ装置101は、Webサービスを提供する通信装置である。Webサービスでは一般的に、このHTTPを使用して通信を行う。サーバ装置101は、図1においては1台のサーバ装置101として示されているが複数台のサーバ装置で構成されていても構わない。また、仮想PCとして構成されていても構わない。また、外部通信装置であるクライアント装置103は、無線ルータ102を介してサーバ装置101にアクセスしWebサービスを利用する通信装置である。
インターネット100は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線ネットワークである。インターネット100は、TCP/IPプロトコルをサポートしている。無線ルータ102はインターネット100と接続されており、また、クライアント装置103と無線通信が可能に構成されている。
図2は、クライアント装置103やサーバ装置101を構成するコンピュータ200のハードウェア構成を示す図である。
コンピュータ200は、ROM202あるいは外部記憶装置205に記憶されたオペレーションシステムあるいは各種のアプリケーションプログラムを実行するCPU201を備える。CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。通信制御部206は、ネットワークI/F306を介したLAN207とのデータの送受信を制御する。
図3は、サーバ装置101のソフトウェア構成を示す図である。なお、TCPレイヤまでの管理機構はRFC793を満たし、利用可能なAPIが提供されていればどのような実装でも構わない。すなわち、以下で説明するTCP管理処理部304および下位レイヤ管理処理部305が適切なAPIを提供していれば、その実装は問わない。TCP管理処理部304および下位レイヤ管理処理部305は、多くの場合、オペレーティングシステムが提供することが一般的であるが、後述する管理機構を別個に実装していても構わない。
ダウンロード管理処理部302は、HTTP通信を用いた送受信処理を管理し、上位レイヤアプリケーション301へのインターフェースを提供する。また下位レイヤに対してのデータ送受信も管理する。ダウンロード管理処理部302は、ここでは1つのソフトウェアライブラリの形で記述するものとして説明する。しかし、オペレーティングシステムそのものに本機能を実装したり、ネットワークI/F306のハードウェアに実装しても構わない。すなわち、同等の機能及びインターフェースが上位レイヤアプリケーション301に提供できればよい。
TCP管理処理部304は、TCPコネクションを管理する。具体的にはTCPコネクションの接続、受付、送受信等を管理し、その結果を上位レイヤアプリケーション301に通知する。また、直接結果を上位レイヤアプリケーション301に通知するだけでなく、SSL/TLS管理処理部303のような中間レイヤに通知してもよい。なお、SSL/TLSとは認証、暗号化、改ざん検出を行う、Webサービスで一般的に使用される技術である。
ネットワークI/F306は、外部ネットワークと通信するインタフェースである。ネットワークI/F306は、無線通信インタフェースであっても構わない。すなわち、無線アンテナやその制御のための装置を備えていても良い。
<装置の動作>
以下では、モバイル端末であるクライアント装置103がサーバ装置101を介して不図示の画像処理装置へ印刷を依頼する状況を考える。つまり、サーバ装置101は、モバイル端末であるクライアント装置103から受け取った画像を画像処理装置が理解できる画像データへと変換するWebサービスを提供している。以下の説明では、使用する通信プロトコルとしてHTTPを用いる。もちろん、同様の機能を持つ他のプロトコルや独自のものを用いても良い。
以下では、モバイル端末であるクライアント装置103がサーバ装置101を介して不図示の画像処理装置へ印刷を依頼する状況を考える。つまり、サーバ装置101は、モバイル端末であるクライアント装置103から受け取った画像を画像処理装置が理解できる画像データへと変換するWebサービスを提供している。以下の説明では、使用する通信プロトコルとしてHTTPを用いる。もちろん、同様の機能を持つ他のプロトコルや独自のものを用いても良い。
本発明の特徴を示すため、サーバ装置101の動作について詳細に説明する。なお、サーバ装置101は一般的なHTTPサーバ装置の機能を満たし、GETコマンドとHEADコマンドが使用可能に構成されているものとする。なお、以下の説明では、本発明と本質的に関係の少ない、HTTPによるサーバ装置、クライアント装置間の基本的な処理については説明は省略する。
図4は、RTO調整用HTTPリクエスト解析処理のフローチャートである。RTO調整用HTTPリクエスト解析処理は、サーバ装置101がクライアント装置103からHTTPリクエストを受け取った際の処理である。なお、以下の説明はサーバ装置で実行される動作を示している。
S401では、ダウンロード管理処理部302は、クライアント装置103からHTTPリクエストを受信する。S402では、ダウンロード管理処理部302は、HTTPリクエストに含まれるHTTPヘッダ内に、クライアント装置103のハードウェア情報、およびOS情報が含まれるかどうかを確認する。
具体的には、クライアント装置103は、サーバ装置101に対してTCPコネクションの接続を確立する。このとき、クライアント装置103は、HTTPリクエストのヘッダ内にクライアント装置103の機器情報として「ハードウェア情報」や「OS情報」を含ませる。「ハードウェア情報」や「OS情報」と記述可能なヘッダとしてはいくつか考えられるが、ここでは一般的に使われているUserAgentヘッダ内に記述するものとする。もちろんHTTPリクエスト内であればどのヘッダを用いても構わない。また、記述する情報をハードウェア情報やOS情報だけに制限するものではない。すなわち、有線か無線の区別や、接続方式の種類、リンク速度の情報などのネットワーク特性情報を含めても構わない。
ここで、「ハードウェア情報」とは、クライアント装置103のベンダー名や商品名などの、ハードウェア構成の特定が可能な情報である。また、「OS情報」とは、クライアント装置103が利用しているOSの名前およびバージョン情報などソフトウェア構成を特定可能な情報である。なお、「ハードウェア情報」と「OS情報」に分けているのは、同一のハードウェア情報を有する機種であっても異なるOSが使用された場合、TCP通信の挙動が異なるためである。
ダウンロード管理処理部302は、S402において、受信したHTTPリクエスト内にハードウェア情報およびOS情報が含まれないと判定した場合、RTO調整用HTTPリクエスト解析処理を終了する。その場合、ダウンロード管理処理部302は、その後、一般的なHTTPのリクエスト処理を行う。通常はHTTPのリクエスト処理内にて上位レイヤアプリケーション301に、HTTPリクエスト受信の通知が行われることになる。上位レイヤアプリケーション301による、レスポンス内容に関する処理はアプリケーションごとに異なるため説明は省略する。
一方、ダウンロード管理処理部302は、S402において、受信したHTTPリクエスト内にハードウェア情報およびOS情報が含まれると判定した場合、RTO加算係数算出処理(S403)に遷移する。
S403では、ダウンロード管理処理部302は、HTTPリクエスト内に含まれるハードウェア情報やOS情報から、無線環境下での突発的な遅延量を想定し、RTO加算値を決定する。例えば、予め記憶されたRTO加算係数テーブルにて決定される加算係数に基づきRTO加算値を決定する。なお、以下の説明ではハードウェア情報とOS情報の組み合わせのみで判定を行うが、他の情報を併せて用いてもよい。
図9は、RTO加算係数テーブルの一例を示す図である。ここでは、ハードウェア情報とOS情報の異なる組み合わせそれぞれに対して加算係数αが設定されている。RTO加算係数テーブルを参照することによりRTO加算係数は導出される。しかし、最終的に各々のクライアント装置103にとって適切なRTO加算値を得られるのであれば、他の算出方法を使用しても良い。例えば、機種、OSごとのスループットを測り、その統計を基にRTO加算値を算出する、といった動的な方法であっても良い。なお、ハードウェア情報とOS情報の一方のみに対して加算係数αを関連付けたRTO加算係数テーブルを用いてもよい。
ここでは、ダウンロード管理処理部302は、図9のRTO加算係数テーブルからクライアント装置103との通信に対するRTO加算係数を算出する。図9に示されるように、RTO加算係数テーブルは、ハードウェア情報とOS情報の組み合わせに対してRTO加算係数を一意に指定するハッシュテーブルである。このRTO加算係数テーブルは、静的に設定されていても良いし、あとからサーバ装置管理者が動的に設定可能に構成しても良い。また、「ハードウェア情報」及び「OS情報」両方を用いる代わりに、一方のみでRTO加算係数を算出するよう構成しても良い。
S404では、ダウンロード管理処理部302は、算出したRTO加算係数を、HTTPセッションに結び付けられたTCPコネクションのパラメータとしてセットする。
図5は、RTOタイマー算出処理のフローチャートである。RTOタイマー算出処理は、TCP管理処理部304が実行するRTOタイマー値の設定処理(変更処理)である。なお、以下の説明はサーバ装置で実行される動作を示している。
S501では、TCP管理処理部304は、TCPコネクションに対してRTO加算係数がセットされているか確認する。RTO加算係数がセットされていなければS502に進み、セットされていればS503に進む。
S502では、TCP管理処理部304は、RTOタイマーに通常のタイムアウト値をセットする。すなわち、一般的なTCPのRTOタイマーのタイムアウト値を算出する。実際の算出値はOSによって異なる場合があるが、一般的にはA+4Dがセットされる。
S503では、TCP管理処理部304は、ダウンロード管理処理部302が設定したRTO加算係数を考慮したタイムアウト値を算出する。具体的には、タイムアウト値は実際のアプリケーションとネットワーク網等に依存した値になる。例として、RTOタイマー値の一般的な算出方法はA+4Dであることをふまえ、A+4D(1+α)と算出することができる。ここでαは算出したRTO加算係数である。このような算出を行うことで、クライアント装置103のハードウェア情報およびOS情報に依存して、RTOタイマーを延長することができる。
もちろん、具体的な算出方法はこれに限定されず、例えばクライアント装置103の接続方式を基に、遅延が発生しやすいかどうかを判定に加えても良い。例えば、クライアント装置103が有線で接続されていると検出出来る場合には、突発的な遅延が発生しないと見なし、RTOタイマーの加算を行わないといった処理を加えても良い。
その後、TCP管理処理部304はRTOタイマー算出処理を終了する。上述の処理により、TCP管理処理部304は、RTOタイマー算出処理でセットされたタイムアウト値を用いて再送制御を行うことになる。すなわち、通信相手であるクライアント装置103のハードウェア情報とOS情報を考慮した再送制御を行うことになる。なお、RTOタイマー以外の具体的な再送制御については一般的なTCPにおける再送制御と同等であるため説明は省略する。
なお、上述の説明ではRTOタイマーのみを修正する形態について説明したが、同様の効果のある別のパラメータの修正を行っても構わない。例えば、輻輳回避アルゴリズム内で、輻輳回避の制御を修正しても良い。具体的には、輻輳回避アルゴリズムにおいて、ハードウェア情報とOS情報に基づいて突発的な遅延が発生すると推定される場合、推定遅延時間を延長するといった修正を行っても良い。
以上説明したとおり第1実施形態によれば、通信相手のハードウェア情報とOS情報を考慮して、RTOタイマー値を制御する。これにより、通信相手のハードウェア情報とOS情報を考慮した再送制御を行うことが可能となり、TCP通信のスループットを改善することが可能となる。
(第2実施形態)
第2実施形態では、TCPオプションを使用してハードウェア情報およびOS情報を送信する形態について説明する。すなわち、HTTPヘッダの代わりにTCPオプションを使用する点が第1実施形態と異なる。なお、通信システムの構成やハードウェア構成は第1実施形態と同様であるため説明は省略する。
第2実施形態では、TCPオプションを使用してハードウェア情報およびOS情報を送信する形態について説明する。すなわち、HTTPヘッダの代わりにTCPオプションを使用する点が第1実施形態と異なる。なお、通信システムの構成やハードウェア構成は第1実施形態と同様であるため説明は省略する。
<装置の動作>
図6は、Synパケット解析処理のフローチャートである。具体的には、サーバ装置101がクライアント装置103からTCPのSynパケットを受信した際の処理である。なお、以下の説明はサーバ装置で実行される動作を示している。なお、SynパケットとはTCPコネクションを確立する際に送信するパケットであり、TCPヘッダの制御フラグ内のSynフィールドがセットされたパケットのことを指す。
図6は、Synパケット解析処理のフローチャートである。具体的には、サーバ装置101がクライアント装置103からTCPのSynパケットを受信した際の処理である。なお、以下の説明はサーバ装置で実行される動作を示している。なお、SynパケットとはTCPコネクションを確立する際に送信するパケットであり、TCPヘッダの制御フラグ内のSynフィールドがセットされたパケットのことを指す。
まず、クライアント装置103は、TCPヘッダのオプション領域にハードウェア情報およびOS情報を含める(埋め込む)こととなる。この際、オプション番号を0から255の値で決定する必要があるが、IANA(Internet Assigned Numbers Authority)により付番されていない番号を選択する。
S601では、TCP管理処理部304は、クライアント装置103からSynパケットを受信する。なお、この時点でIPレイヤに関する情報、例えば送信元、送信先IPアドレス等はすでに解析されているものとする。
S602では、TCP管理処理部304は、Synパケット内にハードウェア情報およびOS情報を含まれているかどうか判定する。含まれていない場合、RTO調整用Synパケット解析処理を終了する。一方で、ハードウェア情報およびOS情報が含まれている場合はS603に進む。
S603では、TCP管理処理部304は、RTOタイマーの加算係数を算出する。この処理はS403と同等である。つまり、HTTPレイヤ(ダウンロード管理処理部302)ではなくTCPレイヤ(TCP管理処理部304)で実行する点が第1実施形態と異なる。
S604では、TCP管理処理部304は、算出したRTO加算係数を、TCPコネクションのパラメータとしてセットする。なお、実際のRTOタイマー算出処理については第1実施形態(図5)と同様であるため説明は省略する。
以上説明したとおり第2実施形態によれば、第1実施形態と同様に通信相手のハードウェア情報とOS情報を考慮してRTOタイマー値を制御する。また、ハードウェア情報とOS情報をTCPのオプション領域内に含めることで、TCPレイヤのみでRTOタイマーの設定を行うことができる。
(第3実施形態)
第3実施形態では、複数のHTTPセッションを複数利用するマルチHTTPセッション通信を利用する形態について説明する。すなわち、単一のHTTPセッションのかわりにマルチHTTPセッションを使用する点が第1実施形態と異なる。なお、通信システムの構成やハードウェア構成は第1実施形態と同様であるため説明は省略する。
第3実施形態では、複数のHTTPセッションを複数利用するマルチHTTPセッション通信を利用する形態について説明する。すなわち、単一のHTTPセッションのかわりにマルチHTTPセッションを使用する点が第1実施形態と異なる。なお、通信システムの構成やハードウェア構成は第1実施形態と同様であるため説明は省略する。
マルチHTTPセッション通信とは、ひとつのコンテンツに対し、同時に複数のHTTPセッションを使用して、ダウンロードを行う通信方法である。この方法はOSによるTCPの実装方法に関係なく、スループットの向上を期待できることから、一般的に広く使用されている。具体的には、クライアント装置103がHTTPリクエストにRangeヘッダを使用することでダウンロード対象のコンテンツを分割してダウンロードを行う。HTTPセッション数に応じてRangeヘッダの範囲を決定し、それぞれのHTTPセッションがダウンロード量を分担することで実現する。
IEEE802.11に基づいて無線通信を行う際、クライアント装置103は、必ずしも無線ルータ102の発信に応答する必要はない。これは省電力モードと呼ばれており、クライアント装置103の無線送受信デバイスに常に通電しなくても良いようにする工夫である。クライアント装置103と無線ルータ102の間で突発的な遅延が発生するのは、この省電力モードが大きく関わっていると考えられる。クライアント装置103は数百ミリ秒の間、無線ルータ102から受信を行わない場合、省電力モードに入ってしまい、復帰するまでにはさらに数百ミリ秒必要となる。
マルチHTTPセッション通信を行えば、TCPのフロー制御に大きく依存することなく、サーバ装置101と頻繁なパケットの送受信を行うことができる。頻繁な送受信によって、クライアント装置103は省電力モードに入りにくくなる。そのため、マルチHTTPセッション通信は、省電力化が行われている移動体端末においてもスループット向上の効果が期待できる。
一方で、RTOタイマー値を大きくすると、真のパケット損失の検出が遅延することになる。そのため、特に理由がなければ、出来るだけ小さくすべき値である。
<装置の動作>
図7は、HTTPセッション数を考慮したHTTPリクエスト解析処理のフローチャートである。HTTPリクエスト解析処理は、サーバ装置101がクライアント装置103からHTTPリクエストを受け取った際の処理である。なお、以下の説明はサーバ装置で実行される動作を示している。
図7は、HTTPセッション数を考慮したHTTPリクエスト解析処理のフローチャートである。HTTPリクエスト解析処理は、サーバ装置101がクライアント装置103からHTTPリクエストを受け取った際の処理である。なお、以下の説明はサーバ装置で実行される動作を示している。
S701では、ダウンロード管理処理部302は、クライアント装置103からHTTPリクエストを受信する。S702では、ダウンロード管理処理部302は、HTTPリクエストに含まれるHTTPヘッダ内に、クライアント装置103のハードウェア情報、およびOS情報が含まれるかどうかを確認する。
ダウンロード管理処理部302は、S702において、受信したHTTPリクエスト内にハードウェア情報およびOS情報が含まれないと判定した場合、RTO調整用HTTPリクエスト解析処理を終了する。その場合、ダウンロード管理処理部302は、その後、一般的なHTTPのリクエスト処理を行う。
一方、ダウンロード管理処理部302は、S702において、受信したHTTPリクエスト内にハードウェア情報およびOS情報が含まれると判定した場合、RTO加算係数算出処理(S703)に遷移する。
S703では、ダウンロード管理処理部302は、HTTPリクエスト内に含まれるハードウェア情報やOS情報から、無線環境下での突発的な遅延量を想定し、RTO加算値を決定する。S704では、ダウンロード管理処理部302は、算出したRTO加算係数を、HTTPセッションに結び付けられたTCPコネクションのパラメータとしてセットする。なお、S703、S704は、第1実施形態(S403,S404)と同様の処理であるため詳細な説明は省略する。
S705では、ダウンロード管理処理部302は、HTTPリクエストがHTTPセッション数を含むかどうかを確認する。ここで、HTTPセッション数はマルチHTTPセッション通信で使用されるHTTPセッションの数を示す。このHTTPセッション数はHTTPリクエスト内のどこかに記述されているものとする。ここではHTTPリクエストのUserAgentヘッダに、HTTPセッション数の情報を付与するものとする。もちろん、UserAgentヘッダ以外にも独自ヘッダ内に記述したり、HTTPボディ部に記述しても良い。なお便宜上、マルチHTTPセッション通信を行わない場合、HTTPセッション数として”1”が設定されるものとする。
ここで、ダウンロード管理処理部302は、HTTPリクエスト内にHTTPセッション数の情報が含まれていない場合、RTO調整用HTTPリクエスト解析処理を終了する。一方で、ダウンロード管理処理部302は、HTTPリクエスト内にHTTPセッション数の情報が含まれている場合はS706に進む。
S706では、ダウンロード管理処理部302は、取得したHTTPセッション数を、RTO算出用HTTPセッション数として該当するTCPコネクションに設定する。設定後、ダウンロード管理処理部302は、RTO調整用HTTPリクエスト解析処理を終了する。
図8は、HTTPセッション数を考慮したRTOタイマー算出処理のフローチャートである。RTOタイマー算出処理は、TCP管理処理部304が実行するRTOタイマーの設定処理である。なお、以下の説明はサーバ装置で実行される動作を示している。
S801では、TCP管理処理部304は、TCPコネクションにRTO加算係数が設定されているか確認する。RTO加算係数がセットされていなければS802に進み、セットされていればS803に進む。
S802では、TCP管理処理部304は、RTOタイマーに通常のタイムアウト値をセットする。その後、RTOタイマー算出処理を終了する。なお、通常のタイムアウト値の算出方法については第1実施形態(S502)と同様であるため説明は省略する。
S803では、TCP管理処理部304は、RTO算出用HTTPセッションの数が2以上であるか否かを判定する。すなわちマルチHTTPセッション通信であるか否かを判定する。マルチHTTPセッション通信で無い場合はS804に進み、マルチHTTPセッション通信である場合はS805に進む。
S804では、TCP管理処理部304は、ダウンロード管理処理部302が設定したRTO加算係数を考慮したタイムアウト値を算出する。なお、具体的な算出方法については第1実施形態(S503)と同様であるため説明は省略する。
S805では、TCP管理処理部304は、RTO加算係数と、RTO算出用HTTPセッション数考慮したタイムアウト値を算出する。上述の第1実施形態では、A+4D(1+α)といった算出方法を示した。ここでは、更に、マルチHTTPセッション数に応じてタイムアウト値を制御する。すなわち、セッション数が多くなるほど、クライアント装置103が省電力機能を実現するための省電力モードに入らず、RTOタイマーのタイムアウト値の加算が必要ないと予想できるからである。
図10は、HTTPセッション数による減衰係数テーブルの一例を示す図である。ここでは、図10のテーブルを用いることによって、RTO算出用HTTPセッション数から減衰係数βを求める。そして、TCP管理処理部304はA+4D(1+αβ)といったタイムアウト値をS805でセットする。その結果、セッション数が増加するにつれて、RTOタイマーのタイムアウト値の加算を徐々に減らすことが出来る。ここでは、テーブルによる減衰係数βを求めたが、マルチHTTPセッション数が多くなるほど、最終的なRTOタイマのタイムアウト値が通常の状態に近づくような構成であれば、どのような算出法でも構わない。
以上説明したとおり第3実施形態によれば、第1実施形態と同様に通信相手のハードウェア情報とOS情報を考慮してRTOタイマー値を制御する。また、マルチHTTPセッション数を併せて考慮することで、不要なRTOタイマーの延長を防ぐことが出来る。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
302 ダウンロード管理処理部; 303 SSL/TLS管理処理部; 304 TCP管理処理部
Claims (10)
- 外部通信装置との間でTCPコネクションを確立して通信する通信手段と、
前記TCPコネクションを確立する際に、前記外部通信装置から該外部通信装置の機器情報を受信する受信手段と、
前記受信した前記外部通信装置の機器情報に基づいて、前記TCPコネクションの再送タイムアウト(RTO)タイマー値を変更するよう制御する制御手段と、
を有することを特徴とする通信装置。 - 前記機器情報は、前記TCPコネクションを介して送信されたHTTPリクエスト内に含められている
ことを特徴とする請求項1に記載の通信装置。 - 前記HTTPリクエスト内にはHTTPセッション数の情報が更に含められており、
前記制御手段は、前記受信したHTTPセッション数の情報に基づいて、前記TCPコネクションのRTOタイマー値を更に変更するよう制御する
ことを特徴とする請求項2に記載の通信装置。 - 前記機器情報は、前記TCPコネクションを介して送信されたSynパケット内に含められている
ことを特徴とする請求項1に記載の通信装置。 - 前記機器情報は、前記外部通信装置のハードウェア構成を特定する第1の情報及び前記外部通信装置のソフトウェア構成を特定する第2の情報の少なくとも一方を含む
ことを特徴とする請求項1乃至4の何れか1項に記載の通信装置。 - ハードウェア構成及びソフトウェア構成の少なくとも一方と関連付けられた加算係数テーブルを記憶する記憶手段を更に含み、
前記制御手段は、前記第1の情報及び前記第2の情報の少なくとも一方と、前記加算係数テーブルと、に基づいて、前記TCPコネクションのRTOタイマー値を変更する
ことを特徴とする請求項5に記載の通信装置。 - 外部通信装置との間でTCPコネクションを確立して通信する通信装置の制御方法であって、
前記TCPコネクションを確立する際に、前記外部通信装置から該外部通信装置の機器情報を受信する受信工程と、
前記受信した前記外部通信装置の機器情報に基づいて、前記TCPコネクションの再送タイムアウト(RTO)タイマー値を変更するよう制御する制御工程と、
前記変更されたRTOタイマー値に基づいて、前記TCPコネクションを介した通信を実行する通信工程と、
を含むことを特徴とする通信装置の制御方法。 - 第1の通信装置と第2の通信装置とを含む通信システムであって、
前記第1の通信装置は、
前記第2の通信装置との間でTCPコネクションを確立して通信する第1の通信手段と、
前記TCPコネクションを確立する際に、前記第1の通信装置の機器情報を前記第2の通信装置に送信する送信手段と、
を有し、
前記第2の通信装置は、
前記第1の通信装置との間でTCPコネクションを確立して通信する第2の通信手段と、
前記TCPコネクションを確立する際に、前記第1の通信装置から該第1の通信装置の機器情報を受信する受信手段と、
前記受信した前記第1の通信装置の機器情報に基づいて、前記TCPコネクションの再送タイムアウト(RTO)タイマー値を変更するよう制御する制御手段と、
を有する
ことを特徴とする通信システム。 - 前記第1の通信手段は省電力機能を備えている
ことを特徴とする請求項8に記載の通信システム。 - コンピュータを、請求項1乃至6の何れか一項に記載の通信装置の各手段として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014140867A JP2016019156A (ja) | 2014-07-08 | 2014-07-08 | 通信装置およびその制御方法 |
US14/789,277 US10015288B2 (en) | 2014-07-08 | 2015-07-01 | Communication apparatus and control method of communication apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014140867A JP2016019156A (ja) | 2014-07-08 | 2014-07-08 | 通信装置およびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016019156A true JP2016019156A (ja) | 2016-02-01 |
Family
ID=55068476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014140867A Pending JP2016019156A (ja) | 2014-07-08 | 2014-07-08 | 通信装置およびその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10015288B2 (ja) |
JP (1) | JP2016019156A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493307A (zh) * | 2016-06-12 | 2017-12-19 | 创盛视联数码科技(北京)有限公司 | 一种http请求超时管理方法及装置 |
CN111405007B (zh) * | 2020-03-06 | 2022-10-21 | Oppo广东移动通信有限公司 | Tcp会话管理方法、装置、存储介质及电子设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6611495B1 (en) * | 1999-02-22 | 2003-08-26 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for improved data transfer in packet-switched communication networks |
US20070008884A1 (en) * | 2003-10-08 | 2007-01-11 | Bob Tang | Immediate ready implementation of virtually congestion free guarantedd service capable network |
JP2006005833A (ja) | 2004-06-21 | 2006-01-05 | Kyocera Corp | データ通信装置、データ通信方法、データ通信プログラムおよび記録媒体 |
US20060059256A1 (en) * | 2004-09-10 | 2006-03-16 | Nokia Corporation | Signaling a state of a transmission link via a transport control protocol |
JP4711696B2 (ja) * | 2005-02-17 | 2011-06-29 | 株式会社エヌ・ティ・ティ・ドコモ | データ通信管理システム、移動体端末および移動体端末制御プログラム |
JP5163910B2 (ja) * | 2007-06-15 | 2013-03-13 | 日本電気株式会社 | アドレス変換装置及びアドレス変換方法 |
US8000313B1 (en) * | 2008-08-15 | 2011-08-16 | Sprint Spectrum L.P. | Method and system for reducing communication session establishment latency |
JP4809416B2 (ja) * | 2008-10-28 | 2011-11-09 | 富士通株式会社 | パケットキャプチャ装置 |
US8515415B2 (en) * | 2010-02-22 | 2013-08-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Handling radio link failure in a radio communications network |
US8583053B1 (en) * | 2012-06-20 | 2013-11-12 | Google Inc. | Optimizing TCP traffic for mobile devices using TCP backoff thresholds |
US10404562B2 (en) * | 2012-10-22 | 2019-09-03 | Texas State University | Optimization of retransmission timeout boundary |
US9042935B2 (en) * | 2013-06-21 | 2015-05-26 | Microsoft Technology Licensing, Llc | Radio channel communication |
WO2015077586A1 (en) * | 2013-11-21 | 2015-05-28 | AppNexus Inc. | Methods and methods apparatus for statistical mobile device identification |
JP6289092B2 (ja) | 2013-12-26 | 2018-03-07 | キヤノン株式会社 | 情報処理装置、その制御方法およびコンピュータプログラム |
-
2014
- 2014-07-08 JP JP2014140867A patent/JP2016019156A/ja active Pending
-
2015
- 2015-07-01 US US14/789,277 patent/US10015288B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US10015288B2 (en) | 2018-07-03 |
US20160014239A1 (en) | 2016-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9641650B2 (en) | TCP proxy server | |
EP3255847B1 (en) | Transmission control protocol data packet transmission method, transmission device and system | |
US11477130B2 (en) | Transmission control method and apparatus | |
JP6236933B2 (ja) | 中継装置 | |
EP2741463B1 (en) | Data packet transmission method | |
JP5651805B2 (ja) | 通信装置 | |
EP2930899A1 (en) | Tcp link configuration method, apparatus and device | |
EP3161653B1 (en) | Dynamic disabling of multi-step transport layer handshake spoofing in performance enhancing proxies (peps) in broadband networks | |
US11956099B2 (en) | Multi-part TCP connection over VPN | |
JP6444988B2 (ja) | Httpを利用する通信システム | |
CN104683259A (zh) | Tcp拥塞控制方法及装置 | |
JP2017118545A5 (ja) | ||
JP3999785B2 (ja) | 通信方法 | |
JP6613742B2 (ja) | 負荷変動およびパケット伝送損失があるlfn伝送路で高信頼通信を行うためのデータ通信制御方法 | |
US11700321B2 (en) | Transparent proxy conversion of transmission control protocol (TCP) fast open connection | |
US11349934B2 (en) | Opportunistic transmission control protocol (TCP) connection establishment | |
EP3319297B1 (en) | Network interface device and host processing device | |
US9261948B2 (en) | Image forming apparatus and control method for executing a proxy in response to a heartbeat | |
JP2016019156A (ja) | 通信装置およびその制御方法 | |
WO2015107806A1 (ja) | 通信装置 | |
JP4627290B2 (ja) | Tcpを用いたレート制御方法、サーバ及びプログラム | |
JP2006148727A (ja) | アプリケーションモニタ装置 | |
JP2006005833A (ja) | データ通信装置、データ通信方法、データ通信プログラムおよび記録媒体 | |
EP3619854B1 (en) | Elimination of latency in a communication channel | |
Hiorth | TCP-in-UDP: Enabling gradually deployable TCP coupled congestion control using an efficient UDP encapsulation |