説明

送受信装置および受信方法、ならびに通信システム及び通信方法

【課題】 上りリンクの帯域と下りリンクの帯域が非対称であるネットワークを通じ、中継装置に接続された複数の送受信装置間のTCP通信において、上りTCPフロー間のスループットの不公平性を改善できる送受信装置を提供する。
【解決手段】 送受信装置は、パケット送信の優先制御機能を備えた中継装置に接続され、中継装置に接続される他の複数の送受信装置からデータパケットを受信する。送受信装置は、送受信装置とその通信相手との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定部306と、推定されたウインドウサイズに応じて、受信したデータパケットに対するACKパケットに優先度を付加する優先度付加部307を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無線LANなどの上りリンクの帯域と下りリンクの帯域が非対称であるネットワークを通じ、複数の送受信装置が接続される中継装置を介し、他の複数の送受信装置とTCP通信を行う送受信装置および当該送受信装置における受信方法、ならびに送受信装置と中継装置とを含む通信システムおよび当該通信システムにおける通信方法に関する。
【背景技術】
【0002】
近年、無線ネットワーク技術の向上に伴い、無線LANを用いたインターネットアクセスが急速に普及し、今後も拡大し続けると思われる。インターネットにおいては、多様なネットワーク環境において信頼性のある通信を実現するトランスポートプロトコルであるTCP(Transmission Control Protocol)が標準的に用いられている。しかし、無線LANなどの上りリンクの帯域と下りリンクの帯域が非対称なネットワークにおけるTCP通信の問題が指摘されている。
【0003】
その問題は、TCPフロー間のスループットに不公平性が生じることである。空港や駅などの公共の施設において無線LANを用いたサービスを提供する場合、ユーザ間の公平性が重要となるため、その問題は無視できない。以下、無線LANを用いた無線ネットワークを例として説明する。
【0004】
一般的な無線LANの通信方式であるインフラストラクチャモードの無線LANを用いた無線ネットワークを考える。インフラストラクチャモードでは、中継装置であるアクセスポイントに送受信装置であるステーションが接続され、各ステーション間の通信はアクセスポイントを介して行われる。無線LANにおける通信は、ステーションからアクセスポイントへの通信である上りフローと、その逆向きの通信である下りフローから構成される。
【0005】
無線LANは、アクセス制御方式にCSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)と呼ばれるランダムアクセス方式を用いる。CSMA/CAは、フレーム送信の際に搬送波の検出のためにバックオフ時間だけ待ち、他に通信中の端末が存在しないことを確認することによって、フレームの衝突をできるだけ回避するものである。
【0006】
通常、無線LANを用いた無線ネットワークにおいては、アクセスポイントを含む全ての無線端末が同一のCSMA/CAのパラメータを用いる。そのため、各無線端末のアクセス機会、つまり各無線端末の帯域は均等になる。しかし、無線端末数をnとすると、ステーションからアクセスポイントへの上り方向のアクセス機会がn/(n+1)であるのに対し、アクセスポイントからステーションへの下り方向のアクセス機会が1/(n+1)となる不均等が生じる。ゆえに、無線LANでは上りリンクと下りリンクの帯域が非対称になる。
【0007】
そのような上りリンクの帯域と下りリンクの帯域が非対称なネットワーク上のTCP通信においては、2種類のTCPフロー間の不公平性の問題がある。1つは、上下TCPフロー間の不公平性である。もう1つは、上りTCPフロー間の不公平性である。
【0008】
上りリンクと下りリンクの帯域が非対称であることから、無線LANにおいてはアクセスポイントがボトルネックとなり輻輳が発生する。輻輳が発生すると、アクセスポイント上で上りTCPフローのACKパケットおよび下りTCPフローのデータパケットが廃棄される。TCPは、データパケットが損失すると輻輳制御によりウインドウサイズを減少する。しかし、ACKパケットが損失した場合は輻輳制御が行われない。
【0009】
そのため、上りTCPフローはACKパケットの廃棄に対して輻輳制御を行わないが、下りTCPフローはデータパケットが廃棄されるため輻輳制御によりレートを下げる。ゆえに、上りTCPフローのスループットが下りTCPフローのスループットより大きくなる上下TCPフロー間の不公平性が生じる。
【0010】
さらに、上下TCPフロー間だけでなく上りフロー間においても不公平性が生じる。アクセスポイント上で輻輳が発生すると、上りTCPフローのACKパケットが廃棄される。ACKパケットが損失した場合は輻輳制御が行われないため、データパケット損失、またはタイムアウトが発生しない限り上りTCPフローはウインドウサイズを増加し続ける。
【0011】
TCPは、タイムアウトが発生するとウインドウサイズを最小値である1に減少し、再びウインドウサイズを増加する。複数の上りTCPフローが存在する状態である上りTCPフローにおいてタイムアウトが発生したとする。このとき、アクセスポイントの輻輳が改善されておらずACKパケットの廃棄が引き続き発生する場合、ウインドウサイズが小さいTCPフローほどウインドウ内の全てのACKパケットが廃棄されやすくなる。そのため、タイムアウトが発生してウインドウサイズが1となった上りTCPフローは、ウインドウサイズを増加することが困難となる。
【0012】
TCPは、ACKパケットの損失に対して輻輳制御を行わないが、それは累積確認応答によってウインドウ内の少なくとも1つのACKパケットを受信できればデータパケットが正しく受信されたことを確認できるためである。そのため、ウインドウサイズが大きいTCPフローはACKパケットの損失の影響を受けにくい。ゆえに、上りTCPフロー間でもスループットの大きいフローと極端に小さいフローが存在する不公平性が生じる。
【0013】
なお、上りTCPフロー間の不公平性は、ウインドウサイズが大きい上りTCPフローが存在する状態で、新たな上りTCPフローの通信が開始された場合にも同様に生じる。
【0014】
上記のTCPフロー間のスループットの不公平性を改善する方法として、様々な技術が提案されている。特許文献1は、アクセスポイントの無線LANインタフェースの送信バッファを監視し、入出力レートやバッファ遅延などを指標としたバッファの使用状態に応じて上りTCPフローのデータパケットを確率的に廃棄する。データパケットの廃棄により送信側TCPの輻輳制御を誘発してアクセスポイント上の輻輳を改善することで、不公平性を改善する。
【0015】
非特許文献1は、特許文献1と同様に、アクセスポイントの無線LANインタフェースの送信バッファ上のACKパケットを監視する。ACKパケットの数が多いTCPフローをウインドウサイズが大きいフローとみなし、そのTCPフローのACKパケットを廃棄するACKプッシュアウトを行い、TCPフローがACKパケットの送信のために使用できる帯域を公平にすることで、不公平性を改善する。
【0016】
上記の特許文献1および非特許文献1の他に関連する技術文献として、特許文献2および非特許文献2がある。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】特開2009−278256号公報
【特許文献2】特開2006−13920号公報
【非特許文献】
【0018】
【非特許文献1】飯島裕人, 塩田茂雄, 阪田史郎, 平野由美, 村瀬勉, “ACKプッシュアウトによるACKボトルネック時のTCPフロー間の不公平性の解消”, 2009年電子情報通信学会総合大会, B-7-67, Mar. 2009.
【非特許文献2】長谷川剛, 村田正幸, “無線ネットワーク環境に適したトランスポート層プロトコル”, 電子情報通信学会技術研究報告 CQ2009-20, vol.109, pp.29-34, July 2009.
【発明の概要】
【発明が解決しようとする課題】
【0019】
上記の特許文献1および非特許文献1のような従来技術には課題がある。このような従来技術では、アクセスポイントなどの中継装置において、送信バッファ上のパケットのヘッダ情報を参照し、コネクション情報の管理やパケットのキャッシュ処理などを行う。そのため、中継装置が必要とするメモリやCPU資源が増加し、実装コストがかかる。
【0020】
また、従来技術の実現には、アクセスポイントなどの中継装置を改変する必要がある。アクセスポイントなどの中継装置は、市販されているものを用いることが一般的であるので、改変を伴う従来技術の実現は困難である。
【0021】
さらに、TCP通信を行う送受信装置において、IPSecなどのVPN(Virtual Private Network)技術によりパケットの暗号化が行われる場合、アクセスポイントなどの中継装置ではTCPヘッダを参照することができないため、従来技術を適用することができない。
【0022】
本発明は、上記のような課題に鑑みてなされたものであり、無線LANのアクセスポイントのような中継装置を改変することなく、複数の送受信装置の中継装置を介したTCP通信において、TCPフロー間のスループットの不公平性を改善できる送受信装置および当該送受信装置における受信方法、ならびにそのような送受信装置および受信方法を含む通信システムおよび通信方法を提供することを目的とする。
【課題を解決するための手段】
【0023】
本発明の送受信装置は、上りリンクの帯域と下りリンクの帯域が非対称なネットワークを通じ、パケット送信の優先制御機能を備えた中継装置を介し、前記中継装置に接続される他の複数の送受信装置とTCP通信を行う送受信装置であって、前記送受信装置とその通信相手との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定部と、前記ウインドウサイズ推定部にて推定されたウインドウサイズに応じて、前記送受信装置の通信相手から受信したTCPフローのデータパケットに対するACKパケットに優先度を付加する優先度付加部を備える。前記中継装置は、パケット送信の優先制御機能を備え、前記送受信装置から送信されたACKパケットに付加された優先度に応じて、優先度の高いACKパケットをより優先して送信する構成を有する。
【0024】
また、本発明の別の態様は、上りリンクの帯域と下りリンクの帯域が非対称なネットワークを通じ、パケット送信の優先制御機能を備えた中継装置を介し、前記中継装置に接続される他の複数の送受信装置とTCP通信を行う送受信装置における受信方法であって、この受信方法は、前記送受信装置とその通信相手との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定ステップと、前記ウインドウサイズ推定ステップにて推定されたウインドウサイズに応じて、前記送受信装置の通信相手から受信したTCPフローのデータパケットに対するACKパケットに優先度を付加する優先度付加ステップを含む。
【0025】
また、本発明の別の態様は、通信システムであって、この通信システムは、パケット送信の優先制御機能を備えた中継装置と、前記中継装置に接続される複数の送受信装置間でTCP通信を行う送受信装置とを含む。前記送受信装置は、前記送受信装置とその通信相手との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定部と、前記ウインドウサイズ推定部にて推定されたウインドウサイズに応じて、前記送受信装置の通信相手から受信したTCPフローのデータパケットに対するACKパケットに優先度を付加する優先度付加部を備える。前記中継装置は、パケット送信の優先制御機能を備え、前記送受信装置から送信されたACKパケットに付加された優先度に応じて、優先度の高いACKパケットをより優先して送信する構成を有する。
【0026】
また、本発明の別の態様は、パケット送信の優先制御機能を備えた中継装置と、前記中継装置に接続される複数の送受信装置間でTCP通信を行う送受信装置とを含む通信システムにおける通信方法であって、この通信方法は、前記送受信装置とその通信相手との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定ステップと、前記ウインドウサイズ推定ステップにて推定されたウインドウサイズに応じて、前記送受信装置の通信相手から受信したTCPフローのデータパケットに対するACKパケットに優先度を付加する優先度付加ステップを含む。
【発明の効果】
【0027】
本発明によれば、上りTCPフロー間のスループットの不公平性を改善することができる。その理由は、TCPフローのデータパケットに対する確認応答であるACKパケットにウインドウサイズに応じた優先度を付加することにより、ウインドウサイズが小さい上りTCPフローがウインドウサイズを増加することが可能となるためである。ウインドウサイズが小さいTCPフローのACKパケットにウインドウサイズが大きいTCPフローのACKパケットより高い優先度を付加することで、中継装置の優先制御機能により優先的に送信されるため、アクセスポイントなどの中継装置で発生する輻輳によって廃棄されにくくなり、ウインドウサイズが大きい上りTCPフローが存在する状態でも、ウインドウサイズが小さい上りTCPフローはウインドウサイズを増加することができる。また、ウインドウサイズに応じて優先度を付加するため、特定のTCPフローに高い優先度を付加する場合と異なり、特定のTCPフローのウインドウサイズだけが大きくなる状態になることがない。また、本発明のために、少なくとも中継装置がパケット送信の優先制御機能を備えていればよい。さらに、中継装置ならびに送受信装置のTCP機能、TCPの輻輳制御方式の改変は必要でなく、送受信装置においてVPN技術によるパケットの暗号化などの処理を行っていてもよい。
【図面の簡単な説明】
【0028】
【図1】本発明の実施の形態における送受信装置の構成を示すブロック図
【図2】本発明の実施の形態における送受信装置および中継装置を含む通信システムの構成図
【図3】バッファ管理方式にFIFO方式を用いる送信バッファの例
【図4】本発明の実施の形態における送受信装置の受信方法を示すフローチャート
【図5】本発明の実施の形態における送受信装置のTCPフロー情報の管理テーブルの例
【図6】本発明の実施の形態におけるACKパケットの優先度とTCPの輻輳制御の関係を示す図
【図7】本発明の実施の形態における中継装置の構成例を示す図
【発明を実施するための形態】
【0029】
本発明の実施の形態を、図面を参照して詳細に説明する。
【0030】
本発明の実施の形態は、上りリンクの帯域と下りリンクの帯域が非対称なネットワーク上の中継装置に接続された送受信装置間のTCP通信において、送受信装置が受信したTCPフローのデータパケットに対するACKパケットにウインドウサイズに応じた優先度を付加することを特徴とする。以下の説明では、上りリンクの帯域と下りリンクの帯域が非対称なネットワークとして、アクセス制御方式にCSMA/CAを用いる無線LANによる無線ネットワークを例として説明するが、上りリンクの帯域と下りリンクの帯域が非対称なネットワークであればこれに限らない。他の例として、DSL(Digital Subscriber Line)や衛星通信を用いたネットワークなどが挙げられる。
【0031】
図1は、本実施の形態における送受信装置の構成を示すブロック図であり、図2は、送受信装置を含む通信システムの構成図である。まず、図2を参照して本実施の形態における通信システム100について説明する。通信システム100は、中継装置102であるアクセスポイントと、インフラストラクチャモードの無線LANを用いた無線ネットワーク104を介して中継装置102に接続する送受信装置101であるステーションと、インターネットなどの任意の外部ネットワーク105を介して中継装置102に接続する送受信装置(端末)103とを含む。送受信装置101および送受信装置103は、異なるネットワークに接続されているが、同様の送受信装置である。なお、図2では、複数の送受信装置101と1つの送受信装置103を示しているが、送受信装置101ならびに送受信装置103はどちらも複数存在してよい。
【0032】
本実施の形態では、送受信装置101は中継装置102と外部ネットワーク105を介して送受信装置103とTCP通信を行う。ここでは、送受信装置101は上りTCPフローの送信元となる。その場合、上りTCPフローのデータパケットが送受信装置101から無線ネットワーク104を介して中継装置102に送信され、中継装置102により外部ネットワーク105を介して通信相手である送受信装置103に送信される。データパケットを受信した送受信装置103は、確認応答としてACKパケットを送受信装置101に送信する。送受信装置103から送信された上りTCPフローのACKパケットは、外部ネットワーク105を介して中継装置102に送信され、中継装置102により無線ネットワーク104を介して送受信装置101に送信される。
【0033】
一方、送受信装置103は下りTCPフローの送信元となり、下りTCPフローのパケットの送信経路は上記と逆になる。送受信装置103から下りTCPフローのデータパケットが外部ネットワーク105を介して中継装置102に送信され、中継装置102により無線ネットワーク104を介して通信相手である送受信装置101に送信される。下りTCPフローのACKパケットは送受信装置101から無線ネットワーク104を介して中継装置102に送信され、中継装置102により外部ネットワーク105を介して送受信装置103に送信される。本実施の形態における中継装置102上の無線LANインタフェースの送信バッファは、上りTCPフローのACKパケットと下りTCPフローのデータパケットとで共有される。
【0034】
中継装置102における送信バッファのバッファ管理は、任意の方式を用いてもよい。図3は、バッファ管理方式にFIFO方式を用いる送信バッファの例である。FIFO方式を用いる送信バッファは、キューとして動作し、パケットを入力順に蓄積し、入力順に出力する。中継装置102がボトルネックとなり発生する輻輳などによりキューがパケットを蓄積できる許容量であるキュー長を超えるパケットの入力があり、バッファのオーバーフローが発生する場合には末尾廃棄方式で最後に入力されたパケットを廃棄する。
【0035】
本実施の形態では、送受信装置101の通信相手を中継装置102と外部ネットワーク105を介して接続する送受信装置103としたが、通信相手が同じ無線ネットワーク104上の他の送受信装置である場合は、中継装置102のみを経由してTCPフローのパケットが送信される。そのような場合においても本発明は適用可能である。
【0036】
本実施の形態における中継装置102は、パケット送信の優先制御機能を備える。パケット送信の優先制御機能として、無線LANを用いた無線ネットワークのQoS技術であるIEEE802.11e、WMM(WiFi MultiMedia)や、IPネットワークのQoS技術であるDiffServ(Differentiated Service)などが挙げられる。それらの技術においては、パケットのIPヘッダのTOS(Type Of Service)フィールドと呼ばれる領域に優先度に対応する値を書き込むことによりパケットに優先度を付加する。それらの技術を用いたパケット送信の優先制御機能を備える中継装置102は、受信したパケットのIPヘッダのTOSフィールドの値からパケットの優先度を判断し、優先度に基づきパケットの送信を行う。パケット送信の優先制御は、プライオリティキューイング方式などの任意の方式を用いてよい。
【0037】
図1は、本実施の形態における送受信装置101および送受信装置103の構成を示すブロック図である。送受信装置は、ネットワークインタフェース301と、TCP機能部304と、パケット識別部305と、ウインドウサイズ推定部306と、優先度付加部307とを備える。
【0038】
ネットワークインタフェース301は、任意のネットワークへの接続機能を有するインタフェースであり、ネットワークへパケットを送信するパケット送信部303と、ネットワークからパケットを受信するパケット受信部302とを備える。なお、送受信装置におけるVPN技術によるパケットの暗号化などの処理は、ネットワークインタフェース301が担う。
【0039】
TCP機能部304は、他の送受信装置とのTCP通信機能を担い、他の送受信装置へのデータパケットの送信や、他の送受信装置から受信したデータパケットに対する確認応答であるACKパケットの送信などの処理を、TCPの輻輳制御方式に従って行う。本実施の形態では、TCP機能部304の輻輳制御方式は任意の方式を用いてよい。
【0040】
パケット識別部305は、パケットのヘッダ情報を参照し、IPヘッダの送信元アドレス、宛先アドレス、およびTCPヘッダの送信元ポート番号、宛先ポート番号に基づきTCPフローを識別する。なお、TCPフローを識別できる情報であれば、上記以外の情報を用いて識別してもよい。
【0041】
ウインドウサイズ推定部306は、送受信装置が受信するTCPフローのウインドウサイズを推定する。ウインドウサイズの推定には、種々の既知の技術を用いることができる。
【0042】
優先度付加部307は、送受信装置が送信するACKパケットに対し、ウインドウサイズ推定部306が推定したTCPフローのウインドウサイズに応じた優先度を付加する。なお、ACKパケットへの優先度の付加は、中継装置102のパケット送信の優先制御機能に基づく方法で行う。
【0043】
図4のフローチャートを用いて、本実施の形態における送受信装置の動作を説明する。図4は、送受信装置がTCPフローのデータパケットを受信し、それに対するACKパケットを送信する場合の動作を示すフローチャートである。
【0044】
まず、送受信装置は、送受信装置上のネットワークインタフェース301のパケット受信部302を介し、他の送受信装置から送信されたデータパケットを受信する(S401)。
【0045】
次に、パケット識別部305において受信したデータパケットのヘッダ情報を参照し、送受信装置が受信するTCPフローを識別する(S402)。パケット識別部305は、識別したTCPフローの情報を図5のような管理テーブル上で管理する。図5のTCPフロー情報の管理テーブルの例では、TCPフロー情報を送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号の組によって管理している。なお、管理テーブル上のTCPフロー情報は、TCPコネクションの確立を要求するSYNパケットを受信した際に登録し、TCPコネクションの切断を要求するFINパケットないしはRSTパケットを受信した際に削除する。また、TCPフロー情報の登録、削除は、送受信装置のOS上のソケット機能が管理するコネクション情報を参照するなどして行ってもよい。
【0046】
次に、ウインドウサイズ推定部306において送受信装置が受信するTCPフローのウインドウサイズを推定する(S403)。ウインドウサイズは、特許文献2や非特許文献2などの既知の技術によって推定できる。特許文献2では、TCPコネクションを確立する3ウェイハンドシェイクの際にTCPフローの送信元である他の送受信装置との往復伝搬時間(RTT: Round Trip Time)を計測し、計測したRTT内に受信したデータパケットの数をウインドウサイズとして推定する。また、コネクション確立時だけでなく一定の時間間隔でICMPプロトコルによるpingコマンドを用いてRTTを計測することでその精度を向上させている。非特許文献2では、TCPのタイムスタンプオプションを指定することによりTCPフローのRTTを計測し、平滑化したRTTと1RTT内に受信したデータパケットのデータ量から求めた平均スループットを乗じたものをウインドウサイズとして推定する。
【0047】
ウインドウサイズ推定部306において推定したウインドウサイズは、管理テーブル上のTCPフロー情報と共に管理する。なお、推定ウインドウサイズの他に、RTTなどの情報も管理テーブル上で管理してもよい。図5の管理テーブルの例では、TCPフロー情報と共にTCPフローのRTTとウインドウサイズを管理している。
【0048】
次に、TCP機能部304は、任意のTCPの輻輳制御方式に従って、受信したデータパケットに対する確認応答であるACKパケットをデータパケットの送信元の送受信装置へ送信する(S404)。
【0049】
次に、パケット識別部305において上記のデータパケット受信の場合と同様に、TCP機能部304から送信されたACKパケットのヘッダ情報を参照し、TCPフローを識別する(S405)。
【0050】
次に、優先度付加部307において、ウインドウサイズ推定部306において推定したウインドウサイズに応じた優先度をTCP機能部304から送信されたACKパケットに付加し、ネットワークインタフェース301のパケット送信部303を介し、データパケットの送信元である送受信装置へACKパケットを送信する。
【0051】
優先度付加部307は、優先度の付加に関する所定の閾値を持つ。優先度の付加において優先度付加部307は、管理テーブル上のパケット識別部305において識別したTCPフロー情報と共に管理されるウインドウサイズ推定部306が推定したウインドウサイズを参照し、優先度付加部307が持つ前記所定の閾値と比較する(S406)。そして、推定されたウインドウサイズが前記所定の閾値以下のTCPフローのACKパケットに対し、推定されたウインドウサイズが前記所定の閾値より大きいTCPフローのACKパケットよりも高い優先度を付加する。
【0052】
本実施の形態では、優先度付加部307の前記所定の閾値は、TCPフローのスロースタート閾値である。推定ウインドウサイズがスロースタート閾値以下の場合はACKパケットに中継装置102のパケット送信の優先制御機能における最高優先度を付加し(S407)、推定ウインドウサイズがスロースタート閾値より大きい場合はACKパケットに優先度を付加せず、通常と同様の優先度とする(S408)。つまり、図6のように、TCPフローがスロースタートフェーズにあるときはACKパケットに最高優先度を付加し、輻輳回避フェーズにあるときは通常と同様の優先度として送信する。
【0053】
例えば、中継装置102であるアクセスポイントがIEEE802.11e、およびプライオリティキューイング方式によるパケット送信の優先制御機能を備える場合、優先度付加部307は、送受信装置が送信するACKパケットのIPヘッダのTOSフィールドの上位3ビットに、推定ウインドウサイズがスロースタート閾値以下ならば最高優先度であるAC_VO(111)を、推定ウインドウサイズがスロースタート閾値より大きいならば通常の優先度であるAC_BE(000)を書き込む。
【0054】
図7は、プライオリティキューイング方式によるパケット送信の優先制御を行う中継装置102の構成の例である。プライオリティキューイング方式では、中継装置102上にパケットに付加する優先度毎に対応するキューを持ち、入力されたパケットをパケットの優先度に基づき前記キュー毎に蓄積し、優先度の高いキュー上のパケットから順に送信することによりパケット送信の優先制御を実現する。図7のように、優先度付加部307によって最高優先度が付加された推定ウインドウサイズがスロースタート閾値以下のTCPフローのACKパケットは優先キューに、通常と同様の優先度である推定ウインドウサイズがスロースタート閾値より大きいTCPフローのACKパケットは通常のキューに蓄積され、優先キュー上のACKパケットが優先的に送信される。
【0055】
なお、本実施の形態における優先度付加部307は、TCPフローのスロースタート閾値を前記所定の閾値として、最高優先度と優先度なしの2段階の優先度を付加するが、優先度付加部307が持つ前記所定の閾値を複数設定し、2段階以上の優先度を付加してもよい。
【0056】
以上のように、本実施の形態の送受信装置において、TCPフローのデータパケットに対する確認応答であるACKパケットにウインドウサイズに応じた優先度を付加する動作を行うことにより、上りTCPフロー間のスループットの不公平性を改善することができる。その動作では、ウインドウサイズがスロースタート閾値以下のTCPフローのACKパケットに最高優先度を付加し、ウインドウサイズがスロースタート閾値より大きいTCPフローのACKパケットは通常と同様の優先度としてACKパケットを送信する。その動作の作用として、中継装置102のパケット送信の優先制御機能によって、最高優先度が付加されたウインドウサイズが小さいTCPフローのACKパケットが優先的に送信され、ウインドウサイズが小さいTCPフローのACKパケットが中継装置102で発生する輻輳によって廃棄されにくくなるため、ウインドウサイズが大きいTCPフローが存在する状態でもウインドウサイズが小さいTCPフローはウインドウサイズを増加することが可能となる。ゆえに、課題で示したような上りTCPフローの中に極端にスループットが低い上りTCPフローが発生することを抑制でき、上りTCPフロー間のスループットの公平性を実現できる。
【0057】
また、本実施の形態によれば、特定のTCPフローに対して高い優先度を付加する場合と異なり、ウインドウサイズに応じてACKパケットに付加する優先度を変化させることにより、ウインドウサイズが小さい場合にのみTCPフローのACKパケットが優先されるため、特定のTCPフローのスループットのみが高くなる状態を回避できる。
【0058】
本発明の実施の形態は上記に限られず、本発明の範囲内で種々の変形が可能である。以下、本発明の実施の形態の変形例を説明する。
【0059】
[第1の変形例]
上記の実施の形態では、TCPフローのウインドウサイズがスロースタート閾値以下の場合にのみACKパケットに高い優先度を付加し、ウインドウサイズがスロースタート閾値より大きい場合はACKパケットに優先度を付加せず、通常と同様の優先度とした。これに対し、第1の変形例では、ウインドウサイズがスロースタート閾値より大きいTCPフローに対しても対策を講じる。
【0060】
TCPでは、送信したデータパケットに対する確認応答であるACKパケットを再送タイムアウト内に受信することができない場合、タイムアウトが発生する。タイムアウトが発生すると、データパケットが損失したと判断してウインドウサイズを最小値である1に減少し、損失したパケットを再送する。タイムアウトの発生は、TCPフローのスループット特性を劣化させるため、ウインドウサイズが小さいTCPフローだけでなくウインドウサイズが大きいTCPフローにおいてもタイムアウトの発生を抑制できることが望ましい。そこで、第1の変形例では、優先度付加部307において、ウインドウサイズが大きいTCPフローに対し、ウインドウ内の少なくとも1つのACKパケットに高い優先度を付加することによりタイムアウトの発生を抑制する。
【0061】
ウインドウサイズが大きいTCPフローのACKパケットへの優先度の付加は、優先度付加部307においてACKパケットの送信時刻を記録しておき、先のACKパケットの送信時刻から間隔がウインドウサイズ推定部306において計測したRTT以上空いた場合に、当該ACKパケットをウインドウ内の最初のACKパケットであると判断し、高い優先度を付加するといった手段が考えられる。
【0062】
第1の変形例により、ウインドウサイズが大きいTCPフローのタイムアウトの発生を抑制でき、TCPフローのスループット特性が劣化する状態を回避できる。
【0063】
[第2の変形例]
TCPは、データパケットの損失をタイムアウトの他に、重複ACKによって検出する。重複ACKとは、TCPフローの送信元の端末において内容が重複するACKパケットを複数回受信することである。データパケットの損失が発生すると、TCPフローの宛先の端末は損失したデータパケットが再送されるまで、データパケットを受信する度に最後に受信できたデータパケットに対するACKパケットを送信する。重複ACKが発生すると、送信元の端末はウインドウサイズを減少し、損失したデータパケットを再送する。なお、重複ACKの発生に対する挙動は、TCPの輻輳制御方式によって異なる。第2の変形例では、そのような重複ACKを優先的に送信することで、送信元の端末において輻輳制御およびデータパケットの再送が速やかに行われるようにする。
【0064】
第2の変形例では、優先度付加部307においてACKパケットのシーケンス番号および確認応答番号を記録しておき、先のACKパケットと比較してシーケンス番号の増加が2以上もしくは確認応答番号が先のACKパケットと同じ場合に、ACKパケットが重複ACKパケットであると判断し、TCPフローのウインドウサイズの大きさに関わらず当該ACKパケットに高い優先度を付加する。
【0065】
第2の変形例により、データパケットの損失に対する重複ACKパケットが優先的に送信されるため、TCPフローの送信元の端末において輻輳制御およびデータパケットの再送が速やかに行われるようになる。
【0066】
[第3の変形例]
上記の実施の形態によれば、TCPフローのウインドウサイズに応じてACKパケットに付加する優先度を変化させることにより、上りTCPフロー間のスループットの不公平性を改善することができる。第3の変形例では、上りTCPフロー間だけでなく上下TCPフロー間の不公平性も改善する。
【0067】
上記の実施の形態では、中継装置102がボトルネックとなり発生する輻輳によって、上りTCPフローではACKパケットが廃棄されるのに対し、下りTCPフローではデータパケットが廃棄される。上下TCPフロー間の不公平性は、データパケットの損失に対してはウインドウサイズを減少するが、ACKパケットの損失に対してはウインドウサイズを減じないというTCPの輻輳制御に起因する。
【0068】
そこで、第3の変形例では、上記の実施の形態に非特許文献2に記載の方式を組み合わせ、TCPフローのACKパケットの損失に対しても輻輳制御を行うことで、上下TCPフロー間の不公平性を改善する。ACKパケットの損失に対する輻輳制御は、上記の実施の形態における上りTCPフローの送信元である送受信装置101において、上りTCPフローの宛先である送受信装置103から送信されたACKパケットのシーケンス番号を参照することで行う。
【0069】
送受信装置101は、受信したACKパケットのシーケンス番号を記録しておき、先のACKパケットと比較してシーケンス番号が1ずつ増加する場合はACKパケットの損失が発生していないと判断し、シーケンス番号の増加が2以上の場合はACKパケットの損失が発生したと判断する。なお、ACKパケットの損失数は、ACKパケットのシーケンス番号の増加幅から求められる。そして、1RTT内のACKパケットの損失数が所定の閾値以上ならば輻輳が発生していると判断し、輻輳制御を行いTCPフローのウインドウサイズを減少する。ACKパケットの損失に対する輻輳制御においては、例えば、ウインドウサイズをACKパケットの損失が発生した際の半分の値に減少する。
【0070】
第3の変形例により、ACKパケットの損失に対しても輻輳制御を行うことにより、中継装置102で発生する輻輳によってACKパケットが廃棄される場合に、TCPフローの送信元の端末においてACKパケットの損失に対する輻輳制御によって上りTCPフローのレートが下がるため、上下TCPフロー間のスループットの不公平性を改善することができる。また、第3の変形例においても、中継装置の改変は必要でない。
【産業上の利用可能性】
【0071】
以上のように、本発明は、無線LANなどの上りリンクの帯域と下りリンクの帯域とが非対称であるネットワークにおけるTCP通信に係るものであり、本発明によりTCPフローのウインドウサイズに応じた優先度がACKパケットに付加されることで、ウインドウサイズが小さいTCPフローのACKパケットがパケット送信の優先制御機能を備えた中継装置により優先的に送信されるため、上りTCPフロー間のスループットの不公平性が改善され、TCPフロー間の公平性を実現することができる。本発明は、市販の機器を用いた公衆無線LANなどのインターネットアクセスサービスを広く普及するためのものとして有用である。
【符号の説明】
【0072】
101 送受信装置
102 中継装置
103 送受信装置
104 無線ネットワーク
105 外部ネットワーク
301 ネットワークインタフェース
302 パケット受信部
303 パケット送信部
304 TCP機能部
305 パケット識別部
306 ウインドウサイズ推定部
307 優先度付加部

