(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0007】
以下に、添付図面を参照して、通信装置、通信方法、及び通信プログラムの実施形態を詳細に説明する。
【0008】
[第1の実施形態]
<概要>
図1は、本実施形態に係る通信システム1000の構成例を示す図である。
図1に示すように、本実施形態に係る通信システム1000は、データセンタDS内に、複数のサーバ200
1〜200
n(以下総称する場合「サーバ200」という)と通信装置100とを備える。サーバ200は、例えば、ネットワークサービスを管理する装置(情報処理装置)であり、処理要求を受信し、要求に応じた処理を行い、処理結果を送信することで応答し、各種ネットワークサービスを提供する。通信装置100は、例えば、ネットワークスイッチを備える装置であり、例えば、WAN(Wide Area Network)などの広域ネットワークから通信パケットを受信し、サーバ200への転送を制御する。
【0009】
これにより、本実施形態に係る通信システム1000は、次のように動作する。通信装置100は、広域ネットワークから受信した通信パケット(処理要求パケット)をサーバ200に転送する。これを受けてサーバ200は、受信した通信パケットに定義された処理要求に従って、要求された所定の処理を行い、処理結果を含む通信パケット(処理応答パケット)を通信装置100に転送する。その結果、通信装置100は、受信した通信パケットを要求元に送信する。これにより、本実施形態に係る通信システム1000は、処理の要求元(例えば「クライアント」)に処理結果を応答し、ネットワークサービスを提供する。つまり、本実施形態に係る通信システム1000は、データセンタDSを用いて各種ネットワークサービスを提供するクラウドシステムの一例に相当する。
【0010】
図2は、本実施形態に係る通信制御機能の概略を示す図である。本実施形態に係る通信制御機能(通信システム1000が有する機能)は、SDN(Software Defined Network)コントローラ70と仮想アプライアンス80などを有する。SDNコントローラ70は、ソフトウェアにより、ルーティング機能を実現し、1又は複数の通信装置100を制御する。SDNコントローラ70は、例えば、アプリケーションレイヤーから通信装置100を制御できるため、ネットワークサービスと通信装置100とを連携させることができる。仮想アプライアンス80は、仮想化技術により、単体の情報処理装置(例えば「1台のサーバ200」)内に複数のサーバ機能(図中のa〜o)を実現した仮想マシン環境である。仮想アプライアンス80では、ネットワークサービスの提供元に相当する各サーバ機能が高密度に集約されている。
【0011】
本実施形態に係る通信制御機能は、このような環境下において、SDNコントローラ70が通信装置100を制御することで、仮想アプライアンス80に対するIO(Input/Output)制御を行う。
【0012】
<通信装置100の機能>
本実施形態に係る通信機能(通信装置100が有する機能)について説明する。本実施形態に係る通信装置100は、受信した通信パケットを一時記憶(バッファリング)する。本実施形態に係る通信装置100は、一時記憶した通信パケットの解析結果に基づき、処理要求が類似する通信パケット(類似パケット)が存在するか否かを判定する。本実施形態に係る通信装置100は、類似パケットが存在する場合に、類似パケットに該当した複数の通信パケットを、1つの通信パケットにまとめて圧縮し、処理の要求先に相当するサーバ200に送信する。本実施形態に係る通信装置100は、このような通信機能を有する。
【0013】
近年、様々なネットワークサービスを提供するクラウドシステムが普及し、仮想アプライアンスなどによって、クラウドシステムがネットワークサービスを提供するまでの時間が短縮されている。一方で、クラウドシステムでは、アクセスの集中により、ネットワークサービスを管理するサーバ200やサーバ200までの通信路に負荷がかかり、サービス提供の品質低下が問題となる。そのため、従来では、負荷に応じて、例えば、キャッシュやロードバランサなどを導入することで対応するのが一般的である。また、従来では、所定の時間内に受信した通信パケットを組み合わせることで圧縮を行い、待ち時間の短縮と使用帯域の改善を行う技術も提案されている。
【0014】
しかしながら、従来の技術では、サーバ200とサーバ200までの通信路との両方の負荷を軽減するものではなかった。例えば、所定の時間内に受信した通信パケットの圧縮により、待ち時間の短縮と使用帯域の改善を行う技術の場合、次のような問題が考えられる。この技術では、圧縮する複数の通信パケットに対して、処理要求の類似性を考慮していないため、どのネットワークサービスに対する処理要求の通信パケットなのかをサーバ200が知る必要があり、圧縮した通信パケットを通信経路の途中で復元しなければならない。そのため、この技術では、サーバ200の負荷は軽減されない。このように、従来の技術では、サーバ200までの通信経路上の負荷を軽減できても、サーバ200自身の負荷を軽減するものでない。
【0015】
そこで、本実施形態に係る通信装置100では、ストレージサービスなどの静的なコンテンツを提供するネットワークサービスにおいて、処理要求が類似する通信パケットをまとめて圧縮し、要求先のサーバ200に送信する仕組みとした。
【0016】
これにより、本実施形態に係る通信装置100は、サーバ200とサーバ200までの通信路との両方の負荷を軽減することができ、クラウド基盤における仮想アプライアンス80による高密度集約時のIO性能の向上が期待できる。
【0017】
以下に、本実施形態に係る通信装置100が有する機能(通信機能)の構成とその動作について説明する。
【0018】
図3は、本実施形態に係る通信装置100の機能構成例を示す図である。
図3に示すように、本実施形態に係る通信装置100は、入力部11、判定部12、一時記憶部13、解析部14、圧縮部15、通信部16、復元部17、及び復元情報記憶部91などを有する。
【0019】
入力部11は、通信装置100内を通過する通信パケットの入力を受け付ける。入力部11は、通信装置100に送信された通信パケットを受信し、通過する通信パケットを取得する。
【0020】
判定部12は、通過する通信パケットが圧縮対象か否かを判定する。このとき判定部12は、入力部11で取得された通信パケットの送信先が、通信パケットの圧縮対象として管理される送信先か否かの判定により、通信パケットが圧縮対象か否かを判定する。
【0021】
ここで、圧縮対象の送信先の管理方法について説明する。
図4は、本実施形態に係るサーバリストSL1,SL2(以下総称する場合「サーバリストSL」という)のデータ例を示す図である。
図4に示すように、本実施形態では、通信パケットの送信先のうち、通信パケットを圧縮して送信する送信先として、1又は複数のサーバ200を予め登録可能なサーバリストSLを用いる。
【0022】
図4(A)には、サーバ識別項目(送信先識別項目)を有するサーバリストSL1のデータ例が示されている。サーバ識別項目は、サーバ200を識別するサーバ識別情報(送信先識別情報)を登録する項目であり、項目値には、例えば、サーバ名、IP(Internet Protocol)アドレス、ポート番号、又は、これらの組み合わせ値などがある。また、
図4(B)には、サーバ識別項目と制御項目とを有するサーバリストSL2のデータ例が示されている。制御項目は、サーバ200を圧縮対象の送信先とするか否かの制御情報を登録する項目であり、項目値には、例えば、圧縮又は非圧縮を表す値などがある。これらの項目値は、例えば、所定のUI(User Interface)を介して、管理者などにより予め登録される。このようにして圧縮対象のサーバ200が登録されたサーバリストSLは、SDNコントローラ70により管理される。
【0023】
図3の説明に戻る。判定部12は、通信パケットに送信先として定義されるサーバ200のサーバ識別情報(送信先情報)に基づき、SDNコントローラ70から取得したサーバリストSLを参照し、送信先に該当するサーバ200がサーバリストSLに登録されているか否か(送信先が登録サーバか否か)を判定する。その結果、判定部12は、通信パケットの送信先に該当するサーバ200がサーバリストSLに登録済みの場合(送信先が登録サーバの場合)、通信パケットが圧縮対象であると判定する。なお、判定部12は、
図4(B)に示すサーバリストSL2を参照する場合、該当するサーバ200のサーバ識別情報に対応する制御情報を参照し、圧縮を表す制御情報であった場合、通信パケットが圧縮対象であると判定する。
【0024】
一時記憶部13は、通信装置100を通過する通信パケットを一時記憶(保持)する。一時記憶部13は、例えば、通信装置100が備える記憶装置の所定の記憶領域に相当し、所定時間の間に通過した通信パケットのバッファ領域である。所定時間の間に通過した通信パケットは、判定部12により、一時記憶部13に記憶され保持される(バッファリングされる)。このように、所定時間の間に通過した通信パケットを一時記憶することから、この所定時間は、通信パケットを一時記憶する期間(以下「保持期間」という)に相当する。つまり、一時記憶部13には、通過した通信パケットが、所定時間の間、保持される。なお、以下の説明では、所定時間をスロットと表現する。
【0025】
解析部14は、通信装置100を通過する通信パケットを解析する。解析部14は、一時記憶部13に記憶された複数の通信パケット(スロット内の複数の通信パケット)に対して、各通信パケットに定義された処理要求を解析する。解析部14は、解析結果に基づき、複数の通信パケットの中に、処理要求が類似する通信パケット(以下「類似パケット」という)が存在するか否かを判定する。例えば、解析部14は、通信パケットに定義される送信先情報の解析結果に基づき、送信先が同一の通信パケットが存在するか否かを判定する。その結果、解析部14は、類似パケットが存在する場合、類似パケットに該当する複数の通信パケットを一時記憶部13から取得し、圧縮部15に渡し、圧縮処理を指示する。一方、解析部14は、類似パケットが存在しない場合、解析した複数の通信パケットを一時記憶部13から取得し、通信部16に渡し、送信処理を指示する。なお、類似パケットが存在する場合に類似パケットに該当しなかった通信パケットは、類似パケットが存在しない場合と同じように、通信部16に渡される。
【0026】
圧縮部15は、通信装置100を通過する通信パケットを圧縮する。圧縮部15は、類似パケットとして解析部14から受け取った複数の通信パケットを1つにまとめることで圧縮する。例えば、圧縮部15は、送信先が同一の複数の通信パケットを受け取った場合、各通信パケットに定義される同一の送信先情報を共通化し、複数の通信パケットをまとめた1つの通信パケットを生成する。また、圧縮部15は、各通信パケットで異なる送信元についても、次のような方法で共通化する。圧縮部15は、仮の送信元(仮想送信元)を表す情報(以下「仮想送信元情報」という)を発行し、発行した仮想送信元情報と、各通信パケットに定義される異なる複数の送信元情報とを対応付けて、復元時に用いる復元情報として、復元情報記憶部91に記憶する。これにより、圧縮部15は、複数の通信パケットの送信元と送信先それぞれを共通化し、複数の通信パケットをまとめた1つの通信パケットを生成する。圧縮部15は、生成した圧縮後の通信パケットを、通信部16に渡し、送信処理を指示する。
【0027】
復元情報記憶部91は、圧縮部15が登録(更新)する復元情報を記憶する。復元情報記憶部91は、例えば、通信装置100が備える記憶装置の所定の記憶領域に相当し、例えば、次のようなデータ構成の復元情報を記憶する。
【0028】
図5は、本実施形態に係る復元情報91Dのデータ例を示す図である。
図5には、仮想送信元項目と送信元項目とを有する復元情報91Dのデータ例が示されている。仮想送信元項目は、発行された仮想送信元情報を登録する項目であり、項目値には、例えば、圧縮後の通信パケットに対してユニークに発行される値などがある。また、送信元項目は、通信パケットに定義される送信元情報(実際の送信元の情報)を登録する項目であり、項目値には、例えば、通信パケットを送信したクライアントを識別する値(クライアント名やIPアドレス)などがある。これらの項目値は、各情報項目同士で対応づけられ、圧縮部15により登録される。なお、このとき送信元項目には、圧縮する各通信パケットに定義される異なる複数の送信元情報が登録される。
【0029】
通信部16は、通信パケットを送信する。通信部16は、通信パケットに定義される送信先情報に従って、通信装置100を通過する通信パケットを、送信元から送信先へと転送する。通信部16は、解析部14、圧縮部15、又は復元部17のいずれかの機能部から受け取った通信パケットを、送信元から送信先へと転送する。このとき、解析部14又は圧縮部15のいずれかの機能部から受け取った通信パケットは、要求処理を行うサーバ200に送信される。また、復元部17から受け取った通信パケットは、処理の応答先(クライアント)に送信される。
【0030】
復元部17は、通信装置100を通過する通信パケットを復元する。復元部17には、判定部12が復元対象と判定した、要求処理の処理結果を含む通信パケットが渡される。なお、判定部12は、通過する通信パケットの送信先がサーバリストSLに未登録の場合(送信先が未登録サーバの場合)、次のようにして、通信パケットが復元対象か否かを判定する。判定部12は、入力部11で取得された通信パケットに定義される送信元情報に基づき、通信パケットの送信元を確認する。その結果、判定部12は、通信パケットの送信元が、圧縮時に発行された仮想送信元の場合、通信パケットが復元対象であると判定する。
【0031】
復元部17は、このようにして判定された通信パケットを復元する。復元部17は、復元情報記憶部91に記憶される復元情報91Dを参照し、処理結果を含む通信パケットを、次のように復元する。復元部17は、通信パケットに定義される仮想送信元情報に基づき、復元情報91Dを参照し、該当する仮想送信元項目に対応する送信元項目を特定する。復元部17は、特定した送信元項目に登録される複数の送信元情報を、復元した各通信パケットの送信先情報として取得する。つまり、復元部17は、通信パケットの仮想送信元に対応付けて、復元情報91Dに登録されている実際の送信元を、処理結果を送信する送信先とする。これにより、復元部17は、判定部12から受け取った通信パケットを、処理結果を含む実際の送信先ごとの通信パケットに復元する。このとき復元部17は、取得した複数の送信先情報に基づき、送信先、送信元、及び処理結果を含む通信パケットを、送信先ごとに生成する。復元部17は、生成した復元後の通信パケットを、通信部16に渡し、送信処理を指示する。なお、送信元が仮想送信元でない通信パケットは、復元部17による復元処理を行わず、復元部17を介して通信部16へと渡される。
【0032】
本実施形態に係る通信装置100は、このような各機能部が連携することで、次のような動作を実現する。
図6は、本実施形態に係る通信装置100の動作例を示す図である。
図6には、要求処理を行うサーバ200に相当する送信先aに対して、送信元A,B,Cから3つの通信パケットが送信された場合の動作例が示されている。
【0033】
本実施形態に係る通信装置100は、まず、判定部12により、通過する3つの通信パケットが圧縮対象か否かを判定する。このとき判定部12は、スロット内に通過した通信パケットの送信先がサーバリストSLに登録済みの場合、通信パケットを圧縮対象と判定し、通信パケットを一時記憶部13に記憶する。
【0034】
次に通信装置100は、解析部14による解析結果から、記憶した通信パケットのうち、同一の送信先aの類似パケットが存在する場合、圧縮部15により、類似パケットに該当した複数の通信パケットを圧縮する。このとき圧縮部15は、各通信パケットで異なる送信元A,B,Cに対して、仮想送信元V1を発行し、発行した仮想送信元V1と、各通信パケットで共通する同一の送信先aとが定義された1つの通信パケットを生成し、圧縮後の通信パケットとする。また、圧縮部15は、発行した仮想送信元V1と、各通信パケットの実際の送信先A,B,Cとを対応付け、復元情報91Dとして登録する。
【0035】
次に通信装置100は、通信部16により、圧縮後の通信パケットを、送信先aのサーバ200に送信し、処理の要求を行う。その結果、サーバ200は、要求された処理を行い、処理結果を含む通信パケットを通信装置100に送信し、処理要求に応答する。
【0036】
これを受けて通信装置100は、判定部12により、通過する通信パケットが復元対象か否かを判定する。このとき判定部12は、通信パケットの送信元が仮想送信元の場合、通信パケットを復元対象と判定し、復元部17に復元処理を指示する。その結果、通信装置100は、復元部17により、復元情報91Dを参照し、処理結果を含む通信パケットを、仮想送信元V1に対応付けて登録される送信元A,B,Cを各送信先とする、処理結果を含む3つの通信パケットに復元する。
【0037】
次に通信装置100は、通信部16により、復元後の3つの通信パケットを、各送信先A,B,Cに送信し、処理要求への応答を行う。
【0038】
以下に、上記動作を実現するために、本実施形態に係る通信装置100で実行される処理を説明する。
【0039】
《通信装置100の処理》
図7は、本実施形態に係る通信装置100の処理手順例を示すフローチャートである。
図7に示すように、本実施形態に係る通信装置100は、まず、入力部11が、通過する通信パケットを取得する(ステップS101)。
【0040】
次に、判定部12は、取得された通信パケットの送信先がサーバリストSLの登録サーバか否かを判定する(ステップS102)。このとき判定部12は、通信パケットに定義される送信先情報に基づき、SDNコントローラ70から取得したサーバリストSLを参照し、送信先に該当するサーバ200がサーバリストSLに登録されているか否かを判定する。
【0041】
その結果、判定部12は、送信先が登録サーバと判定した場合(ステップS102:Yes)、通信パケットが圧縮対象であるとし、スロット内で該当した通信パケットを一時記憶部13に記憶する(ステップS103)。
【0042】
これを受けて解析部14は、一時記憶部13に記憶された通信パケットを解析し、解析結果から、スロット内の通信パケットのうち、処理要求が類似する類似パケットが存在するか否かを判定する(ステップS104)。本実施形態では、スロット内の通信パケットのうち、送信先が同一の通信パケットが存在するか否かを判定する。
【0043】
その結果、解析部14は、スロット内に類似パケットが存在すると判定した場合(ステップS104:Yes)、類似パケットに該当した通信パケットを、圧縮部15に渡し、圧縮処理を指示する。
【0044】
これを受けて圧縮部15は、受け取った通信パケットに対応する復元情報91Dを、復元情報記憶部91に登録する(ステップS105)。このとき圧縮部15は、各通信パケットに定義される異なる複数の送信元情報を共通化するための仮想送信元情報を発行し、発行した仮想送信元情報と、各通信パケットに定義される異なる複数の送信元情報とが対応付けられた復元情報91Dを登録する。
【0045】
次に圧縮部15は、受け取った通信パケットを1つにまとめた圧縮後の通信パケットを生成する(ステップS106)。このとき圧縮部15は、発行した仮想送信元情報と、各通信パケットで共通する同一の送信先情報とが定義された1つの通信パケットを生成し、圧縮後の通信パケットを通信部16に渡し、送信処理を指示する。
【0046】
これを受けて通信部16は、受け取った圧縮後の通信パケットを、送信先に相当するサーバ200に送信する(ステップS107)。
【0047】
また、解析部14は、スロット内に類似パケットが存在しないと判定した場合(ステップS104:No)、類似パケットに該当しなかった通信パケットを、そのまま通信部16に渡し、送信処理を指示する。
【0048】
これを受けて通信部16は、受け取った通信パケットを、送信先に相当するサーバ200に送信する(ステップS108)。
【0049】
また、判定部12は、送信先がサーバリストSLに未登録のサーバと判定した場合(ステップS102:No)、通信パケットが圧縮対象でないとし、通信パケットの送信元を確認する(ステップS109)。このとき判定部12は、通信パケットに定義される送信元情報に基づき、通信パケットの送信元を確認する。
【0050】
次に判定部12は、送信元が仮想送信元か否かを判定する(ステップS110)。このとき判定部12は、通信パケットに定義される送信元情報が、圧縮時に発行された仮想送信元情報か否かを判定する。
【0051】
その結果、判定部12は、送信元が仮想送信元であると判定した場合(ステップS110:Yes)、通信パケットが復元対象であるとし、該当した通信パケットを、復元部17に渡し、復元処理を指示する。
【0052】
これを受けて復元部17は、復元情報91Dから送信先を取得する(ステップS111)。このとき復元部17は、復元情報記憶部91に記憶される復元情報91Dを参照し、受け取った通信パケットに定義される仮想送信元情報に対応付けて登録される複数の送信元情報を、復元した各通信パケットの送信先情報として取得する。
【0053】
次に復元部17は、受け取った通信パケットから、復元後の通信パケットを生成する(ステップS112)。このとき復元部17は、通信パケットに定義される送信元情報と、取得した送信先情報とが、送信先ごとに定義された複数の通信パケットを生成し、復元後の通信パケットを通信部16に渡し、送信処理を指示する。
【0054】
これを受けて通信部16は、受け取った復元後の通信パケットを、送信先に相当するクライアントに送信する(ステップS113)。
【0055】
また、判定部12は、送信元が仮想送信元でないと判定した場合(ステップS110:No)、通信パケットが復元対象でないとし、送信元が仮想送信元でなかった通信パケットを、そのまま通信部16に渡し、送信処理を指示する。
【0056】
これを受けて通信部16は、受け取った通信パケットを、送信先に相当するクライアントに送信する(ステップS114)。
【0057】
<まとめ>
以上のように、本実施形態に係る通信装置100によれば、受信した通信パケットを一時記憶する。本実施形態に係る通信装置100は、解析部14が、一時記憶した通信パケットの解析結果に基づき、類似パケットが存在するか否かを判定する。本実施形態に係る通信装置100は、類似パケットが存在する場合に、圧縮部15が、類似パケットに該当した複数の通信パケットを、1つの通信パケットにまとめて圧縮し、通信部16が、圧縮後の通信パケットを、処理の要求先に相当するサーバ200に送信する。
【0058】
これによって、本実施形態に係る通信装置100は、ストレージサービスなどの静的なコンテンツを提供するネットワークサービスにおいて、処理要求が類似する通信パケットをまとめて圧縮し、要求先のサーバ200に送信する環境を提供する。その結果、本実施形態に係る通信装置100は、サーバ200とサーバ200までの通信路との両方の負荷を軽減することができる。よって、本実施形態に係る通信装置100では、クラウド基盤における仮想アプライアンス80による高密度集約時のIO性能の向上が期待できる。
【0059】
なお、上記実施形態では、圧縮又は非圧縮を表す値の制御情報を含むサーバリストSL2のデータ例(
図4(B))を示したが、この限りでない。例えば、制御情報は、圧縮形式を表す値であってもよい。
【0060】
[第2の実施形態]
<概要>
本実施形態に係る通信装置が有する機能(通信機能)について説明する。本実施形態に係る通信装置は、例えば、要求処理を行うサーバやサーバまでの通信路などの通信パケットの混み具合に応じて、通信パケットの保持期間(スロット幅)を調整する。
【0061】
以下に、本実施形態に係る通信装置が有する機能の構成とその動作について説明する。なお、以下の説明では、上記実施形態と異なる事項について説明し、同じ事項については同一符号を付し、その説明を省略する。
【0062】
<通信装置100の機能>
図8は、本実施形態に係る通信装置100の機能構成例を示す図である。
図8に示すように、本実施形態に係る通信装置100は、第1の実施形態の機能構成に対して、調整部21を、さらに有する。
【0063】
調整部21は、通信パケットの混み具合(以下「混雑度」という)に応じて、一時記憶部13における通信パケットの保持期間(スロット幅)を調整する。調整部21は、例えば、通信パケットの混雑度の測定結果(例えば「通信負荷測定値」)を、SDNコントローラ70から取得し、取得した測定結果に基づき、通信パケットの保持期間(スロット幅)を調整する。
【0064】
図9は、類似パケットが同じスロット内に到達しなかった場合と到達した場合との動作比較例を示す図である。例えば、
図9(A)には、同一の送信先aの3つの通信パケット(類似パケット)のうち、送信元A,Bの2つの通信パケットが同じスロット内に到達した場合の例が示されている。送信元Cの通信パケットが、送信元A,Bの2つの通信パケットを同じスロット内に到達しなかった原因には、遅延が考えられ、通信パケットの混雑度が影響する。この場合、送信元A,Bの2つの通信パケットは、類似パケットとして1つにまとめられ圧縮されるが、送信元Cの通信パケットは、圧縮されず、圧縮率が低くなる。
【0065】
そのため、スロット幅を拡張し、一時記憶する通信パケットの保持期間を延長し、圧縮率を高める。例えば、
図9(B)には、スロット幅を拡張することで、遅延した送信元Cの通信パケットを含む同一の送信先aの3つの通信パケットが同じスロット内に到達した場合の例が示されている。この場合、送信元A,B,Cの3つの通信パケットは、類似パケットとして1つにまとめられ圧縮される。よって、圧縮率が高まる。
【0066】
一方で、スロット幅を拡張し、一時記憶する通信パケットの保持期間を延長するため、通信パケットによる処理要求への応答が遅くなる(応答速度が悪化する)。また、一時記憶する通信パケットの量が多くなるため、一時記憶部13の記憶容量(バッファ領域)を大きく確保する必要がある。このように、スロット幅を拡張し、一時記憶する通信パケットの保持期間を延長することは、これらの問題に対応する必要がある。
【0067】
そこで、本実施形態では、通信パケットの圧縮効率が、一時記憶部13における通信パケットの保持期間(スロット幅)と、同じスロット内を通過する通信パケットの平均到達率とに依存する点に着目し、通信装置100により、次のような調整を行う。
【0068】
調整部21は、通信パケットの混雑度の測定結果から、通信帯域に余裕があると判断した場合、保持期間(スロット幅)を短くし、圧縮効率より応答速度を優先するように調整する。一方、調整部21は、通信帯域に余裕がないと判断した場合、保持期間(スロット幅)を長くし、応答速度より圧縮効率を優先するように調整する。なお、通信帯域に余裕があるか否かの判断は、例えば、次のように行えばよい。調整部21は、混雑度の測定結果と、予め設定しておいた閾値とを比較し、混雑度の測定結果が閾値以上の場合、通信帯域に余裕がないと判断し、混雑度の測定結果が閾値未満の場合、通信帯域に余裕があると判断する。なお、閾値は、例えば、通信負荷状況の統計値に基づき算出した判断基準値や、通信負荷状況に応じて管理者などが設定した判断基準値などに相当する。
【0069】
このように、本実施形態では、所定幅にスロット幅を拡張し、一時記憶する通信パケットの保持期間を延長するものではない。本実施形態では、通信パケットの混雑度(通信負荷状況)に応じて、圧縮効率と応答速度とのどちらを優先させるかを決定し、通信パケットの保持期間(スロット幅)を調整する。
【0070】
以下に、上記動作を実現するために、本実施形態に係る調整部21で実行される処理を説明する。
【0071】
《調整部21の処理》
図10は、本実施形態に係る調整部21の処理手順例を示すフローチャートである。
図10に示すように、本実施形態に係る調整部21は、通信パケットの混雑度の測定結果を取得する(ステップS201)。このとき調整部21は、SDNコントローラ70から、通信パケットの混雑度の測定結果を取得する。なお、混雑度の測定結果は、受動的に取得してもよいし、能動的に取得してもよい。受動的に取得する場合には、例えば、所定の時間経過ごとに、SDNコントローラ70から通知される(フィードバックされる)測定結果を受信すればよい。また、能動的に取得する場合には、例えば、所定の時間経過ごとに、SDNコントローラ70に対して、測定結果の取得を要求すればよい。
【0072】
次に調整部21は、取得した計測結果が閾値以上か否かを判定する(ステップS202)。
【0073】
その結果、調整部21は、計測結果が閾値以上と判定した場合(ステップS202:Yes)、通信帯域に余裕がないとし、一時記憶部13における通信パケットの保持期間(スロット幅)を長く調整(延長)する(ステップS203)。つまり、調整部21は、通信帯域に余裕がない場合、応答速度より圧縮効率を優先するように調整する。このとき調整部21は、一時記憶部13における通信パケットの保持期間(スロット幅)の長さを制御する制御値を、現在の値より長く設定することで調整する。
【0074】
一方、調整部21は、計測結果が閾値未満と判定した場合(ステップS202:No)、通信帯域に余裕があるとし、一時記憶部13における通信パケットの保持期間(スロット幅)を短く調整(短縮)する(ステップS204)。つまり、調整部21は、通信帯域に余裕がある場合、圧縮効率より応答速度を優先するように調整する。このとき調整部21は、一時記憶部13における通信パケットの保持期間(スロット幅)の長さを制御する制御値を、現在の値より短く設定することで調整する。
【0075】
<まとめ>
以上のように、本実施形態に係る通信装置100によれば、受信した通信パケットを一時記憶する。このとき通信装置100では、調整部21により、通信パケットの混雑度に応じて調整された保持期間(スロット幅)に従って、受信した通信パケットを一時記憶される。本実施形態に係る通信装置100は、解析部14が、一時記憶した通信パケットの解析結果に基づき、類似パケットが存在するか否かを判定する。本実施形態に係る通信装置100は、類似パケットが存在する場合に、圧縮部15が、類似パケットに該当した複数の通信パケットを、1つの通信パケットにまとめて圧縮し、通信部16が、圧縮後の通信パケットを、処理の要求先に相当するサーバ200に送信する。
【0076】
その結果、本実施形態に係る通信装置100は、第1の実施形態と同様に、サーバ200とサーバ200までの通信路との両方の負荷を軽減することができる。また、本実施形態に係る通信装置100は、類似パケットの圧縮効率と処理要求への応答速度との両方を考慮し、通信パケットの混雑度に応じて、通信パケットの保持期間(スロット幅)を調整することにより、高品質なサービス提供を実現できる。
【0077】
[変形例1]
<概要>
本変形例1では、通信パケットの保持期間(スロット幅)を調整し、類似する複数の通信パケット(類似パケット)を、同じスロット内を通過させ、圧縮効率を高める方法を提案する。例えば、動画コンテンツなどのストリーミング配信サービスでは、同じ動画コンテンツの配信処理が、複数の異なるクライアントからサーバに要求される。このように、異なる送信先(クライアント)から送信された複数の通信パケットが類似パケットの場合には、圧縮効率の観点から、該当する各通信パケットが同じスロット内を通過することが望ましい。しかし、各送信先から通信パケットが送信されるタイミングは異なる。そのため、本変形例1では、調整部により、通信パケットの保持期間(スロット幅)を調整することで、スロット内に先に到達した通信パケットの通信速度を遅くし、類似パケットが同じスロット内を通過するように、各通信パケットの通信を同期させる。これにより、圧縮効率を高めるものである。つまり、本変形例1では、類似パケットがスロット内に到達する際のタイムラグを縮めて、圧縮効率を高めるものである。
【0078】
以下に、本変形例1に係る通信装置が有する機能の構成とその動作について説明する。なお、以下の説明では、上記実施形態と異なる事項について説明し、同じ事項については同一符号を付し、その説明を省略する。
【0079】
<通信装置100の機能>
調整部21は、通信パケットの通過状況に応じて、通信パケットの保持期間(スロット幅)を調整する。調整部21は、通信パケットの通過状況から、類似パケットの通信規則を解析し、解析結果に基づき、通信パケットの保持期間(スロット幅)を調整する。なお、通信規則は、類似パケットがスロット内に到達するタイミング(類似パケットの通過タイミング)の規則性に相当する。
【0080】
調整部21は、まず、スロット内における通信パケットの通過状況から、類似パケットの通信規則を解析する。調整部21は、スロット内における通信パケットの通過状況を、次のように記録する。調整部21は、例えば、スロット内を通過する通信パケットの内容と通過時刻との組み合わせ情報に対して、ハッシュ値を算出する。調整部21は、算出したハッシュ値(算出値)を、通過順に従って時系列に保持し、通過状況を表す記録とする。
【0081】
調整部21は、このようにして記録されたハッシュ値(算出値)に基づき、類似パケットがスロット内に到達するタイミングの規則性を解析し、解析結果に基づき、類似パケットが同じスロット内を通過するように、通信パケットの保持期間(スロット幅)を調整する。調整部21は、例えば、通信パケットの通過時に記録された類似パケットの量に応じて、保持期間(スロット幅)を調整し、スロット内に先に到達した通信パケットを遅延させる。
【0082】
このように、本変形例1では、通信パケットの通過状況から、類似パケットの通信規則を解析し、解析結果に基づき、類似パケットが同じスロット内を通過するように、通信パケットの保持期間(スロット幅)を調整する。
【0083】
以下に、上記動作を実現するために、本実施形態に係る調整部21で実行される処理を説明する。
【0084】
《調整部21の処理》
図11は、本変形例1に係る調整部21の処理手順例を示すフローチャートである。
図11に示すように、本実施形態に係る調整部21は、スロット内における通信パケットの通過状況を記録する(ステップS301)。このとき調整部21は、スロット内を通過する通信パケットの内容と通過時刻とを含む情報のハッシュ値を算出し、算出したハッシュ値を時系列に保持し、通過状況として記録とする。
【0085】
次に調整部21は、通信パケットの通過状況から、類似パケットの通信規則を解析する(ステップS302)。このとき調整部21は、時系列に記録したハッシュ値に基づき、類似パケットの通信規則を解析する。
【0086】
調整部21は、通信パケットの保持期間(スロット幅)を調整するか否かを判定する(ステップS303)。このとき調整部21は、類似パケットの通信規則の解析結果に基づき、類似パケットが同じスロット内を通過するように、スロット内に先に到達した通信パケットを遅延させる必要があるか否かを判定する。
【0087】
その結果、調整部21は、保持期間(スロット幅)を調整すると判定した場合(ステップS303:Yes)、一時記憶部13における通信パケットの保持期間(スロット幅)を長く調整する(ステップS304)。このとき調整部21は、一時記憶部13における通信パケットの保持期間(スロット幅)の長さを制御する制御値を、現在の値より長く設定することで調整する。
【0088】
一方、調整部21は、保持期間(スロット幅)を調整しないと判定した場合(ステップS303:No)、一時記憶部13における通信パケットの保持期間(スロット幅)の調整を行わない。
【0089】
<まとめ>
以上のように、本変形例1に係る通信装置100によれば、受信した通信パケットを一時記憶(バッファリング)する。このとき通信装置100では、調整部21により、スロット内における処理要求が類似する通信パケット(類似パケット)の通信規則に基づき、類似パケットが同じスロット内を通過するように調整された保持期間(スロット幅)に従って、受信した通信パケットを一時記憶される。本変形例1に係る通信装置100は、解析部14が、一時記憶した通信パケットの解析結果に基づき、類似パケットが存在するか否かを判定する。本変形例1に係る通信装置100は、類似パケットが存在する場合に、圧縮部15が、類似パケットに該当した複数の通信パケットを、1つの通信パケットにまとめて圧縮し、通信部16が、圧縮後の通信パケットを、処理の要求先に相当するサーバ200に送信する。
【0090】
その結果、本変形例1に係る通信装置100は、上記実施形態と同様の効果を奏するとともに、類似パケットがスロット内に到達する際のタイムラグを縮めることで、異なる送信先(クライアント)から送信された類似パケットに対する圧縮効率を高めることができる。これにより、本変形例1に係る通信装置100は、例えば、ストリーミング配信サービスなどで、高品質なサービス提供を実現できる。
【0091】
[変形例2]
<概要>
図12は、本変形例2に係る通信制御機能の概略を示す図である。
図12には、送信元Aと送信先aが同一の通信パケットが、同一の中継点(同一のノード)を経由する例が示されている。このように、本変形例2では、SDNコントローラ70が、各中継点(ノード)に配置された通信装置を制御することで、同一の通信パケットが同一の中継点を経由するように、通信を制御する(ルーティングする)。これにより、同一の通信パケットを同じ通信装置に集約し、圧縮効率を高めるものである。
【0092】
以下に、本変形例2に係る通信装置が有する機能の構成とその動作について説明する。なお、以下の説明では、上記実施形態と異なる事項について説明し、同じ事項については同一符号を付し、その説明を省略する。
【0093】
<通信装置100の機能>
本変形例2では、SDNコントローラ70が、同一の通信パケットが同一の中継点を経由するように、通信装置100が有する通信部16を制御する。よって、SDNコントローラ70は、通信制御部に相当する。
【0094】
通信部16は、解析部14、圧縮部15、又は復元部17などの他の機能部から受け取った通信パケットの中継点(次のノード)を決定する。通信部16は、まず、初めて受け付けた通信パケットの場合、通信パケットの送信先と内容との組み合わせ情報に対して、ハッシュ値を算出する。通信部16は、算出したハッシュ値(算出値)を、通信パケットに対応付けて記憶するとともに、SDNコントローラ70にハッシュ値を渡し、通信パケットの次の中継点(次のノード)の決定を要求する。
【0095】
SDNコントローラ70は、受け取ったハッシュ値(算出値)を、例えば、複数の隣接中継点(複数の隣接ノード)を含む所定の通信経路の範囲内で分類する。その結果、SDNコントローラ70は、ハッシュ値の分類結果から通信経路を特定し、特定した通信経路から次の中継点(次のノード)を決定する。
【0096】
通信部16は、SDNコントローラ70により決定された中継点(次のノード)に従って、通信パケットを送信する。
【0097】
このように、本変形例2では、通信パケットの送信先と内容とに基づき、通信パケットを分類し、分類結果から特定した通信経路から次の中継点(次のノード)を決定し、決定した中継点(ノード)に通信パケットを送信する。
【0098】
以下に、上記動作を実現するために、本実施形態に係る通信部16で実行される処理を説明する。
【0099】
《通信部16の処理》
図13は、本変形例2に係る通信部16の処理手順例を示すフローチャートである。
図13に示すように、本変形例2に係る通信部16は、通信パケットを受け取る(ステップS401)。
【0100】
次に通信部16は、受け取った通信パケットが、すでに受け取ったことのある通信パケットか否かを判定する(ステップS402)。このとき通信部16は、初めて受け取ったときに算出され記憶された、通信パケットの送信先と内容とを含む情報のハッシュ値に基づき判定する。
【0101】
その結果、通信部16は、受け取った通信パケットが、すでに受け取ったことのある通信パケットでないと判定した場合(ステップS402:No)、通信パケットの送信先と内容とを取得する(ステップS403)。これにより、通信部16は、取得情報のハッシュ値を算出し記憶する。
【0102】
一方、通信部16は、受け取った通信パケットが、すでに受け取ったことのある通信パケットであると判定した場合(ステップS402:Yes)、通信パケットの次の中継点(次のノード)を決定する(ステップS404)。このとき通信部16は、通信パケットに対応するハッシュ値に基づき、SDNコントローラ70に対して、通信パケットの次の中継点(次のノード)の決定を要求する。
【0103】
通信部16は、決定した中継点(ノード)に通信パケットを送信する(ステップS405)。
【0104】
<まとめ>
以上のように、本変形例2に係る通信装置100によれば、受信した通信パケットを一時記憶(バッファリング)する。本変形例2に係る通信装置100は、解析部14が、一時記憶した通信パケットの解析結果に基づき、処理要求が類似する通信パケット(類似パケット)が存在するか否かを判定する。本変形例2に係る通信装置100は、類似パケットが存在する場合に、圧縮部15が、類似パケットに該当した複数の通信パケットを、1つの通信パケットにまとめて圧縮する。本変形例2に係る通信装置100は、通信部16が、通信パケットの送信先と内容とに基づき特定した通信経路から、通信パケットの次の中継点(次のノード)を決定し、決定した中継点(ノード)に通信パケットを送信する。
【0105】
その結果、本変形例2に係る通信装置100は、上記実施形態と同様の効果を奏するとともに、同一の通信パケットを同一の中継点(同一のノード)に集約することができ、さらに圧縮効率を高めることができる。
【0106】
<装置>
図14は、上記実施形態に係る通信装置100の構成例を示す図である。
図14(A)に示すように、実施形態に係る通信装置100は、CPU(Central Processing Unit)101、及び主記憶装置102などを備える。また、通信装置100は、補助記憶装置103、通信IF(interface)104、及び外部IF105などを備える。通信装置100は、各デバイスがバスBを介して相互に接続される。
【0107】
CPU101は、装置全体の制御や搭載機能を実現するための演算装置である。主記憶装置102は、プログラムやデータなどを所定の記憶領域に保持する記憶装置(メモリ)である。主記憶装置102は、例えば、ROM(Read Only Memory)やRAM(Random Access Memory)などである。また、補助記憶装置103は、主記憶装置102より容量の大きい記憶領域を備える記憶装置である。補助記憶装置103は、例えば、HDD(Hard Disk Drive)やメモリカード(Memory Card)などの不揮発性の記憶装置である。よって、CPU101は、例えば、補助記憶装置103から主記憶装置102上に、プログラムやデータを読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する。
【0108】
通信IF104は、装置を通信路に接続するインタフェースである。これにより、通信装置100は、他の通信装置、クライアントやサーバ200などの情報処理装置とデータ通信が行える。外部IF105は、装置と外部装置106との間でデータを送受信するためのインタフェースである。外部装置106には、例えば、処理結果などの各種情報を表示する表示装置(例えば「液晶ディスプレイ」)などがある。
【0109】
なお、実施形態に係る通信装置100は、
図14(B)に示すような一般的な情報処理装置であってもよい。この場合、通信装置100は、ドライブ装置107をさらに備える。ドライブ装置107は、記憶媒体108の書き込み又は読み取りを行う制御装置である。記憶媒体108は、例えば、フレキシブルディスク(FD)、CD(Compact Disk)、及びDVD(Digital Versatile Disk)などである。また、外部装置106には、例えば、操作入力を受け付ける入力装置(例えば「テンキー」、「キーボード」、又は「タッチパネル」)などがある。
【0110】
また、上記実施形態に係る通信機能は、例えば、通信装置100において、プログラムを実行することで、上記各機能部が連携動作することで実現される。この場合、プログラムは、実行環境の装置(コンピュータ)が読み取り可能な記憶媒体に、インストール可能な形式又は実行可能な形式のファイルで記録され提供される。例えば、通信装置100が情報処理装置の場合には、プログラムは、上記各機能部を含むモジュール構成となっており、CPU101が記憶媒体108からプログラムを読み出し実行することで、主記憶装置102のRAM上に各機能部が生成される。なお、プログラムの提供方法は、この限りでない。例えば、プログラムを、インターネットなどに接続された記憶装置に格納し、通信路を経由してダウンロードする方法であってもよい。また、主記憶装置102のROMや補助記憶装置103のHDDなどに予め組み込んで提供する方法であってもよい。なお、ここでは、通信機能をソフトウェアの実装により実現する例を説明したが、この限りでない。例えば、通信機能が有する各機能部の一部又は全部を、ハードウェアの実装により実現してもよい。
【0111】
最後に、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。