(57)【要約】【課題】パケット転送装置が中継する同一のフローのなかでのアプリケーションの切り替わりを確実に検出し、適切なＱｏＳ制御を実行する。 【解決手段】パケット転送装置１は、受信したパケットを、識別処理部３１に転送する通常ルートの転送と、転送処理部２２に転送するカットスルー転送とに振り分ける振分け処理部２１を備え、識別処理部３１が、サービス要求パケットのペイロードを解析することで、所定のアプリケーションに係るサービス要求パケットと同一または逆方向のフローの対象パケットをカットスルー転送に振り分けるように、振分け処理部２１に指示し、振分け処理部２１が、指示された通信方向に受信される連続した対象パケットをカットスルー転送に振り分ける一方、指示された通信方向と逆向きのパケットが受信された場合は、続く対象パケットを通常ルートの転送に振り分ける。【選択図】図２
2015043489.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰネットワークに接続されるユーザ端末と、前記ユーザ端末に所定のアプリケーションに係るサービスを提供するサーバとの間で送受されるパケットを中継するパケット転送装置であって、
前記パケットのペイロードを解析する識別処理部と、
前記パケットを中継先に転送する転送処理部と、
受信した前記パケットのそれぞれを、前記識別処理部に転送する通常ルートの転送と、前記転送処理部に転送するカットスルー転送とのいずれかに振り分ける振分け処理部と、を備え、
前記識別処理部は、前記サーバに中継する前記パケットのうちのサービス要求パケットのペイロードを解析することによって、前記所定のアプリケーションに係る前記サービス要求パケットと同一または逆の送信元及び宛先の組を有する連続した前記パケットを前記カットスルー転送に振り分けるように、前記振分け処理部に指示し、
前記振分け処理部は、前記識別処理部からカットスルー転送を指示された対象パケットが指示された通信方向に２以上連続して受信されている間は、当該対象パケットを前記カットスルー転送に振り分ける一方、指示された通信方向と逆向きの前記パケットが受信された場合は、当該パケットに続く前記対象パケットを前記通常ルートの転送に振り分ける
ことを特徴とするパケット転送装置。
【請求項２】
請求項１に記載のパケット転送装置において、
前記対象パケットによって形成されるフローの帯域制御及び優先制御を司るＱｏＳ制御部をさらに備え、
前記識別処理部は、前記アプリケーションの識別情報と当該アプリケーションに係るフローに適用するＱｏＳ制御パラメータとが対応付けられて予め登録されたテーブルを参照することによって、当該テーブルに登録された前記アプリケーションに係る前記サービス要求パケットのペイロードを解析したときに、当該アプリケーションに対応付けられている前記ＱｏＳ制御パラメータを取得し、取得した前記ＱｏＳ制御パラメータを前記アプリケーションに係る前記フローに適用するように、前記ＱｏＳ制御部に指示する
ことを特徴とするパケット転送装置。
【請求項３】
請求項１に記載のパケット転送装置において、
前記識別処理部は、前記対象パケットを前記カットスルー転送に振り分けるように、前記振分け処理部に指示したのちに、当該対象パケットとは異なる前記所定のアプリケーションに係る前記サービス要求パケットを検知した場合、または、当該対象パケットの送受に用いられているＴＣＰセッションの切断を検知した場合は、当該対象パケットに係る前記カットスルー転送への振分け指示を取り消す
ことを特徴とするパケット転送装置。
【請求項４】
ユーザ端末と、前記ユーザ端末に所定のアプリケーションに係るサービスを提供するサーバと、前記ユーザ端末と前記サーバとの間で送受されるパケットを中継する請求項１から３のいずれか一項に記載のパケット転送装置とが、ＩＰネットワークに接続されて構成されていることを特徴とするパケット転送システム。
【請求項５】
ＩＰネットワークに接続されるユーザ端末と、前記ユーザ端末に所定のアプリケーションに係るサービスを提供するサーバとの間で送受されるパケットを中継するパケット転送装置のパケット転送方法であって、
前記パケットのペイロードを解析する識別処理ステップと、
前記パケットを中継先に転送する転送処理ステップと、
受信した前記パケットのそれぞれを、前記識別処理ステップで処理する通常ルートの処理と、前記転送処理ステップで処理するカットスルー処理とのいずれかに振り分ける振分け処理ステップと、を備え、
前記識別処理ステップでは、前記サーバに中継する前記パケットのうちのサービス要求パケットのペイロードを解析することによって、前記所定のアプリケーションに係る前記サービス要求パケットと同一または逆の送信元及び宛先の組を有する連続した前記パケットを前記カットスルー処理に振り分けるように、前記振分け処理ステップにおける処理を指示し、
前記振分け処理ステップでは、前記識別処理ステップにてカットスルー処理を指示された対象パケットが指示された通信方向に２以上連続して受信されている間は、当該対象パケットを前記カットスルー処理に振り分ける一方、指示された通信方向と逆向きの前記パケットが受信された場合は、当該パケットに続く前記対象パケットを前記通常ルートの処理に振り分ける
ことを特徴とするパケット転送方法。
【請求項６】
請求項５に記載のパケット転送方法において、
前記識別処理ステップと前記転送処理ステップとの間に、前記対象パケットによって形成されるフローの帯域制御及び優先制御を司るＱｏＳ制御ステップをさらに備え、
前記識別処理ステップでは、前記アプリケーションの識別情報と当該アプリケーションに係るフローに適用するＱｏＳ制御パラメータとが対応付けられて予め登録されたテーブルを参照することによって、当該テーブルに登録された前記アプリケーションに係る前記サービス要求パケットのペイロードを解析したときに、当該アプリケーションに対応付けられている前記ＱｏＳ制御パラメータを取得し、取得した前記ＱｏＳ制御パラメータを前記アプリケーションに係る前記フローに適用するように、前記ＱｏＳ制御ステップにおける処理を指示する
ことを特徴とするパケット転送方法。
【請求項７】
請求項５に記載のパケット転送方法において、
前記識別処理ステップでは、前記対象パケットを前記カットスルー処理に振り分けるように、前記振分け処理ステップにおける処理を指示したのちに、当該対象パケットとは異なる前記所定のアプリケーションに係る前記サービス要求パケットを検知した場合、または、当該対象パケットの送受に用いられているＴＣＰセッションの切断を検知した場合は、当該対象パケットに係る前記カットスルー処理への振分け指示を取り消す
ことを特徴とするパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のネットワーク間でパケット転送を行うパケット転送装置、パケット転送システム、及びパケット転送方法に関する。
【背景技術】
【０００２】
近年、インターネットのトラヒックの中で、動画配信サービスやＩＰ（Internet Protocol）電話サービスなど、大量のデータ転送が必要であったりリアルタイム性が要求されたりするコンテンツの比率が高まっている。そこで、これら各種のコンテンツの中継を行うＩＰルータなどのパケット転送装置には、それぞれのコンテンツに応じた優先制御や帯域制御などのＱｏＳ（Quality of Service）制御によって、サービス品質を確保することが求められている。
【０００３】
コンテンツに応じたＱｏＳ制御を行うためには、コンテンツの存在場所を示すＵＲＬ（Uniform Resource Locator）やメディア種別などのコンテンツ情報を取得する必要がある。そのためには、中継するＩＰパケット（以降、「パケット」と略記。）のヘッダのみではなく、データ部であるペイロードを解析する必要がある。しかし、このペイロードの解析には、ヘッダの処理と比較して大きな処理負荷を要する。
【０００４】
そこで、例えば非特許文献１には、コンテンツの識別が完了してペイロードを解析する必要がなくなったフローをフローテーブル（フロー検索テーブル）に登録しておき、以降のパケットはパケット転送部だけで転送するカットスルー転送方式が提案されている。なお、フローとは、同一の送信元と宛先との間でやり取りされる一連のパケット群のことであり、それらのパケットのヘッダに含まれる５ｔｕｐｌｅ（送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号、プロトコル種別）はすべて同一の値をもつ。この従来技術では、フローテーブルに登録されたフローを削除したり変更したりする契機として、データ通信量の変動及び無通信時間の長さが用いられる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】西山聡史、外４名、「サービスルータにおけるトラヒック動的制御の性能向上を目的としたフロー検知・カットスルー方式」、2012年11月、電子情報通信学会技術研究報告、vol. 112、no. 287、NS2012-112、p. 47-52
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、前記の従来技術では、同一のフローのなかでアプリケーションが切り替わった場合に、データ通信量が大きく変化しなかったり、無通信時間が短かったりすると、アプリケーションの切り替わりが検出できないという問題がある。このため、前記の従来技術では、同一のフローのなかで実行される２番目以降のアプリケーションのコンテンツに対して、適切なＱｏＳ制御が行われない可能性がある。また、カットスルー転送を取りやめる契機の検出が遅れるため、フローテーブルからの不要なフローの情報の削除が遅くなり、フローテーブルの容量が逼迫する可能性が高まる。
【０００７】
本発明は、かかる従来技術の問題を解決するためになされたものであり、その主たる目的は、パケット転送装置が中継する同一のフローのなかでアプリケーションが切り替わった場合に、それを確実に検出して、適切なＱｏＳ制御を実行可能とすることにある。
【課題を解決するための手段】
【０００８】
前記の目的を達成するために、本発明は、ＩＰネットワークに接続されるユーザ端末と、前記ユーザ端末に所定のアプリケーションに係るサービスを提供するサーバとの間で送受されるパケットを中継するパケット転送装置であって、前記パケットのペイロードを解析する識別処理部と、前記パケットを中継先に転送する転送処理部と、受信した前記パケットのそれぞれを、前記識別処理部に転送する通常ルートの転送と、前記転送処理部に転送するカットスルー転送とのいずれかに振り分ける振分け処理部と、を備え、前記識別処理部は、前記サーバに中継する前記パケットのうちのサービス要求パケットのペイロードを解析することによって、前記所定のアプリケーションに係る前記サービス要求パケットと同一または逆の送信元及び宛先の組を有する連続した前記パケットを前記カットスルー転送に振り分けるように、前記振分け処理部に指示し、前記振分け処理部は、前記識別処理部からカットスルー転送を指示された対象パケットが指示された通信方向に２以上連続して受信されている間は、当該対象パケットを前記カットスルー転送に振り分ける一方、指示された通信方向と逆向きの前記パケットが受信された場合は、当該パケットに続く前記対象パケットを前記通常ルートの転送に振り分けるものとした。
【０００９】
こうすることにより、カットスルー転送が行われているフローのなかでアプリケーションが切り替わる場合に発生する逆向きのパケットを検出して、続くパケットを識別処理部に転送するので、アプリケーションの切り替わりを確実に検出することができる。
【００１０】
また、本発明は、前記のパケット転送装置において、前記対象パケットによって形成されるフローの帯域制御及び優先制御を司るＱｏＳ（Quality of Service）制御部をさらに備え、前記識別処理部は、前記アプリケーションの識別情報と当該アプリケーションに係るフローに適用するＱｏＳ制御パラメータとが対応付けられて予め登録されたテーブルを参照することによって、当該テーブルに登録された前記アプリケーションに係る前記サービス要求パケットのペイロードを解析したときに、当該アプリケーションに対応付けられている前記ＱｏＳ制御パラメータを取得し、取得した前記ＱｏＳ制御パラメータを前記アプリケーションに係る前記フローに適用するように、前記ＱｏＳ制御部に指示するものとした。
【００１１】
こうすることにより、実行されるそれぞれのアプリケーションのコンテンツ毎に、適切なＱｏＳ制御を実現することが可能となる。
【００１２】
また、本発明は、前記のパケット転送装置において、前記識別処理部は、前記対象パケットを前記カットスルー転送に振り分けるように、前記振分け処理部に指示したのちに、当該対象パケットとは異なる前記所定のアプリケーションに係る前記サービス要求パケットを検知した場合、または、当該対象パケットの送受に用いられているＴＣＰ（Transmission Control Protocol）セッションの切断を検知した場合は、当該対象パケットに係る前記カットスルー転送への振分け指示を取り消すものとした。
【００１３】
こうすることにより、フローテーブルから不要なフローの情報が迅速に削除されるので、フローテーブルの容量が逼迫する可能性を低くすることができる。
【００１４】
また、本発明のパケット転送システムは、ユーザ端末と、前記ユーザ端末に所定のアプリケーションに係るサービスを提供するサーバと、前記ユーザ端末と前記サーバとの間で送受されるパケットを中継する前記のパケット転送装置とが、ＩＰネットワークに接続されて構成されているものとした。
【００１５】
こうすることにより、実行されるアプリケーションのコンテンツ毎に、適切なＱｏＳ制御を実行可能なパケット転送システムを実現することができる。
【００１６】
また、本発明は、ＩＰネットワークに接続されるユーザ端末と、前記ユーザ端末に所定のアプリケーションに係るサービスを提供するサーバとの間で送受されるパケットを中継するパケット転送装置のパケット転送方法であって、前記パケットのペイロードを解析する識別処理ステップと、前記パケットを中継先に転送する転送処理ステップと、受信した前記パケットのそれぞれを、前記識別処理ステップで処理する通常ルートの処理と、前記転送処理ステップで処理するカットスルー処理とのいずれかに振り分ける振分け処理ステップと、を備え、前記識別処理ステップでは、前記サーバに中継する前記パケットのうちのサービス要求パケットのペイロードを解析することによって、前記所定のアプリケーションに係る前記サービス要求パケットと同一または逆の送信元及び宛先の組を有する連続した前記パケットを前記カットスルー処理に振り分けるように、前記振分け処理ステップにおける処理を指示し、前記振分け処理ステップでは、前記識別処理ステップにてカットスルー処理を指示された対象パケットが指示された通信方向に２以上連続して受信されている間は、当該対象パケットを前記カットスルー処理に振り分ける一方、指示された通信方向と逆向きの前記パケットが受信された場合は、当該パケットに続く前記対象パケットを前記通常ルートの処理に振り分けるものとした。
【００１７】
こうすることにより、カットスルー処理が行われているフローのなかでアプリケーションが切り替わる場合に発生する逆向きのパケットを検出して、続くパケットを通常ルートの処理に振り分けるので、アプリケーションの切り替わりを確実に検出することができる。
【００１８】
また、本発明は、前記のパケット転送方法において、前記識別処理ステップと前記転送処理ステップとの間に、前記対象パケットによって形成されるフローの帯域制御及び優先制御を司るＱｏＳ制御ステップをさらに備え、前記識別処理ステップでは、前記アプリケーションの識別情報と当該アプリケーションに係るフローに適用するＱｏＳ制御パラメータとが対応付けられて予め登録されたテーブルを参照することによって、当該テーブルに登録された前記アプリケーションに係る前記サービス要求パケットのペイロードを解析したときに、当該アプリケーションに対応付けられている前記ＱｏＳ制御パラメータを取得し、取得した前記ＱｏＳ制御パラメータを前記アプリケーションに係る前記フローに適用するように、前記ＱｏＳ制御ステップにおける処理を指示するものとした。
【００１９】
こうすることにより、実行されるそれぞれのアプリケーションのコンテンツ毎に、適切なＱｏＳ制御を実現することが可能となる。
【００２０】
また、本発明は、前記のパケット転送方法において、前記識別処理ステップでは、前記対象パケットを前記カットスルー処理に振り分けるように、前記振分け処理ステップにおける処理を指示したのちに、当該対象パケットとは異なる前記所定のアプリケーションに係る前記サービス要求パケットを検知した場合、または、当該対象パケットの送受に用いられているＴＣＰセッションの切断を検知した場合は、当該対象パケットに係る前記カットスルー処理への振分け指示を取り消すものとした。
【００２１】
こうすることにより、フローテーブルから不要なフローの情報が迅速に削除されるので、フローテーブルの容量が逼迫する可能性を低くすることができる。
【発明の効果】
【００２２】
本発明によれば、パケット転送装置は、ペイロードを解析する必要がないパケットをカットスルー転送させるとともに、同一のフローのなかでアプリケーションが切り替わった場合に、それを確実に検出して、適切なＱｏＳ制御を実行することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係るパケット転送システムの構成例を示す図である。
【図２】本発明の実施形態に係るパケット転送装置の構成例を示す機能ブロック図である。
【図３】フローテーブルの構成及びデータ例を示す図である。
【図４】アプリ対応ＱｏＳテーブルの構成及びデータ例を示す図である。
【図５】ＱｏＳテーブルの構成及びデータ例を示す図である。
【図６】ユーザ端末とＨＴＴＰサーバとの間でＴＣＰセッションを確立する手順を示すシーケンス図である。
【図７】ＨＴＴＰサーバからＨＴＭＬファイルを閲覧する手順の例を示すシーケンス図である。
【図８】ＨＴＴＰサーバから動画ファイルをダウンロードする手順の例を示すシーケンス図である。
【図９】ユーザ端末とＨＴＴＰサーバとの間のＴＣＰセッションを切断する手順を示すシーケンス図である。
【図１０】転送機能部の動作の詳細を示すフローチャートである。
【図１１】付加機能部の動作の詳細を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための形態について、図面を参照しながら詳細に説明する。
【００２５】
図１は、本発明の実施形態に係るパケット転送システムの構成例を示す図である。図１に示す例では、パケット転送システム１００は、ユーザ網４または通信事業者網５に接続されるユーザ端末２と、インターネット６に接続され、ユーザ端末２に対してＨＴＴＰ（HyperText Transfer Protocol）サービスを提供するＨＴＴＰサーバ３と、ユーザ網４及び通信事業者網５とインターネット６とを接続するためのパケット転送装置１とを備えて構成されている。この例では、パケット転送装置１は、ユーザ網４及び通信事業者網５とインターネット６とを接続するものとしたが、ユーザ端末２とＨＴＴＰサーバ３とを接続する通信ルート上においてＴＣＰ／ＩＰによるパケット通信が可能な任意の場所に設置することができる。
【００２６】
図２は、本発明の実施形態に係るパケット転送装置の構成例を示す機能ブロック図である。図２に示すように、パケット転送装置１は、外部の装置からパケットを入力してそれを他の装置に出力する転送機能部２０と、アプリケーションに応じてＱｏＳなどの付加的なサービスを提供する付加機能部３０とを含んで構成される。
【００２７】
転送機能部２０は、プログラム制御によって機能が具現化される振分け処理部２１、転送処理部２２、ＱｏＳ制御部２３を備える。また、不図示の記憶部には、フローテーブル２４及びＱｏＳテーブル２５を備える。
【００２８】
付加機能部３０は、プログラム制御によって機能が具現化される識別処理部３１、カットスルー設定部３２、ＱｏＳ設定部３３を備える。また、不図示の記憶部には、アプリ対応ＱｏＳテーブル３４を備える。
【００２９】
振分け処理部２１は、外部から入力されるパケットのヘッダに記載されている情報とフローテーブル２４に登録されている情報とを照合することにより、それぞれのパケットを識別処理部３１または転送処理部２２に振り分ける。フローテーブル２４には、パケットを識別処理部３１に振り分けてペイロードを解析する通常ルートではなく、パケットを転送処理部２２に振り分けてカットスルー転送を行うフローの情報が登録される。
【００３０】
識別処理部３１は、振分け処理部２１から振り分けられたパケットのヘッダ及びペイロードを解析することにより、当該パケットに含まれるアプリケーションに関する情報、例えばアプリケーションＵＲＬを抽出する。カットスルー設定部３２は、フローテーブル２４にカットスルー転送を行うフローに関する情報の登録、更新、削除を行う。ＱｏＳ設定部３３は、識別処理部３１によって抽出されたアプリケーションに関する情報、例えばアプリケーションＵＲＬとアプリ対応ＱｏＳテーブル３４に登録されている情報とを照合することにより、それぞれのフローに適用すべきＱｏＳ制御パラメータを取得し、取得したＱｏＳ制御パラメータをＱｏＳテーブル２５に登録する。
【００３１】
アプリ対応ＱｏＳテーブル３４には、ＱｏＳ制御の対象となるアプリケーション毎に、適用すべきＱｏＳ制御パラメータが予め登録されている。ＱｏＳテーブル２５には、現時点で存在しているフロー毎に、適用すべきＱｏＳ制御パラメータが登録される。ＱｏＳ制御部２３は、ＱｏＳテーブル２５からＱｏＳ制御の対象となるフロー毎のＱｏＳ制御パラメータを取得し、パケット優先度の更新などのＱｏＳ制御を実行する。
【００３２】
転送処理部２２は、識別処理部３１から転送される通常ルートのパケットと、振分け処理部２１からカットスルー転送されるパケットとの両方について、ヘッダに含まれるアドレス情報の書き換えなどの必要な処理を行ったのち、パケット優先度などを参照して外部の装置に転送する。
【００３３】
図３は、フローテーブルの構成及びデータ例を示す図である。図３に示すように、フローテーブル２４には、フロー識別情報（５ｔｕｐｌｅ）２４１、方向フラグ２４２、カウンタ２４３、及び最終受信時刻２４４からなるレコードが、それぞれのフロー毎に登録される。
【００３４】
フロー識別情報（５ｔｕｐｌｅ）２４１は、ある送信元と宛先との間でやり取りされる一連のパケットのシーケンスであるフローを一意に識別するための情報である。このフロー識別情報２４１は、フローを形成している一連のパケットのヘッダに含まれる５つのデータの組合せである５ｔｕｐｌｅによって表される。この５ｔｕｐｌｅは、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号、及びプロトコル種別の５つのデータから構成される。例えば、図３の１行目のレコードのフロー識別情報２４１は、送信元ＩＰアドレスが「ＳＡ１」、宛先ＩＰアドレスが「ＤＡ１」、送信元ポート番号が「ＳＰ１」、宛先ポート番号が「ＤＰ１」、プロトコル種別が「’ＴＣＰ’」である５ｔｕｐｌｅによって表されている。
【００３５】
方向フラグ２４２は、送信元と宛先との関係が逆転している２つのフローを同じフロー識別情報２４１で表すものとした場合に、最後に転送を行ったパケットがどちらの方向に転送されたかを示すフラグである。この方向フラグ２４２が「順方向」となっている場合は、最後に送信元から宛先にパケットが転送されたことを表し、この方向フラグ２４２が「逆方向」となっている場合は、最後に宛先から送信元にパケットが転送されたことを表す。例えば、図３の１行目のレコードの方向フラグ２４２は、「順方向」となっているので、送信元ＩＰアドレスが「ＳＡ１」の送信元から宛先ＩＰアドレスが「ＤＡ１」の宛先に対して最後にパケットが転送されたことを表している。また、図３の２行目のレコードの方向フラグ２４２は、「逆方向」となっているので、送信元ＩＰアドレスが「ＤＡ２」の送信元から宛先ＩＰアドレスが「ＳＡ２」の宛先に対して最後にパケットが転送されたことを表している。
【００３６】
カウンタ２４３は、それぞれのフローにおいて、同じ向きのパケットが連続して何個転送されたかを表す数値データである。また、最終受信時刻２４４は、それぞれのフローにおいて最後にパケットが受信された時刻を表すものであり、フローの無通信時間の判定に用いられる。図３のデータ例では、時刻データを「ｔ１」、「ｔ２」、・・・と表記している。
【００３７】
図４は、アプリ対応ＱｏＳテーブルの構成及びデータ例を示す図である。図４に示すように、アプリ対応ＱｏＳテーブル３４には、アプリケーションの識別情報（例えば、アプリケーションＵＲＬ３４１）とＱｏＳ制御パラメータ３４２とからなるレコードが、それぞれのアプリケーションのＵＲＬ毎に予め登録される。例えば、図４の１行目のレコードは、「http://douga1.com」なるアプリケーションＵＲＬに対しては、「ＤＳＣＰ値リマーク：＃５」なるＱｏＳ制御パラメータを適用すべきことを表している。ＤＳＣＰ（Differentiated Services Code Point）値リマークとは、パケット優先度を変更するときの変更パターンを示すデータであり、この変更パターンによって各パケット優先度を変更することによって、ＱｏＳ制御が実行されることとなる。
【００３８】
図５は、ＱｏＳテーブルの構成及びデータ例を示す図である。図５に示すように、ＱｏＳテーブル２５には、フロー識別情報（５ｔｕｐｌｅ）２５１とＱｏＳ制御パラメータ２５２とからなるレコードが、ＱｏＳ制御の対象となるそれぞれのフロー毎に登録され、当該フローのＱｏＳ制御が終了した時点で削除される。例えば、図５の１行目のレコードは、当該フローにおいて「http://douga1.com」なるＵＲＬが参照され、図４のアプリ対応ＱｏＳテーブル３４から「ＤＳＣＰ値リマーク：＃５」なる値が取得されて、ＱｏＳ制御パラメータ２５２に登録された場合の例を示している。
【００３９】
図６は、ユーザ端末とＨＴＴＰサーバとの間でＴＣＰセッションを確立する手順を示すシーケンス図である。図６に示すように、ユーザ端末２から接続先のＨＴＴＰサーバ３に対してＴＣＰセッションの確立を要求する場合には、まずユーザ端末２からＨＴＴＰサーバ３宛に上り（順方向）のＴＣＰセッションの確立を要求するＳＹＮパケットを送信する。このＳＹＮパケットは、パケット転送装置１の振分け処理部２１、識別処理部３１、及び転送処理部２２を経由してＨＴＴＰサーバ３に転送される（ステップＳ１）。ＳＹＮパケットを受信したＨＴＴＰサーバ３は、要求された上りのＴＣＰセッションの確立を許可するとともに下り（逆方向）のＴＣＰセッションの確立を要求するＳＹＮ＋ＡＣＫパケットを要求元のユーザ端末２宛に送信する。このＳＹＮ＋ＡＣＫパケットは、図６の破線矢印にて示すように、パケット転送装置１の振分け処理部２１、識別処理部３１、及び転送処理部２２を経由してユーザ端末２に転送される（ステップＳ２）。このＳＹＮ＋ＡＣＫパケットを受信したユーザ端末２は、要求された下りのＴＣＰセッションの確立を許可するＡＣＫパケットを接続先のＨＴＴＰサーバ３宛に送信する。このＡＣＫパケットは、パケット転送装置１の振分け処理部２１、識別処理部３１、及び転送処理部２２を経由してＨＴＴＰサーバ３に転送される（ステップＳ３）。これによって、ユーザ端末２とＨＴＴＰサーバ３との間で双方向通信が可能なＴＣＰセッションが確立される（ステップＳ４）。このように、要求元と接続先との間でパケットを３回やり取りすることでセッションが確立されることから、この一連の手順は３ウェイ・ハンドシェイクと呼ばれる。
【００４０】
図７は、ＨＴＴＰサーバからＨＴＭＬ（HyperText Markup Language）ファイルを閲覧する手順の例を示すシーケンス図である。図７に示すように、ＴＣＰセッションが確立されたのちに、ユーザ端末２から接続先のＨＴＴＰサーバ３に対してＨＴＭＬファイルの閲覧を要求する場合には、まずユーザ端末２からＨＴＴＰサーバ３宛にＨＴＴＰ  ＲＥＱＵＥＳＴパケットを送信する。このＨＴＴＰ  ＲＥＱＵＥＳＴパケットのペイロードには、閲覧対象となるＨＴＭＬファイルのＵＲＬが記載されている。このＨＴＴＰ  ＲＥＱＵＥＳＴパケットは、パケット転送装置１の振分け処理部２１、識別処理部３１、及び転送処理部２２を経由して接続先のＨＴＴＰサーバ３に転送される（ステップＳ５）。
【００４１】
このとき、識別処理部３１は、このＨＴＴＰ  ＲＥＱＵＥＳＴパケットのペイロードを解析することによってＨＴＴＰサーバ３で実行されるアプリケーションがＨＴＭＬファイルの閲覧であることを識別し、閲覧先のＨＴＭＬファイルのＵＲＬを抽出する（ステップＳ６）。このとき、当該ＨＴＭＬファイルのＵＲＬは、アプリ対応ＱｏＳテーブル３４（図４）に登録されていないので、ＱｏＳ設定部３３は、「制御なし」と判断し、ＱｏＳテーブル２５（図５）への登録は行わない（ステップＳ７）。また、カットスルー設定部３２は、このフローの情報をフローテーブル２４（図３）に追加登録する（ステップＳ８）。
【００４２】
次に、ユーザ端末２からのＨＴＴＰ  ＲＥＱＵＥＳＴを受信したＨＴＴＰサーバ３は、要求元のユーザ端末２宛に、ＨＴＴＰファイルの閲覧を許可するＨＴＴＰ  ＲＥＳＰＯＮＳＥを送信する（ステップＳ９）。そののち、閲覧を要求されたＨＴＭＬファイルの中身のデータを所定のサイズに分割したＤＡＴＡパケットを、ユーザ端末２との間で取り決めた所定の回数ｉだけ連続して送信する（ステップＳ１０、Ｓ１１）。
【００４３】
このとき、ステップＳ１０で送信されるＤＡＴＡパケット（図７では「ＤＡＴＡ（データ１１）」と表記）は、振分け処理部２１から識別処理部３１に転送されて、当該フローのカウンタ２４３の値が「１」に設定される。続いてステップＳ１１の最初で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ１２）」）は、振分け処理部２１でカウンタ２４３の値が「２」に更新されるので、カットスルー転送が実行され、転送処理部２２に転送されることとなる。以降ステップＳ１１で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ１３）（図示を省略）」〜「ＤＡＴＡ（データ１ｉ）」）は、同様にカットスルー転送が実行され、転送処理部２２に転送される。
【００４４】
ユーザ端末２は、ｉ番目のＤＡＴＡパケット（「ＤＡＴＡ（データ１ｉ）」）を受信すると、受信完了を応答するためのＴＣＰ  ＡＣＫパケットをＨＴＴＰサーバ３宛に送信する（ステップＳ１２）。このＴＣＰ  ＡＣＫパケットは、フローテーブル２４の方向フラグ２４２と方向が一致しないので、振分け処理部２１から識別処理部３１に転送されることとなる。このＴＣＰ  ＡＣＫパケットを受信した識別処理部３１は、フローテーブル２４の当該フローの方向フラグ２４２を「順方向」に更新し、カウンタ２４３を「０」に設定する。
【００４５】
そのため、ステップＳ１３でＨＴＴＰサーバ３から送信される次のＤＡＴＡパケット（「ＤＡＴＡ（データ２１）」）は、振分け処理部２１から識別処理部３１に転送されて、当該フローのカウンタ２４３の値が「１」に設定される。続いてステップＳ１４の最初で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ２２）」）は、振分け処理部２１でカウンタ２４３の値が「２」に更新されるので、カットスルー転送が実行され、転送処理部２２に転送されることとなる。以降ステップＳ１４で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ２３）（図示を省略）」〜「ＤＡＴＡ（データ２ｊ）」）は、同様にカットスルー転送が実行され、転送処理部２２に転送される。
【００４６】
図８は、ＨＴＴＰサーバから動画ファイルをダウンロードする手順の例を示すシーケンス図である。図８の例では、図７に示したＨＴＭＬファイルの閲覧に引き続いて、同じＴＣＰセッションを用いて、同じＨＴＴＰサーバ３から動画ファイルをダウンロードするものとする。ステップＳ１６にて、カットスルー転送とは逆向きのＴＣＰ  ＡＣＫパケットが受信されるので、次に受信されるパケットは識別処理部３１に転送されることとなる。動画ファイルをダウンロードする場合には、まずユーザ端末２からＨＴＴＰサーバ３宛にＨＴＴＰ  ＲＥＱＵＥＳＴパケットを送信する。このＨＴＴＰ  ＲＥＱＵＥＳＴパケットのペイロードには、配信対象となる動画コンテンツのＵＲＬが記載されている。このＨＴＴＰ  ＲＥＱＵＥＳＴパケットは、パケット転送装置１の振分け処理部２１、識別処理部３１、及び転送処理部２２を経由して接続先のＨＴＴＰサーバ３に転送される（ステップＳ１７）。
【００４７】
このとき、識別処理部３１は、このＨＴＴＰ  ＲＥＱＵＥＳＴパケットのペイロードを解析することによってＨＴＴＰサーバ３で実行されるアプリケーションが動画のリアルタイム配信（ストリーミング）であることを識別し、配信する動画コンテンツのＵＲＬを抽出する（ステップＳ１８）。このとき、当該動画コンテンツのＵＲＬは、アプリ対応ＱｏＳテーブル３４（図４）に登録されているので、ＱｏＳ設定部３３は、動画用のＱｏＳ制御が必要であると判断し、アプリ対応ＱｏＳテーブル３４に登録されているＱｏＳ制御パラメータ３４２を、ＱｏＳテーブル２５の当該フローのＱｏＳ制御パラメータ２５２に設定して追加登録を行う（ステップＳ１９）。また、カットスルー設定部３２は、このフローの情報をフローテーブル２４（図３）に登録する（ステップＳ２０）。
【００４８】
ただし、この場合は、フローテーブル２４には、図７に示したＨＴＭＬファイルの閲覧時に登録済みの当該フローに該当するレコードが存在しているので、当該レコードの更新を行い、方向フラグ２４２を「順方向」に、カウンタ２４３を「０」に設定する。
【００４９】
次に、ユーザ端末２からのＨＴＴＰ  ＲＥＱＵＥＳＴを受信したＨＴＴＰサーバ３は、要求元のユーザ端末２宛に、動画コンテンツの配信を許可するＨＴＴＰ  ＲＥＳＰＯＮＳＥを送信する（ステップＳ２１）。そののち、配信対象の動画コンテンツのデータを所定のサイズに分割したストリーミング用のＤＡＴＡパケットを、ユーザ端末２との間で取り決めた所定の回数ｋだけ連続して送信する（ステップＳ２２、Ｓ２３）。
【００５０】
このとき、ステップＳ２２で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ３１）」）は、振分け処理部２１から識別処理部３１に転送されて、当該フローのカウンタ２４３の値が「１」に設定される。続いてステップＳ２３の最初で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ３２）」）は、振分け処理部２１でカウンタ２４３の値が「２」に更新されるので、カットスルー転送が実行され、転送処理部２２に転送されることとなる。以降ステップＳ２３で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ３３）（図示を省略）」〜「ＤＡＴＡ（データ３ｋ）」）は、同様にカットスルー転送が実行され、転送処理部２２に転送される。
【００５１】
ユーザ端末２は、ｋ番目のＤＡＴＡパケット（「ＤＡＴＡ（データ３ｋ）」）を受信すると、受信完了を応答するためのＴＣＰ  ＡＣＫパケットをＨＴＴＰサーバ３宛に送信する（ステップＳ２４）。このＴＣＰ  ＡＣＫパケットは、フローテーブル２４の方向フラグ２４２と方向が一致しないので、振分け処理部２１から識別処理部３１に転送されることとなる。このＴＣＰ  ＡＣＫパケットを受信した識別処理部３１は、フローテーブル２４の当該フローの方向フラグ２４２を「順方向」に更新し、カウンタ２４３を「０」に設定する。
【００５２】
そのため、ステップＳ２５でＨＴＴＰサーバ３から送信される次のＤＡＴＡパケット（「ＤＡＴＡ（データ４１）」）は、振分け処理部２１から識別処理部３１に転送されて、当該フローのカウンタ２４３の値が「１」に設定される。続いてステップＳ２６の最初で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ４２）」）は、振分け処理部２１でカウンタ２４３の値が「２」に更新されるので、カットスルー転送が実行され、転送処理部２２に転送されることとなる。以降ステップＳ２６で送信されるＤＡＴＡパケット（「ＤＡＴＡ（データ４３）（図示を省略）」〜「ＤＡＴＡ（データ４ｌ）」）は、同様にカットスルー転送が実行され、転送処理部２２に転送される。
【００５３】
図９は、ユーザ端末とＨＴＴＰサーバとの間のＴＣＰセッションを切断する手順を示すシーケンス図である。図９の例では、図８に示した動画ファイルのダウンロードに引き続いてＴＣＰセッションを切断するものとする。ステップＳ２８にて、カットスルー転送とは逆向きのＴＣＰ  ＡＣＫパケットが受信されるので、次に受信されるパケットは識別処理部３１に転送されることとなる。図９に示すように、ユーザ端末２とＨＴＴＰサーバ３との間のＴＣＰセッションを切断する場合には、まずその一方から（図９の例では、ユーザ端末２から）もう一方に対して（図９の例では、ＨＴＴＰサーバ３宛に）、例えば上り（順方向）のコネクションの切断を要求するＦＩＮパケットを送信する。このＦＩＮパケットは、パケット転送装置１の振分け処理部２１、識別処理部３１、及び転送処理部２２を経由してＨＴＴＰサーバ３に転送される（ステップＳ２９）。以下、パケット転送装置１の各部による経由については前記と同様であるのでのその説明を省略する。このＦＩＮパケットを受信したＨＴＴＰサーバ３は、要求された上りのコネクションの切断を許可するＡＣＫパケットを要求元のユーザ端末２宛に送信する（ステップＳ３０）。さらに、ＨＴＴＰサーバ３は、下り（逆方向）のコネクションの切断を要求するＦＩＮパケットをユーザ端末２宛に送信する（ステップＳ３１）。このＦＩＮパケットを受信したユーザ端末２は、要求された下りのコネクションの切断を許可するＡＣＫパケットをＨＴＴＰサーバ３宛に送信する（ステップＳ３２）。このように、ＴＣＰセッションが確立されている２者間で、ＦＩＮパケットとその応答であるＡＣＫパケットとを双方向にやり取りすることで、ＴＣＰセッションの切断が行われる。
【００５４】
ＴＣＰセッションが切断されることにより、そのＴＣＰセッションを用いて交信されていたフローは終結することになる。よって、カットスルー設定部３２はフローテーブル２４から、ＱｏＳ設定部３３はＱｏＳテーブル２５から、登録されている当該フローのレコードを削除して、一連のパケット転送処理を終了する。
【００５５】
図１０は、転送機能部の動作の詳細を示すフローチャートである。図１０に示すように、転送機能部２０は、中継を行うべきパケットを受信すると、まず、ステップＳＴ４１にて、振分け処理部２１が、受信したパケットのヘッダ部に記載されているフロー識別情報（５ｔｕｐｌｅ）を抽出する。次に、振分け処理部２１は、ステップＳＴ４２にて、フローテーブル２４に当該フロー識別情報に対応するフローのレコードが登録されているか否かを判定する。このとき、抽出した５ｔｕｐｌｅのデータのうち、送信元ＩＰアドレスと送信元ポート番号との対と、宛先ＩＰアドレスと宛先ポート番号との対とを入れ換えることで得られる５ｔｕｐｌｅについても判定の対象とする。
【００５６】
判定の結果、該当するフローのレコードが登録されている場合は（ステップＳＴ４２で「Ｙｅｓ」）、ステップＳＴ４３に処理を進め、登録されていない場合は（ステップＳＴ４２で「Ｎｏ」）、ステップＳＴ４７に処理を進める。
【００５７】
ステップＳＴ４３では、振分け処理部２１は、受信したパケットの転送方向がフローテーブル２４に登録されている該当レコードの方向フラグ２４２と一致しているか否かを判定する。判定の結果、方向フラグ２４２と一致している場合は（ステップＳＴ４３で「Ｙｅｓ」）、ステップＳＴ４５に処理を進め、方向フラグ２４２と不一致の場合は（ステップＳＴ４３で「Ｎｏ」）、ステップＳＴ４４に処理を進める。
【００５８】
ステップＳＴ４４では、振分け処理部２１は、当該レコードの方向フラグ２４２の値を、「順方向」であれば「逆方向」に、「逆方向」であれば「順方向」に反転し、カウンタ２４３の値を「０」に設定したのち、ステップＳＴ４７に処理を進める。
【００５９】
一方、ステップＳＴ４５では、振分け処理部２１は、カウンタ２４３の値を＋１したのち、ステップＳＴ４６にて、カウンタ２４３の値が２以上か２未満かを判定する。判定の結果、２未満の場合は（ステップＳＴ４６で「２未満」）、ステップＳＴ４７に処理を進め、２以上の場合は（ステップＳＴ４６で「２以上」）、ステップＳＴ４９に処理を進める。
【００６０】
ステップＳＴ４７では、振分け処理部２１は、受信したパケットを識別処理部３１に転送する。続くステップＳＴ４８では、転送処理部２２が、識別処理部３１から転送されてくる処理済みのパケットを受信して外部に転送することにより、識別処理部３１を経由する通常ルートによるパケットの転送を実行して処理を終了する。
【００６１】
また、ステップＳＴ４９では、振分け処理部は、受信したパケットを転送処理部２２に直接転送するカットスルー転送を実行して処理を終了する。このカットスルー転送では、受信したパケットのヘッダ部のデータだけを参照してパケット転送を行うので、パケット転送に伴うパケット転送の遅延時間を大幅に低減させることができる。
【００６２】
図１１は、付加機能部の動作の詳細を示すフローチャートである。図１１に示すように、付加機能部３０は、振分け処理部２１からペイロードの解析を行うべきパケットを受信すると、まず、ステップＳＴ５１にて、識別処理部３１が、受信したパケットのヘッダ部に記載されているフロー識別情報（５ｔｕｐｌｅ）を抽出する。次に、識別処理部３１は、ステップＳＴ５２にて、フローテーブル２４に当該フロー識別情報に対応するフローのレコードが登録されているか否かを判定する。このとき、抽出した５ｔｕｐｌｅのデータのうち、送信元ＩＰアドレスと送信元ポート番号との対と、宛先ＩＰアドレスと宛先ポート番号との対とを入れ換えることで得られる５ｔｕｐｌｅについても判定の対象とする。
【００６３】
判定の結果、該当するフローのレコードが登録されている場合は（ステップＳＴ５２で「Ｙｅｓ」）、ステップＳＴ５３に処理を進め、登録されていない場合は（ステップＳＴ５２で「Ｎｏ」）、ステップＳＴ５５に処理を進める。
【００６４】
ステップＳＴ５３では、識別処理部３１は、受信したパケットがＨＴＴＰ  ＲＥＱＵＥＳＴパケットであるか否かを判定する。判定の結果、ＨＴＴＰ  ＲＥＱＵＥＳＴパケットであれば（ステップＳＴ５３で「Ｙｅｓ」）、ステップＳＴ５４に処理を進め、ＨＴＴＰ  ＲＥＱＵＥＳＴパケットでなければ（ステップＳＴ５３で「Ｎｏ」）、ステップＳＴ５９に処理を進める。
【００６５】
ステップＳＴ５４では、カットスルー設定部３２はフローテーブル２４から、ＱｏＳ設定部３３はＱｏＳテーブル２５から、それぞれ当該フローに対応するレコードを削除したのち、ステップＳＴ５５に処理を進める。
【００６６】
ステップＳＴ５５では、識別処理部３１は、受信したパケットのペイロードを解析して実行されるアプリケーションに該当するＵＲＬを検出するアプリケーション識別処理を実行する。続くステップＳＴ５６では、識別処理部３１は、検出したＵＲＬで識別されるアプリケーションのフローが、ＱｏＳ対象か、ＱｏＳ対象外か、その他かを判定する。
【００６７】
判定の結果、動画や音声のストリーミング配信など、アプリ対応ＱｏＳテーブル３４にＵＲＬが登録されているＱｏＳ対象のフローであれば（ステップＳＴ５６で「ＱｏＳ対象」）、ステップＳＴ５７に処理を進める。また、ＨＴＭＬファイルのダウンロードなど、ＱｏＳ対象ではないが、多数のＤＡＴＡパケットが転送されるフローであれば（ステップＳＴ５６で「ＱｏＳ対象外」）、ステップＳＴ５８に処理を進める。これらのいずれでもないその他のフローであれば（ステップＳＴ５６で「その他」）、ステップＳＴ６３に処理を進める。
【００６８】
ステップＳＴ５７では、ＱｏＳ設定部３３は、ＱｏＳの設定処理を実行する。より詳しくは、アプリ対応ＱｏＳテーブル３４に登録されている当該アプリケーションＵＲＬ３４１に該当するＱｏＳ制御パラメータ３４２の値を、ＱｏＳテーブル２５の当該フローのＱｏＳ制御パラメータ２５２に格納する。そののち、ステップＳＴ５８に処理を進める。
【００６９】
ステップＳＴ５８では、検出したＵＲＬに該当するフローのレコードをフローテーブル２４に追加登録し、当該レコードのカウンタ２４３を「０」に設定したのち、ステップＳＴ６３に処理を進める。
【００７０】
ステップＳＴ５９では、識別処理部３１は、受信したパケットがＤＡＴＡパケットか否かを判定する。判定の結果、ＤＡＴＡパケットであれば（ステップＳＴ５９で「Ｙｅｓ」）、ステップＳＴ６０に処理を進める。ＤＡＴＡパケットでなければ（ステップＳＴ５９で「Ｎｏ」）、ステップＳＴ６１に処理を進める。
【００７１】
ステップＳＴ６０では、カットスルー設定部３２は、フローテーブル２４に登録されている当該フローのカウンタ２４３を「１」に設定したのち、ステップＳＴ６３に処理を進める。
【００７２】
ステップＳＴ６１では、識別処理部３１は、受信したパケットがＦＩＮパケットか否かを判定する。判定の結果、ＦＩＮパケットであれば（ステップＳＴ６１で「Ｙｅｓ」）、ステップＳＴ６２に処理を進め、ＦＩＮパケットでなければ（ステップＳＴ６１で「Ｎｏ」）、ステップＳＴ６３に処理を進める。
【００７３】
ステップＳＴ６２では、カットスルー設定部３２はフローテーブル２４から、ＱｏＳ設定部３３はＱｏＳテーブル２５から、それぞれ当該フローに対応するレコードを削除したのち、ステップＳＴ６３に処理を進める。
【００７４】
ステップＳＴ６３では、識別処理部３１は、受信したパケットを転送処理部２２に転送したのち、処理を終了する。
【００７５】
以上説明したように、本実施形態によれば、カットスルー転送が実行されている最中に、同じフローのなかでアプリケーションが切り替えられた場合に発生する逆向きのパケットが検出され、それに続くパケットは識別処理部３１に転送される。そして、識別処理部３１は、ペイロードを解析して実行されるアプリケーションを検出するので、確実にアプリケーションの切り替えを検出することができる。よって、実行されるそれぞれのアプリケーションのコンテンツ毎に、適切なＱｏＳ制御を実行することが可能となる。
【００７６】
以上にて発明を実施するための形態の説明を終えるが、本発明の実施の態様はこれに限られるものではなく、本発明の趣旨を逸脱しない範囲において、各種の変形が可能である。また、本発明は、転送されるパケットのヘッダやペイロードを解析して各種の情報を収集する用途にも適用可能である。
【符号の説明】
【００７７】
１    パケット転送装置
２    ユーザ端末
３    ＨＴＴＰサーバ（サーバ）
４    ユーザ網（ＩＰネットワーク）
５    通信事業者網（ＩＰネットワーク）
６    インターネット（ＩＰネットワーク）
２０  転送機能部
２１  振分け処理部
２２  転送処理部
２３  ＱｏＳ制御部
２４  フローテーブル
２５  ＱｏＳテーブル
３０  付加機能部
３１  識別処理部
３２  カットスルー設定部
３３  ＱｏＳ設定部
３４  アプリ対応ＱｏＳテーブル（テーブル）
１００  パケット転送システム
【図１】
2015043489.tif 000003
【図２】
2015043489.tif 000004
【図３】
2015043489.tif 000005
【図４】
2015043489.tif 000006
【図５】
2015043489.tif 000007
【図６】
2015043489.tif 000008
【図７】
2015043489.tif 000009
【図８】
2015043489.tif 000010
【図９】
2015043489.tif 000011
【図１０】
2015043489.tif 000012
【図１１】
2015043489.tif 000013