JP5932409B2 - Tcp接続を検査するためのメタデータキャプチャ - Google Patents

Tcp接続を検査するためのメタデータキャプチャ Download PDF

Info

Publication number
JP5932409B2
JP5932409B2 JP2012053311A JP2012053311A JP5932409B2 JP 5932409 B2 JP5932409 B2 JP 5932409B2 JP 2012053311 A JP2012053311 A JP 2012053311A JP 2012053311 A JP2012053311 A JP 2012053311A JP 5932409 B2 JP5932409 B2 JP 5932409B2
Authority
JP
Japan
Prior art keywords
tcp
packet
metadata
received
extracted
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.)
Expired - Fee Related
Application number
JP2012053311A
Other languages
English (en)
Other versions
JP2012191622A (ja
Inventor
マクシム ピャトコフスキー
マクシム ピャトコフスキー
Original Assignee
イクシア
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 イクシア filed Critical イクシア
Publication of JP2012191622A publication Critical patent/JP2012191622A/ja
Application granted granted Critical
Publication of JP5932409B2 publication Critical patent/JP5932409B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Description

(著作権およびトレードドレスについての通知)
本特許文献の開示の一部は著作権保護に対象となるマテリアルを含む。本特許文献は、保有者のトレードドレスである、またはトレードドレスとなり得る事柄を示し、および/または記載する場合がある。著作権およびトレードドレスの保有者は、いかなる者であっても米国特許商標局の書類または記録の通りに本特許開示を複製する限りで、異議を申し立てるものではないが、その他の場合には、いかなる場合であっても全ての著作権およびトレードドレスの権利を保留するものである。
本開示は、ネットワークまたはネットワークデバイスを検査するためのトラフィックを受信および処理することに関する。
多くのタイプの通信ネットワークにおいて、送信される各メッセージは固定長または可変長の部分へと分割される。各々の部分は、情報のパケット、フレーム、セル、データグラム、データ単位、または他の情報単位として呼ばれる場合があり、それらの全ては、本明細書において、パケットとして参照される。
各パケットは、通常、パケットのペイロードと呼ばれる元のメッセージの一部を含む。パケットのペイロードはデータを含んでよく、あるいは、音声情報またはビデオ情報を含んでもよい。パケットのペイロードはまた、ネットワーク管理および制御情報を含んでもよい。さらに、各パケットは、通常、パケットヘッダと呼ばれる識別およびルーティング情報を含む。パケットはネットワークを通じて複数のスイッチまたはノードを介して個々に送信される。パケットは、目的とするデバイスまたはエンドユーザにメッセージが配信される前に、パケットヘッダに含まれる情報を用いて最終的な送り先にてメッセージに再構築される。受信側において、その再構築されたメッセージは、ユーザの装置に適合するフォーマットでエンドユーザに送られる。
メッセージをパケットとして送信する通信ネットワークは、パケット交換ネットワークと呼ばれる。パケット交換ネットワークは、通常、ハブまたはノードで交差する送信パスのメッシュを含む。ノードの少なくとも一部は、ノードに到着するパケットを受け取り、適切な発信パスに沿ってパケットを再送信するスイッチングデバイスまたはルータを備えてよい。パケット交換ネットワークは、業界標準のプロトコルのレイヤ別の構造によって制御される。その構造のレイヤ1、2、3、およびレイヤ4は各々、物理レイヤ、データリンクレイヤ、ネットワークレイヤ、およびトランスポートレイヤである。
レイヤ1のプロトコルは、ネットワークのノード間での物理的な(電気的、光学的、または無線の)インターフェースを規定する。レイヤ1のプロトコルは、イーサネット(登録商標)の物理的コンフィグレーション、SONET(同期光学的ネットワーク)、および他の光学接続プロトコル、ならびに、Wi−Fi(登録商標)等の様々な無線プロトコルを含む。
レイヤ2のプロトコルは、データがネットワークのノード間を論理的に転送される方法を制御する。レイヤ2のプロトコルは、イーサネット(登録商標)、ATM(非同期転送モード)、フレームリレー、およびPPP(ポイント・ツー・ポイント・プロトコル)を含む。
レイヤ3のプロトコルは、ネットワークの複数のノードを接続するパスに沿ってソースから送り先へパケットがルーティングされる方法を制御する。主要なレイヤ3のプロトコルは周知のインターネットプロトコルバージョン4(IPv4)およびバージョン6(IPv6)である。パケット交換ネットワークは、イーサネット(登録商標)、ATM、FR、および/またはPPPのレイヤ2のプロトコルの混合体を用いてIPパケットをルーティングする必要がある場合もある。ネットワークのノードの少なくとも一部は、各パケット内に含まれるネットワークレイヤヘッダから、送り先アドレスを抽出するルータを備えてもよい。ルータは次いで、パケットが再送信されるべきルートまたはパスを決定するために送り先アドレスを用いる。通常のパケットは複数のルータを通過してよく、それらのルータの各々は送り先アドレスを抽出する行為およびそのパケットが再送信されるべきルートまたはパスを決定する行為を繰り返す。
レイヤ4のプロトコルは、ネットワーク中でエンド・ツー・エンドのメッセージ配信を制御する。特に、通信制御プロトコル(TCP)は、必要に応じて、順次的な承認および再伝送のシステムを用いてパケットストリームの信頼性のある伝送を提供する。TCPは、2つのデバイスがネットワークを介した仮想接続を開くためにメッセージを交換するコネクション型のプロトコルである。接続がいったん開くと、接続されたデバイス間で双方向通信が生じ得る。接続はそれらのデバイスの一方によって切断されるまで存在し得る。接続を開くことおよび切断の両方は、特定のメッセージが2つのデバイス間で交換されるいくつかのステップを必要とする。予定されていた応答が所定の時間期間に一方のデバイスによって受信されない場合には、接続は切断されてよく、これは通常、「タイムアウト」と呼ばれる。TCP接続は、各々のデバイスが、接続の状態(開いているのか、確立されているのか、切断されているのか)、どのようなデータが送られているのか、そしてどのような送られたデータが承認されているのかを記載した情報を維持する必要があるゆえ、「ステートフル」とみなされる。
TCP接続は、対のIPアドレス(TCP接続の各パケットのIPヘッダにおけるフィールド)および対のTCPポート(各々のTCPパケットのTCPヘッダにおけるフィールド)によって規定される。TCPポートは、どの、より高次のプロトコルまたはプロセスが、TCP接続のサービスを用いているかを規定する。TCPポートは、ハードウェアのポート(ハードウェアデバイスとネットワークとの間の接続)と混同されるべきではない。各TCPパケットのヘッダは、TCPパケット内の第1のデータバイトを識別するシーケンス番号と、受信されるものと予期された次のデータバイトを識別する肯定応答(acknowledgement)番号とを含む。シーケンス番号および肯定応答番号は、簡単に言えば、TCP接続を介して個々に送信および受信されたデータバイトの数の総数である。TCP接続を介して通信する2つのデバイスは、送信された最も高いシーケンス番号および受信された最も高い肯定応答番号を示すデータを維持する。この情報は、タイミング良く肯定応答されていないパケットを再送信するために用いられることができる。
パケット交換ネットワーク、またはパケット交換通信ネットワーク内に含まれるデバイスを検査するために、多数のパケットを含む検査トラフィックが生成され、1つ以上のポートにおいてネットワークに送信され、かつ異なるポートにて受信されてもよい。検査トラフィックにおける各パケットは、特定の宛先(destination)ポートにて受信が意図されたユニキャストパケットであってもよく、または、2つ以上の宛先ポートにおいて受信が意図されたマルチキャストパケットであってもよい。これに関連して、用語「ポート」とは、ネットワークと、そのネットワークを検査するために用いられる装置との間の通信接続のことをいう。用語「ポートユニット」とは、ポートにおいて、ネットワークに接続するネットワーク検査装置内にあるモジュールのことをいう。受信された検査トラフィックは、ネットワークの性能を測定するために分析されてよい。ネットワークに接続された各ポートユニットは、検査トラフィックの送り元(source)および検査トラフィックのための宛先の両方であってもよい。各ポートユニットは、複数の論理送り元または宛先アドレスをエミュレートしてよい。ポートユニットおよびポートユニットをネットワークに接続する通信経路の数は、典型的には、検査セッションの期間の間固定される。ネットワークの内部構造は、例えば、通信経路またはハードウェアデバイスの不具合に起因して、検査セッションの間に変更がなされてもよい。
単一のポートユニットから発せられ、かつ特定の種類のパケットおよび特定のレートを有する一連のパケットを本明細書中において「ストリーム」と呼ぶ。送り元ポートユニットは、例えば、複数のパケットの種類、レート、または宛先を含むために、複数の発信ストリームを同時にかつ並行してサポートし得る。「同時に(simultaneously)」とは「正確に同一時間に」を意味する。「並行して(concurrently)」とは、「同一時間内で」を意味する。
ネットワークのトラフィックデータを報告する目的のために、検査トラフィックはパケットグループに分けられてよく、ここで「パケットグループ」とは、ネットワークトラフィック統計が報告される任意の複数のパケットである。各ストリームは、単一のパケットグループまたは複数のパケットグループからなっていてもよい。各パケットグループは典型的には単一のストリームに属していてもよい。
検査下のネットワークまたは検査システムにおける問題を診断するために、パケットは後の分析のためにキャプチャまたは保存されてよい。例えば、TCPパケットは保存されて、例えば過度の再送信または予期せぬ接続の切断等の問題を診断することができてよい。従来、受信されたパケット全体はメモリに保存されていた。しかしながらこのアプローチでは、相当な量のメモリを必要とする。さらには、特定のTCP接続に関連するパケットを検索するためには時間のかかる検索の動作が実行されなければならない。保存されるパケットの数がハードウェアまたはソフトウェアのフィルタによって低減されたとしても、受信された検査トラフィックを保存するのに数秒以上も必要とするメモリ量は禁止される場合がある。さらには、メモリバスのスループットおよびメモリのレイテンシは、パケットがキャプチャされることができるレートを制限し、それにより検査システムの性能を低減させる。
図1はネットワーク環境のブロック図である。 図2はポートユニットのブロック図である。 図3はポートCPUのブロック図である。 図4はキャプチャバッファのグラフィック図である。 図5はキャプチャバッファのグラフィック図である。 図6はTCPメタデータをキャプチャリングするためのプロセスのフローチャートである。
本記載全体を通じて、ブロック図に表される要素は、3桁の参照番号が割り当てられ、最上位桁は図面の番号であり、下位2つの桁は要素に特定されるものである。ブロック図に関連して記載されない要素は、同じ下位の桁を有する参照番号を有する前述された要素として同じ特徴および機能を有するものとみなされてよい。
ブロック図において、矢印で終端している線は、信号というよりはデータパスを示し得る。各データパスはビット幅において多数ビットであってよい。例えば、各データパスは、4、8、16、64、256、あるいはそれ以上の並列接続からなっていてもよい。
(装置の記載)
図1はネットワーク環境のブロック図を示す。ネットワーク環境は、ネットワーク検査装置100、ネットワーク190、および複数のネットワークデバイス192を備えてよい。
ネットワーク検査装置100は、ネットワーク検査デバイス、パフォーマンスアナライザ、適合性確認システム、ネットワークアナライザ、またはネットワーク管理システムであってよい。ネットワーク検査装置100は、1つ以上のネットワークカード106、およびシャーシ102内に含まれるかまたは包囲されたバックプレーン104を備えてよい。シャーシ102は、ネットワーク検査装置を含むのに適した固定型または可搬型のシャーシ、キャビネット、または筐体であってよい。ネットワーク検査装置100は図1に示すように一体化されたユニットであってよい。あるいは、ネットワーク検査装置100は、トラフィックの生成および/または分析を提供するように協動する複数の別個のユニットを備えてよい。ネットワーク検査装置100およびネットワークカード106は、例えば様々なイーサネット(登録商標)およびファイバーチャネル標準等の1つ以上の周知の規格またはプロトコルをサポートしてよく、かつ専用のプロトコルもサポートしてよい。
ネットワークカード106は、1つ以上のフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、プログラマブル可能論理アレイ(PLA)、プロセッサおよび他の種類のデバイスを含んでもよい。さらに、ネットワークカード106はソフトウェアおよび/またはファームウェアを含んでもよい。用語、ネットワークカードは、ラインカード、テストカード、分析カード、ネットワークラインカード、ロードモジュール、インターフェースカード、ネットワークインターフェースカード、データインターフェースカード、パケットエンジンカード、サービスカード、スマートカード、スイッチカード、リレーアクセスカード等を含む。用語、ネットワークカードはまた、複数のプリント回路基板を含み得るモジュール、ユニット、およびアセンブリを含む。各ネットワークカード106は1つ以上のポートユニット110を含み得る。各ポートユニット110は、1つ以上のポートを介してネットワーク190に接続し得る。各ポートユニット110は、通信媒体195を介してネットワーク190に接続されてよく、この通信媒体195は、ワイヤ、光ファイバ、無線リンク、または他の通信媒体であってよい。各ネットワークカード106は、単一の通信プロトコルをサポートしてよく、複数の関連のプロトコルをサポートしてよく、または、複数の関連のないプロトコルをサポートしてもよい。ネットワークカード106は、ネットワーク検査装置100内に恒久的に設置されていてもよく、または着脱自在であってもよい。
バックプレーン104は、ネットワークカード106のために、バスまたは通信媒体として機能してよい。バックプレーン104はまた、電極をネットワークカード106に提供し得る。
ネットワークデバイス192は、ネットワーク190を介しての通信を可能にする任意のデバイスであってよい。ネットワークデバイス192は、ワークステーション、パーソナル・コンピュータ、サーバ、ポータブル・コンピュータ、携帯情報端末(PDA)、コンピューティング・タブレット、セル式電話/携帯電話、イーメール用装置等のコンピューティング・デバイス、プリンタ、スキャナ、ファクシミリ装置等の周辺機器、ネットワーク接続ストレージ(NAS)およびストレージ・エリア・ネットワーク(SAN)のデバイス等のディスクドライブを含むネットワーク対応のストレージデバイス、ルータ、リレー、ハブ、スイッチ、ブリッジ、およびマルチプレクサ等のネットワーキング・デバイスであってよい。さらに、ネットワークデバイス192は、ネットワークを通じて通信することができる家庭電化器具、アラームシステムおよび他の任意のデバイスまたはシステムを含んでもよい。
ネットワーク190は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、有線、無線、またはこれらの組み合わせであってもよく、インターネットを含んでもよく、またはインターネットであってもよい。ネットワーク190上の通信は、情報のフレーム、セル、データグラム、パケットまたは他の単位を含む様々な形態をとってもよく、本明細書においては、それらの全てをパケットと称する。ネットワーク検査装置100およびネットワークデバイス192は、同時に相互に通信してもよく、ネットワーク検査装置100と所与のネットワークデバイス195との間には、複数の論理的通信経路があってもよい。ネットワークそのものは、移動するデータのための多数の物理的経路および論理的経路を提供する多数のノードから成ってもよい。
ここで図2を参照し、例示的なポートユニット210は、ポート中央演算装ユニット(CPU)220と、トラフィックジェネレータ260と、トラフィックレシーバ280と、ポートユニット210を被検査ネットワーク290に接続するネットワークインターフェースユニット270とを備えてもよい。ポートユニット210は、ネットワークカード(例えばネットワークカード106)のすべてまたは一部であってもよい。
ポートプロセッサ220は、本明細書に記載される機能および特徴を提供するための、プロセッサ、プロセッサに接続されたメモリ、および様々な特殊化された装置、回路、ソフトウェアおよびインターフェースを含んでもよい。プロセス、機能および特徴は、全体的にあるいは部分的に、プロセッサ上で動作するソフトウェアにおいて実現されてもよく、ファームウェア、アプリケーションプログラム、アプレット(例えばJava(登録商標)アプレット)、ブラウザプラグイン、COMオブジェクト、ダイナミックリンクライブラリ(DLL)、スクリプト、1つ以上のサブルーチン、またはオペレーティングシステムのコンポーネントまたはサービスという形をとってもよい。ハードウェアおよびソフトウェアおよびそれらの機能は、一部の機能がプロセッサによって実行され、他の機能が他の装置によって実行されるように、分散型であってもよい。
ポートプロセッサ220は、検査アドミニストレータ205と通信してもよい。検査アドミニストレータ205は、ネットワーク検査装置100の内部に収容されるコンピューティングデバイスまたは外部のコンピューティングデバイスであってもよい。検査アドミニストレータ205は、ポートユニットが試験下のネットワーク290の検査に関与するために必要とされる命令およびデータを、ポートCPU220に提供してもよい。検査アドミニストレータ205から受信される命令およびデータは、例えば、ポートユニット210によって生成されるパケットストリームの定義、およびポートユニット210によって蓄積および報告され得るパフォーマンス統計の定義を含んでもよい。
ポートCPU220は、トラフィックジェネレータ260にストリーム形成データ212を提供して、複数のストリームを形成させる。ストリーム形成データ212は、例えば、パケットのタイプ、送信の周波数、パケット内部の固定内容フィールドおよび可変内容フィールドの定義、および各パケットストリームのための他の情報を含んでもよい。トラフィックジェネレータ260は、次いで、ストリーム形成データ212に従って複数のストリームを生成してよい。複数のストリームは、発信検査トラフィック265を形成するためにインターリーブされてよい。各ストリームは一連のパケットを含んでよい。各ストリーム内のパケットは同様の一般的なタイプであってよいが、長さおよびコンテンツが異なっていてもよい。
ネットワークインターフェースユニット270は、トラフィックジェネレータ260からの発信検査トラフィック265を、ワイヤ、光ファイバ、無線リンク、または他の通信リンクであり得るリンク295を介して、被検査ネットワーク290へと検査トラフィックを送信するように要求される、電気的、光学的、または無線による信号フォーマットに変換してよく同様に、ネットワークインターフェースユニット270は、ネットワークからリンク295を介して電気的、光学的、または無線による信号を受信してよく、かつ、トラフィックレシーバ280に対して利用可能なフォーマットに、着信する検査トラフィック275に受信される信号を変換してよい。
トラフィックレシーバ280は、ネットワークインターフェースユニット270から着信検査トラフィック275を受信してよい。トラフィックレシーバ280は、各受信パケットが特定のフローのメンバーであるかを決定し得、また、ポートCPU220から提供された検査命令214に従って各フローに関する検査統計を蓄積し得る。蓄積された検査統計は、例えば、受信パケットの合計数、順序通りでなく受信されたパケットの数、エラーを有する受信パケットの数、最大、平均および最小の伝搬遅延、および各フローの他の統計を含んでもよい。トラフィックレシーバ280はまた、検査命令214に含まれる取得基準に従って、選択されたパケットを取得および格納してもよい。トラフィックレシーバ280は、検査セッションの最中または後におけるさらなる分析のために、検査統計および/または取得パケット284を、検査命令214に従って、ポートCPU220に提供してもよい。
発信検査トラフィック265および着信検査トラフィック275は、主にステートレスであってもよい。すなわち、発信検査トラフィック265の大部分は、応答を予期することなくトラフィックジェネレータ260によって生成されてもよく、着信検査トラフィック275は、応答を意図することなくトラフィックレシーバ280によって受信されてもよい。ステートレスのトラフィックの送受信は、被検査ネットワーク290のレイヤ2およびレイヤ3の試験を行うのに十分であり得る。しかしながら、サーバまたはサーバロードバランサ等のネットワークデバイスのレイヤ4(またはそれよりも高いレイヤ)のパフォーマンスを検査するために、多数のTCP接続が、検査セッションの最中において、ポートユニット210と被検査ネットワーク290との間に必要とされる場合がある。
TCP接続を確立および使用するために、ポートCPU220は適切なTCPパケットを準備してよく、かつTCPパケット216をトラフィックジェネレータ260に提供してもよい。トラフィックジェネレータ260はTCPパケットを発信検査トラフィック265に挿入し得る。トラフィックレシーバ280は、受信されたステートレストラフィックから受信されたTCPパケットを分離し、かつ処理のためにその受信されたTCPパケット282をポートCPU220に送信し得る。
図3をここで参照すると、ポートCPU320はメモリ330に接続されたプロセッサ322を含んでよい。メモリ330はランダムアクセスメモリ、あるいはランダムアクセスメモリと他のメモリ、例えば読み出し専用メモリやフラッシュメモリなどとの組み合わせを含んでよい。メモリ330はプロセッサ322によって実行するためのデータおよびプログラム命令の両方を保存してよい。プロセッサ322およびメモリ330はトラフィックレシーバ380およびトラフィックジェネレータ360に接続されてもよく、これらはまとめてネットワークインターフェースユニット(NIU)370を形成してよい。
メモリ330は受信パケットバッファ356を含んでよい。受信されたパケットバッファ356は、少なくとも、最も長いと想定される受信パケットを保存する容量を有してよい。受信パケットバッファ356は、複数のパケットを保存する容量を有してよい。トラフィックレシーバ380は、例えばダイレクトメモリアクセスを用いて1つ以上の受信パケットを受信パケットバッファ356に書き込んでよい。各受信パケットが保存された後、トラフィックレシーバ380は、受信パケットが受信パケットバッファ356において待機していることを示す信号384(例えば、割り込み、フラグ、または他の信号等)をプロセッサ322に送ってよい。
メモリ330は送信パケットバッファ358を含んでよい。送信パケットバッファ358は、少なくとも、最も長い、送信されると想定されるパケットを保存する容量を有してよい。送信パケットバッファ358は複数のパケットを保存する容量を有してよい。プロセッサ322は、送信される1つ以上のパケットを、送信パケットバッファ358に書き込んでよい。送信される各パケットが保存された後、プロセッサ322は、送信されるパケットが送信パケットバッファ358において待機していることを示す信号(例えば、割り込み、フラグ、または別の信号)を、トラフィックジェネレータ360に送信してよい。トラフィックジェネレータ360は、次いで、例えばダイレクトメモリアクセスによって、送信されるパケットを送信パケットバッファ358から抽出してよい。
メモリ330に保存されるプログラムは、プロセッサ322が、試験下のネットワーク(図示せず)を用いて、TCP接続を開き、操作し、そして閉じることをさせる、TCPレイヤプログラム332を含んでよい。TCPレイヤプログラム332は、ポートCPU320上で動作するTCP/IPプロトコルスタック内のレイヤであってよい。ポートCPU320は、試験下のネットワークを用いた多数の同一時間内でのTCP接続を維持するように構成されてよく、かつネットワーク試験セッションの間、100万以上ものTCP接続を開いてもよい。各TCP接続について、プロセッサ322は、送信パケットバッファ358およびトラフィックジェネレータ360を介してパケットを送信してよく、かつ、トラフィックレシーバ380および受信パケットバッファ356を介してパケットを受信してよい。各TCP接続について、プロセッサ322は、メモリ330内のTCP接続メモリ334にTCP接続データを保存してもよい。保存されたTCP接続データは、例えば、接続状態、送信された最も高いシーケンス番号、および肯定応答された最も高いシーケンス番号を含んでよい。
TCP接続は、32ビットを想定した(IP.v4)IPソースアドレス、32ビット宛先アドレス、16ビットTCPソースポート、および16ビットTCP宛先ポートによって規定される。TCP接続を介して送信または受信された全てのパケットは、(IP.v4)を想定する同じ2つの32ビットのIPアドレス、およびパケットのヘッダ内にある同じ2つの16ビットのTCPポート番号を含む。このように、TCP接続は96ビットの番号によって規定され、これは2つの32ビットのIPアドレスおよび2つの16ビットのTCPポート番号を連結させることによって得られる(結果、トータルで、296、すなわち8×1028の一意のTCP接続となる)。しかしながら、ハードウェアおよびメモリ上の制限により、可能なTCP接続のわずかな部分のみしか同時に存在し得ない。
各々の開いたTCP接続は、96ビットよりも実質的に短い長さを有する接続識別子に関連付けられていてもよい。通常、接続識別子は、各TCP接続を規定する96ビット数のハッシュであってよく、すなわち、接続識別子は、関連のTCP接続を規定する96ビット数にハッシュ関数を適用することによって生成されてよい。ハッシュ関数は、より大きいデータをより小さいデータへと変換する任意のアルゴリズムまたは数学関数であり、通常は、アレイに対するインデックスとしての役割を果たし得る単一の整数である。ハッシュ関数によってもどされた値はハッシュ値と呼ばれる。例えば、ポートユニットは、218、すなわち262,144までの同時のTCP接続に対応するように設計されてよい。この場合、ハッシュ関数は、各TCP接続を規定する96ビットの数を18ビットのハッシュ値、またはTCP接続を一意に識別する接続識別子に変換するために用いられてよい。TCP接続識別子は、TCP接続メモリ334をアドレスするために、インデックスまたはポインタとして用いられてよい。
メモリ330に保存されたプログラムはまた、各受信されたTCPパケット、および送信される各TCPパケットから、選択された部分またはメタデータをプロセッサ322によりキャプチャさせるキャプチャルーチン336をも含んでよい。メタデータは各TCPパケットから抽出されてよく、かつ、メモリ330内のキャプチャメモリ340に保存されてもよい。メタデータは、受信TCPパケットが受信パケットバッファ356から取り除かれると、その受信パケットがTCPレイヤプログラム332によって処理される前に、受信TCPパケットから抽出されてよい。メタデータは、TCPパケットがTCP状態機械プログラムによって生成された後に、送信されるTCPパケットが送信パケットバッファ358に保存される前に、TCPパケットから抽出されてよい。
キャプチャメモリ340は、複数のキャプチャバッファに区分されてよく、その各々は単一のTCP接続に関連した情報を保存するために用いられる。各々のキャプチャバッファは、対応する特定のTCP接続に専用であってよく、その結果、複数のキャプチャバッファは、TCP接続識別子の可能な値の数に等しい。キャプチャバッファは動的に割り振られてよく、その結果、利用可能なバッファは、TCP接続が開かれた場合に割り振られる。TCP接続が閉じた場合、割り振られたバッファは開放されてよく、その後、異なるTCP接続に割り振られてよい。キャプチャバッファが動的に割り振られた場合、その割り振られたキャプチャバッファへのポインタは、各々の開いたTCP接続について、TCP接続メモリ334に保存されたTCP接続データに含まれてよい。
ここで図4を参照すると、キャプチャメモリ340としての使用に適切であり得るキャプチャメモリ440は、複数のmのリボルビング・バッファ(revolving buffer)を含んでよく、このリボルビング・バッファ441−1およびリボルビング・バッファ441−mは識別される(identified)。リボルビング・バッファは、有限数のエントリのための容量を有するメモリであって、リボルビング・バッファが一度いっぱいとなると、各々の新たなエントリは現在保存された最も古いエントリに上書きされる。各リボルビング・バッファは、複数の開いたTCP接続のうちの対応する1つに一意に関連されてよい。本特許出願において、用語「一意に関連付けられる」とは、2つのグループの項目の間における1対1の対応関係が存在することを意味する。これに関連して、リボルビング・バッファと開いたTCP接続との間には1対1の対応関係が存在する。リボルビング・バッファは接続が開かれた場合に、特定のTCP接続に割り当てられてよい。割り当てられたリボルビング・バッファは、特定のTCP接続が閉じた場合に開放されてよい。開放されたリボルビング・バッファは、その後、別のTCP接続に割り当てられてよい。各TCP接続について、保存された接続データは、TCP接続に割り当てられたリボルビング・バッファ441−1から444−nを識別するバッファポインタ443を含んでよい。
図4において、各リボルビング・バッファ441−1から441−mは、n個のパケット(ここでnは1よりも大きい整数である)について、キャプチャされたメタデータを保存する容量を有する。nは有利にも、2のべき乗であってよい。保存されたメタデータを、TCP接続の問題を診断するために用いることができるためには、nは、16、32、またはそれ以上に等しくてよい。複数の書き込みポインタ442−1から442−mは、複数のリボルビング・バッファ441−1から441−mに一意に関連付けられてよい。書き込みポインタ442−1から442−mの各々は、キャプチャされたメタデータの次のブロックが書き込まれるべきである対応のリボルビング・バッファ441−1から441−mにおける位置へのポインタを含んでよい。本特許出願において、ポインタは、メモリアドレスである値か、または、メモリアドレスに変換されることができる値である。ポインタをメモリアドレスに変換することは、所定の倍数でポインタ値を乗算すること、および/または所定のオフセットをポインタ値に加えることを含んでよい。
特定のパケットについてのメタデータが準備され、キャプチャメモリ440に書き込まれると、そのパケットについてのバッファポインタ443はTCPレイヤプログラム332から得られてよい。送信されるパケットのメタデータがキャプチャメモリ440に書き込まれた場合、バッファポインタ443はそのパケットに沿ってTCPレイヤプログラム332によって提供されてよい。TCPパケットが受信された場合、接続識別子が決定されてよい。接続識別子は、例えば、以前に記載されたように計算されたハッシュ値であってよい。接続識別子は、TCP接続メモリ334からTCP接続データを検索するために、TCPレイヤプログラム332によって用いられてよい。TCP接続データはバッファポインタ443を含んでよく、これは、今度は、適切な書き込みポインタ442−1から442−mにポイントする。適切な書き込みポインタは次いで、対応のリボルビング・バッファ441−1から441−m内の適切な位置にメタデータを保存するために用いられてよい。メタデータが保存された後、書き込みポインタ値は、同じTCP接続のための次のメタデータが保存されるべき位置にポイントするように進められてよい。
メタデータが、リボルビング・バッファ441−1から441−m内の全てmの位置に保存された後、関連の書き込みポインタ442−1から442−mは、リボルビング・バッファ内の第1の位置にポイントするように設定されてよい。その後、書き込みポインタ442−1から442−mは、最も古いメタデータが保存された位置に周期的にポイントするように進められてよく、その結果、常に、リボルビング・バッファ441−1から441−mのコンテンツは、対応するTCP接続に亘って送信または受信される最も最近のパケットについてのメタデータであってよい。
各パケットについて保存されたメタデータは、各パケットのTCPヘッダから抽出されたシーケンス番号445および肯定応答番号446を含んでよい。各パケットについて保存されたメタデータは、TCPヘッダから抽出された、TCPフラグ447、ウィンドウサイズ448、およびパケット長449のうちの1つ以上を含んでよい。各パケットについて保存されたメタデータはまた、パケットの到達後、および/または、TCPオプションまたはフィールド等の他の情報451が各パケットのIPヘッダから抽出された後に記録されたタイムスタンプ450を含んでよい。
各受信または送信TCPパケットから抽出されたメタデータのみを保存することは、パケット全体を保存する従来のアプローチと比較して、データキャプチャに対して必要とされるトータルのメモリ量を著しく低減し得る。例えば、32以下のバイトのメタデータは、各TCPパケットに対して保存されてよい。
ここで図5を参照すると、キャプチャメモリ340としての使用に適し得るキャプチャメモリ540は、キャプチャメタデータpを介したキャプチャメタデータ1として識別される、メタデータレコードの単一の連続したリストを保存してよい。図5に示すように、メタデータが連続したリストに保存される場合、単一の書き込みポインタ543は、次のメタデータ(キャプチャメタデータp+1)が書き込みされるキャプチャメモリ540内の位置にポイントしてよい。図4のキャプチャメモリ440とは異なり、特定のTCP接続に関連するメタデータは、キャプチャメモリ540の所定の部分には保存されない。このように、特定のTCP接続のために、メタデータを位置付けることができるためには、各パケットについて保存されるメタデータが、関連のTCP接続を識別するために、接続識別子544等の情報を含んでよい。各パケットについてのメタデータはまた、シーケンス番号545、肯定応答番号546、TCPフラグ547、ウィンドウサイズ548、パケット長449、タイムスタンプ550、および他の情報551の一部または全てを含んでよい。
(処理の記載)
ここで図6を参照すると、TCP接続を管理するためのプロセス600が、ポートCPU220等のコンピューティングデバイスによって実行されてよく、TCPレイヤプログラム332およびキャプチャルーチン336を含む保存されたプログラム命令を実行する。TCPレイヤプログラム332は、通信プロトコルを実施するTCP/IPプロトコルスタック内のレイヤであってよい。プロセス600は、TCP接続をリモートデバイスに対して確立するためのリクエストが、例えば、より高次のプロセス、例えばコンピューティングデバイス上で動作するアプリケーションプログラム等から受信された場合、605で始まってよい。プロセス600は、TCP接続が閉じた後、690において終了してよい。
プロセス600は、本質的に周期的なものであり、610〜655までの動作は、TCP接続を介したリモートデバイスを用いて複数のパケットを交換するために繰り返し実行されてよい。プロセス600の複数のインスタンスは、多数の同一時間内のTCP接続を確立および維持するために、同一時間内に実行されてよい。
TCP接続を確立するためのリクエストが605において受信された後、TCPプロトコルのプロセス610は、TCP接続を確立するために、リモートデバイスを用いて一連のTCPパケットを交換してよい。TCPプロトコルプロセス610はTCP/IPプロトコルスタックのレイヤ4として動作してよい。TCPプロトコルプロセス610の他の機能としては、送信される情報をリモートデバイスに運ぶ発信TCPパケット620を生成すること、TCP接続の信頼性を確保するために必要に応じてTCPパケットを再送信すること、TCP接続メモリ615において、TCP接続の状態を示すTCP接続データを維持すること、TCP接続を介してリモートデバイスから受信された着信TCPパケット660を処理すること、およびTCP接続を閉じるために、リモートデバイスを用いて一連のパケットを交換することを含んでよい。TCPプロトコルプロセス610はまた、所定の時間期間内にリモートデバイスから応答が受信されなかった場合、TCP接続を閉じてよい。
625において、メタデータは、TCPプロトコルプロセス610によって生成された発信TCPパケット620のヘッダから抽出されてよい。各発信TCPパケットから抽出されたメタデータは、送り元および宛先IPアドレス、送り元および宛先TCPポート、シーケンス番号、および肯定応答番号、ウィンドウ長、および他のデータを含んでよい。発信パケットは次いで、630においてリモートデバイスに送信されてよい。630において発信パケットを送信することは、TCP/IPプロトコルスタックのレイヤ3およびレイヤ2においてパケットを処理し、その後、トラフィックジェネレータ260およびネットワークインターフェースユニット270等のハードウェア要素によってネットワークを介して送信することを含んでよい。
635において、625において各パケットから抽出されたメタデータの少なくとも一部は、例えばキャプチャメモリ340等、メモリにおいて保存されてよい。図4に示すように、キャプチャメモリが複数のリボルビング・バッファとして構成される場合、バッファポインタ640はインデックスとして用いられ、適切なバッファにおいて、抽出されたメタデータを保存してよい。バッファポインタ640は、TCPプロトコルプロセス610によって提供されてよく、かつ、TCP接続データの一部としてTCP接続メモリ615に保存されてよい。図5に示すように、キャプチャメモリは単一のリストとして構成される場合、TCPプロトコルプロセスは、抽出されるメタデータに沿って、キャプチャメモリにおいて保存されてよい接続ID(図示せず)を提供してよい。
645において、リモートデバイスからのパケットは、ネットワークインターフェースユニット270およびトラフィックレシーバ280等のハードウェア要素によって受信されてよく、かつ、着信TCPパケット660を提供するために、TCP/IPスタックのレイヤ2およびレイヤ3によって処理されてよい。前述したように、メタデータは、650において、着信TCPパケットのヘッダから抽出されてよい。接続識別子は、655において、各着信パケットについて決定されてよい。例えば、接続識別子は前述したようにハッシュ値であってよい。接続識別子は、対応のTCP接続のための接続データを検索するために、TCPプロトコルプロセス610によって用いられてよい。接続データは、バッファポインタ640を含んでよい。抽出されたメタデータは、前述したようにバッファポインタ640を用いて、635において、保存されてよい。
一部の状況においては、TCPプロトコルプロセス610は、さらなる分析を必要とする異常またはイベント665が生じていることを決定してよい。例えば、イベントとは、所定の期間内に応答するために、リモートデバイスの不具合に起因したTCP接続の早期の切断であってもよい。イベントとはまた、再送信の数が所定の閾値を超過した場合、または、所定の時間期間内の再送信が所定の閾値を超過する場合等、TCP接続のための再送信の超過数であってもよい。イベントとはまた、1つ以上のTCP接続のためのメタデータをアップロードするための、より高次のプロセスからのリクエストであってもよい。
イベント665に応答して、1つ以上の選択されたTCP接続のためのメタデータは、670において、キャプチャメモリから検索されてもよい。670において検索されたメタデータは、675において、さらなる分析のために、より高次のプロセス、またはテストアドミニストレータ205等の別のコンピューティングデバイスにアップロードされてもよい。図4に示すように、キャプチャメモリが複数のリボルビング・バッファとして構成される場合、選択されたTCP接続に対応するリボルビング・バッファのコンテンツは、670において検索されてよく、かつ675においてアップロードされてよい。図5に示すように、670において、キャプチャメモリが単一のリストとして構成される場合、そのリストは、選択されたTCP接続に対応する接続識別子を含んだ記録のために検索されてよい。選択されたTCP接続に対応する接続識別子を含む記録は675においてアップロードされてよい。
(終わりに)
本記載全体を通して、示された実施形態および例は、開示された、または特許請求の範囲において請求された装置および手順についての限定ではなく、典型例として想定されるべきものである。本明細書において提示された例の多くは、方法の作用またはシステムの要素の特定の組合せに関連するものであるけれども、それらの作用およびそれらの要素は、他の方法において、組み合わされてよく、同じ課題を達成するものとして理解されるべきである。フローチャートに関して、追加の工程および工程の削減もまた考慮されてよく、図示した工程は、本明細書において記載された方法を達成するために組み合わされてもよく、またはさらに改良されてもよい。1つの実施形態のみに関連して記載された作用、要素、および特徴は、他の実施形態における同様の役割から排除されることは意図されていない。
本明細書において用いられるように、「複数」とは、2つ以上を意味する。本明細書において用いられるように、「一連の」物品とは、1つ以上のそのような物品を含み得る。本明細書において用いられるように、明細書の記載または特許請求の範囲の請求項においては、用語「含む、備える(comprising)」、「含む、備える(including)」「運ぶ、有する、持つ(carrying)」、「有する(having)」、「含む(containing)」、「含む、関する、関連する(involving)」等は、オープンエンド型、すなわち、含むがそれらに限定されないということを意味することは理解されるべきである。「〜からなる」および「〜から実質的になる」といった移行句の各々のみが、特許請求の範囲の請求項に関しては、クローズ型、または半クローズ型の移行句である。請求項の要素を変更するために、特許請求の範囲の請求項における「第1」、「第2」、「第3」等の序数の用語の使用は、それ自体では、任意の優先順位、優位性、またはある請求項の要素が他のものより先であったり、または、ある方法の作用が行われる時間的順序等を含意せず、請求項の要素を区別するために、特定の名前を有するある請求項の要素から、同じ名前を有する別の要素を区別するためのラベルとして(順序を示す用語の使用を別にして)単に用いられる。本明細書において用いられるように、「および/または」は、リストアップされた物品が二者択一であることを意味するが、そうした二者択一もまた、そうしてリストアップされた物品の任意の組合せを含むものである。

Claims (33)

  1. ネットワーク接続を検査するために、検査システムによって実行される方法であって、
    ネットワークを介して、1つ以上のリモートデバイスとの複数の通信制御プロトコル(TCP)接続を確立する工程と、
    前記複数のTCP接続を介して送信されたTCPパケットおよび前記複数のTCP接続を介して受信されたTCPパケットからメタデータを抽出する工程と、
    メモリに、抽出された前記メタデータを保存する工程と
    を含
    前記メモリは複数のリボルビング・バッファを含み、各々のリボルビング・バッファは前記複数のTCP接続の対応する1つに関連付けられており、
    前記抽出されたメタデータを保存する工程は、前記対応するリボルビング・バッファにおいて、各TCP接続を介して送信または受信されたN個(Nは1よりも大きい整数)の最も最近のパケットについて、前記抽出されたメタデータを保存する工程を含む、方法。
  2. 前記メタデータは、送信された各パケットおよび受信された各パケットのTCPヘッダから抽出されたシーケンス番号および肯定応答番号を含む、請求項1に記載の方法。
  3. 前記メタデータはさらに、送信された各パケットおよび受信された各パケットの前記TCPヘッダから抽出された、TCPフラグ、ウィンドウサイズ、および長さの少なくとも1つを含む、請求項2に記載の方法。
  4. 前記メタデータはさらに、送信された各パケットおよび受信された各パケットのペイロードから抽出されたタイムスタンプを含む、請求項2に記載の方法。
  5. 各TCP接続は、インターネットプロトコル(IP)送り元アドレス、IP宛先アドレス、TCP送り元ポート番号、およびTCP宛先ポート番号の一意の組み合わせによって規定され、
    送信された各TCPパケットおよび受信された各TCPパケットに関連付けられた接続識別子を決定する工程であって、前記接続識別子は、各パケットのヘッダ内に含まれるIP送り元アドレス、IP宛先アドレス、TCP送り元ポート番号、およびTCP宛先ポート番号のハッシュに等しい、工程をさらに含む、請求項1に記載の方法。
  6. Nは16に等しい2のべき乗か、それよりも大きい2のべき乗である、請求項に記載の方法。
  7. 前記抽出されたメタデータを保存する工程は、前記メモリ内の対応するリボルビング・バッファへのポインタとして、受信された各TCPパケットおよび送信された各TCPパケットに関連付けられた接続識別子を用いる工程をさらに含む、請求項に記載の方法。
  8. 前記抽出されたメタデータを保存する工程は、前記メモリ内の対応するリボルビング・バッファへのポインタを検索するために、受信された各TCPパケットおよび送信された各TCPパケットに関連付けられた接続識別子を用いる工程をさらに含む、請求項に記載の方法。
  9. 前記抽出されたメタデータを保存する工程は、単一の連続したリストに、前記抽出されたメタデータを保存する工程を含み、
    受信された各TCPパケットおよび送信された各TCPパケットについて保存された前記メタデータは、前記関連付けられたハッシュ値を含む、請求項5に記載の方法。
  10. 前記複数のTCP接続から、選択されたTCP接続についての保存されたメタデータを試験アドミニストレータのコンピューティングデバイスに送信する工程をさらに含む、請求項1に記載の方法。
  11. 前記選択されたTCP接続は、前記試験アドミニストレータのコンピューティングデバイスから受信されたリクエスト、前記選択されたTCP接続のタイムアウト、および所定の閾値を超過した、前記選択されたTCP接続上での再送信の数、のうちの1つに基づいて選択される、請求項に記載の方法。
  12. ネットワーク接続を試験するためのポートユニットであって、
    ネットワークを介して、TCPパケットを送信し、かつTCPパケットを受信するためのネットワークインターフェースユニットと、
    前記ネットワークインターフェースユニットに連結されたプロセッサと、
    前記プロセッサおよび前記ネットワークインターフェースユニットに連結されたメモリであって、前記プロセッサによって実行された場合に、以下:
    前記ネットワークを介して、1つ以上のリモートデバイスを用いて複数の通信制御プロトコル(TCP)接続を確立することと、
    前記複数のTCP接続を介して送信されたTCPパケットおよび前記複数のTCP接続を介して受信されたTCPパケットからメタデータを抽出することと、
    前記メモリに、抽出された前記メタデータを保存することと
    を含む動作を前記ポートユニットに実行させる命令を含むデータおよびプログラム命令を保存する、メモリと
    備え、
    前記メモリは複数のリボルビング・バッファを含み、各々のリボルビング・バッファは前記複数のTCP接続の対応する1つに関連付けられており、
    前記抽出されたメタデータを保存する工程は、前記対応するリボルビング・バッファにおいて、各TCP接続を介して送信または受信されたN個(Nは1よりも大きい整数)の最も最近のパケットについて、前記抽出されたメタデータを保存する工程を含む、ポートユニット。
  13. 前記メタデータは、送信された各パケットおよび受信された各パケットのTCPヘッダから抽出されたシーケンス番号および肯定応答番号を含む、請求項12に記載のポートユニット。
  14. 前記メタデータはさらに、送信された各パケットおよび受信された各パケットの前記TCPヘッダから抽出された、TCPフラグ、ウィンドウサイズ、および長さの少なくとも1つを含む、請求項13に記載のポートユニット。
  15. 前記メタデータはさらに、送信された各パケットおよび受信された各パケットのペイロードから抽出されたタイムスタンプを含む、請求項13に記載のポートユニット。
  16. 各TCP接続は、インターネットプロトコル(IP)送り元アドレス、IP宛先アドレス、TCP送り元ポート番号、およびTCP宛先ポート番号の一意の組み合わせによって規定され、実行される前記動作はさらに、
    送信された各TCPパケットおよび受信された各TCPパケットを用いて接続識別子を決定する工程であって、前記接続識別子は、各パケットのヘッダ内に含まれるIP送り元アドレス、IP宛先アドレス、TCP送り元ポート番号、およびTCP宛先ポート番号のハッシュ関数に等しい、動作をさらに含む、請求項12に記載のポートユニット。
  17. Nは16に等しい2のべき乗か、それよりも大きい2のべき乗である、請求項16に記載のポートユニット。
  18. 前記抽出されたメタデータを保存する工程は、前記メモリ内の対応するリボルビング・バッファへのポインタとして、受信された各TCPパケットおよび送信された各TCPパケットに関連付けられた接続識別子を用いる工程をさらに含む、請求項16に記載のポートユニット。
  19. 前記抽出されたメタデータを保存する工程は、前記メモリ内の対応するリボルビング・バッファへのポインタを検索するために、受信された各TCPパケットおよび送信された各TCPパケットに関連付けられた接続識別子を用いる工程をさらに含む、請求項16に記載のポートユニット。
  20. 前記抽出されたメタデータを保存する工程は、単一の連続したリストに、前記抽出されたメタデータを保存する工程を含み、
    受信された各TCPパケットおよび送信された各TCPパケットについて保存された前記メタデータは、前記関連付けられた接続識別子を含む、請求項16に記載のポートユニット。
  21. 実行される前記動作はさらに、前記複数のTCP接続からの選択されたTCP接続についての保存されたメタデータを試験アドミニストレータのコンピューティングデバイスに送信する動作を含む、請求項12に記載のポートユニット。
  22. 前記選択されたTCP接続は、前記試験アドミニストレータのコンピューティングデバイスから受信されたリクエスト、前記選択されたTCP接続のタイムアウト、および所定の閾値を超過した、前記選択されたTCP接続上での再送信の数、のうちの1つに基づいて選択される、請求項21に記載のポートユニット。
  23. ネットワークに連結されたポートユニットのプロセッサによって実行された場合、以下:
    前記ネットワークを介して、1つ以上のリモートデバイスを用いて複数の通信制御プロトコル(TCP)接続を確立することと、
    前記複数のTCP接続を介して送信されたTCPパケットおよび前記複数のTCP接続を介して受信されたTCPパケットからメタデータを抽出することと、
    メモリに、抽出された前記メタデータを保存し、
    前記メモリは複数のリボルビング・バッファを含み、各々のリボルビング・バッファは前記複数のTCP接続の対応する1つに関連付けられており、
    前記抽出されたメタデータを保存する工程は、前記対応するリボルビング・バッファにおいて、各TCP接続を介して送信または受信されたN個(Nは1よりも大きい整数)の最も最近のパケットについて、前記抽出されたメタデータを保存する工程を含む、
    動作を前記ポートユニットに実行させる命令を保存するコンピュータ可読保存媒体。
  24. 前記メタデータは、送信された各パケットおよび受信された各パケットのTCPヘッダから抽出されたシーケンス番号および肯定応答番号を含む、請求項23に記載のコンピュータ可読保存媒体。
  25. 前記メタデータはさらに、送信された各パケットおよび受信された各パケットの前記TCPヘッダから抽出された、TCPフラグ、ウィンドウサイズ、および長さの少なくとも1つを含む、請求項24に記載のコンピュータ可読保存媒体。
  26. 前記メタデータはさらに、送信された各パケットおよび受信された各パケットのペイロードから抽出されたタイムスタンプを含む、請求項24に記載のコンピュータ可読保存媒体。
  27. 各TCP接続は、インターネットプロトコル(IP)送り元アドレス、IP宛先アドレス、TCP送り元ポート番号、およびTCP宛先ポート番号の一意の組み合わせによって規定され、実行される前記動作はさらに、
    送信された各TCPパケットおよび受信された各TCPパケットに関連付けられた接続識別子を決定する工程であって、前記接続識別子は、各パケットのヘッダ内に含まれるIP送り元アドレス、IP宛先アドレス、TCP送り元ポート番号、およびTCP宛先ポート番号のハッシュに等しい、動作をさらに含む、請求項23に記載のコンピュータ可読保存媒体。
  28. Nは16に等しい2のべき乗か、それよりも大きい2のべき乗である、請求項27に記載のコンピュータ可読保存媒体。
  29. 前記抽出されたメタデータを保存する工程は、前記メモリ内の対応するリボルビング・バッファへのポインタとして、受信された各TCPパケットおよび送信された各TCPパケットに関連付けられた接続識別子を用いる工程をさらに含む、請求項27に記載のコンピュータ可読保存媒体。
  30. 前記抽出されたメタデータを保存する工程は、前記メモリ内の対応するリボルビング・バッファへのポインタを検索するために、受信された各TCPパケットおよび送信された各TCPパケットに関連付けられた接続識別子を用いる工程をさらに含む、請求項27に記載のコンピュータ可読保存媒体。
  31. 前記抽出されたメタデータを保存する工程は、前記メモリ内の対応するリボルビング・バッファへのポインタを検索するために、受信された各TCPパケットおよび送信された各TCPパケットに関連付けられた接続識別子を用いる工程をさらに含む、請求項27に記載のコンピュータ可読保存媒体。
  32. 実行される前記動作はさらに、前記複数のTCP接続からの選択されたTCP接続についての保存されたメタデータを試験アドミニストレータのコンピューティングデバイスに送信する動作を含む、請求項23に記載のコンピュータ可読保存媒体。
  33. 前記選択されたTCP接続は、前記試験アドミニストレータのコンピューティングデバイスから受信されたリクエスト、前記選択されたTCP接続のタイムアウト、および所定の閾値を超過した、前記選択されたTCP接続上での再送信の数、のうちの1つに基づいて選択される、請求項32に記載のコンピュータ可読保存媒体。
JP2012053311A 2011-03-09 2012-03-09 Tcp接続を検査するためのメタデータキャプチャ Expired - Fee Related JP5932409B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/044,329 2011-03-09
US13/044,329 US9203728B2 (en) 2011-03-09 2011-03-09 Metadata capture for testing TCP connections

Publications (2)

Publication Number Publication Date
JP2012191622A JP2012191622A (ja) 2012-10-04
JP5932409B2 true JP5932409B2 (ja) 2016-06-08

Family

ID=45558484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012053311A Expired - Fee Related JP5932409B2 (ja) 2011-03-09 2012-03-09 Tcp接続を検査するためのメタデータキャプチャ

Country Status (3)

Country Link
US (1) US9203728B2 (ja)
EP (1) EP2498443B1 (ja)
JP (1) JP5932409B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292397B1 (en) * 2012-05-14 2016-03-22 Netload, Inc. Light-weight method and apparatus for testing network devices and infrastructure
EP2723031B1 (en) * 2012-10-16 2019-07-24 Robert Bosch Gmbh Distributed measurement arrangement for an embedded automotive acquisition device with tcp acceleration
US8918682B2 (en) * 2012-11-14 2014-12-23 Altera Corporation Methods for testing network circuitry
US10846257B2 (en) * 2014-04-01 2020-11-24 Endance Technology Limited Intelligent load balancing and high speed intelligent network recorders
US9379959B1 (en) * 2014-07-10 2016-06-28 Juniper Networks, Inc. System and method for verifying the functionality of network paths
CN105635058B (zh) * 2014-10-30 2019-05-17 中国科学院声学研究所 一种无协议栈模式下针对tcp的中间人处理方法
US10320918B1 (en) * 2014-12-17 2019-06-11 Xilinx, Inc. Data-flow architecture for a TCP offload engine
US10681145B1 (en) * 2014-12-22 2020-06-09 Chelsio Communications, Inc. Replication in a protocol offload network interface controller
US10033645B2 (en) * 2015-09-29 2018-07-24 Dell Products L.P. Programmable data plane hardware load balancing system
JP6672751B2 (ja) * 2015-12-03 2020-03-25 富士通株式会社 パケット収集方法、パケット収集プログラム及びパケット収集装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0598739B1 (en) * 1992-06-17 1998-07-29 Hewlett-Packard Company Network monitoring method and apparatus
JP3584884B2 (ja) * 2001-01-17 2004-11-04 日本電気株式会社 フロー検出装置及びそれに用いるフロー検出方法
JP2003060735A (ja) * 2001-08-16 2003-02-28 Kddi Research & Development Laboratories Inc 通信プロトコル試験装置
JP2004201121A (ja) 2002-12-19 2004-07-15 Ntt Docomo Inc プロトコル試験システムおよびプロトコル試験方法
JP2006020170A (ja) * 2004-07-02 2006-01-19 Oki Telecommunication Systems Co Ltd 通信試験装置
US7366953B2 (en) * 2004-12-09 2008-04-29 International Business Machines Corporation Self test method and apparatus for identifying partially defective memory
US20080075103A1 (en) * 2005-05-20 2008-03-27 Finisar Corporation Diagnostic device
US20070081471A1 (en) * 2005-10-06 2007-04-12 Alcatel Usa Sourcing, L.P. Apparatus and method for analyzing packet data streams
JP2008104027A (ja) 2006-10-19 2008-05-01 Fujitsu Ltd パケット情報収集装置およびパケット情報収集プログラム
US8085673B2 (en) 2006-11-22 2011-12-27 Ixia Method and apparatus for generating bi-directional network traffic and collecting statistics on same
US8234369B2 (en) * 2008-12-23 2012-07-31 Verizon Patent And Licensing Inc. Web page response monitoring
US8649271B2 (en) * 2010-01-25 2014-02-11 Ixia Testing network equipment
US8248926B2 (en) * 2010-05-11 2012-08-21 Ixia Packet rate detection apparatus and method

Also Published As

Publication number Publication date
EP2498443B1 (en) 2013-12-11
EP2498443A1 (en) 2012-09-12
JP2012191622A (ja) 2012-10-04
US9203728B2 (en) 2015-12-01
US20120230208A1 (en) 2012-09-13

Similar Documents

Publication Publication Date Title
JP5932409B2 (ja) Tcp接続を検査するためのメタデータキャプチャ
US8014295B2 (en) Parallel packet processor with session active checker
US7827295B2 (en) Protocol stack
US9306816B2 (en) System and method for replaying network captures
JP5681085B2 (ja) パケットのフラグメント化の検査
US8121148B2 (en) Protocol stack using shared memory
JP2012151831A (ja) プレカルキュレーテッド暗号データを用いた迅速なssl検査
US9319441B2 (en) Processor allocation for multi-core architectures
US8730826B2 (en) Testing fragment reassembly
US8572260B2 (en) Predetermined ports for multi-core architectures
US8654643B2 (en) Wide field indexing for packet tracking
US8717925B2 (en) Testing TCP connection rate
JP5792640B2 (ja) パケットシーケンス番号のトラッキング
JP5792688B2 (ja) ネットワーク検査のための同期されたコマンド
US8707100B2 (en) Testing a network using randomly distributed commands
JP5534446B2 (ja) 中継装置、入力回線インタフェース回路及びそれらに用いるエラーデータ転送処理方法
Saka Ethernet for the ATLAS Second Level Trigger

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160330

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: 20160419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160428

R150 Certificate of patent or registration of utility model

Ref document number: 5932409

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees