(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、HTTP通信を考えた場合、ユーザがブラウザを操作してWEBを閲覧するコンテンツデータもOSのアップデートなどバックグラウンドでダウンロードされるアップデートデータのいずれも優先度が同じHTTPパケットで転送される。中継トラフィックの輻輳により応答の遅延が発生する場合、システム側起因の通信(上記のアップデートデータなど)に比べてWEB閲覧等に起因した通信(上記のコンテンツデータなど)における遅延ほうがユーザにとってストレスが大きい。そのため、WEB閲覧等に起因した通信を優先的に転送することでユーザにとってストレスの少ない転送処理ができる。
【0006】
しかしながら、従来の優先度を設定する方法では、優先度を決定するのは送信端末であるため、中継装置側で優先度を決定することはできない。また、中継装置に優先すべき通信の条件を設定する方法では、ユーザの実施する通信は多岐に渡るため、あらかじめすべてを設定しておくことは不可能である。
【0007】
また、特許文献1の方法では、同一ポートを使用するアプリケーションは同じ優先度となるため、例えば、WEB閲覧時の体感速度に影響する文書ファイルや画像ファイルと体感速度に影響の少ない圧縮ファイルが同じポート番号を使用して送信される場合、いずれの通信も同じの優先度となってしまい、ユーザにとってストレスの少ない転送処理はできない。
【0008】
本発明は、上記に鑑みてなされたものであり、ユーザにとってストレスの少ない優先度で転送処理を行うことを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る中継装置は、取得するコンテンツの種
別を条件として当該条件に優先度を関連付けた優先条件を格納する優先条件記憶手段と、送信元情報と宛先情報に優先度を関連付けた優先度情報を格納する優先度記憶手段と、コンテンツ取得要求を受信したときに、当該コンテンツ取得要求から取得するコンテンツの種
別を抽出し、前記優先条件記憶手段に格納された優先条件の条件に合致する前記優先条件を検索する優先条件検索手段と、前記コンテンツ取得要求の送信元情報と宛先情報から当該コンテンツ取得要求に対する応答パケットの送信元情報と宛先情報を特定し、応答パケットの送信元情報と宛先情報に前記優先条件検索手段が検索した前記優先条件の優先度を関連付けて優先度記憶手段に登録する優先度設定手段と、パケットを受信したときに、当該パケットの送信元情報と宛先情報に合致する前記優先度情報を前記優先度記憶手段から検索し、検索した優先度情報の優先度に基づいて優先処理を行いパケットを転送する優先処理手段と、
を有し、前記優先条件は、前記コンテンツの種別がブラウザで表示されるものの優先度を高くしたことを特徴とする。
【0010】
上記中継装置において、前記コンテンツ取得要求は、HTTPリクエストであって、前記取得するコンテンツの種別はRequest−URI
フィールドの値の拡張子を指定したものであることを特徴とする。
【0011】
上記中継装置において、当該中継装置はパケットの送信元情報あるいは宛先情報を変換してパケットを送信するものであって、変換前のパケットの送信元情報と宛先情報に、当該パケットの変換後のパケットに応答するパケットの送信元情報と宛先情報を関連付けた追跡情報を格納する追跡情報記憶手段を有し、前記優先度設定手段は、前記コンテンツ取得要求の送信元情報と宛先情報を前記変換前のパケットの送信元情報と宛先情報として持つ追跡情報を前記追跡情報記憶手段から検索し、当該追跡情報の前記応答するパケットの送信元情報と宛先情報を前記応答パケットの送信元情報と宛先情報とすることを特徴とする。
【発明の効果】
【0012】
本発明によれば、ユーザにとって応答速度が速いことが望まれる情報のパケットを高い優先度で転送処理を行うことができる。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について図面を用いて説明する。
【0015】
図1は、本実施の形態における中継装置の構成を示す機能ブロック図である。
【0016】
図1に示す中継装置1は、下流ネットワークの端末2と上流ネットワークのWEBサーバ3との間でパケットを転送する装置であり、端末2がHTTP(Hyper Text Transport Protocol)によりコンテンツの取得要求を送信したときに、端末2が送信した上りのHTTPパケットを解析して対応する下りのHTTPパケットの優先度を決定し、下りのHTTPパケットを決定した優先度に基づいて転送する。以下、本実施の形態における中継装置1について説明する。
【0017】
中継装置1は、HTTP構文解析処理部11、優先度設定機能部12、優先条件テーブル13、接続追跡テーブル14、優先度テーブル15、優先処理部16、中継処理部17、およびL2SW(レイヤ2スイッチ)18を備える。中継装置1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはが備える各部は、が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。以下、各部について説明する。
【0018】
HTTP構文解析処理部11は、LAN側(端末2側)からWAN側(WEBサーバ3側)へ向かう上りパケットのうちHTTPパケットを中継処理部17から受け取り、HTTPパケットの送信元情報と宛先情報を取得するとともに、HTTPパケットのヘッダ情報を解析してRequest−URIや各ヘッダフィールドなどのHTTPヘッダ情報を抽出し、送信元情報、宛先情報、HTTPヘッダ情報を優先度設定機能部12に渡す。
【0019】
優先度設定機能部12は、HTTP構文解析処理部11から受け取ったHTTPヘッダ情報に合致する条件を持つエントリを優先条件テーブル13から検索し、合致する条件を持つエントリが存在する場合は、HTTP構文解析処理部11から受け取った送信元情報、宛先情報に基づいて応答パケット情報を生成し、そのエントリの優先度を応答パケット情報に関連付けて優先度テーブル15に格納する。応答パケット情報は、HTTP構文解析処理部11から受け取った送信元情報、宛先情報をもつパケットに対する応答として期待されるパケットの送信元情報と宛先情報であり、接続追跡テーブル14を参照して特定する。
【0020】
優先条件テーブル13は、HTTPヘッダ情報に優先度を関連付けたテーブルである。
図2に優先条件テーブル13に格納されるデータの例を示す。本実施の形態における優先条件テーブル13は、Request−URIやUser−Agentなどのヘッダフィールド名と正規表現で表現した値を組とした条件に優先度を関連付けている。
図2の例では、取得するコンテンツの種別で優先度を設定する例として、Request−URIの値がjpgファイル,htmlファイルなどブラウザで表示されるコンテンツの種別のエントリの優先度を最高値Nに設定し、tarファイルやzipファイルなどの圧縮ファイルは優先度を低めの2に設定している。また、Request−URIで指定されるコンテンツの種別以外にも、コンテンツを取得する手段で優先度を設定する例として、User−Agentの値がブラウザなどユーザが操作するものを示すエントリの優先度を最高値Nに設定している。
【0021】
なお、優先条件テーブル13の各エントリは予め初期値を保持しておいてもよく、サーバなどから配信されるものでも、ユーザが自ら設定するものでもよい。また、本実施の形態では、優先度が大きいものほど高い優先度を持ち、最高優先度をN(Nは自由に設定可能)、最低優先度を1とする。優先条件テーブル13のエントリに記載がないものは最低優先度とする。
【0022】
接続追跡テーブル14は、パケットの中継を実施するにあたり、NAT変換やルーティングを管理するためのテーブルであり、LAN側からWAN側に送信された送信パケットに対する返信として期待される応答パケットの情報が記載される。
図3に接続追跡テーブル14に格納されるデータの例を示す。
図3に示す例は、端末2(IPアドレス「192.168.1.2」)が10000番ポートからWEBサーバ3(IPアドレス「10.10.10.2」)の80番ポートにHTTPリクエストを送信したときに追加されるエントリである。中継装置1において、送信元アドレスが中継装置1のWAN側IPアドレスである「10.10.10.1」に、送信元ポート番号が10001にNAT変換されたため、期待される応答パケットの宛先アドレス(
図3のWAN側宛先アドレス)が「10.10.10.1」、宛先ポート番号(
図3のWAN側宛先ポート番号)が10001番ポートとなっている。なお、この接続追跡テーブル14のエントリは、HTTPリクエストを送信する前のTCPセッションを確立する際に追加される。
【0023】
優先度テーブル15は、パケットを転送する際に、どのパケットを優先的に中継するかを判定するためのテーブルであり、パケットの送信元情報と宛先情報に優先度が関連付けられている。
図4に優先度テーブル15に格納されるデータの例を示す。
図4に示す例は、送信元情報として、送信元IPアドレス、送信元ポート番号、宛先情報として、宛先IPアドレス、宛先ポート番号を記載し、これらのパケット情報に優先度とライフタイムが関連付けられている。TOS値やDSCP値などが同じ優先度の下りパケットについて、パケットの送信元情報、宛先情報が合致するエントリが優先度テーブルに存在する場合は、エントリ中の優先度が高いパケットを優先的に転送する。ライフタイムは、エントリの有効期間を示す値である。エントリが生成されたとき、エントリが更新されたときに最大値が設定される。ライフタイムは、定期的にデクリメントされ、0となったときにエントリが削除される。
【0024】
優先処理部16は、WAN側からLAN側に送信された下りパケットについて、パケットの送信元情報、宛先情報が合致するエントリを優先度テーブル15から検索し、合致したエントリの優先度に基づいて優先処理を行う。優先処理部16は、パケットがHTTPパケットであるか否かにかかわらず、パケットの送信元情報、宛先情報のみから優先度を検索する。
【0025】
中継処理部17は、2つのL2SW18に保持されたパケットを取得して、LAN側からWAN側へ、WAN側からLAN側へパケットを転送する。LAN側からWAN側へ転送する上りパケットのうちHTTPパケットをHTTP構文解析処理部11に渡す。WAN側からLAN側へ転送する下りパケットは、転送するパケットがHTTPパケットであるか否かにかかわらず優先処理部16に渡す。
【0026】
2つのL2SW18は、LAN側、WAN側それぞれから送信されたパケットを一時的に保持する。
【0027】
次に、本実施の形態における中継装置の処理について説明する。
【0028】
まず、中継装置1が端末2からHTTPリクエストを受信したときに、対応するHTTPレスポンスのパケットに優先度を設定する処理について説明する。
【0029】
図5は、中継装置1が端末2側からWEBサーバ3側へパケットを転送するときの処理の流れを示すフローチャートである。
【0030】
中継処理部17は、端末2側のL2SWから取得したパケットがHTTPパケットの場合は、そのHTTPパケットをHTTP構文解析処理部11に渡す。
【0031】
HTTP構文解析処理部11は、受け取ったHTTPパケットのヘッダを解析し、Request−URIや各ヘッダフィールド名とその値などのHTTPヘッダ情報を取得し、HTTPパケットの送信元情報と宛先情報、およびHTTPヘッダ情報を優先度設定機能部12に渡す(ステップS101)。
【0032】
優先度設定機能部12は、優先条件テーブル13からHTTPヘッダ情報に合致するエントリを検索する(ステップS102)。具体的には、Request−URIやヘッダフィールド名とその値が合致するエントリを優先条件テーブル13から検索する。複数のエントリが合致する場合は、合致するエントリのうち最も優先度の高いエントリを選択する。
【0033】
合致するエントリが存在しない場合は(ステップS103のNO)、ステップS109に進み、中継処理部17にHTTPパケットを受け渡して処理を終了する。
【0034】
合致するエントリが存在する場合は(ステップS103のYES)、優先度設定機能部12は、HTTP構文解析処理部11から受け取った送信元情報、宛先情報に合致するエントリを接続追跡テーブル14から検索し、端末2が送信したHTTPリクエストに対するHTTPレスポンスの応答パケット情報を特定する(ステップS104)。具体的には、HTTP構文解析処理部11から受け取った送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号の全てが、接続追跡テーブル14のLAN側送信元IPアドレス、LAN側宛先IPアドレス、LAN側送信元ポート番号、LAN側宛先ポート番号に合致するエントリを検索し、そのエントリのWAN側送信元IPアドレス、WAN側宛先IPアドレス、WAN側送信元ポート番号、WAN側宛先ポート番号を対応するHTTPレスポンスの応答パケット情報とする。なお、中継装置1がNAT処理など送信元情報や宛先情報を変換する処理を行わない場合は、HTTP構文解析処理部11から受け取った送信元情報、宛先情報それぞれを宛先情報、送信元情報としたものが応答パケット情報となる。
【0035】
そして、優先度設定機能部12は、優先度テーブル15から応答パケット情報に合致するエントリを検索する(ステップS105)。この処理は、優先度テーブル15にすでに応答パケット情報が登録されているか否か調べる処理である。
【0036】
合致するエントリが存在する場合は(ステップS106のYES)、当該エントリの優先度をステップS102で検索したエントリの優先度で更新する(ステップS107)。このときライフタイムも最大値に更新する。
【0037】
合致するエントリが存在しない場合は(ステップS106のNO)、応答パケット情報とステップS102で検索したエントリの優先度をひも付けて優先度テーブル15に格納する(ステップS108)。
【0038】
そして、HTTPパケットを中継処理部17に受け渡して処理を終了する(ステップS109)。
【0039】
続いて、WEBサーバ3がHTTPレスポンスを返したときの処理について説明する。
【0040】
図6は、中継装置1がWEBサーバ3側から端末2側へパケットを転送するときの処理の流れを示すフローチャートである。
【0041】
中継処理部17は、WEBサーバ3側L2SW18内の中継処理待ちバッファを確認し(ステップS201)、バッファに中継処理待ちパケットが存在しない場合は(ステップS202のNO)、ステップS201に戻りパケットの到着を待つ。
【0042】
バッファに中継処理待ちパケットが存在する場合(ステップS202のYES)、優先度テーブル15のエントリを確認し、中継処理待ちパケットの優先度をチェックする(ステップS203)。具体的には、中継処理待ちパケットの送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号が合致するエントリを優先度テーブルから検索し、送信元情報、宛先情報が合致したエントリの優先度を取得する。合致するエントリが存在しない場合は、最低の優先度とする。
【0043】
そして、中継処理待ちパケットの中で最高優先度のパケットを取り出し(ステップS204)、中継処理部17で取り出したパケットを処理(NATなど)して端末2に送信する(ステップS205)。なお、最高優先度のパケットが複数存在している場合は、最高優先度のパケットをFIFO(First In First Out)で処理する。
【0044】
以上説明したように、本実施の形態によれば、優先度設定機能部12がLAN側から送信されたHTTPパケットのHTTPヘッダ情報に合致するエントリを優先条件テーブル13から検索して優先度を取得するとともに、HTTPパケットの送信元情報、宛先情報から対応するHTTPレスポンスの応答パケット情報を特定して、応答パケット情報に優先度を関連付けて優先度テーブル15に格納し、優先処理部16がWAN側から送信されたパケットの送信元情報、宛先情報が合致するエントリを優先度テーブル15から検索して優先度を取得し、パケットの優先処理を行うことにより、HTTPリクエストにより要求されたファイルの種別に応じて優先度を設定できるので、ユーザストレスの少ない優先度でパケットの転送処理を行うことが可能となる。また、下りパケットについては、送信元情報と宛先情報のみを用いて優先度を決めているので、下りパケットを詳細に解析する必要が無く、中継速度の低下を抑制できる。
【0045】
本実施の形態によれば、優先条件テーブル13にRequest−URIで指定したコンテンツの種別だけでなく、User−Agentの条件も指定することにより、ユーザが操作しているアプリケーションとシステムによるダウンロードとを区別でき、ユーザ操作の対象となっている情報のパケットに高い優先度を設定可能となる。
【0046】
この結果、ユーザにとって応答速度が速いことが望まれる情報の下りパケットが優先的に転送される。HTTPメッセージは、TCPにより送受信されるが、TCPの下りパケットが優先的に端末に転送されることにより、当該パケットに対応するACKを伝達する上りパケットも迅速にWEBサーバ側へ送出される。これに伴い、TCPの帯域制御が有効に機能して、当該TCPセッションのスループットが向上し、WEBサーバから端末側へより迅速にコンテンツが配信され、ユーザは遅延によるストレスなくコンテンツを受信視聴できるようになる。