特許第6206009号(P6206009)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 沖電気工業株式会社の特許一覧

<>
  • 特許6206009-パケット通信装置及びシステム 図000003
  • 特許6206009-パケット通信装置及びシステム 図000004
  • 特許6206009-パケット通信装置及びシステム 図000005
  • 特許6206009-パケット通信装置及びシステム 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6206009
(24)【登録日】2017年9月15日
(45)【発行日】2017年10月4日
(54)【発明の名称】パケット通信装置及びシステム
(51)【国際特許分類】
   H04L 12/803 20130101AFI20170925BHJP
   H04L 29/00 20060101ALI20170925BHJP
【FI】
   H04L12/803
   H04L13/00 S
【請求項の数】9
【全頁数】17
(21)【出願番号】特願2013-183178(P2013-183178)
(22)【出願日】2013年9月4日
(65)【公開番号】特開2015-50746(P2015-50746A)
(43)【公開日】2015年3月16日
【審査請求日】2016年5月17日
(73)【特許権者】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】100090620
【弁理士】
【氏名又は名称】工藤 宣幸
(74)【代理人】
【識別番号】100161861
【弁理士】
【氏名又は名称】若林 裕介
(74)【代理人】
【識別番号】100180275
【弁理士】
【氏名又は名称】吉田 倫太郎
(72)【発明者】
【氏名】中平 佳裕
【審査官】 速水 雄太
(56)【参考文献】
【文献】 特表2013−528984(JP,A)
【文献】 特開2007−060494(JP,A)
【文献】 特開平09−289523(JP,A)
【文献】 特開2011−210105(JP,A)
【文献】 国際公開第2013/105551(WO,A1)
【文献】 特開2002−354009(JP,A)
【文献】 米国特許第08811329(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/803
H04L 29/00
(57)【特許請求の範囲】
【請求項1】
パケット送信装置及びパケット受信装置間にパケット転送に供する複数のリンクが介在し、上記リンク毎に、パケットロス時のパケット再送に対応できるパケット通信システムにおける上記パケット送信装置が該当するパケット通信装置において、
送信しようとするパケットを、いずれかの上記リンクへ振り分けるスイッチ機能部と、
少なくとも当該パケット送信装置における計算資源が上記各リンクへの転送処理にどのように配分されているかを表す第1情報、上記各リンクの特性、状態を表す第2情報、送信しようとするパケットの送出元が転送に対して要求している内容を表す第3情報の3つの情報の少なくとも上記第1情報又は上記第2情報を獲得し、獲得した情報に基づき、上記スイッチ機能部が、入力されたパケットを振分ける方法を決定して上記スイッチ機能部に指示する転送最適化機能部とを有し、
上記第1情報には、少なくとも、演算処理装置及びメモリの資源が上記各リンクへの転送処理にどのように配分されているかを表す情報が含まれており、
上記第2情報には、少なくとも、上記各リンクが、省電力を目的として本来の帯域よりも小さく設定される省電力リンクに関する情報が含まれている
ことを特徴とするパケット通信装置。
【請求項2】
上記転送最適化機能部は、獲得した情報に基づき、パケット転送に適用する1又は複数のリンクをも定めることを特徴とする請求項1に記載のパケット通信装置。
【請求項3】
上記転送最適化機能部は、獲得した情報に基づき、上記各リンクで転送可能な可用帯域の大きさを推定し、推定された上記各リンクの可用帯域の大きさに応じて、上記各リンクへパケットの振り分ける割合を決定すると共に、上記各リンクへ入力されるパケットの間隔が一定になるように振り分けることを、上記スイッチ機能部に指示することを特徴とする請求項1又は2に記載のパケット通信装置。
【請求項4】
上記転送最適化機能部は、上記第1の情報を獲得するものであり、計算資源が上記各リンクへの転送処理に必要な量以上に分配されるように、上記各リンクへパケットを振分ける方法を、上記スイッチ機能部に指示することを特徴とする請求項1又は2に記載のパケット通信装置。
【請求項5】
上記転送最適化機能部は、獲得した上記第1及び第2の情報の少なくとも一方に基づき、上記各リンクを用いたパケット転送での通信品質を推定すると共に、獲得した上記第3の情報に基づき、送信しようとするパケットの送出元が転送に対して要求している内容がコスト重視か品質重視かを把握し、把握した要求内容に基づき、予め定まっている上記各リンクについてのコストと、推定された通信品質との重みを代えて、上記各リンクへのパケットの振分け方を定めることを特徴とする請求項1又は2に記載のパケット通信装置。
【請求項6】
推定した通信品質が、上記各リンクで転送可能な可用帯域の大きさであることを特徴とする請求項5に記載のパケット通信装置。
【請求項7】
上記転送最適化機能部は、上記各リンクへのパケットの振分け方を規定する振分けポリシとして複数の振分けポリシを用意しておき、各振分けポリシで定まった振分け方の候補に対し、送信しようとするパケットの送出元が転送に対して要求している内容がコスト重視か品質重視かに基づいて算出した評価値を適用して、上記各リンクへのパケットの最終的な振分け方を定めることを特徴とする請求項1又は2に記載のパケット通信装置。
【請求項8】
上記転送最適化機能部は、複数の振分けポリシの一つとして、獲得した上記第1の情報に基づき、計算資源が上記各リンクへの転送処理に必要な量以上に分配されるように、上記各リンクへパケットを振分けるポリシを含むことを特徴とする請求項7に記載のパケット通信装置。
【請求項9】
パケット送信装置及びパケット受信装置間にパケット転送に供する複数のリンクが介在し、上記リンク毎に、パケットロス時のパケット再送に対応できるパケット通信システムにおいて、
上記パケット送信装置として、請求項1〜8のいずれかに記載のパケット通信装置を適用したことを特徴とするパケット通信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット通信装置及びシステムに関し、例えば、複数の経路やインタフェースを用いて1つのTCP(Transmission Control Protocol)セッションの通信を行う場合に適用し得るものである。
【背景技術】
【0002】
標準機関IETFによる標準RFC6824に規定される公知の通信技術が存在する(非特許文献1参照)。この技術は、インターネットを用いて、端末間や、端末・サーバ間で、TCPによる通信を行う際に、1つのTCPセッションを、複数のリンクを用いて通信するものであり、一般にMPTCPと呼ばれる。MPTCPを用いると、従来のTCPに比べて、通信を高速に行うことができ、無線など不安定な伝送媒体を用いた通信での信頼性を向上させることができる。
【0003】
図4は、MPTCPを適用したパケット通信システム(以下、MPTCP適用システムと呼ぶ)3の構成を示している。図4は、説明の簡単化のために片方向のパケット通信システムを示している。また、図4は、リンクの数が5つの場合を示しており、以下の説明で「5つ」という表現は、リンクの数を示している。
【0004】
MPTCP対応のパケット送信装置1は、外側送信用TCP機能部(図4ではTCP(外側)と表記)10、スイッチ機能部(図4ではSWと表記)11、5つのリンク別キュー(図4ではQと表記)12−1〜12−5、5つの内側送信用TCP機能部(図4ではTCPと表記)13−1〜13−5、5つの送信インタフェース部(図4ではIFと表記)14−1〜14−5を有する。
【0005】
一方、MPTCP対応のパケット受信装置2は、5つの受信インタフェース部(図4ではIFと表記)20−1〜20−5、5つのリンク別キュー(図4ではQと表記)21−1〜21−5、5つの内側受信用TCP機能部(図4ではTCPと表記)22−1〜22−5、統合キュー(図4ではQと表記)23、外側受信用TCP機能部(図4ではTCP(外側)と表記)24を有する。
【0006】
通常のTCPを適用したパケット通信システム(以下、TCP適用システムと呼ぶ)では、送信側と受信側に、各々1つのTCP機能部があったのに比べ、MPTCP適用システム3では、TCP適用システムにおけると同様なTCP機能部10、24に加え、その内側にも、送信側と受信側の両方で対をなす複数のTCP機能部13−1及び22−1、…、13−5及び22−5が存在する。
【0007】
パケット送信装置1において、アプリケーションソフトウェア(以下、アプリソフトと呼ぶ)15から送出されたパケットは、外側送信用TCP機能部10で受け取られ、受信側に向けて送信される。アプリソフト15及び25は、パケット送信装置1やパケット受信装置2の構成要素ではないが、説明のために書き出している。
【0008】
この外側送信用TCP機能部10では、アプリソフト15から受け取った情報をMTU(Maximum Transmission Unit)のサイズに分割し、順序番号を付与して送信する。データは、送信ウィンドウと受信ウィンドウの小さい方のサイズ一杯まで送信される。受信ウィンドウサイズは、外側受信用TCP機能部24の直前にある統合キュー23の残り容量であり、これが0であるとの通知がくれば、送信側の外側送信用TCP機能部10は送信を止める。また、外側受信用TCP機能部24では、届いたパケットを順序番号順に組み立て、送達確認のために、送信側に順序番号の情報を送達確認信号(以下、Ack信号と呼ぶ)として送る。ネットワークの内部では、ときどき、パケットの順序逆転やパケット落ちが発生する。外側受信用TCP機能部24では、順序番号が期待される値と違う場合、送信側に、有効に到達したパケットの前回の順序番号を入れてAck信号を返送する。外側送信用TCP機能部10では、同一の順序番号が挿入されたAck信号が連続して到着し、その連続回数が閾値を超えると、廃棄されたと考えて再送する。上述した機能、動作は、TCP適用システムと同様である。
【0009】
MPTCP適用システム3では、外側送信用TCP機能部10の後段にスイッチ機能部11が存在し、スイッチ機能部11は、キュー12−1〜12−5と内側送信用TCP機能部13−1〜13−5とでなる5対の内側送信機能対のいずれかの対に、入力されたパケットを選択的に転送する。各内側送信用TCP機能部13−1〜13−5はそれぞれ、インタフェース部14−1〜14−5、20−1〜20−5を介して、対向するパケット受信装置2の内側受信用TCP機能部22−1〜22−5と通信する。MPTCP適用システム3では、同時に5つのリンクを使用するため、最大ウィンドウサイズが同じでキュー12−1〜12−5の個数が5倍あり、アプリソフト15側の速度が十分に速いとき、1つのリンクで送信するより、より多くの情報を転送できる。これら5つのリンクの両側に位置する内側送信用TCP機能部13−1〜13−5及び内側受信用TCP機能部22−1〜22−5間でも、ウィンドウ制御、送達確認、再送制御が行われる。
【0010】
以下、内側送信用TCP機能部13−1〜13−5及び内側受信用TCP機能部22−1〜22−5間の各対のTCPのセッション部分を内側TCPセッションと呼ぶこともあり、また、そこでのフローをサブフローと呼ぶこともある。また、外側送信用TCP機能部10及び外側受信用TCP機能部24間のTCPのセッションを外側TCPセッションと呼ぶこともある。
【0011】
なお、図4のリンク上の左側の数字はパケット送信装置1が送り出したパケットの順序番号を示し、図4のリンク上の右側の数字はパケット受信装置2に到達したパケットの順序番号を示しており、順序番号「2」のパケットが伝送中に廃棄され、再送されている。また、図4では、下から2番目のリンクの伝搬遅延が一番下のリンクより大きく、後から一番下のリンクで送っても、下から2番目のリンクで送るよりも早く到着することに鑑み、スイッチ機能部11では、上から1番目、2番目、3番目、5番目、4番目のリンクに対応するように内側送信機能対を選択し、受信側に、到着するパケット順序が、1番目、2番目、3番目、4番目、5番目のリンクからのパケットになるようになされている場合を示している。
【0012】
MPTCP適用システム3には、実装に任されている大きな差別化ポイントが存在する。それは、スイッチ機能部11で、どのリンクにつながる内側送信用TCP機能部13−1〜13−5(言い換えると、キュー12−1〜12−5と内側送信用TCP機能部13−1〜13−5とでなる内側送信機能対)にパケットを与えて通信するのが最も良い方法(以下、リンク選択方式と呼ぶ)であるか、という点である。
【0013】
これに関して、非特許文献2には、以下のような4つのリンク選択方式が記載されている。
【0014】
第1は、どのリンクも平等に使用するように1つずつ順番に使用するラウンドロビン方式である。
【0015】
第2は、到着順序逆転を減らすことを優先し、RTT(Round Trip Time;往復伝搬遅延時間)が最小のリンクに流す方式である。
【0016】
第3は、RTTに、送信キューに溜まったトラヒック量をスループットで除した値を加え、転送遅延とキューを抜ける予想時間の和に基づいて選択し、到着順序逆転の可能性をさらに減らすことを目指したATLB(Arrival−Time matching Load−Balancing)方式である。
【0017】
第4は、第3のATLB方式において、キューを抜ける時間の予想の精度を向上させるため、トラヒック量をスループットで除するだけでなく、TCPのどのフェーズにいるかを反映させた方式である。
【先行技術文献】
【非特許文献】
【0018】
【非特許文献1】RFC6824:TCP Extensions for Multiple Operation with Multiple Addresses
【非特許文献2】及川永寿他著、”遅延差の大きなネットワークにおけるマルチパスTCPパケット分配方式の提案”、電子情報通信学会技術報告NS2012−106、2012年11月
【発明の概要】
【発明が解決しようとする課題】
【0019】
しかしながら、上述した4つのリンク選択方法は、以下のような課題を有するものであった。
【0020】
第1の課題は、各内側送信用TCP機能部13−1〜13−5や各内側受信用TCP機能部22−1〜22−5へのCPU資源(処理能力)やメモリ資源(記憶能力)の不適切な分配により生じる課題である。
【0021】
上記第2〜第4のリンク選択方式では、単数又は複数のCPUが、複数のTCPのプロセスを同時に処理している。各TCPのプロセスにかけるCPUやメモリの資源が完全に平等ならば、従来のリンク選択方式は有効に働くことが期待される。しかし、実際にはそうとは限らない。例えば、より大きな負荷のプロセスに、大きなCPU資源やメモリ資源(これら2つをまとめて計算機資源と呼ぶこともある)を分配する仕様になっていると、早くパケットが届いた内側TCPセッションが、大きなCPU資源やメモリ資源を有し、後から届いた内側TCPセッションは少ない資源しか割当てられず、後にパケットが届いた内側TCPセッションは、処理能力が小さいために、他より少ないパケットしか処理されないことになる。一方、多くの資源が与えられた内側TCPセッションは、より多くの処理が可能になり、より多くのトラヒックが流れ、その結果、さらに大きな資源が割当てられるフィードバックがかかり、その差が益々広がっていくことになる。
【0022】
これは、送受信側の両方で生じることである。つまり、送信側で、パケットを送信するのに使える計算機資源が小さいサブフローは、計算機資源が大きいサブフローより送信処理に使えるCPU時間が小さく、送信可能なパケット数が少なくなる可能性がある。受信側に関しても、受信処理やAck信号を送信側に返す処理に使えるCPU時間が小さいサブフローは、CPU時間の大きなサブフロー送信できるパケット数が少なくなる可能性がある。
【0023】
第2の課題は、省電力リンクがある場合に生じる課題である。
【0024】
近年、トラヒック量に応じて物理リンクの利用可能帯域を変化させ、トラヒックが少ないときは、帯域を小さくすることで、消費電力を抑える技術が開発されている。しかし、送受信共にTCP機能部は、そのことを認知できず、かつ、残り帯域が小さくなると、送信レートを上げない実装になっているものがある。その結果、物理リンクが帯域を増加させる閾値以下で運用され、物理リンクは、利用者が本当はもっと送りたい要求があるのを知らずに、帯域を小さなままで運用し、TCP機能部側が本当はもっと送れるのに、これ以上送ると輻輳が生じるかもしれないと、送信レートを上げないで運用される可能性がある。その結果、MPTCP適用システムが、省電力リンクをサブフローのリンクとして含む内側TCPセッションにパケットを送る量を、最適値より小さくしてしまう可能性がある。
【0025】
第3の課題は、内側TCPセッションに係るリンクの伝搬遅延時間の差(以下、遅延差と略することもある)が大きい場合に生じる課題である。
【0026】
上記第2〜第4のリンク選択方式では、遅延差が大きいと、伝搬遅延時間の大きなリンクは幾ら余剰帯域があっても使われず、スループットが伸びないという課題がある。例えば、大きなトラヒックを流しても、廃棄がほとんど生じないが到着までの遅延時間が大きなリンクLAと、遅延時間は小さいが入力されるトラヒックがある程度大きくなると廃棄が生じ易いリンクLBがあった場合、アプリソフトの要求条件と、確保できるキュー長の見合いで、リンクLAを積極的に使用した方が良い場合がある。上記第2〜第4のリンク選択方式では、このような場合への対応ができない。
【0027】
第4の課題は、要求品質に応じた資源選択への対応に関する課題である。
【0028】
パケット送信装置及びパケット受信装置間にリンクLCとリンクLDの2種類のリンクが存在し、リンクLCはリンクLDよりも利用コストが高い場合を想定する。ここで、利用するアプリソフトは幾つかの種類が存在し、アプリソフトAP1は0.1秒でも早く送りたい要求があり、アプリソフトAP2は、数ビット/secの速度で十分な要求条件であり、アプリソフトAP3は、ある一定の時間内に遅れれば良いとする。
【0029】
アプリソフトAP1は、リンクLCとリンクLDの両方を使い、最小時間で送信できるように、リンクLCとリンクLDにトラヒックを振り分ける制御が好適と思われる。アプリソフトAP2は、リンクLDだけを使ってコストを最小化するのが好適だと思われる。アプリソフトAP3は、要求条件を満たす範囲で、なるべくリンクLDを用い、要求条件を満たすためにやむを得ない範囲でリンクLCを用い、利用コストの最小化を目指すのが好適であると考えられる。
【0030】
すなわち、パケット通信に供するアプリソフトが複数種類あり、要求品質が異なる場合においても、あるリンク選択方法しか適用できず、その方法では不満足なアプリソフトも生じてしまう。
【0031】
本発明は、以上の点を考慮してなされたものであり、1以上の観点から見て好適なリンクにパケットを振り分けて転送することができるパケット通信装置及びシステムを提供しようとしたものである。
【課題を解決するための手段】
【0032】
第1の本発明は、パケット送信装置及びパケット受信装置間にパケット転送に供する複数のリンクが介在し、上記リンク毎に、パケットロス時のパケット再送に対応できるパケット通信システムにおける上記パケット送信装置が該当するパケット通信装置において、(1)送信しようとするパケットを、いずれかの上記リンクへ振り分けるスイッチ機能部と、(2)少なくとも当該パケット送信装置における計算資源が上記各リンクへの転送処理にどのように配分されているかを表す第1情報、上記各リンクの特性、状態を表す第2情報、送信しようとするパケットの送出元が転送に対して要求している内容を表す第3情報の3つの情報の少なくとも上記第1情報又は上記第2情報を獲得し、獲得した情報に基づき、上記スイッチ機能部が、入力されたパケットを振分ける方法を決定して上記スイッチ機能部に指示する転送最適化機能部とを有し、(3)上記第1情報には、少なくとも、演算処理装置及びメモリの資源が上記各リンクへの転送処理にどのように配分されているかを表す情報が含まれており、(4)上記第2情報には、少なくとも、上記各リンクが、省電力を目的として本来の帯域よりも小さく設定される省電力リンクに関する情報が含まれていることを特徴とする。
【0033】
第2の本発明は、パケット送信装置及びパケット受信装置間にパケット転送に供する複数のリンクが介在し、上記リンク毎に、パケットロス時のパケット再送に対応できるパケット通信システムにおいて、上記パケット送信装置として、第1の本発明のパケット通信装置を適用したことを特徴とする。
【発明の効果】
【0034】
本発明によれば、1以上の観点から見て好適なリンクにパケットを振り分けて転送することができるパケット通信装置及びシステムを提供できる。
【図面の簡単な説明】
【0035】
図1】実施形態のMPTCP適用システムを構成するパケット送信装置及びパケット受信装置のネットワーク上の位置関係の一例を示すブロック図である。
図2】実施形態のMPTCP適用システムの構成を示すブロック図である。
図3】実施形態のMPTCP適用システムにおけるMPTCP最適化機能部が行う動作を示すフローチャートである。
図4】従来のMPTCP適用システムの構成を示すブロック図である。
【発明を実施するための形態】
【0036】
(A)主たる実施形態
以下、本発明によるパケット通信装置及びシステムの一実施形態を、図面を参照しながら説明する。
【0037】
実施形態のパケット通信システムは、MPTCP適用システムである。パケット通信システムを構成するパケット通信装置は、データパケットの送信構成及び受信構成を共に備えるものが大半であるが、以下の実施形態の説明では、説明の簡単化を期して、一対のパケット送信装置及びパケット受信装置を書き出して説明する。
【0038】
(A−1)実施形態の構成
図1は、実施形態のMPTCP適用システム3Aを構成するパケット送信装置1A及びパケット受信装置2Aのネットワーク上の位置関係の一例を示すブロック図である。
【0039】
図1において、パケット送信装置1A及びパケット受信装置2A間は、オープンフローを用いたSDN(Software Defined Networking)ノード4(以下、単にSDNノードと呼ぶ)を有する仮想ネットワーク5を介して接続し得るようになされている。図1では、3つの内側TCPセッションのリンク(経路)LK1〜LK3を示しており、各リンクLK1〜LK3はそれぞれ、1又は複数のSDNノード4を経由する。リンクLK1は、SDNノード4−1、4−2及び4−3を経由するものであり、リンクLK2は、SDNノード4−1及び4−3を経由するものであり、リンクLK3は、SDNノード4−1、4−4及び4−3を経由するものである。
【0040】
パケット送信装置1Aに関連して送信側情報処理装置6Aが設けられている。パケット送信装置1Aは、例えば、送信側情報処理装置6Aに搭載されたものであっても良く、送信側情報処理装置6Aと別個の装置として構築されたものであっても良い。例えば、同一のパソコンが、送信側情報処理装置6AとMPTCP対応のパケット送信装置1Aとを兼ねていても良く、以下、このような場合を想定して説明する。
【0041】
同様に、パケット受信装置2Aに関連して受信側情報処理装置7Aが設けられている。以下、同一のパソコンが、受信側情報処理装置7AとMPTCP対応のパケット受信装置2Aとを兼ねている場合を想定して説明する。
【0042】
図2は、実施形態のMPTCP適用システム3Aの構成を示すブロック図であり、上述した図4との同一、対応部分には同一、対応符号を付して示している。なお、図1とは異なり、図2では、パケット送信装置1A及びパケット受信装置2A間のリンクとして5つのリンクを示している。
【0043】
上述したように、パケット送信装置1Aもパケット受信装置2Aもパソコン上に構築されている場合には、その構成要素の大半が、CPUとCPUが実行するソフトウェアで構成されていることが多いが、このような場合でも、機能的には、図2で表すことができる。
【0044】
図2において、実施形態のパケット送信装置1Aは、外側送信用TCP機能部10、スイッチ機能部11、5つのリンク別キュー12−1〜12−5、5つの内側送信用TCP機能部13−1〜13−5、5つの送信インタフェース部14−1〜14−5に加え、送信側MPTCP最適化機能部16及び送信側計算資源管理機能部17を有する。
【0045】
実施形態のパケット受信装置2Aは、5つの受信インタフェース部20−1〜20−5、5つのリンク別キュー21−1〜21−5、5つの内側受信用TCP機能部22−1〜22−5、統合キュー23、外側受信用TCP機能部24に加え、受信側MPTCP最適化機能部26及び受信側計算資源管理機能部27を有する。
【0046】
ここで、外側送信用TCP機能部10、スイッチ機能部11、リンク別キュー12−1〜12−5、内側送信用TCP機能部13−1〜13−5、送信インタフェース部14−1〜14−5、受信インタフェース部20−1〜20−5、リンク別キュー21−1〜21−5、内側受信用TCP機能部22−1〜22−5、統合キュー23及び外側受信用TCP機能部24の基本的な機能は、図4におけるものと同様であり、以下、簡単に言及する。
【0047】
外側送信用TCP機能部10は、外側TCPセッションについてのパケット送信・再送、送信ウィンドウ制御を行うものであり、外側受信用TCP機能部24は、外側TCPセッションについてのパケット受信、送達確認、再送制御、順序調整、受信ウィンドウ制御を行うものである。スイッチ機能部11は、送信しようとするパケットをいずれかの内側TCPセッション(言い換えるとリンク)に振り分けるものである。内側送信用TCP機能部13−n(nは1〜5)は、リンクLKnに係る内側TCPセッションについてのパケット送信・再送、送信ウィンドウ制御を行うものであり、内側受信用TCP機能部22−nは、リンクLKnに係る内側TCPセッションについてのパケット受信、送達確認、再送制御、順序調整、受信ウィンドウ制御を行うものである。リンク別キュー12−nは、内側送信用TCP機能部13−nの送信待ちのパケットをキューイングしているものである。送信インタフェース部14−nは、リンクLKnに対する、送信側のインタフェースを行うものであり、受信インタフェース部20−nは、リンクLKnに対する、受信側のインタフェースを行うものである。リンク別キュー21−nは、内側受信用TCP機能部22−nによる処理待ちのパケットをキューイングしているものである。統合キュー23は、内側受信用TCP機能部22−1〜22−5からの外側TCPセッションに係るパケットを受け入れると共に、外側受信用TCP機能部24による処理待ちのパケットをキューイングしているものである。
【0048】
実施形態で新たに有する送信側計算資源管理機能部17及び受信側計算資源管理機能部27はそれぞれ、パケット送信装置1A、パケット受信装置2Aが使用するCPU、メモリ、バス等の計算資源の使用状況を管理しているものである。各計算資源管理機能部17、27は、当該装置1A、2A用に新しく構築したものであっても良いが、当該装置1A、2Aがパソコン等の情報処理装置上に構築された場合であれば、情報処理装置のOS(Operating System)が有する計算資源管理機能部をそのまま適用するようにしても良い。
【0049】
送信側MPTCP最適化機能部16は、リンク(従って、内側TCPセッション)LK1〜LK5へのパケットの割当てを最適化するものであり、受信側MPTCP最適化機能部26は、送信側MPTCP最適化機能部16における最適割当てに受信側として協力するものである。送信側MPTCP最適化機能部16は、基本的には、スイッチ機能部11に対する内側TCPセッションの決定方法を指示するものであるが、決定方法の指示を出すために必要な情報を収集するために、外側送信用TCP機能部10、内側送信用TCP機能部13−1〜13−5、計算資源管理機能部17に対して指示を出したりするものである。同様に、受信側MPTCP最適化機能部26は、必要な情報を収集するために、外側受信用TCP機能部24、内側受信用TCP機能部22−1〜22−5、計算資源管理機能部27に対して指示を出したりするものである。
【0050】
送信側MPTCP最適化機能部16は、通信機能部16a、計算資源割当把握機能部16b、リンク特性把握機能部16c及び最適切替指示機能部16dを有し、受信側MPTCP最適化機能部26は、通信機能部26a、計算資源割当把握機能部26b及びリンク特性把握機能部26cを有する。
【0051】
通信機能部16aは、外側送信用TCP機能部10に接続され、通信機能部26aは、外側受信用TCP機能部24に接続され、通信機能部16a及び26a間で制御情報(制御パケット)を転送し合うものである。主として、通信機能部26aが制御情報の送信側、通信機能部16aが制御情報の受信側となる。
【0052】
送信側の計算資源割当把握機能部16bは、計算資源管理機能部17にアクセスして、計算資源管理機能部17が把握・運用しているCPU、メモリ、バス等の計算資源が、各内側TCPセッション(従ってリンク)にどれだけ割当てられているかの情報を得、最適切替指示機能部16dに与えるものである。受信側の計算資源割当把握機能部26bも同様に、計算資源管理機能部27にアクセスして、計算資源の割当て状態の情報を獲得し、受信側及び送信側の通信機能部26a及び16aを介し、さらに、送信側の計算資源割当把握機能部16bを経由して最適切替指示機能部16dに与える。従来のMPTCP適用システム3の課題の項で説明したように、TCPのサブフローの性能は送信側と受信側の両方の計算資源に依存する。従って、両方の計算資源で計測する必要がある。
【0053】
送信側及び受信側のリンク特性把握機能部16c及び26cは、連携して、各リンクLK1〜LK5の物理帯域、省電力制御(トラヒックが少ないときに速度を落とす制御)の有無、省電力制御分を含めた可用帯域、伝搬遅延時間、パケット廃棄率を計測する(一部の項目は予測値であっても良い)。また、リンク特性把握機能部16c及び26cは、内側TCPセッションに係る送信側、受信側のリンク別キュー12−1〜12−5、21−1〜21−5の大きさ、ウィンドウサイズの大きさ、内側TCPセッションのフェーズ情報を獲得する。リンク特性把握機能部16c及び26cは、獲得した情報を最適切替指示機能部16dに与えられる。なお、計測で使用する制御情報や計測結果の情報は、適宜、通信機能部16a、26aを介して転送される。
【0054】
最適切替指示機能部16dは、計算資源の割当状態とリンクの特性とを基に、スイッチ機能部11がパケットを転送する内側TCPセッション(サブフロー)を決定したり、決定された各内側TCPセッションに振り分けたりする方法を定めて、スイッチ機能部11に指示するものである。この実施形態のスイッチ機能部11は、パケットを、指示された方法に応じて適切な内側TCPセッション(サブフロー)の内側送信用TCP機能部13−1〜13−5に与えるものである(なお、適宜、キューイングされる)。
【0055】
(A−2)実施形態の動作
次に、以上のような構成を有する実施形態のMPTCP適用システム3Aの動作を説明する。実施形態のMPTCP適用システム3Aは、従来システムに比較して、MPTCP最適化機能部16及び26が連携して行う動作が追加されている点が大きく異なるので、以下では、MPTCP最適化機能部16及び26が連携して行う動作を説明する。
【0056】
図3は、MPTCP最適化機能部50(符号50は16及び又は26)が行う動作を示すフローチャートである。図3に示す動作(ステップS100、S200、S300)は、例えば、所定時間の間隔で繰り返し実行される(なお、後述するように所定時間を可変とするようにしても良い)。
【0057】
MPTCP最適化機能部50は、大きくは、現在又はこれから行われる複数の内側TCPセッション(サブフロー)の通信(MPTCP通信)に係る情報を取得し(ステップS100)、取得した情報に基づいて、スイッチ機能部11による切替方法候補毎に品質を推定して最適な切替方法を決定し(ステップS200)、決定された最適な切替方法に従ってスイッチ機能部11が動作するように制御する(ステップS300)、ことを行う。
【0058】
MPTCP通信に必要な情報を取得する動作は、計算資源の割当状況を把握する動作(ステップS101)と、各内側TCPセッションに対応するリンクの特性を把握する動作(ステップS102)と、アプリソフトが要求する品質情報を取得する動作(ステップS103)とを有する。
【0059】
ステップS101においては、計算資源割当把握機能部16b及び26bがそれぞれ、計算資源管理機能部17、27にアクセスして、計算資源管理機能部17、27が把握・運用している計算資源が、各内側TCPセッション(従ってリンク)にどれだけ割当てられているかの情報を得、最適切替指示機能部16dに与える。
【0060】
ステップS102においては、送信側及び受信側のリンク特性把握機能部16c及び26cが連携して、各リンクLK1〜LK5の物理帯域、省電力制御の有無、省電力制御分を含めた可用帯域、伝搬遅延時間、パケット廃棄率を計測すると共に、リンク特性把握機能部16c及び26cはそれぞれ、内側TCPセッションに係るリンク別キュー12−1〜12−5、21−1〜21−5の大きさ、ウィンドウサイズの大きさ、内側TCPセッションのフェーズ情報を獲得して、最適切替指示機能部16dに与える。
【0061】
ステップS103においては、最適切替指示機能部16dが、アプリソフト15が要求する品質情報をアプリソフト15から直接取得するか、若しくは、外側送信用TCP機能部10を介して取得する。例えば、アプリソフト15に要求する品質情報を記述しておき、最適切替指示機能部16dが、その記述内容を取込む。アプリソフト15は、例えば、リンクの速度と課金(料金制)をパラメータとして品質情報(要求条件)を記述する。(例1)少しでも遅延時間が短ければ、トラヒックに応じて課金される従量課金リンクであっても優先的に使用する、(例2)サービス品質を満たす範囲で定額課金のリンクを優先適用し、品質を満たすためにやむを得ない場合に限り従量課金リンクを用いる、(例3)遅延時間やパケット損失率に拘らず定額課金のリンクだけを用いる、などで品質を要求する。アプリソフト15が要求する品質情報に、後述する振分けポリシを規定する情報をも盛り込んでおくようにしても良い。若しくは、リンク種類によって適用できる振分けポリシを1又は複数種類に制限することにより、品質情報として、適用するリンクの種類が定まったときに、適用可能な1又は複数種類の振分けポリシが定まるようにしても良い(例えば、最適切替指示機能部16dが要求品質情報から振分けポリシを得るための情報を内蔵する)。
【0062】
取得した情報に基づいて、スイッチ機能部11による切替方法候補毎に品質を推定して最適な切替方法を決定する動作は、切替方法候補毎の品質の推定動作(ステップS201)と、最適な切替方法を決定する動作(ステップS202)とに分かれる。なお、上記の説明では、リンクの利用料金をリンクを選択する際のコスト条件に用いたが、「(ライバル関係にある)A社のリンクをできるだけ使用しない」等、別のポリシを評価用のコストとして用いても構わない。
【0063】
ステップS201においては、最適切替指示機能部16dが、ステップS100で取得した情報に基づき、全M本(図2の場合は5本)のリンクのうちのN本(Nは1〜M)を用いて、各リンクの通信に必要な計算資源を分配し、各候補の振分けポリシでパケットを各リンクに振り分けて転送した際のリンク毎の通信品質を推定する。計算資源の分配は、例えば、各リンクへの送信帯域(若しくは各リンクの可用帯域)に応じて行う。
【0064】
このステップS201の処理においては、M本からN本(Nは1〜M)を選択する全ての組み合わせについて、通信品質を推定するようにしても良い。
【0065】
但し、以下のような他のN本の定め方を適用しても良い。N本のリンクは、例えば、アプリソフト15の要求に関係なく、その時点で適用可能な全てのリンクであっても良い。また、N本のリンクの絞り込みを、アプリソフト15が要求する品質情報に応じて行うようにしても良い(例えば、定額課金のリンクだけを用いる要求であれば、N本のリンクは、定額課金のリンクだけとする)。
【0066】
リンク毎の通信品質は、例えば、使用帯域であったり、転送時間であったり、他のパラメータであったり、複数のパラメータの重み付け平均などであったりする。また、通信品質は、例えば、所定数のパケットを振り分けたと仮定した場合の平均的な値として算出する。
【0067】
振分けポリシとして、以下に例示するような複数の候補を用意しておくことを想定しているが、振分けポリシが1つだけであっても良い。
【0068】
第1候補の振分けポリシ(以下、振分けポリシAと呼ぶ)は、振分け時点で予想される転送時間が最小(若しくは所定の閾値以下)のリンクへパケットを振り分けるというポリシである。例えば、スイッチ機能部11が転送時間の算出機能を持たない場合であれば、パケットを振分ける際に、その都度、最適切替指示機能部16dから最小転送時間のリンクの情報を得るようにすれば良い。
【0069】
第2候補の振分けポリシ(以下、振分けポリシBと呼ぶ)は、各リンクで転送可能と推定される可用帯域の大きさに応じて、各リンクへの入力間隔が一定となるように各リンクにパケットを振り分けるというポリシである。例えば、リンクLK1〜LK5を使用する場合において可用帯域の比率が概ね2:1:1:1:1のとき、LK1−LK1−LK2−LK3−LK4−LK5のように振り分けるのではなく、LK1−LK2−LK3−LK1−LK4−LK5のように振り分けることによりリンクLK1についても入力間隔を一定にする。なお、振分けポリシBは、上述のように、他のリンクよりパケット転送が多くなるリンクがあり、順序逆転のよるパケットロスの誤判定の恐れがある。このような誤判定をさけるために、振分けポリシBが選択された場合には、同一番号のAck信号の到来によるパケットロスと判定する基準を緩める(パケットロスと判定する到来回数を多くする)ことが好ましい。また、振分けポリシBは、リンクの状態の変化の検出タイミングが振分けポリシAより遅くなる懸念がある。例えば、ステップS300の処理が終了し、次のステップS100を開始するまでの待ち時間を、振分けポリシBが選択された場合には、振分けポリシAや後述する振分けポリシCが選択された場合より短くするようにしても良い。
【0070】
第3候補の振分けポリシ(以下、振分けポリシCと呼ぶ)は、単純なラウンドロビン方式に従ってパケットを振り分けるというポリシである。
【0071】
振分けポリシAの予想される転送時間やリンク別の通信品質として算出される遅延時間(以下、リンク別転送時間と呼ぶ)は、リンクの伝搬遅延時間と、送信側及び受信側のリンク別キューを通過するのに要するキュー遅延時間と、内側TCPセッションのTCP処理遅延時間とを合算した時間である。この実施形態の場合、リンク別転送時間を算出する際には、以下のような処理等が施される。
【0072】
最適切替指示機能部16dは、TCP処理遅延時間を算出する際には、TCPのフェーズ情報まで含めた遅延時間とする。また、省電力リンクが存在した場合には、省電力制御がないと仮定し、計算資源が各リンクに所定のルールで割り当てられた場合を条件としてリンク別転送時間を求める。例えば、計算資源の各リンクの割当量を考慮しないTCP処理遅延時間を、計算資源の各リンクの割当量に応じた比率(例えば、変換テーブルを適用して取出す)だけ長期化することで、計算資源の各リンクの割当量を反映させるようにしても良い。最適切替指示機能部16dは、省電力リンクがあった場合、そのリンクの可用帯域は、現時点で使用可能な可用帯域ではなく、省電力操作されずに使用可能な場合のリンクの容量から、現時点での使用帯域を除いた帯域とする。キュー遅延時間の算出はリンクに送り出せる単位時間当たりの帯域が影響するので、省電力リンクの可用帯域の把握方法の変更が影響する。
【0073】
振分けポリシBが利用するリンクの可用帯域や、リンク別の通信品質として算出される帯域(以下、リンク別帯域と呼ぶ)を、例えば、以下のように算出する。なお、以下では、TCP−renoの場合の算出例を示しているが、他のTCPバージョンの場合には、そのバージョンに合わせた算出式を適用すれば良い。
【0074】
ある短い時間での通信速度(帯域)は、(1)式で求められ、時刻Ta〜Tbにおける通信速度は、(2)式で求められる。
【数1】
【0075】
ここで、TCPセッションがスロースタートフェーズの場合、(2)式に適用されている時刻TkのウィンドウサイズWs(m)は、初期のウィンドウサイズをW0、T0〜Tk間のAck信号の受信回数をmとすると、(3)式に従う。なお、(3)式における2^mは2のm乗を表している。
【0076】
Ws(m)=W0×2^m …(3)
TCPセッションが輻輳回避フェーズの場合、(2)式に適用されている時刻TkのウィンドウサイズWc(n)は、輻輳回避フェーズに入った直後のウィンドウサイズをWc0、輻輳回避フェーズに入った後のAck信号の受信回数をnとして、パケットの廃棄がなかった場合には、(4)式に従う。
【0077】
Wc(n)=Wc0+W0×n …(4)
スロースタートフェーズの場合において、パケット廃棄が生じたときや、重複したAck信号が検出されたときに、輻輳回避フェーズに移行する。輻輳回避フェーズの場合、廃棄による重複Ack信号が検出された際にAck信号に挿入されていたパケット番号をpとすると、p+1番目のパケットを送出する際のリンクのウィンドウサイズWc(p+1)は、(5)式で表される。
【0078】
Wc(p+1)=Wc(p)×(1/2) …(5)
最適切替指示機能部16dは、可用帯域に応じて計算資源を割当てて通信品質を算出するようにしても良い。また、可用帯域に余裕があれば、その範囲でウィンドウサイズを拡大して処理するようにしても良い。省電力リンクがある場合、可用帯域ぎりぎりまでウィンドウサイズを拡大して処理するようにしても良い。
【0079】
ステップS202においては、最適切替指示機能部16dが、アプリソフト15が要求する品質情報を満たすリンクと振分けポリシの組合せを求め、その中で、小さい方が良いことを表す評価値であるコストが最小の組合せを、適用するリンクと振分けポリシの組合せに決定する。
【0080】
ここで、コストは、N本のリンクについてのコストの総和である。1本1本のリンクのコストは、リンクの利用料金と、ステップS201で求めたリンクの通信品質との重み付け加算値である。重みは、利用料金と通信品質の次元を揃える機能だけでなく、利用料金と通信品質のどちらにウェイトを置くかを規定するものとなっている。ここで、利用料金に対する重みと通信品質に対する重みは固定であっても良いが、アプリソフト15の要求品質情報若しくはアプリソフト15の種類(電話通信、コンテンツ配信等)に応じて切り替えるようにすることが好ましい。例えば、要求品質情報若しくはアプリソフト15の種類をキーとして重みを取り出すことができる変換テーブルを適用して重みを切り替える。利用料金を重視するアプリソフト15の場合には、利用料金に対する重みを通信品質に対する重みより小さくして利用料金が低コスト(高い評価)に寄与するようにし、通信品質(例えば、通信速度)を重視するアプリソフト15の場合には、通信品質に対する重みを利用料金に対する重みより小さくして通信品質が低コスト(高い評価)に寄与するようにする。
【0081】
ステップS300においては、最適切替指示機能部16dは、ステップS202で決定されたN本のリンクに対して決定された振分けポリシでパケットを転送するようにスイッチ機能部11に指示する。これにより、スイッチ機能部11は、指示された振分けポリシに従って、指示されたN本のリンク(直接にはリンク別キュー)に対してパケットを転送する。
【0082】
(A−3)実施形態の効果
上記実施形態によれば、従来の課題を解決したMPTCP適用システムを実現することができる。
【0083】
第1に、計算資源が各内側TCPセッションにどれだけ割当てられているかの情報を得てリンクの選択に反映させるようにしたので、計算資源の不適切な分配により、リンクの選択が適切でなくなるようなことを回避することができる。
【0084】
第2に、省電力リンクの有無を確認し、省電力リンクについては、可用帯域を調整してリンクの選択に反映させるようにしたので、省電力リンクに対してもパケットを適切に転送でき、全体のリンクの適用をバランス良く行うことができる。
【0085】
第3に、リンクの通信品質を、単に、リンクの伝搬遅延時間で評価するのではなく、可用帯域やキューの待ち時間やTCPの処理時間などをも考慮して評価するようにしたので、伝搬遅延時間が大きいというだけでリンクの適用率が低下することはなく、全体のリンクをバランス良く適用することができる。
【0086】
第4に、アプリソフトの要求品質を把握してリンクの選択に反映させるようにしたので、アプリソフトの要求品質を満たすようにリンクを選択することができる。
【0087】
(B)他の実施形態
上記実施形態の説明においても、種々変形実施形態に言及したが、さらに、以下に例示するような変形実施形態を挙げることができる。
【0088】
上記実施形態では、計算資源を、リンクへの送信帯域(やリンクの可用帯域)に応じて、各リンクに係る内側TCPセッション(のプロセス)に分配し、リンクの選択に反映させるものを示したが、計算資源を、各リンクに係る内側TCPセッション(のプロセス)に固定的に分配するようにしても良い。例えば、パケット送信装置1Aやパケット受信装置2Aを搭載した情報処理装置のOSが省電力制御を行うものである場合においては、上述のような固定的な計算資源の分配によれば、省電力制御に伴う分配の不都合を回避することができる。
【0089】
上記実施形態では、振分けポリシが3種類の場合を示したが、いずれか一つの振分けポリシだけを適用し、振分けポリシの選択をできないように、MPTCP適用システムを構築しても良い。例えば、振分けポリシAを唯一の振分けポリシとして採用した場合には、上述した伝搬遅延時間差が原因の不都合(第3の課題)を回避することができる。また例えば、振分けポリシBを唯一の振分けポリシとして採用した場合には、上述した省電力リンクの存在が原因の不都合(第2の課題)を回避することができる。
【0090】
また、上述した振分けポリシ以外の振分けポリシを導入するようにしても良い。例えば、計算資源が、各リンクへの転送処理に必要な量以上に分配されることを保証した上で、各リンクのパケットの振分けを決定する振分けポリシを導入するようにしても良い。例えば、振分けポリシBと併用する場合において、各リンクの可用帯域から、各リンクへのパケット数の割合を決定したとき、計算資源についての上記条件を満足するかを確認し、満足しないリンクを使用しないことに変更するようにしても良い。
【0091】
上記実施形態では、複数種類のアプリソフトに対応する汎用的な装置に実施形態のパケット送信装置、パケット受信装置が搭載されているものを示したが、実施形態のパケット送信装置及びパケット受信装置が専用装置に搭載されたものであっても良い。例えば、コンテンツ配信装置に実施形態のパケット送信装置が搭載されていても良い。このような場合には、パケットの供給元としてのアプリソフトという概念はなく、MPTCP通信に対する要求品質も1種類と見ることができる。例えば、このような場合であれば、リンクコストにおける利用料金と通信品質の重みを固定にするようにしても良い。すなわち、用途が1種類に限定されていたり、搭載されているアプリソフトが1種類であったりする場合には、利用料金か通信品質かの一方だけに重みを付与した固定の重みを適用するようにしても良い。
【0092】
上記実施形態では、パケット送信装置及びパケット受信装置の計算資源の状況をリンクの選択に反映させるものを示したが、パケット送信装置の計算資源の状況だけをリンクの選択に反映させるようにしても良い。
【0093】
計算資源が多く割当てられる制御や省電力リンクの制御がなされる場合において、それら制御を安定化させる帯域が拡大されるまでは、上記実施形態による、計算資源や省電力リンクを意図したリンク選択で送信したパケットが破棄される恐れがある。このような恐れを回避するために、上記制御が適用されるリンクを使用するサブフローの内側TCPセッションに対して、ダミーパケットを転送させて、リンクに負荷を与え、十分にパケットを転送できる状態になった後、ダミーパケットに代えて、通常のトラヒックパケットを送信させるようにしても良い。または、ダミーパケットを通常のトラヒックパケットに混在させて送信し、十分にパケットを転送できる状態になった後、ダミーパケットの混在を止めるようにしても良い。
【0094】
上記実施形態では、パケット転送に供するリンク自体をも選択するものを示したが、パケット転送に供する複数のリンクが固定的に定まっているものであっても良い。また、アプリソフトの種類によって、パケット転送に供する複数のリンクを固定的に定めるようにしても良い。
【0095】
上記実施形態のステップ201では通信品質を求め、スループットを最大化することを制御の目標にした動作を示したが、通信品質に代えて、消費電力を最小化する制御を行うことを目標とするようにしても良い。例えば、最も消費電力が少なくなるサブフローのリンクを使用し、消費電力が大きなリンクを使用しないようにすれば良い。若しくは、消費電力が大きくなるリンクへのパケットの送出するのを抑えるようにすれば良い。
【0096】
上記実施形態では、本発明をMPTCP適用システムに適用した場合を示したが、本発明の適用対象はこれに限定されない。要は、複数のリンクを介して、パケット送信装置及びパケット受信装置間でパケットを転送するシステムであれば、本発明を適用することができる。
【符号の説明】
【0097】
1A…パケット送信装置、2A…パケット受信装置、3A…MPTCP適用システム、
10…外側送信用TCP機能部、11…スイッチ機能部、12−1〜12−5…送信側リンク別キュー、13−1〜13−5…内側送信用TCP機能部、14−1〜14−5…送信インタフェース部、16…送信側MPTCP最適化機能部、16a…通信機能部、16b…計算資源割当把握機能部、16c…リンク特性把握機能部、16d…最適切替指示機能部、17…送信側計算資源管理機能部、
20−1〜20−5…受信インタフェース部、21−1〜21−5…受信側リンク別キュー、22−1〜22−5…内側受信用TCP機能部、23…統合キュー、24…外側受信用TCP機能部、26…受信側MPTCP最適化機能部、26a…通信機能部、26b…計算資源割当把握機能部、26c…リンク特性把握機能部、27…受信側計算資源管理機能部。
図1
図2
図3
図4