(57)【特許請求の範囲】
【請求項１】
データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行う方法であって、
前記方法はリンク・レベルのデータ通信スイッチ内で実行され、前記スイッチは複数のデータ通信ポートと動作可能に結合されたデータ通信プロセッサを含み、前記ポートのうちの第１のポートは第１のデータ通信ネットワークに接続され、前記ポートのうちの第２のポートは第２のデータ通信ネットワークに接続され、前記データ処理アプリケーションには２つ又はそれ以上の付加的なポートが接続され、前記ポートの各々はネットワーク及びアプリケーションの間におけるデータ通信のための入口ポート又は出口ポートとして機能することができ、前記アプリケーションの各々には一意のリンク・レベル識別子が付随し、
前記スイッチは前記プロセッサと動作可能に結合されたデータ・ストレージを更に含み、前記データ・ストレージの内部には、前記スイッチの前記ポートの間におけるデータ通信のステアリングを管理する規則が格納され、前記規則の各々は入口ポートと出口ポートの関連付けを含み、
前記方法は、
前記スイッチ内で、入口ポートを通じて前記第１のネットワークから、前記第２のネットワークに向けられたデータ通信パケットを受信するステップであって、前記パケットの各々は、前記第１のネットワーク内の前記パケットの送信元を識別する送信元ネットワーク・アドレスと、前記第２のネットワーク内の前記パケットの宛先を識別する宛先ネットワーク・アドレスとを含む、前記受信するステップと、
前記スイッチにより、前記パケットの各々を、前記アプリケーションの間で及び出口ポートを通じて前記第２のネットワークへステアリングするステップであって、前記ステアリングは、前記パケットの前記送信元ネットワーク・アドレスも、前記パケットの前記宛先ネットワーク・アドレスも、いずれのアプリケーションの前記リンク・レベル識別子も用いずに、前記規則のみに従って実行される、前記ステアリングするステップと
を含む方法。
【請求項２】
前記パケットの各々を前記アプリケーションの間で前記ステアリングするステップは、前記規則による所定の順序で、前記パケットを前記アプリケーションの間でイン・ラインでステアリングするステップを更に含み、前記アプリケーションの各々は、前記パケットの各々に関連するデータ処理を実行し、次いで、前記パケットの各々を前記スイッチに戻し、前記スイッチは前記規則に従って、前記パケットを次のアプリケーションにイン・ラインでステアリングする、請求項１に記載の方法。
【請求項３】
前記パケットの各々を前記アプリケーションの間で前記ステアリングするステップは、
前記規則による所定の順序で、パケットを前記アプリケーションの間でイン・ラインでステアリングするステップと、
少なくとも１つのパケットを複製し、前記複製パケットを、他のアプリケーションとはライン外のアプリケーションにステアリングし、前記複製パケットを前記ライン外アプリケーションによって処理し、前記複製パケットを前記処理した後で、前記複製パケットを前記ライン外アプリケーションによって破棄するステップと
を更に含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記ポートの少なくとも１つのグループが出口グループとして指定され、前記グループ内の各々のポートは同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを前記出口グループに関連付け、
前記アプリケーションの間でパケットを前記ステアリングするステップは、前記特定の入口ポートからのパケットを前記出口グループへステアリングするステップを更に含み、該ステップは、前記出口グループ内の前記ポートの中から、前記特定の入口ポートからのパケットの各々を、それを通してステアリングするポートを選択するステップを含み、該ステップは前記出口グループ内の前記ポートの中からのポート選択を負荷分散するステップを含む、
前記請求項のいずれか１項に記載の方法。
【請求項５】
前記ポートの少なくとも１つのグループが出口グループとして指定され、前記グループの内のポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを前記出口グループに関連付け、
前記パケットの各々は、前記第１のネットワーク内の前記パケットの送信元アドレスに位置するアプリケーションの送信元アプリケーション識別子と、前記第２のネットワーク内の前記パケットの宛先アドレスに位置するアプリケーションの宛先アプリケーション識別子と、前記パケットのプロトコル識別子とを更に含み、
前記方法は、前記第１のネットワーク中のコンピュータ上で実行されるデータ通信プログラムと前記第２のネットワーク中のコンピュータ上で実行されるデータ通信プログラムとの間の、前記スイッチを通して流れる双方向のパケット・ストリームとして、フローを定めるステップを更に含み、
パケットを前記アプリケーションの間で前記ステアリングするステップは、フロー中のパケットを、どのネットワークが前記パケットを発したかに関わりなく、同じアプリケーションの同じインスタンスへステアリングするステップを更に含む、
前記請求項のいずれか１項に記載の方法。
【請求項６】
データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための装置であって、前記装置は、
リンク・レベルのデータ通信スイッチを含み、前記スイッチは複数のデータ通信ポートと動作可能に結合されたデータ通信プロセッサを含み、前記ポートのうちの第１のポートは第１のデータ通信ネットワークに接続され、前記ポートのうちの第２のポートは第２のデータ通信ネットワークに接続され、前記データ処理アプリケーションには２つ又はそれ以上の付加的なポートが接続され、前記ポートの各々はネットワーク及びアプリケーションの間におけるデータ通信のための入口ポート又は出口ポートとして機能することができ、前記アプリケーションの各々には一意のリンク・レベル識別子が付随し、
前記スイッチは前記プロセッサと動作可能に結合されたデータ・ストレージを更に含み、前記データ・ストレージの内部には、前記スイッチの前記ポートの間における前記データ通信のステアリングを管理する規則が格納され、前記規則の各々は入口ポートと出口ポートの関連付けを含み、
前記装置は、
前記スイッチ内で、入口ポートを通じて前記第１のネットワークから、前記第２のネットワークに向けられたデータ通信パケットを受信するステップであって、前記パケットの各々は、前記第１のネットワーク内の前記パケットの送信元を識別する送信元ネットワーク・アドレスと、前記第２のネットワーク内の前記パケットの宛先を識別する宛先ネットワーク・アドレスとを含む、前記受信するステップと、
前記スイッチにより、前記パケットの各々を、前記アプリケーションの間で及び出口ポートを通じて前記第２のネットワークへステアリングするステップであって、前記ステアリングは、前記パケットの前記送信元ネットワーク・アドレスも、前記パケットの前記宛先ネットワーク・アドレスも、いずれのアプリケーションの前記リンク・レベル識別子も用いずに、前記規則のみに従って実行される、前記ステアリングするステップと、
を実行するように構成される装置。
【請求項７】
前記パケットの各々を前記アプリケーションの間で前記ステアリングするステップは、前記規則による所定の順序で、前記パケットを前記アプリケーションの間でイン・ラインでステアリングするステップを更に含み、前記アプリケーションの各々は、前記パケットの各々に関連するデータ処理を実行し、次いで、前記パケットの各々を前記スイッチに戻し、前記スイッチは前記規則に従って、前記パケットを次のアプリケーションにイン・ラインでステアリングする、請求項６に記載の装置。
【請求項８】
前記パケットの各々を前記アプリケーションの間で前記ステアリングするステップは、
前記規則による所定の順序で、パケットを前記アプリケーションの間でイン・ラインでステアリングするステップと、
少なくとも１つのパケットを複製し、前記複製パケットを、他のアプリケーションとはライン外のアプリケーションにステアリングし、前記複製パケットを前記ライン外アプリケーションによって処理し、前記複製パケットを前記処理した後で、前記複製パケットを前記ライン外アプリケーションによって破棄するステップと、
を更に含む、請求項６又は請求項７に記載の装置。
【請求項９】
前記ポートの少なくとも１つのグループが出口グループとして指定され、前記グループ内の前記ポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを前記出口グループに関連付け、
パケットを前記アプリケーションの間で前記ステアリングするステップは、前記特定の入口ポートからのパケットを前記出口グループへステアリングするステップを更に含み、該ステップは、前記出口グループ内の前記ポートの中から、前記特定の入口ポートからのパケットの各々を、それを通してステアリングするためのポートを選択するステップを含み、該ステップは、前記出口グループ内の前記ポートの中からのポート選択の負荷分散を行うステップを含む、
請求項６乃至請求項８のいずれか１項に記載の装置。
【請求項１０】
前記ポートの少なくとも１つのグループが出口グループとして指定され、前記グループ内の前記ポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを前記出口グループに関連付け、
前記パケットの各々は、前記第１のネットワーク内の前記パケットの送信元アドレスに位置するアプリケーションの送信元アプリケーション識別子と、前記第２のネットワーク内の前記パケットの宛先アドレスに位置するアプリケーションの宛先アプリケーション識別子と、前記パケットのプロトコル識別子とを更に含み、
前記装置は、前記第１のネットワーク中のコンピュータ上で実行されるデータ通信プログラムと前記第２のネットワーク中のコンピュータ上で実行されるデータ通信プログラムとの間の、前記スイッチを通して流れる双方向のパケット・ストリームとして、フローを定めるステップを実行するように更に構成され、
パケットを前記アプリケーションの間で前記ステアリングするステップは、前記フロー中のパケットを、どのネットワークが前記パケットを発したかに関わりなく、同じアプリケーションの同じインスタンスへステアリングするステップを更に含む、
請求項６乃至請求項９のいずれか１項に記載の装置。
【請求項１１】
リンク・レベルのデータ通信スイッチを通じて、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、書き込み可能なコンピュータ可読媒体内に配置され、
前記スイッチは複数のデータ通信ポートと動作可能に結合されたデータ通信プロセッサを含み、前記ポートのうちの第１のポートは第１のデータ通信ネットワークに接続され、前記ポートのうちの第２のポートは第２のデータ通信ネットワークに接続され、前記データ処理アプリケーションには２つ又はそれ以上の付加的なポートが接続され、前記ポートの各々はネットワーク及びアプリケーションの間におけるデータ通信のための入口ポート又は出口ポートとして機能することができ、前記アプリケーションの各々には一意のリンク・レベル識別子が付随し、
前記スイッチは前記プロセッサと動作可能に結合されたデータ・ストレージを更に含み、前記データ・ストレージの内部には、前記スイッチの前記ポートの間における前記データ通信のステアリングを管理する規則が格納され、前記規則の各々は入口ポートと出口ポートの関連付けを含み、
前記コンピュータ・プログラムの命令は、前記データ通信プロセッサによって実行されるとき、前記スイッチに、
前記スイッチ内で、入口ポートを通じて前記第１のネットワークから、前記第２のネットワークに向けられたデータ通信パケットを受信するステップであって、前記パケットの各々は、前記第１のネットワーク内の前記パケットの送信元を識別する送信元ネットワーク・アドレスと、前記第２のネットワーク内の前記パケットの宛先を識別する宛先ネットワーク・アドレスとを含む、前記受信するステップと、
前記スイッチにより、前記パケットの各々を、前記アプリケーションの間で及び出口ポートを通じて前記第２のネットワークへステアリングするステップであって、前記ステアリングは、前記パケットの前記送信元ネットワーク・アドレスも、前記パケットの前記宛先ネットワーク・アドレスも、いずれのアプリケーションの前記リンク・レベル識別子も用いずに、前記規則のみに従って実行される、前記ステアリングするステップと、
をコンピュータに実行させる、コンピュータ・プログラム。
【請求項１２】
前記パケットの各々を前記アプリケーションの間で前記ステアリングするステップは、前記規則による所定の順序で、前記パケットを前記アプリケーションの間でイン・ラインでステアリングするステップを更に含み、前記アプリケーションの各々は、前記パケットの各々に関連するデータ処理を実行し、次いで、前記パケットの各々を前記スイッチに戻し、前記スイッチは前記規則に従って、前記パケットを次のアプリケーションにイン・ラインでステアリングする、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
前記パケットの各々を前記アプリケーションの間で前記ステアリングするステップは、
前記規則による所定の順序で、パケットを前記アプリケーションの間でイン・ラインでステアリングするステップと、
少なくとも１つのパケットを複製し、前記複製パケットを、他のアプリケーションとはライン外のアプリケーションにステアリングし、前記複製パケットを前記ライン外アプリケーションによって処理し、前記複製パケットを前記処理した後で、前記複製パケットを前記ライン外アプリケーションによって破棄するステップと、
を更に含む、
請求項１１又は請求項１２に記載のコンピュータ・プログラム。
【請求項１４】
前記ポートの少なくとも１つのグループが出口グループとして指定され、前記グループ内の前記ポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを前記出口グループに関連付け、
パケットを前記アプリケーションの間で前記ステアリングするステップは、前記特定の入口ポートからのパケットを前記出口グループへステアリングするステップを更に含み、該ステップは、前記出口グループ内の前記ポートの中から、前記特定の入口ポートからの前記パケットの各々を、それを通してステアリングするためのポートを選択するステップを含み、該ステップは、前記出口グループ内の前記ポートの中からのポート選択の負荷分散を行うステップを含む、
請求項１１乃至請求項１３のいずれか１項に記載のコンピュータ・プログラム。
【請求項１５】
前記ポートの少なくとも１つのグループが出口グループとして指定され、前記グループ内の前記ポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを前記出口グループに関連付け、
前記パケットの各々は、前記第１のネットワーク内の前記パケットの送信元アドレスに位置するアプリケーションの送信元アプリケーション識別子と、前記第２のネットワーク内の前記パケットの宛先アドレスに位置するアプリケーションの宛先アプリケーション識別子と、前記パケットのプロトコル識別子とを更に含み、
前記コンピュータ・プログラムの命令は、前記スイッチに、前記第１のネットワーク中のコンピュータ上で実行されるデータ通信プログラムと前記第２のネットワーク中のコンピュータ上で実行されるデータ通信プログラムとの間の、前記スイッチを通して流れる双方向のパケット・ストリームとして、フローを定めるステップを更に実行させることができ、
パケットを前記アプリケーションの間で前記ステアリングするステップは、前記フロー中のパケットを、どのネットワークが前記パケットを発したかに関わりなく、同じアプリケーションの同じインスタンスへステアリングするステップを更に含む、
請求項１１乃至請求項１４のいずれか１項に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野はデータ処理であり、より具体的には、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ（bump-in-the-wire）型処理を行うための方法、装置、及び製品である。
【背景技術】
【０００２】
１９４８年のＥＤＶＡＣコンピュータ・システムの開発は、しばしばコンピュータ時代の始まりとして引用される。その時以来、コンピュータ・システムは、極めて複雑な装置へと進化してきた。今日のコンピュータは、ＥＤＶＡＣのような初期のシステムに比べて遥かに高性能である。コンピュータ・システムは、典型的には、ハードウェア・コンポーネントとソフトウェア・コンポーネントとの組み合わせ、アプリケーション・プログラム、オペレーティング・システム、プロセッサ、バス、メモリ、入力／出力装置などを含む。半導体処理及びコンピュータ・アーキテクチャの進歩がコンピュータの高性能化を更に押し進めるにつれて、ハードウェアのより高い性能を生かすために、より高度なコンピュータ・アーキテクチャが発展し、その結果、今日のコンピュータ・システムは、ほんの数年前よりも遥かに強力なものになっている。
【０００３】
重要な進歩を見た領域の１つは、パケット・スイッチングによるデータ通信である。今日では多くのシステムが、送信元コンピュータの動作、送信者、及びパケットの宛先にとって透過的にデータ通信パケットを処理している。即ち、このような透過的処理が行われていることを、パケットの送信元も最終的な宛先も決して知らされることはない。このような透過的処理には、例えば、セキュリティ処理、データ通信機器間の負荷分散機能、統計調査などを挙げることができる。このような透過的処理は、１つのアプリケーションがセキュリティ・サービスを提供し、別のアプリケーションが統計調査を実施し、別のアプリケーションが負荷分散を実施するといったように、１つに限らず幾つかの中間アプリケーションによる処理を含むことができる。
【０００４】
データ・パケットが幾つかのアプリケーションによって処理される場合には、データ・ストリームを１つのアプリケーションから別のアプリケーションへルーティングする問題が必然的に生じる。典型的なアプリケーションについては、このルーティング機能は、標準的なＩＳＯ／ＯＳＩルーティング及びスイッチング・モデルを利用することにより解決され、その場合パケット・ヘッダが経路に従って修正され、ペイロードがアプリケーションに配信される。典型的には「バンプ・イン・ザ・ワイヤ型無差別モード」で動作するパケット解析及び処理アプリケーション、即ち、２つ又は複数のネットワーク・デバイスの間に透過的且つ不可視的に存在してデバイス間で交換される全てのパケットをリスンするアプリケーショ対しては、パケット・ヘッダを保存することが求められる。これらのアプリケーションは一般にパケット・ヘッダ及びペイロードの検査を行うため、この種のアプリケーションにとってはパケット全体、即ちペイロードとヘッダを加えたものを「ペイロード」として考える必要がある。このようなバンプ・イン・ザ・ワイヤ型アプリケーションの各々は、最初の送信元から最終的な宛先までの全体的なパケット伝送に干渉することがないように、処理したパケットの各々を、最初のヘッダ・アドレスには手を加えずに通信システムに戻さなければならない。
【０００５】
従来技術はこの問題を、パケット全体、即ちペイロードとヘッダを加えたものをカプセル化し、これをバンプ・イン・ザ・ワイヤ型アプリケーションへのパケットのルーティングを指定する新たなヘッダで包み込むことで解決しようと試みてきた。この新たなカプセル化ヘッダは種々のハードウェア、スイッチ、ＮＩＣなどの全てによって、及び場合によってはシーケンス内のバンプ・イン・ザ・ワイヤ型アプリケーションによっても、理解される必要がある。この付加的なヘッダ層を処理することの要求は、今や自分たちの主力製品の付加的な構成を設計し、開発し、試験し、及びサポートしなければならないハードウェア開発者及びアプリケーション供給者にとって重荷となる。加えて、幾つかの解決策はアプリケーション供給者に、新たなヘッダ処理を組み込むだけではなく、特定のハードウェア及びオペレーティング・システム・プラットフォームに彼らのアプリケーションを移植することまでも要求する。
【０００６】
従来技術において試みられた別の解決策は、例えば宛先ＭＡＣアドレスを変更するなどの特定の方式でパケットを修正することである。この選択肢はパケットを変更し、またパケット内に最初のアドレスが保持されていることに依存するタイプの解析を実施する機能に制限を加える。さらに、この解決策はハードウェア開発者に、それを用いるルータ、ブリッジ、及びスイッチに付加的な修正を施して、最初のアドレスを追跡し、バンプ・イン・ザ・ワイヤ型アプリケーションから戻る際にパケットにそれらを戻すようにすることを要求する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の従来技術の問題点を克服するために、複数のデータ処理アプリケーションの間でデータ通信パケットをステアリングする方法を提供する。
【課題を解決するための手段】
【０００８】
本発明は従って、第１の態様において、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行う方法を提供し、本方法はリンク・レベルのデータ通信スイッチ内で実行され、スイッチは複数のデータ通信ポートと動作可能に結合されたデータ通信プロセッサを含み、ポートのうちの第１のポートは第１のデータ通信ネットワークに接続され、ポートのうちの第２のポートは第２のデータ通信ネットワークに接続され、データ処理アプリケーションには２つ又はそれ以上の付加的なポートが接続され、ポートの各々はネットワーク及びアプリケーションの間におけるデータ通信のための入口ポート又は出口ポートとして機能することができ、アプリケーションの各々には一意のリンク・レベル識別子が付随し、スイッチはプロセッサと動作可能に結合されたデータ・ストレージを更に含み、データ・ストレージの内部には、スイッチのポート間におけるデータ通信のステアリングを管理する規則が格納され、規則の各々は入口ポートと出口ポートの関連付けを含み、本方法は、スイッチ内で入口ポートを通じて第１のネットワークから第２のネットワークに向けられたデータ通信パケットを受信するステップであって、パケットの各々は、第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレスと、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレスとを含む、受信するステップと、スイッチによってパケットの各々を、アプリケーションの間で及び出口ポートを通じて第２のネットワークへステアリングするステップであって、このステアリングは、パケットの送信元ネットワーク・アドレスも、パケットの宛先ネットワーク・アドレスも、いずれのアプリケーションのリンク・レベル識別子も用いずに、規則のみに従って実行される、ステアリングするステップと、を含む。
【０００９】
好ましくは、パケットの各々をアプリケーションの間でステアリングするステップは、規則による所定の順序で、パケットをアプリケーションの間でイン・ラインでステアリングするステップを更に含み、ここでアプリケーションの各々は、パケットの各々に関連するデータ処理を実行し、次いでパケットの各々をスイッチに戻し、スイッチは規則に従って、パケットを次のアプリケーションにイン・ラインでステアリングする。好ましくは、パケットの各々をアプリケーションの間でステアリングするステップは、規則による所定の順序で、パケットをアプリケーション間でイン・ラインでステアリングするステップと、少なくとも１つのパケットを複製し、複製パケットを、他のアプリケーションとはライン外のアプリケーションにステアリングし、複製パケットをライン外アプリケーションによって処理し、複製パケットを処理した後で、複製パケットをライン外アプリケーションによって破棄するステップとを更に含む。
【００１０】
好ましくは、ポートの少なくとも１つのグループが出口グループとして指定され、グループ内のポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを出口グループに関連付け、パケットをアプリケーションの間でステアリングするステップは、特定の入口ポートからのパケットを出口グループへステアリングするステップを更に含み、該ステップは、出口グループのポートの中から、特定の入口ポートからのパケットの各々をそれによってステアリングするためのポートを選択するステップを含み、該ステップは、出口グループ内のポートの中からのポート選択の負荷分散を行うステップを含む。好ましくは、ポートの少なくとも１つのグループが出口グループとして指定され、グループ中のポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを出口グループに関連付ける。パケットの各々は、第１のネットワーク内のパケットの送信元アドレスに位置するアプリケーションの送信元アプリケーション識別子と、第２のネットワーク内のパケットの宛先アドレスに位置するアプリケーションの宛先アプリケーション識別子と、パケットのプロトコル識別子とを更に含む。本方法は、第１のネットワーク中のコンピュータ上で実行されるデータ通信プログラムと第２のネットワーク中のコンピュータ上で実行されるデータ通信プログラムとの間の、スイッチを通して流れる双方向のパケット・ストリームとして、フローを定めるステップを更に含み、パケットをアプリケーションの間でステアリングするステップは、フロー中のパケットを、どのネットワークがパケットを発したかに関わりなく、同じアプリケーションの同じインスタンスへステアリングするステップを更に含む。
【００１１】
第２の態様において、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための装置が提供され、本装置は、リンク・レベルのデータ通信スイッチを含み、スイッチは複数のデータ通信ポートと動作可能に結合されたデータ通信プロセッサを含み、ポートのうちの第１のポートは第１のデータ通信ネットワークに接続され、ポートのうちの第２のポートは第２のデータ通信ネットワークに接続され、データ処理アプリケーションには２つ又はそれ以上の付加的なポートが接続され、ポートの各々はネットワーク及びアプリケーションの間におけるデータ通信のための入口ポート又は出口ポートとして機能することができ、アプリケーションの各々には一意のリンク・レベル識別子が付随し、スイッチはプロセッサと動作可能に結合されたデータ・ストレージを更に含み、データ・ストレージの内部には、スイッチのポート間におけるデータ通信のステアリングを管理する規則が格納され、規則の各々は入口ポートと出口ポートの関連付けを含み、本装置は、スイッチ内で、入口ポートを通じて第１のネットワークから第２のネットワークに向けられたデータ通信パケットを受信するステップであって、パケットの各々は第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレスと、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレスとを含む、受信するステップと、スイッチによってパケットの各々をアプリケーション間で及び出口ポートを通じて第２のネットワークへステアリングするステップであって、このステアリングは、パケットの送信元ネットワーク・アドレスも、パケットの宛先ネットワーク・アドレスも、いずれのアプリケーションのリンク・レベル識別子も用いずに、規則のみに従って実行される、ステアリングするステップと、を実行するように構成される。
【００１２】
好ましくは、パケットの各々をアプリケーションの間でステアリングするステップは、規則による所定の順序で、パケットをアプリケーションの間でイン・ラインでステアリングするステップを更に含み、ここで、アプリケーションの各々は、パケットの各々に関連するデータ処理を実行し、次いで、パケットの各々をスイッチに戻し、スイッチは規則に従って、パケットを次のアプリケーションにイン・ラインでステアリングする。
【００１３】
好ましくは、パケットの各々をアプリケーションの間でステアリングするステップは、規則による所定の順序で、パケットをアプリケーションの間でイン・ラインでステアリングするステップと、少なくとも１つのパケットを複製し、複製パケットを、他のアプリケーションとはライン外のアプリケーションにステアリングし、複製パケットをライン外アプリケーションによって処理し、複製パケットを処理した後で、複製パケットを前記ライン外アプリケーションによって破棄するステップとを更に含む。好ましくは、ポートの少なくとも１つのグループが出口グループとして指定され、グループ内のポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを出口グループに関連付け、パケットをアプリケーション間でステアリングするステップは、特定の入口ポートからのパケットを出口グループへステアリングするステップを更に含み、該ステップは、出口グループ内のポートの中から、特定の入口ポートからのパケットの各々をそれによってステアリングするためのポートを選択するステップを含み、該ステップは、出口グループ内のポートの中からのポート選択の負荷分散を行うステップを含む。
【００１４】
好ましくは、ポートの少なくとも１つのグループが出口グループとして指定され、グループ内のポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを出口グループに関連付ける。パケットの各々は、第１のネットワーク内のパケットの送信元アドレスに位置するアプリケーションの送信元アプリケーション識別子と、第２のネットワーク内のパケットの宛先アドレスに位置するアプリケーションの宛先アプリケーション識別子と、パケットのプロトコル識別子とを更に含む。装置は、第１のネットワーク中のコンピュータ上で実行されるデータ通信プログラムと第２のネットワークの中のコンピュータ上で実行されるデータ通信プログラムとの間の、スイッチを通して流れる双方向のパケット・ストリームとして、フローを定めるステップを実行するように更に構成される。パケットをアプリケーションの間でステアリングするステップは、フロー中のパケットを、どのネットワークがパケットを発したかに関わりなく、同じアプリケーションの同じインスタンスへステアリングするステップを更に含む。
【００１５】
第３の態様において、データ通信パケットをリンク・レベルのデータ通信スイッチを通じてステアリングし、複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うためのコンピュータ・プログラムが提供され、本コンピュータ・プログラムは、書き込み可能なコンピュータ可読媒体内に配置され、スイッチは複数のデータ通信ポートと動作可能に結合されたデータ通信プロセッサを含み、ポートのうちの第１のポートは第１のデータ通信ネットワークに接続され、ポートのうちの第２のポートは第２のデータ通信ネットワークに接続され、データ処理アプリケーションには２つ又はそれ以上の付加的なポートが接続され、ポートの各々はネットワーク及びアプリケーションの間におけるデータ通信のための入口ポート又は出口ポートとして機能することができ、アプリケーションの各々には一意のリンク・レベル識別子が付随し、スイッチはプロセッサと動作可能に結合されたデータ・ストレージを更に含み、データ・ストレージの内部には、スイッチのポート間におけるデータ通信のステアリングを管理する規則が格納され、規則の各々は入口ポートと出口ポートの関連付けを含み、コンピュータ・プログラム命令は、データ通信プロセッサによって実行されるとき、スイッチ内で入口ポートを通じて第１のネットワークから第２のネットワークに向けられたデータ通信パケットを受信するステップであって、パケットの各々は、第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレスと、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレスとを含む、受信するステップと、スイッチによってパケットの各々を、アプリケーションの間で及び出口ポートを通じて第２のネットワークへステアリングするステップであって、このステアリングは、パケットの送信元ネットワーク・アドレスも、パケットの宛先ネットワーク・アドレスも、いずれのアプリケーションのリンク・レベル識別子も用いずに、規則のみに従って実行される、ステアリングするステップと、をスイッチに実行させることができる。
【００１６】
好ましくは、パケットの各々をアプリケーションの間でステアリングするステップは、規則による所定の順序で、パケットをアプリケーション間でイン・ラインでステアリングするステップを更に含み、アプリケーションの各々は、パケットの各々に関連するデータ処理を実行し、次いで、パケットの各々をスイッチに戻し、スイッチは規則に従ってパケットを次のアプリケーションにイン・ラインでステアリングする。好ましくは、パケットの各々をアプリケーションの間でステアリングするステップは、規則による所定の順序で、パケットをアプリケーションの間でイン・ラインでステアリングするステップと、少なくとも１つのパケットを複製し、複製パケットを、他のアプリケーションとはライン外のアプリケーションにステアリングし、複製パケットをライン外アプリケーションによって処理し、複製パケットを処理した後で、複製パケットをライン外アプリケーションによって破棄するステップと、を更に含む。
【００１７】
好ましくは、ポートの少なくとも１つのグループが出口グループとして指定され、グループ内のポートの各々は同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを出口グループに関連付け、パケットをアプリケーションの間でステアリングするステップは、特定の入口ポートからのパケットを出口グループへステアリングするステップを更に含み、該ステップは、出口グループ内のポートの中から、特定の入口ポートからのパケットの各々をそれによってステアリングするためのポートを選択するステップを含み、該ステップは、出口グループ内のポートの中からのポート選択の負荷分散を行うステップを含む。
【００１８】
好ましくは、ポートの少なくとも１つのグループが出口グループとして指定され、グループ内の各々のポートは同じアプリケーションの別々のインスタンスに接続され、少なくとも１つの規則が特定の入口ポートを出口グループに関連付け、パケットの各々は、第１のネットワーク内のパケットの送信元アドレスに位置するアプリケーションの送信元アプリケーション識別子と、第２のネットワーク内のパケットの宛先アドレスに位置するアプリケーションの宛先アプリケーション識別子と、パケットのプロトコル識別子とを更に含み、コンピュータ・プログラム命令はスイッチに対して、第１のネットワーク中のコンピュータ上で実行されるデータ通信プログラムと第２のネットワーク中のコンピュータ上で実行されるデータ通信プログラムとの間の、スイッチを通して流れる双方向のパケット・ストリームとして、フローを定めるステップを更に実行させることができ、パケットをアプリケーションの間でステアリングするステップは、フロー中のパケットを、どのネットワークがパケットを発したかに関わりなく、同じアプリケーションの同じインスタンスへステアリングするステップを更に含む。
【００１９】
このように、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための例示的な方法、装置、及び製品が開示され、このステアリングはリンク・レベルのデータ通信スイッチ内で実行され、スイッチは典型的には複数のデータ通信ポートと動作可能に結合されたデータ通信プロセッサを含み、ポートのうちの第１のポートは第１のデータ通信ネットワークに接続され、ポートのうちの第２のポートは第２のデータ通信ネットワークに接続され、２つ又はそれ以上の付加的なポートがデータ処理アプリケーションに接続され、ポートの各々はネットワーク及びアプリケーションの間のデータ通信のための入口ポート又は出口ポートとして機能することができ、アプリケーションの各々には一意のリンク・レベル識別子が付随し、スイッチはまた典型的にはプロセッサと動作可能に結合されたデータ・ストレージを含み、データ・ストレージの内部には、スイッチのポート間におけるデータ通信のステアリングを管理する規則が格納され、規則の各々は入口ポートと出口ポートの関連付けを含み、本方法は更に、スイッチ内で入口ポートを通じて第１のネットワークから第２のネットワークに向けられたデータ通信パケットを受信することを含み、パケットの各々は、第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレスと、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレスとを含み、本方法は更に、スイッチによってパケットの各々を、アプリケーションの間で及び出口ポートを通じて第２のネットワークへステアリングすることを含み、このステアリングは、パケットの送信元ネットワーク・アドレスも、パケットの宛先ネットワーク・アドレスも、いずれのアプリケーションのリンク・レベル識別子も用いずに、規則のみに従って実行される。
【００２０】
ここで添付の図面を参照して、本発明の一実施形態を例証としてのみ説明する。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための自動計算機、例示的な自動装置の機能のブロック図を示す。
【図２】本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行う例示的な一方法を示すフローチャートを示す。
【図３】本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための更に別の例示的な方法を示す付加的なフローチャートを示す。
【図４】本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための更に別の例示的な方法を示す付加的なフローチャートを示す。
【図５】本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための更に別の例示的な方法を示す付加的なフローチャートを示す。
【発明を実施するための形態】
【００２２】
本発明による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行う方法、装置、及び製品を、図１から始まる添付の図面を参照して説明する。図１は、本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための自動計算機、例示的な自動装置の機能のブロック図を示す。図１の例示的な装置は２つのデータ通信ネットワーク（１００、１０２）を含み、その各々は、データ通信の送信元と宛先を表す他のコンピュータ装置を接続するデータ通信ルータ又はスイッチ（図示せず）で構成される。ネットワーク（１００）は有線接続（２１６）を通じてデスクトップ・コンピュータ（２０２）を接続し、無線接続（２１４）を通じてラップトップ・コンピュータ（２０４）を接続する。ネットワーク（１０２）は有線接続（２１２）を通じてサーバ（２０６）を接続し、無線接続（２１０）を通じて携帯電話（２０８）を接続する。本例において接続される送信元及び宛先のデバイスの数並びに種類は、説明を容易にするためにのみ選択されている。実際には、本発明の実施形態によるパケット・ステアリングの目的には、非常に多数のデバイス、及び多数の異なる種類のデバイスを任意のネットワークに接続することができることを読者は認識するであろう。
【００２３】
図１の例示的な装置は、バンプ・イン・ザ・ワイヤ型アプリケーションの間で実際のパケット・ステアリングを実行するリンク・レベルのデータ通信スイッチ（１５０）を含む。スイッチ（１５０）は、時にはブリッジ、ｎポート・ブリッジ、レイヤ２スイッチ、スマート・スイッチ、又は単に「スイッチ」と呼ばれる種類のデバイスである。本発明の範囲内においては、バンプ・イン・ザ・ワイヤ型アプリケーションの数をサポートするのに十分な数のポートを有し、それを通してパケットがステアリングされる、特に通常のイーサネット・スイッチを含む任意のリンク・レベルのスイッチを、本発明の実施形態によるパケット・ステアリングを行うように改善することができる。しかし、多くの実施形態においては、本発明の実施形態によるパケット・ステアリングのための改善されたスイッチは、ファブリック・タイプのスイッチ、ファイバ・チャネル・スイッチ、インフィニバンド（Infiniband）スイッチ、イーサネット・ファブリック・スイッチなどとなる。
【００２４】
「リンク・レベル」及び「レイヤ２」という用語は両方とも、開放型システム間相互接続参照モデル（Open Systems Interconnection Reference Model）（「ＯＳＩモデル」）のデータ・リンク層を指す。本明細書において、データリンク層はしばしば「リンク層」又は「リンク・レベル」と呼ばれる。また本議論に関して、ＯＳＩモデルの第１層は物理層、第３層はネットワーク層、第４層はトランスポート層である。ＯＳＩモデルの物理層は、データ通信デバイス、典型的には実際にローカル・エリア・ネットワーク即ち「ＬＡＮ」に接続されるデバイスに関する電気的及び物理的仕様を定める。ＯＳＩモデルのレイヤ３即ちネットワーク層は、送信元からの種々の長さのデータ・シーケンスを宛先に１つ又は複数のネットワークを経由して転送するための機能的及び手続的手段を与え、一般にはルーティング機能を含む。ネットワーク層は、データ通信プロトコルに従って互いに通信するルータを用いて実装される。周知のインターネット・プロトコル（Internet Protocol、「ＩＰ」）は、一般にＯＳＩネットワーク層のデータ通信プロトコルとして動作する。実際には、ＩＰは決して唯一のネットワーク層プロトコルではないが、現時点では非常に行き渡っているため、ＩＰはネットワーク層機能と殆ど同義語となっている。他のレイヤ３プロトコルの例には、ＩＣＭＰ、ＩＧＭＰ、及びＩＰｓｅｃが含まれる。トランスポート層は、他の層への信頼できるデータ転送サービスを与える。トランスポート層は所与のリンクの信頼性を、フロー制御、並びにパケットのセグメント化及び非セグメント化によって制御する。トランスポート層プロトコルは典型的にはコネクション型である。格段に最も一般的なトランスポート層プロトコルの例は、通信制御プロトコル（Transmission Control Protocol、「ＴＣＰ」）及びユーザ・データグラム・プトロコル（User Datagram Protocol、「ＵＤＰ」）である。他のレイヤ４プロトコルの例には、ＤＣＣＰ、ＳＣＴＰ、ＲＳＶＰ、及びＥＣＮが含まれる。
【００２５】
ＯＳＩモデルのデータリンク層は、リンク層データ通信プロトコルに従って互いに通信するスイッチを用いて実装される。ネットワーク層のＩＰと同様に、イーサネット・プロトコルは唯一のリンク・レベル・プロトコルではないが、非常に行き渡っているため、リンク層と殆ど同義となっている。他のリンク・レベル・プロトコルの例には、ＡＲＰ、ＲＡＲＰ、ＮＤＰ、ＯＳＰＦ、及びＬ２ＴＰが含まれる。リンク・レベルのスイッチは、典型的にはＬＡＮ上で、「ポート」と呼ばれる接続を通じて他のデバイスに接続する。ポートは無線接続として、及び有線接続として実装することができる。各々の有線ポートは、スイッチから他のデバイス、例えばＬＡＮ上のコンピュータ、他のスイッチ、ルータなどを含む他のデバイスへ接続するのに必要なコネクタ、配線、導電体及び光導電体などから構成される。無線ポートは、スイッチと他のデバイスの間の無線通信を行うのに必要なアンテナ、増幅器、他の無線部品などを含むことができる。スイッチは、「パケット」と呼ばれるデータ単位でデータ通信を受ける。当該技術分野においてはリンク層のデータ単位を「フレーム」と呼ぶことが一般的であるが、本明細書では多少より説明的な用語である「パケット」を用いる。本明細書において、「パケット」という用語は、物理層内、ネットワーク層内、及び他の層内を移動する単位を含む、データ通信における全てのデータ単位を指す。
【００２６】
図１のスイッチ（１５０）は、少なくとも１つのデータ通信プロセッサ（１５６）と、高速メモリ・バス（１６６）及びバス・アダプタ（１５８）を通じてプロセッサ（１５６）及びスイッチ（１５０）の他の構成要素に接続されるランダム・アクセス・メモリ（１３２）（「ＲＡＭ」）とを含む。データ通信プロセッサ（１５６）はまた、拡張バス（１６０）を通じて多数のデータ通信ポート（２２２、２２４、２３４、２３６、２３８）と動作可能に結合される。データ通信プロセッサは、例えばモトローラ６８０００（登録商標）、ＩＢＭ  ＰＯＷＥＲ（登録商標）アーキテクチャ・プロセッサ、インテル・ペンティアム（登録商標）などを含む種々のコンピュータ・マイクロプロセッサ又はマイクロコントローラのうちのいずれかとして実装することができる。この実施例におけるプロセッサ（１５６）は、拡張バス（１６０）及び幾つかの通信アダプタ（１８０、１８２、１８４、１８６、１８８）を通じてポートと結合される。通信アダプタは、ポートを通じて他のスイッチ、ルータ、ネットワーク、コンピュータ、及び他のコンピュータ上で実行されるアプリケーションとのデータ通信を実施する。このような通信はネットワーク化される場合が非常に多いので通信アダプタは「ネットワーク・インターフェース・カード」又は「ＮＩＣ」と呼ばれることが多い。通信アダプタは、それを通じて１つのコンピュータ、ルータ、又はスイッチが別のコンピュータ、ルータ、又はスイッチへ直接、又はデータ通信ネットワークを介してデータ通信を送る、データ通信のハードウェア・レベルを実施する。本発明の実施形態による、プリアンブル（preamble）に関して有用な通信アダプタの例には、有線のダイアルアップ通信用のモデム、有線のデータ通信ネットワーク通信のためのイーサネット（ＩＥＥＥ８０２．３）アダプタ、及び無線データ通信ネットワーク通信のための８０２．１１アダプタが含まれる。
【００２７】
図１の実施例において、ポートのうちの第１のポート（２２２）は有線接続（２１８）を通じて第１のデータ通信ネットワーク（１００）に接続され、ポートのうちの第２のポート（２２４）は別の有線接続（２２０）を通じて第２のデータ通信ネットワーク（１０２）に接続される。３つの付加的なポート（２３４、２３６、２３８）はバンプ・イン・ザ・ワイヤ型データ処理アプリケーション（２４０）に接続される。アプリケーション（２４０）は典型的には独立したコンピュータ上で、しばしばブレード・フォームファクタにインストール及び実行され、そしてレベル２リンク（２４４、２４６、２４８）を通じてスイッチのポートに結合される。アプリケーション（２４０）はＡ１．．．Ａｎと表記されており、この実施例においては３つのポートのみが２つのアプリケーションに接続されているが、本発明の実施形態による、バンプ・イン・ザ・ワイヤ型処理のためのパケット・ステアリングを実行する装置は、実際には任意の数のバンプ・イン・ザ・ワイヤ型アプリケーションへの任意の数の接続を含むことができることを示す。各々のアプリケーション（２４０）には、この実施例においてはＩＤ１．．．ＩＤｎと名づけられている一意のリンク・レベル識別子（２４２）が付随し、ここでＩＤ１はアプリケーションＡ１のリンク・レベル識別子であり、ＩＤ２はアプリケーションＡ２のリンク・レベル識別子であり、以下、アプリケーションＡｎとそのリンク・レベル識別子ＩＤｎに至るまで同様である。リンク・レベル識別子の例には、メディア・アクセス制御（「ＭＡＣ」）アドレス、及びワールド・ワイド・ネーム（World Wide Name、「ＷＷＮ」）又はワールド・ワイド識別子（WorldWide Identifier、「ＷＷＩＤ」）が含まれる。ＭＡＣアドレスは一般にイーサネット・アドレッシングにおいて用いられ、ＷＷＮ又はＷＷＩＤは、例えばファイバ・チャネル・アドレッシングを含む他の状況において、及びシリアル接続ＳＣＳＩストレージ・ネットワークにおいて用いられる。
【００２８】
この実施例において、各々のポート（２２２、２２４、２３４、２３６、２３８）はネットワーク及びアプリケーションの間におけるデータ通信のための入口ポート又は出口ポートとして機能することができる。即ち、スイッチを通るデータ・トラフィックは一般に双方向性である。本明細書においては、ポート又はネットワークを指すのに「第１の」及び「第２の」という用語が用いられることがあるが、このような表示は単に説明の便宜上のものである。この実施例におけるデータ・トラフィックは、ネットワーク（１００）からポート（２２２）に入り、スイッチ（１５０）を通り、１つ又は複数のアプリケーション（２４０）を通って、ポート（２２４）に出てネットワーク（１０２）へ移動し、同様に、ネットワーク（１０２）からポート（２２４）に入り、スイッチ（１５０）を通り、１つ又は複数のアプリケーション（２４０）を通ってポート（２２２）に出てネットワーク（１００）へ移動する。
【００２９】
図１の実施例において、スイッチはまた、プロセッサ（１５６）に動作可能に結合されたデータ・ストレージ（１７２）を含む。データ・ストレージは内部に、スイッチのポート間におけるデータ通信のステアリングを管理する規則（２３２）を格納し、ここで規則の各々は入口ポートと出口ポートの関連付けを含む。当業者であれば気づくように、データ・ストレージ（１７２）は、例えばマイクロドライブ、又は電気的消去可能プログラム可能読み出し専用メモリ（「ＥＥＰＲＯＭ」又は「フラッシュ」）を含む多くの形態で実装することができる。あるポートが入口ポートであるか出口ポートであるかは、所与のパケットに対するそのポートの使用法によって決まる。パケットがあるポートを通ってスイッチに入る場合には、そのポートは現行規則の実行のために、パケットの入口ポートとして扱われる。パケットがあるポートを通ってスイッチを出る場合には、そのポートは現行規則の実行のために、パケットの出口ポートとして扱われる。規則は、例えばＣスタイル構造のシーケンス、リンク・リスト、少なくとも２次元のアレイなどを含む、当業者であれば気づくような様々な方法で、入口ポートと出口ポートを関連付けることができる。データ・ストレージは不揮発性であることが好ましく、システム管理者又は製造業者によって、規則と共に構成することができる。規則のためのデータ・ストレージの１つの形態は、その応答速度のために多少好ましい場合がある、コンテンツ・アドレス可能メモリ又は「ＣＡＭ」であり、その場合入口ポート番号をアドレスとして扱い、対応する出口ポート番号は入口ポート番号に基づいて参照されるメモリ・コンテンツとして扱うことによって入口ポートと出口ポートが関連付けられる。次にＣＡＭ内の規則の参照は、入口ポート番号を、随意に必要な付加的な情報と共にＣＡＭの入力に置いて出口ポート番号をＣＡＭ出力から読み出すことによって、実行される。
【００３０】
図１の例示的なスイッチ（１５０）はまた、パケット・ステアリング・モジュール（１３０）、即ち、本発明の実施形態による、データのパケット・ステアリングを実行して複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うように構成された自動計算機のモジュールを含む。パケット・ステアリング・モジュール（１３０）は、例えばランダム・アクセス・メモリ（「ＲＡＭ」）（１３２）に格納されるか、又はプログラム可能読み出し専用メモリ（「ＰＲＯＭ」）（１３１）に格納される、制御プログラムとして実装することができる。或いはパケット・ステアリング・モジュール（１３０）は、複合プログラム可能論理デバイス（「ＣＰＬＤ」）（１３３）、フィールド・プログラム可能ゲート・アレイ（「ＦＰＧＡ」）（１３４）、又は特定用途向け集積回路（「ＡＳＩＣ」）（１３５）として実装することができる。
【００３１】
この実施例におけるスイッチ（１５０）は、本発明の実施形態により、スイッチ内で入口ポート（２２２）を通じて第１のネットワーク（１００）から、第２のネットワーク（１０２）に向けられたデータ通信パケット（１３６）を受信することによって、パケット・ステアリング・モジュール（１３０）の制御の下でパケットをステアリングする。これらパケットの各々は、第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレス（２２８）と、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレス（２３０）とを含む。第１のネットワーク内のパケットの送信元は、典型的には、第１のネットワークに接続された、例えばデスクトップ・コンピュータ（２０２）又はラップトップ・コンピュータ（２０４）などの自動デバイスのうちの１つである。同様に、第２のネットワーク内のパケットの宛先は、第２のネットワークに接続された、例えばサーバ（２０６）又は携帯電話（２０８）などのデバイスのうちの１つである。ネットワーク・アドレスはＯＳＩレイヤ３アドレスであり、インターネット・プロトコルにおいては、これらは例えばＩＰアドレスとなる。従来技術において典型的であるＩＰ／イーサネット・ネットワークにおいては、例えば、ネットワーク・アドレス又はＭＡＣアドレスを用いてパケットの全てのルーティング及びステアリングが実行されることになる。しかし、この実施例においては、スイッチはパケットの各々を、アプリケーション（２４０）の間で及び出口ポート（２２４）を通じて第２のネットワーク（１０２）へステアリングし、その際、ステアリングは、パケットの送信元ネットワーク・アドレス（２２８）も、パケットの宛先ネットワーク・アドレス（２３０）も、いずれのアプリケーションのリンク・レベル識別子（２４２）も用いずに、規則（２３２）のみに従って実行される。
【００３２】
従って、バンプ・イン・ザ・ワイヤ型のアプリケーションの間におけるステアリングは、パケットを如何なる仕方でも修正する必要なしに、特に、如何なるパケットの如何なるアドレス情報も修正する必要なしに実行される。
【００３３】
更に別の説明のために、図２は、本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための例示的な一方法を示すフローチャートを示す。図２の方法は、図１を参照して上記で説明したスイッチと同様のリンク・レベルのデータ通信スイッチ（１５０）内で実行される。スイッチ（１５０）は多数のデータ通信ポート（２２２、２２４、２３４、２３６、２３８）を含み、１つのポート（２２２）は第１のデータ通信ネットワーク（１００）に接続され、別のポート（２２４）は第２のデータ通信ネットワーク（１０２）に接続され、また、多数の付加的なポート（２３４、２３６、２３８）がバンプ・イン・ザ・ワイヤ型データ処理アプリケーション（２４０）に接続される。ポートの各々はネットワーク及びアプリケーションの間におけるデータ通信のための入口ポート又は出口ポートとして機能することができ、アプリケーションの各々には、ＭＡＣアドレス、ＷＷＩＤ又はＷＷＮのような一意のリンク・レベル識別子（２４２）が付随する。スイッチの内部には、スイッチのポート間におけるデータ通信のステアリングを管理する規則（２３２）が格納されており、規則の各々は入口ポートと出口ポートの少なくとも１つの関連付けから成る。
【００３４】
図２の方法は、スイッチ（１５０）内で、入口ポート（２２２）を通じて第１のネットワーク（１００）から第２のネットワーク（１０２）に向けられたデータ通信パケット（２２６）を受信すること（３０２）を含む。パケットの各々は、第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレス（２２８）と、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレス（２３０）とを含む。図２の方法はまた、パケットの各々を、アプリケーション（２４０）間で及び出口ポート（２２４）を通じて第２のネットワークへステアリングすること（３０４）を含み、このステアリングは、パケットの送信元ネットワーク・アドレス（２２８）も、パケットの宛先ネットワーク・アドレス（２３０）も、いずれのアプリケーションのリンク・レベル識別子（２４２）も用いずに、規則（２３２）のみに従って実行される。更にまた図２の方法において、パケットの各々をアプリケーションの間でステアリングすること（３０４）は、規則による所定の順序で、パケットをアプリケーション間でイン・ラインでステアリングすること（３０５）を含み、この場合、アプリケーションの各々は、パケットの各々に関連するデータ処理を実行し、次いで、パケットの各々をスイッチに戻す。次にスイッチは、規則に従い、パケットを次のアプリケーションにイン・ラインでステアリングする。
【００３５】
入口ポートと出口ポートの関連付けから成る規則は、例えば、下記の例示的な表１に示すように、表中の記録として実装することができる。
【表１】
0005520364.tif 000002
表１における記録の各々は、入口ポートと出口ポートを関連付けるパケット・ステアリング規則を表す。表１の規則は第１のネットワーク（１００）からアプリケーションＡ１及びＡｎを通り、出口ポートを通って第２のネットワーク（１０２）に至るパケットのステアリングを管理する。第１の規則によるパケット・ステアリングは、ネットワーク（１００）からポート（２２２）を通ってスイッチに入ったパケットを、アプリケーションＡ１による処理のためにポート（２３４）を通って出るようにステアリングする。アプリケーションＡ１における処理を完了した同パケットはポート（２３４）を通ってスイッチに入り、スイッチは第２の規則に従って、アプリケーションＡｎによる処理のために、ポート（２３６）を通って出るように、そのパケットを方向付ける。次にパケットはポート（２３８）を通じて入り、パケットは、今度は第３の規則に従って、ポート（２２４）を通って第２のネットワーク（１０２）に出るようにステアリングされる。全てのポートは技術的には双方向に動作することができるが、表１の規則により、ポート２３６はアプリケーションＡｎへの出口としてのみ用いられ、ポート（２３８）はアプリケーションＡｎからの入口としてのみ用いられる。
【００３６】
更に別の説明のために、図３は、本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための更に別の例示的な一方法を示すフローチャートを示す。図３の方法は、図２の方法と同様に、図１を参照して上記で説明したスイッチと同様のリンク・レベルのデータ通信スイッチ（１５０）内で実行される。スイッチ（１５０）は多数のデータ通信ポート（２２２、２２４、２３４、２３６、２３８）を含み、スイッチはそれらを通して２つのネットワーク（１００、１０２）及び幾つかのバンプ・イン・ザ・ワイヤ型データ処理アプリケーション（２４０）に接続され、アプリケーションの各々には一意のリンク・レベル識別子（２４２）が付随する。スイッチは、スイッチのポート間におけるデータ通信のステアリングを管理する規則（２３２）を含む。
【００３７】
図２の方法と同様に、図３の方法は、スイッチ（１５０）内で、入口ポート（２２２）を通じて第１のネットワーク（１００）から、第２のネットワーク（１０２）に向けられたデータ通信パケット（２２６）を受信すること（３０２）を含む。パケットの各々は、第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレス（２２８）と、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレス（２３０）とを含む。図３の方法はまた、パケットの各々を、アプリケーション（２４０）の間で及び出口ポート（２２４）を通じて第２のネットワークへステアリングすること（３０４）を含み、ステアリングは、パケットの送信元ネットワーク・アドレス（２２８）も、パケットの宛先ネットワーク・アドレス（２３０）も、いずれのアプリケーションのリンク・レベル識別子（２４２）も用いずに、規則（２３２）のみに従って実行される。
【００３８】
さらに図２の方法と同様に、図３の方法においては、パケットの各々をアプリケーションの間でステアリングすること（３０４）は、規則による所定の順序で、パケットをアプリケーションの間でイン・ラインでステアリングすること（３０５）を含む。しかし図２の方法とは異なり、図３の方法においては、パケットの各々をアプリケーションの間でステアリングすること（３０４）は、少なくとも１つのパケット（２２７）を複製し（３０６）、複製パケットを、他のアプリケーション（２４０）とはライン外のアプリケーション（２４１）にステアリングし、複製パケット（２２７）をライン外アプリケーション（ここではアプリケーションＡｏとして表す）によって処理し、複製パケットを処理した後で、複製パケットをライン外アプリケーションによって破棄することを更に含む。実際には、複製パケットはデータ通信ストリームの一種のフォーク又はミラーを表す。このような複製、フォーク、又はミラーを管理する規則は、例示的な表２に示す。
【表２】
0005520364.tif 000003
表２における記録の各々は、入口ポートと出口ポートを関連付けるパケット・ステアリング規則を表す。更に、表２の記録の各々は、「複製」と表記された列内に、パケットを複製するかどうかのブール表示を含む。パケットが複製される場合には、パケット・ステアリング・モジュール（図１の１３０）によって操作されるスイッチは、複製パケットのステアリングを管理する同じ入口ポートに関する付加的な規則を探す。表２の規則は、第１のネットワーク（１００）からアプリケーションＡ１及びＡｎを通り、出口ポートを通って第２のネットワーク（１０２）に至るパケットのステアリング及び、外のアプリケーションＡｏへステアリングされるパケットの複製を管理する。第１の規則によるパケット・ステアリングは、ネットワーク（１００）からポート（２２２）を通ってスイッチに入ったパケットを、アプリケーションＡ１による処理のためにポート（２３４）を通って出るようにステアリングする。アプリケーションＡ１における処理を完了した同パケットはポート２３４を通ってスイッチに入り、スイッチはこのパケットを第２の規則に従って、アプリケーションＡｎによる処理のために、ポート（２３６）を通って出るように方向付ける。次にパケットはポート（２３６）を逆向きに入るが、ポート２３６を通じた進入を管理する第３の規則はブール表示「はい」によってパケットを複製することを指示するので、スイッチはここでパケットを複製し、元のパケットは第３の規則に従ってポート２２４を通じて第２のネットワーク（１０２）に出るようにステアリングする。次いで、スイッチ（１５０）はポート２３６に関する別の進入規則を探し、この第４の規則を複製パケット（２２７）のステアリングを管理する規則とするが、これは、この場合には複製パケットをポート（２３８）を通じてライン外アプリケーションＡｏへステアリングする。ライン外アプリケーションＡｏはパケットを処理して破棄する。それ故に、表には、複製パケットの更なるステアリングを管理する規則は存在しない。
【００３９】
更に別の説明のために、図４は、本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための更に別の例示的な一方法を示すフローチャートを示す。図４の方法は、図２の方法と同様に、図１を参照して上記で説明したスイッチと同様のリンク・レベルのデータ通信スイッチ（１５０）内で実行される。スイッチ（１５０）は多数のデータ通信ポート（２２２、２２４、２３４、２３６、２３８）を含み、スイッチはそれらを通して２つのネットワーク（１００、１０２）及び幾つかのバンプ・イン・ザ・ワイヤ型データ処理アプリケーション（２４０）に接続され、アプリケーションの各々には一意のリンク・レベル識別子（２４２）が付随する。スイッチは、スイッチのポート間におけるデータ通信のステアリングを管理する規則（２３２）を含む。
【００４０】
図２の方法と同様に、図４の方法は、スイッチ（１５０）内で、入口ポート（２２２）を通じて第１のネットワーク（１００）から、第２のネットワーク（１０２）に向けられたデータ通信パケット（２２６）を受信すること（３０２）を含む。パケットの各々は、第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレス（２２８）と、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレス（２３０）とを含む。図４の方法は、更に図２の方法と同様に、パケットの各々を、アプリケーション（２４０）の間で及び出口ポート（２２４）を通じて第２のネットワークへステアリングすること（３０４）を含み、このステアリングは、パケットの送信元ネットワーク・アドレス（２２８）も、パケットの宛先ネットワーク・アドレス（２３０）も、いずれのアプリケーションのリンク・レベル識別子（２４２）も用いずに、規則（２３２）のみに従って実行される。
【００４１】
しかし図２の方法とは異なり、図４の方法においては、ポートの少なくとも１つのグループが出口グループ（２５０）として指定される。この実施例においては、Ｐ１、Ｐ２、及びＰ３と名づけられたポートが出口グループとして指定され、出口グループ内のポートの各々は同じアプリケーションの別々のインスタンスに接続される。この実施例においては、バンプ・イン・ザ・ワイヤ型アプリケーションＡ１は３回インスタンス化され、ポートＰ１、Ｐ２、及びＰ３はそれぞれレベル２リンク（２４３）を通じてアプリケーションＡ１の別々のインスタンスに接続される。ポートのグループは、表３に示すように、出口グループとして指定することができる。
【表３】
0005520364.tif 000004
表３における記録の各々は、特定のポートを参照番号（２５０）によって識別される出口グループのメンバとして指定する。説明を容易にするために、ここでは３つのポートのみを含む１つの出口グループのみを示すが、実際の出口グループは様々な数で指定することができ、様々な数のポートを含むことができることを読者は認識するであろう。
【００４２】
図４の実施例においては、規則（２３２）のうちの少なくとも１つが、特定の入口ポートを出口グループ（２５０）に関連付ける。入口ポートを出口グループに関連付けることは、例えば、表４に示すように実施することができる。
【表４】
0005520364.tif 000005
表４における記録の各々は、入口ポートを出口ポート又は出口グループに関連付けるパケット・ステアリング規則を表す。表４の規則は第１のネットワーク（１００）からアプリケーションＡ１及びＡｎを通り、出口ポートを通って第２のネットワーク（１０２）に至るパケットのステアリングを管理する。第１の規則によるパケット・ステアリングは、ネットワーク（１００）からスイッチに入ったパケットを、アプリケーションＡ１のインスタンスのうちの１つによる処理のために出口グループ（２５０）内のポートのうちの１つを通って出るようにステアリングする。同じパケットは、アプリケーションＡ１のインスタンスの１つにおける処理を完了して、ポート（２３４）を通じてスイッチに入り、スイッチはこのパケットを第２の規則に従って、アプリケーションＡｎによる処理のために、ポート（２３６）を通じて出るように方向付ける。パケットは次にポート（２３８）を通じて入り、パケットは、今度は第３の規則に従って、ポート（２２４）を通じて出て第２のネットワーク（１０２）へステアリングされる。
【００４３】
図４の方法において、アプリケーションの間でパケットをステアリングすること（３０４）はまた、特定の入口ポート（２２２）からのパケットを出口グループ（２５０）へステアリングすること（３０８）を含み、これには、出口グループ内のポートの中から、特定の入口ポートからのパケットの各々をそれを通してステアリングするためのポートを選択することと、出口グループ内のポートの中からのポート選択の負荷分散を行うことと、が含まれる。スイッチ、又はスイッチのパケット・ステアリング・モジュール（図１の１３０）が入口ポート（２２２）に関する規則を参照するとき、参照は出口グループ（２５０）の識別子を戻すので、スイッチはポートを選択する必要があることを知る。スイッチは、次いで、出口グループ内のポートを選択し、その選択を、例えば、ポートＰ１、Ｐ２、及びＰ３の間における逐次的なラウンド・ロビン式選択プロセス、即ち、グループ内で最近に選択されたポートを追跡し、ポート（２２２）を通って到着する次のパケットに対してグループ内の次のポートを常に選択することによって、負荷分散することができる。
【００４４】
更に別の説明のために、図５は、本発明の実施形態による、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための更に別の例示的な一方法を示すフローチャートを示す。図５の方法は、図２の方法と同様に、図１を参照して上記で説明したスイッチと同様のリンク・レベルのデータ通信スイッチ（１５０）内で実行される。スイッチ（１５０）は多数のデータ通信ポート（２２２、２２４、２３４、２３６、２３８）を含み、スイッチはそれらを通して２つのネットワーク（１００、１０２）及び幾つかのバンプ・イン・ザ・ワイヤ型データ処理アプリケーション（２４０）に接続され、アプリケーションの各々には一意のリンク・レベル識別子（２４２）が付随する。スイッチは、スイッチのポート間におけるデータ通信のステアリングを管理する規則（２３２）を含む。
【００４５】
図２の方法と同様に、図５の方法は、スイッチ（１５０）内で、入口ポート（２２２）を通じて第１のネットワーク（１００）から、第２のネットワーク（１０２）に向けられたデータ通信パケット（２２６）を受信すること（３０２）を含む。パケットの各々は、第１のネットワーク内のパケットの送信元を識別する送信元ネットワーク・アドレス（２２８）と、第２のネットワーク内のパケットの宛先を識別する宛先ネットワーク・アドレス（２３０）とを含む。図５の方法は、更に図２の方法と同様に、パケットの各々をアプリケーション（２４０）の間で及び出口ポート（２２４）を通じて第２のネットワークへステアリングすること（３０４）を含み、ステアリングは、パケットの送信元ネットワーク・アドレス（２２８）も、パケットの宛先ネットワーク・アドレス（２３０）も、いずれのアプリケーションのリンク・レベル識別子（２４２）も用いずに、規則（２３２）のみに従って実行される。
【００４６】
図５の方法においては、ポートの２つのグループが出口グループ（２５０、２５１）として指定される。出口グループ（２５０）内のポートの各々、即ちポートＰ１、Ｐ２、及びＰ３は、同じアプリケーション、この場合はバンプ・イン・ザ・ワイヤ型アプリケーションＡ１の別々のインスタンスに接続され、ここでアプリケーションＡ１は３回インスタンス化され、ポートＰ１、Ｐ２、及びＰ３の各々はレベル２リンク（２４３）を通じて、アプリケーションＡ１の別々のインスタンスに接続される。出口グループ（２５１）内のポートの各々、即ちポートＰ４、Ｐ５、及びＰ６は同様に、アプリケーションＡ１の別々のインスタンスに接続される。ポートのグループは、上記の表３を参照して示し説明したように、出口グループとして指定することができる。図５の実施例においては、下記の表５の中の規則が入口ポートを出口グループの各々に関連付ける。
【００４７】
図５の実施例におけるパケットの各々は、送信元ネットワーク・アドレス（２２８）及び宛先ネットワーク・アドレス（２３０）に加えて、第１のネットワーク内のパケットの送信元アドレスに位置するアプリケーションの送信元アプリケーション識別子（２５２）と、第２のネットワーク内のパケットの宛先アドレスに位置するアプリケーションの宛先アプリケーション識別子（２５４）と、パケットのプロトコル識別子（２５６）とを更に含む。プロトコル識別子（２５６）は実際にパケットを用いるプロトコル、即ち、そのペイロードがレベル３パケット内にカプセル化され、これが次にレベル２パケット内にカプセル化されてスイッチに到達するＯＳＩレベル４プロトコルを識別する。インターネット設定において、プロトコル識別子の最も一般的なコンテンツは、通信制御プロトコル（「ＴＣＰ」）及びユーザ・データグラム・プロトコル（「ＵＤＰ」）の識別子である。送信元アプリケーション識別子（２５２）及び宛先アプリケーション識別子（２５４）は、通信のエンドポイントにおけるデータ構造体の符号化された識別子である。実際に、これらはエンドポイントにおけるコンピュータに対して、コンピュータ内のどのプログラムがパケットを送信したのか、及びどのプログラムにパケットが配信されるのかを識別する。インターネットの状況において、特にＴＣＰ及びＵＤＰに関しては、このようなエンドポイントは「ポート」と呼ばれ、識別子は「ポート番号」として知られる。インターネットの状況における周知のポート番号の例には、ファイル転送プロトコルのポート番号２０、テルネットのポート番号２３、シンプル・メール転送プロトコルにおける電子メールのポート番号２５、ポスト・オフィス・プロトコルにおける電子メールのポート番号１１０、ハイパーテキスト転送プロトコルにおけるウェブ・ページのポート番号８０などが挙げられる。この状況における「ポート」という用語はスイッチ上のハードウェアのポートと混同される危険性があり得る。従って、本明細書においては一般に、このような通信エンドポイント識別子を「ポート」ではなく、送信元又は宛先のアプリケーション識別子と呼ぶ。
【００４８】
図５の方法は、第１のネットワーク中のコンピュータ上で実行されるデータ通信プログラム（２０５）と第２のネットワーク中のコンピュータ上で実行されるデータ通信プログラム（２０７）との間の、スイッチを通して流れる双方向のパケット・ストリームとして、フローを定めること（３０１）を含む。第１のネットワーク内のプログラム（２０５）は、例えば、サーバ（２０６）上で動作するウェブ・サーバで代表される第２のネットワーク内のプログラム（２０７）にＨＴＴＰ要求を送信するウェブ・ブラウザとすることができ、この場合、第２のネットワーク内のプログラム（２０７）は、次いで第１のネットワーク内のプログラム（２０５）に、ウェブ・ページを構成するＨＴＴＰ応答を形成するパケット・ストリームを返す。同様の双方向ストリームは、第１のネットワーク内の電子メール・クライアントが第２のネットワーク内の電子メール・サーバに対して電子メールを要求することなどによっても実現される。
【００４９】
第１のネットワーク中のコンピュータ上で実行されるデータ通信プログラム（２０５）と第２のネットワーク中のコンピュータ上で実行されるデータ通信プログラム（２０７）との間の、スイッチを通して流れる双方向のパケット・ストリームとして、フローを定めること（３０１）は、パケット内の情報を何ら修正する必要なしに用いることによって実行することができる。フローを定めること（３０１）は、例えば、各パケットの送信元ネットワーク・アドレス（２２８）及び宛先ネットワーク・アドレス（２３０）を、送信元アプリケーション識別子（２５２）、宛先アプリケーション識別子（２５４）、並びにプロトコル識別子（２５６）と組み合わせて用い、各パケットに対してこれらの値を対称ハッシュ化し、コンテンツが同じハッシュ値を生じるパケットはどれも同じフロー中のパケットとして指定することによって実行することができる。ハッシュが対称的であると言うのは、それにより、同じ２つのエンドポイント間を移動するいずれのパケットのコンテンツも、パケットが移動する方向に関わりなく、同じハッシュ値を生じるためである。双方向の移動においては、送信元アプリケーション識別子（２５２）、宛先アプリケーション識別子（２５４）、及びプロトコル（２５６）に対してパケット・コンテンツは同じままであるが、エンドポイントのアドレスは同じ２つのプログラム（２０５、２０７）の間のフロー中で変わらないにも拘わらず、パケット内の送信元ネットワーク・アドレス（２２８）及び宛先ネットワーク・アドレス（２３０）内の値は２つの移動方向で逆になる。対称ハッシュは、本明細書で用いる用語としては、入力を受け取った順序に関わりなく同じハッシュ値を生じる関数である。一例として、第１のネットワーク（１００）からスイッチ（「１５０」）を通して第２のネットワーク（１０２）へ移動するパケットは以下の値を含むと考える。
送信元ネットワーク・アドレス：１．２．３．４
宛先ネットワーク・アドレス：５．６．７．８
送信元アプリケーション識別子：８０
宛先アプリケーション識別子：８０
プロトコル：０６
そして、同じフロー中で第２のネットワークから第１のネットワークへ移動する別のパケットは以下の値を含む。
送信元ネットワーク・アドレス：５．６．７．８
宛先ネットワーク・アドレス：１．２．３．４
送信元アプリケーション識別子：８０
宛先アプリケーション識別子：８０
プロトコル：０６
対称ハッシュを用いると、どちらの値の組も同じハッシュ値を生じ、これら両方のパケットが同じフローの一部分であること、従ってアプリケーションを通じて同じ方法でステアリングされることを示す。
【００５０】
図５の方法においては、アプリケーションの間でパケットをステアリングすること（３０４）は、フロー中のパケットを、どのネットワークがパケットを発したかに関わりなく、同じアプリケーションの同じインスタンスへステアリングすること（３１０）を含む。このようなパケット・ステアリングは、例えば表５に示すように実施することができる。
【表５】
0005520364.tif 000006
表５における記録の各々は、特定の出口ポートが出口グループのメンバであるときにも、入口ポートをその特定の出口ポートに関連付ける、フローに対するパケット・ステアリング規則を表す。フローは、同じ２つのプログラム（２０５、２０７）の間を移動するパケットの選択されたコンテンツに対して、同じハッシュ値「４３７」によって指定される。表５の規則は第１のネットワーク（１００）からアプリケーションＡ１及びＡｎを通り、出口ポート（２２４）を通って第２のネットワーク（１０２）に至るパケットのステアリングを管理し、また、パケットを逆の方向に、第２のネットワーク（１０２）からアプリケーションＡｎ及びＡ１を通り、出口ポート（２２２）を通って出るようにステアリングする。
【００５１】
表５の最初の３つの規則は、ネットワーク（１００）からネットワーク（１０２）の方向に移動するパケットのステアリングを管理する。パケットがポート（２２２）を通ってスイッチ内に入ると、ネットワーク（１００）が発信元ネットワークとされて、このパケットの移動方向がネットワーク（１００）からネットワーク（１０２）への方向であることを示す。ポート（２２２）を通じた進入に対する規則は、そのパケットがアプリケーションＡ１の幾つかのインスタンスと接続する出口グループ（２５０）を通じて出ることの表示を含む。しかし、パケットはフローの一部分であるので、ポート（２２２）を通じた進入に対する規則はまた、どのネットワークがパッケットを発したかに関わりなく、即ち、いずれの特定のパケットの移動方向にも関わりなく、このフロー中の全てのパケットがアプリケーションＡ１の同じインスタンスにステアリングされるようにポートＰ１の具体的な指定を含む。パケットを処理した後で、アプリケーションＡ１のインスタンスはポートＰ４を通してパケットをスイッチに戻し、スイッチは表５の第２の規則に従ってパケットをステアリングし、アプリケーションＡｎによる処理のためにポート（２３６）を通して出るようにする。アプリケーションＡｎによる処理の後で、パケットはポート（２３８）を通って再びスイッチに到達し、スイッチは表５の第３の規則に従い、ポート（２２４）を通じて第２のネットワーク（１０２）に向けて出るようにパケットをステアリングする。
【００５２】
表５の最後の３つの規則は、ネットワーク（１０２）からネットワーク（１００）の方向に移動するパケットのステアリングを管理する。パケットがポート（２２４）を通ってスイッチに入ると、ネットワーク（１０２）が発信元ネットワークとされて、このパケットの移動方向がネットワーク（１０２）からネットワーク（１００）への方向であることが示され、スイッチは表５の第４の規則に従ってパケットをステアリングし、アプリケーションＡｎによる処理のためにポート（２３８）を通して出るようにする。アプリケーションＡｎによる処理の後で、パケットはポート（２３６）を通って再びスイッチに到達し、スイッチは表５の第５の規則に従ってパケットをステアリングし、ポートＰ４を通って出て第２のネットワーク（１０２）に向かうようにする。ポート（２３６）を通じた進入に対する規則は、そのパケットの出口がアプリケーションＡ１の幾つかのインスタンスに接続する出口グループ（２５１）を通してであることの表示を含む。しかし、パケットはフローの一部分であるので、ポート（２３６）を通じた進入に対する規則はまた、どのネットワークがパケットを発したかに関わりなく、即ち、いずれの特定のパケットの移動方向にも関わりなく、このフロー、即ちフロー４３７中の全てのパケットがアプリケーションＡ１の同じインスタンスにステアリングされるようにポートＰ４の具体的な指示を含む。パケットを処理した後で、アプリケーションＡ１のインスタンスはポートＰ１を通してパケットをスイッチに戻し、スイッチは表５の最後の規則に従ってパケットをステアリングし、ポート（２２２）を通じてネットワーク（１００）の方向に出るようにする。
【００５３】
フロー中の全てのパケットをバンプ・イン・ザ・ワイヤ型アプリケーションの同じインスタンスへステアリングすることは、アプリケーションが状態情報をフロー上で完全な形で保持することを可能にする。これは、例えばスイッチがフローをラウンド・ロビン式で負荷分散し、パケットを、出口グループを通して接続されるアプリケーションの全てのインスタンスに渡って分散させた場合には、失われる特徴である。この場合、アプリケーションのどの単一のインスタンスも、フロー全体を特徴付ける情報を保持することができない。読者はまた、異なる方向に移動するパケットが異なるポートＰ１及びＰ４を通して、アプリケーションＡ１のインスタンスを行き来するが、それにも拘らず、フロー中の全てのパケットがアプリケーションＡ１の同じインスタンス（２４７）によって処理されることを認識するであろう。一方向に移動するパケットはポートＰ１を通って到達し、他方向に移動するパケットはポートＰ４を通って到達するという事実は、アプリケーションＡ１がパケットを処理する際に必要に応じて発信元ネットワークの識別情報を追跡し使用することを可能にする。移動の方向に関する同じ情報は、一方向に移動するパケットはポート（２３６）のみを通ってアプリケーションＡｎに到達し、他方向に移動するパケットはポート（２３８）のみを通ってアプリケーションＡｎに到達するので、アプリケーションＡｎにとっても利用可能となる。
【００５４】
最後に、表５には、発信元ネットワークに関する列を単に説明の都合だけで示していることを読者は認識するであろう。図５の方法を実行するに当たって、スイッチ（１５０）、又はスイッチを制御するパケット・ステアリング・モジュール（図１の１３０）は、フローに関するパケット・ステアリング、従って出口ポートを管理する規則を、パケットがそれを通ってスイッチに到達する入口ポートの識別情報とフローの識別情報との組み合わせのみに基づいて選択することができる。
【００５５】
本発明の例示的な実施形態は、主として、データ通信パケットをステアリングして複数のデータ処理アプリケーションの間で透過的なバンプ・イン・ザ・ワイヤ型処理を行うための完全に機能的なコンピュータ・システムとの関連で説明した。しかしながら、当業者であれば、本発明はまた、いずれかの適切なデータ処理システムと共に用いるための信号支持媒体上に配置されたコンピュータ・プログラムとして具体化することができることを認識するであろう。このような信号支持媒体は、伝送媒体、又は、磁気媒体、光媒体、若しくは他の適切な媒体を含む機械可読情報のための書き込み可能媒体とすることができる。書き込み可能媒体の例としては、ハード・ドライブ中の磁気ディスク又はディスケット、光ドライブ用のコンパクト・ディスク、磁気テープ、及び、当業者であれば思いつく他の媒体が挙げられる。伝送媒体の例としては、音声通信用の電話網と、例えばインターネット・プロトコル及びワールド・ワイド・ウェブによって通信するイーサネット及びネットワークのようなデジタル・データ通信ネットワークと、例えばＩＥＥＥ８０２．１１仕様群に従って実装されるネットワークのような無線伝送媒体とが挙げられる。当業者であれば、適切なプログラミング手段を有する任意のコンピュータ・システムにより、プログラム内に具体化された本発明の方法のステップを実行できることを直ちに認識するであろう。当業者であれば、本明細書において説明した例示的な実施形態の幾つかはコンピュータ・ハードウェア上にインストールされ実行されるソフトウェアに適応させたものであるが、それでもなおファームウェアとして又はハードウェアとして実施される代替的な実施形態も十分に本発明の範囲に入ることを直ちに認識するであろう。
【符号の説明】
【００５６】
１００：データ通信ネットワーク（第１のネットワーク）
１０２：データ通信ネットワーク（第２のネットワーク）
１３０：パケット・ステアリング・モジュール
１３１：プログラム可能読み出し専用メモリ（ＰＲＯＭ）
１３２：ランダム・アクセス・メモリ（ＲＡＭ）
１３３：複合プログラム可能論理デバイス（ＣＰＬＤ）
１３４：フィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ）
１３５：特定用途向け集積回路（ＡＳＩＣ）
１３６：データ通信パケット
１５０：リンク・レベルのデータ通信スイッチ
１５６：データ通信プロセッサ
１５８：バス・アダプタ
１６０：拡張バス
１６６：高速メモリ・バス
１７２：データ・ストレージ
１８０、１８２、１８４、１８６、１８８：通信アダプタ
２０２：デスクトップ・コンピュータ
２０４：ラップトップ・コンピュータ
２０５、２０７：データ通信プログラム（プログラム）
２０６：サーバ
２０８：携帯電話
２１０、２１４：無線接続
２１２、２１６、２１８、２２０：有線接続
２２２：データ通信ポート（入口ポート）
２２４：データ通信ポート（出口ポート）
２２６：データ通信パケット
２２７：複製パケット
２２８：送信元ネットワーク・アドレス
２３０：宛先ネットワーク・アドレス
２３２：規則
２３４、２３６、２３８：データ通信ポート（付加的なポート）
２４０：バンプ・イン・ザ・ワイヤ型データ処理アプリケーション
２４１：ライン外のアプリケーション
２４２：リンク・レベル識別子
２４３、２４４、２４６、２４８：レベル２リンク
２４７：インスタンス
２５０、２５１：出口グループ
２５２：送信元アプリケーション識別子
２５４：宛先アプリケーション識別子
２５６：プロトコル識別子
【図１】
0005520364.tif 000007
【図２】
0005520364.tif 000008
【図３】
0005520364.tif 000009
【図４】
0005520364.tif 000010
【図５】
0005520364.tif 000011