【特許請求の範囲】
【請求項1】
上りリンクの帯域と下りリンクの帯域が非対称なネットワークを通じ、パケット送信の優先制御機能を備えた中継装置を介し、前記中継装置に接続される他の複数の送受信装置とTCP通信を行う送受信装置であって、
該送受信装置とその通信相手となる他の送受信装置との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定部と、
前記ウインドウサイズ推定部にて推定されたウインドウサイズに応じて、前記通信相手となる他の送受信装置から受信したTCPフローのデータパケットに対するACKパケットに優先度を付加する優先度付加部と、
を備えたことを特徴とする送受信装置。
【請求項2】
前記優先度付加部は、前記ウインドウサイズ推定部にて推定されたウインドウサイズが所定の閾値より小さいTCPフローのACKパケットに、前記ウインドウサイズ推定部にて推定されたウインドウサイズが前記所定の閾値より大きいTCPフローのACKパケットよりも高い優先度を付加することを特徴とする請求項1に記載の送受信装置。
【請求項3】
前記所定の閾値は、スロースタート閾値であることを特徴とする請求項2に記載の送受信装置。
【請求項4】
前記優先度付加部は、前記ウインドウサイズ推定部にて推定されたウインドウサイズが前記所定の閾値より大きいTCPフローについても、当該TCPフローのウインドウ内の少なくとも1つのACKパケットには高い優先度を付加することを特徴とする請求項2に記載の送受信装置。
【請求項5】
前記優先度付加部は、前記他の送受信装置から送信された前記データパケットの損失が発生したときに、当該送受信装置への重複ACKパケットに対して高い優先度を付加することを特徴とする請求項2に記載の送受信装置。
【請求項6】
前記他の送受信装置 は、前記ACKパケットの所定の時間内における損失数が所定の閾値以上であるときに、当該TCPフローのウインドウサイズを減少させることを特徴とする請求項1乃至5のいずれか1項に記載の送受信装置。
【請求項7】
前記送受信装置は、連続して受信したACKパケットにおいてシーケンス番号の増加が2以上である場合に、ACKパケットの損失があったと判断して、前記ACKパケットの損失数を求めることを特徴とする請求項6に記載の送受信装置。
【請求項8】
パケット送信の優先制御機能を備えた中継装置と、前記中継装置に接続される複数の端末装置間でTCP通信を行う送受信装置とを含む通信システムであって、
前記送受信装置は、該送受信装置とその通信相手となる他の送受信装置との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定部と、前記ウインドウサイズ推定部にて推定されたウインドウサイズに応じて、前記通信相手となる他の送受信装置から受信したTCPフローのデータパケットに対するACKパケットに優先度を付加する優先度付加部とを備え、
前記中継装置は、パケット送信の優先制御機能を備え、前記送受信装置から送信されたACKパケットに付加された優先度に応じて、優先度の高いACKパケットをより優先して送信する構成を有することを特徴とする通信システム。
【請求項9】
上りリンクの帯域と下りリンクの帯域が非対称なネットワークを通じ、パケット送信の優先制御機能を備えた中継装置を介し、前記中継装置に接続される他の複数の送受信装置とTCP通信を行う送受信装置における受信方法であって、
前記送受信装置とその通信相手となる他の送受信装置との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定ステップと、
前記ウインドウサイズ推定ステップにて推定されたウインドウサイズに応じて、前記通信相手となる他の送受信装置から受信したTCPフローのデータパケットに対するACKパケットに優先度を付加するACK優先度付加ステップと、
を含むことを特徴とする受信方法。
【請求項10】
パケット送信の優先制御機能を備えた中継装置と、前記中継装置に接続される複数の送受信装置間でTCP通信を行う送受信装置とを含む通信システムにおける通信方法であって、
前記送受信装置にて、該送受信装置とその通信相手となる他の送受信装置との間のTCPフローのウインドウサイズを推定するウインドウサイズ推定ステップと、
前記送受信装置にて、前記ウインドウサイズ推定ステップにて推定されたウインドウサイズに応じて、前記送受信装置の通信相手から受信したデータパケットに対するACKパケットに優先度を付加する優先度付加ステップとを含むことを特徴とする通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−191274(P2012−191274A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−50904(P2011−50904)
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】