[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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

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

Info

Publication number
WO2004001630A1
WO2004001630A1 PCT/JP2003/007617 JP0307617W WO2004001630A1 WO 2004001630 A1 WO2004001630 A1 WO 2004001630A1 JP 0307617 W JP0307617 W JP 0307617W WO 2004001630 A1 WO2004001630 A1 WO 2004001630A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
command
access
search
search hit
Prior art date
Application number
PCT/JP2003/007617
Other languages
English (en)
French (fr)
Inventor
Seiichiro Inoue
Takahiro Hidaka
Hiroki Otani
Shinichi Iwata
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.
Publication of WO2004001630A1 publication Critical patent/WO2004001630A1/ja

Links

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

Definitions

  • the present invention relates to a network system and a program, and is particularly suitable for a system in which data is directly exchanged between clients without going through a server.
  • network technology based on P2P is an architecture in which clients exchange information directly with each other without using a server near the user.
  • resources generated by many clients are managed by each client itself, so there is no need to collect many resources on the server, and there is almost no access concentration for resource acquisition.
  • idle resources of high-performance personal computers can be used effectively.
  • FIG. 1 is a diagram showing a schematic configuration of a network to which a P2P architecture is applied.
  • a P2P network is defined by a set of nodes.
  • a node is a program process that implements the P2P protocol. Therefore, for example, if a single personal computer has multiple running programs, there will be multiple nodes.
  • connection forms a normal topology, and a basic protocol (1 o okup command corresponding to a resource search command, hit reply corresponding to a search hit response, etc.) is transmitted over this connection session. Flows.
  • a session is established from the user node 10 (1 o okup command issuing node) to the node 103 with resource 110 (hit reply issuing node).
  • access is a session that is temporarily established between the command issuing node and the search hit node after the resource is discovered, over which a protocol according to the access interface flows.
  • Fig. 1 (a) The topology formation state of “connection” and “access” described above is not managed centrally, and individual nodes form autonomously.
  • the node 100 of the user who wants to acquire the resource 110 sends a 1 ookup command to find out where the resource 110 is located. Issued to 101 and 102.
  • Nodes 101 and 102 receiving the looku command check to see if they have the required resource 110. If the corresponding resource 1 110 cannot be found, as shown in Fig. 1 (b), 1 the ookup command is sent to the neighboring node (the node that is connected other than the source of the lookup command). 0 Transfer to 6. Nodes 103 to 106 receiving this 1ookup command also check whether they have the requested resource 110.
  • the node 110 3 hits the search for the resource 110. If the search hits, it returns a hit reply to node 101, which is the sender of the lookup command, as shown in Fig. 1 (c). The node 101 that has received the hit reply forwards the hit reply to the user node 100 that is the source of the lookup command. In this way, the M t reply is propagated in the reverse direction by each node that has transmitted the lookup command, and reaches the user node 100 that issued the command.
  • the hit reply is a packet containing the name of the access interface of the resource 110 and the information of the search hit node 103. According to the above procedure, the user node 100 that first issued the 1 ookup command sets the desired Resource 110 can be found to exist on node 103. Next, the user node 100 receiving the hit rebroadcast accesses the node 103 directly as shown in FIG. 1 (d) to obtain the resource 110.
  • Firewalls generally use a single server as a gateway to the group, and run dedicated software here to prevent unauthorized third parties from unauthorized entry into the group. It is. Specifically, it determines whether communication is possible by looking at the IP addresses of the source and destination. Therefore, if a firewall is installed, communication from outside the group to the inside is rejected, and it becomes impossible to establish a connection and access session.
  • NAT is a method devised to address the shortage of IP addresses. This is to save global addresses by allocating global addresses only to gateways that enter and exit the group, and allocating private addresses that are only used within the group within the group. It is.
  • the NAT server serving as a gateway accesses a node in the group by converting a global address sent from outside the group into a private address. Therefore, if a NAT server is installed as a gateway, 1 o okup command issuing node is outside the group, and if the node discovered by command propagation is inside the group, global address It is impossible to establish a direct access session from an external node having a private address to an internal node having a private address.
  • the present invention has been made to solve such a problem.
  • a P2P system that can freely access resources and acquire resources even when a firewall or a NAT server is installed is provided.
  • the purpose is to provide. Disclosure of the invention
  • the network system includes a gateway node that exchanges communications inside and outside a private network by replacing a global address with a private address.
  • the node When receiving a search hit response, the node has means for adding the information of the gateway node to the information of the search hit node and transferring the search hit response to another node. If it is the command issuing node, the information of the search hit node included in the search hit response and A means for accessing a search hit node or a gateway node based on the information of the gateway node.
  • each node when each node is a command issuing node and cannot access the search hit node, each node issues an access request command to a connected neighboring node group.
  • First gateway access means for accessing a predetermined gateway node, and second access request means for issuing a gateway access request command for requesting access to the gateway node to a group of connected neighboring nodes.
  • second gateway access means for accessing the gateway node when receiving the transmitted gateway access request command when the gateway itself is a search hit node.
  • the gateway node information is added to the search hit node information.
  • the command issuing node receives a search hit response
  • the search hit node or the gateway node information included in the search hit response and the information of the gateway node are used. It is trying to access the gateway. This allows external access to the private network even when the gate-to-node is present. You will be able to access resources internally and vice versa to obtain resources.
  • the access request command is propagated to the search hit node via the connected neighboring nodes.
  • the search hit node that receives this command accesses the node that issued the command. In this way, even if access is not possible from outside the firewall to the inside, it is possible to establish access from inside the firewall to the outside by issuing the above access request command, and use the session. This allows free access to internal resources from outside the firewall.
  • a command issuing node issues an access request command but access from a search hit node is not established, a predetermined gateway node is accessed.
  • the access request command for the gateway node is propagated to the search hit node via the neighboring nodes, and the search hit node that receives the command accesses the gateway node.
  • This allows access to be established from inside each firewall to the outside gateway node, even if both the command issuing node and the search hit node are inside the firewall. By using these sessions, it is possible to freely access resources inside the firewall from outside.
  • FIG. 1 is a diagram showing a procedure for searching and acquiring a desired resource using the P2P architecture.
  • FIG. 2 is a diagram illustrating a schematic configuration example of a network according to the first embodiment.
  • FIG. 3 is a flowchart showing the operation of the NAT server according to the first embodiment.
  • FIG. 4 is a flowchart showing the operation of the command issuing node according to the first embodiment.
  • FIG. 5 is a diagram illustrating a schematic configuration example of a network according to the second embodiment.
  • FIG. 6 is a flowchart showing the operation of the command issuing node shown in FIG. 'FIG. 7 is a diagram showing another configuration example of the network according to the second embodiment.
  • FIG. 8 is a flowchart showing the operation of the command issuing node shown in FIG.
  • FIG. 9 is a flowchart showing the operation of the search hit node shown in FIG.
  • FIG. 10 is a flowchart showing an operation of notifying user information.
  • FIG. 11 is a diagram for explaining an operation when performing SSL-based user authentication.
  • FIG. 2 is a diagram illustrating a schematic configuration example of a network according to the first embodiment.
  • the network of this embodiment is composed of a set of nodes 10 to 16 and 21 to 1
  • the nodes 21 and 22 constitute a private network 20. Therefore, access is performed between the nodes 21 and 22 based on the private IP address (hereinafter, abbreviated as private IP).
  • nodes 10 to 16 are nodes existing outside the private network 20. Therefore, access is performed between these nodes 10 to 16 based on the global IP address (hereinafter abbreviated as global IP).
  • Node 16 is a NAT server, which has both a global IP and a private IP.
  • the destination global IP (the global IP of the NAT server 16) is converted to a private IP, so that the private network 20 is sent.
  • Access node 2 1 in Conversely, when a packet is sent from the node 21 in the private network 20, the source private IP (the private IP of the node 21) is sent to the global IP of the NAT server 16. And access to the external node.
  • the port forwarding function of the NAT server 16 is used to make settings for forwarding the port for the P2P architecture. That is, the NAT server 16 is set as a masquerade node. As a result, the NAT server 16 transmits both the information of the search hit node hit for the resource search and the information of the NAT server 16 which is a masquerade node when transferring the hit reply. Process to transfer.
  • the source node 10 of the 1 ookup command is outside the private network 20 and the search hit node 21 with the desired resource 30 is the private node.
  • the NAT server 16 searches for the search hit node.
  • the command issuing node 10 receiving this hit reply sends the command to the search hit node 21 according to the normal processing based on the private IP of the search hit node 21 included in the hit reply. Attempt access. However, an access session cannot be established directly from the command issuing node 10 to the search hit node 21. Therefore, the command issuing node 10 switches to access to the masquerade node based on the global IP of the NAT server 16 included in the hit reply, and searches for the search hit node 21. Access indirectly.
  • FIG. 3 is a flowchart showing the operation of the NAT server 16. This flowchart shows an operation when the NAT server 16 receives some command from another node.
  • the NAT server 16 determines whether the received command is a 1 ookup command (step S1), and if so, propagates the lookup command to another node (step S2). .
  • FIG. 4 is a flowchart showing the operation of the command issuing node 10. This flowchart shows the operation when the command issuing node 10 receives a hit reply from another node. In FIG. 4, the command issuing node 10 attempts to access the search hit node 21 based on the private IP of the search hit node 21 included in the received hit reply ( Step S 1 1).
  • step S12 it is determined whether or not an access session has been established.
  • a session can be set up when access is made between private networks 20 or between external parties.
  • the search hit node is located outside the private network 20 as well as the command issuing node 10, the command issuing node 10 will determine based on the access.
  • the resource is obtained from the search hit node (step S14).
  • the command issuing node 10 outside the private network 20 sends the search hit node 21 1 An access session cannot be established for.
  • the command issuing node 10 switches to access to the masquerade node based on the global IP of the NAT server 16 included in the hit reply and searches for the search hit node 2 1 Is accessed (step S13), and resources are obtained (step S14).
  • the hit reply is added with the global IP of the NAT server as a masquerade node and propagated, and the command issuing node is sent to the search hit node.
  • a switch to access to the masquerade node is made to access the search hit node. Even if a server is installed, it will be possible to freely access the inside and outside of the private network.
  • FIG. 5 is a diagram illustrating a schematic configuration example of a network according to the second embodiment.
  • the network of the present embodiment is configured to include a set of nodes 10 to 15 and 21.
  • the node 21 is inside the firewall 40.
  • the other nodes 10 to 15 are outside the firewall 40.
  • the connection session is not dealt with if it cannot be established. However, it does not matter whether the connection session is established from inside or outside the firewall 40, and the connection session is started only in the direction in which the connection session can be established to form a topology.
  • the command issuing node 10 receiving the hit reply attempts direct access to the search hit node 21 according to the normal processing. However, since the search hit node 21 exists inside the firewall 40, an access session cannot be established from the command issuing node 10 to the search hit node 21. In this case, the command issuing node 10 issues a push-req command (access request command) to the search hit node 21 throughout the connection session. This push-req command is delivered to the search hit node 21 along the route in which the hit reply is backpropagated.
  • the push-req command is a packet that contains information on the command issuing node 10. Therefore, the search hit node 21 receiving this push-req command can know the command issuing node 10.
  • the search hit node 21 receiving the push-req command accesses the command issuing node 10. This is the opposite of a normal access session. In this case, since the access is from inside the firewall 40 to the outside, the session can be set up without any problem.
  • the command issuing node 10 accesses the search hit node 21 through the access session established at this time and obtains the resource 30.
  • FIG. 6 is a flowchart showing the operation of the command issuing node 10 shown in FIG. This flowchart shows the operation when the command issuing node 10 receives a hit reply from another node.
  • the command issuing node 10 tries to access the search hit node 21 based on the name of the access interface and the information of the search hit node 21 included in the received hit reply. (Step S21).
  • step S22 it is determined whether or not an access session has been established.
  • a session can be established.
  • the command issuing node 10 obtains resources from the search hit node based on the access (step S 2 6).
  • step S23 it is determined whether or not access has been made from the search hit node 21 according to the push-req command (step S24), and if so, the search hit node 2 has been accessed through the access session. 1 is accessed (step S25), and resource 30 is acquired (step S26).
  • FIG. 7 is a diagram illustrating another configuration example of the network according to the second embodiment.
  • the search hit node 21 is inside the firewall 40, but also the command issuing node 10 is included inside another firewall 41.
  • a gateway node (GW node) 50 for mediating access is prepared outside each of the firewalls 40 and 41.
  • the gateway node 50 needs to be able to establish a session from both the command issuing node 10 and the search hit node 21.
  • the lookup command for searching for the resource 30 from the node 10 is issued, and as a result, the lookup command is sent to the node 21 in the firewall 40 via the node 11. Node is propagated, and hit reply is returned from the node 21 in reverse flow.
  • the command issuing node 10 Upon receipt of the hit reply, the command issuing node 10 tries to access the directory to the search hit node 21 according to the normal processing. However, since the search hit node 21 exists inside the firewall 40, no access session can be established from the command issuing node 10 to the search hit node 21. In this case, the command issuing node 10 issues a push-req command to the search hit node 21 along the connection path on which the hit reply is backpropagated. The search hit node 21 receiving the push-req command attempts to access the command-issuing node 10. This is the opposite of a normal access session.
  • the command issuing node 10 issues a gw-req command (gateway access request command) to the search hit node 21 through the connection session.
  • the gw-req command is delivered to the search hit node 21 along the route through which the hit reply is backpropagated.
  • the gw-req command is a packet containing information on the gateway node 50. Therefore, both the command issuing node 10 that has issued the gw-req command and the search hit node 21 that has received it can know the gateway node 50.
  • the command issuing node 10 and the search hit node 21 access the gateway node 50. Both of these are accesses from inside the firewall 40 to the outside, so you can set up a session without any problems.
  • Gateway node 50 links two sessions internally and mediates an access session.
  • the command issuing node 10 accesses the search hit node 21 through the access session established at this time and acquires the resource 30.
  • FIG. 8 is a flowchart showing the operation of the command issuing node 10 shown in FIG. This is a charter. This flowchart shows the operation when the command issuing node 10 receives an Mt reply from another node.
  • step 8 the command issuing node 10 sets the name of the access interface and the search hit node 2 included in the received hit reply.
  • step S31 An attempt is made to access the search hit node 21 based on the information in step 1 (step S31).
  • step S32 it is determined whether an access session has been established. If an access session can be established here, the command issuing node 10 acquires a resource from the search hit node based on the access (step S38).
  • step S33 it is determined whether or not access has been performed from the search hit node 21 according to the ush-req command (step S34), and if so, the search hit node 21 has been accessed through the access session. Is accessed (step S35) to obtain a resource 30 (step S38).
  • an access session cannot be established from the search hit node 21 to the command issue node 10 as well.
  • the command issuing node 10 issues a gw-req command to the search hit node 21 (step S36), and then accesses the gateway node 50 (step S3). 7).
  • the search hit node 21 also accesses the gate node 50, so that the command issuing node 10 0 Accesses the search hit node 21 through these access sessions. And obtains resource 30 (step S38).
  • FIG. 9 is a flowchart showing the operation of the search hit node 21 shown in FIG. This flowchart shows the operation after the search hit node 21 issues a hit reply to another node.
  • the search hit node 21 determines whether a push-req command has been received (step S41). If the push-req command has not been received, it means that a session for access to the search hit node 21 from the command issuing node 10 has been successfully established, and the process ends without doing anything. .
  • the command issuing node 1 is included based on the information of the command issuing node 10 included in the received push-req command. Attempt to access 0 (step S42). Then, it is determined whether or not an access session has been established (step S43). If an access session can be established here, the process ends without doing anything.
  • the search hit node 21 waits for the gw-req command (step S 4 4).
  • the gateway node 50 is accessed based on the information of the gateway node 50 included in the received gw-req command (step S4). 5) End the processing.
  • a predetermined command is issued to allow the resources from inside the firewall to outside. Since an access session is set up, even if a firewall is installed for security measures, it will be outside the firewall. Departments can freely access internal resources.In this way, if it becomes possible to freely access the firewall inward, an unauthorized third party can pretend to be a member of the group and have access to the firewall. could invade. In the present embodiment, even in such a case, resources such as a data file to be transferred are encrypted so that confidential information is not leaked. It also uses user authentication.
  • the encryption method is not particularly limited, for example, PKI (public key encryption method) can be used.
  • the type of authentication can be specified at the time of user login.
  • Authentication range from simple password authentication to complex SSL (Secure Sockets Layer) authentication.
  • Password authentication is performed on each node.
  • SSL authentication is based on the certificates that each node submits when connecting.
  • FIG. 10 is a diagram for explaining the operation when notifying user information.
  • the user node 10 notifies the user information using the connection session after login to the network and at the start of a new connection.
  • This user information includes the user ID, display name, description, and user authentication certificate (public key).
  • the packet of the user information notified from the user node 10 is propagated between the other nodes 11 to 19.
  • the user information transmitted from the user node 10 is cached in a common user list 61, 62,... Provided in the local storage of each of the nodes 11 to 19.
  • a common user list 61, 62,... Provided in the local storage of each of the nodes 11 to 19.
  • FIG. 11 illustrates the operation when performing SSL-based user authentication.
  • the authenticating party needs a certificate of the certificate authority. Therefore, the node distributes a predetermined attribute file and a certificate of the certificate authority as a set.
  • the user node 10 submits the user's certificate to the connection destination.
  • the node that receives the user certificate authenticates the user certificate with the certificate of the certificate authority. After the certificate is authenticated, the identity of the user's private key is verified, and if it is accepted, login is permitted.
  • the certificate submitted at the time of user authentication is propagated to other nodes as notification of user information.
  • Each node caches the received user certificate in the oral storage. Use the public key in the user certificate when encrypting the resource based on SSL, or when verifying the signature of the resource.
  • the user information is notified when the user logs in to the network, and the user information (including the public key) is included in the user information.
  • Public keys can be easily distributed to each node. Conversely, it is very easy to obtain a public key from each node, and user authentication and encryption can be easily performed in a P2P network.
  • the functions of the network system according to the present embodiment described above are actually configured by a computer CPU or MPU, RAM, ROM, and the like, and the programs stored in the RAM and ROM operate. This can be achieved. Therefore, the present invention can be realized by recording a program that causes a computer to perform the above functions on a recording medium such as a CD-ROM, and reading the program over the computer.
  • a recording medium for recording the above programs in addition to a CD-ROM, a flexible disk, a hard disk, a magnetic tape, an optical disk, an optical disk A magnetic disk, a DVD, a nonvolatile memory card, or the like can be used. It can also be realized by downloading the above program to a computer via a network such as the Internet.
  • the present invention is useful for making it possible to freely access from outside and acquire resources even when a firewall or NAT server is installed in a P2P system.

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サーバ)16がプライベートネットワーク20内のノード21からhitリプライを受け取ったときに、検索ヒットノード21の情報にゲートウェイノード16の情報を加えて伝播するようにするとともに、hitリプライを受け取ったコマンド発行元ノード10から検索ヒットノード21にアクセスのセッションが張れない場合に、ゲートウェイノード16に切り替えてアクセスを実行するようにすることにより、NATサーバが存在する場合でも、プライベートネットワーク20の外部から内部へと自由にアクセスしてリソース30を取得することができるようにする。

