(57)【要約】  データ通信ネットワークにおいて新しいまたは進行中のセッションに関連する、フローにおける状態情報を更新するための、高度に拡張可能な帯域内機構。方法は、フロー状態情報に対する構成および事象の応答の更新も行うために、ネットワークデバイスの固有のパケット転送およびフロー状態能力を使用することにより、過去の拡張性の問題に対処する。【選択図】  図４
2012526500.tif 000002
【特許請求の範囲】
【請求項１】
ヘッダー部分および本体部分を含む第1データパケットを受信する工程、
前記第1データパケットの前記本体部分に関連する署名を決定する工程、
少なくとも一部分において前記署名に基づいた制御信号を決定する工程、
および少なくとも一部分において前記制御信号に基づいた前記第1データパケットの前記本体部分を修正する工程、を含むことを特徴とする、情報フローを制御する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2009年5月8日に出願の、優先権出願された米国仮特許出願第61/176755号の優先権の利益を主張するものであり、その全内容は、言及によって本明細書に組み込まれる。
【０００２】
現在の方法および装置は、一般にデータ通信システム、より具体的には、データ通信システム内でのデータ通信セッション、およびそれらを含む個別フローの制御に関する。
【背景技術】
【０００３】
大容量データ通信システムは、スイッチ、ブリッジ、ゲートウェイ、およびルーターなどのデバイスによって相互に接続される多重ネットワークから成る。いくつかのネットワークデバイスは、単一ユニット内でこれらの機能のすべてを実行することができる。これらのネットワークデバイスの主要目的は、1つのネットワークエンドポイントまたはクライアントから別のエンドポイントにデータを転送することである。ネットワークデバイスは、データのソースとその行き先の間のネットワークにおける最適パス上の正確かつ効率的なデータの転送を保証するための専門的な構成部分を含む。データは、多重のバンドルまたはパケットにおいて伝達または転送される。パケット構造は、インターネットプロトコル、バージョン4（IPv4またはIP）またはマルチプロトコルラベルスイッチング（MPLS）などの特定の規定に従う。
【０００４】
現在、大規模なIPネットワークが単一の権威によって制御されることはほとんどない。代わりに、いくつかの独立して制御および管理されたネットワークが一緒に接続される。メトカーフの法則が規定するように、ネットワークの価値は、それが接続する他のネットワークの数とともに指数関数的に高まる。IPネットワークが一緒に接続されるとき、特定の機能は、相互接続するインターフェースで適用されなければない。これらの機能は、それぞれのネットワークが他のネットワークによってアクセスされる方法を各ネットワークの管理者が制御することを可能にし得、それによって、別のネットワークからの特定の情報を機密にしておく。
【０００５】
パケットを転送する経路において、ネットワークデバイスは、フローとして一般に示されるエンティティーへと多重パケットを一緒に関連付ける各パケットヘッダーのフィールドを検出することができる。フローを識別することができ、必要なフローの状態情報を維持することができるネットワークデバイスは、フロー認識またはフロー状態デバイスとして知られる。フロー内のパケットは、2つのエンドポイントが関係している特定のセッションの一部として、2つのエンドポイントの間でしばしば転送される。もし、制御プロトコル署名情報、またはパケットの本体内で検出される署名によって関連付けられると、単一または複数のフローはセッションと関連付けられ得る。このフローセッションの関連付けはゲートウェイルーターと呼ばれるセッション認識デバイスにおいて存在する。
【０００６】
セッションの1つの実例は、クライアント「プレーヤー」コンピューターとビデオ「サーバー」コンピューターの間のビデオセッションであり、後者はビデオのライブラリーとして機能し得る。ビデオクライアントおよびサーバーは、ビデオセッションの視覚およびオーディオ部分のための別々のフローを有し得る。単一のビデオセッションは、ネットワーク中の異なるエンドポイントに対する何百もの視覚およびオーディオフローから成るマルチセッションテレビ会議アプリケーションの一部であり得る。セッション設定プロトコル（SIP）などのテレビ会議の署名プロトコルは、個々のビデオセッションへフローを関連付けるためのゲートウェイルーター機構を提供し得る。多機能のネットワークデバイスは、それ故、パケットを転送し、フロー認識およびセッション認識することができ、それらすべては単一の物理装置内で行われる。
【０００７】
ゲートウェイは、ネットワークプロトコル変換も同様に行なうことができる。2つの接続ネットワークは、IPバージョン4および6などの異なるプロトコルを使用してもよく、ゲートウェイ機能はこれらの2つのプロトコルの間で変換する必要がある。例えば、ネットワークの1つは、もう1つのネットワークから特定のユーザーのアドレスを隠そうとする。ゲートウェイ機能は、ネットワークアドレス変換（「NAT」）またはネットワークアドレスプロトコル変換（「NAPT」）機能を提供し得る。別のゲートウェイ機能は、パケットがネットワークセグメントを透過的に横断するために追加のヘッダーにおいてカプセル化される場合に、トンネルを開始するか、または終了することである。そのようなアプリケーションは、IPv4からIPv6への変換、またはIPv6からIPv4への変換を必要とする各フロー上のフロー状態を維持することを含む。それはまた、単一の「加入者」または「エンドユーザー」セッション下でグループ化されている共通ソースまたは行先アドレスからの複数のフローによって、セッション状態情報を維持することを含む。
【０００８】
一旦ネットワークデバイスがフローの存在を検出すれば、ネットワークデバイスは、その後、フローに関連する統計（例えばフローにおいて転送されたデータ量、フローが存在した期間）を報告する、またはフローに割り当てられたサービスレベルアグリーメント（SLA）の帯域幅またはその関連するセッッションが超過されたどうかを測定するためにフローを監視するなどのように、フローに関する多数の機能（以下「フロー状態機能」、「フロー状態監視」、または「フロー状態制御」と呼ばれる）を行なうことができる。SLAの帯域幅が超過された場合、フロー内のいくつかのデータは、合意の帯域幅の制約内にフローを戻すために破棄され得る。
【０００９】
いくつかの場合において、IPv4ソースおよび行先アドレスなどのパケットヘッダーの静的フィールドは、ネットワークデバイスが所望のフロー状態機能を可能にするかまたは不能にするのに十分であり得る。他の場合において、所望のフロー状態機能を可能にするかまたは不能にするかの決定は、いくつかのパケットのみにおけるヘッダーフィールドの発見を含み得る。更に他の場合において、ネットワークデバイスは、転送されているパケットのサイズ、パケットが転送されている速度、またはフローまたはセッションが存在する期間などの、フローに関連するパケットおよびトラフィック特性、またはその関連するセッションを調べる。ネットワークデバイスはまた、境界ゲートウェイプロトコル（BGP）またはSIPのような異なる制御プロトコルまたはルーティングプロトコルを使用して、セッションに関する情報および「帯域からの」その流れを伝達する。エンドポイントに関するコントロールプロトコルから進行中のエンドポイントセッションまでに得られた情報は、その後、以前に述べられた方法で、セッションの特性を監視するか制御するために使用され得る。
【００１０】
フロー認識およびセッション認識のネットワークデバイスは、ネットワーク内およびセッション内の変更条件およびフロー自体を識別し、それらに応答し得る。解決するべき1つの主要問題は、これらのフローおよびセッションが存在する規模、およびそれらの動的性質の規模（すなわち、どれだけの多くのフローおよびセッションがネットワークに「接続している」およびネットワークから「切断されているか」）である。何万ものそのような事象および何百万もの同時に起こるフローおよびセッションに対する状態情報を維持することができる、フロー認識およびセッション認識のルーターは、かなりのハードウェアおよびソフトウェアのソースおよび能力を必要とする。
【００１１】
過去におけるゲートウェイ機能を発達させるための重大な挑戦は、必要な機能の規模を設定することにあった。ゲートウェイ機能はしばしば、パケットのストリームにおいてすべてのパケットに適用されなければならない。特定の境界を超える遅延が、影響を受けたセッションに障害を起こすために、ゲートウェイは速く機能しなければならない。これは、対話音声およびビデオなどの遅延感知可能なアプリケーションに特に当てはまる。更に、ゲートウェイは、単一のインターフェースにわたるいくつかのセッションを多重化することができなければならない。それは、各パケットに関して、セッションに関連する情報を見つけ、その情報に関連する命令をパケットに適用し、パケットに関連するセッション構成情報を更新し、その行き先へパケットを転送することができなければならない。セッションパラメーターが、構成変更またはセッション制御プロトコルの状態の変化のいずれかにより、いつでも変化し得るため、ゲートウェイは、セッションコンテキストを素早く更新することができなければならない。
【００１２】
必要とされるのは、今日のデータ通信ネットワークに必要とされるフローおよびセッションおよび接続および切断の数に対して高度に拡張可能であるような、所望のフロー反応を更新するための「帯域内」機構またはセッション内の「処置」である。現在の実装は、フロー状態変更を通信するために、データと制御プレーンの間の共有メモリーを典型的に使用する。しかしながら、フロー状態情報の変化を促進するためにデータ経路への更新情報の直接の「注入」を使用する方法および装置は、パケット転送およびパケット分類などのデータプレーンの他の機能への限定された影響を受けて実行され得る。
【発明の概要】
【００１３】
本発明の方法および装置は、フロー認識およびセッション認識ネットワークトラフィックのルーティング、スイッチング、またはゲートウェイのデバイス、またはネットワーク監視デバイスへ向けられ、これらのデバイスはいずれも、より大容量のデータ通信システム内に存在する。フロー認識およびセッション認識のルーティング、スイッチング、ゲートウェイ、または監視デバイスは、デバイスを通り抜けるネットワークパケットトラフィックを有し得、監視デバイスの場合において、トラフィックは、上流ノードで映されるかまた複写されるとき、デバイスで終了し、該トラフィックの1つの「複写」は、その割り当てられた行き先まで移動し、1つの複写は、トラフィックに関係する統計及び/又は特性を集める目的で監視デバイスに送達される。
【００１４】
デバイスは、プログラム可能および書換可能であり得、所望のフローおよびセッション状態の監視および制御機能を構成し実行する手段を提供する、デバイス内の専門的なソフトウェアおよびハードウェアを備える。ネットワークデバイスは、3つの基本の機能的ブロック、
1. パケット転送、パケット分類、署名認識、およびフロー状態メンテナンス（すなわち、「フロー認識」）を行なうことができ、限定されたコードの複雑性およびメモリー要素を有する高く決定論的な実行速度のために最適化され得るデータプレーン、
2. ネットワークデバイスが互いに通信するために使用できる、専門の制御およびルーティングプロトコルのためのセッション状態情報（すなわち、「セッション認識」）を維持することができ、大きな空きメモリーおよび非決定論的なコード実行速度を有して、コードの複雑性のために最適化され得る制御プレーン、
3. ネットワークデバイスを構成し管理することができ、ヒューマン‐マシン相互作用の容易さのために最適化され得る管理プレーンを含む。構成情報は、データおよび制御プレーンまで伝えられ得、各プレーンがどのようにフローおよびセッションの状態を管理し制御するかを命令することができる。
【００１５】
パケットトラフィックがネットワークデバイスに入ると、パケットヘッダー内のフィールドおよびパケット本体内の署名は、ネットワークデバイス内の専門的なデータプレーンハードウェアおよびソフトウェアによって認識され得る。データプレーンハードウェアおよびソフトウェアは、パケットのシーケンス、またはパケットストリームが、フローの一部となるように、指示することができる。
【００１６】
ヘッダーフィールドまたは署名のデータプレーン認識は、ネットワークデバイスの制御プレーンに中継され得る事象の引き金となり得る。制御プレーンは、一旦、データプレーンによってフローの存在に認識させられれば、その後、静的構成情報または動的事象応答の機構に基づいて、フローが属するセッションのデータプレーンの処理を修正し得る。これらの事象応答機構は、制御プロトコルの情報交換を介して引き起こされ得る。事象応答はまた、特定の閾値を越えるか、または構成または制御プロトコルの情報交換を介して定義された特定の第2または第3の署名パターンと一致するような、フロー内またはセッション自体内の特性変更が原因であり得る。
【００１７】
制御プレーンは、セッションの特定のフローに適用するデータプレーンへ帯域内のメッセージを送ることによってデータプレーンフロー処理を修正し得る。これらのメッセージは、フローの寿命にわたって繰り返し送られ得、同じフロー状態情報を複数回修正するか、またはフローの寿命において異なる時間に異なるフロー状態情報を修正する。これは、本発明の方法および装置の重要な態様：データプレーンのフロー状態のセッション認識の制御プレーン修正を表す。
【図面の簡単な説明】
【００１８】
【図１】図1は、本発明の方法のデータ通信システムまたはネットワークの1つの実施形態の高レベル概観のダイアグラムを表す。
【図１ａ】図1aは、パケットの詳細ダイアグラムを表す。
【図２】図2は、データプレーン処理要素へのパケットフローおよびパケットに関連するフロー状態の設定の詳細ダイアグラムを表す。
【図３】図3は、本発明の方法の1つの実施形態のためのフローおよびセッションの階層を示す図表を表す。
【図４】図4は、本発明の方法の1つの実施形態におけるネットワークデバイスの重要な内部の構成部分の詳細図を表す。
【図５】図5は、フローに関する状態情報を提供する様々なデータプレーン要素の詳細ダイアグラムを表す。
【図６】図6は、制御プレーンのセッション状態情報および制御プロトコルの状態情報の詳細ダイアグラムを表す。
【図７】図7は、制御プレーンがネットワークデバイスを通り抜けるパケットのストリームによって設定されたフロー状態をどのように更新するかを示すダイアグラムを表す。
【図８】図8は、図1〜7に記載されるシステムおよび方法を実施することができる、ネットワークにつながれたコンピューターシステムを表す。
【発明を実施するための形態】
【００１９】
装置の様々な実施形態、システムおよび方法は、図1〜8に関連して本明細書に記載される。
【００２０】
図1に示されるように、データ通信ネットワーク（100）内には、スイッチ、ゲートウェイ、ルーター、または他の既知の及び/又は便利なデバイスなどの様々なネットワークデバイス（102）が存在し得る。デバイス（102）は、インターネットプロトコル、バージョン4、または任意の他の既知の及び/又は好都合なプロトコルなどのプロトコルを使用して、パケットベースのトラフィック（104）を発信元ソース（106）から指定先（106）または相互接続リンク（110）上の行き先へ通し得る。パケット（104）を転送する各ネットワークデバイス（102）はまた、ネットワークホップ（102）と呼ばれ得る。データ通信ネットワーク（100）のオペレーターは、ネットワーク内のパケットトラフィック（104）のタイプおよび範囲を知ることに関心を有し得る。ネットワークオペレーターはまた、ネットワークオペレーターとソースと宛先デバイス（106）の間で一致したサービス水準に依存して、及び/又は任意の他の既知の及び/又は好都合な理由に基づいて、特定のタイプのトラフィック（104）に優遇措置（例えば、増加した帯域幅）または懲罰措置（例えば、一定の帯域幅のしきい値上の廃棄するパケット）を与えることは有用であるとわかり得る。幾つかの実施形態において、ネットワークオペレーターはまた、エンドユーザー（106）とは無関係に、フロー（108）のタイプを分類することができ、それらの分類されたタイプのフロー（108）に優遇または懲罰措置を与えることができる。幾つかの実施形態において、ネットワークオペレーターはまた、ゲートウェイルーター（114）または任意の他の既知の及び/又は好都合なデバイスなどの、ネットワーク中のセッション認識ポイントで、特定のタイプのセッション（112）に優遇または懲罰措置を与えることができる。これらの場合のいくつかにおいて、およびいくつかの例において、本発明の方法に記載される機構の使用を可能にするために、ネットワークデバイス（102）は、トラフィックを識別し、及び/又はそれをフロー（108）に分類し、及び/又はフロー（108）の寿命にわたって履歴の状態情報を維持することができる。
【００２１】
図1aに示されるように、幾つかの実施形態において、パケット（104）は、パケットヘッダー（118）における固定された既定義のフィールド（116）と、ソースおよび宛先デバイス（106）だけでなくデバイス間で作動しているフロー（108）も一意に識別し得る、パケット本体（122）における固定されていない周知の署名（120）を含み得る。幾つかの実施形態において、パケットヘッダー（118）フィールドを変えることによるパケット（104）「マーキング」は、パケット（104）上にデバイス自身の別の処理を適用するために、下流のネットワークデバイス（102）が使用し得る、適用する別のタイプの処理であり得る。
【００２２】
データ通信ネットワークにおいて、パケットトラフィック（104）を見て仲介することを望むのであれば、ネットワークオペレーターは、パケットトラフィック（104）を識別し、分類し、および処理するために、ネットワークデバイス（102）を構成し得る。図2に示されるように、ネットワークデバイス（102）の管理プレーン（200）は、構成を促進し得、その結果、リアルタイムで持ち手および制御トラフィック（104）を扱う要素、データプレーン（204）および制御プレーン（202）は、それぞれ、パケットトラフィック（104）上で所望の操作を行なうことができる。データプレーン（204）の構成情報（208）は、指定されたトラフィック（104）タイプまたはパターンを識別するために「識別」の詳細を含み得る。制御プレーン（202）の構成情報（206）は、「識別」および「処理」の詳細の両方を含み得る。制御プレーン（202）は、フロー状態（408）作成時間（すなわち、パケット（104）が最初に識別されるとき）に設定されたデフォルト情報（412）からのフロー（108）内のパケット（104）に関連する状態情報を変えるために、データプレーン（204）にトリガー機構を与え得る。
【００２３】
制御プレーン（202）およびデータプレーン（204）の構成を適所に置くことで、ネットワーク相互接続リンク（110）を遷移する、持ち手および制御パケット（104）は、ネットワークデバイス（100）に入り得る。プログラム可能で書換可能なデータプレーン処理要素（410）は、既定義のパケットヘッダーフィールド（400）及び/又は動的パケット本体署名（404）のためにパケット（104）をスキャンすることができ、パケット（104）が属する、フロー（108）に分類する。静的ヘッダーフィールド（400）は、フロー状態メモリー要素（408）に蓄えられ得、同じヘッダーフィールド（400）を有し得るフロー（108）において他のパケット（104）に関連し得る。幾つかの実施形態において、パケット本体署名（404）は、フローのために受信された「オリジナルの」または「最初の」パケット（104）内に存在し得、そのため、パケットヘッダー静的フィールド（400）は、フロー（108）にパケット（104）を関連付けるための主要な機構になり得る。幾つかの実施形態において、フロー（108）の「オリジナルの」、または「最初の」パケットは、データ経路処理要素（410）を遷移し得る。データ経路プロセッサー（416）は、少なくともいくつかのパケットヘッダーフィールド（400）を抜き出し、フロー状態メモリー要素（408）にそれらを蓄え得る。幾つかの実施形態において、データ経路プロセッサー（416）はまた、フロー状態メモリー要素（408）にアクセスすることができ、フロー状態（408）情報を最初に設定しその情報を蓄える。
【００２４】
データ経路プロセッサー（416）は、1つ以上のメモリーから、フロー（108）に関係する情報を得ることができる。転送情報メモリー（422）は、次のホップ（102）識別子及び/又はフロー状態（418）の一部になり得るプロトコル固有のカプセル化情報を含み得る。この情報は、（IPv4の最長のプレフィックスマッチ探索の場合の）IP行先アドレスプレフィックスまたは（MPLSパケット（402）の場合の）MPLSラベルなどのポリシーベースのルーティング（PBR）の場合の1つ以上のパケットヘッダーフィールド（400）を使用して、または単一のフィールド（400）を使用して、得られ得る。いくつかの実施形態において、構成情報メモリー（420）は、ネットワークオペレーターが特定のネットワークデバイス（102）またはネットワークデバイス（102）のグループに適用することだけを望み得る、ネットワークデバイス（102）に固有の情報を含み得る。デフォルトフロー（108）のタイムアウト間隔は、そのような「ノードに固有の」情報の例になる。分類情報メモリー（424）は、フロー（108）に固有のパケット処理情報（504）を含み得る。サービス妨害または受諾、サービスレベルアグリーメント（例えばフロー（108）のための最大帯域幅）、またはフロー（108）が属する加入者またはエンドユーザーグループ、使用するためのパケット転送優先待ち行列、およびペグに対するカウンターの識別子などの処理は、フロー（108）に固有の分類情報の例になり得る。メモリー（424）は、一意識別子として多重パケットヘッダーフィールド（400）を使用して、インデックスを付けられ得る。これらは、パケット（104）からフロー（108）または他の静的または動的なフィールド（the Differentiated Services Code PointまたはDSCPなど）を識別するのに使用される同じフィールド（400）であり得る。たとえ、幾つかの実施形態において、転送メモリー（422）および分類メモリー（424）が、それぞれのメモリーにインデックスを付けるために両方の同様のパケットヘッダーフィールド（400）を使用し得るとしても、各メモリーアクセス（それぞれ、次のホップ識別子（500）および最初のパケット処理（502））からもたらされた情報は、基本的に一意であり得ることを留意されたい。本発明の開示に記載される帯域内のフロー状態（418）の更新機構は、フロー（108）の寿命の間にいかなる時でもフロー状態情報（418）の任意の部分を更新し得る。複数のフロー（108）は、シングルセッション（112）の一部であり得る。制御プレーン（202）は、セッション（112）に関連する制御プロトコル状態情報（608）および構成情報（206）を維持し得るため、セッション（112）への可視性を有し得る。幾つかの実施形態において、制御プレーン（202）は、データプレーン（204）フロー状態（418）の帯域内の更新（700）を行なうために、必要なフロー情報（612）を含み得るセッション状態情報（610）を維持し得る。幾つかの実施形態において、制御プレーン（202）内の制御プロセッサー（600）は、そのローカルメモリーで構成されるポリシー（610）を有し得る。制御プロセッサーは、Diameter、Megaco/H.248、およびRemote Authentication Dial In User Service（RADIUS）などの標準制御プロトコル（614）、または任意の他の既知の及び/又は好都合なプロトコルを使用して、ポリシーサーバーとして知られる一種のネット���ークデバイス（102）へメッセージを送り得る。制御プロセッサー（600）はまた、ビデオまたは音声通話またはセッション（112）セットアップに関係し得、それらへのアクセスを有し得る。そのような実施形態において、制御プロセッサー（600）は、Resource ReSerVation Protocol（RSVP）、Session Initiation Protocol（SIP）、Media Gateway Control Protocol（MGCP）、H.323などのセッションシグナリング制御プロトコル（614）、または任意の他の既知の及び/又は好都合な制御プロトコルを使用し得る。制御プロセッサー（600）は、制御プロトコルパケット（614）のピアネットワークデバイス（102）との交換から得られた、制御プロトコル状態情報（608）を介するセッション（112）のための制御を決定する。幾つかの実施形態において、セッション（112）を制御する情報は、インターネット技術特別調査委員会（IETF）及び/又は国際電気通信連合（ITU-T）などの組織によって定義された標準となり得る、既知の及び/又は好都合な標準によって定義され得る制御プロセッサー（600）におけるプロトコルソフトウェアを通して引き出され得る。このソフトウェアは、各セッション（112）を適切に識別するための、およびパケット（104）プロトコルがセッション（112）によって使用され得る、必要な状態機械およびプロトコル定義を有し得る。幾つかの実施形態において、制御プロトコル（600）はまた、隣接ネットワークデバイス（102）と通信するために、境界ゲートウェイプロトコル（BGP）またはLabel Distribution Protocol（LDP）などの標準ルーティングプロトコル、及び/又は任意の他の既知の及び/又は好都合なルーティングプロトコルを使用し得る。
【００２５】
幾つかの実施形態において、制御プロセッサー（600）はまた、セッション（112）自体に関連するパケット（104）のストリームを観察することにより、およびストリーム特性からセッション状態情報（610）を引き出すことにより、及び/又はそのようなセッション状態情報（610）が、ネットワークデバイス（102）で適所にあり得るポリシー情報（610）にどのように関連するかを究明することにより、セッション（112）を制御する方法を決定し得る。幾つかの実施形態において、フロー構成（420）オプションを介して、データ経路プロセッサー（416）は、制御プレーン（202）にフローセットアップメッセージ（428）を周期的に送り得る。これらのメッセージ（428）は、静的フィールド（400）、本体署名（404）などの、フロー（108）に関する情報、及び/又は、任意の他の既知の好都合な情報、およびフロー寿命、パケットおよびバイトカウンター、及び/又は、他の統計的フロー（108）の情報、及び/又は他の既知の、好都合な及び/又は切望する情報も含み得る。
【００２６】
制御プレーン（202）においてセッション状態情報（610）が適所にあることで、セッション（112）に関連するパケット（104）のストリームは、データプレーン（204）を通って開始し得る。幾つかの実施形態において、フロー（108）の最初のまたはオリジナルのパケット（104）は、結果的に、データプレーン処理要素（410）においてフロー状態（408）の情報を作り出し得る。ヘッダーおよび署名認識ユニット（414）は、フロー（108）に関連するパケットヘッダーフィールド（400）およびパケット本体署名（404）を識別し得る。データ経路プロセッサー（416）は、転送（422）、分類（424）、セッション（426）を実行し得、構成（420）メモリー探索は、フロー状態メモリー（408）において結果を蓄え得る。データ経路プロセッサー（416）は、次のホップ（102）にパケット（104）を転送する前に、処理情報（504）によって識別された任意のパケットヘッダー（402）または本体（430）の修正を実行し得る。処理情報（504）は、フロー（108）が超過しない一定の帯域幅を示し得、その場合において、パケット（104）は廃棄され得る。パケットヘッダー（402）の修正（h1 508）またはパケット本体の修正（b1 510）も、パケット処理（504）として適用され得る。
【００２７】
幾つかの実施形態において、データ経路プロセッサー（416）はまた、フローセットアップメッセージ（428）を送ることにより、オリジナルパケット（104）の処理中に、制御プレーン（202）にフロー（108）の存在を通知し得る。幾つかの実施形態において、この通知は、オリジナルパケット（104）の到着時に及び／又は望まれるような他の希望時間に及び/又は周期的に生じる場合がある。データ経路構成メモリー（420）のオプションは、周期的な通知を可能にし得、それは、制御プレーン（202）が（「N」が書換可能である状態で）受信するあらゆるN番目のパケット（104）に対するフロー（108）の存在に関して通知され得ることを意味する。これは、メッセージ（428）がデータプレーン（204）から制御プレーン（202）への遷移において失われる可能性に対処し得る。繰り返された通知はまた、制御プレーン（202）が、フロー（108）がどれくらい存在したか（寿命）、およびデータのパケット（104）およびバイトがその寿命の間にどれだけフロー（108）に転送されたかなどの、メッセージ（428）にも置かれ得る、フロー（108）の統計を分析することを可能にし得る。制御プレーン（202）への通知メッセージ（428）は、制御プレーン（202）が帯域内のフロー状態制御メッセージ（700）を送るときに、正しいフロー（108）をデータプレーン（204）に正確に位置付けるために必要とされ得る、適切なフロー情報（418）を含み得る。フロー1（616）を指定するフロー（108）への制御プレーンの通知メッセージ（428）は、フロー（108）に関連するパケットヘッダーフィールド（フィールド1 432）およびパケット本体署名（署名1 434）を含み得る。さらなる詳細は、パケットヘッダー（400）の完全な複写、およびさらなるフロー情報（418）を含み得る、最初のパケット本体（430）のデータの一部を送ることにより提供され得る。制御プレーン（202）に送られるデータ量は、フロー1 616およびその特性を識別するために必要な量に制限され得る。送られたデータの制限は、方法の拡張性を改善し得る。
【００２８】
幾つかの実施形態において、制御プロセッサー（600）は、フロー通知メッセージ（428）を受信し得、最初にフロー1 616を、セッション1を示す既存のセッション状態メモリー要素（618）に関連付け得る。この関連付けは、制御プロセッサー（600）がセッション構成メモリー要素（606）および制御プロトコル状態メモリー要素（604）から得る情報に基づき得る。幾つかの実施形態において、通知メッセージ（428）でパケットヘッダーフィールド（400）（フィールド1 432）および署名（404）フィールド（署名1 434）を調べることによって、制御プロセッサー（600）は、フロー（108）に関連するセッション（112）を決定し得る。制限しない例として、
Transport Control Protocol（TCP）へのプロトコルフィールドセット、
TCPソースおよび宛先ポート番号30000、
IPソースアドレス10.1.2.3、
を備えるIPv4ヘッダー（402）は、ピアデバイス（620）とのRSVP制御プロトコル（614）の交換によって、ネットワークデバイス（102）内に設定され得る、ボイスオーバーインターネットプロトコル（VoIP）のセッション1に、フロー（108）を関連付け得る。制御プロセッサー（600）は、それによって、そのセッション状態情報（610）において、セッション1にフロー1 616を関連付け得る。一旦、セッション（112）およびフロー（108）が関連付けられると、メッセージ（428）内の情報は、セッション状態メモリー要素（618）の一部として蓄えられ得る。
【００２９】
幾つかの実施形態において、データプレーン処理要素（410）は、制御プレーン処理要素（602）がセッション（112）およびフロー（108）の関連付けを行なうとともに、フロー（108）に関連するパケットを転送し続け得る。パケット（104）は、オリジナルパケット（104）が受信された時に得られたフロー状態情報（418）を使用して転送され得る。フロー（108）の寿命の間のいかなる時も、制御プロセッサー（600）は、関連するセッション（112）に対する、ネットワークオペレーターからの構成更新またはピアネットワークデバイス（620）からの制御プロトコル状態（608）の更新を受信し得る。この事象において、制御プロセッサー（600）は、その後、データプレーン（204）への帯域内のフロー状態更新メッセージ（700）を介して、関連するフロー状態情報（418）を更新し得る。制御プロセッサー（600）は、データ経路プロセッサー（416）へのメッセージ（700）として機能し得るパケット（104）を集め得る。パケット（104）は、更新されるフロー（108）を識別するパケットヘッダーフィールド（400）を含み得る。制御プロセッサー（600）はまた、パケット（104）の本体（430）に所望のフロー状態更新パラメーターを置き得る。例えば、もし新しいパケット処理（504）が所望されると、新しい処理（702）はパケット本体（706）に施され得る。もし新しい次のホップ（102）が指定されると、新しい次のホップ識別子（704）はパケット本体（706）に置かれ得る。制御プロセッサー（600）は、メッセージ（700）を、注入されたパケットの形でデータプレーン処理要素（410）に送り得、そこで、ヘッダーおよび署名認識ユニット（414）は、「メッセージ」（700）のパケットを、更新されるフロー（108）に関連付け得る。データ経路プロセッサー（416）は、その後、「メッセージ」（700）パケットに関連したフロー状態情報（418）にアクセスし得、パケット本体（706）におけるパラメーターに基づいて、フロー状態（418）を更新し得る。データ経路プロセッサー（416）に受信されるフロー（108）のためのすべての後に続くパケット（104）は、新しく更新されたフロー状態パラメーター（708）を使用し得る。
【００３０】
制御プレーン（202）は、フロー（108）の寿命の間、これらのフロー状態の更新メッセージ（700）を送り続け得る。フロー（108）が「閉じる」、およびフロー状態メモリー要素（408）が別のフロー（108）によって取り除かれるまたは再使用される場合、フロー状態の更新メッセージ（700）は、フロー（108）のための任意の新しいパケット（104）がネットワーク相互接続リンク（110）上に到着する場合に、フロー状態（418）をまだ回復し得る。フロー状態の更新メッセージ（700）は、フロー（108）を設定するために必要とされるパケットヘッダーフィールド（400）をすべて含み得、そのため、フロー状態（408）は新しいフロー状態のメモリー要素（408）において再構築され得る。
【００３１】
実施形態を実行するために必要とされる、命令のシーケンスの実行は、図8に示されるように、コンピューターシステム（800）によって行われ得る。1つの実施形態において、命令のシーケンスの実行は、単一のコンピューターシステム（800）によって行なわれる。他の実施形態によると、通信リンク（815）によってつながれた2つ以上のコンピューターシステム（800）は、互いに連携して命令のシーケンスを行い得る。しかしながら、単一のみのコンピューターシステム（800）の記載が以下に提示されるが、任意の数のコンピューターシステム（800）が、実施形態を実行するために使用され得ることは理解されたい。
【００３２】
実施形態によるコンピューターシステム（800）は、ここでは、コンピューターシステム（800）の機能構成部分のブロック図である、図8に関連して記載される。本明細書に使用されるように、用語、コンピューターシステム（800）は、1つ以上のプログラムを記憶し独立して実行し得る任意のコンピューターデバイスを記載するために広く使用される。
【００３３】
各コンピューターシステム（800）は、バス（806）につながれた通信インターフェース（814）を含み得る。通信インターフェース（814）は、コンピューターシステム（800）間の双方向通信を提供する。それぞれのコンピューターシステム（800）の通信インターフェース（814）は、様々なタイプの署名情報、例えば、命令、メッセージ、およびデータを表わすデータストリームを含み得る、電気的、電磁気的または光学的信号を送受信する。通信リンク（815）は、1つのコンピューターシステム（800）を別のコンピューターシステム（800）とリンクさせる。例えば、通信リンク（815）はLANであり得、その場合、通信インターフェース（814）はLANカードであり得、または通信リンク（815）はPSTNであり得、その場合、通信インターフェース（814）は総合サービスデジタルネットワーク（ISDN）カードまたはモデムであり得、または通信リンク（815）はインターネットであり得、その場合、通信インターフェース（814）はダイアルアップ、ケーブルまたは無線モデムであり得る。
【００３４】
コンピューターシステム（800）は、プログラム、すなわち、アプリケーション、コードを含む、メッセージ、データ、および命令を、そのそれぞれの通信リンク（815）および通信インターフェース（814）を介して、送受信し得る。受信されたプログラムコードは、後の実行のために、記憶デバイス（810）、または他の関連する不揮発性の媒体に受信され、及び／又は記憶されると、それぞれのプロセッサー（807）によって実行され得る。
【００３５】
1つの実施形態において、コンピューターシステム（800）は、データ記憶システム（831）、例えばコンピューターシステム（800）によって容易にアクセス可能なデータベース（832）を含むデータ記憶システム（831）と連動して動作する。コンピューターシステム（800）は、データインターフェース（833）を介してデータ記憶システム（831）と通信する。バス（806）につながれるデータインターフェース（833）は、様々なタイプの信号情報、例えば、命令、メッセージ、データを表わすデータストリームを含み得る、電気的、電磁気的または光学的信号を送受信する。1つの実施形態において、データインターフェース（833）の機能は、通信インターフェース（814）によって行われ得る。
【００３６】
コンピューターシステム（800）は、命令、メッセージおよびデータ、まとめると情報を通信するためのバス（806）または他の通信機構、および情報を処理するためにバス（806）とつながれた1つ以上のプロセッサー（807）を含む。コンピューターシステム（800）はまた、プロセッサー（807）によって実行される動的データおよび命令を記憶させるためにバス（806）につながれる、ランダムアクセスメモリー（RAM）または他の動的記憶デバイスなどのメインメモリー（808）を含む。メインメモリー（808）はまた、プロセッサー（807）による命令の実行の間に、一時データ、すなわち変数、または他の中間情報を記憶するために使用され得る。
【００３７】
コンピューターシステム（800）は、プロセッサー（807）用の静的データおよび命令を記憶するために、バス（806）につながれた、読み取り専用メモリー（ROM）（809）または他の静的記憶デバイスを更に含み得る。磁気ディスクまたは光ディスクなどの記憶デバイス（810）も、プロセッサー（807）用のデータおよび命令を記憶するためにバス（806）に提供され、つながれ得る。
【００３８】
コンピューターシステム（800）は、ユーザーに情報を表示するために、限定されないが、ブラウン管（CRT）などの表示デバイス（811）にバス（806）を介してつながれ得る。入力デバイス（812）、例えば英数字キーや他のキーは、プロセッサー（807）に情報およびコマンドの選択を伝えるために、バス（806）につながれる。
【００３９】
1つの実施形態によると、個々のコンピューターシステム（800）は、メインメモリー（808）に含まれる1つ以上の命令の1つ以上のシーケンスを実行する、それぞれのプロセッサー（807）によって特定操作を行なう。そのような命令は、ROM 809または記憶デバイス（810）などの、別のコンピューターで使用可能な媒体からメインメモリー（808）に読み込まれ得る。メインメモリー（808）に含まれる命令のシーケンスの実行は、プロセッサー（807）に本明細書に記載される工程を行なわせる。代替の実施形態において、ハードワイヤード回路は、ソフトウェア命令に代わって、またはソフトウェア命令と組み合わせて使用され得る。したがって、実施形態は、ハードウェア回路及び/又はソフトウェアの任意の特定の組合せに限定されない。
【００４０】
用語「コンピューターで使用可能な媒体」は、本明細書に使用されるように、情報を提供するか、またはプロセッサー（807）によって使用可能である任意の媒体を指す。そのような媒体は、限定されないが、不揮発性、揮発性および伝送の媒体を含む、多くの形態をとり得る。不揮発性媒体、すなわち動力がない時に情報を保存し得る媒体は、ROM 809、CD ROM、磁気テープ、および磁気ディスクを含む。揮発性媒体、すなわち動力がない時に情報を保存することができない媒体は、メインメモリー（808）を含む。伝送媒体は、バス（806）を包含するワイヤーを含む、同軸ケーブル、銅線および光ファイバーを含む。伝送媒体はまた、搬送波、すなわち、情報信号を送るために、周波数、振幅または位相などにおいて変調され得る電磁波の形態をとり得る。さらに、伝送媒体は、電波および赤外線データの通信の間に発生する波などの音波または光波の形態をとり得る。
【００４１】
前述の明細書において、実施形態は、それらの特定要素に関連して記載されている。しかしながら、様々な修正および変更が、実施形態のより広範囲の精神および範囲から逸脱することなく、それらになされ得ることは明らかあろう。例えば、読み手は、本明細書に記載されるプロセスフロー図に示されるプロセスアクションの特定の順序および組合せが単に例示であり、異なるまたは更なるプロセスアクション、またはプロセスアクションの異なる組合せまたは順序の使用が、実施形態を実行するために使用され得ることを理解するであろう。明細書および図面は、したがって、限定的意味ではなく例示的意味で考えられるであろう。
【００４２】
本発明が様々なコンピューターシステムにおいて実施され得ることも留意されたい。本明細書に記載される様々な技術は、ハードウェアまたはソフトウェア、または両方の組合せにおいて実施され得る。技術は、コンピューターにおいて実施されることが好ましい。
【図１】
2012526500.tif 000003
【図１ａ】
2012526500.tif 000004
【図２】
2012526500.tif 000005
【図３】
2012526500.tif 000006
【図４】
2012526500.tif 000007
【図５】
2012526500.tif 000008
【図６】
2012526500.tif 000009
【図７】
2012526500.tif 000010
【図８】
2012526500.tif 000011
【国際調査報告】
2012526500.tif 000012
2012526500.tif 000013