(57)【要約】【課題】  第一アドレス指定領域を持つ第一ネットワークを介したデバイスから第二ネットワーク内のデバイスへ、複数のセッションを開始できるようにするメカニズムを提供すること。【解決手段】  本発明は、第一ネットワークから第二ネットワークへセッションを開始することを可能にするための方法、インタフェース・デバイス、および演算デバイスのシステム、ならびに本方法を行うコンピュータ・プログラム製品とコンピュータ・プログラム要素とに関する。第二ネットワーク内の第二デバイスに関して、第一ネットワークを介して通信する第一演算デバイスから、インタフェース・デバイス内で名前クエリが受信される (44)。このクエリには、第一ネットワークの第一アドレス指定領域内の第一デバイスに対する第一アドレス (AZ) が含まれている。ゲートウェイはこの第一アドレスを、第二デバイスに属する第二ネットワーク内の第二アドレス指定領域内にある第二アドレス (AY) に結び付け (50)、かつゲートウェイに属する第一アドレス指定領域内の第三アドレス (AG) を有するメッセージでこのクエリに答える (52)。このインタフェース・デバイスは、住居向け家庭ネットワークとインターネット間に設けられたゲートウェイであることが好ましい。
2005539428.tif 000002
【特許請求の範囲】
【請求項１】
第一アドレス指定領域を持つ第一ネットワークを介して通信する第一演算デバイスから、第二アドレス指定領域を持つ第二ネットワーク上の第二演算デバイスへのセッションを開始することを可能にする方法であって、
前記第二デバイスに関し、かつ前記第一デバイスに関連付けられている前記第一アドレス指定領域の第一アドレスを含んだ名前クエリを受信するステップと、
前記受信された第一アドレスを、前記第二デバイスに属する前記第二アドレス指定領域の第二アドレスに結び付けるステップと、
前記第一ネットワークからセッションを開始することができるように、前記第一ネットワークと前記第二ネットワーク間のインタフェースに属する前記第一アドレス指定領域の第三アドレスを含むメッセージで前記クエリに答えるステップと、
を含む方法。
【請求項２】
前記クエリに答える前記ステップを行う前に、前記名前クエリの結果、前記第二アドレスを提供しかつ前記第二アドレスを前記第三アドレスに置換するステップを更に含む、請求項1に記載の方法。
【請求項３】
前記第三アドレスと前記第一アドレスを有する第一データ・パケットを前記第一デバイスから受信し、前記以前に行われた結び付けに基づいて前記第三アドレスを前記第二アドレスに変更し、かつ前記パケットを前記セッションの第一データ・パケットとして前記第二デバイスに転送するステップを更に含む、請求項1に記載の方法。
【請求項４】
前記第一データ・パケットが、前記第一アドレスに関連付けられた第一ポート番号と、前記第三アドレスに関連付けられた第二ポート番号とを含んでおり、かつ、
前記第一ポート番号と前記第二ポート番号を前記以前に結び付けられた第一アドレスと第二アドレスに結び付けて、前記第一ポート番号と前記第二ポート番号を保持させながら前記パケットを前記第二デバイスに転送するステップを更に含む、
請求項3に記載の方法。
【請求項５】
前記セッションの間に、前記第一デバイスから前記第二デバイスに送信された全てのデータ・パケットは、前記第三アドレスが前記第二アドレスに変更され、かつ前記第二デバイスから前記第一デバイスに送信された全てのデータ・パケットは、前記第二アドレスが前記第三アドレスに変更される、請求項3に記載の方法。
【請求項６】
受信されたパケットが、前記第二ネットワーク上のデバイスから開始されたセッションに属するか否かを検査し、属する場合には、このタイプのセッションに対して行われた結び付けにしたがってアドレスを翻訳し、属さない場合には、前記第二ネットワークの外部から開始されたセッションに対して行われた結び付けにしたがってパケットを転送するステップを更に含む、請求項5に記載の方法。
【請求項７】
非再帰的な名前クエリを前記第一デバイスから前記第二ネットワークへ送信するステップを更に含む、請求項1に記載の方法。
【請求項８】
第一アドレス指定領域を持つ第一ネットワークと、第二アドレス指定領域を持つ第二ネットワークとの間を接続するためのインタフェース・デバイスであって、前記インタフェース・デバイスと通信する第一演算デバイスから、前記第一ネットワークを介して、前記第二ネットワーク内の第二演算デバイスへのセッションを開始することが可能なインタフェース・デバイスにおいて、
前記第二デバイスに関する名前クエリであって、前記第一デバイスに関連付けられた前記第一アドレス指定領域の第一アドレスを含んだ名前クエリを受信するための、前記第一ネットワークに接続される第一入力と、
前記第一ネットワークに接続される第一出力と、
インバウンド・セッション・テーブルと、
前記受信された第一アドレスを、前記第二デバイスに属する前記第二アドレス指定領域の第二アドレスに結び付け、
前記第一アドレスと前記第二アドレスを前記インバウンド・セッション・テーブル内に格納し、
前記クエリに対する答えを、前記インタフェース・デバイスに属する前記第一アドレス指定領域の第三アドレスを有するメッセージとして生成し、かつ、
前記第一デバイスから前記第二デバイスへセッションを開始することができるように、前記第一出力から前記答えを送信する、
ように構成された制御ユニットと、
を有する、インタフェース・デバイス。
【請求項９】
前記名前クエリを受信し、前記名前クエリの結果前記第二アドレスを前記制御ユニットに提供するように構成された名前解明ユニットを更に含む、請求項8に記載のインタフェース・デバイス。
【請求項１０】
前記第一入力が、前記第三アドレスと前記第一アドレスを前記セッションの第一データ・パケットとして有する第一データ・パケットを前記第一デバイスから受信することができ、かつ
前記制御ユニットが、前記インバウンド・セッション・テーブル内の前記以前に行われた結び付けに基づいて前記第三アドレスを前記第二アドレスに変更して、前記第二デバイスへの前記パケットの転送を始動するように構成された、
請求項8に記載のインタフェース・デバイス。
【請求項１１】
前記第一データ・パケットが、前記第一アドレスに関連する第一ポート番号と、前記第三アドレスに関連付けられている第二ポート番号とを含んでおり、かつ、
前記制御ユニットが更に、前記第一ポート番号と前記第二ポート番号を、前記以前に結び付けられた第一アドレスと第二アドレスに結び付け、かつ前記第一ポート番号と前記第二ポート番号を保持させながら前記パケットを前記第二デバイスに転送するように構成された、
請求項10に記載のインタフェース・デバイス。
【請求項１２】
前記制御ユニットが、前記セッションの間に、前記第一デバイスから前記第二デバイスに送信された全てのデータ・パケット内の前記第三アドレスを前記第二アドレスに変更し、かつ前記第二デバイスから前記第一デバイスに送信された全てのデータ・パケット内の前記第二アドレスを前記第三アドレスに変更するように構成された、請求項10に記載のインタフェース・デバイス。
【請求項１３】
アウトバウンド・セッション・テーブルを更に含み、かつ、
前記制御ユニットが更に、受信されたパケットが前記第二ネットワーク上のデバイスから開始されたセッションに属しているか否かを前記アウトバウンド・セッション・テーブル内で検査し、属している場合はこのテーブル内で行われた結び付けにしたがってアドレスを翻訳し、属していない場合は前記インバウンド・セッション・テーブル内で行われた結び付けにしたがってパケットを転送するように構成された、
請求項12に記載のインタフェース・デバイス。
【請求項１４】
第一アドレス指定領域を持つ第一ネットワークに接続される、コンピューティング・デバイスのシステムであって、この第一ネットワークを介して第一演算デバイスが前記システムと通信可能となり、かつ第二アドレス指定領域を持つ第二ネットワークを有する、コンピューティング・デバイスのシステムにおいて、
当該第二ネットワークが、
第二演算デバイスと、
前記第一ネットワークと前記第二ネットワークとの間に設けられたインタフェース・デバイスであって、
前記第二デバイスに関する名前クエリであって、前記第一デバイスに関連付けられた前記第一アドレス指定領域の第一アドレスを含む名前クエリを受信するための、前記第一ネットワークに接続される第一入力と、
を有し、
前記第一ネットワークに接続される第一出力と、
インバウンド・セッション・テーブルと、
前記受信された第一アドレスを、前記第二デバイスに属する前記第二アドレス指定領域の第二アドレスに結び付け、
前記第一アドレスと前記第二アドレスを前記インバウンド・セッション・テーブル内に格納し、
前記クエリに対する答えを、前記インタフェース・デバイスに属する前記第一アドレス指定領域の第三アドレスを有するメッセージとして生成し、かつ、
前記第一デバイスから前記第二デバイスへセッションを開始することができるように、前記第一出力からの前記答えの送信を始動する、
ように構成された制御ユニットと、
を有する、インタフェース・デバイスと、
を有する、コンピューティング・デバイスのシステム。
【請求項１５】
非再帰的な名前クエリを前記第二ネットワークに送信するように構成された前記第一コンピュータ・デバイスを更に有する、請求項14に記載のコンピューティング・デバイスのシステム。
【請求項１６】
第一アドレス指定領域を持つ第一ネットワークと、第二アドレス指定領域を持つ第二ネットワークとの間に接続可能なコンピュータ上で使用されるコンピュータが読み取り可能な媒体を有し、第一演算デバイスが前記第一ネットワークを介して前記コンピュータと通信することができ、かつ前記第二ネットワークが第二演算デバイスを有する、コンピュータ・プログラム製品であって、
当該コンピュータが読み取り可能な媒体が、その上に、
当該プログラムが前記コンピュータ内にロードされると前記コンピュータを実行させるコンピュータ・プログラム・コード手段であって、
前記第二コンピューティング・デバイスに関連し、かつ前記第一演算デバイスに関連付けられた前記第一アドレス指定領域の第一アドレスを含んでいる名前クエリを、前記第一コンピューティング・デバイスから受信すると直ちに、
前記受信された第一アドレスを、前記第二デバイスに属する前記第二アドレス指定領域の第二アドレスに結び付け、かつ、
前記第一デバイスから前記第二デバイスへのセッションを開始することができるように、前記コンピュータに属する前記第一アドレス指定領域の第三アドレスを有するメッセージで前記クエリに答える、コンピュータ・プログラム・コード手段、
を持つコンピュータ・プログラム製品。
【請求項１７】
第一アドレス指定領域を持つ第一ネットワークと、第二アドレス指定領域を持つ第二ネットワークとの間に接続可能なコンピュータ上で使用され、第一演算デバイスが前記第一ネットワークを介して前記コンピュータと通信することができ、前記第二ネットワークが第二演算デバイスを有する、コンピュータ・プログラム要素であって、
当該コンピュータ・プログラム要素が、
当該プログラムが前記コンピュータ内にロードされると前記コンピュータを実行させるコンピュータ・プログラム・コード手段であって、
前記第二コンピューティング・デバイスに関連し、かつ前記第一演算デバイスに関連付けられた前記第一アドレス指定領域の第一アドレスを含んでいる名前クエリを、前記第一コンピューティング・デバイスから受信すると直ちに、
前記受信された第一アドレスを、前記第二デバイスに属する前記第二アドレス指定領域の第二アドレスに結び付け、かつ、
前記第一デバイスから前記第二デバイスへのセッションを開始することができるように、前記コンピュータに属する前記第一アドレス指定領域の第三アドレスを有するメッセージで前記クエリに答える、
コンピュータ・プログラム・コード手段を持つ、
コンピュータ・プログラム要素。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全体として、コンピュータ・ネットワーク間通信の分野、より具体的には、2つのコンピュータ・ネットワーク間のインタフェースに関する。本発明は更に、第一演算デバイスから、第一アドレス指定領域を持つ第一ネットワークを介して、第二アドレス指定領域を持つ第二ネットワーク上の第二コンピュータ・デバイスへ通信するセッションを開始可能にする方法、インタフェース・デバイス、およびコンピューティング・デバイスのシステム、ならびに当該方法を行うためのプログラム・コードを含むコンピュータ・プログラム製品およびコンピュータ・プログラム要素に関する。
【背景技術】
【０００２】
コンピュータ・システム内のアドレス指定フィールドでは通常、異なるデバイスにより用いられる利用可能なパブリック・アドレスが不足している。このため多数のローカル・システムは、このローカル・システム全体で使用するためのパブリック・アドレスを１つまたは少数しか持ってこなかったので、ローカル・システムはこれらの少数のアドレスを制御するゲートウェイを介してグローバル・ネットワークと通信するであろう。この場合このようなゲートウェイは通常、ローカル・アドレス指定システムを用いてローカル・ネットワーク内のデバイスと通信するであろう。
【０００３】
グローバル・ネットワークを介した他のデバイスとのセッションをローカル・ネットワーク内のこのようなデバイスから始動するために、ローカル・アドレスを他のデバイスと通信するためのグローバル・アドレスに翻訳するネットワーク・アドレス翻訳 (NAT: Network Address Translation) ユニットがゲートウェイには通常設けられている。これでローカル・ネットワーク内のデバイスは、ローカル・ネットワーク外部のデバイスとのセッションを開始することができる。このときNATユニットは、このようなセッション用のNATテーブル内にエントリを設定して、2つのデバイスが相互通信するためにはアドレスをどのように翻訳すべきかを示すことになる。しかしながら、これらの種類の公知のNATユニットには１つ問題がある。それは通信セッションをローカル・ネットワーク内部からしか始動することができず、ローカル・ネットワーク外部のデバイスからは始動できないことである。外部からセッションを開始できることは、例えば少なくとも１つの側が入力セッションを受け入れることができなければならないピアツーピア・ネットワーキングを行う場合に必要である。
【０００４】
インターネット学会は、グローバル・ネットワークからローカル・ネットワーク内のデバイスへのセッションを開始する一方法を、P. Srisuresh, G. Tsirtsis, P. Akkiraju, および A. Heffernan によるRFC 2694（1999年9月）で説明している。RFC 2694では、ローカル・ネットワークとグローバル・ネットワーク間のインタフェースであるゲートウェイは、グローバル・ネットワーク内で使用可能な幾つかのアドレスを持っている。このゲートウェイにはNATユニットとDNS_ALG (Domain Name Service Application Level Gateway) ユニットも含まれており、かつこのローカル・ネットワークにはDNSサーバも含まれている。グローバル・ネットワーク上のデバイスはセッションを開始したい場合、再帰的な名前クエリを送信し、この名前クエリは最終的にゲートウェイに到達する。このゲートウェイはこのクエリをDNSサーバに転送し、このDNSサーバは、クエリされた名前に関連付けられているローカル・デバイスのローカル・アドレスを、ゲートウェイに戻す。ゲートウェイは、そのグローバル・アドレスの内の1つをローカル・アドレスに結び付け、クエリに対する答えとしてこのグローバル・アドレスを戻す。その後グローバル・ネットワーク上のデバイスは、このグローバル・アドレスを用いてセッションを開始することができるので、ゲートウェイはこの結び付けによりどのデバイスとの通信が意図されているのかを直ちに知る。この解決法には幾つかの問題がある。それはセッション毎に1つのグローバル・アドレスが予約されてしまうことである。ローカル・ネットワーク上の１つ以上のデバイスとの並列セッションが多数ある場合には、ゲートウェイが利用可能なグローバル・アドレスが多数存在しなければならないが、現代のシステムでは通常このグローバル・アドレスが不足している。ローカル・ネットワークがアドレスを１つしか持っていない場合、この1つのアドレスは最大1つのセッションにしか結び付けられないので、より多く0のインバウンド・セッションを行うことはできない。
【０００５】
国際特許公開公報第215,014号には、別のアプローチが説明されている。この国際特許公開公報の場合、外部デバイスがローカル・ネットワーク用のゲートウェイのアドレスをDNSサーバを介して受信してからゲートウェイと交信すると、このゲートウェイは、交信すべきデバイスのローカル・アドレスを外部デバイスに戻す。その後この外部デバイスは、ゲートウェイのアドレスとローカル・アドレスを用いてゲートウェイと通信することによりセッションを開始することができる。この国際特許公開公報には、ゲートウェイがどのようにしてローカル・アドレスを戻すことができるのか、かつそれは、ドメイン名をローカル・アドレスにマッピングするテーブルを有することにより、上述の交信がローカル・デバイスのドメイン名を含むことによるものであることも説明されている。この国際特許公開公報には、セッションを開始するために外部デバイス内で必要な特別な機能が多数示されている。外部デバイスはセッションを開始可能にするために、更にゲートウェイと少なくとも2回通信を行わなければならない。
【０００６】
【特許文献１】国際特許公開公報第215,014号
【非特許文献１】RFC 2694（P. Srisuresh, G. Tsirtsis, P. Akkiraju, および A. Heffernan、インターネット学会、1999年9月）
【非特許文献２】RFC 1034（P. Mockapetris、1987年11月）
【非特許文献３】RFC 3022（P SrisureshとK. Egevang、インターネット学会、2001年1月）
【非特許文献４】RFC 2535 - Domain Name Security Extensions（D. Eastlake、1999年3月）
【発明の開示】
【課題を解決するための手段】
【０００７】
本発明の目的は、第一アドレス指定領域を持つ第一ネットワークを介したデバイスから第二ネットワーク内のデバイスへ複数のセッションを開始できるようにするメカニズムを提供することである。このメカニズムは、第一ネットワークを介して通信するデバイスには透過である。つまりこれらのデバイスは、第二ネットワークのデバイスとどのように通信しているのかということに関する実際の知識を何も持つ必要がないのと同時に、第一アドレス指定領域内では、第二ネットワーク全体に対するアドレスを１つしか必要としない。
【０００８】
本発明の第一態様によると、この目的は、
第一アドレス指定領域を持つ第一ネットワークを介して通信する第一演算デバイスから、第二アドレス指定領域を持つ第二ネットワーク上の第二演算デバイスへのセッションを開始することを可能にする方法であって、
前記第二デバイスに関し、かつ前記第一デバイスに関連付けられている前記第一アドレス指定領域の第一アドレスを含んだ名前クエリを受信するステップと、
前記受信された第一アドレスを、前記第二デバイスに属する前記第二アドレス指定領域の第二アドレスに結び付けるステップと、
前記第一ネットワークからセッションを開始することができるように、前記第一ネットワークと前記第二ネットワーク間のインタフェースに属する前記第一アドレス指定領域の第三アドレスを含むメッセージで前記クエリに答えるステップと、
を含む方法により達成される。
【０００９】
本発明の第二態様によると、この目的は、
第一アドレス指定領域を持つ第一ネットワークと、第二アドレス指定領域を持つ第二ネットワークとの間を接続するためのインタフェース・デバイスであって、前記インタフェース・デバイスと通信する第一演算デバイスから、前記第一ネットワークを介して、前記第二ネットワーク内の第二演算デバイスへのセッションを開始することが可能なインタフェース・デバイスにおいて、
前記第二デバイスに関する名前クエリであって、前記第一デバイスに関連付けられた前記第一アドレス指定領域の第一アドレスを含んだ名前クエリを受信するための、前記第一ネットワークに接続される第一入力と、
前記第一ネットワークに接続される第一出力と、
インバウンド・セッション・テーブルと、
前記受信された第一アドレスを、前記第二デバイスに属する前記第二アドレス指定領域の第二アドレスに結び付け、
前記第一アドレスと前記第二アドレスを前記インバウンド・セッション・テーブル内に格納し、
前記クエリに対する答えを、前記インタフェース・デバイスに属する前記第一アドレス指定領域の第三アドレスを有するメッセージとして生成し、かつ、
前記第一デバイスから前記第二デバイスへセッションを開始することができるように、前記第一出力から前記答えを送信する、
ように構成された制御ユニットと、
を有するインタフェース・デバイスを含む、
インタフェース・デバイスおよび演算デバイスのシステムによっても達成される。
【００１０】
本発明の第三態様によると、この目的は、コンピュータ・プログラム・コード、および、
第一アドレス指定領域を持つ第一ネットワークと、第二アドレス指定領域を持つ第二ネットワークとの間に接続可能なコンピュータ上で使用されるコンピュータが読み取り可能な媒体を有し、第一演算デバイスが前記第一ネットワークを介して前記コンピュータと通信することができ、かつ前記第二ネットワークが第二演算デバイスを有する、コンピュータ・プログラム製品であって、
当該コンピュータが読み取り可能な媒体が、その上に、
当該プログラムが前記コンピュータ内にロードされると前記コンピュータを実行させるコンピュータ・プログラム・コード手段であって、
前記第二コンピューティング・デバイスに関連し、かつ前記第一演算デバイスに関連付けられた前記第一アドレス指定領域の第一アドレスを含んでいる名前クエリを、前記第一コンピューティング・デバイスから受信すると直ちに、
前記受信された第一アドレスを、前記第二デバイスに属する前記第二アドレス指定領域の第二アドレスに結び付け、かつ、
前記第一デバイスから前記第二デバイスへのセッションを開始することができるように、前記コンピュータに属する前記第一アドレス指定領域の第三アドレスを有するメッセージで前記クエリに答える、コンピュータ・プログラム・コード手段、
を持つコンピュータ・プログラム製品によっても達成される。
【００１１】
別の目的は、第一ネットワークを介して通信する第一デバイスと、第二ネットワーク内の第二デバイスとの間での幾つかの並列セッションを可能にすることである。
【００１２】
本発明の第四態様によると、この目的は請求項4と11に定められている特徴により達成される。
【００１３】
別の目的は、インバウンド・セッションに関連付けられている名前の解明時に、DNSSEC (Domain Name Security Extensions) を使用可能にすることである。
【００１４】
本発明の第5の態様によると、この目的は請求項9の特徴により達成される。
【００１５】
本発明の利点は、第一アドレス指定領域内のアドレスを第二ネットワークに対して１つしか使用しなくても、第二ネットワーク内の異なるデバイスとの幾つかの並列セッションを第一ネットワークから開始することが可能となることである。このことにより、ピアツーピア・ネットワーキングも可能となる。本発明の更なる利点は、第二ネットワーク上の多数のデバイスへソフトウエアのアップグレードなどのサービスを提供することが、この更新を求める要求を第二ネットワーク上のデバイスが送信しなくても容易にかつ透過的に可能となることである。これらのデバイスは、この更新を行うサーバのアドレスをハードコード化する必要もない。
【００１６】
このように本発明の背景にある一般的な考えは、第一ネットワーク上の第一デバイスに関連付けられている第一アドレスを、この第一アドレスを含む名前クエリをこの第一デバイスから受信したら直ちに、第二ネットワーク上の第二デバイスの第二アドレスに結び付けることである。その後この名前クエリに対する応答は、これら2つのネットワーク間に設けられたインタフェース・デバイスに属する第三アドレスを含めて送信される。
【発明を実施するための最良の形態】
【００１７】
本発明のこれらの態様と他の態様は、以下に説明する実施例から明らかとなり、これらの実施例を参照することにより解明されるであろう。
【００１８】
次に本発明を添付の図面に関連付けて更に詳細に説明する。
【００１９】
図1は、本発明の概略的な図面、およびその環境を示している。図1には、第一ネットワーク12（この場合はインターネット）に接続された、本発明によるインタフェース・デバイス10が示されている。第一演算デバイス14は第一ネットワーク12に接続されている。このインタフェース・デバイスは、この好ましい実施例ではゲートウェイ10であり、第二ネットワーク16にも接続されている。第二ネットワーク16には、第二演算デバイス18と第三演算デバイス20も含まれている。第一ネットワーク12は第一アドレス指定領域を持っており、第二ネットワークは第二アドレス指定領域を持っている。ここでは第一アドレス指定領域はIPアドレス指定領域（例えば、IPv4）でありグローバルに使用されるが、第二アドレス指定領域はローカルなアドレス指定領域であり第二ネットワーク16内で使用される。この第二アドレス指定領域もIPアドレス指定を通常用いる。この好ましい実施例の場合、第二ネットワーク16は個人的な家庭ネットワークである。しかしながら本発明は個人的な家庭ネットワークには限定されず、例えば、企業ネットワーク内でも使用可能なことは認識されるべきである。第一演算デバイス14はZ、第二演算デバイス18はY、第三演算デバイス20はX、およびゲートウェイ10はGとも表示されている。したがって異なるデバイスは異なる領域内の異なるアドレスを持っている。第一デバイス14は第一アドレス指定領域内にアドレスAZを持ち、ゲートウェイは第一アドレス指定領域内に第三アドレスAGを持っており、一方、第二デバイス18は第二アドレス指定領域内に第二アドレスAYを持ち、第三デバイス20は第二アドレス指定領域内に第4のアドレスAXを持っている。ゲートウェイ10は第二アドレス指定領域内にもアドレスを持っているが、このアドレスは本発明の本質的な部分ではないので、これに関しては本願明細書では更に説明しない点に留意されたい。第二デバイス18と第三デバイス20は、標準的なコンピュータにすることができるが、これには限定されない。これらのコンピュータは、インターネット・ラジオ、プリンタ、スキャナ、またはアドレスを使用してコンピュータ・ネットワーク内に接続可能な他の任意のタイプのコンピュータ機器などの他のコンピュータ・デバイスにすることもできる。第二ネットワーク16内のデバイスをより多くしても少なくしてもよい点も認識されるべきである。第一デバイス14も同様に、インターネット12に接続可能な例えば、サーバまたは他の任意の適切なデバイスにしてよい。第一デバイス14を、ゲートウェイを介してインターネットと通信する個人ネットワーク上またはローカル・ネットワーク上のデバイスにしてよい点も認識されるべきである。本発明をより良く説明するため、第一デバイス14は本願明細書ではインターネットに直接接続されたデバイスとして示されている。
【００２０】
図2には、本発明によるゲートウェイ10の簡略化されたものが概略的なブロックで示されている。ゲートウェイ10は、データ・パケットを受信するための、インターネットに接続された第一入力22、およびデータ・パケットを送信するための、同様にインターネットに接続された第一出力24を持っている。このゲートウェイは、データ・パケットを送信するための、第二ネットワークに接続された第二出力26、およびデータ・パケットを受信するための、同様に第二ネットワークに接続された第二入力28も持っている。第一入力22と第二出力26との間には第一レジスタ32が接続されており、第二入力28と第一出力24との間には第二レジスタ34が接続されている。データ・パケットが進行する方向は矢印で示されている。第一レジスタ32と第二レジスタ34は、両方とも制御ユニット30に接続されており、この制御ユニット30は、インバウンド・セッション・テーブル36、アウトバウンド・セッション・テーブル38、および名前解明ユニット40に接続されている。インバウンド・セッション・テーブルは、第二ネットワークの外部で開始されたセッション、つまり第二ネットワーク内のデバイスとの通信を望んでいる第一ネットワーク内のデバイスにより開始されたセッションに使用されるテーブルである。一方アウトバウンド・セッション・テーブルは、第一ネットワーク内のデバイスとの、第二ネットワーク内部から開始されたセッションに使用される。名前解明ユニット40は、DNS (Domain Name Service Capabilities) を有するサーバである。つまり名前解明ユニット40はドメイン名をアドレスにマッピングし、本願明細書では第二アドレス指定領域内のアドレスにマッピングする。
【００２１】
図3、図4、および図5は、本発明による異なるフローチャートを示しており、本発明がどのように稼動するのかを説明している。このことに関しては後で更に詳述する。図6は、セッションが始動された後ではあるが何らかのパケットが受信される前のインバウンド・セッション・テーブル36を示している。このテーブルの各行は、進行中のセッションまたは始動されたばかりのセッションに専用のものである。説明を簡略化するため本願明細書では1つの行またはセッションしか示されていない。ただし異なるデバイス間のセッション間には幾つかの行が存在することができ、実際には同じ2つのデバイス間の異なるセッション間に幾つかの行が存在できることを認識すべきである。第一列80は、セッションを持つまたは開始する第一ネットワーク内のデバイスのアドレスに用いられる。ここでは第一デバイスの第一アドレスAZが示されている。第二列82は、第一ネットワークのアドレスに関連付けられているポート番号に用いられる。セッションがまだ開始していないので、この列はここでは空白のままとなっている。第三列84は、セッションに関与しているまたは関与することになっている第二ネットワーク内のデバイスのアドレスが対象である。この列はここでは第二デバイスの第二アドレスAYを示している。第四列86は、第二ネットワーク上のアドレスとの関連で使用されるポート番号が対象である。セッションがまだ開始していないので、この列は空白のままとなっている。図7は、図6と同じ列を示しているが、ここではセッションが進行中なのでポート番号で満たされている。ここでは第二列82は、第一デバイスの第一アドレスAZに関連付けられている第一ポート番号PZを受信している。第四列86は、第二デバイスの第二アドレスAYに関連付けられている第二ポート番号PYを受信している。これらの設定は、ゲートウェイが第一データ・パケットをインターネットから受信した後に行われたものである。
【００２２】
次に図1、図2、図3、および図6を参照しながら、本発明の第一部分を説明する。
【００２３】
第一デバイス14は、第二デバイス20と通信するためのアドレスを得るために、非再帰的な名前クエリを第一ゲートウェイ10に送信する（ステップ42）。このことは、クエリ内の再帰的なビットが消去済みであることを意味する。より具体的には、このクエリはゲートウェイ10の名前解明ユニット40に向けられる。このクエリには、この第二デバイス20に関連付けられたドメイン名が含まれている。このクエリは非再帰的なので、第一デバイスの第一アドレスを有している。この名前クエリの前には大抵、第一ネットワーク12内の他のDNSサーバに送信された幾つかの以前の名前クエリがある。このようなDNSサーバは、クエリとの交信の度に、下位階層レベルのDNSサーバを第一デバイス14に示している。このように第一デバイスは、ゲートウェイ10と直接交信するまで幾つかのDNSサーバにクエリする。このことには、名前解明ユニット40が第二デバイス20の名前をアドレスにマッピングすることが含まれる。次にゲートウェイ10は第一入力22上でDNSクエリを受信し（ステップ44）、これを第一レジスタ32内に格納する。次に制御ユニット30は、このクエリから第一アドレスAZを抽出し、これをインバウンド・セッション・テーブル36上の第一列80内に格納する（ステップ46）。この後このクエリは、名前解明ユニット40に転送される。名前解明ユニット40はその名前に対して第二デバイス18の第二アドレスAYを見つけ出し（ステップ48）、このクエリに対する応答を制御ユニット30に戻す。この応答は、ゼロに設定されたtime-to-liveフィールドも持っている。名前の解明は、DNSサーバ内で通常用いられる周知の原理にしたがって行われる。このことは、例えば、P. MockapetrisによるRFC 1034（1987年11月）に説明されている。RFC 1034は、本願明細書に参照用として取り込まれている。クエリに対する応答は、ここでは第二アドレスAYを含んでいる。これを、制御ユニット30はインバウンド・セッション・テーブル36の第三列84内に入力し、第一アドレスAZに結び付ける（ステップ50）。次に制御ユニットは第二アドレスAYを、この応答内のソース・アドレスとしてゲートウェイに関連付けられている第三アドレスAGに置換し、こうして変更された応答つまりメッセージを第二レジスタ34内に入れる。このメッセージは、第二レジスタ34から第一出力24を介して第一デバイス14に送信される（ステップ52）。このことを、制御ユニットがクエリに対する答えを生成していると見なすこともできる。次に第一デバイスは名前クエリに対する応答を受信する。この応答は、デバイス20の名前に関連付けられているのは第二デバイス20ではなくゲートウェイ10であることを示している。これで第一デバイスは、第三アドレスAGを行き先アドレスとして用いて、セッションを開始することができる。このように第一デバイス14はゲートウェイ10にクエリを1つ送信して、応答を受信すると直ちにセッションを開始することができる。この応答は1つの単一のデータ・パケットで提供することが可能である。したがって第一デバイス14は、セッションを開始する前にゲートウェイ10と２回以上通信する必要がない。しかしながらゲートウェイは、データ・パケットが第二デバイスを対象としていることを、インバウンド・セッション・テーブル内で行われている設定により知るであろう。これがどのよ���に行われるのかを次に説明する。
【００２４】
今度は、インターネット12からゲートウェイ10に来るデータ・パケットの扱いに関する本発明の第二部分を、図1、図2、図4、および図7との関連で説明する。最初に指摘しなければならないことは、アウトバウンド・セッション、つまりデバイス18と20により開始されたセッションに関する情報でアウトバウンド・セッション・テーブル38を満たすことができる点である。この情報には通常、第一ネットワーク内のデバイスのアドレスとポート番号、セッションを開始する第二ネットワーク内のデバイスのアドレスとポート番号、およびゲートウェイのポート番号などの情報が含まれている。このテーブルは、従来のネットワーク・アドレス翻訳 (NAT: Network Address Translation) テーブルである。このタイプのテーブルの稼動方法は、例えば、インターネット学会によるP SrisureshとK. EgevangのRFC 3022（2001年1月）に説明されている。これは本願明細書に参照用として取り込まれている。したがってゲートウェイ10は、インバウンド・セッションとアウトバウンド・セッションの両方を考慮しなければならない。
【００２５】
ゲートウェイは、第一ネットワーク12からのパケットを第一入力22上で受信し、これらのパケットは第一レジスタ32内に格納される（ステップ54）。次に制御ユニット30はデータ・パケットを調べ、最初は、このデータ・パケットに対して行われた何らかのエントリがあるか否かアウトバウンド・セッション・テーブル38に注目する（ステップ56）。ある場合このデータ・パケットは、このテーブル38内の設定にしたがって得られたアドレス変換により得られた第二ネットワーク16上のデバイスに、第一レジスタ32から第二出力26を介して送信される（ステップ58）。このテーブル38内にエントリがない場合（ステップ56）、制御ユニット30はインバウンド・セッション・テーブル36内にエントリがあるか否かを検査し続け（ステップ60）、そこにエントリがない場合、パケットは拒絶される（ステップ62）。上述の例の場合、データ・パケットは、第一デバイス14により開始されたセッション内の第一データ・パケットである。したがって当該テーブル36内にはエントリが存在する（ステップ60）。つまりこのテーブルには、第一アドレスAZと第二アドレスAYが含まれる。これらの内、第一アドレスは受信されたデータ・パケット内にも含まれる。したがって制御ユニット30は、このデータ・パケット内で使用されているポート番号に注目する。
【００２６】
当該テーブル内に既にエントリ済みのポート番号がなかった場合、制御ユニットは、使用されるポート番号を、インバウンド・セッション・テーブル36内のアドレスにエントリして、このアドレスに結び付ける（ステップ64）。ここで、第一アドレスAZに関連付けられている第一ポート番号PZは第二列82にエントリされ、第二アドレスAYに関連付けられている第二ポート番号PYは第四列86にエントリされる。その後制御ユニット30は、データ・パケット内で使用されている第三アドレスAGを、テーブル36から選ばれた第二アドレスAYに変更し、ポート番号は不変のままにし、かつ第一レジスタ32からのデータ・パケットを第二出力26を介して第二ネットワーク16内の第二デバイス18に送信する（ステップ66）。第一デバイス14は、ゲートウェイ・アドレスに関連付けられている第二ポート番号を使用していると信じているが、ゲートウェイ10は第１デバイス14と第２デバイス18との間の転移メカニズムの一部でしかないので、第三アドレスAGに関連付けられているポート番号は変更せず、同じポート番号を第二アドレスAZに使用し続ける。テーブル36は、第一デバイス14から開始された同じセッション内の連続するデータ・パケットに対して更に更新されることはないが、アドレスの翻訳は上述した手法で行われるであろう。
【００２７】
次にアウトバウンド・データ・パケットの扱いを、図1、図2、図5、および図7に関連付けて説明する。ゲートウェイ10は、第二ネットワーク16からのデータ・パケットを第二入力28上で受信し、このデータ・パケットは次に第二レジスタ34へ移される（ステップ68）。制御ユニット30は、このデータ・パケット内のアドレスとポート番号を調べて、最初はインバウンド・セッション・テーブル36に注目して、このデータ・パケットに対するエントリがそこにあるか否かを認識するであろう（ステップ70）。あった場合、データ・パケットは、行き先アドレスおよび第二ネットワーク16上のデバイスのアドレス、ならびに関連するポート番号を含めるであろう。第一デバイス14から第二デバイス20に対して開始されたセッションに関する上述例の場合、データ・パケットは、行き先アドレスAZおよびポート番号PZ、ならびにソース・アドレスAYおよびポート番号PYを含めるだろう。制御ユニット30は、インバウンド・セッション・テーブルからセッション情報を見つけ出して、データ・パケットのソース・アドレスAYをゲートウェイ・アドレスAGに置換し、次いで、第一出力上のデータ・パケット24を行き先デバイス20に送信するであろう（ステップ72）。エントリがなかった場合（ステップ70）、制御ユニットは、従来のネットワーク・アドレス翻訳を続行させる（ステップ74）。このことが意味するのは、エントリがあった場合は、制御ユニット30はアウトバウンド・セッション・テーブル38を検査して、このテーブル38内のエントリにしたがってパケットを転送し、エントリがなかった場合は、RFC 3022に詳述されている原理にしたがって新たなエントリが行われ、その設定にしたがってアドレスが翻訳され、その後行き先デバイスに送出される、ということである。
【００２８】
セッションは、2つの方法で終了させることができる。TCPトラヒックの場合は、セッションは、データ・パケット内の情報により明示的に終了される。しかしながらUDPトラヒックの場合は、ネットワーク・レイヤに「セッション」という考え方がないので、最後のデータ・パケットが到着済みであることを知る方法はない。ここで、インバウンド・セッション・テーブルにtime-to-liveフィールドを加えて、一セッションに許容された長さの値を含めることができる。このtime-to-live値は、この値を開始値として使用しているタイムアウト機能が、進行中のセッションを早まって終了させないように、十分に大きな値として提供される。このtime-to-live値がタイムアウト機能で失効済みとなった後、エントリは次にこのテーブルから消去される。
【００２９】
ゲートウェイ内の異なるユニットは通常、本発明による方法を行うための適切なプログラム・コードを含んだ適切なプログラム・メモリと共に、1つ以上のプロセッサの形態で提供される。これらのテーブルも通常はメモリの形態で提供される。コンピュータが読み取り可能な媒体の形態をしたコンピュータ・プログラム製品上に、本方法を行うためのソフトウエアまたはプログラム・コードを設けて、これが（実際には一種のコンピュータである）ゲートウェイにロードされたら本発明の方法を行わせるようにすることもできる。図8には、CD Rom 88の形態をしたこのような媒体が表されているが、ディスケットなどの多数の異なる媒体が可能である。プログラム・コードは、第二ネットワークの外部にあるサーバから遠隔ダウンロードすることもできる。
【００３０】
説明したゲートウェイには、異なる入力、出力、およびバッファ・レジスタの形態をした幾つかの更なるレジスタを含めることができることも理解されるべきである。これらの数は、本発明がより良く理解されるように意図的に少ないままにしてきた。
【００３１】
こうして本発明によって、第一デバイスが、別のアドレス指定領域内にアドレスを持っているデバイスとのセッションを設定していることを知らなくても、第二ネットワークの外部からセッションを始動することが可能となると同時に、第二ネットワーク用のアドレスが第一アドレス指定領域内で１つしか必要でないにも関わらず、依然として幾つかのインバウンド・セッションが可能となる。これは、ゲートウェイが第一アドレス指定領域内でアドレスを１つしか持ってはならないという意味ではない。ゲートウェイはこのようなアドレスを幾つも持つことができる。こうして本発明により、第一デバイスと第二デバイスが両方ともクライアントとサーバとして作用することができ、かつインバウンド・セッションとアウトバウンド・セッションを両方とも持つことができるような、ピアツーピア・ネットワーキングが可能となる。
【００３２】
インバウンド・セッションに使用されるポート番号は周知であり、かつアウトバウンド・セッションの間に登録されるポート番号は、動的および／または私的なポートを使用することが好ましい。こうしてインバウンド・セッションとアウトバウンド・セッション間における干渉の危険性がなくなる。インバウンド・セッション・テーブル内でポート番号を使用することにより、幾つかの異なるインバウンド・セッションを2つのデバイス間で進行させることが可能となる。このことに加えて、内部ネットワーク上で他のデバイスとのインバウンド・セッションを幾つも持つことも可能となる。周知の登録済みポート番号を使用することによって更に、第二ネットワーク上のデバイスが更新要求を送信しなくても、ソフトウエアのアップグレードなどのサービスを第二ネットワーク上の多数のデバイスに容易にかつ透過的に提供することが可能となる。第二ネットワーク上のデバイスは、更新を行っているサーバのアドレスをハードコード化する必要もない。このことにより、どのサーバも任意の時刻に更新を送信することも可能となる。この場合、更新の認証は、単なるサーバ・アドレス以外の他の手段により行わなければならない。
【００３３】
本発明によるアドレスとポートの使用方法によって更に、悪意のユーザがセッションを設定することなく内部ホストのホスト名を解明し続けることによって全ての内部ホストへのアクセスを他の全てのユーザに対して阻止してしまう、RFC 2694に説明されているタイプのサービス不能攻撃を、ゲートウェイは受けにくくなる。
【００３４】
インバウンド・セッション・テーブルは、ポート番号を翻訳することもできる。しかしながらこの場合、特化されたポート番号に関連する多くの利点が失われてしまう。
【００３５】
好ましい実施例の場合、名前解明ユニットはゲートウェイの一部である。このことには、DNSSEC (Domain Name Security Extensions) が使用可能となるという更なる利点がある。このような拡張子は、D. EastlakeによるRFC 2535 - Domain Name Security Extensions（1999年3月）に説明されている。RFC 2535は、本願明細書に参照用として取り込まれている。これらの拡張子によって、第一ネットワーク上の第一デバイスは、そのホスト名クエリに対する答えはゲートウェイ内の名前解明ユニットにより認証済みなので有効である、と信頼することができる。
【００３６】
一代替実施例の場合、ゲートウェイが名前を解明するために通信する名前解明ユニットを、第二ネットワーク上の独立した実体にすることができる。ただしこのDNSSECの特徴を利用することはできなくなってしまう。
【００３７】
更に以下の方法で、名前解明プロセスを動的なアドレス指定環境で行うことが可能となる。名前解明ユニットは、第二ネットワーク内部のゾーンに対する権限を有しているので、他のDNSサーバは、このゾーンに属する名前またはホスト名の翻訳要求を名前解明ユニットに適切に委ねなければならない。第二ネットワークがインターネット・サービス・プロバイダ (ISP) に接続されていると想定する。このISPは、第二ネットワークのゲートウェイにパブリック・アドレスを送出する。ISPもDNSサーバを持っている。ISPは、顧客の名前により形成されたゾーン内部のホスト名（つまり第二ネットワークの名前およびISPドメイン名）のクエリに対してはこのパブリック・アドレスを参照するように、このサーバを更新する。例えば、この顧客がISPによってjohn1234として知られており、ISPがisp1234という名前を持っている場合、john1234の住宅用ゲートウェイがISP isp1234からパブリック・アドレスを受信すると必ず、ゾーンisp1234.comに対する権限を有するDNSサーバは、サブ・ゾーンjohn1234.isp1234.comに対するクエリを、送出されたばかりのパブリック・アドレスで見出される住宅用ゲートウェイの名前解明ユニットに委ねるであろう。次に第一ネットワーク上のデバイスが、devicey.john1234.isp1234.comと呼ばれる、この家庭ネットワーク上の第二デバイス（デバイスY）のアドレスを非再帰的にクエリすると、このクエリはゾーンisp1234.comのDNSサーバにより、この住宅用ゲートウェイ上のゾーンjohn1234.isp1234.comのDNSサーバ、つまり第二ネットワークのゲートウェイ内の名前解明ユニットに委ねられるであろう。
【００３８】
DNSSEC (Domain Name Security Extensions) を上述の名前解明プロセスに結合させる利点は、特化されたサービスが保証されることである。第一デバイスがサーバの場合、このサーバは、（例えばモーニングコール、個人化されたニュースフィード、個人化されたビデオとオーディオのストリーミングのような）配信サービスに対する購読料を払うことになる顧客に属するデバイスのホスト名リストを維持することができる。その後、サーバがこれらのホスト名に対するクエリを送信すると、顧客に属するゲートウェイ内の名前解明ユニットがこれらのクエリに応答することになる。これらの応答は認証済みなので (DNSSEC)、サーバはその情報送信先が本当の顧客に属するデバイスであって、この顧客のふりをしているハッカーではないことを確信する。
【００３９】
名前解明ユニットが生成する、名前クエリに対する応答内では、time-to-liveフィールドがゼロに設定されているので、第一デバイスは新たな接続を確立しようとする毎にその答えをローカル・キャッシュ内には入れるのではなく、非再帰的な要求を繰り返すであろう。このことは2つの目的に役立つ。つまり、第一デバイスにより新たな接続が行われる毎に、（新たな要求がゲートウェイに到着するので）インバウンド・セッション・テーブル内に新たなエントリを作成することが可能となる。また（例えばISPが動的なアドレス指定環境内で異なるアドレスを送出したために）ゲートウェイのアドレスが変更された場合、第一デバイスはそのローカル・キャッシュ内に保たれてきたであろう旧アドレスを使用しない。
【００４０】
このように本発明は、第一ネットワークから第二ネットワークへセッションを始動することを容易化するシステム、インタフェース・デバイス、方法、プログラム製品、およびプログラム・コードを提供する。
【００４１】
本発明には可能な変種が幾つもあり、これらを既述の変種に加えて作ることができる。本発明はIPアドレス指定に限定されるのではなく、他のタイプのアドレス指定も可能である。インバウンド・セッション・テーブル内へのポート番号のエントリも省略可能だが、この場合、幾つかの並列セッションを同じ2つのデバイス間で行うことはできなくなってしまう。元のクエリを再帰的にすることも可能だが、この場合、クエリしているデバイスのアドレスに関する通知をゲートウェイに行う方法を設けなければならない。
【００４２】
ネットワークを固定ネットワークにする必要はなく、例えばワイヤレス・ネットワークにすることもできる。
【００４３】
したがって本発明は、請求項により限定されるだけである。
【図面の簡単な説明】
【００４４】
【図１】本発明にしたがってゲートウェイを介して第二ネットワークに接続された第一ネットワークの概略的な図面を示す。
【図２】本発明によるゲートウェイの概略的なブロックを示す。
【図３】本発明にしたがって第一ネットワークから第二ネットワークへのセッションを始動する方法のフローチャートを示す。
【図４】第一ネットワークから送信された、ゲートウェイに到着したデータ・パケットを扱う方法のフローチャートを示す。
【図５】第二ネットワークから送信された、ゲートウェイに到着したデータ・パケットを扱う方法のフローチャートを示す。
【図６】セッション設定時のインバウンド・セッション・テーブルのコンテンツを概略的に示す。
【図７】インバウンド・セッションでインターネットから第一パケットが受信された後のインバウンド・セッション・テーブルのコンテンツを概略的に示す。
【図８】本発明による方法を行うためのプログラム・コードがその上に格納される、コンピュータが読み取り可能な媒体を概略的に示す。
【符号の説明】
【００４５】
10…ゲートウェイ
12…第一ネットワーク
14…第一演算デバイス
16…第二ネットワーク
18…第二演算デバイス
20…第三演算デバイス
22…第一入力
24…第一出力
26…第二出力
28…第二入力
30…制御ユニット
32…第一レジスタ
34…第二レジスタ
36…インバウンド・セッション・テーブル
38…アウトバウンド・セッション・テーブル
40…名前解明ユニット
AZ…第一アドレス
AY…第二アドレス
AG…第三アドレス
PZ…第一ポート番号
PY…第二ポート番号
【図１】
2005539428.tif 000003
【図２】
2005539428.tif 000004
【図３】
2005539428.tif 000005
【図４】
2005539428.tif 000006
【図５】
2005539428.tif 000007
【図６】
2005539428.tif 000008
【図７】
2005539428.tif 000009
【図８】
2005539428.tif 000010
【国際調査報告】
2005539428.tif 000011
2005539428.tif 000012