Description

明 細 書 ネッ 卜ワークシステムおよびプログラム 技術分野
本発明はネッ トワークシステムおよびプログラムに関し、 特に、 サー バを介さずにクライアント同士で直接データの交換を行うシステムに用 いて好適なものである。 背景技術
近年、 インターネッ 卜の浸透とインターネッ トユーザ数の爆発的増加 という社会的背景、 パーソナルコンピュータ (パソコン) の高性能化と ネッ トワークの高速化という技術的背景をもとに、 ピアツ一ピア ( P 2 P ) と呼ばれるネッ トワーク技術が注目を集めている。
従来のネッ 卜ワークシステムは、 少数のサーバと多数のクライアン ト とをネッ トワークを介して接続したものが殆どであり、 クライアントで 生成されたリ ソースはサーバに集められて管理されていた。 ところが、 爆発的ユーザ数増加の中、 ユーザの生み出したリ ソースをサーバに集め るコス トは無視できないものになっている。 . すなわち、 従来の W e bアーキテクチャにおいてサーバにリソースを 集める際に、 インターネッ ト上に散らばつているリソースを発見するメ 力二ズムには、 ディ レク トリサービスとサーチエンジンの 2つのタイプ が存在する。 前者は人海戦術と呼ぶべきアプローチで、 人手の作業によ つてリ ソースを集めるものである。 後者はエージェン トロポッ トがィ ン 夕一ネッ トを巡回することによってリソースを集めてまわるものであり 、 何れのタイプも言わば力任せのアプローチである。 また、 サーバに集められたリ ソースは、 アクセスの集中を生む。 この 結果、 クライアントとして用いられる高性能なパソコンは殆ど遊休状態 となり、 高速ネッ トワークもサーバ周辺だけがいびつに混雑する結果と なっている。
これに対し、 P 2 Pによるネッ トワーク技術は、 ユーザに近い部分で サーバを介さずに、 クライアン ト同士がダイ レク トに情報のやり取りを するアーキテクチャである。 つまり、 多数のクライアントで生成された リ ソースはそれぞれのクライアント自身で管理されるため、 多数のリ ソ ースをサーバに集める必要もないし、 リソース取得のためにアクセスの 集中が生じることも殆どない。 また、 高性能なパソコンが持つ遊休資源 を有効に使う ことも可能となる。
図 1 を参照して、 P 2 Pアーキテクチャを利用して所望のリソースを 検索および取得する際の手順を説明する。 図 1 は、 P 2 Pァ一キテクチ ャが適用されるネッ トワークの概略構成を示す図である。 P 2 Pネッ ト ワークは、 ノードの集合で定義される。 ノードとは、 P 2 Pプロ トコル を実装したプログラムのプロセスのことを言う。 したがって、 例えば 1 つのパソコンの中にも、 起動しているプログラムが複数あれば、 複数の ノードが存在することになる。
ノ一 ド同士は、 複数のセッショ ンを互いに張った状態でトポロジを形 成する。 この常態的なセッショ ンを 「接続」 と呼ぶことにする。 「接続 」 が常態的な卜ポロジ形成をなして、 この接続セッショ ン上を基本的な プロ トコル (リソース検索コマンドに相当する 1 o okupコマンドや、 検索 ヒッ ト応答に相当する h i t リプライ等) が流れる。
これに対して、 ユーザノード 1 0 り ( 1 o okupコマン ドの発行元ノー ド ) から リソース 1 1 0の存在するノー ド 1 0 3 ( h i t リプライの発行元ノ ー ド) に対して張るセッショ ンを 「アクセス」 と呼ぶことにする。 「ァ クセス」 は、 リソース発見後にコマン ド発行元ノー ドと検索ヒッ トノー ドとの間に一時的に張られるセッショ ンで、 この上をアクセスインタフ エースに応じたプロ トコルが流れる。
上記した 「接続」 および 「アクセス」 の トポロジ形成の状態は中央で 管理されず、 個々のノードが自律的に形成する。 まず、 図 1 ( a) のよ うに、 リソース 1 1 0の取得を希望しているユーザのノード 1 0 0は、 どこにリソース 1 1 0があるかを探し出すための 1 ookupコマンドを近接 ノー ド (接続しているノード) 1 0 1 , 1 0 2 に発行する。
looku コマンド受け取ったノー ド 1 0 1 , 1 0 2は、 要求されている リソース 1 1 0 を自身が持っているかどうかを調べる。 該当するリ ソ一 ス 1 1 0が見つからない場合は、 図 1 ( b ) のように、 1 ookup コマンド を近接ノード (lookupコマンドの送信元以外で接続しているノー ド) 1 0 3〜 1 0 6 に転送する。 この 1 ookupコマンドを受け取ったノー ド 1 0 3〜 1 0 6 も、 要求されているリ ソース 1 1 0 を自身が持っているかど うかを調べる。
このようにコマン ド伝播とリソース 1 1 0の検索を繰り返していく中 で、 ノー ド 1 0 3では、 リソース 1 1 0の検索にヒッ トする。 検索にヒ ッ ト した場合は、 図 1 ( c ) に示すように、 lookupコマン ドの送信元で あるノー ド 1 0 1 に h i t リプライを返す。 hit リプライを受け取ったノー ド 1 0 1 は、 lookupコマンドの送信元であるュ一ザノー ド 1 0 0に hit リプライを転送する。 このように M t リプライは、 lookupコマンドを伝 播した各ノードにより逆向きに伝播され、 コマンド発行元のユーザノー ド 1 0 0まで届けられる。
hit リプライは、 リ ソース 1 1 0のアクセスインタフェースの名前と検 索ヒッ トノー ド 1 0 3の情報とを含むパケッ トである。 以上の手順によ り、 最初に 1 ookup コマンドを発行したユーザノード 1 0 0では、 所望の リソース 1 1 0がノー ド 1 0 3 に存在することを発見できる。 hit リ ブラ ィを受け取ったュ一ザノー ド 1 0 0は次に、 図 1 ( d ) のようにノー ド 1 0 3 にダイ レク 卜にアクセスし、 リソース 1 1 0 を取得する。
上述のような P 2 Pアーキテクチャを利用して、 種々のネッ トヮ一ク システムを構築することが期待されている。 例えば、 P 2 Pプロ トコル をベースにして、 個人またはグループのスケジュールやタスクの管理、 文書等のファイル管理、 プロジェク トの進涉管理などを行うダル一プゥ エアなどを構築することが望まれている。
しかしながら、 上記従来の P 2 Pネッ トワーク技術では、 ファイアゥ オールや NAT (Network Address Translation) があると、 グル一プ内 向きのセッショ ンが張れず (接続やアクセスができない) 、 通信上の大 きな障害が発生するという問題があった。
ファイアウォールは、 一般的には 1台のサーバをグループの出入口に 用い、 ここで専用のソフ トウェアを動作させることによって、 アクセス 権を持たない第三者がグループ内に不正に侵入するのを防ぐものである 。 具体的には、 送信元と送信先の I Pア ドレスを見て通信の可否を判断 する。 したがって、 ファイアフォールが設置されていると、 グループの 外側から内側に向けての通信が拒否され、 接続およびアクセスのセッシ ョ ンを張ることができなくなってしまう。
また、 NA Tは、 I Pア ドレスの不足に対応するために考え出された 手法である。 これは、 グループの出入口となるゲー トウェイにだけグロ 一バルァ ドレスを割り振り、 グル一プ内部では当該グループ内でのみ通 用するプライベー トア ドレスを割り振ることにより、 グローバルァ ドレ スを節約しょう とするものである。 ゲ一 トウエイとなる NATサーバは 、 グループ外部から送られてきたグロ一バルァ ドレスをプライべ一トァ ドレスに変換することにより、 グループ内のノードにアクセスする。 したがって、 ゲ一 トウエイとして N A Tサーバが設置されている場合 、 1 o okupコマンドの発行元ノードがグループの外側にあり、 コマンド伝 播によって発見されたノードがグループの内側にあると、 グロ一バルァ ドレスを持つ外部ノードからプライべ一トア ドレスを持つ内部ノー ドに 対して直接アクセスのセッショ ンを張ることができなくなってしまう。
P 2 Pアーキテクチャを用いてグループウェアを構築する場合、 ダル —プ内のデータが第三者によって不正に盗聴または改ざんされる危険性 から守るのと同時に、 グループのメンバが外部からもアクセスできるよ うにすることが望まれる。 L A Nが構築されている社内だけでなく、 自 宅や外出先からアクセスできるようにすることが好ましいからである。 しかし、 セキュリティ対策や I Pア ドレス確保のためにファイアフォ一 ルゃ N A Tサーバを設置すると、 上述のように内向きのセッショ ンが張 れなくなり、 外部からのアクセスができないという問題があった。
本発明は、 このような問題を解決するために成されたものであり、 フ アイァフォールや N A Tサーバを設置した場合でも、 外部から自由にァ クセスしてリ ソースを取得可能な P 2 Pシステムを提供することを目的 とする。 発明の開示
本発明のネッ トワークシステムは、 グロ一バルアドレスとプライべ一 トァ ドレスとの付け替えを行う ことによってプライべ一トネッ トワーク の内外で通信のやり取りを行うゲ一トウエイ ノードを有し、 当該ゲート ウェイノードは、 検索ヒッ ト応答を受け取ったときに、 検索ヒッ トノー ドの情報にゲー トウェイノー ドの情報を加えて検索ヒッ ト応答を他のノ ー ドに転送する手段を備え、 各ノードは、 自身がコマン ド発行元ノー ド である場合に、 検索ヒッ ト応答中に含まれる検索ヒッ トノードの情報お ょぴゲートウェイ ノードの情報に基づいて、 検索ヒッ トノードもしくは ゲートウェイノー ドにアクセスする手段を備えたことを特徴とする。 本発明の他の態様では、 各ノードが、 自身がコマン ド発行元ノードで ある場合において、 検索ヒッ トノードにアクセスできないときに、 接続 している近接ノ一 ド群にアクセス要求コマン ドを発行するアクセス要求 手段と、 自身が検索ヒッ トノードである場合において、 伝播されてきた アクセス要求コマンドを受け取ったときに、 コマンド発行元ノー ドにァ クセスを実行する逆アクセス手段とを備えたことを特徴とする。
本発明の他の態様では、 各ノードが、 自身がコマン ド発行元ノードで ある場合において、 アクセス要求コマン ドを発行したにもかかわらず検 索ヒッ トノ一 ドからのアクセスが確立されないときに、 所定のゲ一トウ エイノードにアクセスする第 1 のゲートウェイアクセス手段と、 ゲート ウェイノードへのアクセスを要求するゲー トウェイアクセス要求コマン ドを、 接続している近接ノード群に発行する第 2のアクセス要求手段と 、 自身が検索ヒッ トノー ドである場合において、 伝播されてきたゲート ウェイアクセス要求コマン ドを受け取ったときに、 ゲー ト ウェイノード にアクセスする第 2のゲートウェイアクセス手段とを備えたことを特徴 とする。
このように本発明では、 グローバルァ ドレスとプライべ一トァ ドレス との付け替えを行うゲ一 トウエイノードが検索ヒッ ト応答を受け取つた ときに、 検索ヒッ トノー ドの情報にゲートウェイノー ドの情報を加えて 伝播するようにし、 コマン ド発行元ノードが検索ヒッ ト応答を受け取つ たときは、 当該検索ヒッ ト応答中に含まれる検索ヒッ トノードの情報お よびゲートウェイ ノードの情報に基づき検索ヒッ 卜ノードもしくはゲ一 トウエイノー ドにアクセスするようにしている。 これにより、 ゲートゥ エイ ノードが存在する場合でも、 プライべ一トネッ トワークの外部から 内部あるいはその逆へと自由にアクセスしてリ ソースを取得することが できるよう になる。
本発明の他の特徴によれば、 コマンド発行元ノー ドが検索ヒッ トノー ドにアクセスできないときに、 接続している近接ノー ド群を介してァク セス要求コマン ドを検索ヒッ トノー ドに伝播するとともに、 これを受け 取った検索ヒッ トノードがコマンド発行元ノー ドにアクセスを実行する ようにしている。 これにより、 ファイアウォールの外側から内側に向か つてアクセスできない場合でも、 上記アクセス要求コマン ドを発行する ことによってファイアウォールの内側から外側に向かってアクセスを確 立することができ、 そのセッショ ンを利用してファイアウォールの外部 から内部のリソースへと自由にアクセスすることができるようになる。 また、 本発明の他の特徴によれば、 コマン ド発行元ノー ドがアクセス 要求コマン ドを発行したにもかかわらず検索ヒッ トノードからのァクセ スが確立されないときに、 所定のゲートウェイ ノードにアクセスすると ともに、 当該ゲートウエイノー ドへのアクセス要求コマン ドを近接ノー ド群を介して検索ヒッ トノードに伝播し、 これを受け取った検索ヒッ ト ノードがゲートウェイノー ドにアクセスを実行するようにしている。 こ れにより、 コマン ド発行元ノー ドと検索ヒッ トノードとの双方がフアイ ァウォールの中にある場合であっても、 それぞれのファイアウォールの 内側から外側のゲートウェイノードに向かってアクセスを確立すること ができ、 それらのセッショ ンを利用してファイアウォールの外部から内 部のリ ソースへと自由にアクセスすることができるようになる。 図面の簡単な説明
図 1 は、 P 2 Pアーキテクチャを利用して所望のリ ソースを検索およ び取得する際の手順を示す図である。 図 2 は、 第 1 の実施形態によるネッ トワークの概略構成例を示す図で ある。
図 3 は、 第 1 の実施形態による N A Tサーバの動作を示すフローチヤ ― トである。
図 4は、 第 1 の実施形態によるコマンド発行元ノードの動作を示すフ ローチヤ—卜である。 図 5は、 第 2の実施形態によるネッ トワークの概略構成例を示す図で ある。
図 6 は、 図 5 に示したコマン ド発行元ノ一 ドの動作を示すフローチヤ ートである。 ' 図 7 は、 第 2の実施形態によるネッ トワークの別の構成例を示す図で ある。
図 8 は、 図 7 に示したコマン ド発行元ノー ドの動作を示すフローチヤ 一卜である。
図 9は、 図 7 に示した検索ヒッ トノー ドの動作を示すフローチャー ト である。
図 1 0は、 ュ一ザ情報の告知動作を示すフローチャートである。
図 1 1は、 S S Lベースのユーザ認証を行う際の動作を説明するため の図である。
発明を実施するための最良の形態
(第 1 の実施形態)
以下、 本発明の第 1 の実施形態を図面に基づいて説明する。
図 2 は、 第 1 の実施形態によるネッ トワークの概略構成例を示す図で ある。 本実施形態のネッ トワークは、 ノー ドの集合 1 0〜 1 6 , 2 1〜
2 2 を含んで構成されている。 図 2の例において、 ノー ド 2 1, 2 2 によってプライベートネッ トヮ ーク 2 0が構成されている。 したがって、 このノード 2 1 , 2 2間では 、 プライベート I Pア ドレス (以下、 プライベート I Pと略す) に基づ いてアクセスが行われる。 一方、 ノー ド 1 0〜 1 6は、 プライべ一トネ ッ トワーク 2 0の外部に存在するノー ドである。 したがって、 これらの ノー ド 1 0〜 1 6間では、 グローバル I Pア ドレス (以下、 グローバル I Pと略す) に基づいてアクセスが行われる。
ノー ド 1 6は N A Tサーバであり、 グロ一バル I Pとプライベート I Pとの双方を持つ。 プライベー トネッ トワーク 2 0の外部からパケッ ト が送られてきたときは、 その宛て先グローバル I P ( N A Tサーバ 1 6 のグロ一バル I P ) をプライベー ト I Pに変換することにより、 プライ ベー トネッ トワーク 2 0内のノー ド 2 1 にアクセスする。 逆に、 プライ ベートネッ 卜ワーク 2 0内のノー ド 2 1からパケッ トが送られてきたと きは、 その送信元プライベート I P (ノー ド 2 1 のプライベート I P ) を N A Tサーバ 1 6のグロ一バル I Pに変換して外部のノードにァクセ スする。
本実施形態では、 N A Tサーバ 1 6 のポートフォワード機能を利用し て、 P 2 Pアーキテクチャ用のポートを転送する設定を行う。 すなわち 、 マスカレードノ一ドとして N ATサーバ 1 6 を設定する。 これにより N A Tサーバ 1 6は、 hit リプライを転送するときに、 リソースの検索に ヒッ 卜した検索ヒッ トノー ドの情報と、 マスカレ一ドノ一 ドである NA Tサーバ 1 6の情報との双方を転送するように処理する。
例えば、 図 2のように 1 ookupコマン ドの発行元ノー ド 1 0がプライべ 一トネッ トワーク 2 0の外部にあり、 所望のリソース 3 0 を備えた検索 ヒッ トノ一 ド 2 1がプライべ一 トネッ トワーク 2 0の内部にある場合に ついて考える。 この場合において NA Tサーバ 1 6は、 検索ヒッ トノー ド 2 1から送られてきた hit リプライを転送するときに、 検索ヒッ トノ —ド 2 1のプライベー ト I Pに対して、 マスカレー ドノードである NA Tサーバ 1 6のグロ一バル I Pを加えて、 その両方のノード情報を転送 するようにする。
この h i t リプライを受信したコマンド発行元ノー ド 1 0は、 hit リブラ ィ中に含まれている検索ヒッ トノード 2 1のプライベー ト I Pに基づい て、 通常の処理に従って当該検索ヒッ トノ一ド 2 1 にアクセスを試みる しかし、 コマン ド発行元ノード 1 0から検索ヒッ トノード 2 1 に対し てはアクセスのセッショ ンを直接張ることができない。 そこで、 コマン ド発行元ノー ド 1 0は、 hit リプライ中に含まれている N A Tサーバ 1 6 のグロ一バル I Pに基づいて、 マスカレ一ドノー ドへのアクセスに切り 替えて検索ヒッ トノー ド 2 1に間接的にアクセスする。
図 3は、 NATサーバ 1 6の動作を示すフローチャー トである。 この フローチャー トは、 N A Tサーバ 1 6が他のノー ドから何らかのコマン ドを受信した際の動作を示すものである。 図 3において、 NATサーバ 1 6は、 受信したコマンドが 1 ookupコマン ドかどうかを判断し (ステツ プ S 1 ) 、 そうであればその lookupコマン ドを他のノードに伝播する ( ステップ S 2 ) 。
受信したコマンドが 1 ookupコマン ドでない場合は、 更に h i t リ プライ であるかどうかを判断する (ステップ S 3 ) 。 M t リプライでもない場合 は、 その受信したコマンドに従ってその他の処理を行う (ステップ S 4 ) 。 一方、 hit リ プライを受信した場合、 NA Tサーバ 1 6は、 マスカレ 一ドノ一ドとして動作する自身のグロ一バル I Pを h U リプライ中に付 加し (ステップ S 5 ) 、 当該グローバル I Pの付加された h i t リプライ を他のノードに伝播する (ステップ S 6 ) 。 また、 図 4は、 コマンド発行元ノー ド 1 0の動作を示すフロ一チヤ一 トである。 このフローチャー トは、 コマンド発行元ノード 1 0が他のノ —ドから hit リ プライを受信した際の動作を示すものである。 図 4にお いて、 コマン ド発行元ノー ド 1 0は、 受信した h i t リプライ中に含まれ ている検索ヒッ トノード 2 1 のプライベート I Pに基づいて、 当該検索 ヒッ トノー ド 2 1 にアクセスを試みる (ステップ S 1 1 ) 。
そして、 アクセスのセッショ ンが張れたかどうかを判断する (ステツ プ S 1 2 ) 。 プライべ一トネッ トワーク 2 0の内部同士あるいは外部同 士でアクセスするような場合には、 セッ ョ ンを張ることができる。 し たがって、 例えば検索ヒッ トノードもコマン ド発行元ノー ド 1 0 と同様 にプライべ一 トネッ トワーク 2 0の外部にあるような場合には、 コマン ド発行元ノード 1 0 はそのアクセスに基づいて検索ヒッ トノー ドから リ ソースを取得する (ステップ S 1 4 ) 。
ただし、 今の例では、 検索ヒッ トノード 2 1がプライベートネッ トヮ —ク 2 0の内部にあるので、 プライベートネッ トワーク 2 0の外部にあ るコマンド発行元ノード 1 0からその検索ヒッ トノード 2 1 に対しては アクセスのセッショ ンを張ることができない。 この場合、 コマンド発行 元ノード 1 0は、 hit リプライ中に含まれている NATサーバ 1 6 のグロ 一バル I Pに基づいて、 マスカレ一ドノ一 ドへのアクセスに切り替えて 検索ヒッ トノー ド 2 1 にアクセスし (ステップ S 1 3 ) 、 リソースを取 得する (ステップ S 1 4 ) 。
以上詳しく説明したように、 第 1 の実施形態によれば、 h i t リ プライに マスカレー ドノ一ドとしての N A Tサーバのグローバル I Pを付加して 伝播するとともに、 コマン ド発行元ノードが検索ヒッ トノードにァクセ スしてセッショ ンを張れないときはマスカレ一 ドノ一 ドへのアクセスに 切り替えて検索ヒッ トノー ドにアクセスするようにしたので、 NA Tサ ーバが設置されている場合でも、 プライベー トネッ トワークの外部から 内部へと自由にアクセスすることができるようになる。
(第 2の実施形態)
• 次に、 本発明の第 2の実施形態を図面に基づいて説明する。
図 5は、 第 2 の実施形態によるネッ トワークの概略構成例を示す図で ある。 本実施形態のネッ トワークは、 ノードの集合 1 0 〜 1 5 , 2 1 を 含んで構成されている。
図 5の例において、 ノード 2 1 はファイアウォール 4 0の内部にある ものとする。 また、 その他のノード 1 0 〜 1 5はファイアウォール 4 0 の外部にあるものとする。 本実施形態において、 接続のセッショ ンは、 張れない場合には対処しない。 しかし、 接続セッショ ンをファイアゥォ ール 4 0の内部または外部のどちらから張るかは問題でなく、 張れる方 向のみで接続セッショ ンを開始して、 トポロジを形成する。
図 5の例では、 ファイアウォール 4 0内のノ一 ド 2 1から外部のノ一 ド 1 1 , 1 5 に対してセッショ ンを開始することにより、 これらの間に 既に接続が確立している状態を示している。 このような状態で、 ノー ド 1 0からリ ソース 3 0 を検索するための l o okupコマンドを発行した結果 、 ノード 1 1 を経由してファイアウォール 4 0内のノード 2 1 に l o okup コマン ドが伝播され、 当該ノード 2 1から逆の流れで h i t リプライが返 されてきたとする。
h i t リプライ を受け取ったコマンド発行元ノー ド 1 0は、 通常の処理に 従って、 検索ヒッ トノー ド 2 1 に対してダイ レク トにアクセスを試みる 。 しかし、 検索ヒッ トノー ド 2 1 はファイアウォール 4 0の内部に存在 するので、 コマンド発行元ノード 1 0から検索ヒッ トノー ド 2 1 に対し てはアクセスのセッショ ンを張ることができない。 この場合、 コマンド発行元ノー ド 1 0は、 接続のセッショ ンを通して 、 検索ヒッ トノー ド 2 1 に対して push - reqコマン ド (アクセス要求コマ ンド) を発行する。 この push- reqコマン ドは、 hit リプライが逆伝播さ れた経路に従って、 検索ヒッ トノード 2 1 に届けられる。 push- reqコマ ンドは、 コマン ド発行元ノード 1 0の情報を含むパケッ トである。 した がって、 この push- reqコマンドを受信した検索ヒッ トノード 2 1では、 コマン ド発行元ノード 1 0 を知ることができる。
そこで、 push-reqコマン ドを受け取った検索ヒッ トノード 2 1 は、 コ マン ド発行元ノー ド 1 0に対してアクセスする。 これは、 通常のァクセ ス時と逆向きのセッショ ンの張り方となる。 ここでは、 ファイアウォー ル 4 0の内側から外側に向かうアクセスなので、 問題なくセッショ ンを 張ることができる。 コマン ド発行元ノード 1 0 は、 このとき張られたァ クセスのセッショ ンを通じて検索ヒッ トノー ド 2 1 にアクセスし、 リソ ース 3 0 を取得する。
図 6は、 図 5 に示したコマンド発行元ノード 1 0の動作を示すフロー チャートである。 このフローチャートは、 コマン ド発行元ノー ド 1 0が 他のノー ドから hit リプライを受信した際の動作を示すものである。 図 6 において、 コマンド発行元ノード 1 0は、 受信した h i t リプライ中に 含まれているアクセスインタフェースの名前および検索ヒッ トノ一 ド 2 1 の情報に基づいて、 検索ヒッ トノー ド 2 1 にアクセスを試みる (ステ ップ S 2 1 ) 。
そして、 アクセスのセッショ ンが張れたかどうかを判断する (ステツ プ S 2 2 ) 。 ファイアウォール 4 0の外部同士あるいはファイアウォー ル 4 0の内部から外部へのアクセスをするような場合には、 セッショ ン を張ることができる。 その場合、 コマンド発行元ノード 1 0はそのァク セスに基づいて検索ヒッ トノードから リソースを取得する (ステップ S 2 6 ) 。
ただし、 図 5のようにファイアウォール 4 0 の外部から内部の検索ヒ ッ トノー ド 2 1 にアクセスするような場合は、 アクセスのセッショ ンを 張ることができない。 この場合、 コマン ド発行元ノード 1 0は、 push-re qコマンドを発行する (ステップ S 2 3 ) 。 その後、 その push-reqコマ ン ドに従って検索ヒッ トノード 2 1からアクセスが行われたかどうかを 判断し (ステップ S 2 4 ) 、 行われた場合には、 そのアクセスのセッシ ヨ ンを通じて検索ヒッ トノード 2 1 にアクセスして (ステップ S 2 5 ) 、 リソース 3 0を取得する (ステップ S 2 6 ) 。
図 7は、 第 2の実施形態によるネッ トワークの別の構成例を示す図で ある。 図 7 に示す例では、 検索ヒッ トノー ド 2 1がファイアウォール 4 0 の内部にあるだけでなく、 コマン ド発行元ノード 1 0 も別のファイア ウォール 4 1 の内部に含まれている。 このような場合に対応するために 、 アクセスの仲介を行うためのゲ一 トウエイ ノ一 ド (GWノード) 5 0 を各ファイアウォール 4 0, 4 1 の外部に用意する。 ゲー トウェイノ一 ド 5 0は、 コマンド発行元ノー ド 1 0および検索ヒッ トノード 2 1 の両 方からセッショ ンを張れる必要がある。
この図 7の例においても、 ノード 1 0からリ ソース 3 0 を検索するた めの lookupコマンドを発行した結果、 ノ一 ド 1 1 を経由してファイアゥ オール 4 0内のノード 2 1 に lookupコマン ドが伝播され、 当該ノー ド 2 1 から逆の流れで h i t リプライが返されてきたとする。
hit リプライを受け取ったコマンド発行元ノー ド 1 0は、 通常の処理に 従って、 検索ヒッ トノード 2 1 に対してダイ レク 卜にアクセスを試みる 。 しかし、 検索ヒッ トノード 2 1 はファイアウォール 4 0の内部に存在 するので、 コマンド発行元ノー ド 1 0から検索ヒッ トノー ド 2 1 に対し てはアクセスのセッショ ンを張ることができない。 この場合、 コマンド発行元ノー ド 1 0は、 h i t リプライが逆伝播された 接続経路に沿つて、 検索ヒッ トノー ド 2 1 に対して pu s h- r e qコマン ドを 発行する。 pu s h- r e qコマンドを受け取った検索ヒッ トノー ド 2 1 は、 コ マン ド発行元ノー ド 1 0 に対してアクセスを試みる。 これは、 通常のァ クセス時と逆向きのセッショ ンの張り方となる。
先に示した図 5の例では、 この時点でアクセスのセッショ ンを張るこ とができた。 しかし、 ここでは、 コマン ド発行元ノード 1 0 もファイア ウォール 4 1 の内部に存在するので、 検索ヒッ トノード 2 1からコマン ド発行元ノ一 ド 1 0 に対してもアクセスのセッショ ンを張ることができ ない。
この場合、 コマン ド発行元ノー ド 1 0は、 接続のセッショ ンを通して 、 検索ヒッ トノード 2 1 に対して gw- r eqコマン ド (ゲ一トウェイアクセ ス要求コマンド) を発行する。 この gw- r e qコマン ドは、 h i t リ プライが 逆伝播された経路に従って、 検索ヒッ トノ一 ド 2 1 に届けられる。 gw - r e qコマン ドは、 ゲートウェイノード 5 0の情報を含むパケッ トである。 し たがって、 この gw- r eqコマン ドを発行したコマン ド発行元ノー ド 1 0お よびこれを受信した検索ヒッ トノード 2 1 の双方は、 ゲートウェイノー 'ド 5 0 を知ることができる。
そこで、 コマンド発行元ノー ド 1 0および検索ヒッ トノード 2 1 は、 ゲー トウェイノー ド 5 0 に対してアクセスする。 これらは共に、 フアイ ァウォール 4 0 の内側から外側に向かうアクセスなので、 問題なくセッ シヨ ンを張ることができる。 ゲー トウェイノー ド 5 0は、 内部的に 2つ のセッショ ンを結び付けて、 アクセスのセッショ ンを仲介する。 コマン ド発行元ノー ド 1 0は、 このとき張られたアクセスセッショ ンを通じて 検索ヒッ トノー ド 2 1 にアクセスし、 リ ソース 3 0 を取得する。
図 8は、 図 7 に示したコマン ド発行元ノー ド 1 0の動作を示すフロー チヤ一 トである。 このフローチャートは、 コマンド発行元ノード 1 0が 他のノードから Mt リ プライを受信した際の動作を示すものである。 図
8 において、 コマンド発行元ノー ド 1 0は、 受信した h i t リプライ中に 含まれているアクセスインタフェースの名前および検索ヒッ トノ一ド 2
1 の情報をもとに、 検索ヒッ トノー ド 2 1 にアクセスを試みる (ステツ プ S 3 1 ) 。
そして、 アクセスのセッショ ンが張れたかどうかを判断する (ステツ プ S 3 2 ) 。 ここでアクセスのセッショ ンを張ることができた場合、 コ マン ド発行元ノード 1 0はそのアクセスに基づいて検索ヒッ トノードか らリ ソ一スを取得する (ステップ S 3 8 ) 。
—方、 図 7のようにファイアウォール 4 0の外部から内部の検索ヒッ トノー ド 2 1 にアクセスするような場合は、 アクセスのセッショ ンを張 ることができない。 この場合、 コマン ド発行元ノー ド 1 0は、 push-req コマン ドを発行する (ステップ S 3 3 ) 。 その後、 その ush-reqコマン ドに従って検索ヒッ トノード 2 1からアクセスが行われたかどうかを判 断し (ステップ S 3 4 ) 、 行われた場合には、 そのアクセスのセッショ ンを通じて検索ヒッ トノード 2 1 にアクセスして (ステップ S 3 5 ) 、 リ ソ一ス 3 0を取得する (ステップ S 3 8 ) 。
しかし、 図 7 の例では検索ヒッ トノー ド 2 1からコマン ド発行元ノ一 ド 1 0 に対してもアクセスのセッショ ンを張ることができない。 この場 合、 コマンド発行元ノード 1 0は、 検索ヒッ トノー ド 2 1 に対して gw - re qコマン ドを発行した後 (ステップ S 3 6 ) 、 ゲー トウェイノード 5 0 に アクセスする (ステップ S 3 7 ) 。 検索ヒッ トノー ド 2 1 に gw-reqコマ ン ドを発行することによって、 検索ヒッ トノ一ド 2 1からもゲートゥェ イノ一 ド 5 0へのアクセスが行われるので、 コマン ド発行元ノー ド 1 0 はこれらのアクセスセッショ ンを通じて検索ヒッ ト ノー ド 2 1 にァクセ スし、 リソース 3 0 を取得する (ステップ S 3 8 ) 。
図 9は、 図 7 に示した検索ヒッ トノー ド 2 1の動作を示すフローチヤ —トである。 このフローチャートは、 検索ヒッ トノード 2 1が他のノー ドに h i t リプライを発行した後の動作を示すものである。 図 9 において 、 検索ヒッ トノード 2 1 は、 push-reqコマン ドを受信したかどうかを判 断する (ステップ S 4 1 ) 。 push-reqコマン ドを受信していない場合は 、 コマン ド発行元ノー ド 1 0から検索ヒッ トノード 2 1 に対するァクセ スのセッショ ンがうまく張られたという ことなので、 何もせずに処理を 終了する。
一方、 push-reqコマンドを受信した場合は、 その受信した push- reqコ マンド中に含まれているコマン ド発行元ノー ド 1 0の情報をもとに、 当 該コマン ド発行元ノー ド 1 0 にアクセスを試みる (ステップ S 4 2 ) 。 そして、 アクセスのセッショ ンが張れたかどうかを判断する (ステップ S 4 3 ) 。 ここでアクセスのセッショ ンを張ることができた場合は、 何 もせずに処理を終了する。
検索ヒッ トノード 2 1 からコマンド発行元ノード 1 0に対してァクセ スのセッショ ンを張ることができなかった場合、 検索ヒッ トノー ド 2 1 は gw-reqコマンドの受信待ちの状態になる (ステップ S 4 4 ) 。 gw- req コマンドを受信した場合は、 その受信した gw-reqコマン ド中に含まれて いるゲー トウェイノー ド 5 0の情報をもとに、 当該ゲートウェイノー ド 5 0 にアクセスして (ステップ S 4 5 ) 処理を終了する。
以上詳しく説明したように、 第 2の実施形態によれば、 ファイアゥォ ール内のリソースに外部からアクセスしょう とする場合に、 所定のコマ ンドを発行することによってファイアウォールの内側から外側に向かつ てアクセスのセッショ ンを張るようにしたので、 セキュリティ対策のた めにファイアフォールを設置した場合でも、 そのファイアウォールの外 部から内部のリソースへと自由にアクセスすることができるようになる なお、 このようにファイアウォールの内向きに自由にアクセスできる ようになると、 不正な第三者がグループのメンバに成りすましてフアイ ァウォール内に侵入することもあり得る。 本実施形態では、 このような 場合にも機密情報が漏れないように、 転送するデータゃフアイル等のリ ソースを暗号化する。 また、 ユーザ認証も利用する。 なお、 暗号化の方 式は特に限定しないが、 例えば P K I (公開鍵暗号方式) を利用するこ とが可能である。
本実施形態では、 ユーザログイン時に認証のタイプを指定することが できるようにしている。 認証には、 単純なパスワー ド認証から複雑な S S L (Secure Sockets Layer) 認証まで用意されている。 パスワー ド認 証は、 各ノー ド上で実行される。 S S L認証は、 各ノー ドが接続時に提 出する証明書をべ一スにして行われる。
図 1 0 は、 ユーザ情報を告知する際の動作を説明するための図である 。 図 1 0 に示すように、 ユーザノード 1 0 は、 ネッ トヮークーへの口グイ ン後および新たな接続の開始時に、 接続セッショ ンを利用してユーザ情 報を告知する。 このユーザ情報は、 ユーザ I D、 表示名、 説明、 ユーザ 認証の証明書 (公開鍵) を含む。 ユーザノード 1 0から告知されたユー ザ情報のパケッ トは、 他のノー ド 1 1 〜 1 9間で伝播される。
ユーザノー ド 1 0から伝播されたュ一ザ情報は、 各ノード 1 1〜 1 9 のローカルス トレージが備える共通ユーザリス ト 6 1, 6 2 , · · · に 各々キャッシュ記憶される。 ユーザ認証やデータの暗号化あるいは復号 化を行う ときは、 この共通ユーザリス ト 6 1 , 6 2 , · ■ ' に記憶され たユーザ情報を取得して利用する。
図 1 1 は、 S S Lベースのユーザ認証を行う際の動作を説明するため の図である。 S S L認証を行う場合、 認証する側には、 認証局の証明書 が必要となる。 そのためノー ドは、 所定の属性ファイルと認証局の証明 書とをセッ トで配布する。 図 1 0で説明したように、 ノー ドにユーザが ログインすると、 ユーザノー ド 1 0は、 その接続先にユーザの証明書を 提出する。 ユーザの証明書を受けたノー ドは、 認証局の証明書で当該ュ 一ザ証明書を認証する。 証明書の認証後、 ユーザの秘密鍵の本人確認を 行い、 これに認められた場合にログインを許可する。
ユーザ認証時に提出された証明書は、 ユーザ情報の告知として他のノ —ドに伝播される。 各ノードは、 受け取ったユーザ証明書を口一カルス トレ一ジにキャッシュする。 リソースを S S Lベースで暗号化するとき や、 リソースの署名を確認するときなどは、 ユーザ証明書内の公開鍵を 使用する。
このように、 本実施形態では、 ネッ トワークへのログイン時などにュ 一ザ情報の告知を行うようにし、 そのユーザ情報の中にユーザ証明書 ( 公開鍵を含む) を含ませるようにしたので、 各ノー ドに対して公開鍵を 容易に配布することができる。 逆に言えば、 各ノー ドで公開鍵を入手す るのが非常に容易であり、 P 2 Pネッ トワークの中でユーザ認証および 暗号化を容易に行うことができる。
以上に説明した本実施形態によるネッ トヮ一クシステムの機能は、 実 際にはコンピュータの C P Uあるいは M P U、 R A M , R O Mなどで構 成され、 R A Mや R O Mに記憶されたプログラムが動作することによつ て実現できる。 したがって、 コンピュータが上記の機能を果たすように 動作させるプログラムを例えば C D— R O Mのような記録媒体に記録し 、 コ ンピュ一夕に読み込ませることによって実現できるものである。 上記プログラムを記録する記録媒体としては、 C D— R O M以外に、 フレキシブルディスク、 ハー ドディスク、 磁気テープ、 光ディ スク、 光 磁気ディスク、 D V D、 不揮発性メモリカー ド等を用いることができる 。 また、 上記プログラムをインターネッ ト等のネッ トワークを介してコ ンピュー夕にダウンロー ドすることによつても実現できる。
また、 コンピュータが供給されたプログラムを実行することにより上 述の実施形態の機能が実現されるだけでなく、 そのプログラムがコンビ ュ一タにおいて稼働している〇 S (オペレーティ ングシステム) あるい は他のアプリケーショ ンソフ ト等と共同して上述の実施形態の機能が実 現される場合や、 供給されたプログラムの処理の全てあるいは一部がコ ンピュー夕の機能拡張ボードや機能拡張ユニッ トにより行われて上述の 実施形態の機能が実現される場合も、 かかるプログラムは本実施形態に 含まれる。
なお、 上記に説明した各実施形態は、 本発明を実施するにあたっての 具体化の一例を示したものに過ぎず、 これらによって本発明の技術的範 囲が限定的に解釈されてはならないものである。 すなわち、 本発明はそ の精神、 またはその主要な特徴から逸脱することなく、 様々な形で実施 することができる。 産業上の利用可能性
本発明は、 P 2 Pシステムにおいてファイアフォールや N A Tサーバ を設置した場合でも、 外部から自由にアクセスしてリ ソースを取得可能 なようにするのに有用である。

