(57)【特許請求の範囲】
【請求項１】
データネットワークノードで二重の処理を回避する方法であって、
（Ａ）ネットワークノードがホストに隣接するか否かを判定するステップ、
（Ｂ）前記ホストに関連するデータパケットを受領するステップ、及び
（Ｃ）前記ネットワークノードが前記ホストに隣接している場合のみ、前記データパケットに対し１回限りの操作を実行するステップ
からなり、前記判定するステップ（Ａ）が、
（Ａ１）同報データパケットを受領し、前記同報データパケットの受領に応答して、前記ネットワークノードが前記ホストに隣接していると決定するステップであって、前記ネットワークノードと前記ホストとの間に、前記データパケットに対して前記１回限りの操作を適用できるデータネットワークノードを前記ネットワークノード以外に含まない経路が存在する場合のみ、前記ネットワークノードと前記ホストとが隣接しているとみなされる、ステップ、及び
（Ａ２）前記同報データパケットをドロップするステップ
からなる方法。
【請求項２】
前記同報データパケットは、前記ホストと共存するコントローラから送信されることを特徴とする請求項１記載の方法。
【請求項３】
データネットワークノードで二重の処理を回避する方法であって、
（Ａ）ネットワークノードがホストに隣接するか否かを判定するステップ、
（Ｂ）前記ホストに関連するデータパケットを受領するステップ、及び
（Ｃ）前記ネットワークノードが前記ホストに隣接している場合のみ、前記データパケットに対し１回限りの操作を実行するステップ
からなり、前記判定するステップ（Ａ）が、
（Ａ３）ピンパケットを前記ホストに送信するステップ、
（Ａ４）ピン応答を受領し、前記ピン応答の受領に応答して、前記ネットワークノードは前記ホストに隣接すると決定するステップであって、前記ネットワークノードと前記ホストとの間に、前記データパケットに対して前記１回限りの操作を適用できるデータネットワークノードを前記ネットワークノード以外に含まない経路が存在する場合のみ、前記ネットワークノードと前記ホストとが隣接しているとみなされる、ステップ、及び
（Ａ５）他のネットワークノードから受信したピンパケットをドロップするステップ
からなる方法。
【請求項４】
前記ピンパケットはネットワークコントローラから受信したホスト情報に応答して送信されることを特徴とする請求項３記載の方法。
【請求項５】
前記ホストが前記データパケットのソースまたはあて先である場合に、前記データパケットは前記ホストに関連づけられることを特徴とする請求項１記載の方法。
【請求項６】
ネットワークノードであって、
（Ａ）ネットワークノードがホストに隣接するか否かを判定する手段、
（Ｂ）前記ホストに関連するデータパケットを受領する手段、及び
（Ｃ）前記ネットワークノードが前記ホストに隣接している場合のみ、前記データパケットに対し１回限りの操作を実行する手段
からなり、前記判定する（Ａ）の手段が、
（Ａ１）同報データパケットを受領し、前記同報データパケットの受領に応答して、前記ネットワークノードが前記ホストに隣接していると決定する手段であって、前記ネットワークノードと前記ホストとの間に、前記データパケットに対して前記１回限りの操作を適用できるデータネットワークノードを前記ネットワークノード以外に含まない経路が存在する場合のみ、前記ネットワークノードと前記ホストとが隣接しているとみなされる、手段、及び
（Ａ２）前記同報データパケットをドロップする手段
からなるネットワークノード。
【請求項７】
前記放送データパケットは、前記ホストと共存するコントローラから受領することを特徴とする請求項６記載のネットワークノード。
【請求項８】
ネットワークノードであって、
（Ａ）ネットワークノードがホストに隣接するか否かを判定する手段、
（Ｂ）前記ホストに関連するデータパケットを受領する手段、及び
（Ｃ）前記ネットワークノードが前記ホストに隣接している場合のみ、前記データパケットに対し１回限りの操作を実行する手段
からなり、前記判定する（Ａ）の手段が、
（Ａ３）ピンパケットを前記ホストに送信する手段、
（Ａ４）ピン応答を受領し、前記ピン応答の受領に応答して、前記ネットワークノードは前記ホストに隣接すると決定する手段であって、前記ネットワークノードと前記ホストとの間に、前記データパケットに対して前記１回限りの操作を適用できるデータネットワークノードを前記ネットワークノード以外に含まない経路が存在する場合のみ、前記ネットワークノードと前記ホストとが隣接しているとみなされる、手段、及び
（Ａ５）他のネットワークノードから受信したピンパケットをドロップする手段
からなるネットワークノード。
【請求項９】
前記ピンパケットはネットワークコントローラから受信したホスト情報に応答して送信されることを特徴とする請求項８記載のネットワークノード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データネットワークに関し、特にデータネットワーク内での二重の処理を回避する方法に関する。
【０００２】
【従来の技術】
データパケットがネットワーク内を通過する際に、様々な操作がこのデータパケットに加えられる。このような操作は、例えばルーティング、タギング、圧縮、アカウンティング、暗号化、シェーピング等が含まれる。ある種の操作、例えばルーティングは、各ノードで各データパケットに加えられる。他の操作、例えば暗号化はネットワークをデータパケットが通過する際、一度だけ各データパケットに加えられる。このような操作は、本明細書では１回限りの操作と称する。
【０００３】
一般的に、操作がパケットに１回に限られるのは、２つの理由がある。即ち、正確さと効率性である。第１に複数回の操作をデータパケットに対し行うことは正確でなくなり、例えば課金のアプリケーションにおいては、データパケットから使用データを１回限り捕獲するのが適当である。使用データを２つの別々のネットワークノードで２回捕獲することは二重の課金に繋がりこれは正確ではなくなる。
【０００４】
例えば同時継続出願の米国特許第０９／３１５６３６（attorney docket no. Blott 7-10-7）においては、使用データが特定のユーザに対し集められる監視システムを開示している。このような監視システムが課金のアプリケーションと共に用いられる場合には、異なるネットワークノードで使用情報を複数回捕獲することになり不正確となる。
【０００５】
パケットに対し１回しか操作をしてはいけない第２の理由は効率性である。操作はコストが係り、操作を複数回行うことは利点がないために、複数回の操作を行ったアプリケーションが例え不正確でないにしても、操作は１回限り行われるべきである。この種の操作の例は、暗号化プロセスと圧縮プロセスである。この種の操作においては、操作を行うに関して大幅なコストが係り、複数回の操作を行う利点は存在しない。さらにまた、脱暗号化と脱圧縮の逆方向の操作がいずれにしてもこのデータに対し加えられるために、これらの操作が１回限り行われることが必要である。
【０００６】
大きなネットワークに対しては、１回しか操作をすることのできない多くのネットワークノードを含む。さらにまた、ネットワーク内をパケットが移動する間、パケットは複数個のこれらのノードにより処理される。これはデータパケットを受信したときに、あるネットワークノードはいかに決定すべきか、あるいは１回のみの操作が行われたか、あるいは１回のみの操作があるネットワークノードに対し適用されたか否かの問題が発生することになる。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、複数のネットワークノードにおいて、データパケットに対し１回のみの処理が行われるネットワークを提供することである。
【０００８】
【課題を解決するための手段】
本発明においては、ネットワークノードにおける複数回の処理は、データパケットのソースと宛先のいずれかに隣接するネットワークノードで１回のみの処理が適用される。
【０００９】
本明細書において「オペレータ」とは、１回のみの操作を行うことのできるネットワークノードを意味し、「ホスト」とは、データパケットを生成および受領するエンドユーザマシーンを意味する。かくして本発明においては、オペレータが、データパケットのソースホストあるいは宛先ホストに隣接する場合にのみデータパケットに対し１回限りの処理を行う。オペレータとホストとの間で他のオペレータを含まないようなパスが存在する場合に、オペレータはホストに隣接しているとする。
【００１０】
本発明の一実施例においては、データパケットを宛先に送信する前にホストは特別なデータパケットを同報する。オペレータが特別なデータパケットを受領した場合、オペレータがそのホストに隣接していると決定する。さらにまた、他のオペレータが特別なデータパケットを受領していないことを確認するために、受信側オペレータはデータパケットをドロップする。かくして、ホストに隣接しているオペレータのみがホストから同報された特別なデータパケットを受領する。
【００１１】
本発明の第２実施例は、２つのフェーズからなる。第１フェーズにおいては、ネットワーク内のコントローラノードは、オペレータに対し関係のあるホストの識別子を送信する。ホストからのデータパケットが一回限りの処理を必要とする場合に、ホストはオペレータに対し関連があると称する。かくして、第１フェーズの終了時には、ネットワーク内のオペレータは、データパケットが１回限りの処理を必要とするホストを知ることができるが、オペレータは、自分がこれらのホストに隣接しているか否かは分からない。第２フェーズにおいては、オペレータは、特殊なピンパケットを第１フェーズで特定されたホストに送る。
【００１２】
このピンパケットを受領すると、ホストは、ピンレスポンスで応答する。このピンレスポンスを受領すると、オペレータはピンレスポンスを送信したホストに隣接すると決定する。隣接するオペレータのみがピンレスポンスを受領していることを確認するために、オペレータは他のオペレータから受領した特別なピンパケットをドロップする。このようにして介在するオペレータは、隣接しないオペレータからの特別なピンパケットをインターセプトしてドロップし、その結果隣接しないオペレータからの特別なピンパケットは宛先ホストには到着せずかくしてピン応答は隣接しないホストが受領することはない。
【００１３】
【発明の実施の形態】
図１には、３種類のネットワークノード、即ちホスト（Ｈ）とオペレータ（Ｏ）とコントローラ（Ｃ）とを示す。ホストは、データネットワークに接続され、ネットワークトラフィックを生成するエンドユーザマシーンである。オペレータは、受信したデータパケットに対し１回限りの操作を適用するネットワークノードである。オペレータは１回限りの操作を適用する機能専用のネットワークノードである。オペレータは１回限りの操作を適用することに加えて他の目的も実行する。
【００１４】
例えばオペレータはルータであり、さらにデータパケットをルーティングすることに加えて１回限りの操作を実行する。コントローラは、トラフィックが関連するホストに関するオペレータに対し情報を分配するネットワークノードである。かくして、コントローラは、ホストの識別およびホストのデータトラフィックを分配し、オペレータが受信したときには１回限りの操作の適用を要求する。
【００１５】
かくして、オペレータは特定のホストに対する課金情報を収集するためのネットワーク監視を実行するものと見なすことができる。コントローラはオペレータがこのような課金情報を収集するための特定のホストの識別子を分配する。図１は、ホストＨ1１０２，Ｈ3１０６，Ｈ4１１６，オペレータＯ1１０４，Ｏ2１１４，Ｏ3１１０，コントローラＣ2１０８とを示す。ノード１１２は、ホストＨ2１２６とコントローラＣ1１２８がシングルノード１１２上に同時に存在するノードを表す。
【００１６】
本発明によるネットワーク動作は、適宜に構成されたデジタルコンピュータにより実行される。図４は、ネットワークオペレータ４００の一実施例の構成要素のブロック図である。オペレータ４００はプロセッサ４０２を有し、オペレータ４００の全体的機能を制御する。プロセッサ４０２は、メモリ４０４に記憶されたコンピュータプログラムコードに従って動作する。メモリ４０４は、コンピュータが読み込み可能な媒体で、例えばＲＡＭ、ＲＯＭ、光学ディスク、磁気ディスクあるいはこれらの媒体の組合せである。
【００１７】
プロセッサ４０２は、メモリ４０４内のコンピュータプログラムコードを実行してオペレータ４００の機能を制御する。プロセッサ４０２は、ネットワークインタフェース４０６，４０８に接続され、これらがネットワークデータパケットを送受信する。本発明は、プログラムされたデジタルコンピュータを用いて容易に実現できる。本発明によるネットワークを実際に実現するためには他の構成要素も含む。例えば、このような他の構成要素は図４には示していない。
【００１８】
一実施例として、ホストＨ1１０２は、ホストＨ3１０６にデータパケットを送信し、このデータパケットは、１回限りの操作が必要とされているものとする。オペレータＯ1１０４は、Ｈ1１０２とＨ3１０６との間のパスで唯一のオペレータであり、このオペレータＯ1１０４は、１回限りの操作を実行し、複数回の操作が行われない。
【００１９】
しかし、ホストＨ1１０２がホストＨ4１１６にデータパケットを送っていると仮定すると、オペレータＯ1１０４とＯ3１１０の両方が、ホストＨ1１０２とＨ4１１６との間に有り、このオペレータＯ1１０４とＯ3１１０の両方により複数の操作が行われる可能性がある。同様にホストＨ1１０２がホストＨ2１２６にデータパケットを送信している場合には、１回限りの操作が、オペレータＯ1１０４，Ｏ3１１０，Ｏ2１１４により合わせて３回も行われる可能性がある。
【００２０】
本発明は、データパケットが複数のオペレータを通過する場合でも、唯一のネットワークオペレータにより１回限りの操作が行われる技術を提供するものである。本発明によれば、１回限りの操作が数個のネットワークオペレータにより適用された場合には、パケットのソースまたはパケットの宛先のいずれか（オペレーションの種類に依存する）に最も近いオペレータによってのみ操作が実行される。本明細書においては、オペレータとホストの間のパスが操作を実行できる他の要素を含まないような場合に、操作を実行できるネットワークオペレータはホストに隣接していると定義する。
【００２１】
かくして、本発明によれば、オペレータがパケットのソースまたは宛先に隣接している場合に、オペレータは１回限りの操作をデータパケットに加えることができる。パケットのソースまたは宛先（または両方）に隣接するオペレータノードである操作が行われるか否かは操作そのものに依存する。例えば、圧縮操作および暗号化操作はパケットのソースに隣接するオペレータノードで通常実行されるが、脱圧縮操作と脱暗号化操作はパケットの宛先ノードに隣接するオペレータノードで実行される。パケットのソースと宛先の両方に隣接するオペレータノードでアカウンティング操作を行うのが好ましい。
【００２２】
図１のネットワークトポロジーにおいて、オペレータＯ1１０４はホストＨ1１０２とＨ3１０６に隣接し、オペレータＯ2１１４はホストＨ2１２６とＨ4１１６に隣接し、オペレータＯ3１１０はホストＨ3１０６とＨ4１１６に隣接している。
【００２３】
オペレータが特定のホストに隣接しているか否かを決定するには２つの方法がある。第１の方法は、コントローラとホストがネットワークノード上に共存する場合に、例えばホストＨ2１２６とコントローラＣ1１２８がネットワークノード１１２上に共存する場合に用いられる。第２の方法は、コントローラとホストが共存しない場合に用いられる。
【００２４】
第１の方法を図２を用いて説明する。コントローラＣ1２１２と共存しているホストＨ1２１０がネットワークノード２０２の上にあると仮定する。ホストＨ1２１０はデータパケットをホストＨ2２０８に送ろうとする。Ｈ1２１０からＨ2２０８に送られたデータパケットは、オペレータＯ1２０４とＯ2２０６とを通過する。この第１の方法に従って、ホストがデータパケットを新たな宛先ホストに送信する前に共存したコントローラは、特別なデータパケット（Ｓ−パケット）を宛先ホストに送信する。
【００２５】
このＳ−パケットは、共存ホストの識別子とパケットをＳ−パケットと識別した他の識別子を含む。例えば、Ｓ−パケットはインターネットコントロールメッセージプロトコル（Internet Comtrol Message Protocol＝ＩＣＭＰ）に基づき、パケットのペイロードはＳ−パケットが通常のＩＣＭＰパケットから容易に区別されるような方法で符号化されている。Ｓ−パケットを受領したオペレータは、自分が特定されたホストに隣接していると結論づけ、その後その宛先方向にそのパケットを転送することなしＳ−パケットをドロップする。
【００２６】
これによりＳ−パケットを受領する下流側のオペレータが存在しないことになる。図２において、ホストＨ1２１０がデータパケットを最初にホストＨ2２０８に送信しようとすると、コントローラＣ1２１２はまずホストＨ2２０８にアドレスされたＳ−パケット２１４を送信する。このＳ−パケット２１４をオペレータＯ1２０４が受領する。
【００２７】
Ｓ−パケット２１４を受領するとオペレータＯ1２０４は自分がホストＨ1２１０に隣接していると結論づけ、そしてＳ−パケット２１４をドロップする。かくして、オペレータＯ1２０４は自分がホストＨ1２１０に隣接していることを知り、ホストＨ1２１０に関連したデータパケットに対し１回限りの操作を適用する（即ち、ホストＨ1２１０はデータパケットのソースホストまたは宛先ホストのいずれかである）。
【００２８】
さらにまた、オペレータＯ1２０４はＳ−パケット２１４をドロップしたので、オペレータＯ2２０６はこのＳ−パケットを受領せず、オペレータＯ2２０６は、ホストＨ1２１０に関連したデータパケットに対し１回限りの操作を適用しない。かくして、ホストＨ1２１０からのデータパケットをホストＨ2２０８への途上でオペレータＯ2２０６が受領すると、オペレータＯ2２０６はこのデータパケットに対し１回限りの操作を実行せず、その代わり単にこのデータパケットをＨ2２０８に転送するだけである。
【００２９】
オペレータが特定のホストに隣接しているか否かを決定する第２の方法を次に説明する。この第２の方法は、コントローラとホストが共存しない場合に用いられる。この方法は２つのフェーズで発生する。第１フェーズの間コントローラは、全てのオペレータに対しデータパケットが１回限りの操作を必要とするようなホストの識別子を同報する。かくして、第１フェーズの終了時において、全てのオペレータはホストの存在を認識するが、オペレータは自分がホストに隣接しているか否かは分からない。
【００３０】
第２フェースにおいては、各オペレータはピン技術を用いて自分がホストに隣接しているか否かを決定する。ピン技術は、第１ネットワークノードがピンパケットを第２ネットワークノードに送信するような公知のインターネットプロトコル（ＩＰ）技術である。ピンパケットを受領すると、ノードはピンレスポンスで応答する。ピンは、データネットワークで公知のもので、ノードが活性状態であるか否かを決定するため、あるいはネットワークの接続性をテストするために用いられる。
【００３１】
本発明の一実施例においては第２フェースの間第１フェーズの間にホスト識別子を受領した全てのオペレータはＳ−ピンと称する特殊ピンを識別されたホストに送信する。さらにオペレータが別のオペレータからホストに向けられたＳ−ピンを受領した場合には、このオペレータはこのＳ−ピンをドロップする。ホストがＳ−ピンを受領すると、ホストはＳ−ピンレスポンスでもって応答する。第２フェーズによれば、ホストは隣接するオペレータからＳ−ピンを１回限り受領するが、その理由は隣接しないオペレータは介在オペレータによりドロップされたＳ−ピンを受領するからである。
【００３２】
かくして、オペレータがホストからＳ−ピンレスポンスを受領すると、オペレータは自分がそのホストに隣接すると決定し、ホストに関連するデータパケットに対し１回限りの操作を適用する。オペレータが所定の時間内にＳ−ピンレスポンスを受領しない場合には、オペレータは自分がホストに隣接していないと決定し、そのホストに関連するデータパケットに対し、１回限りの操作を適用しない。この適宜の時間内とは、例えば１−２秒以下のオーダーである。
【００３３】
この第２の方法を図３を例に説明する。同図において、コントローラＣ1３０２はホストと共存していない。コントローラＣ1３０２は、ホストについておよびホストのデータパケットがネットワーク内のオペレータからの１回限りの操作を必要としていることを知り得る立場にあるとする。例えば、コントローラＣ1３０２はネットワーク上でホストを認証するネットワーク認証ノードである。ホストがネットワーク上で認証すると、コントローラＣ1３０２はそのホストの識別子をネットワーク内のオペレータに送信してオペレータはそのノードから発せられたデータネットワークあるいはそのノードに向けられた（即ち、関連づけられた）のデータネットワークに対し課金操作を実行する。
【００３４】
かくして、図３においてホストＨ1３０４に関連するデータパケットはネットワーク内のオペレータにより１回限りの処理を必要とすると仮定する。第１フェーズの間コントローラＣ1３０２はオペレータＯ1３０６とＯ2３０８にホストＨ1３０４の識別子を同報する。かくして、第１フェーズの終了時にオペレータＯ1３０６とＯ2３０８はホストＨ1３０４に関連したデータパケットが１回限りの処理を必要としていることを認知しているが、オペレータＯ1３０６とＯ2３０８はそれらがホストＨ1３０４に隣接しているか否かは知らない。
【００３５】
第２フェーズの間、オペレータＯ1３０６とＯ2３０８はＳ−ピン３１４，３１２をそれぞれホストＨ1３０４に送信する。オペレータＯ2３０８により生成されたＳ−ピン３１２をオペレータＯ1３０６が受領し、このオペレータＯ1３０６はＳ−ピン３１２をドロップする。かくして、オペレータＯ1３０６により送信されたＳ−ピン３１４のみがホストＨ1３０４に到着する。Ｓ−ピン３１４を受領すると、ホストＨ1３０４はＳ−ピン応答３１６でもって応答する。
【００３６】
Ｓ−ピン応答３１６を受領すると、オペレータＯ1３０６は自分がホストＨ1３０４に隣接していると決定し、ホストＨ1３０４に関連したデータパケットに対し１回限りの操作を実行する。オペレータＯ2３０８はＳ−ピン応答を受領しない。その理由はＳ−ピン３１２はオペレータＯ1３０６によりドロップされているからである。かくして、オペレータＯ2３０８は所定の時間内にＳ−ピン応答を受領せず、そして自分がホストＨ1３０４に隣接していないと決定する。かくして、オペレータＯ2３０８はホストＨ1３０４に関連したデータパケットに対し１回限りの操作を実行しない。
【００３７】
本発明の一実施例においては、コントローラはホストに関連する情報の分配を周期的に繰り返す。これによりあるデータパケットが失われる可能性に対処する。さらにまた、ネットワークトポロージー内の周期的変化に対応する。
【００３８】
本発明は、１回限りの操作を必要とするようなネットワークアプリケーションに適用できる。例えば、本発明の範囲を限定することなくある種のネットワークアプリケーションは、アカウンティング、課金、圧縮、トンネリング、符号化、クオリティオブサービス（ＱＯＳ）のパケットタギング、クオリティオブサービスの端末間の測定（例えば、遅延あるいはバンド幅）を含む。
【発明の効果】
【図面の簡単な説明】
【図１】本発明が適用されるデータネットワークの一部のネットワーク図
【図２】オペレータが特定のホストに隣接しているか否かを決定する第１の方法を表す図
【図３】オペレータが特定のホストに隣接しているか否かを決定する第２の方法を表す図
【図４】オペレータの一実施例の構成部品を表すブロック図
【符号の説明】
１０２  ホストＨ1
１０４  オペレータＯ1
１０６  ホストＨ3
１０８  コントローラＣ2
１１０  オペレータＯ3
１１２  ノード
１１４  オペレータＯ2
１１６  ホストＨ4
１２６  ホストＨ2
１２８  コントローラＣ1
２０２  ネットワークノード
２０４，３０６  オペレータＯ1
２０６，３０８  オペレータＯ2
２０８，３１０  ホストＨ2２１０，３０４  ホストＨ1２１２，３０２  コントローラＣ1
２１４  Ｓ−パケット
３０２  同報ホスト識別
３１２，３１４  Ｓ−ピン
３１６  Ｓ−ピン応答
４００  ネットワークオペレータ
４０２  プロセッサ
４０４  メモリ
４０６，４０８  ネットワークインタフェース
【図１】
0003782286.tif 000002
【図２】
0003782286.tif 000003
【図３】
0003782286.tif 000004
【図４】
0003782286.tif 000005