(57)【特許請求の範囲】
【請求項１】
ネットワークルータブルデータ上で多重処理を実行するためにネットワークで使用されるネットワークノード構造であって、
多数の処理モジュールと、処理モジュールにデータを選択的に向かわせて多数の処理を順次実行するコントローラとからなるものにおいて、この構造が、モジュールによってデータ上で実行される利用者選択処理に対応するルータブルデータ内の処理コードデータ（Ｐ）を検出し、この検出された処理コードデータ（Ｐ）に基づいて利用者選択処理が処理モジュールによって実行される順番を決定する順序データ（Ｏ）を提供するように動作可能であることを特徴とするネットワークノード構造。
【請求項２】
順序データ（Ｏ）を含むオーダリングデータベース（Ｂ）と、ルータブルデータ内の処理コードデータ（Ｐ）に基づいてデータベースから順序データを決定する順序決定構造とを含み、処理されるデータを順序データに基づいて処理モジュールに向かわせるようにコントローラが動作可能である、請求項１記載のネットワークノード構造。
【請求項３】
利用者によって選択された個々の処理に対応する処理コードデータ（Ｐ）を提供する処理分類データベース（Ａ）を含む、請求項２記載のネットワークノード構造。
【請求項４】
ネットワークの送信側で使用されるノードとして構成され、実行されるべき処理を選択するために送信側利用者端末に関連した、請求項３記載のネットワークノード構造。
【請求項５】
オーダリングデータベース（Ｂ）がノード内部にある、請求項３記載のネットワークノード構造。
【請求項６】
処理分類データベース（Ａ）が端末内部にある、請求項３記載のネットワークノード構造。
【請求項７】
データベース（Ｂ）が利用者端末内部にある、請求項３記載のネットワークノード構造。
【請求項８】
ノードが、多重処理されることになるルータブルデータを多重処理を必要としないルータブルデータと共に受信するように構成され、かつルータブルデータを分類するデータを入れておくための分類データベース（D）を含み、それにより多重処理を必要とするデータだけが処理モジュールに向けられる、請求項１ないし請求項７のいずれか一つに記載のネットワークノード構造。
【請求項９】
処理モジュールが、それらが実行する処理のインバース（Ｉ）に対応するデータを提供し、インバースデータとそれらが実行した処理の結果からなるデータとを関連付けてネットワークの受信側にルーチングするように構成されている、請求項１ないし請求項８のいずれか一つに記載のネットワークノード構造。
【請求項１０】
ネットワークの受信側で使用するノードとして構成され、受信側端末と関連付けられて、ノードによって処理されたデータを受信するためにノードに結合されている、請求項１または２記載のネットワークノード構造。
【請求項１１】
送信側ノードで実行された多重処理に対応するデータを含むネットワークを介してルーチングされたデータを受信するように構成され、受信側ノードで実行された処理に対してのインバースである多重処理を実行するように構成されている請求項１０に記載のネットワークノード構造。
【請求項１２】
ネットワークの送信側用の請求項３で請求されたノードと、ネットワークの受信側ノード用の請求項１１で請求されたノードとからなるネットワークノード構造。
【請求項１３】
ルーチング情報を含むネットワークルータブルデータを受信するように動作可能であり、処理コードデータ（Ｐ）がルーチング情報とは関係なく利用者が選択したものである、請求項１ないし請求項１２のいずれか一つに記載のネットワークノード構造。
【請求項１４】
請求項１ないし請求項１３のいずれか一つに記載であり、前記データベースまたは前記データベースのそれぞれにデータを供給するためにサービスプロバイダを含む、ネットワークノード構造。
【請求項１５】
各データベース用の新データをサービスプロバイダから前記ノードまたは各ノードに供給することを含む、請求項１４で請求されたノード構造を更新する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ上で多重処理を実行するためのプログラム可能ネットワークノード構造、およびインターネット等のＩＰ／ＴＣＰ（伝送制御プロトコル）を利用するネットワークへの特別であるが排他的でない応用に関する。
【０００２】
【従来の技術】
従来、ネットワークデータ通信においてデータはインターネット等のネットワークの送信側から、データ上で所定の不変処理を実行するルータ等のネットワークノードを介して受信側に送信される。ノードが２つ以上の処理サービスを実行すべきであるということが提案されており、「ANTS: A Toolkit for Building and Dynamically Deploying Network Protocols」http://www.tns.lcs.mit.edu/publications/openarch98.htmlでは、ルータ等のノード内に幾つかのプログラムをインストールし、種々のサービスを動的に実行することによって、ネットワークに２つ以上のサービスをインストールすることが提案されている。このプログラム可能ネットワークでは、ノード内に利用者が使用することを望んでいるプログラムをインストール後、利用者はプログラム可能ネットワーク内にパケットを送信する。パケットがプログラム可能ノードに到達すると、利用者がインストールしたプログラムはノードにおいてパケットを処理する。添付図面の図３３が、入力ポート９０１、分類セクション９０２、処理モジュール９０３〜９０５および出力ポート９０６からなるそのような従来のノード９００の例を示している。ノード９００は単一処理の要求を含むパケットデータを入力ポート９０１で受信する。受信されたパケットデータが分類セクション９０２に移され、分類セクションは受信したパケットデータをパケットデータ内の処理要求に基づく適切な処理モジュールに転送する。例えば、パケットデータがウイルスチェッキング処理の要求を含む場合、パケットデータはウイルスチェッキング処理を実行する処理モジュール９０３に伝送される。パケットデータが暗号化処理の要求を含む場合、パケットデータは暗号化処理を実行する処理モジュール９０４に伝送される。パケットデータがウイルスチェッキングおよび暗号化処理の両方の要求を含む場合、パケットデータはウイルスチェッキング処理に続いて暗号化処理を実行する処理モジュール９０５に伝送される。処理モジュールのそれぞれは単一処理を実行後、パケットデータを出力ポート９０６に伝送する。次にパケットデータは出力ポート９０６によってネットワーク内に伝送される。このノードでは、単一の実行だけが各処理モジュールによってパケットデータ上で実行される。例えば、処理モジュールはウイルスチェッキング処理を提供するだけであり、それはデータ上のモジュール内で一度だけ実行される。ウイルスチェッキングおよび暗号化等の２つの処理が実行されたとき、１つのモジュール内に２つの処理を含むプログラム構造をインストールする必要がある。
【０００３】
したがって、異なるモジュール内に同じプログラムが重複して提供される必要があるためノードのリソースは不必要に消耗され、モジュール内で利用可能な処理の組合せや順列を利用者は使用することができない。したがって、従来のノードにおける処理の柔軟性は非常に制限される。
【０００４】
多重処理への別のアプローチが、Decasper, D., Dittia, Z., Parulkar, G.,Plattner, B., “Routers Plugins  A Software Architecture for Next Generation Routers   ICCC/ACM Transaction on Networking, February 2000 (http://www.acrn.org/sigcomm/sigcomm98/tp/paper19.pdf)、さらにDecasper, D., Dittia, Z., Parulkar, G.,Plattner, B., “Router Plugins  A Modular and Extensible Software Framework for Modern High Performance Integrated Services Router   Washington University Tech Report WUCS-98-08, February 1998 (http://www.arl.wustl.edu/~dan/papers/router_plugins.pdf)（やはりACM SIGCOMM '98会議で提出された）に述べられている。この構造では、データベース内のデータに基づき、データパケット用のルーチングデータに従って選択された多重処理のインスタンスを使用してデータパケットの多重処理が実行される。データパケットのヘッダー内のルーチングデータは、データ上のノードで実行される多重処理を決定するのに利用される。したがって処理は、特定のルートに沿って送信された全てのデータが同一の処理を受けるであろうという想定のもとに実行され、それは柔軟的でなく不便であろう。
【０００５】
別のアプローチがFeldmeier, D., McAuley, A., Smith, J., Bakin, D., Marcus, W., Raleigh, T., “Protocol Boosters   IEEE JSAC April, 1998. (http://www.cis.upenn.edu/~boosters/)によって述べられている。
【０００６】
さまざまな処理の選択に関して幾つかのアプローチが開発されており、参照として挙げるならTschudin, C., “Active Ad-hoc Networking  (http://www.docs.uu.se/~tschudin/pub/cft-1999-kth.pdf); Stiller, B., Class, C., Waldvogel, M., Caronni, G., Bauer, D., “A Flexible Middleware for Multimedia Communication: Design, Implementation, and Experience   IEEE Journal on Selected Area In Communication, Vol.17, No.9, pages 1580-1598, September, 1999. (http://olymp.org/~caronni/work/papers/JSAC-dacapo.pdf); およびWolf, T., Decasper, D., Tschudin, Ch., “Tags for High Performance Active Networks   In Proceedings of OpenArch 2000, April 2000 (http://www.docs.uu.se/~tschudin/pub/cft-2000-tan.pdf)がある。
【０００７】
やはり、先行技術に関して、関数のための関連付けの処理概念とそのインバースとを以下の参考文献に見ることができる。Keller, R., Ramamirtham, J., Wolf, T., Plattner, B., “Active Pipes: Service Composition for Programmable Networks, Milcom 2001, 2001 (http://ccrc.wustl.edu/~wolf/papers/active_pipes.pdf)”。
【０００８】
【発明が解決しようとする課題】
本発明は多重処理を実行する改良された、より一層柔軟な方法を提供する。
【０００９】
【課題を解決するための手段】
本発明により、ネットワークルータブルデータ上で多重処理を実行するためにネットワークで使用されるネットワークノード構造であって、多数の処理モジュールと、処理モジュールにデータを選択的に向かわせて多数の処理を順次実行するコントローラとからなるものにおいて、この構造が、モジュールによってデータ上で実行される利用者選択処理に対応するルータブルデータ内の処理コードデータを検出し、この検出された処理コードデータに基づいて利用者選択処理が処理モジュールによって実行される順番を決定する順序データを提供するように動作可能であるネットワークノード構造が提供される。このノード構造は、順序データを含むオーダリングデータベースと、ルータブルデータ内の処理コードデータに基づいてデータベースから順序データを決定する順序決定構造とを含むことができる。
【００１０】
ノード構造は、ノードに結合された送信側利用者端末と関連して、ネットワークの送信側で使用するためのノードとして構成することができる。
【００１１】
オーダリングデータベースはノード自体または利用者端末内とすることができる。
【００１２】
処理分類データベースは利用者端末に含まれ、利用者によって選択された個々の処理に対応する処理コードデータを提供することができる。
【００１３】
またノード構造は多重処理されることになるルータブルデータを多重処理を必要としないルータブルデータと共に受信することができ、ルータブルデータを分類するデータを入れておくための分類データベースは、多重処理を必要とするデータだけを処理モジュールに向かわせるように使用することができる。
【００１４】
処理モジュールは、それらが実行する処理のインバースに対応するデータを提供し、インバースデータとそれらが実行した処理の結果からなるデータとを関連付けてネットワークの受信側にルーチングするように構成することができる。
【００１５】
ノードはまたネットワークの受信側で使用するように構成することができ、受信側端末はノードによって処理されたデータを受信するようにノードに結合することができる。ノードはネットワークを介してルーチングされたデータを受信することができ、それは送信側ノードで実行された多重処理に対応するデータを含み、受信側ノードで実行された処理に対してのインバースである多重処理を実行するように構成される。
【００１６】
【発明の実施の形態】
サービスプロバイダは前記データベースまたは前記データベースのそれぞれにデータを供給するのに利用することができ、それらを更新することを可能にする。
【００１７】
本発明をより完全に理解するために、その実施形態を添付図面をもとに例示する。
【００１８】
本発明の以下の実施形態において、データはネットワークを介して送信側利用者端末から受信側端末に、選択可能な多重処理が個々にプルグラム可能な順序で実行される各ネットワークノードを介して送信される。
【００１９】
（第１実施形態）
システムの送信側は図１に示されており、端末１とネットワークノード２とからなる。受信側は図８に示されており、受信側ネットワークノード３と受信者端末４とからなる。
【００２０】
図１に示すごとく、端末１はＩＰ（インターネットプロトコル）ネットワークの一部等のアクセス回線を経由してネットワークノード２に接続されている。またノード２はＩＰネットワーク等の外部ネットワークに接続されている。利用者端末１は入力セクション１０、伝送コントローラ１１、データベース（Ａ）１２、データ記憶セクション１３および出力ポート１４を含む。ネットワークノード２は入力ポート２０、要求分析セクション２１、順序決定セクション２２、データベース（Ｂ）２３、内部ヘッダー制御セクション２４、ルーチングセクション２５、処理モジュール（１〜ｎ）２６〜２９および出力ポート３０を含む。種々の構成要素の機能性が個々の回路部品または単数または複数のプログラム済みマイクロプロセッサによって提供されうることは理解されるだろう。例えば、処理モジュール（１〜ｎ）２６〜２９は個々のメモリを備えた個々のマイクロプロセッサを含むことができ、これらのメモリは多重処理を実現する個々の処理を実行するためのそれぞれのプログラムを含む。そのプログラムはサービスプロバイダからダウンロードするか、もしくはセットアップして、スタート前に望ましい機能性を提供することができる。
【００２１】
図1の送信側システムの動作をこれから詳細に記述していく。初めに、利用者５は入力セクション１０を使用して、受信者４に送信されるデータを、実行される多重処理と共に選択する。多重処理はネットワークノード２において選択済みデータ上で実行されることになる。一例として、利用者５は選択済みデータ上で実行される多重処理の個々の構成要素として暗号化およびウイルスチェックを選択することができる。利用者は個々の処理が実行される順序を特定せず、システムが自動的にその順序を決定する。特定の順序が要求される場合は以下に明らかにする。
【００２２】
そして伝送コントローラ１１は利用者５によって選択された処理用の処理コードＰを獲得する。処理コードはデータベース（Ａ）に記憶され、それが図２に示されている。サービスプロバイダ６は予めデータベース（Ａ）内にコードをダウンロードしており、またサービスプロバイダ６が新しいサービスをインストールするとデータベース（Ａ）１２は更新される。この例では利用者５は多重処理に暗号化とウイルスチェッキングとを選択しているので、関連する処理コードは図２に示すごとくそれぞれＰ−１とＰ−２とである。
【００２３】
そして、伝送コントローラ１１はデータ記憶セクション１３にアクセスし、利用者５が受信者４に送信することを望んでいるデータを読み込む。利用者５はスタート前にデータをデータ記憶セクション１３に記憶する。
【００２４】
処理されるデータを読み込んだ後、伝送コントローラ１１は図３に示されたデータパッケージ４０をアセンブルする。データパッケージ４０はＩＰ／ＴＣＰ（伝送制御プロトコル）ヘッダーデータ１００、多重処理ドラフトヘッダーデータ４１および処理されることになるデータ４２とからなる。詳細には、ＩＰ／ＴＣＰヘッダーデータ１００はルーチングデータを含み、それは送信者用ＩＰアドレス、受信者のＩＰアドレス、送信者用ポート番号、受信者のポート番号等からなる。ヘッダー１００用のルーチングデータの選択は、利用者によって従来の仕方で実行することができるがここでは詳細には述べない。多重処理ヘッダーデータ４１は、数データ４３、順列／組合せデータ４４、実行済み処理数データ４５および個々の処理要求に対応する個々の処理コードデータ４６、４７とからなる。数データ４３は１バイトからなり、処理が幾つ要求されているのかを表す。この例では利用者は２つの処理、すなわち暗号化とウイルスチェックとを選択しているので、数データ４３は２の値を有する。順列／組合せデータ４４は１バイトからなり、多重処理のための特定の順序の有無を表す。この段階ではデータ４４は特定の順列または組合せを何ら示しておらず、ゼロ等のデフォルト値を有する。データ４４はネットワークノード２において処理がスタートされる前に提供されるだろう。実行済み処理数４５は１バイトからなり、処理が幾つ実行されたのかを示す。この時点では、実行されている処理はないので、このデータ４５はゼロに設定される。後で詳説するが、このデータ値は各処理がノード２の処理モジュールにおいて実行された後に変更されるだろう。数データ４３の値は４６、４７等の処理要求データの数に対応する。処理要求データはそれぞれ１データバイトからなる。この例では２つの処理データ要求が存在するので、数データの値は２である。利用者５が暗号化およびウイルスチェックの処理を選択すると、データ４６とデータ４７は図２に示されたデータベース（Ａ）の表によりそれぞれ１の値と２の値を有するように設定される。伝送コントローラ１１はデータパッケージ４０をアセンブルした後、そのパッケージ４０をＩＰデータパケットとして出力ポート１４を介してネットワークノード２に送信する。
【００２５】
次にネットワークノード２の動作を記述していく。データパッケージ４０は入力ポート２０によって受信され、要求分析セクション２１に転送される。要求分析セクション２１は処理要求に関して図３に示されているヘッダーデータ４１を引き出し、そのデータを順序決定セクション２２に転送する。順序決定セクション２２は利用者によって要求されている多重処理の順序をデータベース（Ｂ）２３を参照して決定する。データベース（Ｂ）２３内のデータは図４に示されており、システムをスタートさせる前にサービスプロバイダ６によってその中に記憶される。加えて、データベース（Ｂ）は新しいサービスがシステムにインストールされることになった場合、サービスプロバイダ６によって更新することができる。データベース（Ｂ）は３つのカラムを有する。１番目の左側のカラムは処理コードＰを示す。２番目の真ん中のカラムは処理コードＰに対応して処理を実行するように割り当てられたモジュール２６〜２９用のモジュールポートＭを示す。３番目の右側のカラムは処理の順序を示す。処理の順序がない場合、処理順序の値はゼロに設定される。
【００２６】
図５は順序決定セクション２２によって実行される動作を示す。順序決定セクション２２は要求分析セクション２１から受信するヘッダーデータ４１上で動作する。初めに、順序決定セクション２２は処理コードＰの値をデータベース（Ｂ）内のデータに従って対応するモジュールポート値Ｍに変換する。より詳細には、処理コードＰ−１はデータ４８に関するモジュールポートＭ−１に対応し、Ｐ−２はデータ４９に関するＭ−２に対応する。そして順序決定セクション２２はデータベース（Ｂ）２３を参照し、要求済された処理毎に順序値を求める。この例では、利用者５がポートＭ−１およびＭ−２に送信される予定になっている２つの処理を要求しており、したがって図４を参照すると、対応する順序値がＯ−４およびＯ−１であり、Ｏ−４およびＯ−１の実値が４および１であることがわかる。ゼロではない少なくとも１つの順序値が存在する場合、順序決定セクション２２は降順値Ｏに従って処理順序をソートする。すべての順序値が同じ場合、順序セクションは処理順序をソートしないが、以下でより詳細に説明するように、組合せデータ４４の適切な値を選択する。この例では、Ｏ−４およびＯ−１の値が両方とも非ゼロの値を有するので、順序決定セクション２２はデータベース（Ｂ）２３内のＭ−１およびＭ−２の順序値に応じてそれらの順序を変更する。特に、データ４８に対応する低い方の順序値はデータ５７を形成し、データ４９と関連する高い方の順序値はデータ５６を形成して図５に示すごとくデータ５７よりも前に位置する。
【００２７】
加えて、データ４４の値が選択される。この例では、処理の特定の順序が存在するので、順列に対応するデータ４４の値がデータ５４の値として選択される。１という値は順列を表し、２という値は組合せを表す。したがって、処理はモジュールポートＭ−２、次いでＭ−１の順序で実行することができる。データ５３およびデータ５５の値はそれぞれデータ４３およびデータ４５の値と同じである。
【００２８】
したがって、上記のごとく順序決定セクション２２が多重処理の順序を決定すると新しいヘッダー５１が生成されうる。順序決定セクション２２は新しいヘッダー５１用のデータを内部ヘッダー制御セクション２４に送信し、また、この内部ヘッダー制御セクションは要求分析セクション２１からデータ４０を受信する。そして、内部ヘッダー制御セクション２４は図３に示されたデータ４１を図５に示されたデータ５１に置き換える。その後、内部ヘッダー制御セクション２４はデータ１００、データ５１およびデータ４２をルーチングセクション２５に伝送する。
【００２９】
図６Ａはルーティンセクション２５によって受信されたデータ１００、データ５１およびデータ４２を示す。初めは、ルーチングセクション２５は数データ５３の値と実行済み処理数データ５５の値とからなる。両方の値が同じである場合、ルーチングセクション２５はデータ１００、データ５１およびデータ４２をネットワークを介して出力ポート３０を経由して受信者４に送信する。値が異なる場合、ルーチングセクション２５はデータ５３の値とデータ５５の値との間の差を計算する。データ５３とデータ５５との間の差の値は、実行されたままである処理の数を表す。各処理が実行された後、ルーチングセクション２５はデータ５５の値を現在の値に１を加えたものに計算する。
【００３０】
ルーチングセクション２５はデータ５５の場所からデータ５５に１を加えることによって指示されるデータをチェックする。たとえば、データ５５に１を加えた値が１に等しい場合、ルーチングセクション２５はデータ５５から第１データ５６をチェックする。そして、ルーチングセクション２５はモジュールポートデータ５６によって確認された処理モジュールにデータ１００、データ５１およびデータ４２を送信する。最初は、実行済み処理データ５５の値はゼロに等しい。したがってデータ５５に１を加えた値は１に等しい。そしてルーチングセクション２５はモジュールポートデータ５６の値をチェックする。データ５６の値はモジュールポート２に対応する。したがって、ルーチングセクション２５はデータ１００、データ５１およびデータ４２を図１に示された処理モジュール（２）２７に送信する。そして、処理モジュール（２）２７はその予めロード済みのプログラムによりデータ４２を処理し、新しいデータ６１を生成する。この例では、ウイルスチェッキングプログラムは処理モジュール（２）２７内に予めインストール済みである。
【００３１】
処理モジュール（２）２７は図６Ｂに示すごとくデータ５６をデータ６６に置き換える。送信側で種々のモジュールによって実行される処理は受信側でインバースマナーで実行され、処理済みデータ、例えば送信側での暗号化および受信側でのインバース復号化をリカバーすることができ、適切なインバースコードＩはインバース計算が後で受信側で実行されるようにすることができるように図７に示すごとくデータに割り当てられる。やはり、既に説明したように、処理モジュール（２）２７はデータ５５の値をデータ５５に１を加えたデータ６２の値に置き換える。そして処理モジュール（２）２７はデータ１００、データ７１およびデータ６１をルーチングセクション２５に返送する。
【００３２】
ルーチングセクション２５はしたがって図６Ｂに示されたデータ１００、データ７１およびデータ６１を受信する。そしてその手順は繰り返される。こうして、ルーチングセクション２５はデータ６２に１を加えることによって指示されるデータをチェックする。この例では、データ６２に１を加えた値は２に等しく、したがってルーチングセクション２５はデータ６２から第２データ５７をチェックする。そしてルーチングセクション２５はモジュールポートデータ５７によって指示される適切な処理モジュールにデータ１００、データ７１およびデータ６１を送信する。このとき、実行済み処理データ６２の値は１に等しい。したがって、データ６２に１を加えた値は２に等しい。そしてルーチングセクション２５はモジュールポートデータ５７の値をチェックする。このとき、データ５７の値はモジュールポート１に対応する。したがって、ルーチングセクション２５はデータ１００、データ７１およびデータ６１を図１に示された処理モジュール（１）２６に送信する。処理モジュール（１）２６はその予めロード済みのプログラムによりデータ６１を処理し、新しいデータ６９を生成する。この例では、暗号化プログラムは処理モジュール（１）２６に予めインストール済みである。したがって処理モジュール（１）２６は図７に示すごとくデータ５７をデータ６７に置き換える。加えて、処理モジュール（１）２６はデータ６２の値をデータ６２に１を加えた値と一致するデータ６５の値に置き換える。図６Ｃにおいて、データ６３の値およびデータ６４の値はそれぞれデータ５３の値およびデータ５４の値と同じである。そして処理モジュール（１）２６はデータ１００、データ７０およびデータ６９をルーチングセクション２５に返送する。
【００３３】
こうしてルーチングセクション２５は図６Ｃに示されているデータ１００、データ７０およびデータ６９を受信する。その手順が再び繰り返され、このとき数データ６３の値と実行済み処理数データ６５の値は同じである。したがって、ルーチングセクション２５はデータ１００、データ７０およびデータ６９を外部ネットワークを介して出力ポート３０を経由して受信者４に送信する。
【００３４】
前述から利用者が送信側でプログラム可能多重処理を実行できることが理解されるだろう。さらに、処理データ（Ｐ）を選択することによってデータが送信されるときは、利用者は異なる多重処理動作を選択することができる。このことは、例えばルーチングヘッダーデータ１００によって特定されたネットワークを介してデータがフォローするルート等のそのほかの要因と関係なく、利用者が設定することができる。多重処理の処理の順序は順序データ（Ｏ）によって決定され、そこから処理データ（Ｐ）に規定された処理に応じて順序が決定される。
【００３５】
受信側について図８、図９および図１０を参照してより詳細に記述していく。
【００３６】
受信側はネットワークに接続された受信側ネットワークノード３と、概略的に示された受信者４もやはり含む。ネットワークノード３は入力ポート３９、要求分析セクション３１、順序決定セクション３２、データベース（Ｃ）３３、内部ヘッダー制御セクション３４、ルーチングセクション３５、インバース処理モジュール（１，３・・・）３６、３７および出力ポート３８からなる。
【００３７】
したがってネットワークノード３はネットワークノード２によって送信されたデータ１００、データ７０およびデータ６９を入力ポートセクション３９で受信する。要求分析セクション３１は受信データから図１０に示されたインバース処理用のデータ７０を引き出し、それを順序決定セクション３２に伝送する。順序決定セクション３２はデータ６５をゼロであるデータ８５に置き換える。そして順序決定セクション３２は図９に示されているデータベース（Ｃ）３３を参照してデータ６６およびデータ６７をデータ７６およびデータ７７に置き換える。このデータベースのコンテンツはサービスプロバイダ６から予め記憶されている。加えて、サービスプロバイダ６はシステムに新しいサービスがインストールされるときにデータベース（Ｃ）を更新することができる。
【００３８】
そして、順序決定セクション３２がデータ８４をチェックするが、このデータはデータ６４と同じである。データ８４が組合せを意味する場合、データ７６の場所とデータ７７の場所は変化しない。しかしながら、データ８４が順列を意味する場合、データ７６の場所とデータ７７の場所は逆転する。つまり、データ８６はデータ７７に置き換えられデータ８７はデータ７６に置き換えられる。データ８３およびデータ８４の値はそれぞれデータ６３およびデータ６４と同じである。次に、順序決定セクション３２は新しいヘッダーデータ８０を内部ヘッダー制御セクション３４に送信し、また内部ヘッダー制御セクションは、要求分析セクション３１からデータ１００、データ７０およびデータ６９を受信する。そして内部ヘッダー制御セクション３４は図６のデータ７０を図１０のデータ８０に置き換える。その後、内部ヘッダー制御セクション３４はデータ１００、データ８０およびデータ６９をルーチングセクション３５に伝送する。
【００３９】
ルーチングセクション３５は図１１に示されたデータ１００、データ８０およびデータ６９を受信する。ルーチングセクション３５はまず初めに数データ８３の値と実行済みインバース処理数データ８５の値とを比較する。その値が両方とも同じ場合、ルーチングセクション３５はデータ８０を削除した後、データ１００とデータ６９を受信者４に出力ポート３８を経由して送信する。値が異なる場合、ルーチングセクション３５はデータ８３の値とデータ８５の値との間の差を計算し、それが実行される必要があるインバース処理の数を示す。そして、ルーチングセクション３５はデータ８５に１を加えた値を計算する。このことは次のインバース処理モジュールポートに対応するデータを指示す。そしてルーチングセクション３５はデータ８５に１を加えることによって指示されるデータをチェックする。初めは、データ８５の値はゼロに等しいのでデータ８５に１を加えた値は１である。したがって、ルーチングセクション３５はまずデータ８５からデータ８６をチェックする。データ８６の値はこのときインバース処理モジュールポート（１）に対応する。したがって、ルーチングセクション３５はデータ１００、データ８０およびデータ６９を図８に示されたインバース処理モジュール（１）３６に送信する。インバース処理モジュール（１）３６はその予め定義済みのインバースプログラムに従ってデータ６９を処理し、新しいデータ８９を生成する。この例では、インバース暗号化または復号化プログラムがインバース処理モジュール（１）３６にインストールされており、そのプログラムはサービスプロバイダ６からダウンロードされている。インバース処理モジュール（１）３６はデータ８５をデータ８８、すなわちデータ８５に１を加えたものに置き換える。その後、インバース処理モジュール（１）３６はデータ１００、データ９０および８９をルーチングセクション３５に返送する。
【００４０】
そしてルーチングセクション３５は図１１に示されたデータ１００、データ９０およびデータ８９を受信する。そしてその処理が繰り返される、すなわち、ルーチングセクション３５が数データ８３の値と実行済みインバース処理数データ８８の値とを比較する。両方の値が同じ場合、ルーチングセクション３５はデータ９０を削除した後、データ１００とデータ８９を受信者４に出力ポート３８を経由して送信する。値が異なる場合、ルーチングセクション３５はデータ８３の値とデータ８８の値との間の差を計算し、その差が、実行される必要があるさらなるインバース処理の数を示す。そしてルーチングセクション３５はデータ８８に１を加えた値を計算する。これは次のインバース処理モジュールポートに対応するデータを指示す。そしてルーチングセクション３５はデータ８８に１を加えることによって指示されるデータをチェックする。データ８８の値は１に等しいので、データ８８に１を加えた値は２である。したがってルーチングセクション３５はデータ８８のフィールドから第２データ８７をチェックする。データ８７の値はこのときインバース処理モジュールポート（２）に対応する。図９から、インバース処理モジュールポート（２）の値が列７６に示すごとくゼロであることがわかる。このゼロはインバース処理を実行する必要がないことを意味する。実際、インバースウイルスチェックプログラムは存在しない。この場合、ルーチングセクション３５はデータ８８をデータ８８に１を加えたデータ９１に置き換える。
【００４１】
その後、ルーチングセクション３５は再び数データ８３の値と実行済みインバース処理数データ９１の値とを比較する。このとき、数データ８３と実行済みインバース処理数データ９１の両方の値は同じである。両方の値が同じなので、ルーチングセクション３５はデータ９２を削除した後、データ１００とデータ８９を受信者４に出力ポート３８を経由して送信する。
【００４２】
上述のように、ルーチングセクション３５はデータ８３等の数データの値とデータ９１等の実行済みインバース処理数データとを比較し、両方の値が同じ場合、データ９２等のヘッダーデータを削除した後、データ１００とデータ８９等のインバース処理済みデータとを受信者に送信する。両方の値が同じでない場合、ルーチングセクション３５はデータ１００と、データ９２等のヘッダーデータと、データ８９等のあらゆる現行のインバース処理済みデータとを適切なインバース処理モジュールに送信する。このとき、データ８７等のインバース処理モジュールポートの場所を指示すデータの値がゼロである場合、ルーチングセクション３５はデータ１００と、ヘッダーデータ９０と、８９等のインバース処理用データとをインバース処理モジュールに送信しない。加えて、ルーチングセクション３５はデータ８８等の実行済みインバース処理数データをデータ８８に１を加えたデータ９１に置き換える。これらの手順は両方の値、すなわちデータ８３等の数データの値と、データ９１等の実行済みインバース処理数データとが同じになるまで繰り返される。
【００４３】
前述により、ノード２，３は多重プログラムを選択的にロードされて個々の処理およびそれらのインバースを実行することができ、プログラムはサービスプロバイダ６から新しい、もしくは置換プログラムをダウンロードすることによって変更することができるということが理解されるだろう。さらに、利用者５はデータ上で実行される多重処理およびそれらの実行順序を選択することができる。
【００４４】
（第２実施形態）
図１２はプログラム可能多重処理システムの送信側の第２の実施のブロック図であり、ＩＰネットワーク等のアクセス回線を経由して相互接続された利用者端末１０１とネットワークノード１０２とからなる。ノード１０２は、以下で述べることになるが、ＩＰネットワーク等の外部ネットワークにも接続されて受信側との接続が提供される。
【００４５】
利用者端末１０１は、入力セクション１１０、順序決定セクション１２２、データベース（Ａ）１１２、データベース（Ｂ）１２３、ヘッダー制御セクション１２４、データ記憶セクション１１３および出力ポート１１４からなる。データベース（Ａ）１１２のコンテンツは図２に示されたものであり、データベース（Ｂ）１２３のコンテンツは図４に示されたものである。ネットワークノード１０２は、入力ポート１２０、ルーチングセクション１２５、処理モジュール（１〜ｎ）１２６〜１２９および出力ポート１３０からなる。
【００４６】
送信側システムの動作を詳細に述べていく。まず初めに、利用者は入力セクション１１０を操作し、受信者４に送信されるデータと実行される多重処理とを限定する。多重処理はネットワークノード１０２で実行される。利用者が多重処理として暗号化およびウイルスチェックを選択する一例を考慮していく。利用者がデータおよび多重処理を選択しているという情報を受信した後、順序決定セクション１２２は選択された多重処理用の処理コードをデータベース（Ａ）１１２からチェックする。データベース（Ａ）１１２は図２に示されたデータベース（Ａ）１２と同じデータを含む。データベース（Ａ）１１２のデータはこのシステムをスタートする前に記憶される。利用者は多重処理に暗号化およびウイルスチェックを選択しており、したがって対応する処理コードは図２に示されたデータベース（Ａ）１１２に記されたごとくそれぞれＰ−１およびＰ−２である。そして順序決定セクション１２２は図５に関連して既に述べてある多重処理用のドラフトヘッダーデータ４１を生成する。ドラフトヘッダーデータ４１は、既に述べたごとく数データ４３、順列／組合せデータ４４、実行済み処理数データ４５および多重処理コードデータ４６、４７からなる。順序決定セクション１２２における順序決定の動作は第１実施形態の順序決定セクション２２の動作と一致しており、図４のデータベース（Ｂ）２３と同じデータを含んでいる図１２のデータベース（Ｂ）１２３を参照することによりドラフトヘッダーデータ４１からヘッダーデータ５１が作成される。
【００４７】
そして、順序決定セクション１２２はデータ５１をヘッダー制御セクション１２４に送信する。加えて、受信者４に送信されるデータは順序決定セクション１２２によってヘッダー制御セクション１２４にも送信される。ヘッダー制御セクション１２４は受信者に送信されるデータをデータ記憶セクション１１３から読み込む。データ記憶セクション内のデータはこの動作処理をスタートする前に記憶される。そしてヘッダー制御セクション１２４は図６Ａに示されているデータ１００、データ５１およびデータ４２からなるデータパッケージをアセンブルする。その後、ヘッダー制御セクション１２４はデータ１００、データ５１およびデータ４２を出力ポート１１４を経由してネットワークノード１０２に送信する。
【００４８】
ネットワークノード１０２はこのデータを入力ポートセクション１２０を経由して受信し、そのデータはルーチングセクション１２５に転送される。セクション１２５、１２６、１２７、１２８、１２９および１３０の動作は、図１のセクション２５、２６、２７、２８、２９および３０の動作と同じである。これらのセクションによって実行される動作は図６に関連して述べられており、したがってセクション１２５、１２６、１２７、１２８、１２９および１３０の動作の詳細な記述は省略する。
【００４９】
受信側の動作は第１実施形態に関連して既に述べたノード３および受信者４と同じである。
【００５０】
第１および第２実施形態の間の主な違いは順序決定セクションおよびデータベース（Ｂ）の位置である。第１実施形態ではネットワークノード２がデータベース（Ｂ）２３を参照して多重処理の順序を決定する。他方、第２実施では利用者端末１０１がデータベース（Ｂ）１２３を参照して多重処理の順序を決定する。サービスプロバイダ６が新しい処理をネットワークノードのモジュール内にインストールする場合、第１実施形態の場合、サービスプロバイダはデータベース（Ｂ）２３を更新するだけでよい。第２実施形態では、サービスプロバイダは各利用者端末に記憶されている個々のデータベース（Ｂ）１２３を更新しなければならない。
【００５１】
（第３実施形態）
第３実施形態では、ネットワークノードは多重処理されることになるデータだけでなく、多重処理を必要としないデータも受信する。
【００５２】
図１３について説明すると、この図はネットワークノード２の別の実施を示しており、これは２００で参照される。ノード２００は図１に関連して既に述べられた仕方で利用者端末１（図１３には図示せず）に接続されている。ネットワークノード２００は、入力ポートセクション（１、２）２１１、２１２、データベース（Ｄ）２４０を含む分類セクション２２０、要求分析セクション２２１、順序決定セクション２２２、データベース（Ｂ）２２３、内部ヘッダー制御セクション２２４、ルーチングセクション２２５、処理モジュール（１〜ｎ）２２６〜２２９、ルーチングセクション２３５および出力ポート（１、２）２３１、２３２からなる。
【００５３】
図１４は図１３に示されているデータベース（Ｄ）２４０のコンテンツを示している。データベース（Ｄ）２４０は４つのカラムを有する。左側から見て、１番目のカラムがＩＰ／ＴＣＰヘッダーのリストである。２番目のカラムは各ＩＰ／ＴＣＰヘッダーデータに割り当てられている処理またはルーチング要求を含んでおり、値１はデータ処理要求に対応し、値ゼロはデータルーチング要求に対応する。３番目のカラムは分析の要求または多重処理用のヘッダーデータの置き換えのための情報を含む。値１は処理要求を含む回線すべてに割り当てられるが、そうでなければ値ゼロが割り当てられる。４番目のカラムは多重処理用のヘッダーデータの置換えのためのデータを含む。デフォルトデータ２４０はシステムをスタートする前に記憶される。
【００５４】
図１５は利用者端末１からネットワークノード２００に送信されるデータのフォーマットを示す。フォーマット２５０内のデータは多重処理用であり、それに対してフォーマット２６０内のデータは単にルーチング用である。
【００５５】
ネットワークノード２００の動作を記述していく。まず初めに、ネットワークノード２００は入力ポート（１）２１１または入力ポート（２）２１２を経由してデータを受信する。この例では、利用者端末１は入力ポート（１）２１１に接続されている。したがって、ネットワークノード２００は図１５に示されたデータ２５０またはデータ２６０を入力ポート（１）２１１を経由して受信する。入力ポート（１）は受信したデータ２５０または２６０を分類セクション２２０に送信する。分類セクション２２０は受信したデータからＩＰ／ＴＣＰヘッダーデータ２５１またはデータ２６１を読み込む。そして分類セクション２４０は図１４に示されたデータベース（Ｄ）２４０を参照して受信したデータをルーチングまたは処理に送信することを決定する。データベース（Ｄ）２４０のデフォルトデータはスタート前に記憶される。
【００５６】
分類セクションはデータ２６０を受信すると、データ２６０をルーチングセクション２３５に送信する。分類セクション２４０はデータ２５０を受信すると、データフィールド２４１をチェックする。データ２４１が１に等しい場合、分類セクション２２０は受信したデータ２５０を要求分析セクション２２１に送信する。データ２４１のデフォルト値は１である。データ２４３が２に等しい場合、以下でより詳細に説明するごとく、分類セクション２２０は図１５に示されたデータ４１を図５に示されたデータ５１に置き換える。そして分類セクション２２０はデータ２５１、データ５１およびデータ４２をルーチングセクション２２５に送信する。セクション２２１、２２２および２２３の動作はそれぞれセクション２１、２２および２３と同じである。したがってこれらのセクションの動作の詳細な説明は省略する。
【００５７】
内部ヘッダー制御セクション２２４はセクション２４と同じ方法で動作するが、それに加え一旦内部ヘッダー制御セクション２２４が多重処理用のヘッダーデータ５１を作成すると、セクション２２４はデータベース（Ｄ）２４０を更新する。この更新動作の一例が図１４に示されている。内部ヘッダー制御セクション２２４は多重処理用のヘッダーデータ５１を作成した後、データ２４１およびデータ２４２を変更する。すなわち、ヘッダーデータ４１をデータ５１に置き換えた後、データ２４１がデータ２４３に置き換えられるが、これは受信したデータをルーチングセクション２２５に直接送信することを意味する。データ２４３の値は２である。加えて、データ２４２はデータ２４４、すなわちヘッダーデータ４１を置き換えるためのデータに置き換えられる。データ２４４はデータ５１と同じである。処理モジュール（１〜ｎ）２２６〜２２９は図１に関連して述べられた処理モジュール（１〜ｎ）２６〜２９と同じ方法で動作する。ルーチングセクション２２５はルーチングセクション２５の動作とほぼ同じであるが、多重処理が完了したときにルーチングセクション２２５がデータを出力ポートにではなく別のルーチングセクション２３５に送信するということが異なる。ルーチングセクション２３５は分類セクション２２０またはルーチングセクション２２５から受信したデータをＩＰ／ＴＣＰヘッダー２５１データ２６１に基づく適切な出力ポート（１、２）２３１、２３２に送信する。
【００５８】
この実施により、利用者による多重処理要求は第１データパケットに対してのみ分析される。そして多重処理用の内部ヘッダーデータが生成、記憶される。したがって多重処理用の内部ヘッダーデータを記憶した後、要求は分析されないが要求は記憶済み内部ヘッダーデータに置き換えられ、多重処理が記憶済み内部ヘッダーデータに基づいて実行される。
【００５９】
（第４実施形態）
第４の実施形態は図１６、図１７および図１８に示される。この実施では、利用者は多重処理を要求するデータをデータが受信側に送信される度に送信しない。その代わり、利用者は利用者が送信するデータ上で実行される多重処理リジュームを登録する。
【００６０】
図１６に示されているプログラム可能多重処理のシステムの送信側は、ＩＰネットワーク等のアクセス回線を経由してネットワークノード３０２に接続された利用者端末３０１からなる。加えて、ノード３０２はＩＰネットワーク等の外部ネットワークに接続されている。
【００６１】
利用者端末３０１は、入力セクション３１０、伝送制御セクション３１１、データ記憶セクション３１３および出力ポート３１４からなる。ネットワークノード３０２は、入力ポート３２０、送信者分析セクション３２１、データベース（Ｅ）３１６、順序決定セクション３２２、データベース（Ｂ）３２３、入力セクション３１５、データベース（Ａ）３１２、内部ヘッダー制御セクション３２４、ルーチングセクション３２５、処理モジュール（１〜ｎ）３２６〜３２９および出力ポート３３０からなる。
【００６２】
このシステムでもってデータを送信するのをスタートする前に、利用者３０５は多重処理のためのサービスプロバイダ３０６に登録する。そして利用者３０５はネットワークを介して受信者に送信されるデータを入力セクション３１０によって選択することになる。例えば、利用者３０５は多重処理として暗号化およびウイルスチェックを選択することができる。伝送制御セクション３１１はデータ記憶セクション３１３にアクセスし、利用者が受信者に送信することを望んでいるデータを読み込む。送信されるデータを読み込んだ後、伝送制御セクション３１１は図１７に示されているデータパッケージ３４０をアセンブルする。データ３４０はＩＰ／ＴＣＰヘッダーデータ１００および処理用のデータ４２からなる。そして伝送制御セクション３１１はＩＰパケットデータとしてデータパッケージ３４０を出力ポートセクション３１４に送信する。
【００６３】
ネットワークノード３０２の動作を詳細に述べていく。まず初めに、サービスプロバイダ３０６は入力セクション３１５を介してネットワークノード３０２に登録データを入力する。登録データは、利用者３０５用のＩＰアドレスと共に、サービスプロバイダによる前述の登録中に利用者３０５が要求した個々の多重処理に関する情報とからなる。入力セクション３１５は利用者３０５が選択する多重処理用の処理コードをデータベース（Ａ）３１２からチェックし、多重処理実行用のドラフトヘッダーデータ４１を生成する。データベース（Ａ）３１２のコンテンツはシステムをスタートする前にサービスプロバイダ３０６によって記憶される。加えて、データベース（Ａ）のデータはサービスプロバイダがシステムに新しい処理をインストールしたときに更新される。そして入力セクション３１５はドラフトヘッダーデータ４１と利用者のＩＰアドレスとを順序決定セクション３２２に送信する。順序決定セクション３２２の動作は順序決定セクション２２の動作とほぼ同じである。順序決定セクション３２２はデータベース（Ｂ）３２３を参照して受信したドラフトヘッダーデータ４１から多重処理の順序を決定し、ヘッダーデータ５１を作成する。データベース（Ｂ）３２３のコンテンツはデータベース（Ｂ）２３と同じでありスタート前に記憶される。サービスプロバイダ３０６は新しい処理がシステムにインストールされたときもやはりデータベース（Ｂ）３２３のコンテンツを更新する。そしてデータ４１からデータ５１を作成する動作は前述のごとく順序決定セクション２２において実行される。そして順序決定セクション３２２はヘッダーデータ５１を、利用者のＩＰアドレスと関連して、データベース（Ｅ）３１６に記憶する。データベース（Ｅ）３１６のコンテンツの一例は図１８に示されたデータ３５０からなる。これはデータ５１を利用者ＡのＩＰアドレスと関連して示している。
【００６４】
ノード３０２の入力ポート３２０は利用者端末３０１の出力ポート３１４から送信されるＩＰパケットデータを受信する。入力ポート３２０は受信したデータを送信者分析セクション３２１に転送する。送信者分析セクション３２１は送信者のＩＰアドレスを引き出し、データの送信者に対応する利用者情報を提供する。そして送信者分析セクション３２１は利用者のＩＰアドレスをデータベース（Ｅ）３１６に送信し、特定の利用者用の多重処理用ヘッダーデータを得る。この例では利用者は利用者−Ａである。したがって利用者−Ａ用のヘッダーデータはデータ３５１である。データ３５１はデータ５１と同じである。その後、送信者分析セクション３２１は受信したデータ３４０とヘッダーデータ５１とを内部ヘッダー制御セクション３２４に伝送する。内部ヘッダーデータ制御セクション３２４は図６に示したごとくデータ１００、データ５１およびデータ４２をアセンブルする。そして内部ヘッダー制御セクション３２４はデータ１００、データ５１およびデータ４２をルーチングセクション３２５に伝送する。
【００６５】
ルーチングセクション３２５、多重処理モジュール（１〜ｎ）３２６〜３２９および出力ポート３３０はそれぞれ、ルーチングセクション２５、多重処理モジュール（１〜ｎ）２６〜２９および出力ポート３０と同じ方法で動作する。
【００６６】
図８に示されたノード３および受信者４はこの実施形態において受信側で使用される。
【００６７】
この実施により、利用者はサービスプロバイダと契約して特定タイプの処理を利用者のデータ上で実行できるようにすることができる。この場合、利用者はデータが送信される度に多重処理要求を選択する必要がない。
【００６８】
（第５実施形態）
図１の第１実施形態では、多重処理の実行順序はデータベースに保持された情報に基づいて自動的に選択される。したがって、利用者は多重処理のための順序を限定する必要がない。第５実施形態では、多重処理は、伝送されたデータに送信されたデータにより、利用者によって要求された順序で実行される。すなわち、多重処理は利用者が選択する順序で実行される。第５実施形態を図１９〜図２３に関連して述べていく。
【００６９】
第５実施形態のプログラム可能多重処理システムの送信側は利用者端末４０１とネットワークノード４０２とからなる。利用者端末４０１はＩＰネットワーク等のアクセス回線を経由してネットワークノード４０２に接続されている。加えて、ネットワークノード４０２はＩＰネットワーク等の外部ネットワークに接続されている。利用者端末４０１は、入力セクション４１０、伝送制御セクション４１１、データベース（Ｆ）４１２、データ記憶セクション４１３および出力ポート４１４からなる。ネットワークノード４０２は入力セクション４２０、ルーチングセクション４２５処理モジュール（１〜ｎ）４２６〜４２９および出力ポート４３０からなる。
【００７０】
まず初めに、利用者４０５は入力セクション４１０を使用して、受信者に送信されるデータを選択する。利用者４０５はやはり入力セクション４１０を使用して、データに選択された個々の多重処理を適用することを利用者が望んでいる順序を含めて、多重処理を選択する。この例では、利用者４０５は多重処理にウイルスチェックおよび暗号化を、この順序で、選択している。
【００７１】
利用者４０５が送信および多重処理用のデータを選択するという情報を受信した後、伝送制御セクション４１１は利用者４０５が図２０に示されているデータベース（Ｆ）４１２から選択する多重処理用のモジュールポートコードをチェックする。モジュールポートコードＭは、ノード４０２で特定の処理を実行するための処理モジュールを確認するための識別子である。データベース（Ｆ）４１２のデータはサービスプロバイダ４０６によってスタート前に記憶される。加えて、データベース（Ｆ）４１２はサービスプロバイダが新しいサービスをインストールするときに更新することができる。利用者４０５が多重処理としてウイルスチェックおよび暗号化をこの順序で選択しているので、モジュールポートコードはデータベース（Ｆ）４１２からそれぞれＭ−２およびＭ−１である。Ｍ−２およびＭ−１の値はそれぞれ２および１に等しい。
【００７２】
そして伝送制御セクション４１１はデータ記憶セクション４１３にアクセスし、利用者４０５が送信を望んでいるデータを読み込む。利用者４０５はこのデータをシステムのスタート前にデータ記憶セクション４１３に記憶する。処理用のデータを読み込んだ後、伝送制御セクション４１１は図２１に示されているデータパッケージ４４０をアセンブルする。データパッケージ４４０は、ＩＰ／ＴＣＰヘッダー１００と、多重処理用のヘッダーデータ４４１と、処理されるデータ４４２とからなる。詳細には、ＩＰ／ＴＣＰヘッダーデータは、送信者のＩＰアドレスと、受信者のＩＰアドレスと、送信者のポート番号と、受信者のポート番号とを含む。加えて、多重処理用のヘッダーデータ４４１は、数データ４４３、実行済み処理数データ４４５および多重モジュールポートコードデータ４４６、４４７からなる。数データ４４３は１バイトからなり、利用者によって作成された処理要求の数に対応する。この例では、利用者４０５は２つの処理実行、ウイルスチェックおよび暗号化を選択しているので、この数フィールドは２の値を有する。実行済み処理数４４５データは１バイトからなり、処理実行が幾つなされているかを示す。この時点では、実行されている処理はないので、データ４４５はゼロの値を有する。このデータ値は処理モジュールの１つによる各処理実行の後、変化するだろう。各処理要求データは１バイトからなる。この例では、数データ４４３の値は２であるので、２つの処理要求データが存在する。このデータの値は図２０に示されたデータベース（Ｆ）を参照して決定され、これにより、利用者４０５がウイルスチェックおよび暗号化を選択していることからデータ４４６およびデータ４４７がそれぞれ２および１の値を有することが理解されるだろう。伝送制御セクション４１１はネットワークノード４０２への伝送用の出力ポート４１４にデータパッケージ４４０をＩＰパケットデータとして送信する。
【００７３】
ノード４０２の入力ポート４２０はデータパッケージをルーチングセクション４２５に転送する。ルーチングセクション４２５は、図２２に示されたデータ１００、データ４４１およびデータ４４２を受信する。まず初めに、ルーチングセクション４２５は数データ４４３の値と実行済み処理数データ４４５の値とを比較する。値が同じ場合、ルーチングセクション４２５はデータ１００、データ４４１およびデータ４４２を出力ポート４３０を経由して受信者に送信する。値が異なる場合、ルーチングセクション４２５はデータ４４５に１を加えた値を計算する。これは次の処理モジュールポートに対応する情報の位置を表す。そしてルーチングセクション４２５はデータ４４５に１を加えることによって指示されるデータをチェックする。例えば、データ４４５に１を加えた値が１に等しい場合、ルーチングセクション４２５はデータ４４５から第１データ４４６をチェックする。そしてルーチングセクション４２５はモジュールポートコード４４６によって指示される適切な処理モジュールにデータ１００、データ４４１およびデータ４４２を送信する。この例では、初めは実行済み処理データ４４５の値はゼロに等しい。したがって、データ４４５に１を加えた値は１に等しい。したがってルーチングセクション４２５はモジュールポートコード４４６の値をチェックする。この場合、データ４４６の値はモジュールポート２に対応する。したがってルーチングセクション４２５は図１９に示された処理モジュール（２）４２７にデータ１００、データ４４１およびデータ４４２を送信する。処理モジュール（２）４２７はデータ４４２上でウイルスチェックプログラムを実行し、データ４５２を生成する。このシステムにおいて、処理モジュール（２）４２７は処理のスタート前にウイルスチェックプログラムをインストールされている。加えて、処理モジュール（２）４２７は図２２に示すごとくデータ４４６をデータ４５６に置き換える。各処理モジュールは図２３に示すごとく受信側で処理済みデータにインバース処理を実行するための情報を有する。さらに、処理モジュール（２）４２７はデータ４４５の値をデータ４４５に１を加えたデータ４５５の値に置き換える。そして、処理モジュール（２）４２７はデータ１００、データ４５１およびデータ４５２をルーチングセクション４２５に送信する。
【００７４】
ルーチングセクション４２５はしたがって図２２に示されているデータ１００、データ４５１およびデータ４５２を受信する。このとき、手順は新しく作成されたデータ上で繰り返される。より詳細には、ルーチングセクション４２５は数データ４４３の値と実行済み処理数データ４５５の値とを比較する。両方の値が同じ場合、ルーチングセクション４２５は出力ポート４３０を経由して受信者にデータ１００、データ４５１およびデータ４５２を送信する。値が異なる場合、ルーチングセクション４２５はデータ４５５に１を加えた値を計算する。これは次の処理モジュールポートに対応する情報を指示す。そしてルーチングセクション４２５はデータ４５５に１を加えることによって指示されるデータをチェックする。このとき、実行済み処理データ４５５の値は１に等しい。したがって、データ４５５に１を加えた値は２に等しい。そしてルーチングセクション４２５はモジュールポートコード４４７の値をチェックする。この場合、データ４４７の値はモジュールポート１を意味する。したがって、ルーチングセクション４２５はデータ１００、データ４５１およびデータ４５２を図１９に示された処理モジュール（１）４２６に送信する。処理モジュール（１）４２６はデータ４５２上で暗号化プログラムを実行し、データ４６２を生成する。このシステムでは、処理モジュール（１）４２６は暗号化プログラムが予めインストールされている。加えて、処理モジュール（１）４２６は図２２に示すごとくデータ４４７をデータ４６７に置き換える。やはり、図２３に示すごとく、各処理モジュールは受信側で処理済みデータにインバース処理を実行するための情報を有する。さらに、処理モジュール（１）４２６はデータ４５５の値をデータ４５５に１を加えたデータ４６５の値に置き換える。そして処理モジュール（１）４２６はデータ１００、データ４６１およびデータ４６２をルーチングセクション４２５に送信する。
【００７５】
ルーチングセクション４２５はしたがって図２２に示されているデータ１００、データ４６１およびデータ４６２を受信する。ルーチングセクション４２５は数データ４４３の値と実行済み処理数データ４６５の値とを比較する。このとき、数データ４４３の値と実行済み処理数データ４６５の値は両方とも同じである。したがってルーチングセクション４２５はデータ１００、データ４６１およびデータ４６２を出力ポートセクション４３０を経由して受信者に送信する。
【００７６】
こうして、上述のように、これらの手順はデータ４４３等の数データの値とデータ４６５等の実行済み処理数データとが同じになるまで繰り返される。
【００７７】
こうして、第５実施形態により、利用者は利用者がデータを送信する度に多重処理を選択することができる。加えて、利用者は多重処理の実行の順序を選択することができる。
【００７８】
第５実施形態の受信側を図２４，図２５および図２６に関連して記述していく。図２４について説明すると、受信側ネットワークノード４０３はネットワークに接続されており、概略的に示された受信者端末４０４にデータを提供する。ネットワークノード４０３は、入力ポート４３９、リバースセクション４３４、ルーチングセクション４３５、インバース処理モジュール（１、３・・・）４３６、４３７および出力ポート４３８からなる。入力ポートセクション４３９は送信側からＩＰネットワークを介してデータ１００、データ４６１およびデータ４６２を受信する。入力ポートセクション４３９はデータ１００、データ４６１およびデータ４６２をルーチングセクション４３５に転送する。リバースセクションは図２５に示されているデータ１００、データ４６１およびデータ４６２を受信する。送信側のネットワークノード４０２が多重処理を実行しているので、ネットワークノード４０３は受信したデータを受信者に伝送する前にインバース多重処理を実行しなければならない。例えば、ノード４０２が暗号化処理を実行する場合、受信者４０４はインバース暗号化処理をしなければ受信したデータを使用することができない。加えて、多重処理が実行された特定の順序がある場合、インバース処理は対応する反対の順序で実行すべきである。したがってリバースセクション４３４はデータ４５６およびデータ４６７によって表されている多重インバース処理要求の順序を変更する。図２５に示したごとく、リバースセクション４３４においてデータ４７６はデータ４６７に置き換えられ、データ４７７はデータ４５６に置き換えられる。加えて、リバースセクション４３４はデータ４６５をデータ４７５、すなわちゼロの値に置き換える。そしてリバースセクション４３４はデータ１００、データ４７１およびデータ４６２をルーチングセクション４３５に伝送する。
【００７９】
ルーチングセクション４３５はこうして図２６に示されたデータ１００、データ４７１およびデータ４６２を受信する。ルーチングセクション４３５は数データ４４３の値と実行済みインバース処理数データ４７５の値とを比較する。値が両方とも同じ場合、ルーチングセクション４３５はデータ４７１を削除した後、出力ポート４３８を経由して受信者にデータ１００とデータ４６２とを送信する。値が異なる場合、ルーチングセクション４３５はデータ４７５に１を加えた値を計算する。これは次のインバース処理モジュールポートを表す情報を指示す。そして、ルーチングセクション４３５はデータ４７５に１を加えることによって指示されるデータをチェックする。初めはデータ４７５の値がゼロに等しいので、データ４７５に１を加えた値は１である。したがってルーチングセクション４３５はデータ４７５から第１データ４７６をチェックする。このとき、データ４７６の値はインバース処理モジュールポート１を示している。したがってルーチングセクション４３５は図２４に示されたインバース処理モジュール（１）４３６にデータ１００、データ４７１およびデータ４６２を送信する。インバース処理モジュール（１）４３６は予め限定済みのインバースプログラムによりデータ４６２を処理し、新しいデータ４８２を生成する。このシステムでは、インバース処理モジュール（１）４３６はインバース暗号化プログラムが予めインストールされている。例えば、サービスプロバイダはインバース暗号化プログラムをインストールすることができる。そしてインバース処理モジュール（１）４３６はデータ４７５をデータ４８５、すなわちデータ４７５に１を加えたものに置き換えて、１つのインバース処理が実行されていることを示す。その後、インバース処理モジュール（１）４３６はルーチングセクション４３５にデータ１００、データ４８１およびデータ４８２を返送する。
【００８０】
このとき、その手順は繰り返され、ルーチングセクション４３５は数データ４４３の値と実行済みインバース処理数データ４８５の値とを比較する。値が両方とも同じ場合、ルーチングセクション４３５はデータ４８１を削除した後、出力ポート４３８を経由して受信者にデータ１００とデータ４８２とを送信する。値が異なる場合、ルーチングセクション４３５はデータ４８５に１を加えた値を計算する。これは次のインバース処理モジュールポートに対応する情報を指示す。そしてルーチングセクション４３５は、データ４８５のフィールドから、データ４８５に１を加えることによって指示されるデータをチェックする。データ４８５の値が１に等しいので、データ４８５に１を加えた値は２である。したがってルーチングセクション４３５はデータ４８５のフィールドから第２データ４７７をチェックする。このとき、データ４７７の値はインバース処理モジュールポート２を示す。しかしインバース処理モジュールポート２の値はゼロである。このゼロはインバースウイルスチェックプログラムが存在しないのでインバース処理を実行する必要がないということを意味する。この場合、ルーチングセクション４３５はデータ４８５をデータ４９５、すなわちデータ４８５に１を加えたものに置き換える。その後、ルーチングセクション４３５は再び数データ４４３の値と実行済みインバース処理数データ４９５の値とを比較する。こうして、数データ４４３の値と実行済みインバース処理数データ４９５の値は両方とも同じである。したがって、ルーチングセクション４３５はデータ４９１を削除した後、出力ポート４３８を介して受信者にデータ１００とデータ４８２とを送信する。
【００８１】
これらの手順はデータ４４３等の数データの値とデータ４９５等の実行済みインバース処理数データとが同じになるまで繰り返される。これが起こると、データ１００とデータ４８２はデータ４９１の削除後、出力ポート４３８を経由して送信者に送信される。
【００８２】
（第６実施形態）
この実施形態では、多重処理が実行される順序は利用者の要求またはサービスプロバイダによって供給されたデータベース（Ｈ）に基づいて選択される。
【００８３】
図２７に示されているプログラム可能多重処理システムの送信側は、利用者端末６０１とネットワークノード６０２とからなる。サービスプロバイダ６０６は端末６０１およびノード６０２と通信する。利用者端末６０１は、入力セクション６１０、伝送制御セクション６１１、データ記憶セクション６１３、データベース（Ｆ）４１２、データベース（Ｇ）６１５および出力ポートセクション６１４を含む。ネットワークノード６０２は、入力ポート６２０、要求分析セクション６２１、順序決定セクション６２２、データベース（Ｈ）６２３、内部ヘッダー制御セクション６２４、ルーチングセクション６２５、処理モジュール（１〜ｎ）６２６〜６２９および出力ポート６３０からなる。
【００８４】
まず初めに、利用者６０５は入力セクション６１０を操作して、受信者に送信されるデータと、データ上で実行される多重処理と、さらには多重処理を実行する順序を如何にして決定するかの手順とを選択する。このことは利用者６０５が多重処理にウイルスチェックと暗号化とをこの順序で選択する一例によって説明していく。
【００８５】
利用者６０５が送信用のデータと実行される多重処理とを選択したという情報を受信した後、伝送制御セクション６１１は図２０に示されているデータベース（Ｆ）４１２から選択済み多重処理用のモジュールポートコードをチェックする。モジュールポートコードはノード６０２で特定の処理を実行するための処理モジュールを確認するための識別子である。データベース（Ｆ）４１２のデータはサービスプロバイダ６０６によってシステムのスタート前に記憶される。加えて、データベース（Ｆ）４１２はサービスプロバイダが新しいサービスをインストールするときに更新される。利用者６０５は多重処理にウイルスチェックおよび暗号化を選択しているので、モジュールポートコードはデータベース（Ｆ）４１２からそれぞれＭ−２およびＭ−１に決定される。Ｍ−２およびＭ−１の値はそれぞれ２および１に等しい。そして、伝送制御セクション６１１は図２８に示されたデータベース（Ｇ）を参照し、多重処理が実行される順序に対応する順序コードを選択する。サービスプロバイダ６０６はシステムをスタートする前にデータベース（Ｇ）６１５用のデータをダウンロードする。この例では、利用者６０５は利用者の要求に基づいた多重処理の実行順序を選択する。したがって、順序コードＲ−１はデータベース（Ｇ）６１５を参照することにより選択される。
【００８６】
やはり、伝送制御セクション６１１はデータ記憶セクション６１３にアクセスし、処理後に利用者が受信者に送信することを望んでいるデータを読み込む。利用者６０５はスタート前にデータ記憶セクション６１３のデータを記憶する。このデータを読み込んだ後、伝送制御セクション６１１は図２９Ａに示されたデータパッケージ６４０をアセンブルする。データパッケージ６４０は、ＩＰ／ＴＣＰヘッダーデータ１００、多重処理ヘッダーデータ６４１および処理用のデータ６４２からなる。
【００８７】
詳細には、多重処理ヘッダーデータ６４１は、数データ６４３、順序コードデータ６４４、実行済み処理数データ６４５および多重モジュールポートコードデータ６４６、６４７からなる。数データ６４３は１バイトからなり処理動作が幾つ要求されているのかを示す。この例では、利用者６０５は２つの処理動作、すなわちウイルスチェックと暗号化を選択しており、したがってこの数フィールドは２の値が与えられる。順序コードデータ６４４は１バイトからなり多重処理の実行順序をどのように決定するかを示す。この例では、利用者６０５が順序を選択しており、したがって順序コードデータ６４４がコードＲ−１を含む。実行済み処理数６４５は１データバイトからなり、処理動作が幾つ実行されているかを示す。この段階では、実行されている処理はなく、したがってデータ６４５はゼロに設定される。このデータ値は処理モジュール６２６〜６２９の１つによって実行された各処理の後にインクリメントされるだろう。数データ６４３は６４６および６４７等の処理要求データの数に対応する。各処理要求データは１バイトからなる。この場合、２つの処理要求データが存在するので、数データの値は２である。処理要求データの個々の値はデータベース（Ｆ）を参照することにより選択される。利用者６０５は多重処理にウイルスチェックと暗号化を選択しているので、データ６４６およびデータ６４７はそれぞれ２および１の値に設定される。
【００８８】
そして、伝送制御セクション６１１は各データパッケージ６４０をＩＰパケットデータとして出力ポート６１４を介してネットワークノード６０２の入力ポートセクション６２０に送信し、各データパッケージはそこから要求分析セクション６２１に転送される。まず初めに、要求分析セクション６２１はデータ６４４をチェックする。データ６４４が順序コードＲ−１、すなわち１の値を有するコードである場合、要求分析セクション６２１はデータ６４０をルーチングセクション６２５に伝送する。選択的には、ゼロの値を有する順序コードＲ−２にデータ６３３が対応する図２９Ｂに示すごとくデータパッケージが構成されている場合、要求分析セクション６２１はヘッダーデータ６３１を順序決定セクション６２２に伝送し、データ６４８を内部ヘッダー制御セクション６２４に伝送する。データ６３１を受信した後、順序決定セクション６２２はデータベース（Ｈ）６２３を参照して多重処理の実行順序を決定する。データベース（Ｈ）６２３は図３０に示されており、処理モジュール６２３〜６２９が個々の処理を実行するべき順序に対応したデータを含んでいる。順序決定セクション６２２は図３１に示された２の値のモジュールポートデータ６３５を、１の値のモジュールポートデータ６３６と共に、受信する。データベース（Ｈ）６２３により、データ６３５の順序は４の値を有するＯ−４であり、データ６３６の順序は１の値を有するＯ−１である。順序決定セクション６２２はこれらのデータを降順、すなわち最も高い値を１番目にして再配置するので、データ６３８をデータ６３６に置き換え、データ６３９をデータ６３５に置き換える。
【００８９】
そして、順序決定セクション６２２は結果として生じるデータ６３７を内部ヘッダー制御セクション６２４に伝送する。内部ヘッダー制御セクション６２４はデータ６３７とデータ６４８を受信する。そして内部ヘッダー制御セクション６２４は図２９Ｂに示されたデータ６４８内のデータ６３１をデータ６３７に置き換える。その後、内部ヘッダー制御セクション６２４はデータ１００、データ６３７およびデータ６４２をルーチングセクション６２５に伝送する。ルーチングセクション６２５はデータ１００、データ６３７およびデータ６４２、またはデータ６４０を受信する。この例では、ルーチングセクション６２５は図３２に詳細に示すごとくデータ６４０を受信する。
【００９０】
ルーチングセクション６２５は数データ６４３の値と実行済み処理数データ６４５の値とを比較する。値が異なる場合、ルーチングセクション６２５はデータ６４５に１を加えた値を計算する。この例では、実行済み処理データ６４５の値は最初はゼロに等しい。したがって、データ６４５に１を加えた値は１に等しい。そして、ルーチングセクション４２５はデータ６４５から第１データフィールドをチェックする。そしてルーチングセクション６２５はモジュールポートコード６４６の値をチェックする。この例では、データ６４６の値はモジュールポート２に対応する。したがって、ルーチングセクション６２５はデータ１００、データ６４１およびデータ６４２を図２７に示された処理モジュール（２）６２７に送信する。処理モジュール（２）６２７はデータ６４２上でウイルスチェックプログラムを実行してデータ６５２を生成する。加えて、処理モジュール（２）６２７はデータ６４６を図２３に示されているデータ４５６に置き換える。図２３に示すごとく、各処理モジュールは受信側で処理済みデータにインバース処理を実行するための情報を有する。処理モジュール（２）６２７はデータ６４５の値をデータ６５５、すなわちデータ６４５に１を加えた値に置き換える。そして処理モジュール（２）６２７はデータ１００、データ６５１およびデータ６５２をルーチングセクション６２５に返送する。
【００９１】
そしてルーチングセクション６２５は数データ６４３の値と実行済み処理数データ６５５の値とを比較する。両方のデータの値が同じでないので、ルーチングセクション６２５はデータ６５５に１を加えた値を計算する。データ６５５に１を加えた値が２であるので、ルーチングセクション６２５はモジュールポートコード６４７の値をチェックする。この例では、データ６４７の値はモジュールポート１に対応する。したがってルーチングセクション６２５はデータ１００、データ６５１およびデータ６５２を図２７に示された処理モジュール（１）６２６に送信する。処理モジュール（１）６２６はデータ６５２上で暗号化プログラムを実行してデータ６６２を生成する。加えて、処理モジュール（１）６２６は図２３に示すごとくデータ６４７をデータ４６７に置き換える。やはり、処理モジュール（１）６２６はデータ６５５の値をデータ６５５に１を加えたデータ６６５の値に置き換える。そして、処理モジュール（１）６２６はデータ１００、データ６６１およびデータ６６２をルーチングセクション６２５に送信する。ルーチングセクション６２５は数データ６４３の値と実行済み処理数データ６６５の値とを比較する。このとき、データの値は両方とも同じであり、したがってルーチングセクションはデータ１００、データ６６１およびデータ６６２を出力ポート６３０を経由して受信者に送信する。
【００９２】
第６実施形態の受信側のための構成要素は、第５実施形態に関連して記述され図２４に示されたネットワークノード４０３を含む。この実施では、ノード４０３はデータ１００、データ６６１および６６２を受信する。第５実施形態と第６実施形態との間の差は、第６実施形態ではノード４０３で受信されたデータ内にデータ６４４が付加的に含まれるが、このことによってその動作方法が変わるということがないということである。
【００９３】
【発明の効果】
本発明によれば、ネットワークルータブルデータ上で多重処理を柔軟に実行可能とするためのＩＰネットワークで使用されるネットワークノード構造を提供することができる。
【図面の簡単な説明】
【図１】本発明によるプログラム可能多重処理システムの第１の実施形態の送信側のブロック図。
【図２】図１、図１２に示されたデータベース（Ａ）のコンテンツを示す図。
【図３】第１の実施形態において送信者から受信者に送信されるデータのフォーマットを示す図。
【図４】図１、図１２および図１３に示されたデータベース（Ｂ）のコンテンツを示す図。
【図５】第１の実施形態において多重処理を実行するための内部ヘッダーをどのように作成するのかを示す図。
【図６】処理モジュールにおける各処理の後に内部ヘッダーデータをどのように変更するかの手順を示す図。
【図７】図１において各処理モジュールで維持されるインバース処理データを示す図。
【図８】本発明の第１の実施形態のプログラム可能多重処理システムの受信側のブロック図。
【図９】図８に示されたデータベース（Ｃ）のコンテンツデータを示す図。
【図１０】多重インバース処理を実行するための内部ヘッダーをどのように作成するのかを示す図。
【図１１】インバース処理モジュールにおける各インバース処理の後に内部ヘッダーデータをどのように変更するのかを示す図。
【図１２】本発明によるプログラム可能多重処理システムの第２の実施形態の送信側のブロック図。
【図１３】本発明の第３の実施形態のためのネットワークノードのブロック図。
【図１４】図１３に示されているデータベース（Ｄ）のコンテンツを示す図。
【図１５】第３の実施形態において送信者から受信者に送信されるデータのフォーマットを示す図。
【図１６】本発明によるプログラム可能多重処理システムの第４の実施形態の送信側のブロック図。
【図１７】第４の実施形態において送信者から受信者に送信されるデータのフォーマットを示す図。
【図１８】図１６に示されたデータベース（Ｅ）のコンテンツを示す図。
【図１９】本発明によるプログラム可能多重処理システムの第５の実施形態の送信側のブロック図。
【図２０】図１９に示されたデータベース（Ｆ）のコンテンツを示す図。
【図２１】第５の実施形態において送信者から受信者に送信されるデータのフォーマットを示す図。
【図２２】処理モジュールの１つによって実行される各処理の後に変化する内部ヘッダーを示す図。
【図２３】図１９において各処理モジュールで維持され、受信側で処理済みデータにインバース処理を実行するデータを示す図。
【図２４】本発明の第５の実施形態のための受信側のブロック図。
【図２５】図２４に示されているリバースセクションで変化する内部ヘッダーを示す図。
【図２６】インバース処理モジュールによって実行された処理の後に変化する内部ヘッダーを示す図。
【図２７】本発明によるプログラム可能多重処理システムの第６の実施形態の送信側のブロック図。
【図２８】データベース（Ｇ）のコンテンツを示す図。
【図２９】第６の実施形態において送信者から受信者に送信されるデータのフォーマットを示す図。
【図３０】データベース（Ｈ）のコンテンツを示す図。
【図３１】第６の実施形態において多重処理を実行するための内部ヘッダーをどのように作成するのかを示す図。
【図３２】各処理モジュールにおいて処理された後に変化する内部ヘッダーを示す図。
【図３３】前述の先行技術のネットワークノードのブロック図。
【符号の説明】
１：端末、２，２００，３０２，４０２，４０３，６０２：ネットワークノード、３：ネットワークノード、４：受信者、５，３０５：利用者、６：サービスプロバイダ、１０，３１０：入力セクション、１１：伝送コントローラ、１２：データベース（Ａ）、１３：データ記憶セクション１４：出力ポート、２０：入力ポート、２１：要求分析セクション、２２：順序決定セクション、２３：データベース（Ｂ）、２４：内部ヘッダー制御セクション、２５：ルーチングセクション、２６〜２９：処理モジュール（１〜ｎ）、３０：出力ポート、３１：要求分析セクション、３２：順序決定セクション、３３：データベース（Ｃ）、３４：内部ヘッダー制御セクション、３５：ルーチングセクション、３６，３７：インバース処理モジュール（１，３・・・）、３８：出力ポート、３９：入力ポート、４０：データパッケージ、４１：多重処理ドラフトヘッダーデータ、４２：処理されることになるデータ、４３，８３：数データ、４４：順列／組合せデータ、４５：実行済み処理数データ、４６，４７：処理要求に対応する個々の処理コードデータ、４８，４９，５３，５４，５５，５６，５７，６１，６２，６３，６４，６５，６６，６７，６９，７０，７６，７７，８０，８４，８６，８９，９０，１００：データ、８５：実行済みインバース処理数データ、８８，９１：実行済みインバース処理数データ、９２：ヘッダーデータ、８７：インバース処理モジュールポートの場所を指示すデータ、２１１，２１２：入力ポートセクション（１、２）、２４０：データベース（Ｄ）、２２０：分類セクション、２２１：要求分析セクション、２２２：順序決定セクション、２２３：データベース（Ｂ）、２２４：内部ヘッダー制御セクション、２２５：ルーチングセクション、２２６〜２２９：処理モジュール（１〜ｎ）、２３５：ルーチングセクション、２３１，２３２：出力ポート（１、２）、３０１：利用者端末、３１１：伝送制御セクション、３１３：データ記憶セクション３１４：出力ポート、３２０：入力ポート、３２１：送信者分析セクション、３１６：データベース（Ｅ）、３２２：順序決定セクション、３２３：データベース（Ｂ）、３１５：入力セクション、３１２：データベース（Ａ）、３２４：内部ヘッダー制御セクション、３２５：ルーチングセクション、３２６〜３２９：処理モジュール（１〜ｎ）、３３０：出力ポート、３０６：サービスプロバイダ、４０１：利用者端末、４１０：入力セクション４１０、４１１：伝送制御セクション、４１２：データベース（Ｆ）、４１３：データ記憶セクション、４１４：出力ポート、４２０：入力セクション、４２５：ルーチングセクション、４２６〜４２９：処理モジュール（１〜ｎ）、４３０：出力ポート、４０４：受信者端末、４３９：入力ポート、４３４：リバースセクション、４３５：ルーチングセクション、４３６，４３７：インバース処理モジュール（１、３・・・）、４３８：出力ポート、６０１：利用者端末、６０６：サービスプロバイダ、６０１：利用者端末６０１、６１０：入力セクション、６１１：伝送制御セクション、６１３：データ記憶セクション、４１２：データベース（Ｆ）、６１５：データベース（Ｇ）、６１４：出力ポートセクション、６２０：入力ポート、６２１：要求分析セクション、６２２：順序決定セクション、６２３：データベース（Ｈ）、６２４：内部ヘッダー制御セクション、６２５：ルーチングセクション、６２６〜６２９：処理モジュール（１〜ｎ）、６３０：出力ポート。
【図１】
0003973533.tif 000002
【図２】
0003973533.tif 000003
【図３】
0003973533.tif 000004
【図４】
0003973533.tif 000005
【図５】
0003973533.tif 000006
【図６】
0003973533.tif 000007
【図７】
0003973533.tif 000008
【図８】
0003973533.tif 000009
【図９】
0003973533.tif 000010
【図１０】
0003973533.tif 000011
【図１１】
0003973533.tif 000012
【図１２】
0003973533.tif 000013
【図１３】
0003973533.tif 000014
【図１４】
0003973533.tif 000015
【図１５】
0003973533.tif 000016
【図１６】
0003973533.tif 000017
【図１７】
0003973533.tif 000018
【図１８】
0003973533.tif 000019
【図１９】
0003973533.tif 000020
【図２０】
0003973533.tif 000021
【図２１】
0003973533.tif 000022
【図２２】
0003973533.tif 000023
【図２３】
0003973533.tif 000024
【図２４】
0003973533.tif 000025
【図２５】
0003973533.tif 000026
【図２６】
0003973533.tif 000027
【図２７】
0003973533.tif 000028
【図２８】
0003973533.tif 000029
【図２９】
0003973533.tif 000030
【図３０】
0003973533.tif 000031
【図３１】
0003973533.tif 000032
【図３２】
0003973533.tif 000033
【図３３】
0003973533.tif 000034