Claims

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

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2004001630A1 true WO2004001630A1 (ja) 2003-12-31

Family

ID=29996504

Family Applications (1)

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

Country Status (2)

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

Cited By (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客户端数据传输的控制方法
WO2009059525A1 (fr) * 2007-10-29 2009-05-14 Huawei Technologies Co., Ltd. Méthode, dispositif et système de demande et de réponse dans un réseau de recouvrement p2p

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4115354B2 (ja) 2003-07-04 2008-07-09 富士フイルム株式会社 ピア・ツー・ピア通信システム
US7761569B2 (en) * 2004-01-23 2010-07-20 Tiversa, Inc. Method for monitoring and providing information over a peer to peer network
WO2005078593A1 (ja) * 2004-02-13 2005-08-25 Sony Chemicals Corporation 業務プロセスシステム及び業務プロセス方法、並びに情報処理装置
JP2009009322A (ja) * 2007-06-27 2009-01-15 Casio Comput Co Ltd 売上データ処理装置及びプログラム
JP4910881B2 (ja) * 2007-05-23 2012-04-04 ブラザー工業株式会社 通信システム、ノード装置、ノード処理プログラム、及びメッセージ送受信方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"The Gnutella Protocol Specification Vol.4", 19 August 2000 (2000-08-19), XP002972229, Retrieved from the Internet <URL:http://dss.clip2.com> [retrieved on 20030715] *
CLARKE IAN ET AL.: "Freenet: A distributed anonymous information storage and retrieval system", WORKSHOP ON DESIGN ISSUES IN ANONYMITY AND UNOBSEVABILITY 2000, June 2000 (2000-06-01), pages 46 - 66, XP002253081 *
KUNWADEE SRIPANIDKULCHAI: "The popularity of Gnutella queries and its implications on scalability", February 2001 (2001-02-01), XP002972226, Retrieved from the Internet <URL:http://www-2.cs.cmu.edu/~kunwadee/research/p2p/> [retrieved on 20030711] *
MASAFUMI WATARI ET AL.: "P2P model ni okeru cache kiko no yukosei no hyoka oyobi teian", INFORMATION PROCESSING SOCIETY OF JAPAN DAI 63 KAI (HEISEI 13 NEN KOKI) ZENKOKU TAIKAI KOEN RONBUNSHU (3), 26 September 2001 (2001-09-26), pages 581 - 582, XP002972227 *
NAO KAWANISHI ET AL.: "Peer-to-Peer netowkr ni okeru object-kan ruii-sei o riyo shita hakken shuho", 2002 THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS SOGO TAIKAI KOEN RONBUNSHU (COMMUNICATION 2), 7 March 2002 (2002-03-07), pages 280, XP002972228 *

Cited By (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客户端数据传输的控制方法
WO2009059525A1 (fr) * 2007-10-29 2009-05-14 Huawei Technologies Co., Ltd. Méthode, dispositif et système de demande et de réponse dans un réseau de recouvrement p2p

Also Published As

Publication number Publication date
JP2004023597A (ja) 2004-01-22

Similar Documents

Publication Publication Date Title
JP4738060B2 (ja) データ通信網のセキュアな連合
US8176189B2 (en) Peer-to-peer network computing platform
Vasserman et al. Membership-concealing overlay networks
JP5239341B2 (ja) ゲートウェイ、中継方法及びプログラム
JP4962117B2 (ja) 暗号通信処理方法及び暗号通信処理装置
EP1974501A2 (en) Ad-hoc creation of group based on contextual information
JP5012173B2 (ja) 暗号通信処理方法及び暗号通信処理装置
Gawande et al. Decentralized and secure multimedia sharing application over named data networking
JP2008508573A (ja) セキュア通信に関連する改良
Ford UIA: A global connectivity architecture for mobile personal devices
Zave et al. Patterns and interactions in network security
US7526560B1 (en) Method and apparatus for sharing a secure connection between a client and multiple server nodes
Loesing et al. Privacy-aware presence management in instant messaging systems
WO2004001630A1 (ja) ネットワークシステムおよびプログラム
Ramachandran et al. Authenticated out-of-band communication over social links
Ventura Diameter: Next generations AAA protocol
Divac-Krnic et al. Security-Related issues in peer-to-peer networks
Pallickara et al. A security framework for distributed brokering systems
Åslund Authentication in peer-to-peer systems
Müller et al. A secure service infrastructure for interconnecting future home networks based on DPWS and XACML
Fischer et al. Enhancing privacy in collaborative scenarios utilising a flexible proxy layer
Courtès et al. Security rationale for a cooperative backup service for mobile devices
Zheng et al. A secure architecture for P2PSIP-based communication systems
JP2006216014A (ja) メッセージを認証するためのシステムおよび方法、メッセージを認証するためのファイアウォール、ネットワーク装置、および、コンピュータ読み取り可能な媒体
Zave et al. 1 Security provided by endpoints

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN IL KR RU US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase