JP2004023597A - ネットワークシステムおよびプログラム - Google Patents

ネットワークシステムおよびプログラム Download PDF

Info

Publication number
JP2004023597A
JP2004023597A JP2002178039A JP2002178039A JP2004023597A JP 2004023597 A JP2004023597 A JP 2004023597A JP 2002178039 A JP2002178039 A JP 2002178039A JP 2002178039 A JP2002178039 A JP 2002178039A JP 2004023597 A JP2004023597 A JP 2004023597A
Authority
JP
Japan
Prior art keywords
node
command
access
hit
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002178039A
Other languages
English (en)
Inventor
Seiichiro Inoue
井上 誠一郎
Takahiro Hidaka
日高 孝寛
Hiroyoshi Otani
大谷 弘喜
Shinichi Iwata
岩田 真一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARIEL NETWORKS CO Ltd
Original Assignee
ARIEL NETWORKS CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARIEL NETWORKS CO Ltd filed Critical ARIEL NETWORKS CO Ltd
Priority to JP2002178039A priority Critical patent/JP2004023597A/ja
Priority to PCT/JP2003/007617 priority patent/WO2004001630A1/ja
Publication of JP2004023597A publication Critical patent/JP2004023597A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2582NAT traversal through control of the NAT server, e.g. using universal plug and play [UPnP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】ファイアフォールやNATサーバを設置した場合でも、外部から自由にアクセスしてリソースを取得可能なP2Pシステムを提供する。
【解決手段】グローバルアドレスとプライベートアドレスとの付け替えを行うゲートウェイノード(NATサーバ)16がプライベートネットワーク20内のノード21からhitリプライを受け取ったときに、検索ヒットノード21の情報にゲートウェイノード16の情報を加えて伝播するようにするとともに、hitリプライを受け取ったコマンド発行元ノード10から検索ヒットノード21にアクセスのセッションが張れない場合に、ゲートウェイノード16に切り替えてアクセスを実行するようにすることにより、NATサーバが存在する場合でも、プライベートネットワーク20の外部から内部へと自由にアクセスしてリソース30を取得することができるようにする。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明はネットワークシステムおよびプログラムに関し、特に、サーバを介さずにクライアント同士で直接データの交換を行うシステムに用いて好適なものである。
【0002】
【従来の技術】
近年、インターネットの浸透とインターネットユーザ数の爆発的増加という社会的背景、パーソナルコンピュータ(パソコン)の高性能化とネットワークの高速化という技術的背景をもとに、ピアツーピア(P2P)と呼ばれるネットワーク技術が注目を集めている。
【0003】
従来のネットワークシステムは、少数のサーバと多数のクライアントとをネットワークを介して接続したものが殆どであり、クライアントで生成されたリソースはサーバに集められて管理されていた。ところが、爆発的ユーザ数増加の中、ユーザの生み出したリソースをサーバに集めるコストは無視できないものになっている。
【0004】
すなわち、従来のWebアーキテクチャにおいてサーバにリソースを集める際に、インターネット上に散らばっているリソースを発見するメカニズムには、ディレクトリサービスとサーチエンジンの2つのタイプが存在する。前者は人海戦術と呼ぶべきアプローチで、人手の作業によってリソースを集めるものである。後者はエージェントロボットがインターネットを巡回することによってリソースを集めてまわるものであり、何れのタイプも言わば力任せのアプローチである。
【0005】
また、サーバに集められたリソースは、アクセスの集中を生む。この結果、クライアントとして用いられる高性能なパソコンは殆ど遊休状態となり、高速ネットワークもサーバ周辺だけがいびつに混雑する結果となっている。
【0006】
これに対し、P2Pによるネットワーク技術は、ユーザに近い部分でサーバを介さずに、クライアント同士がダイレクトに情報のやり取りをするアーキテクチャである。つまり、多数のクライアントで生成されたリソースはそれぞれのクライアント自身で管理されるため、多数のリソースをサーバに集める必要もないし、リソース取得のためにアクセスの集中が生じることも殆どない。また、高性能なパソコンが持つ遊休資源を有効に使うことも可能となる。
【0007】
図11を参照して、P2Pアーキテクチャを利用して所望のリソースを検索および取得する際の手順を説明する。図11は、P2Pアーキテクチャが適用されるネットワークの概略構成を示す図である。P2Pネットワークは、ノードの集合で定義される。ノードとは、P2Pプロトコルを実装したプログラムのプロセスのことを言う。したがって、例えば1つのパソコンの中にも、起動しているプログラムが複数あれば、複数のノードが存在することになる。
【0008】
ノード同士は、複数のセッションを互いに張った状態でトポロジを形成する。この常態的なセッションを「接続」と呼ぶことにする。「接続」が常態的なトポロジ形成をなして、この接続セッション上を基本的なプロトコル(リソース検索コマンドに相当するlookupコマンドや、検索ヒット応答に相当するhitリプライ等)が流れる。
【0009】
これに対して、ユーザノード100(lookupコマンドの発行元ノード)からリソース110の存在するノード103(hitリプライの発行元ノード)に対して張るセッションを「アクセス」と呼ぶことにする。「アクセス」は、リソース発見後にコマンド発行元ノードと検索ヒットノードとの間に一時的に張られるセッションで、この上をアクセスインタフェースに応じたプロトコルが流れる。
【0010】
上記した「接続」および「アクセス」のトポロジ形成の状態は中央で管理されず、個々のノードが自律的に形成する。まず、図11(a)のように、リソース110の取得を希望しているユーザのノード100は、どこにリソース110があるかを探し出すためのlookupコマンドを近接ノード(接続しているノード)101,102に発行する。
【0011】
lookupコマンド受け取ったノード101,102は、要求されているリソース110を自身が持っているかどうかを調べる。該当するリソース110が見つからない場合は、図11(b)のように、lookupコマンドを近接ノード(lookupコマンドの送信元以外で接続しているノード)103〜106に転送する。このlookupコマンドを受け取ったノード103〜106も、要求されているリソース110を自身が持っているかどうかを調べる。
【0012】
このようにコマンド伝播とリソース110の検索を繰り返していく中で、ノード103では、リソース110の検索にヒットする。検索にヒットした場合は、図11(c)に示すように、lookupコマンドの送信元であるノード101にhitリプライを返す。hitリプライを受け取ったノード101は、lookupコマンドの送信元であるユーザノード100にhitリプライを転送する。このようにhitリプライは、lookupコマンドを伝播した各ノードにより逆向きに伝播され、コマンド発行元のユーザノード100まで届けられる。
【0013】
hitリプライは、リソース110のアクセスインタフェースの名前と検索ヒットノード103の情報とを含むパケットである。以上の手順により、最初にlookupコマンドを発行したユーザノード100では、所望のリソース110がノード103に存在することを発見できる。hitリプライを受け取ったユーザノード100は次に、図11(d)のようにノード103にダイレクトにアクセスし、リソース110を取得する。
【0014】
【発明が解決しようとする課題】
上述のようなP2Pアーキテクチャを利用して、種々のネットワークシステムを構築することが期待されている。例えば、P2Pプロトコルをベースにして、個人またはグループのスケジュールやタスクの管理、文書等のファイル管理、プロジェクトの進捗管理などを行うグループウェアなどを構築することが望まれている。
【0015】
しかしながら、上記従来のP2Pネットワーク技術では、ファイアウォールやNAT(Network Address Translation)があると、グループ内向きのセッションが張れず(接続やアクセスができない)、通信上の大きな障害が発生するという問題があった。
【0016】
ファイアウォールは、一般的には1台のサーバをグループの出入口に用い、ここで専用のソフトウェアを動作させることによって、アクセス権を持たない第三者がグループ内に不正に侵入するのを防ぐものである。具体的には、送信元と送信先のIPアドレスを見て通信の可否を判断する。したがって、ファイアフォールが設置されていると、グループの外側から内側に向けての通信が拒否され、接続およびアクセスのセッションを張ることができなくなってしまう。
【0017】
また、NATは、IPアドレスの不足に対応するために考え出された手法である。これは、グループの出入口となるゲートウェイにだけグローバルアドレスを割り振り、グループ内部では当該グループ内でのみ通用するプライベートアドレスを割り振ることにより、グローバルアドレスを節約しようとするものである。ゲートウェイとなるNATサーバは、グループ外部から送られてきたグローバルアドレスをプライベートアドレスに変換することにより、グループ内のノードにアクセスする。
【0018】
したがって、ゲートウェイとしてNATサーバが設置されている場合、lookupコマンドの発行元ノードがグループの外側にあり、コマンド伝播によって発見されたノードがグループの内側にあると、グローバルアドレスを持つ外部ノードからプライベートアドレスを持つ内部ノードに対して直接アクセスのセッションを張ることができなくなってしまう。
【0019】
P2Pアーキテクチャを用いてグループウェアを構築する場合、グループ内のデータが第三者によって不正に盗聴または改ざんされる危険性から守るのと同時に、グループのメンバが外部からもアクセスできるようにすることが望まれる。LANが構築されている社内だけでなく、自宅や外出先からアクセスできるようにすることが好ましいからである。しかし、セキュリティ対策やIPアドレス確保のためにファイアフォールやNATサーバを設置すると、上述のように内向きのセッションが張れなくなり、外部からのアクセスができないという問題があった。
【0020】
本発明は、このような問題を解決するために成されたものであり、ファイアフォールやNATサーバを設置した場合でも、外部から自由にアクセスしてリソースを取得可能なP2Pシステムを提供することを目的とする。
【0021】
【課題を解決するための手段】
本発明のネットワークシステムは、グローバルアドレスとプライベートアドレスとの付け替えを行うことによってプライベートネットワークの内外で通信のやり取りを行うゲートウェイノードを有し、当該ゲートウェイノードは、検索ヒット応答を受け取ったときに、検索ヒットノードの情報にゲートウェイノードの情報を加えて検索ヒット応答を他のノードに転送する手段を備え、各ノードは、自身がコマンド発行元ノードである場合に、検索ヒット応答中に含まれる検索ヒットノードの情報およびゲートウェイノードの情報に基づいて、検索ヒットノードもしくはゲートウェイノードにアクセスする手段を備えたことを特徴とする。
【0022】
本発明の他の態様では、各ノードが、自身がコマンド発行元ノードである場合において、検索ヒットノードにアクセスできないときに、接続している近接ノード群にアクセス要求コマンドを発行するアクセス要求手段と、自身が検索ヒットノードである場合において、伝播されてきたアクセス要求コマンドを受け取ったときに、コマンド発行元ノードにアクセスを実行する逆アクセス手段とを備えたことを特徴とする。
【0023】
本発明の他の態様では、各ノードが、自身がコマンド発行元ノードである場合において、アクセス要求コマンドを発行したにもかかわらず検索ヒットノードからのアクセスが確立されないときに、所定のゲートウェイノードにアクセスする第1のゲートウェイアクセス手段と、ゲートウェイノードへのアクセスを要求するゲートウェイアクセス要求コマンドを、接続している近接ノード群に発行する第2のアクセス要求手段と、自身が検索ヒットノードである場合において、伝播されてきたゲートウェイアクセス要求コマンドを受け取ったときに、ゲートウェイノードにアクセスする第2のゲートウェイアクセス手段とを備えたことを特徴とする。
【0024】
【発明の実施の形態】
(第1の実施形態)
以下、本発明の第1の実施形態を図面に基づいて説明する。
図1は、第1の実施形態によるネットワークの概略構成例を示す図である。本実施形態のネットワークは、ノードの集合10〜16,21〜22を含んで構成されている。
【0025】
図1の例において、ノード21,22によってプライベートネットワーク20が構成されている。したがって、このノード21,22間では、プライベートIPアドレス(以下、プライベートIPと略す)に基づいてアクセスが行われる。一方、ノード10〜16は、プライベートネットワーク20の外部に存在するノードである。したがって、これらのノード10〜16間では、グローバルIPアドレス(以下、グローバルIPと略す)に基づいてアクセスが行われる。
【0026】
ノード16はNATサーバであり、グローバルIPとプライベートIPとの双方を持つ。プライベートネットワーク20の外部からパケットが送られてきたときは、その宛て先グローバルIP(NATサーバ16のグローバルIP)をプライベートIPに変換することにより、プライベートネットワーク20内のノード21にアクセスする。逆に、プライベートネットワーク20内のノード21からパケットが送られてきたときは、その送信元プライベートIP(ノード21のプライベートIP)をNATサーバ16のグローバルIPに変換して外部のノードにアクセスする。
【0027】
本実施形態では、NATサーバ16のポートフォワード機能を利用して、P2Pアーキテクチャ用のポートを転送する設定を行う。すなわち、マスカレードノードとしてNATサーバ16を設定する。これによりNATサーバ16は、hitリプライを転送するときに、リソースの検索にヒットした検索ヒットノードの情報と、マスカレードノードであるNATサーバ16の情報との双方を転送するように処理する。
【0028】
例えば、図1のようにlookupコマンドの発行元ノード10がプライベートネットワーク20の外部にあり、所望のリソース30を備えた検索ヒットノード21がプライベートネットワーク20の内部にある場合について考える。この場合においてNATサーバ16は、検索ヒットノード21から送られてきたhitリプライを転送するときに、検索ヒットノード21のプライベートIPに対して、マスカレードノードであるNATサーバ16のグローバルIPを加えて、その両方のノード情報を転送するようにする。
【0029】
このhitリプライを受信したコマンド発行元ノード10は、hitリプライ中に含まれている検索ヒットノード21のプライベートIPに基づいて、通常の処理に従って当該検索ヒットノード21にアクセスを試みる。
【0030】
しかし、コマンド発行元ノード10から検索ヒットノード21に対してはアクセスのセッションを直接張ることができない。そこで、コマンド発行元ノード10は、hitリプライ中に含まれているNATサーバ16のグローバルIPに基づいて、マスカレードノードへのアクセスに切り替えて検索ヒットノード21に間接的にアクセスする。
【0031】
図2は、NATサーバ16の動作を示すフローチャートである。このフローチャートは、NATサーバ16が他のノードから何らかのコマンドを受信した際の動作を示すものである。図2において、NATサーバ16は、受信したコマンドがlookupコマンドかどうかを判断し(ステップS1)、そうであればそのlookupコマンドを他のノードに伝播する(ステップS2)。
【0032】
受信したコマンドがlookupコマンドでない場合は、更にhitリプライであるかどうかを判断する(ステップS3)。hitリプライでもない場合は、その受信したコマンドに従ってその他の処理を行う(ステップS4)。一方、hitリプライを受信した場合、NATサーバ16は、マスカレードノードとして動作する自身のグローバルIPをhitリプライ中に付加し(ステップS5)、当該グローバルIPの付加されたhitリプライを他のノードに伝播する(ステップS6)。
【0033】
また、図3は、コマンド発行元ノード10の動作を示すフローチャートである。このフローチャートは、コマンド発行元ノード10が他のノードからhitリプライを受信した際の動作を示すものである。図3において、コマンド発行元ノード10は、受信したhitリプライ中に含まれている検索ヒットノード21のプライベートIPに基づいて、当該検索ヒットノード21にアクセスを試みる(ステップS11)。
【0034】
そして、アクセスのセッションが張れたかどうかを判断する(ステップS12)。プライベートネットワーク20の内部同士あるいは外部同士でアクセスするような場合には、セッションを張ることができる。したがって、例えば検索ヒットノードもコマンド発行元ノード10と同様にプライベートネットワーク20の外部にあるような場合には、コマンド発行元ノード10はそのアクセスに基づいて検索ヒットノードからリソースを取得する(ステップS14)。
【0035】
ただし、今の例では、検索ヒットノード21がプライベートネットワーク20の内部にあるので、プライベートネットワーク20の外部にあるコマンド発行元ノード10からその検索ヒットノード21に対してはアクセスのセッションを張ることができない。この場合、コマンド発行元ノード10は、hitリプライ中に含まれているNATサーバ16のグローバルIPに基づいて、マスカレードノードへのアクセスに切り替えて検索ヒットノード21にアクセスし(ステップS13)、リソースを取得する(ステップS14)。
【0036】
以上詳しく説明したように、第1の実施形態によれば、hitリプライにマスカレードノードとしてのNATサーバのグローバルIPを付加して伝播するとともに、コマンド発行元ノードが検索ヒットノードにアクセスしてセッションを張れないときはマスカレードノードへのアクセスに切り替えて検索ヒットノードにアクセスするようにしたので、NATサーバが設置されている場合でも、プライベートネットワークの外部から内部へと自由にアクセスすることができるようになる。
【0037】
(第2の実施形態)
次に、本発明の第2の実施形態を図面に基づいて説明する。
図4は、第2の実施形態によるネットワークの概略構成例を示す図である。本実施形態のネットワークは、ノードの集合10〜15,21を含んで構成されている。
【0038】
図4の例において、ノード21はファイアウォール40の内部にあるものとする。また、その他のノード10〜15はファイアウォール40の外部にあるものとする。本実施形態において、接続のセッションは、張れない場合には対処しない。しかし、接続セッションをファイアウォール40の内部または外部のどちらから張るかは問題でなく、張れる方向のみで接続セッションを開始して、トポロジを形成する。
【0039】
図4の例では、ファイアウォール40内のノード21から外部のノード11,15に対してセッションを開始することにより、これらの間に既に接続が確立している状態を示している。このような状態で、ノード10からリソース30を検索するためのlookupコマンドを発行した結果、ノード11を経由してファイアウォール40内のノード21にlookupコマンドが伝播され、当該ノード21から逆の流れでhitリプライが返されてきたとする。
【0040】
hitリプライを受け取ったコマンド発行元ノード10は、通常の処理に従って、検索ヒットノード21に対してダイレクトにアクセスを試みる。しかし、検索ヒットノード21はファイアウォール40の内部に存在するので、コマンド発行元ノード10から検索ヒットノード21に対してはアクセスのセッションを張ることができない。
【0041】
この場合、コマンド発行元ノード10は、接続のセッションを通して、検索ヒットノード21に対してpush−reqコマンド(アクセス要求コマンド)を発行する。このpush−reqコマンドは、hitリプライが逆伝播された経路に従って、検索ヒットノード21に届けられる。push−reqコマンドは、コマンド発行元ノード10の情報を含むパケットである。したがって、このpush−reqコマンドを受信した検索ヒットノード21では、コマンド発行元ノード10を知ることができる。
【0042】
そこで、push−reqコマンドを受け取った検索ヒットノード21は、コマンド発行元ノード10に対してアクセスする。これは、通常のアクセス時と逆向きのセッションの張り方となる。ここでは、ファイアウォール40の内側から外側に向かうアクセスなので、問題なくセッションを張ることができる。コマンド発行元ノード10は、このとき張られたアクセスのセッションを通じて検索ヒットノード21にアクセスし、リソース30を取得する。
【0043】
図5は、図4に示したコマンド発行元ノード10の動作を示すフローチャートである。このフローチャートは、コマンド発行元ノード10が他のノードからhitリプライを受信した際の動作を示すものである。図5において、コマンド発行元ノード10は、受信したhitリプライ中に含まれているアクセスインタフェースの名前および検索ヒットノード21の情報に基づいて、検索ヒットノード21にアクセスを試みる(ステップS21)。
【0044】
そして、アクセスのセッションが張れたかどうかを判断する(ステップS22)。ファイアウォール40の外部同士あるいはファイアウォール40の内部から外部へのアクセスをするような場合には、セッションを張ることができる。その場合、コマンド発行元ノード10はそのアクセスに基づいて検索ヒットノードからリソースを取得する(ステップS26)。
【0045】
ただし、図4のようにファイアウォール40の外部から内部の検索ヒットノード21にアクセスするような場合は、アクセスのセッションを張ることができない。この場合、コマンド発行元ノード10は、push−reqコマンドを発行する(ステップS23)。その後、そのpush−reqコマンドに従って検索ヒットノード21からアクセスが行われたかどうかを判断し(ステップS24)、行われた場合には、そのアクセスのセッションを通じて検索ヒットノード21にアクセスして(ステップS25)、リソース30を取得する(ステップS26)。
【0046】
図6は、第2の実施形態によるネットワークの別の構成例を示す図である。図6に示す例では、検索ヒットノード21がファイアウォール40の内部にあるだけでなく、コマンド発行元ノード10も別のファイアウォール41の内部に含まれている。このような場合に対応するために、アクセスの仲介を行うためのゲートウェイノード(GWノード)50を各ファイアウォール40,41の外部に用意する。ゲートウェイノード50は、コマンド発行元ノード10および検索ヒットノード21の両方からセッションを張れる必要がある。
【0047】
この図6の例においても、ノード10からリソース30を検索するためのlookupコマンドを発行した結果、ノード11を経由してファイアウォール40内のノード21にlookupコマンドが伝播され、当該ノード21から逆の流れでhitリプライが返されてきたとする。
【0048】
hitリプライを受け取ったコマンド発行元ノード10は、通常の処理に従って、検索ヒットノード21に対してダイレクトにアクセスを試みる。しかし、検索ヒットノード21はファイアウォール40の内部に存在するので、コマンド発行元ノード10から検索ヒットノード21に対してはアクセスのセッションを張ることができない。
【0049】
この場合、コマンド発行元ノード10は、hitリプライが逆伝播された接続経路に沿って、検索ヒットノード21に対してpush−reqコマンドを発行する。push−reqコマンドを受け取った検索ヒットノード21は、コマンド発行元ノード10に対してアクセスを試みる。これは、通常のアクセス時と逆向きのセッションの張り方となる。
【0050】
先に示した図4の例では、この時点でアクセスのセッションを張ることができた。しかし、ここでは、コマンド発行元ノード10もファイアウォール41の内部に存在するので、検索ヒットノード21からコマンド発行元ノード10に対してもアクセスのセッションを張ることができない。
【0051】
この場合、コマンド発行元ノード10は、接続のセッションを通して、検索ヒットノード21に対してgw−reqコマンド(ゲートウェイアクセス要求コマンド)を発行する。このgw−reqコマンドは、hitリプライが逆伝播された経路に従って、検索ヒットノード21に届けられる。gw−reqコマンドは、ゲートウェイノード50の情報を含むパケットである。したがって、このgw−reqコマンドを発行したコマンド発行元ノード10およびこれを受信した検索ヒットノード21の双方は、ゲートウェイノード50を知ることができる。
【0052】
そこで、コマンド発行元ノード10および検索ヒットノード21は、ゲートウェイノード50に対してアクセスする。これらは共に、ファイアウォール40の内側から外側に向かうアクセスなので、問題なくセッションを張ることができる。ゲートウェイノード50は、内部的に2つのセッションを結び付けて、アクセスのセッションを仲介する。コマンド発行元ノード10は、このとき張られたアクセスセッションを通じて検索ヒットノード21にアクセスし、リソース30を取得する。
【0053】
図7は、図6に示したコマンド発行元ノード10の動作を示すフローチャートである。このフローチャートは、コマンド発行元ノード10が他のノードからhitリプライを受信した際の動作を示すものである。図7において、コマンド発行元ノード10は、受信したhitリプライ中に含まれているアクセスインタフェースの名前および検索ヒットノード21の情報をもとに、検索ヒットノード21にアクセスを試みる(ステップS31)。
【0054】
そして、アクセスのセッションが張れたかどうかを判断する(ステップS32)。ここでアクセスのセッションを張ることができた場合、コマンド発行元ノード10はそのアクセスに基づいて検索ヒットノードからリソースを取得する(ステップS38)。
【0055】
一方、図6のようにファイアウォール40の外部から内部の検索ヒットノード21にアクセスするような場合は、アクセスのセッションを張ることができない。この場合、コマンド発行元ノード10は、push−reqコマンドを発行する(ステップS33)。その後、そのpush−reqコマンドに従って検索ヒットノード21からアクセスが行われたかどうかを判断し(ステップS34)、行われた場合には、そのアクセスのセッションを通じて検索ヒットノード21にアクセスして(ステップS35)、リソース30を取得する(ステップS38)。
【0056】
しかし、図6の例では検索ヒットノード21からコマンド発行元ノード10に対してもアクセスのセッションを張ることができない。この場合、コマンド発行元ノード10は、検索ヒットノード21に対してgw−reqコマンドを発行した後(ステップS36)、ゲートウェイノード50にアクセスする(ステップS37)。検索ヒットノード21にgw−reqコマンドを発行することによって、検索ヒットノード21からもゲートウェイノード50へのアクセスが行われるので、コマンド発行元ノード10はこれらのアクセスセッションを通じて検索ヒットノード21にアクセスし、リソース30を取得する(ステップS38)。
【0057】
図8は、図6に示した検索ヒットノード21の動作を示すフローチャートである。このフローチャートは、検索ヒットノード21が他のノードにhitリプライを発行した後の動作を示すものである。図8において、検索ヒットノード21は、push−reqコマンドを受信したかどうかを判断する(ステップS41)。push−reqコマンドを受信していない場合は、コマンド発行元ノード10から検索ヒットノード21に対するアクセスのセッションがうまく張られたということなので、何もせずに処理を終了する。
【0058】
一方、push−reqコマンドを受信した場合は、その受信したpush−reqコマンド中に含まれているコマンド発行元ノード10の情報をもとに、当該コマンド発行元ノード10にアクセスを試みる(ステップS42)。そして、アクセスのセッションが張れたかどうかを判断する(ステップS43)。ここでアクセスのセッションを張ることができた場合は、何もせずに処理を終了する。
【0059】
検索ヒットノード21からコマンド発行元ノード10に対してアクセスのセッションを張ることができなかった場合、検索ヒットノード21はgw−reqコマンドの受信待ちの状態になる(ステップS44)。gw−reqコマンドを受信した場合は、その受信したgw−reqコマンド中に含まれているゲートウェイノード50の情報をもとに、当該ゲートウェイノード50にアクセスして(ステップS45)処理を終了する。
【0060】
以上詳しく説明したように、第2の実施形態によれば、ファイアウォール内のリソースに外部からアクセスしようとする場合に、所定のコマンドを発行することによってファイアウォールの内側から外側に向かってアクセスのセッションを張るようにしたので、セキュリティ対策のためにファイアフォールを設置した場合でも、そのファイアウォールの外部から内部のリソースへと自由にアクセスすることができるようになる。
【0061】
なお、このようにファイアウォールの内向きに自由にアクセスできるようになると、不正な第三者がグループのメンバに成りすましてファイアウォール内に侵入することもあり得る。本実施形態では、このような場合にも機密情報が漏れないように、転送するデータやファイル等のリソースを暗号化する。また、ユーザ認証も利用する。なお、暗号化の方式は特に限定しないが、例えばPKI(公開鍵暗号方式)を利用することが可能である。
【0062】
本実施形態では、ユーザログイン時に認証のタイプを指定することができるようにしている。認証には、単純なパスワード認証から複雑なSSL(Secure Sockets Layer)認証まで用意されている。パスワード認証は、各ノード上で実行される。SSL認証は、各ノードが接続時に提出する証明書をベースにして行われる。
【0063】
図9は、ユーザ情報を告知する際の動作を説明するための図である。図9に示すように、ユーザノード10は、ネットワークへのログイン後および新たな接続の開始時に、接続セッションを利用してユーザ情報を告知する。このユーザ情報は、ユーザID、表示名、説明、ユーザ認証の証明書(公開鍵)を含む。ユーザノード10から告知されたユーザ情報のパケットは、他のノード11〜19間で伝播される。
【0064】
ユーザノード10から伝播されたユーザ情報は、各ノード11〜19のローカルストレージが備える共通ユーザリスト61,62,・・・に各々キャッシュ記憶される。ユーザ認証やデータの暗号化あるいは復号化を行うときは、この共通ユーザリスト61,62,・・・に記憶されたユーザ情報を取得して利用する。
【0065】
図10は、SSLベースのユーザ認証を行う際の動作を説明するための図である。SSL認証を行う場合、認証する側には、認証局の証明書が必要となる。そのためノードは、所定の属性ファイルと認証局の証明書とをセットで配布する。図9で説明したように、ノードにユーザがログインすると、ユーザノード10は、その接続先にユーザの証明書を提出する。ユーザの証明書を受けたノードは、認証局の証明書で当該ユーザ証明書を認証する。証明書の認証後、ユーザの秘密鍵の本人確認を行い、これに認められた場合にログインを許可する。
【0066】
ユーザ認証時に提出された証明書は、ユーザ情報の告知として他のノードに伝播される。各ノードは、受け取ったユーザ証明書をローカルストレージにキャッシュする。リソースをSSLベースで暗号化するときや、リソースの署名を確認するときなどは、ユーザ証明書内の公開鍵を使用する。
【0067】
このように、本実施形態では、ネットワークへのログイン時などにユーザ情報の告知を行うようにし、そのユーザ情報の中にユーザ証明書(公開鍵を含む)を含ませるようにしたので、各ノードに対して公開鍵を容易に配布することができる。逆に言えば、各ノードで公開鍵を入手するのが非常に容易であり、P2Pネットワークの中でユーザ認証および暗号化を容易に行うことができる。
【0068】
以上に説明した本実施形態によるネットワークシステムの機能は、実際にはコンピュータのCPUあるいはMPU、RAM、ROMなどで構成され、RAMやROMに記憶されたプログラムが動作することによって実現できる。したがって、コンピュータが上記の機能を果たすように動作させるプログラムを例えばCD−ROMのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものである。
【0069】
上記プログラムを記録する記録媒体としては、CD−ROM以外に、フレキシブルディスク、ハードディスク、磁気テープ、光ディスク、光磁気ディスク、DVD、不揮発性メモリカード等を用いることができる。また、上記プログラムをインターネット等のネットワークを介してコンピュータにダウンロードすることによっても実現できる。
【0070】
また、コンピュータが供給されたプログラムを実行することにより上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合や、供給されたプログラムの処理の全てあるいは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合も、かかるプログラムは本実施形態に含まれる。
【0071】
なお、上記に説明した各実施形態は、本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0072】
【発明の効果】
本発明は上述したように、グローバルアドレスとプライベートアドレスとの付け替えを行うゲートウェイノードが検索ヒット応答を受け取ったときに、検索ヒットノードの情報にゲートウェイノードの情報を加えて伝播するようにし、コマンド発行元ノードが検索ヒット応答を受け取ったときは、当該検索ヒット応答中に含まれる検索ヒットノードの情報およびゲートウェイノードの情報に基づき検索ヒットノードもしくはゲートウェイノードにアクセスするようにしている。これにより、ゲートウェイノードが存在する場合でも、プライベートネットワークの外部から内部あるいはその逆へと自由にアクセスしてリソースを取得することができるようになる。
【0073】
本発明の他の特徴によれば、コマンド発行元ノードが検索ヒットノードにアクセスできないときに、接続している近接ノード群を介してアクセス要求コマンドを検索ヒットノードに伝播するとともに、これを受け取った検索ヒットノードがコマンド発行元ノードにアクセスを実行するようにしている。これにより、ファイアウォールの外側から内側に向かってアクセスできない場合でも、上記アクセス要求コマンドを発行することによってファイアウォールの内側から外側に向かってアクセスを確立することができ、そのセッションを利用してファイアウォールの外部から内部のリソースへと自由にアクセスすることができるようになる。
【0074】
また、本発明の他の特徴によれば、コマンド発行元ノードがアクセス要求コマンドを発行したにもかかわらず検索ヒットノードからのアクセスが確立されないときに、所定のゲートウェイノードにアクセスするとともに、当該ゲートウェイノードへのアクセス要求コマンドを近接ノード群を介して検索ヒットノードに伝播し、これを受け取った検索ヒットノードがゲートウェイノードにアクセスを実行するようにしている。これにより、コマンド発行元ノードと検索ヒットノードとの双方がファイアウォールの中にある場合であっても、それぞれのファイアウォールの内側から外側のゲートウェイノードに向かってアクセスを確立することができ、それらのセッションを利用してファイアウォールの外部から内部のリソースへと自由にアクセスすることができるようになる。
【図面の簡単な説明】
【図1】第1の実施形態によるネットワークの概略構成例を示す図である。
【図2】第1の実施形態によるNATサーバの動作を示すフローチャートである。
【図3】第1の実施形態によるコマンド発行元ノードの動作を示すフローチャートである。
【図4】第2の実施形態によるネットワークの概略構成例を示す図である。
【図5】図4に示したコマンド発行元ノードの動作を示すフローチャートである。
【図6】第2の実施形態によるネットワークの別の構成例を示す図である。
【図7】図6に示したコマンド発行元ノードの動作を示すフローチャートである。
【図8】図6に示した検索ヒットノードの動作を示すフローチャートである。
【図9】ユーザ情報の告知動作を示すフローチャートである。
【図10】SSLベースのユーザ認証を行う際の動作を説明するための図である。
【図11】P2Pアーキテクチャを利用して所望のリソースを検索および取得する際の手順を示す図である。
【符号の説明】
10〜15 ノード
16 マスカレードノード(NATサーバ)
20 プライベートネットワーク
21〜22 ノード
30 リソース
40,41 ファイアウォール
50 ゲートウェイノード
61,62 共通ユーザリスト

Claims (4)

  1. 接続している近接ノード群にリソース検索コマンドを伝播していき、あるノードにおいてリソースの検索にヒットした場合、当該検索ヒットノードから検索ヒット応答を、上記リソース検索コマンドを伝播した各ノードにより逆向きに伝播してコマンド発行元ノードまで届けた後、上記コマンド発行元ノードが上記検索ヒットノードにアクセスして上記リソースを取得するように成されたネットワークシステムであって、
    グローバルアドレスとプライベートアドレスとの付け替えを行うことによってプライベートネットワークの内外で通信のやり取りを行うゲートウェイノードを有し、当該ゲートウェイノードは、上記検索ヒット応答を受け取ったときに、上記検索ヒットノードの情報に上記ゲートウェイノードの情報を加えて上記検索ヒット応答を他のノードに転送する手段を備え、
    各ノードは、自身が上記コマンド発行元ノードである場合に、上記検索ヒット応答中に含まれる上記検索ヒットノードの情報および上記ゲートウェイノードの情報に基づいて、上記検索ヒットノードもしくは上記ゲートウェイノードにアクセスする手段を備えたことを特徴とするネットワークシステム。
  2. 接続している近接ノード群にリソース検索コマンドを伝播していき、あるノードにおいてリソースの検索にヒットした場合、当該検索ヒットノードから検索ヒット応答を、上記リソース検索コマンドを伝播した各ノードにより逆向きに伝播してコマンド発行元ノードまで届けた後、上記コマンド発行元ノードが上記検索ヒットノードにアクセスして上記リソースを取得するように成されたネットワークシステムであって、各ノードは、
    自身が上記コマンド発行元ノードである場合において、上記検索ヒットノードにアクセスできないときに、上記接続している近接ノード群にアクセス要求コマンドを発行するアクセス要求手段と、
    自身が上記検索ヒットノードである場合において、伝播されてきた上記アクセス要求コマンドを受け取ったときに、上記コマンド発行元ノードにアクセスを実行する逆アクセス手段とを備えたことを特徴とするネットワークシステム。
  3. 上記各ノードは、自身が上記コマンド発行元ノードである場合において、上記アクセス要求コマンドを発行したにもかかわらず上記検索ヒットノードからのアクセスが確立されないときに、所定のゲートウェイノードにアクセスする第1のゲートウェイアクセス手段と、
    上記ゲートウェイノードへのアクセスを要求するゲートウェイアクセス要求コマンドを上記接続している近接ノード群に発行する第2のアクセス要求手段と、自身が上記検索ヒットノードである場合において、伝播されてきた上記ゲートウェイアクセス要求コマンドを受け取ったときに、上記ゲートウェイノードにアクセスする第2のゲートウェイアクセス手段とを備えたことを特徴とする請求項2に記載のネットワークシステム。
  4. 請求項1〜3の何れか1項に記載の各手段としてコンピュータを機能させるためのプログラム。
JP2002178039A 2002-06-19 2002-06-19 ネットワークシステムおよびプログラム Pending JP2004023597A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002178039A JP2004023597A (ja) 2002-06-19 2002-06-19 ネットワークシステムおよびプログラム
PCT/JP2003/007617 WO2004001630A1 (ja) 2002-06-19 2003-06-16 ネットワークシステムおよびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002178039A JP2004023597A (ja) 2002-06-19 2002-06-19 ネットワークシステムおよびプログラム

Publications (1)

Publication Number Publication Date
JP2004023597A true JP2004023597A (ja) 2004-01-22

Family

ID=29996504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002178039A Pending JP2004023597A (ja) 2002-06-19 2002-06-19 ネットワークシステムおよびプログラム

Country Status (2)

Country Link
JP (1) JP2004023597A (ja)
WO (1) WO2004001630A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005078593A1 (ja) * 2004-02-13 2005-08-25 Sony Chemicals Corporation 業務プロセスシステム及び業務プロセス方法、並びに情報処理装置
KR100609738B1 (ko) 2003-07-04 2006-08-08 후지 샤신 필름 가부시기가이샤 피어 투 피어 통신시스템
JP2007519375A (ja) * 2004-01-23 2007-07-12 タイヴァーサ・インコーポレーテッド ピアツーピア・ネットワーク通信の改善方法
JP2008294627A (ja) * 2007-05-23 2008-12-04 Brother Ind Ltd 通信システム、ノード装置、ノード処理プログラム、及びメッセージ送受信方法
JP2009009322A (ja) * 2007-06-27 2009-01-15 Casio Comput Co Ltd 売上データ処理装置及びプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100362809C (zh) * 2005-07-05 2008-01-16 华为技术有限公司 一种对bt客户端数据传输的控制方法
CN101425958A (zh) * 2007-10-29 2009-05-06 华为技术有限公司 一种p2p叠加网中请求应答方法、装置和系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100609738B1 (ko) 2003-07-04 2006-08-08 후지 샤신 필름 가부시기가이샤 피어 투 피어 통신시스템
JP2007519375A (ja) * 2004-01-23 2007-07-12 タイヴァーサ・インコーポレーテッド ピアツーピア・ネットワーク通信の改善方法
JP4714698B2 (ja) * 2004-01-23 2011-06-29 タイヴァーサ・インコーポレーテッド ピアツーピア・ネットワーク通信の改善方法
WO2005078593A1 (ja) * 2004-02-13 2005-08-25 Sony Chemicals Corporation 業務プロセスシステム及び業務プロセス方法、並びに情報処理装置
JP2008294627A (ja) * 2007-05-23 2008-12-04 Brother Ind Ltd 通信システム、ノード装置、ノード処理プログラム、及びメッセージ送受信方法
JP2009009322A (ja) * 2007-06-27 2009-01-15 Casio Comput Co Ltd 売上データ処理装置及びプログラム

Also Published As

Publication number Publication date
WO2004001630A1 (ja) 2003-12-31

Similar Documents

Publication Publication Date Title
JP4778571B2 (ja) データ通信網のセキュアな連合
US8176189B2 (en) Peer-to-peer network computing platform
JP4363520B2 (ja) ピアツーピア・ネットワークにおけるリソース検索方法
EP2127224B1 (en) Private virtual lan spanning a public network for connection of arbitrary hosts
US7222187B2 (en) Distributed trust mechanism for decentralized networks
Vasserman et al. Membership-concealing overlay networks
Traversat et al. Project JXTA virtual network
US20090164663A1 (en) Security modes for a distributed routing table
JP5239341B2 (ja) ゲートウェイ、中継方法及びプログラム
JP2008508573A (ja) セキュア通信に関連する改良
Ma et al. An architecture for accountable anonymous access in the internet-of-things network
JP2008271476A (ja) 暗号通信処理方法及び暗号通信処理装置
Gawande et al. Decentralized and secure multimedia sharing application over named data networking
Ford UIA: A global connectivity architecture for mobile personal devices
Zave et al. Patterns and interactions in network security
JP2004023597A (ja) ネットワークシステムおよびプログラム
Ramachandran et al. Authenticated out-of-band communication over social links
JP3731645B2 (ja) エージェント方法及びコンピュータシステム
Mahdian et al. Myzone: A next-generation online social network
Sieka et al. On the security of polling protocols in peer-to-peer systems
Tang et al. Strong authentication for tactical mobile ad hoc networks
JP2011054182A (ja) ディジタルバトンを使用するシステムおよび方法、メッセージを認証するためのファイアウォール、装置、および、コンピュータ読み取り可能な媒体
Ventura Diameter: Next generations AAA protocol
Kutscher et al. RESTful information-centric networking: statement
Divac-Krnic et al. Security-Related issues in peer-to-peer networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060912

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070123