説明

パケットシーケンス番号のトラッキング

【課題】ネットワークを検査するためのトラヒックの受信及び検査を行う方法を提供する。
【解決手段】ネットワーク検査装置が検査トラフィックを生成して被検査ネットワークに送出し、ネットワーク検査装置のトラフィックレシーバユニットが検査トラフィックを受信し、受信したパケットからパケットグループ識別番号(PGID)およびシーケンス番号(SN)を抽出し、次に予期されるシーケンス番号(NESN)、作動の開始(SOR),順序通りのパケットの番号(NIO)及び複製のパケットの番号(NDP)を保存する。

【発明の詳細な説明】
【技術分野】
【0001】
(著作権およびトレードドレスについての通知)
本特許文献の開示の一部は著作権保護に対象となるマテリアルを含む。本特許文献は、保有者のトレードドレスである、またはトレードドレスとなり得る事柄を示し、および/または記載する場合がある。著作権およびトレードドレスの保有者は、いかなる者であっても米国特許商標局の書類または記録の通りに本特許開示を複製する限りで、異議を申し立てるものではないが、その他の場合には、いかなる場合であっても全ての著作権およびレードドレスの権利を保留するものである。
【0002】
本開示は、ネットワークまたはネットワークデバイスを検査するためのトラフィックを受信することおよび処理することに関する。
【背景技術】
【0003】
多くのタイプの通信ネットワークにおいて、送信される各メッセージは固定長または可変長の部分へと分割される。各々の部分は、情報のパケット、フレーム、セル、データグラム、データ単位、または他の単位と呼ばれる場合があり、それらの全ては、本明細書において、パケットとして参照される。
【0004】
各パケットは、通常、パケットペイロードと呼ばれる元のメッセージの一部を含む。パケットペイロードはデータを含んでよく、あるいは、音声情報またはビデオ情報を含んでもよい。パケットペイロードはまた、ネットワーク管理および制御情報を含んでもよい。さらに、各パケットは、通常、パケットヘッダと呼ばれる識別およびルーティング情報を含む。パケットはネットワークを通じて複数のスイッチまたはノードを介して個々に送信される。パケットは、目的とするデバイスまたはエンドユーザにメッセージが配信される前に、パケットヘッダに含まれる情報を用いて最終的な送り先にてメッセージに再構築される。受信側において、その再構築されたメッセージは、ユーザの装置に適合するフォーマットでエンドユーザに送られる。
【0005】
メッセージをパケットとして送信する通信ネットワークは、パケット交換ネットワークと呼ばれる。パケット交換ネットワークは、通常、ハブまたはノードで交差する送信パスのメッシュを含む。ノードの少なくとも一部は、ノードに到着するパケットを受け取り、適切な発信パスに沿ってパケットを再送信するスイッチングデバイスまたはルータを備えてよい。パケット交換ネットワークは、業界標準のプロトコルのレイヤ別の構造によって制御される。その構造のレイヤ1、2、3、およびレイヤ4は各々、物理レイヤ、データリンクレイヤ、ネットワークレイヤ、およびトランスポートレイヤである。
【0006】
レイヤ1のプロトコルは、ネットワークのノード間での物理的な(電気的、光学的、または無線の)インターフェースを規定する。レイヤ1のプロトコルは、イーサネット(登録商標)の物理的コンフィグレーション、SONET(同期光学的ネットワーク)、および他の光学接続プロトコル、ならびに、Wi−Fi(登録商標)等の様々な無線プロトコルを含む。
【0007】
レイヤ2のプロトコルは、データがネットワークのノード間を論理的に転送される方法を制御する。レイヤ2のプロトコルは、イーサネット(登録商標)、ATM(非同期転送モード)、フレームリレー、およびPPP(ポイント・ツー・ポイント・プロトコル)を含む。
【0008】
レイヤ3のプロトコルは、ネットワークの複数のノードを接続するパスに沿ってソースから送り先へパケットがルーティングされる方法を制御する。主要なレイヤ3のプロトコルは周知のインターネットプロトコルバージョン4(IPv4)およびバージョン6(IPv6)である。パケット交換ネットワークは、イーサネット(登録商標)、ATM、FR、および/またはPPPのレイヤ2のプロトコルの混合体を用いてIPパケットをルーティングする必要がある場合もある。ネットワークのノードの少なくとも一部は、各パケット内に含まれるネットワークレイヤヘッダから、送り先アドレスを抽出するルータを備えてもよい。ルータは次いで、パケットが再送信されるべきルートまたはパスを決定するために送り先アドレスを用いる。通常のパケットは複数のルータを通過してよく、それらのルータの各々は送り先アドレスを抽出する行為およびそのパケットが再送信されるべきルートまたはパスを決定する行為を繰り返す。
【0009】
レイヤ4のプロトコルは、ネットワーク中でエンド・ツー・エンドのメッセージ配信を制御する。特に、通信制御プロトコル(TCP)は、必要に応じて、順次的な承認および再伝送のシステムを用いてパケットストリームの信頼性のある伝送を提供する。TCPは、2つのデバイスがネットワークを介した仮想接続を開くためにメッセージを交換するコネクション型のプロトコルである。接続がいったん開くと、接続されたデバイス間で双方向通信が生じ得る。接続はそれらのデバイスの一方によって切断されるまで存在し得る。接続を開くことおよび切断の両方は、特定のメッセージが2つのデバイス間で交換されるいくつかのステップを必要とする。予定されていた応答が所定の時間期間に一方のデバイスによって受信されない場合には、接続は切断されてよく、これは通常、「タイムアウト」と呼ばれる。TCP接続は、各々のデバイスが、接続の状態(開いているのか、確立されているのか、切断されているのか)、どのようなデータが送られているのか、そしてどのような送られたデータが承認されているのかを記載した情報を維持する必要があるゆえ、「ステートフル」とみなされる。
【0010】
パケット交換ネットワーク、またはパケット交換通信ネットワーク内に含まれるデバイスを検査するために、多数のパケットを含んだ検査トラフィックが生成され、1つ以上のポートにおいてネットワークに送信され、かつ異なるポートにおいて受信されてよい。検査トラフィック内の各パケットは、特定の送り先ポートでの受信を意図したユニキャストのパケット、あるいは、2つ以上の送り先ポートでの受信を意図する場合もあるマルチキャストのパケットであってもよい。これに関連して、用語「ポート」とは、ネットワークと、そのネットワークを検査するために用いられる装置との間の通信接続のことをいう。用語「ポートユニット」とは、ポートにおいて、ネットワークに接続するネットワーク検査装置内のモジュールのことをいう。受信された検査トラフィックは、ネットワークのパフォーマンスを測定するために分析され得る。ネットワークに接続された各ポートユニットは、検査トラフィックのソースおよび検査トラフィックの送り先の両方であってよい。各ポートユニットは、複数の論理ソースまたは送り先アドレスをエミュレートしてよい。ポートユニットをネットワークに接続するポートユニットおよび通信パスの数は、通常は、検査セッションの期間の間、固定されている。ネットワークの内部構造は、例えば、通信パスまたはハードウェアデバイスの故障に起因して、検査セッションの間、変更される場合がある。
【0011】
単一のポートユニットから発せられ、特定のタイプのパケットおよび特定のレートを有する一連のパケットを、本明細書において、「ストリーム」と呼ぶ。ソースポートユニットは、例えば、複数のパケットタイプ、レート、または送り先を含むため、複数の発信ストリームを同時にかつ並行してサポートし得る。「同時に(simultaneously)」とは「正確に同一時間に」を意味する。「並行して(concurrently)」とは、「同一時間内で」を意味する。
【0012】
ネットワークのトラフィックデータを報告する目的のために、検査トラフィックはパケットグループに分けられてよく、ここで「パケットグループ」とは、ネットワークトラフィック統計が報告される任意の複数のパケットである。パケットグループを構成するパケットは、各々のパケットペイロードに埋め込まれたパケットグループ識別番号(PGID)によって識別されてよい。パケットグループを構成するパケットは、送信する順序で順に番号が振られてよく、対応する順の番号は、各パケットペイロードに埋め込まれていてもよい。逐次的なシーケンス番号は、パケットが送信されるのと同じ順序で、ネットワークがどの程度の頻度でパケットを送信するのかを追跡するために用いられてよい。
【図面の簡単な説明】
【0013】
【図1】図1は、ネットワーク環境のブロック図である。
【図2】図2は、ポートユニットのブロック図である。
【図3】図3は、順に番号が振られたパケットのグラフィック図である。
【図4】図4は、フロー統計のグラフィック図である。
【図5】図5は、パケットのシーケンス番号を追跡するためのプロセスのフローチャートである。
【図6】図6は、シーケンス番号のグラフィック図である。
【発明を実施するための形態】
【0014】
本記載全体を通じて、ブロック図に表される要素は、3桁の参照番号が割り当てられ、最上位桁は図面の番号であり、下位2つの桁は要素に特定されるものである。ブロック図に関連して記載されない要素は、同じ下位の桁を有する参照番号を有する前述された要素として同じ特徴および機能を有するものとみなされてよい。
【0015】
ブロック図において、矢印で終端している線は、信号というよりはデータパスを示し得る。各データパスはビット幅において多数ビットであってよい。例えば、各データパスは、4、8、16、64、256、あるいはそれ以上の並列接続からなっていてもよい。
【0016】
図1はネットワーク環境のブロック図を示す。ネットワーク環境は、ネットワーク検査装置100、ネットワーク190、および複数のネットワークデバイス192を備えてよい。
【0017】
ネットワーク検査装置100は、ネットワーク検査デバイス、パフォーマンスアナライザ、適合性確認システム、ネットワークアナライザ、またはネットワーク管理システムであってよい。ネットワーク検査装置100は、1つ以上のネットワークカード106、およびシャーシ102内に含まれるかまたは包囲されたバックプレーン104を備えてよい。シャーシ102は、ネットワーク検査装置を含むのに適した固定型または可搬型のシャーシ、キャビネット、または筐体であってよい。ネットワーク検査装置100は図1に示すように一体化されたユニットであってよい。あるいは、ネットワーク検査装置100は、トラフィックの生成および/または分析を提供するように協動する複数の別個のユニットを備えてよい。ネットワーク検査装置100およびネットワークカード106は、例えば様々なイーサネット(登録商標)およびファイバーチャネル標準等の1つ以上の周知の規格またはプロトコルをサポートしてよく、かつ専用のプロトコルもサポートしてよい。
【0018】
用語、ネットワークカードは、ラインカード、テストカード、分析カード、ネットワークラインカード、ロードモジュール、インターフェースカード、ネットワークインターフェースカード、データインターフェースカード、パケットエンジンカード、サービスカード、スマートカード、スイッチカード、リレーアクセスカード等を含む。用語、ネットワークカードはまた、複数のプリント回路基板を含み得るモジュール、ユニット、およびアセンブリを含む。各ネットワークカード106は1つ以上のポートユニット110を含み得る。各ポートユニット110は、1つ以上のポートを介してネットワーク190に接続し得る。各ポートユニット110は、通信媒体195を介してネットワーク190に接続されてよく、この通信媒体195は、ワイヤ、光ファイバ、無線リンク、または他の通信媒体であってよい。各ネットワークカード106は、単一の通信プロトコルをサポートしてよく、複数の関連のプロトコルをサポートしてよく、または、複数の関連のないプロトコルをサポートしてもよい。ネットワークカード106は、ネットワーク検査装置100内に恒久的に設置されていてもよく、または着脱自在であってもよい。
【0019】
ネットワークカード106は、本明細書に記載された機能を実行するプロセッサ、メモリ、ロジック、ならびに他の特殊回路およびデバイスを含んでよい。本特許出願において、用語「ロジック」とは、組み合わせ論理、順序論理、状態機械、および他のデジタル回路を含むデジタル回路を意味する。ロジック、プロセッサ、およびメモリは、全体または一部において、1つ以上のフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、プログラマブル論理アレイ(PLA)、プロセッサおよび他の種類のデバイスによって実施されてもよく、これらの全ては、本明細書においてプログラマブルデバイスと呼ぶ。なお、ネットワークカード106は、ソフトウェアおよび/またはファームウェアを含んでよい。
【0020】
バックプレーン104は、ネットワークカード106のために、バスまたは通信媒体として機能してよい。バックプレーン104はまた、電極をネットワークカード106に提供し得る。
【0021】
ネットワークデバイス192は、ネットワーク190を介しての通信を可能にする任意のデバイスであってよい。ネットワークデバイス192は、ワークステーション、パーソナル・コンピュータ、サーバ、ポータブル・コンピュータ、携帯情報端末(PDA)、コンピューティング・タブレット、セル式電話/携帯電話、イーメール用装置等のコンピューティングデバイス、プリンタ、スキャナ、ファクシミリ装置等の周辺機器、ネットワーク接続ストレージ(NAS)およびストレージエリアネットワーク(SAN)のデバイス等のディスクドライブを含むネットワーク対応のストレージデバイス、ルータ、リレー、ハブ、スイッチ、ブリッジ、およびマルチプレクサ等のネットワーキング・デバイスであってよい。さらに、ネットワークデバイス192は、ネットワークを通じて通信することができる家庭電化器具、アラームシステムおよび他の任意のデバイスまたはシステムを含んでもよい。
【0022】
ネットワーク190は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、有線、無線、またはこれらの組み合わせであってもよく、インターネットを含んでもよく、またはインターネットであってもよい。ネットワーク190上の通信は、情報のフレーム、セル、データグラム、パケットまたは他の単位を含む様々な形態をとってもよく、本明細書においては、それらの全てをパケットと称する。ネットワーク検査装置100およびネットワークデバイス192は、同時に相互に通信してもよく、ネットワーク検査装置100と所与のネットワークデバイス195との間には、複数の論理的通信経路があってもよい。ネットワークそのものは、移動するデータのための多数の物理的経路および論理的経路を提供する多数のノードから成ってもよい。
【0023】
ここで図2を参照し、例示的なポートユニット210は、ポート中央演算ユニット(CPU)220と、トラフィックジェネレータユニット260と、トラフィックレシーバユニット280と、ポートユニット210を被検査ネットワーク290に接続するネットワークインターフェースユニット270とを備えてもよい。ポートユニット210は、ネットワークカード(例えばネットワークカード106)のすべてまたは一部であってもよい。
【0024】
ポートCPU220は、本明細書に記載される機能および特徴を提供するための、プロセッサ、プロセッサに接続されたメモリ、および様々な特殊化された装置、回路、ソフトウェアおよびインターフェースを含んでもよい。プロセス、機能および特徴は、全体的にあるいは部分的に、プロセッサ上で動作するソフトウェアにおいて実現されてもよく、ファームウェア、アプリケーションプログラム、アプレット(例えばJava(登録商標)アプレット)、ブラウザプラグイン、COMオブジェクト、ダイナミックリンクライブラリ(DLL)、スクリプト、1つ以上のサブルーチン、またはオペレーティングシステムのコンポーネントまたはサービスという形をとってもよい。ハードウェアおよびソフトウェアおよびそれらの機能は、一部の機能がプロセッサによって実行され、他の機能が他の装置によって実行されるように、分散型であってもよい。
【0025】
ポートCPU220は、検査アドミニストレータ205と通信してもよい。検査アドミニストレータ205は、ネットワーク検査装置100の内部に収容されるコンピューティングデバイスまたは外部のコンピューティングデバイスであってもよい。検査アドミニストレータ205は、ポートユニットがネットワーク290の検査に関与するために必要とされる命令およびデータを、ポートCPU220に提供してもよい。検査アドミニストレータ205から受信される命令およびデータは、例えば、ポートユニット210によって生成されるパケットストリームの定義、およびポートユニット210によって蓄積および報告され得るパフォーマンス統計の定義を含んでもよい。
【0026】
ポートCPU220は、トラフィックジェネレータユニット260にストリーム形成データ212を提供して、複数のストリームを形成させる。ストリーム形成データ212は、例えば、パケットのタイプ、送信の周波数、パケット内部の固定内容フィールドおよび可変内容フィールドの定義、および各パケットストリームのための他の情報を含んでもよい。トラフィックジェネレータユニット260は、次いで、ストリーム形成データ212に従って複数のストリームを生成してよい。複数のストリームは、発信検査トラフィック265を形成するためにインターリーブされてよい。
【0027】
各ストリームは一連のパケットを含んでよい。各ストリーム内のパケットは同様の一般的なタイプであってよいが、長さおよびコンテンツが異なっていてもよい。各ストリームは、順番に番号が振られたパケットの1つ以上のパケットグループからなり得る。各パケットはPGIDを含み、パケットが属するパケットグループ、および、パケットグループ内でのパケットの相対位置を示すシーケンス番号を識別してよい。
【0028】
ネットワークインターフェースユニット270は、トラフィックジェネレータユニット260からの発信検査トラフィック265を、ワイヤ、光ファイバ、無線リンク、または他の通信リンクであり得るリンク295を介して、被検査ネットワーク290へと検査トラフィックを送信するように要求される、電気的、光学的、または無線による信号フォーマットに変換してよい。同様に、ネットワークインターフェースユニット270は、ネットワークからリンク295を介して電気的、光学的、または無線による信号を受信してよく、かつ、トラフィックレシーバユニット280に対して利用可能なフォーマットに、着信する検査トラフィック275に受信される信号を変換してよい。
【0029】
トラフィックレシーバユニット280は、ネットワークインターフェースユニット270から着信検査トラフィック275を受信してよい。トラフィックレシーバユニット280は、各受信パケットが特定のパケットグループのメンバーであるかを決定し得、また、ポートCPU220から提供された検査命令214に従って各パケットグループに関する検査統計を蓄積し得る。蓄積された検査統計は、例えば、受信パケットの合計数、順序通りで受信されたパケットの数、エラーを有する受信パケットの数、最大、平均および最小の伝搬遅延、および各フローの他の統計を含んでもよい。トラフィックレシーバユニット280はまた、検査命令214に含まれる取得基準に従って、選択されたパケットを取得および格納してもよい。トラフィックレシーバユニット280は、検査セッションの最中または後におけるさらなる分析のために、検査統計および/または取得パケット284を、検査命令214に従って、ポートCPU220に提供してもよい。
【0030】
発信検査トラフィック265および着信検査トラフィック275は、主にステートレスであってもよい。すなわち、発信検査トラフィック265の実質的な部分は、応答を予期することなくトラフィックジェネレータ260によって生成されてもよく、着信検査トラフィック275は、応答を意図することなくトラフィックレシーバ280によって受信されてもよい。ステートレスのトラフィックの送受信は、被検査ネットワーク290のレイヤ2およびレイヤ3の試験を行うのに十分であり得る。しかしながら、検査セッションを開始するために、および/あるいは、サーバまたはサーバロードバランサ等のネットワークデバイスのレイヤ4(またはそれよりも高いレイヤ)のパフォーマンスを検査するために、一部のステートフルの通信が、検査セッションの最中において、ポートユニット210と被検査ネットワーク290との間に必要とされる場合がある。
【0031】
例えば、TCP接続を確立し使用するために、ポートCPU220は、適切なTCPパケットを用意し、そのTCPパケット216をトラフィックジェネレータ260に提供し得る。トラフィックジェネレータ260は、TCPパケットを発信検査トラフィック265に挿入し得る。トラフィックレシーバ280は、受信されたステートレストラフィックから受信されたTCPパケットを分離し、かつ処理のためにその受信されたTCPパケット282をポートCPU220に送信し得る。
【0032】
図3は、特定のパケットグループ内のパケットに割り当てられたシーケンス番号のグラフィック表示を提供する。各々の四角は、最も最近のパケット310を含む特定のパケットのシーケンス番号を示し、この最も最近のパケット310は、トラフィックレシーバにおいて最も最近に受信されたパケットであり、このトラフィックレシーバは、パケットグループの送り先であるトラフィックレシーバ280であってよい。最も最近のパケット310は、順序通りのパケット、言い換えれば、それらが送信された順序において受信される連続したシーケンス番号を有するパケットでの連続的な作動によって先行してよい。順序通りのパケットでの連続した作動320において、第1のパケットのシーケンス番号は、作動の開始(SOR)330として規定される。
【0033】
最も最近のパケット310の後の次のシーケンス番号を有するパケットは、次に予測されるシーケンス番号NESN340として規定される。特定のパケットグループにおける次のパケットがトラフィックレシーバによって受信されると、受信されたパケットのシーケンス番号は、そのシーケンス番号がNESNと等しいか、NESN前であるのか、またはNESN後であるのかどうかを決定するためにNESNと比較されてよい。用語「前」および「後」は、パケットが送信される順序のことをいう。図6に関連して後に検討するように、NESN後であるシーケンス番号は、NESNよりも高い数値を必ずしも有する必要はなく、NESN前であるシーケンス番号は、NESNよりも低い数値を必ずしも有する必要はない。
【0034】
次のパケットがNESNと等しいシーケンス番号を有する場合、受信されたパケットは、順序通りとしてみなされ、順序通りのパケットの連続した作動320が延長される。
【0035】
トラフィックレシーバにおいて受信された特定のパケットグループにおける次のパケットがNESN後のシーケンス番号を有する場合、その受信されたパケットは順序通りとしてみなされるが、順序通りのパケットの連続した作動は途絶える。この場合、新しい順序通りのパケットの連続した作動を開始するために、SORが、受信されたパケットのシーケンス番号に等しく設定されてよい。受信されたパケットのシーケンス番号とNESNとの間のシーケンス番号はロストされることが想定されてよい。
【0036】
トラフィックレシーバにおいて受信された特定のパケットグループにおける次のパケットのシーケンス番号がNESN前であり、かつSORと等しいかまたはSOR後である場合、その受信されたパケットは、順序通りのパケットの連続した作動320内のパケットの複製であるべきである。受信されたパケットのシーケンス番号がSOR前であり、かつNESNマイナス所定の遅延閾値(LT)と等しいかまたはNESNマイナス所定の遅延閾値(LT)後である場合、受信されたパケットは最順序化されるものとみなされる(370)。受信されたパケットのシーケンス番号がNESNマイナスLT前である場合、受信されたパケットは遅延とみなされる(380)。
【0037】
トラフィックレシーバは、各パケットグループのために、シーケンスデータおよびトラフィック統計をコンパイルし保存してよい。パケットがトラフィックレシーバによって受信されるたび、トラフィックレシーバは、対応のパケットグループについて、シーケンスデータおよびトラフィック統計を更新してよい。ここで図4を参照すると、各パケットグループについて保存されるシーケンスデータ410は、NESN340およびSOR330を含んでよい。各パケットグループについて保存されたシーケンスデータ410はまた、遅延閾値(LT)430を含んでもよい。あるいは、遅延閾値430は、トラフィック統計420の一部として保存されてよく、または全てのパケットグループに共通する所定の値であってもよい。各パケットグループについて保存されるトラフィック統計420は、図3に関連して規定されるように、受信されたパケットの複数のカテゴリを含んでよい。トラフィック統計420は、受信された順序通りのパケットの番号(NIO)440、受信された複製のパケットの番号(NDP)450、受信された再順序化されたパケットの番号(NRO)460、受信された遅延パケットの番号(NLA)470、およびロストしたパケットの番号(NLO)480を含んでよい。ロストしたパケットの番号は、トラフィックレシーバで受信されなかったシーケンス番号に基づいてよい。トラフィック統計420は、他の統計490を含んでよい。他の統計490は、例えば、最大、最小、および/または平均レイテンシー、ならびに他のトラフィック統計等の一時的な情報を含んでよい。
【0038】
複数のパケットグループおよびそれに対応するPGIDに関連付けられたシーケンスデータ410およびトラフィック統計420は、トラフィックレシーバ内のメモリに保存されてよく、またはトラフィックレシーバに接続されたメモリに保存されてよい。メモリは複数のメモリデバイスを含んでよく、かつ複数のメモリの種類を含んでもよい。例えば、一部または全てのシーケンスデータは、迅速なスタティックランダムアクセスメモリに保存されてもよく、トラフィック統計の一部または全ては、より遅いダイナミックランダムアクセスメモリに保存されてもよい。図4に示すデータは、所望されるように、特定のシステムのために組織化され、かつ保存されてもよい。
【0039】
(処理についての記載)
ここで図5を参照すると、パケットのシーケンス番号をトラッキングするための処理500が505においてスタートしてよく、ここで検査セッションが開始され、多くの複数のパケットが受信されるまで周期的に継続してよい。処理500は実際には周期的であり、受信された各パケットに対して反復されてよい。処理500の複数のインスタンスは、ネットワーク検査セッションの間、複数のポートユニットにおいて並行して実行されてよい。処理500は記載を簡素化するために、シーケンシャルなアクションのフローチャートとして図5に示されるが、処理500の一部または全ては実質的に同時に実行されるように専用のハードウェアによって実行されてよい。
【0040】
510において、パケットは、ポートユニット内でトラフィックレシーバにおいて受信されてよく、このポートユニットは、被検査ネットワークに接続されたトラフィックレシーバ280およびポートユニット210であってよい。515において、パケットグループ識別番号(PGID)およびシーケンス番号(SN)は、受信されたパケットから抽出されてよい。520において、PGIDによって識別されるパケットグループに関連付けられたシーケンスデータは、トラフィックレシーバ内のメモリから検索されてもよく、またはトラフィックレシーバに接続されたメモリから検索されてもよい。検索されたシーケンスは、次に予期されるシーケンス番号(NESN)および作動の開始(SOR)を含んでよい。遅延閾値(LT)もまた520において検索されてもよい。
【0041】
525において、515で抽出されたPGIDによって識別されるパケットグループに関連付けられたトラフィック統計は、メモリから検索されてよく、このメモリは、シーケンスデータを保存するメモリと同じメモリまたは異なるメモリであってもよい。検索されたトラフィック統計は、図3および図4に関連して規定されたように、一部または全ての、受信された順序通りのパケットの番号(NIO)、受信された再順序化されたパケットの番号(NRO)、受信された複製のパケットの番号(NDP)、受信された遅延パケットの番号(NLA)、およびロストしたパケットの番号(NLO)を含んでよい。
【0042】
530においては、515において受信されたパケットから抽出されたSNが、520においてメモリから検索されたNESNと比較されてよく、SNがNESNと等しいか、NESN前か、またはNESN後か決定され得る。SNがNESNと等しい場合、受信されたパケットは、連続した順序通りのパケットの現在の作動における次のパケットである。この場合、NESNはSN+1に設定されてよく、NIOの値は550においてインクリメントされてよい。更新されたシーケンスデータおよびトラフィック統計は、575において、戻ってメモリに保存されてよく、処理500は510から繰り返されてよい。
【0043】
SNがNESN後の場合、受信されたパケットは順序通りとみなされるが、しかし連続した順序通りのパケットの以前の作動が途絶える。この場合、SORはSNと等しく設定されてもよく、NLOは、545において、失ったパケット(SN−NESN−1)の数だけ、増加されてよい。処理500は、次いで、550において、継続してよく、ここで、NESNの値は、SN+1に設定されてよく、NIOの値はインクリメントされてよい。更新されたシーケンスデータおよびトラフィック統計は、575において、戻ってメモリに保存されてもよく、処理500は510から繰り返されてもよい。
【0044】
SNがNESN前である場合、SNがSORと等しいかまたはSOR後であるかどうかが535において決定され得る。SNがSORと等しいかまたはSOR後である場合、受信されたパケットは、連続した順序通りのパケットの以前の作動内でのパケットの複製である。この場合、NDPは555でインクリメントされてよい。更新されたシーケンスデータおよびトラフィック統計は、575において、戻ってメモリに保存されてもよく、処理500は510から繰り返されてよい。
【0045】
535において、SNがSOR前であると決定がなされる場合、SNがNESNマイナス遅延閾値LTと等しいかSNマイナス遅延閾値LT後であるかどうかが540においてさらに決定され得る。SNがNESN−LTと等しいかまたはNESN−LT後である場合、受信されたパケットは再順序化されるとみなされてよく、NROは、560において、インクリメントされてよい。SNがNESN−LT前である場合、受信されたパケットは遅延とみなされてよく、NLAは、565においてインクリメントされてよい。いずれの場合においても、受信されたパケットは、以前にロストされたとみなされたパケットであり、NLOは570においてデクリメントされてよいという想定がなされ得る。更新されたシーケンスデータおよびトラフィック統計は、次いで、575において保存されてよく、処理500は、510から繰り返されてよい。
【0046】
各受信されたパケットに含まれるシーケンス番号の長さは、16ビットまたは24ビットあるいは一部の他のビットの数などのビットの有限数に限定されてよい。長い検査セッションの間、パケットグループ内において送信されたパケットの数は、シーケンス番号の有限長内で表現できる数を超過してもよい。この場合、シーケンス番号は包む(wrap)、つまり、シーケンス番号は、11...11の最大の値まで数えてよく、次いで、00...00で開始を継続してよい。例えば、NESNが00...01の値を有する場合、11...11のシーケンス番号を有する新たなパケットは、より大きな数値を有するにもかかわらず、NESN前であってよい。
【0047】
図6は、シーケンス番号が時計回りの方向において増加する円としてのシーケンス番号のグラフィック表示である。連続したシーケンス番号は、図4に示すように、円の上側において、11...11から00...000を包む。NESNは、円の任意の位置において示される。NESNと正反対にあるのは、順方向/逆方向閾値(FRT)であり、これは、NESNの最も重要なビットを反転させることによって導き出されてよい。NESNから180度、時計回りの円弧におけるシーケンス番号は、NESN後とみなされてよく、NESNから180度、反時計回りの円弧におけるシーケンス番号は、NESN前とみなされてよい。
【0048】
図5の処理500における530、535、および540での比較を実行する論理は、シーケンス番号がNESN前か、NESN後であるかを決定する場合に、シーケンス番号の包み(wrapping)を説明してもよい。シーケンス番号(NESNに等しくない)がNESN前であるかNESN後であるかを決定するための1つの可能なアルゴリズムは以下の通りである。・NESNが00...000から01...111の範囲に入る場合、NESNより大きく、FRTより小さいシーケンス番号はNESN後であり、他のシーケンス番号はNESN前である。・NESNが10...000から11...111の範囲に入る場合、FRTより大きく、NESNより小さいシーケンス番号はNESN前であり、他のシーケンス番号はNESN後である。
【0049】
シーケンス番号がNESN前であるかNESN後であるかどうかを決定するための他のアルゴリズムが用いられてもよい。
【0050】
(終わりに)
本記載全体を通して、示された実施形態および例は、開示された、または特許請求の範囲において請求された装置および手順についての限定ではなく、典型例として想定されるべきものである。本明細書において提示された例の多くは、方法の作用またはシステムの要素の特定の組合せに関連するものであるけれども、それらの作用およびそれらの要素は、他の方法において、組み合わされてよく、同じ課題を達成するものとして理解されるべきである。フローチャートに関して、追加の工程および工程の削減もまた考慮されてよく、図示した工程は、本明細書において記載された方法を達成するために組み合わされてもよく、またはさらに改良されてもよい。1つの実施形態のみに関連して記載された作用、要素、および特徴は、他の実施形態における同様の役割から排除されることは意図されていない。
【0051】
本明細書において用いられるように、「複数」とは、2つ以上を意味する。本明細書において用いられるように、「一連の」物品とは、1つ以上のそのような物品を含み得る。本明細書において用いられるように、明細書の記載または特許請求の範囲の請求項においては、用語「含む、備える(comprising)」、「含む、備える(including)」「運ぶ、有する、持つ(carrying)」、「有する(having)」、「含む(containing)」、「含む、関する、関連する(involving)」等は、オープンエンド型、すなわち、含むがそれらに限定されないということを意味することは理解されるべきである。「〜からなる」および「〜から実質的になる」といった移行句の各々のみが、特許請求の範囲の請求項に関しては、クローズ型、または半クローズ型の移行句である。請求項の要素を変更するために、特許請求の範囲の請求項における「第1」、「第2」、「第3」等の序数の用語の使用は、それ自体では、任意の優先順位、優位性、またはある請求項の要素が他のものより先であったり、または、ある方法の作用が行われる時間的順序等を含意せず、請求項の要素を区別するために、特定の名前を有するある請求項の要素から、同じ名前を有する別の要素を区別するためのラベルとして(順序を示す用語の使用を別にして)単に用いられる。本明細書において用いられるように、「および/または」は、リストアップされた物品が二者択一であることを意味するが、そうした二者択一もまた、そうしてリストアップされた物品の任意の組合せを含むものである。

【特許請求の範囲】
【請求項1】
被検査ネットワークに接続されたトラフィックレシーバによって実行される方法であって、
前記被検査ネットワークを介してパケットを受信する工程と、
前記受信されたパケットから、パケットグループ識別番号(PGID)およびシーケンス番号(SN)を抽出する工程と、
前記トラフィックレシーバ内またはそれに接続されたメモリから、前記PGIDに関連付けられたデータを検索する工程であって、前記データは、次に予期されるシーケンス番号(NESN)、作動の開始(SOR)、順序通りのパケットの番号(NIO)、および複製のパケットの番号(NDP)を含む、工程と、
前記データを更新する工程であって、以下:
SNがNESNと等しいか、NESN未満であるか、またはNESNより大きいかどうかを決定するために、SNとNESNとを比較することと、
SNがNESNと等しい場合、NESNをインクリメントし、NIOをインクリメントすることと、
SNがNESN未満である場合、SNとSORとを比較し、SNがSORより大きいか、またはSORと等しい場合、NDPをインクリメントすることと、
SNがNESNより大きい場合、SORをSNに設定し、NESNをSNプラス1に設定し、NIOをインクリメントすることと、を含む、工程と、
前記更新されたデータを前記メモリに保存する工程とを含む、方法。
【請求項2】
前記データは、ロストしたパケットの番号(NLO)を含み、前記データを更新する工程はさらに、
SNがNESNより大きい場合、SNマイナスNESNと等しい値だけ、NLOを増加させることを含む、請求項1に記載の方法。
【請求項3】
前記データは、再順序化されたパケットの番号(NRO)および遅延パケットの番号(NLA)を含み、前記データを更新する工程はさらに:
SNがNESN未満で、SNがSOR未満である場合:
SNと、NESNマイナス特定の遅延閾値(LT)とを比較することと、
SNがNESNマイナスLTより大きいか、それと等しい場合に、NROをインクリメントし、NLOをデクリメントすることと、
SNがNESNマイナスLT未満である場合、NLAをインクリメントし、NLOをデクリメントすることとを含む、請求項2に記載の方法。
【請求項4】
前記データはLTを含む、請求項3に記載の方法。
【請求項5】
メモリに接続された複数のパケットグループ論理に関連付けられたデータを保存するためのメモリを備えるトラフィックレシーバであって、
前記論理は、以下:
被検査ネットワークからパケットを受信する工程と、
前記受信されたパケットから、シーケンス番号(SN)と、前記複数のパケットグループのうち、1つのパケットグループを識別するパケットグループ識別番号(PGID)とを抽出する工程と、
メモリから、前記PGIDによって識別された前記パケットグループに関連付けられたデータを検索する工程であって、前記データが、次に予期されるシーケンス番号(NESN)、作動の開始(SOR)、順序通りのパケットの番号(NIO)、および複製のパケットの番号(NDP)を含む、工程と、
前記データを更新する工程であって、以下:
SNとNESNとを比較し、
SNがNESNと等しい場合、NESNをインクリメントし、NIOをインクリメントし、
SNがNESN未満である場合、SNとSORとを比較し、SNがSORより大きいか、またはSORと等しい場合、NDPをインクリメントし、
SNがNESNより大きい場合、SORをSNに設定し、NESNをSNプラス1に設定し、NIOをインクリメントする、工程と、
前記更新されたデータを前記メモリに保存する工程と
を行うように構成されている、トラフィックレシーバ。
【請求項6】
前記データはロストしたパケットの番号(NLO)を含み、
前記データを更新する工程はさらに、SNがNESNより大きい場合:
SNマイナスNESNと等しい値だけ、NLOを増加させることを含む、請求項5に記載のトラフィックレシーバ。
【請求項7】
前記データは、再順序化されたパケットの番号(NRO)および遅延パケットの番号(NLA)を含み、
前記データを更新する工程はさらに、SNがNESN未満であり、SNがSOR未満である場合:
SNがNESNマイナスLTより大きいかまたはそれと等しいか、あるいはNESNマイナスLT未満であるかどうかを決定するために、SNと、NESNマイナス所定の遅延閾値(LT)とを比較することと、
SNがNESNマイナスLTより大きいか、またはそれと等しい場合、NROをインクリメントし、NLOをデクリメントすることと、
SNがNESNマイナスLT未満である場合、NLAをインクリメントし、NLOをデクリメントすることとを含む、請求項6に記載のトラフィックレシーバ。
【請求項8】
前記データはLTを含む、請求項7に記載のトラフィックレシーバ。
【請求項9】
1つ以上のプログラマブルデバイスにプログラミングするために用いた場合、前記1つ以上のプログラマブルデバイスを、トラフィックレシーバとして構成させるデータを保存するコンピュータ可読保存媒体であって、以下:
被検査ネットワークからパケットを受信する工程と、
前記受信されたパケットから、シーケンス番号(SN)と、複数のパケットグループのうち、1つのパケットグループを識別するパケットグループ識別番号(PGID)を抽出する工程と、
前記1つ以上のプログラマブルデバイス内またはそれに接続されたメモリから、前記PGIDによって識別された前記パケットグループに関連付けられたデータを検索する工程であって、前記データは、次に予期されるシーケンス番号(NESN)、作動の開始(SOR)、順序通りのパケットの番号(NIO)、および複製のパケットの番号(NDP)を含む、工程と、
前記データを更新する工程であって、以下:
SNとNESNとを比較することと、
SNがNESNと等しい場合、NESNをインクリメントし、NIOをインクリメントすることと、
SNがNESN未満である場合、SNとSORとを比較し、SNがSORより大きいか、またはSORと等しい場合、NDPをインクリメントすることと、
SNがNESNより大きい場合、SORをSNに設定し、NESNをSNプラス1に設定し、NIOをインクリメントすることと、を含む、工程と、
前記更新されたデータを前記メモリに保存する工程と
を行うように構成された論理を含む、コンピュータ可読保存媒体。
【請求項10】
前記データはロストしたパケットの番号(NLO)を含み、
前記データを更新する工程はさらに、SNがNESNより大きい場合:
SNマイナスNESNと等しい値だけ、NLOを増加させることを含む、請求項9に記載のコンピュータ可読保存媒体。
【請求項11】
前記データは、再順序化されたパケットの番号(NRO)および遅延パケットの番号(NLA)を含み、
前記データを更新する工程はさらに、SNがNESN未満であり、かつSNがSOR未満である場合:
SNがNESNマイナスLTより大きいかまたはそれと等しいか、あるいはNESNマイナスLT未満であるかどうかを決定するために、SNと、NESNマイナス所定の遅延閾値(LT)とを比較することと、
SNがNESNマイナスLTより大きいか、またはそれと等しい場合、NROをインクリメントし、NLOをデクリメントすることと、
SNがNESNマイナスLT未満である場合、NLAをインクリメントし、NLOをデクリメントすることとを含む、請求項10に記載のコンピュータ可読保存媒体。
【請求項12】
前記データはLTを含む、請求項11に記載のコンピュータ可読保存媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate