JP5980165B2 - ハードウェア支援によりhttpヘッダを処理する方法 - Google Patents

ハードウェア支援によりhttpヘッダを処理する方法 Download PDF

Info

Publication number
JP5980165B2
JP5980165B2 JP2013106202A JP2013106202A JP5980165B2 JP 5980165 B2 JP5980165 B2 JP 5980165B2 JP 2013106202 A JP2013106202 A JP 2013106202A JP 2013106202 A JP2013106202 A JP 2013106202A JP 5980165 B2 JP5980165 B2 JP 5980165B2
Authority
JP
Japan
Prior art keywords
header
header field
packet
http
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013106202A
Other languages
English (en)
Other versions
JP2013246820A (ja
Inventor
カマト グルディープ
カマト グルディープ
イー デイヴィス イアン
イー デイヴィス イアン
ジャラン ラジュクマー
ジャラン ラジュクマー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
10 A10 NETWORKS Inc
A10 Networks Inc
Original Assignee
10 A10 NETWORKS Inc
A10 Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 10 A10 NETWORKS Inc, A10 Networks Inc filed Critical 10 A10 NETWORKS Inc
Publication of JP2013246820A publication Critical patent/JP2013246820A/ja
Application granted granted Critical
Publication of JP5980165B2 publication Critical patent/JP5980165B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

本発明は、一般にデータ通信に関し、より詳細にはサービスゲートウェイに関する。
サーバロードバランサ又はアプリケーション配信コントローラは、典型的には、接続要求パケットのIP、TCP、ネットワーク、トランスポート又はアプリケーションレイヤアドレスなどの1以上のネットワークプロトコルアドレスに基づき、複数のサーバの間のロードをバランスさせる。それらは、ロードバランシングを最適化するための手がかりのためペイロードコンテンツを調べるために、パケットペイロードへのディープパケットインスペクション(deep packet inspection)を実行することもある。ディープパケットインスペクション技術に基づく最適化は、ペイロードコンテンツにおけるURL、ドメインネーム、アプリケーションプロトコルタイプ及びユーザ情報に基づくロードバランシングを含む。これらのシナリオでは、サーバロードバランサは、ホストから発信されるリクエストパケットを変更しない。
ウェブトラフィックが増加するに従って、サーバロードバランサもまたサーバ数を増加させる。ディープパケットインスペクション技術はまた、特にHTTP(Hypertext Transfer Protocol)タイプのウェブセッションについて精緻化される。サーバロードバランサは、同一のホストがサービスを再要求するとき、ロードバランサが特別なCookieを検出し、適切なサーバを選択できるように、サーバロードバランサの嗜好を格納するためのロードバランサに固有のCookieを挿入することを選んでもよい。この特別なCookieは、サーバがホストからHTTPリクエストに応答する際に挿入され、ホストがサーバロードバランサを介し以降のHTTPリクエストをサーバに送信する際に検出される。以降のHTTPリクエストが受信されると、サーバロードバランサは、HTTPリクエストをサーバに送信する前に特別なCookieを削除する。
Cookieの挿入、検出及び削除の処理は、計算量を消費するものである。計算要求の多くは、特別なCookieが挿入、検出又は削除されるべき各種HTTPヘッダフィールド及びサブヘッダフィールドの検出におけるものである。従って、特別なCookieを処理するための計算要求を軽減するため、各種ヘッダフィールド及びサブヘッダフィールドの特定処理が特別なハードウェア処理モジュールにより支援される必要がある。
本発明の一実施例によると、HTTP(Hypertext Transfer Protocol)ヘッダを処理する方法は、少なくとも1つの所定のヘッダフィールド識別子をハードウェアパケットプリプロセッサのメモリに設定するステップを有し、前記ハードウェアパケットプリプロセッサは、ホストとサーバとの間のHTTPセッションにおいて受信されたHTTPパケットのヘッダフィールドにおいて少なくとも1つのヘッダフィールド識別子を検出し、前記所定のヘッダフィールド識別子と前記HTTPパケットにおけるヘッダフィールド識別子とをマッチングし、前記HTTPパケットにおけるヘッダフィールド識別子に対応する情報を有するヘッダレポートブロックを生成し、前記ヘッダレポートブロックに基づき前記HTTPパケットを処理するため、プロセッサモジュールに前記ヘッダレポートブロックを送信することが可能とされる。
本発明の一態様では、前記所定のヘッダフィールド識別子と前記HTTPパケットにおけるヘッダフィールド識別子とのマッチングと、前記ヘッダレポートブロックの生成とにおいて、前記ハードウェアパケットプリプロセッサはさらに、前記HTTPヘッダにおけるヘッダフィールド識別子と、前記ハードウェアパケットプリプロセッサのメモリに設定された所定のヘッダフィールド識別子とを比較し、前記HTTPヘッダにおけるヘッダフィールド識別子が前記ハードウェアパケットプリプロセッサのメモリに設定された所定のヘッダフィールド識別子に一致したと判断することに応答して、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールドの開始位置を示すヘッダフィールド位置と、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールドの値のサイズ又は長さを示すヘッダフィールドサイズとを有するヘッダフィールドブロックを有するように、前記ヘッダブロックレポートを生成することが可能とされる。
本発明の一態様では、本方法は、少なくとも1つの所定のサブヘッダフィールド識別子を前記ハードウェアパケットプリプロセッサのメモリに設定するステップをさらに有し、前記ハードウェアパケットプリプロセッサはさらに、前記HTTPパケットのヘッダフィールド内で少なくとも1つのサブヘッダフィールド識別子を検出し、前記所定のサブヘッダフィールド識別子と前記HTTPパケットにおけるサブヘッダフィールド識別子とをマッチングし、前記HTTPパケットにおけるサブヘッダフィールド識別子に対応する情報をさらに有するように前記ヘッダレポートブロックを生成することが可能とされる。
本発明の一態様では、前記所定のサブヘッダフィールド識別子と前記HTTPパケットにおけるサブヘッダフィールド識別子とのマッチングと、前記ヘッダレポートブロックの生成とにおいて、前記ハードウェアパケットプリプロセッサはさらに、前記所定のサブヘッダフィールド識別子と、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールド内のキャラクタとを比較し、前記所定のサブヘッダフィールド識別子と前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールド内のキャラクタとの間で一致が検出されたことに応答して、前記HTTPヘッダにおけるサブヘッダフィールド識別子に対応するサブヘッダフィールドの開始位置を示すサブヘッダフィールド位置と、前記HTTPヘッダにおけるサブヘッダフィールド識別子に対応するサブヘッダフィールドの値のサイズ又は長さを示すサブヘッダフィールドサイズとを有するサブヘッダフィールドブロックを有するように、前記ヘッダブロックレポートを生成することが可能とされる。
本発明の一態様では、前記プロセッサモジュールは、前記ハードウェアパケットプリプロセッサから前記ヘッダレポートブロックを受信し、前記ヘッダフィールドブロックにおけるヘッダフィールド位置とヘッダフィールドサイズとを利用することを含む、前記ヘッダレポートブロックを利用して、サービスポリシーを抽出し、前記HTTPヘッダにおけるヘッダフィールド値を取得し、前記ヘッダフィールド値に基づき前記サービスポリシーを抽出し、前記サービスポリシーを前記HTTPパケットに適用する。
本発明の一態様では、前記プロセッサモジュールは、前記ハードウェアパケットプリプロセッサから前記ヘッダレポートブロックを受信し、前記サブヘッダフィールドブロックにおけるサブヘッダフィールド位置とサブヘッダフィールドサイズとを利用することを含む、前記ヘッダレポートブロックを利用して、サービスポリシーを抽出し、前記HTTPヘッダにおけるサブヘッダフィールド値を取得し、前記サブヘッダフィールド値に基づき前記サービスポリシーを抽出し、前記サービスポリシーを前記HTTPパケットに適用する。
本発明の一態様では、前記ヘッダフィールドは、HTTP cookieヘッダフィールドを有する。
本発明の一態様では、前記プロセッサモジュールはさらに、前記HTTPパケットのヘッダフィールドを修正し、前記修正したHTTPパケットを前記ホスト又は前記サーバに送信する。
本発明の一態様では、前記HPPパケットのヘッダフィールドの修正と、前記修正したHTTPパケットの前記ホスト又は前記サーバへの送信とにおいて、前記プロセッサモジュールは、前記サブヘッダフィールドを削除することによって、前記HTTPパケットのヘッダフィールドを修正し、前記修正したHTTPパケットを前記サーバに送信する。
本発明の一態様では、前記HPPパケットのヘッダフィールドの修正と、前記修正したHTTPパケットの前記ホスト又は前記サーバへの送信とにおいて、前記プロセッサモジュールは、第2のサブヘッダフィールドを挿入することによって、前記HTTPパケットのヘッダフィールドを修正し、前記修正したHTTPパケットを前記ホストに送信する。
上記概略された方法に対応するサービスゲートウェイがまた、開示及び請求される。
各種ヘッダフィールド及びサブヘッダフィールドの特定処理が特別なハードウェア処理モジュールによる支援により、特別なCookieを処理するための計算要求を軽減することができる。
図1は、本発明によるパケットプリプロセッサを有するサービスゲートウェイを利用したHTTPセッション処理方法の実施例を示す。 図2は、本発明によるHTTPリクエストパケットのサービスゲートウェイ処理の実施例を示す。 図2aは、HTTPパケットを処理するパケットプリプロセッサの実施例を示す。 図2bは、ヘッダレポートブロックを処理するプロセッサモジュールの実施例を示す。 図3は、本発明によるヘッダレポートブロックの実施例を示す。 図4は、本発明によるHTTPリクエスト又はレスポンスパケットを特定するパケットプリプロセッサの実施例を示す。 図5は、本発明によるHTTPヘッダフィールドを特定するパケットプリプロセッサの実施例を示す。 図6は、本発明によるHTTPサブヘッダフィールドを特定するパケットプリプロセッサの実施例を示す。 図7は、本発明によるHTTPレスポンスパケットを処理するサービスゲートウェイの実施例を示す。
以下の説明は、当業者が本発明を作成及び利用することを可能にするため提供され、特許出願及びその要件に関して与えられるものである。実施例に対する様々な改良が当業者に容易に明らかになり、ここでの汎用的な原理は他の実施例に適用されてもよい。従って、本発明は、図示された実施例に限定されることを意図しておらず、ここに開示される原理及び特徴に整合する最も広い範囲に一致されるべきである。
本発明は、完全にハードウェアの実施例、完全にソフトウェアの実施例又はハードウェア要素とソフトウェア要素との双方を含む実施例の形態をとることが可能である。好適な実施例では、本発明は、限定することなく、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むソフトウェアにより実現される。
さらに、本発明は、コンピュータ又は何れかの命令実行システムによる又はそれに関する利用のためのプログラムコードを提供するコンピュータ利用可能又はコンピュータ可読媒体からアクセス可能なコンピュータプログラムプロダクトの形態をとりうる。説明のため、コンピュータ利用可能又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスによる又はそれに関する利用のためのプログラムを内蔵、格納、通信、伝搬又は伝送可能な何れかの装置とすることができる。
当該媒体は、電子、磁気、光、電磁気、赤外線若しくは半導体システム(若しくは装置、デバイス)又は伝搬媒体とすることが可能である。コンピュータ可読媒体の具体例として、半導体若しくはソリッドステートメモリ、磁気テープ、着脱可能なコンピュータディスケット、RAM(Random Access Memory)、ROM(Read−Only Memory)、リジッド磁気ディスク及び光ディスクがあげられる。光ディスクの現在の具体例として、CD−ROM(Compact Disk−Read Only Memory)、CD−R/W(Compact Disk−Read/Write)及びDVDがあげられる。
プログラムコードを格納及び/又は実行するのに適したデータ処理システムは、システムバスを介しメモリ要素に直接的又は間接的に接続される少なくとも1つのプロセッサを有する。メモリ要素は、プログラムコードの実際の実行中に利用されるローカルメモリ、バルクストレージ、及び実行中にバルクストレージからコードが抽出される必要のある回数を減少させるために少なくともいくつかのプログラムコードの一時的なストレージを提供するキャッシュメモリを含むことが可能である。
入出力又はI/Oデバイス(限定することなく、キーボード、ディスプレイ、ポイントデバイスなどを含む)が、直接的に又は仲介するI/Oコントローラを介しシステムに接続可能である。
ネットワークアダプタがまたシステムに接続され、データ処理システムが仲介するプライベート又はパブリックネットワークを介し他のデータ処理システム又はリモートプリンタ若しくはストレージデバイスに接続されることを可能にするようにしてもよい。モデム、ケーブルモデム及びイーサネット(登録商標)カードは、現在利用可能なタイプのネットワークアダプタの数例にしかすぎない。
図面のフローチャート及びブロック図は、本発明の各種実施例によるシステム、方法及びコンピュータプログラムプロダクトの可能な実現形態の構成、機能及び処理を示す。これについて、フローチャート又はブロック図の各ブロックは、指定されたローカルファンクションを実現するための1以上の実行可能な命令を有するコードのモジュール、セグメント又は部分を表すものであってもよい。また、いくつかの他の実現形態では、ブロックに示される機能は図面に示される順序と異なって実行されてもよいことに留意すべきである。例えば、連続的に示される2つのブロックは、実際は実質的に同時に実行されてもよいし、又はブロックは関係する機能に応じて逆順で実行されてもよいことがある。ブロック図及び/又はフローチャート図の各ブロック及び当該ブロックの組み合わせは、指定された機能又はアクションを実行する特定用途ハードウェアベースシステム、又は特定用途ハードウェア及びコンピュータ命令の組み合わせにより実現可能であることに留意されたい。
ここで用いられる用語は、特定の実施例のみを説明するためのものであり、本発明を限定することを意図するものでない。ここで用いられる“ある”及び“その”という単数形は、文脈が明らかに示していない場合、複数形もまた含むことが意図される。本明細書において用いられるとき、“有する”という用語は記載された特徴、整数、ステップ、処理、要素及び/又はコンポーネントの存在を示すものであるが、1以上の他の特徴、整数、ステップ、処理、要素、コンポーネント及び/又はこれらのグループの存在又は追加を排除するものでないことがさらに理解されるであろう。
図1に示される実施例では、サービスゲートウェイ110は、ホスト100とサーバ210との間のHTTP(Hypertext Transport Protocol)セッション300を処理する。HTTPセッション300は、データネットワーク153を介し配信される。
一実施例では、データネットワーク153は、IP(Internet Protocol)ネットワーク、企業データネットワーク、地域企業データネットワーク、インターネットサービスプロバイダネットワーク、レジデンシャルデータネットワーク、イーサネット(登録商標)などの有線ネットワーク、WiFiネットワークなどの無線ネットワーク、又はセルラネットワークを含む。一実施例では、データネットワーク153は、データセンタにあるか、又はネットワーク若しくはアプリケーションネットワーククラウドに接続する。
ホスト100は、ネットワークアクセス機能を有する計算装置である。一実施例では、ホスト100は、ワークステーション、デスクトップパーソナルコンピュータ、ラップトップパーソナルコンピュータ、PDA(Personal Data Assistant)、タブレットPC、スマートフォン、携帯電話、セットトップボックス、インターネットメディアビューワ、インターネットメディアプレーヤー、スマートセンサ、スマート医療装置、ネットトップボックス、ネットワーク対応テレビ装置、ネットワーク対応DVR、ネットワーク対応ブルーレイプレーヤー又はメディアセンタである。
サービスゲートウェイ110は、任意的にプロセッサモジュール113、パケットプリプロセッサ112、ネットワークインタフェースモジュール111及びコンピュータ可読媒体114に接続される。コンピュータ可読媒体114は、プロセッサモジュール113により実行されると、ここに開示される本発明の各種実施例を実現するコンピュータ可読プログラムコードを格納する。いくつかの実施例では、サービスゲートウェイ110は、サーバロードバランサ、アプリケーション配信コントローラ、サービス配信プラットフォーム、トラフィックマネージャ、セキュリティゲートウェイ、ファイアウォールシステムのコンポーネント、バーチャルプライベートネットワーク(VPN)のコンポーネント、ビデオサーバのロードバランサ、1以上のサーバにロードを配分するゲートウェイ、HTTPサービスセッション300のHTTPレイヤを処理するウェブ又はHTTPサーバ、又はネットワークアドレス変換(NAT)を実行するゲートウェイとして実現される。
プロセッサモジュール113は、典型的には、1以上の汎用プロセッサ又はマイクロプロセッサを有する。一実施例では、プロセッサモジュール113は、マルチコアマイクロプロセッサを有する。一実施例では、プロセッサモジュール113は、コンピュータ可読媒体114に格納されるコンピュータ可読プログラムコードの実行中に使用される変数を格納するメモリユニットを有する。
ネットワークインタフェースモジュール111は、データネットワーク153に接続する。ネットワークインタフェースモジュール111は、ホスト100からデータパケットを受信し、ホスト100にデータパケットを送信し、サーバ210からデータパケットを受信し、サーバ210にデータパケットを送信する。
パケットプリプロセッサ112は、ネットワークインタフェースモジュール111により受信されたデータパケットを処理するためのシンプルであるが高速な処理機能を有するハードウェアベースパケット処理モジュールである。一実施例では、パケットプリプロセッサ112は、パケットプリプロセッサ112の処理要求を実行可能なFPGA(Field Programmable Gate Array)モジュール、ASIC(Application Specific Integrated Circuit)、マイクロコントローラ又は回路を有する。
サーバ210は、任意的にプロセッサ213とコンピュータ可読媒体214とに接続される。コンピュータ可読媒体214は、プロセッサ213により実行されると、ここに開示される本発明の各種実施例を実現するコンピュータ可読プログラムコードを格納する。いくつかの実施例では、コンピュータ可読プログラムコードは、サーバ210をウェブサーバ、ファイルサーバ、ビデオサーバ、データベースサーバ、アプリケーションサーバ、ボイスシステム、カンファレンシングサーバ、メディアゲートウェイ、メディアセンタ、HTTPプロトコルを用いてホスト100にネットワーク若しくはアプリケーションサービスを提供するアプリサーバ又はネットワークサーバとして実現する。
典型的には、ホスト100は、データネットワーク153及びサービスゲートウェイ110を介しサーバ210にHTTPリクエストパケット400を送信することによって、HTTPセッション300を確立する。HTTPリクエストパケット400を処理すると、サーバ210は、データネットワーク153及びサービスゲートウェイ110を介しホスト100にHTTPレスポンスパケット800を送り返す。HTTPリクエストパケット400はHTTPリクエストヘッダ403を有し、HTTPレスポンスパケット800はHTTPレスポンスヘッダ803を有する。
サービスゲートウェイ110は、ネットワークインタフェースモジュール111を介しホスト100からHTTPリクエストパケット400を受信する。ネットワークインタフェースモジュール111は、HTTPリクエストパケット400をパケットプリプロセッサ112に送信する。パケットプリプロセッサ112は、HTTPリクエストパケット400を調べ、ヘッダレポートブロック410を生成し、HTTPリクエストパケット400及びヘッダレポートブロック410をプロセッサモジュール113に送信する。プロセッサモジュール113は、HTTPリクエストパケット400及びヘッダレポートブロック410を受信する。プロセッサモジュール113は、HTTPリクエストパケット400、ヘッダレポートブロック410及びサービスポリシー310に基づきサーバ210を選択する。プロセッサモジュール113は、HTTPリクエストパケット400をサーバ210に送信する。一実施例では、プロセッサモジュール113は、修正されたHTTPリクエストパケット400をサーバ210に送信する前に、ヘッダレポートブロック410及びサービスポリシー310に基づきHTTPリクエストパケット400を修正する。
一実施例では、サービスゲートウェイ110は、サーバ210からHTTPレスポンスパケット800を受信する。サービスゲートウェイ110は、ネットワークインタフェースモジュール111を介しHTTPレスポンスパケット800を受信する。ネットワークインタフェースモジュール111は、HTTPレスポンスパケット800をパケットプリプロセッサ112に送信する。パケットプリプロセッサ112は、HTTPレスポンスパケット800を調べ、ヘッダレポートブロック810を生成し、HTTPレスポンスパケット800及びヘッダレポートブロック810をプロセッサモジュール113に送信する。プロセッサモジュール113は、HTTPレスポンスパケット800及びヘッダレポートブロック810を受信する。プロセッサモジュール113は、ヘッダレポートブロック810及びサービスポリシー310に基づきHTTPレスポンスパケット800を処理する。プロセッサモジュール113は、HTTPレスポンスパケット800をホスト100に送信する。一実施例では、プロセッサモジュール113は、修正されたHTTPレスポンスパケット800をホスト100に送信する前に、ヘッダレポートブロック810及びサービスポリシー310に基づきHTTPレスポンスパケット800を修正する。
図2は、HTTPリクエストパケット400を処理するサービスゲートウェイ110の実施例を示す。図1に示されるように、サービスゲートウェイ110のネットワークモジュール111は、HTTPリクエストパケット400を受信する。ネットワークモジュール111は、パケット400をパケットプリプロセッサ112に送信する。パケットプリプロセッサ112は、ヘッダレポートブロック410を生成するため、パケット400を調べる。
図3は、ヘッダレポートブロック410の実施例を示す。一実施例では、ヘッダレポートブロック410は、サマリブロック420と、任意的にヘッダフィールドブロック430とを有する。一実施例では、サマリブロック420は、パケット400が有効なHTTPヘッダを含むか示すヘッダインジケータ422を有する。一実施例では、サマリブロック420は、パケット400におけるHTTPコンテンツの開始位置を示すパケット位置424を有する。一実施例では、パケット位置424は、パケット400におけるHTTPヘッダを除くHTTPコンテンツを示す。一実施例では、サマリブロック420は、ヘッダフィールドブロック430がヘッダレポートブロック410に含まれているか示すヘッダフィールドインジケータ425を有する。一実施例では、ヘッダレポートブロック410はまたサブヘッダフィールドブロック480を有し、ヘッダフィールドインジケータ425はまた、サブヘッダフィールドブロック480がヘッダレポートブロック410に含まれているか示す。
一実施例では、ヘッダフィールドブロック430は、HTTPヘッダにおいてヘッダフィールドを特定するヘッダフィールド識別子432を有する。一実施例では、ヘッダフィールドブロック430は、パケット440におけるヘッダフィールド識別子432に対応するヘッダフィールドの開始位置を示すヘッダフィールド位置434を有する。一実施例では、ヘッダフィールドブロック430は、ヘッダフィールド識別子432に対応するヘッダフィールドの値のサイズ又は長さを示すヘッダフィールドサイズ435を有する。
一実施例では、サブヘッダフィールドブロック480は、ヘッダフィールド識別子432に対応するヘッダフィールド内にサブヘッダフィールドを特定するサブヘッダフィールド識別子482を有する。一実施例では、サブヘッダフィールドブロック480は、パケット400におけるサブヘッダフィールド識別子482に対応するヘッダフィールドの開始位置を示すサブヘッダフィールド位置484を有する。一実施例では、サブヘッダフィールドブロック480は、サブヘッダフィールド識別子482に対応するサブヘッダフィールドの値のサイズ又は長さを示すサブヘッダフィールドサイズ485を有する。
図2aは、HTTPパケットを処理するパケットプリプロセッサの実施例を示す。図2aに示されるように、パケットプリプロセッサ112は、図4を参照して以下でさらに説明されるように、パケット400が有効なHTTPヘッダを有するか判断するため、パケット400を調べる(1202)。
パケット400が有効なHTTPヘッダを有すると判断すると、パケットプリプロセッサ112は、パケット400が所定のヘッダフィールド識別子405に一致するヘッダフィールドを有するか判断するため、パケット400を調べる(1205)。一実施例では、ヘッダフィールド識別子405は、パケット400の処理前にパケットプリプロセッサ112に格納される。一実施例では、ヘッダフィールド識別子405は、パケット400の処理前にパケットプリプロセッサ112の内部メモリにプロセッサモジュール113により設定される。パケット400におけるヘッダフィールド識別子405との一致が成功すると、パケットプリプロセッサ112は、ヘッダフィールドブロック430を生成するのに利用されるパケット400のヘッダフィールド識別子405に関連する情報を抽出する(1210)。その後、ヘッダフィールドブロック430のヘッダフィールド識別子432がヘッダフィールド識別子405に関連付けされている場合、ヘッダフィールドブロック430が生成される(1212)。パケットプリプロセッサ112は、ヘッダフィールド識別子405がパケット400に含まれていることを示すため、ヘッダレポートブロック400のサマリブロック420のヘッダフィールドインジケータ425を修正する(1216)。
一実施例では、パケットプリプロセッサ112は、ヘッダフィールド識別子405がパケット400に含まれていないと判断する。パケットプリプロセッサ112は、ヘッダフィールド識別子405がパケット400に含まれていないことを示すため、ヘッダフィールドインジケータ425を修正する。これに対応して、パケットプリプロセッサ112は、ヘッダフィールドブロック430を生成しない。パケット400におけるヘッダフィールド識別子112のマッチング処理は、図5を参照して以下でさらに説明される。ヘッダフィールド識別子405の具体例は、“ホスト”、“サーバ”、“コンテンツ”、“Cookie”、“Cookie2”、“Set−Cookie”及び“Set−Cookie2”を含む。
一実施例では、パケットプリプロセッサ112はさらに、所定のサブヘッダフィールド識別子407に一致するサブヘッダフィールドについてパケット400を調べる。一実施例では、サブヘッダフィールド識別子407は、パケット400の処理前にパケットプリプロセッサ112に格納される。一実施例では、サブヘッダフィールド識別子407は、プロセッサモジュール113によってパケット400の処理前にパケットプリプロセッサ112に設定される。サブヘッダフィールド識別子407がパケット400にあるという判定に成功すると、パケットプリプロセッサ112は、ヘッダフィールドレポート480を生成するのに利用されるパケット400のサブヘッダフィールド識別子407に関連する情報を抽出する(1222)。その後、サブヘッダフィールドブロック480のサブヘッダフィールド識別子482がサブヘッダフィールド識別子407に関連付けされる場合、ヘッダフィールドブロック480が生成される(1223)。パケットプリプロセッサ112はさらに、サブヘッダフィールド識別子407がパケット400に含まれていることを示すため、ヘッダフィールドインジケータ425を修正する。パケット400におけるサブヘッダフィールド識別子407のマッチング処理が、図6を参照して以下でさらに説明される。サブヘッダフィールド識別子407の具体例は、“サービスグループ”、“Std−sg”、及びサブヘッダフィールド識別子407がCookieサブヘッダ、Cookie2サブヘッダ、Cookieサブヘッダを設定、又はCookie2サブヘッダを設定である他のCookie名文字列を含む。一実施例では、サブヘッダフィールド識別子407は、ペアレントヘッダフィールド識別子を含む。例えば、サブヘッダフィールド識別子407は、“Cookie/Sto−sg”である。
一実施例では、パケットプリプロセッサ112は、パケット400が有効なHTTPヘッダを有していないと判断する。これに対応して、パケットプリプロセッサ112は、ヘッダレポートブロック410を生成しない。一実施例では、パケットプリプロセッサ112は、有効なHTTPヘッダがパケット400に含まれていないことを示すヘッダレポートブロック410をサマリブロック420と共に生成する。
図2に戻って、パケットプリプロセッサ112は、ヘッダレポートブロック410をプロセッサモジュール113に送信する。一実施例では、パケットプリプロセッサ112は、ヘッダレポートブロック410と共にパケット400をプロセッサモジュール113に送信する。一実施例では、パケットプリプロセッサ112は、パケット400をプロセッサモジュール113に送信した後、ヘッダレポートブロック410を送信する。
図2bは、ヘッダレポートブロック410を処理するプロセッサモジュール113の実施例を示す。プロセッサモジュール113は、パケット400とヘッダレポートブロック410とを受信する。
一実施例では、プロセッサモジュール113は、ヘッダレポートブロック410を受信し、サマリブロック420からパケット400が有効なHTTPヘッダを有すると判断する(1251)。プロセッサモジュール113は、ヘッダレポートブロック410を用いてパケット400を処理する。プロセッサモジュール113がヘッダレポートブロック410を受信しないとき、又は受信したヘッダレポートブロック410のサマリブロック420からパケット400が有効なHTTPリクエストヘッダを含んでいないと判断したとき、パケット400の処理は本発明の範囲外である。
パケット400が有効なHTTPヘッダを有していると判断したことに応答して、プロセッサモジュール113は、ヘッダレポートブロック410を用いてサービスポリシー310を抽出する(1260)。サービスポリシー310の抽出では、ヘッダレポートブロック410のヘッダフィールドブロック430がヘッダフィールド識別子432に対応すると仮定して、プロセッサモジュール113は、ヘッダフィールドブロック430のヘッダフィールド位置434及びヘッダフィールドサイズ435を利用することによって、パケット400からヘッダフィールド“サーバ”のヘッダフィールド値437を取得する(1261)。プロセッサモジュール113は、ヘッダフィールド値437に基づきサービスポリシー310を選択する。一実施例では、サブヘッダフィールドブロック480は、サブヘッダフィールド識別子407“サービスグループ”に対応する。プロセッサモジュール113は、サブヘッダフィールドブロック480のサブヘッダフィールド位置484とサブヘッダフィールドサイズ485とを利用することによって、パケット400からサブヘッダフィールド識別子407のサブヘッダフィールド値487を取得する(1263)。プロセッサモジュール113は、サブヘッダフィールド値487に基づきサービスポリシー310を抽出する。
プロセッサモジュール113は、サービスポリシー310をパケット400に適用する(1270)。一実施例では、プロセッサモジュール113は、サービスポリシー310に基づきサーバ210を選択する。一実施例では、プロセッサモジュール113は、サービスポリシー310に基づきトラフィック管理をパケット400に適用する。一実施例では、プロセッサモジュール113は、サービスポリシー310に基づきパケット400にセキュリティ制御を適用する。
一実施例では、プロセッサモジュール113は、HTTPリクエストパケット400を利用してサーバ210とHTTPセッション350を確立する(1272)。一実施例では、プロセッサモジュール113は、修正されたパケット400を用いてHTTPセッション350を確立する前に、HTTPリクエストパケット400を修正する(1275)。一実施例では、サブヘッダフィールドブロック480は、ペアレントヘッダフィールド識別子“Cookie”のサブヘッダフィールドを示す。プロセッサモジュール113は、HTTPリクエストパケット400からサブヘッダフィールドブロック480に関連する対応するサブヘッダフィールドを削除する。例えば、サブヘッダフィールド識別子407は“Sto−sg”である。プロセッサモジュール113は、“Cookie”ヘッダフィールドからサブヘッダフィールド識別子407“Sto−sg”を削除する。一実施例では、パケット400の“Cookie”ヘッダフィールドは、“Cookie:user=frank;Sto−sg=20198578;session−id=8204”である。修正後、修正されたパケット400の“Cookie”ヘッダフィールドは、“Cookie:user=frank;session−id=8204”である。プロセッサモジュール113は、HTTPセッション350を確立するため、修正されたパケット400をサーバ210に送信する。
一実施例では、プロセッサモジュール113は、セッションエントリ390を生成し(1280)、ホスト100とのHTTPセッション300とサーバ210とのHTTPセッション350とに関する情報を格納する。一実施例では、プロセッサモジュール113は、セッションエントリ390とサービスポリシー310とを関連付ける。
一実施例では、プロセッサモジュール113は、HTTPセッション350を確立するためパケット400をサーバ210に送信する前に、パケット400を修正しない。
図4は、HTTPリクエスト又はレスポンスパケットを特定するパケットプリプロセッサの実施例を示す。図4において、パケットプリプロセッサ112は、ネットワークインタフェースモジュール111から受信したパケット700を調べる。パケット700は、ホスト100からのHTTPリクエストパケット、サーバ210からのHTTPレスポンスパケット又は他の何れかのデータパケットであってもよい。パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有するか判断するため、パケット700を処理する。一実施例では、パケット700は、TCP IP(Transmission Control Protocol Internet Protocol)パケットヘッダ741を有する。一実施例では、パケット700は、IPトンネリングパケットヘッダを有する。IPトンネリングの具体例は、L2TPトンネリング、モバイルIPトンネリング、IP in IPトンネリング、GPRS IPトンネリング、IPv4 to IPv6トンネリング、IPv6 to IPv4トンネリング、IP MPLSトンネリング又は他のIPトンネリングプロトコルを含む。パケットプリプロセッサ112は、パケット700がHTTPパケットであることをTCP/IPヘッダ741が示しているか確認する(1403)。一実施例では、パケット700はホスト100からのパケットであるとき、パケットプリプロセッサ112は、複数の所定のポート番号704に対してパケット700のTCPデスティネーションポート番号を比較する。一実施例では、パケットプロセッサ112は、パケット700がサーバ210から受信されると、パケット700のTCPソースポート番号を利用する。複数の所定のポート番号704は、例えば、ポート番号80,8080,8000又はプロセッサモジュール113により設定される少なくとも1つのポート番号などを含む。一致がない場合、パケットプリプロセッサ112は、パケット700がHTTPパケットでなく、パケット700は有効なHTTPヘッダを含まないと判断する。そうでない場合、パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有している可能性があると判断する。
ステップ1405において、パケットプリプロセッサ112は、TCP/IPヘッダ741のフラグ及びフラグメントオフセットを確認し、パケット700がIPパケットフラグメントであるか判断する(1405)。パケット700がIPパケットフラグメントである場合、パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有していないと判断する。そうでない場合、パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有している可能性があると判断する。
パケットプリプロセッサ112は、GET;GET[white space];POST;POST[white space];and HTTP/を含むHTTPコマンド文字列706に対して、パケット700のTCPペイロード745の開始部分を比較する(1407)。一致がない場合、パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有していないと判断する。そうでない場合、パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有している可能性があると判断する。
一実施例では、1403,1405,1407において、パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有している可能性があると判断する。これに対応して、パケットプリプロセッサ112は、ヘッダレポートブロック710を生成する(1409)。1403,1405又は1407においてパケット700が有効なHTTPヘッダを有していないとパケットプリプロセッサ112が判断した場合、一実施例では、パケットプリプロセッサ112は、ヘッダレポートブロック710を生成しない。一実施例では、パケットプリプロセッサ112は、ヘッダレポートブロック710を生成しない。一実施例では、パケットプリプロセッサ112は、ヘッダレポートブロック710を生成するが、ヘッダレポートブロック710のサマリブロック720に、パケット700が有効なHTTPヘッダを有していないことを示すヘッダインジケータ722を格納する。一実施例では、パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有しているか、又は有している可能性があると判断する。パケットプリプロセッサ112は、有効なHTTPヘッダがパケット700に含まれていることを示すヘッダインジケータ722をサマリブロック720に格納する。
図5は、HTTPヘッダフィールドを特定するパケットプリプロセッサの実施例を示す。パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有しているとパケットプリプロセッサ112が判断した後、ヘッダフィールド識別子705についてパケット700を処理する。
パケットプリプロセッサ112は、キャラクタ‘\n’(新たなライン、ラインフィードキャラクタ又は16進数値0x10)と、これに続くヘッダフィールド識別子705と、これに続くキャラクタ‘:’との組み合わせから構成されるキャラクタシーケンスと、パケット700のヘッダフィールド識別子とを比較する。一実施例では、キャラクタシーケンスは、キャラクタ‘\n’の前に‘\r’(キャリッジリターンキャラクタ又は16進数値0x13)を有する。一実施例では、パケットプリプロセッサ112は、パケット700のTCPペイロード745の開始位置からマッチングをスタートするか、又は他の実施例では、パケット700の図4においてマッチングされたHTTOコマンドの後である。
一実施例では、一致がパケット700において検出されない。パケットプリプロセッサ112は、パケット700がヘッダフィールド識別子705を有していないと判断する。
一実施例では、一致が検出される。パケットプリプロセッサ112は、パケット700がヘッダフィールド識別子705を有していると判断する。パケットプリプロセッサ112は、ヘッダフィールド識別子732を含むように、ヘッダフィールド識別子705に対応するヘッダフィールドブロック730を生成する。パケットプリプロセッサ112は、一致が検出されたパケット700のヘッダフィールド位置734を記録する。パケットプリプロセッサ112は、ヘッダフィールドブロック730に位置734を格納する。本実施例では、パケットプリプロセッサ112は、位置734から始まるキャラクタ‘\n’をマッチングする。一実施例では、パケットプリプロセッサ112は、位置738においてパケット700の‘\n’又は‘\r\n’の一致を検出する。パケットプリプロセッサ112は、位置738と位置734との間の差分としてヘッダフィールドレポート730のヘッダフィールドサイズ735を計算し、ヘッダフィールドサイズ735をヘッダフィールドブロック730に格納する。一実施例では、当該差分735は、位置738と一致したキャラクタ‘:’の位置との間である。一実施例では、パケットプリプロセッサ112は、一致したキャラクタ‘:’の後のホワイトスペース‘ ’キャラクタ又はタブ‘\t’キャラクタなどの線形のホワイトスペースキャラクタのシーケンスをマッチングする。差分735は、一致したキャラクタ‘:’の後の位置738と最初の非線形のホワイトスペースキャラクタとの間である。
図6は、HTTPサブヘッダフィールドを特定するパケットプリプロセッサの実施例を示す。パケットプリプロセッサ112は、パケット700が有効なHTTPヘッダを有することをパケットプリプロセッサ112が判断した後、サブヘッダフィールド識別子707についてパケット700を処理する。パケット700がHTTPリクエストパケットである一実施例では、サブヘッダフィールド識別子707は、“Cookie”のサブヘッダフィールドに関連付けされる。パケット700がHTTPレスポンスパケットである一実施例では、サブヘッダフィールド識別子707は、“Set−Cookie”又は“Set−Cookie2”のサブヘッダフィールドに関連付けされる。
一実施例では、パケットプリプロセッサ112は、図5に示されるような“Cookie”に関連するヘッダフィールド識別子のヘッダフィールド位置794と終了位置798とを決定する。パケットプリプロセッサ112は、パケット700における位置794と終了位置798とを用いて、サブヘッダフィールド識別子707との比較を実行することを進める。パケットプリプロセッサ112は、サブヘッダフィールド識別子707とキャラクタ‘=’とのキャラクタシーケンスの組み合わせを用いて比較する。
一実施例では、一実施例では、パケットプリプロセッサ112は、位置784においてサブヘッダフィールド識別子707の一致を検出する。本実施例では、位置784は、位置794以上であって、位置798以下である。パケットプリプロセッサ112は、サブヘッダフィールド識別子707のサイズ785を決定することを進める。一実施例では、パケットプリプロセッサ112は、一致したキャラクタ‘=’の位置と位置798との間の非線形のホワイトスペースキャラクタの最初の出現と、非線形のホワイトスペースキャラクタの最初の出現後であって、位置798の前の位置788におけるキャラクタ‘;’の最初の出現とを決定する。一実施例では、パケットプリプロセッサ112は、位置784と位置788との間の差分としてサイズ785を計算する。一実施例では、位置784は、非線形のホワイトスペースキャラクタの決定された最初の出現をマーク付けする。
一実施例では、パケットプリプロセッサ112は、非線形のホワイトスペースキャラクタの一致した最初の出現とヘッダレポートブロック710における位置798との間でキャラクタ‘;’を検出せず、サイズ785の計算において位置788として位置798を利用する。
パケットプリプロセッサ112がサブヘッダフィールド識別子707の一致が検出されたと判断する実施例では、パケットプリプロセッサ112は、サブヘッダフィールドブロック780を生成する。パケットプリプロセッサ112は、ヘッダレポートブロック710のサブヘッダフィールドブロック780において、サブヘッダフィールド識別子782と共に、ヘッダフィールドとして位置784とサイズ785とを格納する。
一実施例では、パケットプリプロセッサ112は、サブヘッダフィールド識別子707の一致を検出しない。パケットプリプロセッサ112は、サブヘッダフィールド識別子707が位置794において一致したヘッダフィールド“Cookie”に含まれていないと判断する。一実施例では、パケットプリプロセッサ112は、パケット700における他のヘッダフィールド“Cookie”のマッチングに進む。一実施例では、パケットプリプロセッサ112は、サブヘッダフィールド識別子707がパケット700に含まれていないと判断する。パケットプリプロセッサ112は、ヘッダフィールドブロック780を生成しない。
図4〜6において、パケットプリプロセッサ112は、1以上のキャラクタのシーケンスに対してパケット700をマッチングする。このようなマッチングは、FPGA、ASIC及び他の適切かつ可能なハードウェアベース処理モジュールの当業者に知られている。
図7は、HTTPレスポンスパケット800を処理するサービスゲートウェイ110の実施例を示す。サービスゲートウェイ110のネットワークモジュール111は、サーバ210からHTTPレスポンスパケット800を受信する。ネットワークモジュール111は、パケット800をパケットプリプロセッサ112に送信する。パケットプリプロセッサ112は、ヘッダレポートブロック810を生成するため、パケット800を調べる。
一実施例では、ヘッダレポートブロック810は、サマリブロック820と、任意的にヘッダフィールドブロック830及びサブヘッダフィールドブロック880とを有する。サマリブロック820は、パケット800が有効なHTTPヘッダを有することを示すヘッダインジケータ(図示せず)と、ヘッダフィールドブロック830又はサブヘッダフィールドブロック880がヘッダレポートブロック810に含まれることを示すヘッダフィールドインジケータ825とを有する。
一実施例では、ヘッダフィールドブロック830は、ヘッダフィールド識別子805に対応する。一実施例では、サブヘッダフィールドブロック880は、サブヘッダフィールド識別子807に関連付けされる。
パケットプリプロセッサ112は、ヘッダレポートブロック810を生成するため、図4〜6に示されるようにパケット800を調べる。具体的には、ヘッダフィールド識別子805は、“Set−Cookie”又は“Set−Cookie2”であり、サブヘッダフィールド識別子807は、“サービスグループ”、“Std−sg”などのネーム文字列、又はプロセッサモジュール113によりパケットプリプロセッサ112に設定される他のネーム文字列である。典型的には、サブヘッダフィールド識別子807は、ヘッダフィールド識別子805のサブヘッダフィールドである。
一実施例では、パケットプリプロセッサ112は、ヘッダフィールド識別子805又はサブヘッダフィールド識別子807を検出しない。パケットプリプロセッサ112は、ヘッダフィールドインジケータ825における対応するヘッダフィールド又はサブヘッダフィールドの欠落を示す。
プロセッサモジュール113は、パケットプリプロセッサ112からパケット800と、おそらくヘッダレポートブロック810とを受信する。プロセッサモジュール113がヘッダレポートブロック810を受信しない場合、又はヘッダレポートブロック810のサマリブロック820から、パケット800が有効なHTTPヘッダを有していないと判断した場合、プロセッサモジュール113は、本発明の範囲を超えた方法によりパケット800を処理する。
一実施例では、プロセッサモジュール113は、ヘッダレポートブロック810を受信し、サマリブロック820からパケット800が有効なHTTPヘッダを有していると判断する。プロセッサモジュール113は、ヘッダレポートブロック810を利用してパケット800を処理する。
一実施例では、プロセッサモジュール113は、サーバ210のアドレス、ホスト100のアドレス、パケット800におけるTCPソースポート及びデスティネーションポート番号などのパケット800の情報を利用して、セッションエントリ390を抽出する。プロセッサモジュール113はさらに、セッションエントリ390に関連するサービスポリシー310を抽出する。
一実施例では、プロセッサモジュール113は、“Set−Cookie”又は“Set−Cookie2”に対応するヘッダフィールドブロック830がヘッダレポートブロック810に含まれている場合、ヘッダフィールドインジケータ825を確認する。一実施例では、当該確認は失敗する。プロセッサモジュール113は、“Set−Cookie”に対応するヘッダフィールドを加えることによって、パケット800を修正する。一実施例では、プロセッサモジュール113は、サブヘッダフィールド“Stg−sg”の値“678”がサービスポリシー310に基づき決定されるヘッダフィールド“\nSet−Cookie:Stg−sg=678”を加える。一実施例では、値“678”がセッションエントリ390から取得される。一実施例では、サブフィールド“サービスグループ”が、“Stg−sg”の代わりに利用される。一実施例では、サブヘッダフィールドネーム文字列が、セッションエントリ390から取得される。一実施例では、プロセッサモジュール113は、ヘッダフィールド“\r\nSet−Cookie:Stg−sg=678”を加える。
一実施例では、“Set−Cookie”又は“Set−Cookie2”に対応するヘッダフィールドブロック830が、ヘッダレポートブロック810に含まれる。プロセッサモジュール113は、サブヘッダフィールドブロック880が含まれているか判断するため、ヘッダフィールドインジケータ825を確認する。一実施例では、サブヘッダフィールドブロック880は、ヘッダレポートブロック810に含まれない。プロセッサモジュール113は、パケット800においてヘッダフィールドブロック830に対応するヘッダフィールド値を修正する。プロセッサモジュール113は、サブヘッダフィールド“Stg−sg=678”をヘッダフィールド識別子805に対応するHTTPヘッダフィールドに挿入する。例えば、ヘッダフィールド識別子805は“Set−Cookie”であり、“Set−Cookie”のヘッダフィールド値は“Set−Cookie:User=90167CD”である。プロセッサモジュール113は、“Set−Cookies”のヘッダフィールド値を“Set−Cookie:User=90167CD;Stg−sg=678”に変更する。一実施例では、プロセッサモジュール113は、“Set−Cookie”のヘッダフィールド値を“Set−Cookie:User=90167CD;Stg−sg=678\r\n”に変更する。
一実施例では、サブヘッダフィールドブロック880は、ヘッダレポートブロック810に含まれる。プロセッサモジュール113は、パケット800のHTTPヘッダを修正しない。
プロセッサモジュール113は、修正されたパケット800をホスト100に送信する。
一実施例では、パケット700又はパケット800は、2以上の“Cookie”又は“Set−Cookie”ヘッダなどの同一のヘッダフィールドの2以上を有してもよい。一実施例では、パケットプリプロセッサ112は、ヘッダの最初の出現を処理する。一実施例では、パケットプリプロセッサ112は、設定されたサブヘッダフィールドがマッチングされたヘッダの最初の出現を処理する。一実施例では、パケットプリプロセッサ112は、ヘッダレポートブロック710又はヘッダレポートブロック810に同一の複数のヘッダフィールドの出現を記録する。
本発明が図示された実施例に従って説明されたが、当業者は、これらの実施例に対する変形が可能であり、これらの変形は本発明の趣旨及び範囲内であることを容易に認識するであろう。従って、添付した請求項の趣旨及び範囲から逸脱することなく、当業者により多数の変更がされてもよい。
10 サービスゲートウェイ
100 ホスト
111 ネットワークインタフェースモジュール
112 パケットプリプロセッサ
113 プロセッサモジュール
114 コンピュータ可読媒体
153 データネットワーク
210 サーバ

Claims (22)

  1. HTTP(Hypertext Transfer Protocol)ヘッダを処理する方法であって、
    少なくとも1つの所定のヘッダフィールド識別子をハードウェアパケットプリプロセッサのメモリに設定するステップを有し、
    前記ハードウェアパケットプリプロセッサは、ホストとサーバとの間のHTTPセッションにおいて受信されたHTTPパケットのヘッダフィールドにおいて少なくとも1つのヘッダフィールド識別子を検出し、前記所定のヘッダフィールド識別子と前記HTTPパケットにおけるヘッダフィールド識別子とをマッチングし、前記HTTPパケットにおけるヘッダフィールド識別子に対応する情報を有するヘッダレポートブロックを生成し、前記ヘッダレポートブロックに基づき前記HTTPパケットを処理するため、プロセッサモジュールに前記ヘッダレポートブロックを送信することが可能とされ
    前記所定のヘッダフィールド識別子と前記HTTPパケットにおけるヘッダフィールド識別子とのマッチングと、前記ヘッダレポートブロックの生成とにおいて、前記ハードウェアパケットプリプロセッサはさらに、
    前記HTTPヘッダにおけるヘッダフィールド識別子と、前記ハードウェアパケットプリプロセッサのメモリに設定された所定のヘッダフィールド識別子とを比較し、
    前記HTTPヘッダにおけるヘッダフィールド識別子が前記ハードウェアパケットプリプロセッサのメモリに設定された所定のヘッダフィールド識別子に一致したと判断することに応答して、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールドの開始位置を示すヘッダフィールド位置と、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールドの値のサイズ又は長さを示すヘッダフィールドサイズとを有するヘッダフィールドブロックを有するように、前記ヘッダレポートブロックを生成することが可能とされる方法。
  2. 少なくとも1つの所定のサブヘッダフィールド識別子を前記ハードウェアパケットプリプロセッサのメモリに設定するステップをさらに有し、
    前記ハードウェアパケットプリプロセッサはさらに、前記HTTPパケットのヘッダフィールド内で少なくとも1つのサブヘッダフィールド識別子を検出し、前記所定のサブヘッダフィールド識別子と前記HTTPパケットにおけるサブヘッダフィールド識別子とをマッチングし、前記HTTPパケットにおけるサブヘッダフィールド識別子に対応する情報をさらに有するように前記ヘッダレポートブロックを生成することが可能とされる、請求項記載の方法。
  3. 前記所定のサブヘッダフィールド識別子と前記HTTPパケットにおけるサブヘッダフィールド識別子とのマッチングと、前記ヘッダレポートブロックの生成とにおいて、前記ハードウェアパケットプリプロセッサはさらに、
    前記所定のサブヘッダフィールド識別子と、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールド内のキャラクタとを比較し、
    前記所定のサブヘッダフィールド識別子と前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールド内のキャラクタとの間で一致が検出されたことに応答して、前記HTTPヘッダにおけるサブヘッダフィールド識別子に対応するサブヘッダフィールドの開始位置を示すサブヘッダフィールド位置と、前記HTTPヘッダにおけるサブヘッダフィールド識別子に対応するサブヘッダフィールドの値のサイズ又は長さを示すサブヘッダフィールドサイズとを有するサブヘッダフィールドブロックを有するように、前記ヘッダレポートブロックを生成することが可能とされる、請求項記載の方法。
  4. 前記プロセッサモジュールは、
    前記ハードウェアパケットプリプロセッサから前記ヘッダレポートブロックを受信し、
    前記ヘッダフィールドブロックにおけるヘッダフィールド位置とヘッダフィールドサイズとを利用することを含む、前記ヘッダレポートブロックを利用して、サービスポリシーを抽出し、
    前記HTTPヘッダにおけるヘッダフィールド値を取得し、
    前記ヘッダフィールド値に基づき前記サービスポリシーを抽出し、
    前記サービスポリシーを前記HTTPパケットに適用する、請求項記載の方法。
  5. 前記プロセッサモジュールは、
    前記ハードウェアパケットプリプロセッサから前記ヘッダレポートブロックを受信し、
    前記サブヘッダフィールドブロックにおけるサブヘッダフィールド位置とサブヘッダフィールドサイズとを利用することを含む、前記ヘッダレポートブロックを利用して、サービスポリシーを抽出し、
    前記HTTPヘッダにおけるサブヘッダフィールド値を取得し、
    前記サブヘッダフィールド値に基づき前記サービスポリシーを抽出し、
    前記サービスポリシーを前記HTTPパケットに適用する、請求項記載の方法。
  6. 前記ヘッダフィールドは、HTTP cookieヘッダフィールドを有する、請求項1記載の方法。
  7. 前記ヘッダフィールドは、HTTP cookieヘッダフィールドを有する、請求項記載の方法。
  8. 前記プロセッサモジュールはさらに、
    前記HTTPパケットのヘッダフィールドを修正し、
    前記修正したHTTPパケットを前記ホスト又は前記サーバに送信する、請求項記載の方法。
  9. 前記ヘッダフィールドは、HTTP cookieヘッダフィールドを有する、請求項記載の方法。
  10. 前記HPPパケットのヘッダフィールドの修正と、前記修正したHTTPパケットの前記ホスト又は前記サーバへの送信とにおいて、前記プロセッサモジュールは、
    前記サブヘッダフィールドを削除することによって、前記HTTPパケットのヘッダフィールドを修正し、
    前記修正したHTTPパケットを前記サーバに送信する、請求項記載の方法。
  11. 前記HPPパケットのヘッダフィールドの修正と、前記修正したHTTPパケットの前記ホスト又は前記サーバへの送信とにおいて、前記プロセッサモジュールは、
    第2のサブヘッダフィールドを挿入することによって、前記HTTPパケットのヘッダフィールドを修正し、
    前記修正したHTTPパケットを前記ホストに送信する、請求項記載の方法。
  12. 少なくとも1つの所定のヘッダフィールド識別子により設定されたメモリを有するハードウェアパケットプリプロセッサを有するサービスゲートウェイであって、
    前記ハードウェアパケットプリプロセッサは、ホストとサーバとの間のHTTPセッションにおいて受信されたHTTPパケットのヘッダフィールドにおいて少なくとも1つのヘッダフィールド識別子を検出し、前記所定のヘッダフィールド識別子と前記HTTPパケットにおけるヘッダフィールド識別子とをマッチングし、前記HTTPパケットにおけるヘッダフィールド識別子に対応する情報を有するヘッダレポートブロックを生成し、前記ヘッダレポートブロックに基づき前記HTTPパケットを処理するため、プロセッサモジュールに前記ヘッダレポートブロックを送信し、
    前記所定のヘッダフィールド識別子と前記HTTPパケットにおけるヘッダフィールド識別子とのマッチングと、前記ヘッダレポートブロックの生成とにおいて、前記ハードウェアパケットプリプロセッサは、
    前記HTTPヘッダにおけるヘッダフィールド識別子と、前記ハードウェアパケットプリプロセッサのメモリに設定された所定のヘッダフィールド識別子とを比較し、
    前記HTTPヘッダにおけるヘッダフィールド識別子が前記ハードウェアパケットプリプロセッサのメモリに設定された所定のヘッダフィールド識別子に一致したと判断することに応答して、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールドの開始位置を示すヘッダフィールド位置と、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールドの値のサイズ又は長さを示すヘッダフィールドサイズとを有するヘッダフィールドブロックを有するように、前記ヘッダレポートブロックを生成するサービスゲートウェイ。
  13. 前記ハードウェアパケットプリプロセッサのメモリはさらに、少なくとも1つの所定のサブヘッダフィールド識別子により設定され、
    前記ハードウェアパケットプリプロセッサはさらに、前記HTTPパケットのヘッダフィールド内で少なくとも1つのサブヘッダフィールド識別子を検出し、前記所定のサブヘッダフィールド識別子と前記HTTPパケットにおけるサブヘッダフィールド識別子とをマッチングし、前記HTTPパケットにおけるサブヘッダフィールド識別子に対応する情報をさらに有するように前記ヘッダレポートブロックを生成する、請求項12記載のサービスゲートウェイ。
  14. 前記所定のサブヘッダフィールド識別子と前記HTTPパケットにおけるサブヘッダフィールド識別子とのマッチングと、前記ヘッダレポートブロックの生成とにおいて、前記ハードウェアパケットプリプロセッサはさらに、
    前記所定のサブヘッダフィールド識別子と、前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールド内のキャラクタとを比較し、
    前記所定のサブヘッダフィールド識別子と前記HTTPヘッダにおけるヘッダフィールド識別子に対応するヘッダフィールド内のキャラクタとの間で一致が検出されたことに応答して、前記HTTPヘッダにおけるサブヘッダフィールド識別子に対応するサブヘッダフィールドの開始位置を示すサブヘッダフィールド位置と、前記HTTPヘッダにおけるサブヘッダフィールド識別子に対応するサブヘッダフィールドの値のサイズ又は長さを示すサブヘッダフィールドサイズとを有するサブヘッダフィールドブロックを有するように、前記ヘッダレポートブロックを生成する、請求項13記載のサービスゲートウェイ。
  15. 前記プロセッサモジュールと、
    コンピュータ可読プログラムコードを有するコンピュータ可読媒体と、
    をさらに有し、
    前記コンピュータ可読プログラムコードは、前記プロセッサモジュールにより実行されると、当該サービスゲートウェイに、
    前記ハードウェアパケットプリプロセッサから前記ヘッダレポートブロックを受信させ、
    前記ヘッダフィールドブロックにおけるヘッダフィールド位置とヘッダフィールドサイズとを利用することを含む、前記ヘッダレポートブロックを利用して、サービスポリシーを抽出させ、
    前記HTTPヘッダにおけるヘッダフィールド値を取得させ、
    前記ヘッダフィールド値に基づき前記サービスポリシーを抽出させ、
    前記サービスポリシーを前記HTTPパケットに適用させる、請求項12記載のサービスゲートウェイ。
  16. 前記プロセッサモジュールと、
    コンピュータ可読プログラムコードを有するコンピュータ可読媒体と、
    をさらに有し、
    前記コンピュータ可読プログラムコードは、前記プロセッサモジュールにより実行されると、当該サービスゲートウェイに、
    前記ハードウェアパケットプリプロセッサから前記ヘッダレポートブロックを受信させ、
    前記サブヘッダフィールドブロックにおけるサブヘッダフィールド位置とサブヘッダフィールドサイズとを利用することを含む、前記ヘッダレポートブロックを利用して、サービスポリシーを抽出させ、
    前記HTTPヘッダにおけるサブヘッダフィールド値を取得させ、
    前記サブヘッダフィールド値に基づき前記サービスポリシーを抽出させ、
    前記サービスポリシーを前記HTTPパケットに適用させる、請求項14記載のサービスゲートウェイ。
  17. 前記ヘッダフィールドは、HTTP cookieヘッダフィールドを有する、請求項12記載のサービスゲートウェイ。
  18. 前記ヘッダフィールドは、HTTP cookieヘッダフィールドを有する、請求項14記載のサービスゲートウェイ。
  19. 前記コンピュータ可読プログラムコードは、前記プロセッサモジュールにより実行されると、当該サービスゲートウェイに、
    前記HTTPパケットのヘッダフィールドを修正させ、
    前記修正したHTTPパケットを前記ホスト又は前記サーバに送信させる、請求項16記載のサービスゲートウェイ。
  20. 前記ヘッダフィールドは、HTTP cookieヘッダフィールドを有する、請求項19記載のサービスゲートウェイ。
  21. 前記HPPパケットのヘッダフィールドの修正と、前記修正したHTTPパケットの前記ホスト又は前記サーバへの送信とにおいて、前記サービスゲートウェイはさらに、
    前記サブヘッダフィールドを削除することによって、前記HTTPパケットのヘッダフィールドを修正し、
    前記修正したHTTPパケットを前記サーバに送信する、請求項20記載のサービスゲートウェイ。
  22. 前記HPPパケットのヘッダフィールドの修正と、前記修正したHTTPパケットの前記ホスト又は前記サーバへの送信とにおいて、前記サービスゲートウェイは、
    第2のサブヘッダフィールドを挿入することによって、前記HTTPパケットのヘッダフィールドを修正し、
    前記修正したHTTPパケットを前記ホストに送信する、請求項20記載のサービスゲートウェイ。
JP2013106202A 2012-05-25 2013-05-20 ハードウェア支援によりhttpヘッダを処理する方法 Active JP5980165B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/480,494 US9596286B2 (en) 2012-05-25 2012-05-25 Method to process HTTP header with hardware assistance
US13/480,494 2012-05-25

Publications (2)

Publication Number Publication Date
JP2013246820A JP2013246820A (ja) 2013-12-09
JP5980165B2 true JP5980165B2 (ja) 2016-08-31

Family

ID=48430539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013106202A Active JP5980165B2 (ja) 2012-05-25 2013-05-20 ハードウェア支援によりhttpヘッダを処理する方法

Country Status (4)

Country Link
US (3) US9596286B2 (ja)
EP (1) EP2667571B1 (ja)
JP (1) JP5980165B2 (ja)
CN (1) CN103428261B (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332925B2 (en) 2006-08-08 2012-12-11 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US8079077B2 (en) 2006-08-08 2011-12-13 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US9596286B2 (en) 2012-05-25 2017-03-14 A10 Networks, Inc. Method to process HTTP header with hardware assistance
WO2013190334A2 (en) * 2012-06-22 2013-12-27 5Th Tier Limited Network communications
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
KR101692751B1 (ko) 2012-09-25 2017-01-04 에이10 네트워크스, 인코포레이티드 데이터망 부하 분산
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US20150215277A1 (en) * 2014-01-28 2015-07-30 Electronics And Telecommunications Research Institute Network address translation apparatus with cookie proxy function and method for nat supporting cookie proxy function
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
EP2950058B1 (en) * 2014-05-28 2018-03-28 Axis AB Calibration data in a sensor system
US10165004B1 (en) * 2015-03-18 2018-12-25 Cequence Security, Inc. Passive detection of forged web browsers
US11418520B2 (en) 2015-06-15 2022-08-16 Cequence Security, Inc. Passive security analysis with inline active security device
US10931713B1 (en) 2016-02-17 2021-02-23 Cequence Security, Inc. Passive detection of genuine web browsers based on security parameters
US10142440B2 (en) * 2016-07-29 2018-11-27 International Business Machines Corporation Enforced registry of cookies in a tiered delivery network
US10931686B1 (en) 2017-02-01 2021-02-23 Cequence Security, Inc. Detection of automated requests using session identifiers
US10630654B2 (en) * 2017-03-22 2020-04-21 Microsoft Technology Licensing, Llc Hardware-accelerated secure communication management
US11113696B2 (en) 2019-03-29 2021-09-07 U.S. Bancorp, National Association Methods and systems for a virtual assistant
US11876790B2 (en) * 2020-01-21 2024-01-16 The Boeing Company Authenticating computing devices based on a dynamic port punching sequence
US20200374310A1 (en) * 2020-08-11 2020-11-26 Intel Corporation Protection from network initiated attacks

Family Cites Families (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5364101A (en) 1976-11-18 1978-06-08 Babcock Hitachi Kk Water pipe boiler
JPS5480959A (en) 1977-12-08 1979-06-28 Motoda Denshi Kogyo Kk Coordinate conversion type drive robot
JPS5579821A (en) 1978-12-11 1980-06-16 Japan Steel Works Ltd:The Manufacture of low-carbon high-chromium alloy steel by heat-insulated furnace for molten steel
JPS5579820A (en) 1978-12-14 1980-06-16 Nippon Steel Corp Treating method for molten steel
US4720850A (en) 1986-03-14 1988-01-19 American Telephone And Telegraph Company At&T Bell Laboratories Communication system control arrangement
US4864492A (en) 1986-09-17 1989-09-05 International Business Machines Corporation System and method for network configuration
US4882699A (en) 1988-09-19 1989-11-21 International Business Machines Corp. Communications network routing and management system
US5218676A (en) 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
DE69130392T2 (de) 1991-07-10 1999-06-02 Ibm Hochgeschwindigkeitspufferverwaltung
DE69123149T2 (de) 1991-09-03 1997-03-13 Hewlett Packard Co Nachrichtweglenking-Apparat
US5931914A (en) 1993-04-09 1999-08-03 Industrial Technology Research Institute Apparatus for communication protocol processing utilizing a state machine look up table
TW269763B (en) 1995-09-12 1996-02-01 Ind Tech Res Inst Seamless handoff for a wireless/wired LAN internetworking
US5875185A (en) 1995-10-10 1999-02-23 Industrial Technology Research Inst. Seamless handoff for a wireless lan/wired lan internetworking
US7113508B1 (en) 1995-11-03 2006-09-26 Cisco Technology, Inc. Security system for network address translation systems
US5781550A (en) 1996-02-02 1998-07-14 Digital Equipment Corporation Transparent and secure network gateway
US6167428A (en) 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US6141749A (en) 1997-09-12 2000-10-31 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with stateful packet filtering
US6363075B1 (en) 1998-01-23 2002-03-26 Industrial Technology Research Institute Shared buffer management mechanism and method using multiple linked lists in a high speed packet switching system
US6519243B1 (en) 1998-02-26 2003-02-11 Hitachi, Ltd. Communication system for communications devices utilizing asymmetrical paths and communications method utilizing asymmetrical paths
US6415329B1 (en) 1998-03-06 2002-07-02 Massachusetts Institute Of Technology Method and apparatus for improving efficiency of TCP/IP protocol over high delay-bandwidth network
TW375721B (en) 1998-06-17 1999-12-01 Ind Tech Res Inst DES chip processor capable of executing data encryption standard (DES) operation
US6360265B1 (en) 1998-07-08 2002-03-19 Lucent Technologies Inc. Arrangement of delivering internet protocol datagrams for multimedia services to the same server
US7333484B2 (en) 1998-08-07 2008-02-19 Intel Corporation Services processor having a packet editing unit
US6578066B1 (en) 1999-09-17 2003-06-10 Alteon Websystems Distributed load-balancing internet servers
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
TW444478B (en) 1998-12-10 2001-07-01 Ind Tech Res Inst Ethernet switch IC with shared memory structure and its network
US6389462B1 (en) 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches
US6615357B1 (en) 1999-01-29 2003-09-02 International Business Machines Corporation System and method for network address translation integration with IP security
US7086086B2 (en) 1999-02-27 2006-08-01 Alonzo Ellis System and method for maintaining N number of simultaneous cryptographic sessions using a distributed computing environment
US20030229809A1 (en) 1999-04-15 2003-12-11 Asaf Wexler Transparent proxy server
TW425821B (en) 1999-05-31 2001-03-11 Ind Tech Res Inst Key management method
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
JP3817429B2 (ja) 2000-02-23 2006-09-06 キヤノン株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US7058973B1 (en) 2000-03-03 2006-06-06 Symantec Corporation Network address translation gateway for local area networks using local IP addresses and non-translatable port addresses
US7451312B2 (en) 2000-03-07 2008-11-11 General Instrument Corporation Authenticated dynamic address assignment
US7266604B1 (en) 2000-03-31 2007-09-04 Microsoft Corporation Proxy network address translation
US7085854B2 (en) 2000-04-12 2006-08-01 Corente, Inc. Methods and systems for enabling communication between a processor and a network operations center
US7047424B2 (en) 2000-04-12 2006-05-16 Corente, Inc. Methods and systems for hairpins in virtual networks
ES2288461T3 (es) 2000-06-15 2008-01-16 Telefonaktiebolaget Lm Ericsson (Publ) Metodo y disposicion para manejar paquetes de informacion via nodos de relevo seleccionables por el usuario.
US7441270B1 (en) 2000-07-06 2008-10-21 Intel Corporation Connectivity in the presence of barriers
US7155740B2 (en) 2000-07-13 2006-12-26 Lucent Technologies Inc. Method and apparatus for robust NAT interoperation with IPSEC'S IKE and ESP tunnel mode
US7013338B1 (en) 2000-07-28 2006-03-14 Prominence Networks, Inc. Multiplexing several individual application sessions over a pre-allocated reservation protocol session
US7003574B1 (en) 2000-11-01 2006-02-21 Microsoft Corporation Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
US7280540B2 (en) * 2001-01-09 2007-10-09 Stonesoft Oy Processing of data packets within a network element cluster
WO2002069575A1 (en) 2001-02-28 2002-09-06 Gotham Networks, Inc. Methods and apparatus for network routing device
JP3963690B2 (ja) 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
JP2002290459A (ja) 2001-03-27 2002-10-04 Nec Corp パケット転送装置および方法
US7516485B1 (en) 2001-05-29 2009-04-07 Nortel Networks Limited Method and apparatus for securely transmitting encrypted data through a firewall and for monitoring user traffic
US20030009561A1 (en) 2001-06-14 2003-01-09 Sollee Patrick N. Providing telephony services to terminals behind a firewall and /or network address translator
US20040107360A1 (en) 2002-12-02 2004-06-03 Zone Labs, Inc. System and Methodology for Policy Enforcement
US7111162B1 (en) 2001-09-10 2006-09-19 Cisco Technology, Inc. Load balancing approach for scaling secure sockets layer performance
US7308710B2 (en) 2001-09-28 2007-12-11 Jp Morgan Chase Bank Secured FTP architecture
US7370353B2 (en) 2001-11-05 2008-05-06 Cisco Technology, Inc. System and method for managing dynamic network sessions
US7421515B2 (en) 2002-01-17 2008-09-02 Hewlett-Packard Development Company, L.P. Method and system for communications network
US7058789B2 (en) 2002-02-04 2006-06-06 Intel Corporation System and method for packet storage and retrieval
US7529242B1 (en) 2002-02-15 2009-05-05 Symantec Corporation Routing network packets for multi-processor network flow analysis
US7661129B2 (en) 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US20030220768A1 (en) 2002-03-12 2003-11-27 Stuart Perry Diagnostic system and method for integrated remote tool access, data collection, and control
US7284272B2 (en) 2002-05-31 2007-10-16 Alcatel Canada Inc. Secret hashing for TCP SYN/FIN correspondence
WO2003103233A1 (ja) 2002-05-31 2003-12-11 富士通株式会社 パケット中継装置、ネットワーク接続デバイス、パケット中継方法、記録媒体、プログラム
US20040054920A1 (en) 2002-08-30 2004-03-18 Wilson Mei L. Live digital rights management
US7406709B2 (en) 2002-09-09 2008-07-29 Audiocodes, Inc. Apparatus and method for allowing peer-to-peer network traffic across enterprise firewalls
US20050144468A1 (en) 2003-01-13 2005-06-30 Northcutt J. D. Method and apparatus for content protection in a personal digital network environment
US7290050B1 (en) 2002-09-20 2007-10-30 Blue Coat Systems, Inc. Transparent load balancer for network connections
US7424014B2 (en) 2002-11-12 2008-09-09 Cisco Technology, Inc. System and method for local packet transport services within distributed routers
US7591001B2 (en) 2004-05-14 2009-09-15 Liquidware Labs, Inc. System, apparatuses, methods and computer-readable media for determining the security status of a computer before establishing a network connection
US7355992B2 (en) 2003-03-18 2008-04-08 Harris Corporation Relay for extended range point-to-point wireless packetized data communication system
FR2853187B1 (fr) 2003-03-28 2006-01-13 At & T Corp Systeme permettant a toute application reseau de fonctionner de facon transparente a travers un dispositif de traduction d'adresse de reseau
US20050027947A1 (en) 2003-04-11 2005-02-03 Sun Microsystems, Inc. Multi-node computer system including a mechanism to encode node ID of a transaction-initiating node in invalidating proxy address packets
US7373500B2 (en) 2003-04-15 2008-05-13 Sun Microsystems, Inc. Secure network processing
JP4196732B2 (ja) 2003-05-26 2008-12-17 日本電気株式会社 データ転送装置及びプログラム
US20060126625A1 (en) 2003-06-03 2006-06-15 Gero Schollmeier Method for distributing traffic using hash-codes corresponding to a desired traffic distribution in a packet-oriented network comprising multipath routing
US7257837B2 (en) 2003-07-26 2007-08-14 Innomedia Pte Firewall penetration system and method for real time media communications
FR2858896A1 (fr) 2003-08-12 2005-02-18 France Telecom Procede de masquage des traitements applicatifs d'une requete d'acces a un serveur et systeme de masquage correspondant
US8171562B2 (en) 2003-08-26 2012-05-01 Oregon Health & Science University System and methods for protecting against denial of service attacks
US7568041B1 (en) 2003-09-29 2009-07-28 Nortel Networks Limited Methods and apparatus for selecting a media proxy
US8230067B2 (en) 2003-10-31 2012-07-24 Ericsson Ab DHCP proxy in a subscriber environment
US7370100B1 (en) 2003-12-10 2008-05-06 Foundry Networks, Inc. Method and apparatus for load balancing based on packet header content
US7330456B2 (en) 2003-12-19 2008-02-12 Mediatek, Inc. Method and apparatus for wireless relay within a network environment
US8856346B2 (en) * 2004-01-15 2014-10-07 Unwired Planet, Llc Stateful push notifications
US20050251856A1 (en) 2004-03-11 2005-11-10 Aep Networks Network access using multiple authentication realms
US7779130B1 (en) 2004-04-02 2010-08-17 Microsoft Corporation Method and apparatus to transfer a new data object from a data acquisition device to a user storage device
US20060031506A1 (en) 2004-04-30 2006-02-09 Sun Microsystems, Inc. System and method for evaluating policies for network load balancing
US7603454B2 (en) 2004-05-19 2009-10-13 Bea Systems, Inc. System and method for clustered tunneling of requests in application servers and transaction-based systems
KR100561633B1 (ko) 2004-09-22 2006-03-20 한국전자통신연구원 무선통신 단말기를 이용한 지능형 홈 방문자 확인 및 통화서비스 시스템과 그 방법
US7515525B2 (en) 2004-09-22 2009-04-07 Cisco Technology, Inc. Cooperative TCP / BGP window management for stateful switchover
US7564847B2 (en) 2004-12-13 2009-07-21 Intel Corporation Flow assignment
US20070022479A1 (en) 2005-07-21 2007-01-25 Somsubhra Sikdar Network interface and firewall device
JP2006180295A (ja) 2004-12-22 2006-07-06 Matsushita Electric Ind Co Ltd アドレス変換装置およびアドレス変換方法
US7765405B2 (en) 2005-02-25 2010-07-27 Microsoft Corporation Receive side scaling with cryptographically secure hashing
JP4563450B2 (ja) 2005-02-28 2010-10-13 三菱電機株式会社 コンテンツ配信システム
US7554909B2 (en) 2005-03-21 2009-06-30 Intel Corporation Dynamic service management for multicore processors
GB2425912A (en) 2005-05-04 2006-11-08 Psytechnics Ltd Packet filtering
JP4557803B2 (ja) 2005-05-27 2010-10-06 富士通株式会社 ネットワークシステム及び通信方法
JP5171619B2 (ja) 2005-06-23 2013-03-27 トムソン ライセンシング デジタル著作権管理(drm)に対応した携帯再生装置、方法及びシステム
IES20050439A2 (en) 2005-06-30 2006-08-09 Asavie R & D Ltd A method of network communication
EP1742152B1 (en) 2005-07-07 2012-09-12 Texas Instruments Inc. Method and system for a multi-sharing memory access control
JP3938387B2 (ja) 2005-08-10 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイラ、制御方法、およびコンパイラ・プログラム
JP4668775B2 (ja) 2005-11-28 2011-04-13 株式会社日立製作所 Dnsサーバ装置
TW200810459A (en) * 2005-12-16 2008-02-16 Ibm Method and system for externalizing HTTP security message handling
WO2007076883A1 (en) 2005-12-30 2007-07-12 Telecom Italia S.P.A. Method and system for secure communication between a public network and a local network
US7903573B2 (en) 2006-02-01 2011-03-08 Cisco Technology, Inc. Method and system for network traffic matrix analysis
US9137204B2 (en) 2006-02-02 2015-09-15 Check Point Software Technologies Ltd. Network security smart load balancing
US8533808B2 (en) 2006-02-02 2013-09-10 Check Point Software Technologies Ltd. Network security smart load balancing using a multiple processor device
US7675854B2 (en) 2006-02-21 2010-03-09 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US7555464B2 (en) 2006-03-01 2009-06-30 Sony Corporation Multiple DRM management
US8041929B2 (en) 2006-06-16 2011-10-18 Cisco Technology, Inc. Techniques for hardware-assisted multi-threaded processing
US8626946B2 (en) 2006-08-03 2014-01-07 Citrix Systems, Inc. Systems and methods for hierarchical global load balancing
US8869262B2 (en) 2006-08-03 2014-10-21 Citrix Systems, Inc. Systems and methods for application based interception of SSL/VPN traffic
US8079077B2 (en) 2006-08-08 2011-12-13 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US8332925B2 (en) 2006-08-08 2012-12-11 A10 Networks, Inc. System and method for distributed multi-processing security gateway
CN100466629C (zh) 2006-09-18 2009-03-04 杭州华三通信技术有限公司 一种网络设备和基于多核处理器的报文转发方法
US7716378B2 (en) 2006-10-17 2010-05-11 A10 Networks, Inc. System and method to associate a private user identity with a public user identity
CN100508499C (zh) 2006-11-02 2009-07-01 杭州华三通信技术有限公司 实现自适应调度的多内核处理器及多内核处理方法
US7912050B2 (en) * 2006-12-05 2011-03-22 Electronics And Telecommunications Research Institute Method for classifying downstream packet in cable modem termination system at head-end supporting channel bonding mode, and cable modem termination system
JP5332117B2 (ja) 2007-03-06 2013-11-06 日本電気株式会社 Wwwコンテンツ取得システム及びwwwコンテンツ取得方法
KR101455999B1 (ko) * 2007-04-30 2014-11-03 엘지전자 주식회사 무선 통신 시스템에서의 데이터 블록 생성 방법
KR100807739B1 (ko) 2007-05-18 2008-02-28 삼성전자주식회사 Drm 라이센스 저장 장치, 저장 시스템 및 저장 방법
US8024472B1 (en) * 2007-09-25 2011-09-20 Limelight Networks, Inc. Third party verification using override IP addresses
JP4858468B2 (ja) 2008-03-12 2012-01-18 日本電気株式会社 プロトコル処理装置及び処理方法
US8761204B2 (en) 2010-05-18 2014-06-24 Lsi Corporation Packet assembly module for multi-core, multi-thread network processors
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8255644B2 (en) 2009-05-18 2012-08-28 Lsi Corporation Network communications processor architecture with memory load balancing
EP2449501B1 (en) 2009-06-30 2020-07-22 Nokia Technologies Oy Method, apparatus and computer program product for providing protected content to one or more devices by reacquiring the content from a service
US8370920B2 (en) 2009-10-28 2013-02-05 Aunigma Network Security Corp. System and method for providing unified transport and security protocols
US8520615B2 (en) 2010-03-26 2013-08-27 Juniper Networks, Inc. Breakout gateway for mobile data traffic
US8804533B2 (en) * 2010-12-28 2014-08-12 Broadcom Corporation Techniques for Wi-Fi acceleration in residential gateways
JP5743589B2 (ja) 2011-02-18 2015-07-01 キヤノン株式会社 Webサービスシステム、サーバ管理装置およびWebサービス提供方法
US9015469B2 (en) 2011-07-28 2015-04-21 Cloudflare, Inc. Supporting secure sessions in a cloud-based proxy service
US8830834B2 (en) * 2011-12-21 2014-09-09 Cisco Technology, Inc. Overlay-based packet steering
US8898222B2 (en) 2012-01-19 2014-11-25 International Business Machines Corporation Processing STREAMS messages over a system area network
US9602634B2 (en) * 2012-02-15 2017-03-21 Avaya Inc. Global session identifier
US8819275B2 (en) * 2012-02-28 2014-08-26 Comcast Cable Communications, Llc Load balancing and session persistence in packet networks
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US9755994B2 (en) 2012-05-21 2017-09-05 Nvidia Corporation Mechanism for tracking age of common resource requests within a resource management subsystem
US9596286B2 (en) * 2012-05-25 2017-03-14 A10 Networks, Inc. Method to process HTTP header with hardware assistance
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions

Also Published As

Publication number Publication date
US9596286B2 (en) 2017-03-14
EP2667571A1 (en) 2013-11-27
JP2013246820A (ja) 2013-12-09
US20170187631A1 (en) 2017-06-29
US10348631B2 (en) 2019-07-09
EP2667571B1 (en) 2019-03-06
US20130315241A1 (en) 2013-11-28
US9843521B2 (en) 2017-12-12
CN103428261B (zh) 2019-01-15
CN103428261A (zh) 2013-12-04
US20180091429A1 (en) 2018-03-29

Similar Documents

Publication Publication Date Title
JP5980165B2 (ja) ハードウェア支援によりhttpヘッダを処理する方法
US10659354B2 (en) Processing data packets using a policy based network path
CN107241186B (zh) 网络设备和用于网络通信的方法
US8244881B2 (en) Service virtualization over content-centric networks
US8903884B2 (en) Multi-tenant services gateway
US9118620B1 (en) Hardware-based packet editor
US10645145B2 (en) Method and apparatus for accelerating data transmission in a network communication system
JP6367371B2 (ja) ネットワークパケットカプセル化およびルーティング
WO2014187238A1 (zh) 应用类型识别方法及网络设备
US9554276B2 (en) System and method for on the fly protocol conversion in obtaining policy enforcement information
US8578468B1 (en) Multi-factor client authentication
US20170054640A1 (en) Device and method for establishing connection in load-balancing system
US10187312B2 (en) Communication protocol for multiplexing data streams over UDP
US9379952B2 (en) Monitoring NAT behaviors through URI dereferences in web browsers
JP2015507380A (ja) ステートレスおよびステートフルなサーバー負荷分散を組み合わせる方法
US8949952B2 (en) Multi-stack subscriber sign on
WO2016086755A1 (zh) 一种报文处理的方法和透明代理服务器
US9306955B2 (en) Early policy evaluation of multiphase attributes in high-performance firewalls
TW201312369A (zh) 網頁內容過濾方法以及具網頁內容過濾功能之網路設備
US10375175B2 (en) Method and apparatus for terminal application accessing NAS
JP6605149B2 (ja) 共有端末の検出方法及びその装置
EP3319288A1 (en) Protocol detection by parsing layer-4 packets in a network security system
JP6184381B2 (ja) 暗号化されたデータフローを分類する方法および装置、コンピュータプログラム、ならびに情報記憶手段
US9781075B1 (en) Increased port address space

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160523

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160726

R150 Certificate of patent or registration of utility model

Ref document number: 5980165

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250