WO2007010724A1 - ノード装置、コンピュータプログラムを記憶した記憶媒体、情報配信システム、及びネットワーク参加方法 - Google Patents

ノード装置、コンピュータプログラムを記憶した記憶媒体、情報配信システム、及びネットワーク参加方法 Download PDF

Info

Publication number
WO2007010724A1
WO2007010724A1 PCT/JP2006/312988 JP2006312988W WO2007010724A1 WO 2007010724 A1 WO2007010724 A1 WO 2007010724A1 JP 2006312988 W JP2006312988 W JP 2006312988W WO 2007010724 A1 WO2007010724 A1 WO 2007010724A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
node
participation request
request information
participating
Prior art date
Application number
PCT/JP2006/312988
Other languages
English (en)
French (fr)
Inventor
Hiroaki Suzuki
Kentaro Ushiyama
Yuji Kiyohara
Koichi Iijima
Original Assignee
Brother Kogyo Kabushiki Kaisha
Xing Inc.
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 Brother Kogyo Kabushiki Kaisha, Xing Inc. filed Critical Brother Kogyo Kabushiki Kaisha
Publication of WO2007010724A1 publication Critical patent/WO2007010724A1/ja
Priority to US12/007,834 priority Critical patent/US7782867B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1055Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving connection limits

Definitions

  • Node device storage medium storing computer program, information distribution system, and network participation method
  • the present invention relates to a peer-to-peer (P2P) type information distribution system and method including a plurality of node devices connected to each other via a communication network.
  • P2P peer-to-peer
  • the present invention relates to a technical field in which an unparticipated node device participates in an overlay network formed by participation of all or some of the node devices.
  • each node device In a peer-to-peer information distribution system, for example, in an overlay network logically constructed using a distributed hash table (hereinafter referred to as DHT (Distributed Hash Table)), each node device is It does not recognize link information (for example, IP address) to all node devices participating in the overlay network. Only link information to some node devices obtained at the time of participation, etc. Inquiries about data are made based on powerful link information.
  • DHT distributed Hash Table
  • Non-Patent Document 1 "Lightweight load balancing method for distributed hash table" The Institute of Electronics, Information and Communication Engineers IEICE technical report
  • the link information of each node device considers locality (in other words, locality), in other words, proximity on the actual network (actual network). Therefore, it is possible to add an extra load to the actual network.
  • the present invention has been made in view of the above problems and the like, and it is possible to construct an overlay network in consideration of locality (regionality), and reduce an extra load on the actual network. It is an object of the present invention to provide a node device, a storage medium storing a computer program, an information distribution system, and a network participation method. Means for solving the problem
  • a plurality of node devices connected to each other via a communication network are formed.
  • Device information acquisition means for acquiring device information of a plurality of node devices to which participation request information indicating a request to participate in the overlay network is to be transmitted; and on the communication network
  • a reachable range setting means for setting information representing the reachable range of the participation request information transmitted, and information indicating the set reachable range is added to the participation request information, and the participation request information is added.
  • Participation request information transmitting means for transmitting to each of the node devices specified by the acquired device information, and the participation request information
  • the reply information receiving means for receiving the reply information including the forwarding destination table that defines the forwarding destination of the information on the overlay network, and the received reply information receiving means
  • Transfer destination table generating means for generating the transfer destination table to be used by itself based on the transfer destination table included in the reply information.
  • a node device that strongly participates in the overlay network sets information representing the reachable range of the participation request information, adds the set information to the participation request information, Node device that can send to multiple node devices and receive the participation request information Generates a transfer destination table to be used by itself based on the transfer destination table included in the sent reply information As a result, it is possible to construct an overlay network that takes into account the locality (communication) on the communication network and reduce the extra load on the communication network. .
  • the reply information is not received within a predetermined time after the participation request information is transmitted.
  • the participation request information transmitting means transmits the participation request information again to each of the node devices.
  • the reachable range setting means includes information indicating the reachable range of the participation request information.
  • the change is set, and the participation request information transmitting means adds information indicating the reachable range that has been changed and set to the participation request information, and transmits the participation request information to each of the node devices again. It is characterized by that.
  • the reachable range of the participation request information when a node device that strongly participates in the overlay network transmits participation request information and does not receive reply information within a predetermined time, the reachable range of the participation request information The information indicating the change is set, the changed information is added to the participation request information, and the information is transmitted again to each node device. Tables can be acquired, and it is possible to construct an overlay network that takes into account the locality of the communication network.
  • the reachable range setting means changes and sets the information representing the reachable range so as to be wider than the previously set reachable range.
  • the reachable range is wider than the previously set reachable range. Therefore, it is possible to reliably and optimally acquire the node device transfer destination table, and to construct an overlay network that takes into account the locality on the communication network. .
  • the device information acquisition unit is different from the device information of the node device acquired last time.
  • a plurality of pieces of information are acquired, and the participation request information transmitting means transmits the participation request information to each of the node devices specified by the acquired pieces of device information. It is characterized by believing.
  • the transfer destination table is divided into a plurality of levels, and when the reply information receiving unit receives the reply information from the plurality of node devices, the transfer destination table generating unit is When there are a plurality of transfer destination tables of the same level among the transfer destination tables included in the reply information, the participation request information is reachable among the plurality of transfer destination tables of the same level.
  • the transfer range table to be used by the self is generated based on the transfer destination table in one of the node devices that has the narrowest range and can be received by setting.
  • a node device that strongly participates in an overlay network has a plurality of transfer destination tables of the same level among the transfer destination tables included in reply information from a plurality of node devices.
  • the transfer destination to be used by itself based on the transfer destination table in the node device that can be received with the setting where the reachable range of the participation request information is the narrowest. Since the table is generated, the transfer destination table of the node device closer to the network (for example, with a smaller number of HOPs) is preferentially registered, and the transfer destination table also takes locality into consideration. Therefore, it is possible to construct an overlay network that takes into account the locality of the communication network.
  • the participation request information transmitting means transmits the participation request information by adding identification information unique to itself to the participation request information, and the participation request information receives the participation request information. From the node device to the node device that is the management source of the unique identification information, and is sent according to the unique identification information, and the reply information receiving means is sent from each node device that forwards the participation request information. The received reply information is received, and the transfer destination table generating means includes a transfer destination table included in each reply information. Based on the table, a transfer destination table to be used by the self is generated.
  • participation request information is transferred to a plurality of node devices, so that transfer destination tables of more node devices can be acquired.
  • Another aspect of the present invention is characterized in that a computer is caused to function as the node device.
  • an information distribution system including a plurality of node devices connected to each other via a communication network, all or part of the plurality of node devices.
  • a node device participating in the overlay network receives participation request information indicating a request for participation in the overlay network.
  • Device information acquisition means for acquiring device information of a plurality of node devices to be transmitted; reachability range setting means for setting information representing the reachable range of the participation request information transmitted over the communication network; The information indicating the set reachable range is added to the participation request information, and the participation request information is added to each of the acquired device information.
  • Participation request information transmitting means for transmitting to each of the specified node devices, and the node device that has received the participation request information specifies a transfer destination that specifies a transfer destination of information on the overlay network
  • a reply information transmitting unit configured to transmit reply information including a table to the node device that is a transmission source of the participation request information, and the node device participating in the overlay network receives the reply information including the transfer destination table. It further comprises: reply information receiving means for receiving; and transfer destination table generating means for generating the transfer destination table to be used by itself based on the transfer destination table included in the received reply information.
  • an overlay formed by participation of all or some of the node devices among a plurality of node devices connected to each other via a communication network.
  • a network participation method for a network the node device participating in the overlay network acquiring device information of a plurality of node devices to which participation request information indicating a request to participate in the overlay network is to be transmitted; , The communication network Setting information representing the reachable range of the participation request information transmitted over the network, adding information representing the set reachable range to the participation request information, and acquiring the participation request information.
  • Transmitting to each of the node devices specified by each of the device information, and the node device that has received the participation request information defines a transfer destination table that defines a transfer destination of information on the overlay network Is sent to the node device that is the transmission source of the participation request information, and the node device participating in the overlay network receives the reply information including the transfer destination table. Based on the process and the transfer destination table included in the received reply information, the transfer destination table to be used by itself is generated. A step of, and further comprising a.
  • a node device that will participate in the overlay network sets information representing the reachable range of the participation request information, adds the set information to the participation request information, and a plurality of nodes A node device that can transmit to the device and receive the participation request information. Generate a transfer destination table to be used by itself based on the transfer destination table included in the returned reply information. By participating in the overlay network, it is possible to build an overlay network that takes into account the locality (regionality) of the communication network and reduce the extra load on the communication network.
  • FIG. 1 is a diagram showing an example of a connection mode of each node device in a content distribution system according to the present embodiment.
  • FIG. 2 is a diagram showing an example of a state in which a query sent from a participating node nl is transferred to a root node nlO in the node ID space of the DHT.
  • FIG. 3 is a diagram showing an example of a DHT routing table held by a participating node nl.
  • FIG. 4 is a conceptual diagram showing an example of a DHT node ID space.
  • FIG.5 A conceptual diagram showing an example of the flow until the DHT routing table is generated. is there.
  • FIG. 6 is a diagram showing a schematic configuration example of a participating node nn and a non-participating node nm.
  • FIG. 7 (A) is a flowchart showing the main routine of a node (common to participating node nn and non-participating node nm), and (B) is a flowchart showing the main routine of management server SA. is there.
  • FIG. 8 (A) is a flowchart showing details of the participation process in step S1 shown in Fig. 7 (A) in the first embodiment, and (B) shows a device information request message in the first embodiment.
  • (C) is a flowchart showing the process of the non-participating node nm when the device information message is received according to the first embodiment (D).
  • (D) Is a flowchart showing the process of the participating node nn when the participation request message is received in the first embodiment
  • (E) is the non-participation when the return message is received in the first embodiment.
  • FIG. 5F is a flowchart showing processing of the node nm
  • FIG. 5F is a flowchart showing processing of the management server SA when a registration message is received in the first embodiment.
  • FIG. 9 (A) is a flowchart showing the details of the routing table generation processing in step S71 shown in FIG. 8 (E), and (B) is the non-participating node nm when the reply message reception timer is started. It is a flowchart which shows the process of.
  • FIG. 10 is a conceptual diagram showing an example of a state where a non-participating node 16 newly joins the overlay network 9 in the first embodiment.
  • FIG. 11 is a conceptual diagram showing an example of a state when a non-participating node 16 newly joins the overlay network 9 in the first embodiment.
  • FIG. 12 is a conceptual diagram showing an example of a state where a non-participating node 16 newly joins the overlay network 9 in the first embodiment.
  • FIG. 13 (A) is a flowchart showing details of the participation process in step S1 shown in Fig. 7 (A) in the second embodiment, and (B) is a flowchart for receiving a participation request message in the second embodiment.
  • FIG. 10C is a flowchart showing processing of a non-participating node nm when a reply message is received in the second embodiment.
  • [0141 (A) is a flowchart showing a main routine of a node (common to the participating node nn and the non-participating node nm) in the third embodiment, and (B) is a flowchart of 14 (A) in the third embodiment.
  • FIG. 10C is a flowchart showing the details of the participation process in step Sib, and (C) is a flowchart showing the process of the non-participating node nm when the reply message reception timer is activated in the third embodiment.
  • FIG. 15 (A) is a flowchart showing the processing of the participation node nn (processing for each message in step S6) when the participation request message is received in the modified example, and (B) is the modified example. 14 is a flowchart showing details of the routing table generation processing in step S71 shown in FIGS. 8 (E) and 13 (C).
  • FIG. 1 is a diagram showing an example of a connection state of each node device in the content distribution system according to the present embodiment.
  • IX Internet eXchange
  • ISP Internet Service
  • a network such as the Internet (real-world communication network) 8 is constructed by 7 etc. Note that the network (communication network) 8 in the example of FIG. 1 is appropriately inserted with a router power for transferring data (packets), but is not shown.
  • the content distribution system S is configured to include a plurality of node devices nl, ⁇ 2,... ⁇ 21 connected to each other via such a network 8, and thus a peer-to-peer network. It is a system (note that there are actually more node devices). Each node device nl to n21 is assigned a unique serial number and an IP (Internet Protocol) address (global IP address). The serial number and IP address are not duplicated among multiple node devices.
  • IP Internet Protocol
  • an overlay network 9 as shown in the upper frame 100 of FIG. 1 is constructed by a specific algorithm, for example, an algorithm using DHT. Will be. That is, the overlay network 9 means a network (logical network) that forms a virtual link formed by using the existing network 8.
  • nl5 is a node device participating in the overlay network 9 (hereinafter, such node devices nl to nl5 are collectively referred to as “participating node nn”).
  • the overlay network 9 is formed by participation of a participating node nn.
  • Participation in such overlay network 9 is not participating node devices nl6 to n21 (hereinafter collectively referred to as “non-participating node nm”) power participation request information indicating a participation request to any participating node nn Is done by sending
  • each participating node nn has a node ID as identification information unique to itself, and the node ID is, for example, an IP address or a serial number and a common hash function (for example, SHA— It is a hashed value (for example, bit length is 160 bits), and is distributed evenly in one ID space.
  • a common hash function for example, SHA— It is a hashed value (for example, bit length is 160 bits), and is distributed evenly in one ID space.
  • a value obtained by hashing an IP address with a common hash function is used as a node ID.
  • a management SAN SA that manages device information (for example, nodes, IP addresses, port numbers, etc.) of all participating nodes nn. Power Even if such a management Sano SA does not exist, the overlay network 9 can be formed.
  • the node ID obtained by the common hash function (nominated) is the IP address, or if the serial number is different, the probability of having the same value is extremely low. . Since the No and Shush functions are well known, detailed description thereof will be omitted.
  • Each caronode nn holds a DHT! /, Respectively.
  • This DHT specifies the information transfer destination on the overlay network.
  • node [Register multiple pairs of node IDs of node nn and their IP addresses etc. that are moderately separated in D space. Routing table (forwarding destination table) is included.
  • Such a DHT can be exempted when the non-participating node nm participates in the overlay network 9.
  • the content data of a movie with the title XXX is stored in the participating car node nl, while the content data of the movie with the title YYY is stored in the participating car node n2, which is different from each other.
  • certain content data is not necessarily stored in one participating node nn, and the same content data can be stored in a plurality of participating nodes nn. Each of these contents data is given a contents name (title).
  • the location information indicating the location of the content data distributed and stored in this way (for example, the IP address of the participating node nn where the content data is stored) is also included in the plurality of participating nodes nn.
  • the content name of some content data (or may be the first few bytes of the content data) is hashed by the same hash function as when obtaining the node ID (that is, the IP address of the participating node nn) (Located in the same ID space as the hash value), and the participating node nn (the hash value) having the node ID closest to the hash value (the hash value becomes the content ID) (for example, the higher digit matches more)
  • the location information of the content data is stored in the management source).
  • the location information indicating the location of the content data to be sought (a plurality of participating nodes nn (IP address etc.) can be managed by one participating node nn (the participating node that manages the location of content data in this way is hereinafter referred to as “root node”).
  • the location information of the content data corresponding to the content ID 1 is stored in the root node 1 (that is, the root node and the location information have a one-to-one relationship). Force is not limited to this).
  • a participating node n4 used by a user who wants to acquire (download) certain content data sends a query (inquiry information) with the content ID of the content data to another participating node nn.
  • the query with the corresponding content ID is sent via a number of participating nodes nn (in each relay node, (The content ID is transferred by referring to the DHT routing table)
  • the location information indicating the location of the content data is reached, and the location information is obtained from the root node nlO.
  • the content data can be stored and connected to the participating node n5, for example, and the content data can be acquired (received) from there. .
  • FIG. 2 is a diagram illustrating an example of a state in which a query in which the participation node n4 is also transmitted is transferred to the root node nlO in the node ID space of the DHT.
  • each relay node compares the content ID attached to the received query with the node ID registered in the DHT routing table and then joins the node nn to be transferred next. (For example, the IP address of the participating node nn corresponding to the node ID that matches the high-order digits of the content ID is specified), and the query is forwarded there.
  • FIG. 3 is a diagram showing an example of the DHT routing table held by the participating node nl
  • FIG. 4 is a conceptual diagram showing an example of the DHT node ID space.
  • the DHT routing table is a level 1 to level 3 taperka (divided into multiple levels), and each level table entry contains a node ID for each area. And the IP address of the corresponding participating node nn are registered in association with each other.
  • Each area in each level table is an area obtained by dividing the DHT node ID space. For example, as shown in Fig.
  • the entire node ID space of DHT is divided and the area where the node IDs "000" to "033" exist is the OXX area, "100" to "133"
  • the area where the node ID is 1XX area, "20 Areas with node IDs of 0, ⁇ "233,” are 2XX areas, areas with node IDs of "300" to “333” are 3XX areas, and level 2 is level 1
  • the area (that is, the area from OXX to 3XX) is further divided into 4 areas, for example, 1XX area force, and the area where the node ID of “100” to “103” exists is the 10X area, “110” to “113”
  • the area where the node IDs of 1 are the IX area, the area where the node IDs of "120” to "123” are the 12 X areas, the area where the node IDs of "130" to "133” are the 13X Let it be an area.
  • the table entry of the 1XX area (the area where the self exists) of the participating node nl at level 1 Is registered with its own node ID and IP address (the IP address is its own, so it does not have to be registered in the routing table) and does not exist (ie, OXX area, 2XX In the area and the 3XX area), node IDs and IP addresses of other arbitrary participating nodes nn are registered.
  • the table entry of the 12X area (the area where the self exists) in level 2 of the participating node nl, which is strong, has its own node ID and IP address (the IP address is its own). (There is no need to register it in the routing table), and the area where it does not exist (that is, 10X area, 11X area, and 13X area) The node ID and IP address of any participating node nn are registered.
  • node IDs and IP addresses of all the participating nodes nn existing in the 12X area are registered in level 3 of the participating node nl that works.
  • the node ID bit length is 3 digits X 2 bits. Therefore, if the node ID bit length increases, the power that can be covered by the tables for three levels of levels 1 to 3 is increased. Therefore, the corresponding table is required (for example, if the bit length of the node ID is 16 digits x 4 bits, a table for 16 levels is required).
  • the area becomes narrower as the level increases, and for example, by using the routing table configured in this way, for example, a participating node Queries sent from nl can be efficiently transferred to the root node.
  • a participating node Queries sent from nl can be efficiently transferred to the root node.
  • such a DHT routing table transmits participation request information with its own node ID added to any participating node nn. Will be generated.
  • FIG. 5 is a conceptual diagram showing an example of a flow until a DHT routing table is generated.
  • the non-participating caro node nl6 generates a node ID (for example, "333") by hashing its own IP address with the above hash function.
  • the participation request information with the IP address of its own is sent to the participating node nl.
  • the participating car node nl receives the participation request information and refers to the routing table 51 of the DHT to refer to the node ID "333" closest to the participation request information "
  • the IP address of the participating node ni l having 301 " is acquired, and based on this, the participation request information to which the node ID" 333 "and the IP address of the non-participating node nl6 are added is transferred to the participating node n11.
  • the participating car node ni l receives the participation request information, refers to the routing table 52 of the DHT, and finds the node closest to the node ID “333” added to the participation request information.
  • the IP address of the participating node n9 having the node ID “332” is acquired, and based on this, the participation request information to which the node ID “333” and the IP address of the non-participating node nl6 are added is sent to the participating node n9 in the fifth example.
  • the participating car node n9 receives the participation request information and associates the IP address of the non-participating node nl6 with the node ID "333" in the level 3 table in the DHT routing table 53. sign up. That is, the participating car node n9 becomes a management source of the node ID “333”.
  • the participating car node nl, the participating node nl l, and the participating node n9 that have received the participation request information are DH T of the non-participating node nl6.
  • Part of the routing table (participating node nl level 1 table, participating node Node ni l sends a level 2 table, and participating node n9 sends a reply information (including a level 3 table).
  • the non-participating node nl6 receives the reply information including the transmitted routing table of each DHT and uses it based on each routing table included in the reply information. Generate DHT routing table 54. At this time, if another known node information can be registered for each entry, the entry may be rewritten. In the example of Fig. 5, the level 1 table entry 51a (node ID "301" and its corresponding IP address) at participating node nl is replaced with its own node ID "333" and its corresponding IP address. Yes. Note that in the example of Fig. 5, each participating node nn is returning a different level table. All participating nodes nn return all level tables (that is, the entire routing table), and no participation. Node nm can select each table power table entry as appropriate to create its own new table.
  • the non-participating node nl6 that has obtained the DHT routing table 54 thus generated joins the overlay network 9 as a participating car node nl6.
  • the DHT routing table generated in this way should minimize the load on the network 8 (load caused by transmission of information including the node ID on the network 8). Is desirable.
  • participation request information is transmitted to any of a plurality of participating nodes nn, and of these, the network 8 The above reply information is returned from the participating node nn taking the above locality into consideration.
  • the participating node nl and the non-participating node nl6 (within the reference numeral 101a) belonging to the same circuit operator (for example, the circuit operator 5a) have locality (locality).
  • the participating node nl and the non-participating node n21 (within the reference numeral 101b) belonging to a different circuit operator (for example, the circuit operator 5b) have low locality (regional characteristics) ( In other words, it goes through ISP4a, 1X3, and ISP4b).
  • the same area number (Al, A2, A3) is assigned to the participating node nl and the non-participating node nl6 belonging to the same line operator.
  • the participating node nn in which locality (regionality) on the network 8 is considered means the non-participating node nm and the participating node nn having high locality (regionality), that is, the non-participating car node nm. This means a participating node nn that is close to the network (in other words, the communication load on the communication path to the non-participating node nm is relatively small).
  • Non-participating node nm force network Receives reply information from participating node nn taking locality (regionality) into consideration, and uses it based on the DHT routing table included in this node If the DHT routing table 54 should be generated, for example, content IDs and node IDs are transferred between participating nodes nn that are close to each other in terms of network. As a result, the load on the entire network 8 is reduced. It can be reduced.
  • FIG. 6 is a diagram illustrating a schematic configuration example of the participating node nn and the non-participating node nm.
  • the participating node nn and the non-participating node nm each have an arithmetic function as shown in FIG.
  • Control unit 11 as a computer and various data (for example, content data, location information)
  • a decoder unit 14 that decodes data (video information) and audio data (audio information), etc. (data decompression and decoding, etc.), and a video signal obtained by performing a predetermined drawing process on the decoded video data, etc.
  • a video processing unit 15 that outputs the video signal
  • a display unit 16 such as a CRT or a liquid crystal display that displays video based on the video signal output from the video processing unit 15, and the decoded audio data as an analog audio signal.
  • the audio processing unit 17 that converts the D (Digital) / A (Analog) and then amplifies it with an amplifier, and outputs the audio output from the audio processing unit 17
  • a communication unit 20 for controlling communication of information between the speaker 18 that outputs a signal as a sound wave and another participating node nn or non-participating node nm through the network 8, and receives an instruction from the user and
  • an input unit for example, a keyboard, a mouse, or an operation panel
  • the unit 14 and the communication unit 20 are connected to each other via a bus 22.
  • control unit 11 in the non-participating node nm causes the CPU to read and execute the program (including the computer program of the present invention) stored in the storage unit 12 or the like, so that the whole is performed.
  • the control unit 11 functions as device information acquisition means, reachable range setting means, participation request information transmission means, reply information reception means, transfer destination table generation means, etc. of the present invention, and performs various processes described later. I will speak.
  • control unit 11 in the participating node nn performs overall control by reading and executing the program stored in the storage unit 12 or the like by the CPU, and in the overlay network 9, the node ID and the content Perform various processes such as ID transmission / reception, content data transmission / reception, location information transmission / reception, etc., and also receive search information, participation request information, etc. from non-participating node nm etc. It has become.
  • the computer program may be downloaded from a predetermined server on the network 8, for example, or may be recorded on a recording medium such as a CD-ROM, via a drive of the recording medium. But let's read it.
  • the operation when the management server SA that manages the participating caro node list in which device information (link information) to all the participating nodes nn is described is connected to the network 8. It is an example.
  • FIG. 7 (A) is a flowchart showing a main routine of a node (common to participating nodes nn and non-participating nodes nm), and FIG. 7 (B) is a flowchart showing the main routine of the management server SA. It is.
  • FIG. 8 (A) is a flowchart showing details of the participation process in step S1 shown in FIG. 7 (A) in the first embodiment, and FIG. 8 (B) shows a device in the first embodiment.
  • FIG. 8C is a flowchart showing the management Sano SA processing (processing for each message in step S104) when an information request message is received, and FIG. 8 (C) shows a case where a device information message is received in the first embodiment.
  • FIG. 8D is a flowchart showing the processing of the non-participating node nm in FIG. 8 (processing for each message in step S6).
  • FIG. FIG. 8E is a flowchart showing processing (processing for each message in step S6), and FIG.
  • FIG. 8E shows processing of the non-participating node nm when a reply message is received in the first embodiment.
  • FIG. 8 (F) is a flowchart showing the process of the management sano SA when the registration message is received in the first embodiment (each message in step S104).
  • FIG. 9 (A) is a flowchart showing details of the routing table generation processing in step S71 shown in FIG. 8 (E), and FIG. 9 (B) shows that the reply message reception timer is started. It is a flowchart which shows the process of the non-participating node nm in the case.
  • FIGS. 10 to 12 are conceptual diagrams illustrating an example of a state in which the non-participating node 16 newly participates in the overlay network 9 in the first embodiment.
  • the process of 07 (A) is started, for example, when the power of the non-participating node nm is turned on (power ON).
  • the control unit 11 participates in the participation process for participating in the overlay network 9 ( Details will be described later (step Sl).
  • step S2 determines whether or not the power has been turned off (step S2). If the power has been turned off (step S2: Y), the processing ends. On the other hand, if the power is not turned off (step S2: N), the control unit 11 determines whether or not there is an operation from the input unit 21 by the user (step S3). (Step S3: Y), execute processing for each operation (processing according to the operation signal) ( Step S4).
  • step S3: N when there is no operation from the input unit 21 (step S3: N), the control unit 11 determines whether or not a message (for example, a device information message, a participation request message, a reply message, etc. described later) has been received. (Step S5), and if there is such reception (step S5: Y), processing for each message (details will be described later) is performed (step S6). On the other hand, if no message is received (step S5: N), the process returns to step S2. Thus, the above process is repeated until the power is turned off at the non-participating node nm (becomes a participating node nn during the process).
  • a message for example, a device information message, a participation request message, a reply message, etc. described later
  • the processing in FIG. 7B is started when, for example, the management server SA is powered on (powered on).
  • the management server SA initializes the participating node list (step S101). ), It is determined whether or not the power is turned off (step S102). If the power is turned off (step S102: Y), the processing is terminated. On the other hand, if the power is not turned off (step S102: N), the management server SA determines whether or not a message (for example, a device information request message described later) is received (step S103). If there is such reception (step S103: Y), processing for each message (details will be described later) is performed (step S104). On the other hand, if no message has been received (step S103: N), the process returns to step S102. In this way, the above processing is repeatedly executed in the management SA SA until the power is turned off.
  • a message for example, a device information request message described later
  • step S1 the control unit 11 of the non-participating caro node nm (here, the non-participating node nl6 shown in FIG. 10), as shown in FIG. First, initialization is performed, and the registration flag is set to “false”, and “ttl” (variable) is set to, for example, “2” (step Sl l).
  • control unit 11 obtains the IP address of the management Sano SA (for example, stored in the storage unit 12 at the time of product shipment) (step S12), and participates in a request for participation in the overlay network 9
  • the device information request message for example, the IP address of the self (non-participating node nl6)
  • the management server SA's A device information request packet (with the IP address as the destination address) is transmitted to the management SA SA via the communication unit 20 and the network 8 (step S13: FIG. 10 (A)).
  • the management server SA sends a device information request message transmitted from the non-participating node nl6.
  • the process shown in FIG. 8 (B) is started.
  • device information of a predetermined number (for example, 10) of participating nodes nn is selected from the participating node list (step S110).
  • a predetermined number of participating nodes nn are randomly selected from the participating node list. It should be noted that a predetermined number of participating nodes nn may be selected by weighting random according to the participation period (registration period) in the overlay network 9.
  • the number of links to a participating node nn with a long participation period increases in the DHT of each participating node nn, and the adverse effect when that node leaves is increased.
  • the probability of selection may be increased as the participation period (registration period) is shorter. This prevents concentration of links to a specific participating node nn, but updates the information registered on the DHT.
  • a predetermined number of participating nodes nn may be selected by a weighted random according to the number of times selected in the past (the number of times selected above is counted for each participating node nn). . For example, the higher the number of selections made in the past and the higher the reliability, the higher the probability of selection.
  • the probability of selection may be increased as the number of selections in the past is reduced.
  • the management server SA uses a device information message (for example, the IP address of itself (management server SA)) with the device information of the selected plurality of participating nodes nn as a sending address,
  • the device information packet (with the IP address of nl6 as the destination address) is transmitted to the non-participating node nl6 via the network 8 (step S111: FIG. 10 (B)).
  • the non-participating node nl6 when the non-participating node nl6 receives the device information message transmitted from the management server SA, the non-participating node nl6 starts the process shown in FIG. 8C.
  • device information acquisition means device information of a plurality of participating nodes nn added to the device information message is acquired (step S61).
  • the control unit 11 of the non-participating node nl6 sets the TTL (Time To Live) value to the above “ttl (eg, 2)” as reachable range setting means, and participates in the overlay network 9.
  • TTL Time To Live
  • the control unit 11 of the non-participating node nl6 sets (starts counting) a reply message reception timer that starts after a predetermined time (for example, after 1 to 10 seconds) (step S63). If the reply message reception timer is not canceled (reset) by the process described later, the process shown in FIG. 9 (A) is started.
  • the TTL is an example of information representing the reachable range of the participation request message transmitted on the network 8, and is represented by an integer value up to "255", and the message (packet) is a router or the like. Each time it is transferred (transferred), it is reduced by one. A packet with a TTL value of 0 "is discarded at that time, and a discard notification reaches the packet source. Therefore, the larger the TTL value of the received message (packet), the more As a result, the number of transfers (HOPs) is small, and the impact on the communication load on the network 8 communication path is reduced.
  • FIG. 10 (C) shows the force that the participation request message is sent to the participating node n2, the participating node n4, the participating node n5, and the participating node n9.
  • the participating node n5 shows that the join request message does not arrive because the TTL value becomes “0” in the middle of the route, and the join request message arrives only at the participating node n2.
  • the participating car node n2 receives the participation request message transmitted from the non-participating node nl6, the participating node n2 starts the processing shown in FIG. Based on the number of transfers in the participation request message, the routing table level (level number) to be returned is determined (step S65).
  • the participation request message includes a count for counting the number of times the message is transferred.
  • a transfer counter is added, and every time the message is transferred by the participating node nn by DHT routing, the transfer counter is incremented by 1 (incremented by 1).
  • the transfer counter of the participation request message received by the participating node n2 is “0” because it has not been transferred yet, but after that, it increases by 1 each time it is transferred (for example, 011 (D
  • the transfer capability of the participation request message received by the participating node n6 shown in (1) is “1”.
  • a level 1 table (for one row) force, a transfer number force, a level 2 table is If the number of transfers is “2”, the level 3 table power will be determined as the returned table.
  • the control unit 11 of the participating node n2 acquires the above-determined level (level number) table from its own DHT routing table, and the acquired level for the reply message as reply information.
  • (Level number) table is attached (attached), and this reply message (for example, the IP address of self (participating node n2) is set as the source address and the IP address of non-participating node nl6 is set as the destination address.
  • (Reply packet) is transmitted (returned) to the non-participating node nl6 via the communication unit 20 and the network 8 (step S66: FIG. 11 (E)).
  • the control unit 11 of the participating node n2 refers to the DHT routing table and searches for the transfer destination based on the node ID of the non-participating node nl6 added to the received participation request message. (Step S67), it is determined whether there is a transfer destination (Step S68). For example, self (participating node n2) power If the node ID added to the participation request message has the closest node ID, the node ID added to the participation request message in the routing table When the closest table entry is searched, the forwarding destination points to itself (that is, it is determined that there is no forwarding destination, that is, the node ID manager attached to the participation request message) (step S68: N) Return to the process shown in Fig.
  • step S68 Y
  • step S69 To do.
  • step S69 the control unit 11 of the participating node n2 increments the transfer counter in the participation request message by 1 (increments by 1), and is the node closest to the node ID added to the participation request message.
  • the IP address corresponding to the ID is obtained from the DHT routing table, and the IP address of the non-participating node nl6 is attached to the participation request message with the node ID added, and the participation request message (self (Participation node n2) is sent to the above routing table via the communication unit 20 and the network 8 via the communication unit 20 and the network 8. It sends (transfers) to the participating node n6 corresponding to the acquired IP address (Fig. 11 (D)) and returns to the processing shown in Fig. 7 (A).
  • each participating node n6, nl3, and nl4 that is sequentially transferred to a participating node nl4 and receives the participation request message receives a reply message with a level (level number) table corresponding to the value of the transfer counter. It is sent (replyed) to the non-participating node nl6 (Fig. 11 (E)).
  • the non-participating node nl6 when the non-participating node nl6 receives a reply message transmitted from each participating node nn (for example, participating node n2) as a reply information receiving means, it starts the processing shown in FIG. 8 (E). First, the control unit 11 of the non-participating node nl 6 generates a routing table to be used by itself based on the routing table added to the received reply message as a transfer destination table generating unit. A routing table is generated (step S71).
  • the control unit 11 of the non-participating node n 16 first sets the level (level number) of the table added to the received reply message. Read (step S711), and check whether the read level (level number) is registered in its own routing table (step S71 2). If it is not registered (step S712) : N), register the table of the relevant level (level number) in the corresponding part of its routing table (step S713) The process ends, and the process returns to the process shown in FIG.
  • step S72 shown in FIG. 8 (E) the control unit 11 of the non-participating node nl6 determines whether or not the registration flag is “false”. If the recording flag is not “false”, that is, “true” (step S72: N), the processing returns to FIG. On the other hand, when the registration flag is “false” (step S72: Y), the control unit 11 registers the registration message (self (participating node n2) with the node ID of the self (non-participating node nl6). ) Is sent to the management server SA via the communication unit 20 and the network 8 (step S73).
  • the control unit 11 of the non-participating node nl6 sets the registration flag to “true” (step S74) and cancels the reply message reception timer (step S75).
  • the registration flag is a flag that means that a non-participated caro node has generated a table (even partially) and has joined the overlay network 9.
  • the management Sano SA receives the registration message sent from the non-participating node nl6, it starts the process shown in Fig. 8 (F), and the non-participating node nl of the source of the registration message is sent.
  • the node ID and IP address of 6 are registered in the participating node list as device information (step S115). In this way, participation of the non-participating node nl6 in the overlay network 9 is completed.
  • the participation request message reaches a plurality of participating nodes nn (participating nodes n2 and n9 in the example of FIG. 12 (A)). It is assumed that multiple reply messages are sent from each participating node nn and the participating node nn that has received the participation request message transferred from the participating node nn (FIGS. 12B and 12C). The In this case, a reply message to which the same level table is added is sent from a plurality of participating nodes nn (for example, participating nodes n2 and n9 shown in FIG. Power to be returned In the routing table generation process shown in Fig.
  • step S712 the table at the level at which the rear force is also received in step S712 is discarded (that is, the table of that level is given priority on a first-come-first-served basis). Is registered).
  • the reply message reception timer set in step S63 is started, and the process shown in FIG. 9 (B) is started.
  • the control unit 11 of the non-participating node nl6 determines whether or not the registration flag is “false” (step S631). If the registration flag is not “false”! /, (Step S631: N) Since the participation registration has already been completed, the process is terminated.
  • step S631: Y when the registration flag is “false” (step S631: Y), the control unit 11 increments “tt 1” by 1 (1 boost! (Step S632), and the above step S62 It is determined whether or not the TTL value set in is less than 255 (step S633). If the TTL value is not less than 55 (step S633: N), the process is terminated. On the other hand, if the TTL value is 255 or less (step S633: Y), the control unit 11 changes the TTL value to “ttl (for example, 3)” increased by 1 count and participates.
  • ttl for example, 3
  • step S634 Set the corresponding TL value for the request message, add the node ID of its own (non-participating node nl6), and send the participation request message to each participant via the communication unit 20 and the network 8. Re-send to node nn (participating node nn corresponding to the device information acquired in step S61 above) (step S634).
  • the non-participating node nl6 does not receive a reply message within a predetermined time after sending the participation request message, the information (TTL value) indicating the reachable range of the participation request message is changed and set (
  • TTL value is changed and set to be wider than the reachable range based on the previously set TTL value), and the changed TTL value is set (added) in the participation request message.
  • the request message will be sent again to each participating node nn.
  • the reachability range of the participation request message can be gradually increased (the TTL value is increased little by little), and the participation request message can be retransmitted.
  • the routing table of the participating node nn can be acquired.
  • the non-participating caro node nl6 does not increase the TTL value, and the participation request message is the same again. You may comprise so that it may transmit with respect to each participating node nn.
  • control unit 11 starts a reply message that is activated after a predetermined time (for example, after 1 to 10 seconds).
  • a predetermined time for example, after 1 to 10 seconds.
  • Set the sage reception timer start counting (start counting) (step S635). If the reply message reception timer is not canceled (reset) as in step S63, the process shown in FIG. 9 (A) is started.
  • the non-participating node nm force setting the TTL value as information representing the reachable range of the participation request message is set low, and the set TTL value is joined. It was added to the request message and sent to a plurality of participating nodes nn notified from the management server SA, and the above participation request message could be received (that is, closer to the network (for example, HOP ))) Since the routing table that should be used based on the routing table included in the reply message sent from the participating node nn is generated and joined to the overlay network 9, the network It is possible to build an overlay network 9 that takes into account the locality (regionality) above the 8 and extra load on the network 8 Can be reduced (first effect).
  • the non-participating node nl6 has a plurality of routing tables at the same level among the routing tables included in the reply messages from the plurality of participating nodes nn. Based on the routing table received on a first-come-first-served basis, the routing table to be used by itself is generated, so the routing table of the participating node nn located at a place where the network load is less than its own strength. Is registered with priority, the routing table also takes locality into consideration, and it is possible to construct an overlay network 9 that takes into account the locality on the network 8 even more. It becomes possible (second effect).
  • the non-participating node nl6 transmits a participation request message and does not receive a response message within a predetermined time, information indicating the reachable range of the participation request message (TTL value) ) Is changed (in this case, the TTL value is changed and set to be wider than the reachable range based on the previously set TTL value), and the changed TTL value is set in the reference request message (addition) Then, the same transmission is made to each participating node nn again, so that the routing table of the optimal participating node nn is obtained reliably. It is possible to construct an overlay network 9 that takes into account the locality on the network 8 (third effect).
  • the management server SA manages only the participating node list in which the device information of all the participating nodes nn is described, and selects a plurality of participating nodes nn and notifies them to the non-participating node nl 6. Therefore, it is not necessary for the management sano SA to recognize the joining node nn that is close to the non-participating node nm in the network, so the management cost of the management server SA can be reduced (fourth effect).
  • the second embodiment is an example in which the management server that manages the device information for all the participating nodes nn is not connected to the network 8.
  • the main routine of the node (common to the participating node nn and the non-participating node nm) is as shown in FIG. 7 (A) and is the same as the first embodiment.
  • FIG. 13 (A) is a flowchart showing details of the participation process in step S1 shown in FIG. 7 (A) in the second embodiment.
  • FIG. 13 (B) is a flowchart showing a participation request message in the second embodiment.
  • 13C is a flowchart showing the processing of the participating node nn when receiving a message (processing for each message in step S6).
  • FIG. 13C is a non-participation when receiving a reply message in the second embodiment. It is a flowchart which shows the process of node nm (process for every message in step S6).
  • FIGS. 13A to 13C the same processes in FIGS. 8A to 8E are denoted by the same reference numerals.
  • control unit 11 of the non-participating node nm first performs initialization, sets the registration flag to “false”, and sets “ttl For example, “(variable)” is set to “2”, for example (step S21).
  • the control unit 11 acquires device information (including IP addresses and the like) of the plurality of dedicated participating nodes nn (Step S22).
  • the dedicated participation node nn is, for example, a reliable participation node nn that is always powered on and participates in the overlay network 9, and the device information of the dedicated dedicated participation nodes nn is, for example, In the non-participating node nm beforehand (For example, set at the time of product shipment).
  • the control unit 11 sets the TTL value to the above “ttl (eg, 2)", sets (adds) the TTL value to the participation request message, and sets itself (not participating node nl6).
  • ttl eg, 2
  • the IP address of each dedicated participating node nn specified by each device information obtained above using the IP address of the participation request message (for example, self (non-participating node nl 6) as the source address)
  • a participation request packet with the address as the destination address is transmitted to each dedicated participating node nn via the communication unit 20 and the network 8 (step S23).
  • control unit 11 of the non-participating node nl6 sets (starts counting) a reply message reception timer that is activated after a predetermined time (for example, after 1 to 10 seconds). S 24).
  • the dedicated participating node nn that was able to receive the participation request message without the TTL value becoming “0” in the middle of the route is transmitted from the non-participating node nm.
  • the processing shown in Fig. 13 (B) is started. Note that the process illustrated in FIG. 13B is the same as the process illustrated in FIG. 8D, and thus redundant description is omitted.
  • step S71 shown in FIG. 13C is the same as the process shown in FIG. 9A and is the same as that in the first embodiment, and therefore, duplicate description is omitted.
  • the reply message reception timer set in step S24 is started, and the processing shown in FIG. Is started.
  • the non-participating node nm and the network can be provided without providing the management sano SA in view of achieving the first to third effects in the first embodiment. Since it is possible to select the participating node nn in the near future, it is possible to avoid the concentration (load concentration) of a large number of non-participating node nm device information request messages with respect to the management server SA. The installation cost can be reduced.
  • the third embodiment is an operation example when there is a management sano SA that manages device information to all the participating nodes nn.
  • This is an example in which the management server SA again selects device information of a predetermined number (for example, 10) of participating nodes nn from the participating node list and notifies the non-participating node nm.
  • the main routine of the management server SA is as shown in FIG. 7B and is the same as the first embodiment.
  • FIG. 14 (A) is a flowchart showing a main routine of a node (common to the participating node nn and the non-participating node nm) in the third embodiment
  • FIG. 14 (B) is a flowchart illustrating the third embodiment
  • FIG. 14A is a flowchart showing details of the participation process in step Sib shown in FIG. 14A
  • FIG. 14C is a flowchart showing the process of the non-participating node nm when the reply message reception timer is activated in the third embodiment. It is.
  • Fig. 14 (A) The processing in Fig. 14 (A) is started, for example, when the power of the non-participating node nm is turned on (power ON), and the control unit 11 first performs initialization and sets the registration flag to "false".
  • “count” (variable) is set to “0”, for example, and “ttl” (variable) is set to “2”, for example (step Sla).
  • control unit 11 performs a participation process (details will be described later) for participating in the overlay network 9 (step Sib). Note that the processing from steps S1 to S6 is the same as that in FIG.
  • Step S31 the control unit 11 of the non-participating node nm first increments “count” by 1 (1 boost!).
  • Step S32 obtain the IP address of the management Sano SA, etc. (for example, stored in the storage unit 12 at the time of product shipment)
  • Step S33 send the device information request message via the communication unit 20 and the network 8 Send to the management Sano SA
  • the management server SA when the management server SA receives the device information request message transmitted from the non-participating node nl6, the management server SA starts the process shown in FIG.
  • the device information of a predetermined number (for example, 10) of participating nodes nn is selected randomly or with the above-described weighting random, and the device information of the selected participating nodes nn is selected as the non-participating node nm. Will be sent. Thereafter, in Example 3, as in Example 1, the processes of FIGS. 8C to 8F and FIG. 9A are performed.
  • control unit 11 of the non-participating node nm determines whether the registration flag is “false” or not.
  • Step S637 If the registration flag is not "false” (Step S637: N), the participation registration has already been completed, and the process is terminated.
  • step S637: Y when the registration flag is “false” (step S637: Y), the control unit 11 determines whether or not the above “count” is smaller than a threshold (for example, 5) (step S637: Y). If it is smaller (step S638: N), the process is terminated.
  • a threshold for example, 5
  • step S638: Y when the “count” is smaller than a threshold value (for example, 5) (step S638: Y), the control unit 11 performs a participation process similar to step Sib (step S639). Thus, every time a predetermined time elapses without receiving a reply message, the participation process is retried until “count” reaches the threshold value.
  • a threshold value for example, 5
  • the management server is again accessed.
  • SA power Select the device information of a predetermined number (for example, 10) of participating nodes nn from the participating node list (for example, device information different from the previously acquired device information of participating nodes nn) by weighting random etc. again. Since the non-participating node nm is notified and the participation request message is transmitted to these participating nodes nn, the routing table of the optimal participating node nn can be acquired reliably and the network 8 It is possible to construct an overlay network 9 that takes into account the above locality.
  • FIG. 15 is a flowchart showing the processing of the participating node nn (processing for each message in step S6) when the participation request message is received in the modified example, and FIG. ) Is a flowchart showing details of the routing table generation processing in step S71 shown in FIGS. 8E and 13C in the modification.
  • the processing in Fig. 15 (A) is started when the participating node n2 receives the participation request message transmitted from the non-participating node nl6.
  • the control unit 11 of the participating node n2 has its own DH T.
  • the routing table (for example, all levels) is acquired, the acquired routing table is added to the reply message as reply information, and this reply message (for example, the IP address of its own (participating node n2) is sent from A reply packet having the address and the IP address of the non-participating node nl6 as a destination address is transmitted (reply) to the non-participating node nl 6 via the communication unit 20 and the network 8 (step S65a: FIG. 11 (E )).
  • the control unit 11 of the participating node n2 refers to the DHT routing table and searches for the transfer destination based on the node ID of the non-participating node nl6 added to the received participation request message. (Step S66a), it is determined whether the transfer destination has a certain force (Step S67a). For example, if it has the node ID added to the participation request message and the closest node ID, the table closest to the node ID added to the participation request message in the routing table. When the entry is searched, it is determined that the forwarding destination points to itself (that is, the node ID is added to the participation request message) (step S67a: N) Return to the process shown in Fig. 7 (A).
  • step S67a Y
  • step S68a the IP address of the other participant node nn is found in the searched table entry, and the forwarding destination is It is determined that there is (step S67a: Y), and the process proceeds to step S68a.
  • step S68a the control unit 11 of the participating node n2 obtains the IP address corresponding to the node ID closest to the node ID added to the participation request message as well as the DHT routing table, and the above node ID is added.
  • the IP address of the non-participating node nl 6 is attached to the participation request message, and the participation request message (the IP address of the self (participating node n2) is sent as the source address and the IP address obtained from the routing table.
  • Destination ad Send participation request packet to the participating node n6 corresponding to the IP address obtained from the routing table via the communication unit 20 and the network 8 (FIG. 11 (D)).
  • control unit 11 of the non-participating node nl6 first performs initialization processing and sets the variable “i” indicating the level to 1. (Step S721).
  • control unit 11 determines whether or not "i" is smaller than the total number of levels in the routing table (3 in the example of Fig. 3) (step S722).
  • S722: Y that is, if the routing tables for all levels have not been registered yet, the process proceeds to step S723, and if "i" is not small (step S722: N), that is, all levels If the routing table is registered, the process returns to the process shown in Fig. 8 (E).
  • step S723 the control unit 11 obtains the TTL value up to the participating node nn that is the transmission source of the reply message (this TTL value is returned when the TTL value of the participation request message is output. Force, power can be acquired).
  • control unit 11 determines whether or not the routing table of level i (for example, level 1) has already been registered (step S724). If it has not been registered (step S724: N), step S725 If it has already been registered (step S724: Y), the process proceeds to step S726.
  • level i for example, level 1
  • step S725 the control unit 11 registers the level i routing table in the participating node nn that is the transmission source of the reply message in its own routing table, and proceeds to step S728.
  • step S726 the control unit 11 determines the TTL value up to the participating node nn that transmitted the registered routing table.
  • the TTL value up to the participating node nn that sent the registered routing table is smaller than the TTL value obtained in step S723 above (step S726: Y).
  • the registered level i routing table is overwritten and updated with the level i routing table attached to the reply message received (step S727), and the process proceeds to step S728. That is, the control unit 11 of the non-participating node nl6, when there are a plurality of routing tables at the same level in each routing table included in the reply message from each participating node nn,
  • the routing table to be used is generated based on the routing table at the participating node nn that has the narrowest reachable range of the participation request message and can be received with the setting (smaller TTL value, setting). Will do.
  • the routing table is also considered to have locality (locality) power S. .
  • step S728 the process proceeds to step S728.
  • step S728 the variable “i” indicating the level is incremented by 1, and the process returns to step S722.
  • the processes in steps S722 to S728 are repeated until the routing tables at all levels are registered.
  • the reachable range of the participation request message is the narrowest, and based on the routing table in the participating node nn that can be received with the setting (smaller TTL value, setting) Since the routing table that should be used is generated, the routing table of the participating node nn closer to the network (for example, the number of HOPs) is preferentially registered, and the routing table is also localized. It is possible to construct an overlay network 9 in which locality (regionality) on the network 8 is further considered.
  • the TTL value change setting in the first embodiment may be combined with the reselection of the participating node nn in the third embodiment. For example, if the setting of changing the TTL value by not receiving a reply message is repeated a certain number of times, for example, until the TTL value becomes “10”, the TTL value is decreased (for example, set to 2), and the above step Sib Call the join process, and repeat until “count” reaches the threshold in the join process. Configure as follows. Conversely, the participation process in step Sib above is repeated with the TTL value fixed, and if this still fails to receive a reply message, the TTL value is increased until the upper limit (255) is reached. With this configuration, it is possible to acquire the routing table of the optimum participating node nn more reliably and reliably.
  • the TTL is taken as an example of the information representing the reachable range, but is not limited thereto, and other information may be applied. .
  • the present invention is not limited to the above embodiment.
  • the above embodiment is merely an example, and the present invention has the same configuration as the technical idea described in the claims of the present invention, and any device that exhibits the same function and effect is the present invention. It is included in the technical scope of the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 ローカリティ(地域性)が考慮されたオーバーレイネットワークを構築することが可能で、実際のネットワークへの余分な負荷を軽減することが可能なノード装置、コンピュータプログラム、情報配信システム、及びネットワーク参加方法を提供する。  本発明は、通信ネットワークを介して互いに接続された複数のノード装置のうちの全部又は一部の前記ノード装置の参加により形成されているオーバーレイネットワークに参加するノード装置は、参加要求情報を送信すべき複数のノード装置の装置情報を取得し、前記通信ネットワーク上を伝送される前記参加要求情報の到達可能範囲を表す情報を設定し、設定した到達可能範囲を表す情報を前記参加要求情報に付加し、当該参加要求情報を、取得した各前記装置情報により特定される各前記ノード装置に対して送信する。そして、上記ノード装置は、上記参加要求情報を受信したノード装置から送信された返信情報であって、前記オーバーレイネットワーク上における情報の転送先を規定する転送先テーブルを含む返信情報を受信し、受信した返信情報に含まれる転送先テーブルに基づいて、自己が使用するべき前記転送先テーブルを生成する。

Description

明 細 書
ノード装置、コンピュータプログラムを記憶した記憶媒体、情報配信システ ム、及びネットワーク参加方法
技術分野
[0001] 本発明は、通信ネットワークを介して互いに接続された複数のノード装置を備えた ピアツーピア (Peer to Peer (P2P) )型の情報配信システム及び方法等に関し、特に、 上記複数のノード装置のうちの全部又は一部のノード装置の参カ卩により形成されて いるオーバーレイネットワークに未参カ卩のノード装置が参加するための技術分野に関 する。
背景技術
[0002] ピアツーピア型の情報配信システムにお 、て、例えば、分散ハッシュテーブル (以 下、 DHT (Distributed Hash Table)という)を利用して論理的に構築されたオーバー レイネットワークでは、各ノード装置が、当該オーバーレイネットワークに参カ卩している 全てのノード装置へのリンク情報 (例えば、 IPアドレス)を認識しているわけではなぐ 参加の際などに得られる一部のノード装置へのリンク情報だけを保持しており、力か るリンク情報に基づき、データの問い合わせ等を行うようになっている。
[0003] このようなオーバーレイネットワークにおいては、ノード装置の参加及び脱退 (離脱) が頻繁に行われても、負荷分散が適切に行われる必要があり、非特許文献 1には、 オーバーレイネットワークにおいて、参加及び脱退 (離脱)が頻繁に行われる場合で あっても、適切に負荷分散を行うための技術が開示されている。
非特許文献 1 :「分散ハッシュテーブルの軽量な負荷分散手法の検討」 社団法人 電子情報通信学会 信学技報
発明の開示
発明が解決しょうとする課題
[0004] し力しながら、上記従来の技術にお!、ては、各ノード装置のリンク情報は、ローカリ ティ (地域性)、言い換えれば、実際のネットワーク(実ネットワーク)上の近さが考慮さ れていないため、実際のネットワークに対して余分な負荷を与えることが考えられる。 [0005] 本発明は、以上の問題等に鑑みてなされたものであり、ローカリティ(地域性)が考 慮されたオーバーレイネットワークを構築することが可能で、実際のネットワークへの 余分な負荷を軽減することが可能なノード装置、コンピュータプログラムを記憶した記 憶媒体、情報配信システム、及びネットワーク参加方法を提供することを課題とする。 課題を解決するための手段
[0006] 上記課題を解決するために、本発明の一つの観点では、通信ネットワークを介して 互いに接続された複数のノード装置のうちの全部又は一部の前記ノード装置の参カロ により形成されているオーバーレイネットワークに参加するノード装置であって、前記 オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべき複数のノ ード装置の装置情報を取得する装置情報取得手段と、前記通信ネットワーク上を伝 送される前記参加要求情報の到達可能範囲を表す情報を設定する到達可能範囲 設定手段と、前記設定された到達可能範囲を表す情報を前記参加要求情報に付加 し、当該参加要求情報を、前記取得された各前記装置情報により特定される各前記 ノード装置に対して送信する参加要求情報送信手段と、前記参加要求情報を受信し たノード装置力 送信された返信情報であって、前記オーバーレイネットワーク上に おける情報の転送先を規定する転送先テーブルを含む返信情報を受信する返信情 報受信手段と、前記受信された返信情報に含まれる転送先テーブルに基づいて、自 己が使用するべき前記転送先テーブルを生成する転送先テーブル生成手段と、を 備えることを特徴とする。
[0007] この発明によれば、オーバーレイネットワークにこれ力 参加するノード装置は、上 記参加要求情報の到達可能範囲を表す情報を設定し、当該設定した情報を参加要 求情報に付加して、複数のノード装置に対して送信し、上記参加要求情報を受信す ることができたノード装置力 送信されてきた返信情報に含まれる転送先テーブルに 基づいて自己が使用するべき転送先テーブルを生成して、オーバーレイネットワーク に参加するようにしたので、通信ネットワーク上のローカリティ(地域性)が考慮された オーバーレイネットワークを構築することが可能となり、通信ネットワークへの余分な負 荷を軽減することができる。
[0008] また、前記参加要求情報を送信してから所定時間以内に前記返信情報を受信しな い場合には、前記参加要求情報送信手段は、当該参加要求情報を、再度、前記各 ノード装置に対して送信することを特徴とする。
[0009] この発明によれば、確実に、かつ、最適なノード装置の転送先テーブルを取得する ことができ、通信ネットワーク上のローカリティ (地域性)が考慮されたオーバーレイネ ットワークを構築することが可能となる。
[0010] また、前記参加要求情報を送信してから所定時間以内に前記返信情報を受信しな い場合には、前記到達可能範囲設定手段は、前記参加要求情報の到達可能範囲 を表す情報を変更設定し、前記参加要求情報送信手段は、前記変更設定された到 達可能範囲を表す情報を前記参加要求情報に付加し、当該参加要求情報を、再度 、前記各ノード装置に対して送信することを特徴とする。
[0011] この発明によれば、オーバーレイネットワークにこれ力 参加するノード装置は、参 加要求情報を送信して力 所定時間以内に返信情報を受信しない場合には、当該 参加要求情報の到達可能範囲を表す情報を変更設定し、当該変更設定された情報 を参加要求情報に付加して、再度、各ノード装置に対して送信するようにしたので、 確実に、かつ、最適なノード装置の転送先テーブルを取得することができ、通信ネッ トワーク上のローカリティ (地域性)が考慮されたオーバーレイネットワークを構築する ことが可能となる。
[0012] また、前記到達可能範囲設定手段は、前回設定した前記到達可能範囲よりも広く なるように前記到達可能範囲を表す情報を変更設定することを特徴とする。
[0013] この発明によれば、上記参加要求情報を送信してから所定時間以内に前記返信情 報を受信しない場合には、前回設定した前記到達可能範囲よりも広くなるように前記 到達可能範囲を広げていけるので、確実に、かつ、最適なノード装置の転送先テー ブルを取得することができ、通信ネットワーク上のローカリティ(地域性)が考慮された オーバーレイネットワークを構築することが可能となる。
[0014] また、前記参加要求情報を送信してから所定時間以内に前記返信情報を受信しな い場合には、前記装置情報取得手段は、前回取得した前記ノード装置の装置情報と は異なる装置情報を複数取得し、前記参加要求情報送信手段は、前記参加要求情 報を当該取得された各前記装置情報により特定される各前記ノード装置に対して送 信することを特徴とする。
[0015] この発明によれば、返信情報が届かないときに、前回取得したノード装置の装置情 報とは異なる装置情報を取得してこれらのノード装置に参加要求情報を送信するよう にしたので、確実に、かつ、最適なノード装置の転送先テーブルを取得することがで き、通信ネットワーク上のローカリティ(地域性)が考慮されたオーバーレイネットワーク を構築することが可能となる。
[0016] また、前記転送先テーブルは、複数のレベルに区分されており、前記返信情報受 信手段が、複数の前記ノード装置から前記返信情報を受信した場合に、前記転送先 テーブル生成手段は、夫々の前記返信情報に含まれる夫々の転送先テーブルのう ち、同一レベルの転送先テーブルが複数あるとき、当該同一レベルの前記複数の転 送先テーブルのうち、前記参加要求情報の到達可能範囲が最も狭!、設定で受信可 能な 1の前記ノード装置における前記転送先テーブルに基づいて、前記自己が使用 するべき転送先テーブルを生成することを特徴とする。
[0017] この発明によれば、オーバーレイネットワークにこれ力 参加するノード装置は、複 数のノード装置からの返信情報に含まれる夫々の転送先テーブルのうち、同一レべ ルの転送先テーブルが複数あるとき、当該同一レベルの複数の転送先テーブルのう ち、参加要求情報の到達可能範囲が最も狭い設定で受信可能なノード装置におけ る転送先テーブルに基づいて、自己が使用するべき転送先テーブルが生成するよう にしたので、よりネットワーク的に近い(例えば、 HOP数が少ない)ノード装置の転送 先テーブルが優先して登録されることになり、転送先テーブルもローカリティ (地域性 )が考慮され、より一層、通信ネットワーク上のローカリティ (地域性)が考慮されたォ 一バーレイネットワークを構築することが可能となる。
[0018] また、前記参加要求情報送信手段は、自己に固有の識別情報を前記参加要求情 報に付加して当該参加要求情報を送信し、前記参加要求情報は、当該参加要求情 報を受信した前記ノード装置から、前記固有の識別情報の管理元であるノード装置 に至るまで前記固有の識別情報に従って転送され、前記返信情報受信手段は、前 記参加要求情報を転送する夫々のノード装置から送信された前記返信情報を受信 し、前記転送先テーブル生成手段は、夫々の前記返信情報に含まれる転送先テー ブルに基づいて、前記自己が使用するべき転送先テーブルを生成することを特徴と する。
[0019] この発明によれば、参加要求情報は、複数のノード装置に転送されるので、より多く のノード装置の転送先テーブルを取得することができる。
[0020] 本発明の他の観点では、コンピュータを、前記ノード装置として機能させることを特 徴とする。
[0021] 本発明の更に他の観点では、通信ネットワークを介して互いに接続された複数のノ ード装置を備えた情報配信システムであって、当該複数のノード装置のうちの全部又 は一部の前記ノード装置の参カ卩により形成されているオーバーレイネットワークを有 する情報配信システムにお 、て、前記オーバーレイネットワークに参加するノード装 置は、前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すベ き複数のノード装置の装置情報を取得する装置情報取得手段と、前記通信ネットヮ 一ク上を伝送される前記参加要求情報の到達可能範囲を表す情報を設定する到達 可能範囲設定手段と、前記設定された到達可能範囲を表す情報を前記参加要求情 報に付加し、当該参加要求情報を前記取得された各前記装置情報により特定される 各前記ノード装置に対して送信する参加要求情報送信手段と、を備え、前記参加要 求情報を受信したノード装置は、前記オーバーレイネットワーク上における情報の転 送先を規定する転送先テーブルを含む返信情報を、前記参加要求情報の送信元で ある前記ノード装置に対して送信する返信情報送信手段を備え、前記オーバーレイ ネットワークに参加するノード装置は、前記転送先テーブルを含む返信情報を受信 する返信情報受信手段と、前記受信された返信情報に含まれる転送先テーブルに 基づいて、自己が使用するべき前記転送先テーブルを生成する転送先テーブル生 成手段と、を更に備えることを特徴とする。
[0022] 本発明の更に他の観点では、通信ネットワークを介して互いに接続された複数のノ ード装置のうちの全部又は一部の前記ノード装置の参カ卩により形成されているォー バーレイネットワークへのネットワーク参加方法であって、前記オーバーレイネットヮー クに参加するノード装置は、前記オーバーレイネットワークへの参加要求を示す参加 要求情報を送信すべき複数のノード装置の装置情報を取得する工程と、前記通信ネ ットワーク上を伝送される前記参加要求情報の到達可能範囲を表す情報を設定する 工程と、前記設定された到達可能範囲を表す情報を前記参加要求情報に付加し、 当該参加要求情報を前記取得された各前記装置情報により特定される各前記ノード 装置に対して送信する工程と、を備え、前記参加要求情報を受信したノード装置は、 前記オーバーレイネットワーク上における情報の転送先を規定する転送先テーブル を含む返信情報を、前記参加要求情報の送信元である前記ノード装置に対して送 信する工程を備え、前記オーバーレイネットワークに参加するノード装置は、前記転 送先テーブルを含む返信情報を受信する工程と、前記受信された返信情報に含ま れる転送先テーブルに基づいて、自己が使用するべき前記転送先テーブルを生成 する工程と、を更に備えることを特徴とする。
発明の効果
[0023] 本発明によれば、オーバーレイネットワークにこれから参加するノード装置は、上記 参加要求情報の到達可能範囲を表す情報を設定し、当該設定した情報を参加要求 情報に付加して、複数のノード装置に対して送信し、上記参加要求情報を受信する ことができたノード装置力 送信されてきた返信情報に含まれる転送先テーブルに基 づいて自己が使用するべき転送先テーブルを生成して、オーバーレイネットワークに 参加するようにしたので、通信ネットワーク上のローカリティ (地域性)が考慮されたォ 一バーレイネットワークを構築することが可能となり、通信ネットワークへの余分な負 荷を軽減することができる。
図面の簡単な説明
[0024] [図 1]本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の 一例を示す図である。
[図 2]DHTのノード ID空間において、参加ノード nlから送出されたクエリがルートノ ード nlOまで転送される様子の一例を示す図である。
[図 3]参加ノード nlが保持する DHTのルーティングテーブルの一例を示す図である [図 4]DHTのノード ID空間の一例を示す概念図である。
[図 5]DHTのルーティングテーブルが生成されるまでの流れの一例を示す概念図で ある。
[図 6]参加ノード nn及び未参加ノード nmの概要構成例を示す図である。
[図 7] (A)は、ノード(参加ノード nnと未参加ノード nmとで共通)のメインルーチンを示 すフローチャートであり、(B)は、管理サーバ SAのメインルーチンを示すフローチヤ ートである。
[図 8] (A)は、実施例 1において、図 7 (A)に示すステップ S1における参加処理の詳 細を示すフローチャートであり、(B)は、実施例 1において、装置情報要求メッセージ を受信した場合における管理サーノ SAの処理を示すフローチャートであり、 (C)は、 実施例 1にお ヽて、装置情報メッセージを受信した場合における未参加ノード nmの 処理を示すフローチャートであり、(D)は、実施例 1において、参加要求メッセージを 受信した場合における参加ノード nnの処理を示すフローチャートであり、(E)は、実 施例 1にお 、て、返信メッセージを受信した場合における未参加ノード nmの処理を 示すフローチャートであり、(F)は、実施例 1において、登録メッセージを受信した場 合における管理サーバ SAの処理を示すフローチャートである。
[図 9] (A)は、図 8 (E)に示すステップ S71におけるルーティングテーブルの生成処理 の詳細を示すフローチャートであり、(B)は、返信メッセージ受信タイマーが起動した 場合における未参加ノード nmの処理を示すフローチャートである。
[図 10]実施例 1において、未参加ノード 16がオーバーレイネットワーク 9に新たに参 加する場合の様子の一例を示す概念図である。
[図 11]実施例 1において、未参加ノード 16がオーバーレイネットワーク 9に新たに参 加する場合の様子の一例を示す概念図である。
[図 12]実施例 1において、未参加ノード 16がオーバーレイネットワーク 9に新たに参 加する場合の様子の一例を示す概念図である。
[図 13] (A)は、実施例 2において、図 7 (A)に示すステップ S1における参加処理の詳 細を示すフローチャートであり、(B)は、実施例 2において、参加要求メッセージを受 信した場合における参加ノード nnの処理を示すフローチャートであり、(C)は、実施 例 2にお 、て、返信メッセージを受信した場合における未参加ノード nmの処理を示 すフローチャートである。 [0141 (A)は、実施例 3において、ノード (参加ノード nnと未参加ノード nmとで共通) のメインルーチンを示すフローチャートであり、(B)は、実施例 3において、 14 (A)に 示すステップ Sibにおける参加処理の詳細を示すフローチャートであり、(C)は、実 施例 3にお 、て、返信メッセージ受信タイマーが起動した場合における未参加ノード nmの処理を示すフローチャートである。
[図 15] (A)は、変形例において、参加要求メッセージを受信した場合における参加ノ ード nnの処理 (ステップ S6におけるメッセージ毎の処理)を示すフローチャートであり 、(B)は、変形例において、図 8 (E)及び図 13 (C)に示すステップ S71におけるルー ティングテーブルの生成処理の詳細を示すフローチャートである。
符号の説明
1 ノード装置
8 ネットワーク
11 制御部
12 L |S B'|5
13 ノ ッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 ノ ス
SA 管理サーバ
S コンテンツ酉 S信システム
発明を実施するための最良の形態
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明す る実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形 態である。
[0027] [1.コンテンツ配信システムの構成等]
始めに、図 1を参照して、コンテンツ配信システムの概要構成等について説明する
[0028] 図 1は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態 様の一例を示す図である。
[0029] 図 1の下部枠 101内に示すように、 IX (Internet eXchange) 3、 ISP (Internet Service
Provider) 4a,4b、 DSL (Digital Subscriber Line)回線事業者(の装置) 5a,5b、 FTT H (Fiber To The Home)回線事業者 (の装置) 6、及び通信回線 (例えば、電話回線 や光ケーブル等) 7等によって、インターネット等のネットワーク(現実世界の通信ネッ トワーク) 8が構築されている。なお、図 1の例におけるネットワーク(通信ネットワーク) 8には、データ (パケット)を転送するためのルータ力 適宜挿入されているが図示を 省略している。
[0030] コンテンツ配信システム Sは、このようなネットワーク 8を介して相互に接続された複 数のノード装置 nl, η2· · ·η21を備えて構成されることになり、ピアツーピア方式のネ ットワークシステムとなっている(なお、実際には、これ以上のノード装置が存在するこ とになる)。また、各ノード装置 nl〜n21には、固有の製造番号及び IP (Internet Prot ocol)アドレス(グローバル IPアドレス)が割り当てられている。なお、製造番号及び IP アドレスは、複数のノード装置間で重複しな 、ものである。
[0031] そして、このコンテンツ配信システム Sにお!/、ては、特定のアルゴリズム、例えば、 D HTを利用したアルゴリズムによって、図 1の上部枠 100内に示すような、オーバーレ ィネットワーク 9が構築されることになる。つまり、このオーバーレイネットワーク 9は、既 存のネットワーク 8を用いて形成された仮想的なリンクを構成するネットワーク (論理的 なネットワーク)を意味する。
[0032] 本実施形態においては、 DHTを利用したアルゴリズムによって構築されたオーバ 一レイネットワーク 9を前提としており、このオーバーレイネットワーク 9 (図 1の上部枠 1 00内)に配置されたノード装置 nl〜nl5を、オーバーレイネットワーク 9に参加してい るノード装置(以下、このようなノード装置 nl〜nl5を「参加ノード nn」と総称する)と いう。言い換えれば、オーバーレイネットワーク 9は、参加ノード nnの参加により形成 されている。このようなオーバーレイネットワーク 9への参加は、参加していないノード 装置 nl6〜n21 (以下、「未参加ノード nm」と総称する)力 任意の参加ノード nnに対 して参加要求を示す参加要求情報を送信することによって行われる。
[0033] また、各参加ノード nnは、 自己に固有の識別情報としてのノード IDを有しており、 当該ノード IDは、例えば、 IPアドレスあるいは製造番号を共通のハッシュ関数 (例え ば、 SHA— 1等)によりハッシュ化した値(例えば、 bit長が 160bit)であり、一つの ID 空間に偏りなく分散して配置されることになる。
[0034] なお、本実施形態では、 IPアドレスを共通のハッシュ関数によりハッシュ化した値を ノード IDとする。また、図 1の例に示すコンテンツ配信システム Sには、全ての参加ノ ード nnの装置情報 (例えば、ノード 、 IPアドレス、ポート番号等)を管理する管理サ ーノ SAが存在している力 このような管理サーノ SAが存在せずとも、オーバーレイ ネットワーク 9の形成は可能である。
[0035] このように共通のハッシュ関数により求められた (ノヽッシュ化された)ノード IDは、当 該 IPアドレスある 、は製造番号が異なれば、同じ値になる確率が極めて低 、もので ある。なお、ノ、ッシュ関数については公知であるので詳しい説明を省略する。
[0036] また、各参カロノード nnは、夫々、 DHTを保持して!/、る。この DHTは、オーバーレイ ネットワーク上における情報の転送先を規定しており、具体的には、ノード: [D空間内 で適度に離れた参加ノード nnのノード IDとその IPアドレス等の組が複数登録された ルーティングテーブル (転送先テーブル)が含まれて 、る。
[0037] このような DHTは、未参加ノード nmがオーバーレイネットワーク 9に参加する際に 与免られること〖こなる。
[0038] また、コンテンツ配信システム Sにおいては、未参加ノード nmによるオーバーレイネ ットワーク 9への参カ卩、若しくは参加ノード nnによるオーバーレイネットワーク 9からの 脱退が頻繁に行われるため、定期的に (例えば数十分から数時間間隔で) DHTの 更新が必要力どうかが確認されると共に、その更新情報が DHTのルーティングテー ブルに従って他の参加ノード nnに伝達されるようになっている。これにより、 DHTを 最新の状態に保つことが可能となる。 [0039] 更に、オーバーレイネットワーク 9においては、様々なコンテンツ (例えば、映画や音 楽等)データが複数の参加ノード nnに分散して保存 (格納)されている。例えば、参 カロノード nlには、タイトルが XXXの映画のコンテンツデータが保存されており、一方 、参カロノード n2には、タイトルが YYYの映画のコンテンツデータが保存されるというよ うに、互いに異なるコンテンツデータ力 複数の参加ノード nnに分散されて保存され る。
[0040] また、あるコンテンツデータは、 1つの参加ノード nnに保存されているとは限らず、 複数の参加ノード nnに同じコンテンツデータが保存されうる。これらのコンテンツデー タには、夫々、コンテンツ名(タイトル)等が付与されている。
[0041] そして、このように分散保存されて!ヽるコンテンツデータの所在を示す所在情報 (例 えば、コンテンツデータが保存されている参加ノード nnの IPアドレス等)もまた、複数 の参加ノード nnに分散して保存されている。例えば、あるコンテンツデータのコンテン ッ名(或いは、当該コンテンツデータの先頭数バイトでも良い)が、上記ノード IDを得 るときと共通のハッシュ関数によりハッシュ化され(つまり、参加ノード nnの IPアドレス のハッシュ値と同一の ID空間に配置)、そのハッシュ値(当該ハッシュ値がコンテンツ IDとなる)と最も近い(例えば、上位桁がより多く一致する)ノード IDを有する参加ノー ド nn (当該ハッシュ値の管理元となる)に、当該コンテンツデータの所在情報が保存 されることになる。つまり、同一のコンテンツデータ(コンテンツ IDが同一)力 夫々、 複数の参加ノード nnに保存されて 、る場合であっても、力かるコンテンツデータの所 在を示す所在情報(複数の参加ノード nnの IPアドレス等)は、 1つの参加ノード nnで 管理することができる(このようにコンテンツデータの所在を管理する参加ノードを、以 下、「ルートノード」という)。なお、本実施形態においては、 1のルートノードでは、 1の コンテンツ IDに対応するコンテンツデータの所在情報が保存される(つまり、ルートノ ードと上記所在情報とは 1対 1の関係にある)力 これに限定されるものではない)。
[0042] これにより、あるコンテンツデータを取得 (ダウンロード)したいユーザが使用する例 えば参加ノード n4は、当該コンテンツデータのコンテンツ IDが付加されたクエリ(問 合せ情報)を他の参加ノード nnに対して送出することにより、当該コンテンツ IDが付 カロされたクエリは、いくつかの参加ノード nnを経由されて(各中継ノードにおいて、上 記 DHTのルーティングテーブルが参照されてコンテンツ IDが転送される)そのコンテ ンッデータの所在を示す所在情報を保存しているルートノード nlOに迪り着き、当該 ルートノード nlOから当該所在情報を取得 (受信)することが可能となり、取得した所 在情報に基づ 、て上記コンテンツデータを保存して 、る例えば参加ノード n5に接続 し、そこから当該コンテンツデータを取得 (受信)することが可能になる。
[0043] なお、コンテンツ IDがルートノード nlOに迪り着くまでの間に当該ルートノード nlOと 同じ所在情報をキャッシュして 、る参加ノード nnから当該所在情報を取得 (受信)さ れるようにしてもよい。
[0044] 図 2は、 DHTのノード ID空間において、参加ノード n4力も送出されたクエリがルー トノード nlOまで転送される様子の一例を示す図である。図 2の例において、各中継 ノードは、受信したクエリに付カ卩されたコンテンツ IDと、 DHTのルーティングテーブル に登録されて 、るノード IDとを比較して、次に転送すべき参加ノード nnを特定 (例え ば、コンテンツ IDの上位数桁が一致するノード IDに対応する参加ノード nnの IPアド レスを特定)し、そこにクエリを転送することになる。
[0045] ここで、上記 DHTのルーティングテーブルの一般的な考え方の一例について以下 に説明する。
[0046] 図 3は、参加ノード nlが保持する DHTのルーティングテーブルの一例を示す図で あり、図 4は、 DHTのノード ID空間の一例を示す概念図である。なお、図 3及び図 4 の例においては、説明の便宜上、ノード IDの bit長を 2bit X 3桁 =6bitとし、各桁を 4 進数 (0〜3の整数)で表している(実際には、もっと長い bit長を用い、各桁も例えば 4 bitに区切って 0〜fの 16進数で表現する)。
[0047] 図 3の例において、 DHTのルーティングテーブルは、レベル 1〜レベル 3のテープ ルカらなり(複数のレベルに区分されており)、各レベルのテーブルエントリーには、 エリア毎に、ノード IDとこれに対応する参加ノード nnの IPアドレスが対応付けられて 登録されている。各レベルのテーブルにおける各エリアは、 DHTのノード ID空間を 分割することにより得られるエリアである。例えば、図 4に示すように、レベル 1では、 D HTのノード ID空間全体力 分割され、 "000"〜"033"のノード IDが存在するエリア を OXXのエリア、 "100"〜"133"のノード IDが存在するエリアを 1XXのエリア、 "20 0,,〜"233,,のノード IDが存在するエリアを 2XXのエリア、 "300"〜"333"のノード I Dが存在するエリアを 3XXのエリアとする。また、レベル 2では、レベル 1のエリア(つ まり、 OXX〜3XXのエリア)が更に 4分割、例えば 1XXのエリア力 分割され、 "100" 〜"103"のノード IDが存在するエリアを 10Xのエリア、 "110"〜"113"のノード ID が存在するエリアを 1 IXのエリア、 "120"〜"123"のノード IDが存在するエリアを 12 Xのエリア、 "130"〜"133"のノード IDが存在するエリアを 13Xのエリアとする。
[0048] そして、例えば、参加ノード nlのノード IDが" 123"とすると、図 3に示すように、かか る参加ノード nlのレベル 1における 1XXのエリア(自己が存在するエリア)のテーブル エントリーには、自己のノード ID及び IPアドレス(IPアドレスは自分のものであるので 、当該ルーティングテーブルに登録しなくても良い)が登録され、自己が存在しない エリア(つまり、 OXXのエリア、 2XXのエリア、及び 3XXのエリア)には、夫々、他の任 意の参加ノード nnのノード ID及び IPアドレスが登録されている。
[0049] また、力かる参加ノード nlのレベル 2における 12Xのエリア(自己が存在するエリア) のテーブルエントリーには、図 3に示すように、自己のノード ID及び IPアドレス(IPアド レスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)が登 録され、 自己が存在しないエリア(つまり、 10Xのエリア、 11Xのエリア、及び 13Xの エリア)には、夫々、他の任意の参加ノード nnのノード ID及び IPアドレスが登録され ている。
[0050] 更に、力かる参加ノード nlのレベル 3には、図 3に示すように、 12Xのエリアに存在 する全ての参加ノード nnのノード ID及び IPアドレスが登録される。
[0051] なお、図 3及び図 4の例では、ノード IDの bit長を 3桁 X 2bitとしたので、レベル 1〜 3の 3レベル分のテーブルで網羅できる力 ノード IDの bit長が増せば、その分のテ 一ブルが必要となる(例えば、ノード IDの bit長を 16桁 X 4bitとした場合、 16レベル 分のテーブルが必要となる)。
[0052] このように、本実施形態における DHTのルーティングテーブルでは、レベルが上が るほど、エリアが狭まっていくようになっており、このように構成されたルーティングテ 一ブルにより、例えば参加ノード nlから送出されたクエリがルートノードまで効率良く 転送されること〖こなる。 [0053] そして、このような DHTのルーティングテーブルは、未参加ノード nm力 オーバー レイネットワーク 9に参加するために、任意の参加ノード nnに対して、自己のノード ID を付加した参加要求情報を送信することによって生成されることになる。
[0054] このような DHTのルーティングテーブルが生成されるまでの流れにつ!、て以下に 説明する。
[0055] 図 5は、 DHTのルーティングテーブルが生成されるまでの流れの一例を示す概念 図である。
[0056] 例えば、図 5に示すように、未参カロノード nl6は、自己の IPアドレスを上記ハッシュ 関数によりハッシュ化してノード ID (例えば、 "333"とする)を生成し、当該ノード ID及 び自己(未参加ノード nl6)の IPアドレスが付加された参加要求情報を参加ノード nl に送信する。
[0057] これに対して、参カロノード nlは、当該参加要求情報を受信し、 DHTのルーティング テーブル 51を参照して、参加要求情報に付加されたノード ID"333"と最も近いノー ド ID"301"を有する参加ノード ni lの IPアドレスを取得し、これに基づき、ノード ID" 333"及び未参加ノード nl6の IPアドレスが付加された参加要求情報を参加ノード n 11に転送する。
[0058] これに対して、参カロノード ni lは、当該参加要求情報を受信し、 DHTのルーティン グテーブル 52を参照して、参加要求情報に付加されたノード ID"333"と最も近いノ ード ID"332"を有する参加ノード n9の IPアドレスを取得し、これに基づき、ノード ID" 333"及び未参加ノード nl6の IPアドレスが付加された参加要求情報を参加ノード n9 に ¾5送する。
[0059] これに対して、参カロノード n9は、当該参加要求情報を受信し、 DHTのルーティング テーブル 53におけるレベル 3のテーブルにおけるノード ID"333"に対応付けて、未 参加ノード nl6の IPアドレスを登録する。つまり、参カロノード n9は、当該ノード ID"33 3"の管理元となる。
[0060] 以上の流れの過程において、図 5に示すように、当該参加要求情報を受信した参 カロノード nl、参加ノード nl l、及び参加ノード n9は、未参加ノード nl6に対して、 DH Tのルーティングテーブルの一部を(参加ノード nlはレベル 1のテーブルを、参加ノ ード ni lはレベル 2のテーブルを、参加ノード n9はレベル 3のテーブルを)含む返信 情報を、夫々送信する。
[0061] これに対して、未参加ノード nl6は、送信されてきた各 DHTのルーティングテープ ルを含む返信情報を受信して、当該返信情報に含まれる各ルーティングテーブルに 基づいて、自己が使用するべき DHTのルーティングテーブル 54を生成する。このと き、各エントリーに対して、別の既知のノード情報を登録できる場合は、エントリーを書 き換えても良い。図 5の例では、参加ノード nlにおけるレベル 1のテーブルエントリー 51a (ノード ID"301"及びこれに対応する IPアドレス)については、 自己のノード ID" 333"及びこれに対応する IPアドレスと入れ替えている。なお、図 5の例では、各参カロ ノード nnが別々のレベルのテーブルを返している力 どの参加ノード nnからも全レべ ルのテーブル(すなわちルーティングテーブル全体)を返すようにして、未参加ノード nmがそれぞれのテーブル力 テーブルエントリーを適宜、取捨選択して自己の新た なテーブルを作り上げても良 、。
[0062] こうして生成された DHTのルーティングテーブル 54を得た未参加ノード nl6は、参 カロノード nl6としてオーバーレイネットワーク 9に加わるのである。
[0063] ところで、このように生成される DHTのルーティングテーブルは、極力、ネットワーク 8への負荷 (ノード IDを含む情報がネットワーク 8上を伝送されることによる負荷)を軽 減するものであることが望ましい。本実施形態においては、ネットワーク 8への負荷の 軽減可能な DHTのルーティングテーブルを生成するために、任意の複数の参加ノ ード nnに向けて参カ卩要求情報が送信し、そのうち、ネットワーク 8上のローカリティ(地 域性)が考慮された参加ノード nnから上記返信情報が返信されることを特徴とする。
[0064] 例えば、図 1の下部枠 101内において、同一の回線事業者 (例えば、回線事業者 5 a)に属する(符号 101a内の)参加ノード nlと未参加ノード nl6は、ローカリティ (地域 性)が高いということができ、一方、当該参加ノード nlと、異なる回線業者 (例えば、回 線事業者 5b)に属する (符号 101b内の)未参加ノード n21は、ローカリティ(地域性) が低い(つまり、ー且、 ISP4a、 1X3、及び ISP4bを経由することになる)ということがで きる。なお、図 1の例では、同一の回線事業者に属する参加ノード nlと未参加ノード nl6には同一の地域番号 (Al, A2, A3)が付されている。 [0065] そして、ネットワーク 8上のローカリティ (地域性)が考慮された参加ノード nnとは、未 参加ノード nmとローカリティ(地域性)が高い参加ノード nnを意味し、つまり、未参カロ ノード nmとネットワーク的に近い(言い換えれば、未参加ノード nmとの間の通信経路 上における通信負荷が相対的に小さい)参加ノード nnを意味することなる。
[0066] 未参加ノード nm力 ネットワーク 8上のローカリティ(地域性)が考慮された参加ノー ド nnからの返信情報を受信し、これに含まれる DHTのルーティングテーブルに基づ き、自己が使用するべき DHTのルーティングテーブル 54を生成していけば、例えば ネットワーク的に互いに近い関係にある参加ノード nn間でコンテンツ ID及びノード ID が転送されるようになり、その結果、ネットワーク 8全体に与える負荷を低減することが 可能となる。
[0067] なお、上記流れは、未参加ノード nl6が、新たにオーバーレイネットワーク 9に参加 する場合ばカゝりでなぐ一度脱退した後、再度参加する場合にも適用することができ る。
[0068] 次に、図 6を参照して、参加ノード nn及び未参加ノード nmの構成及び機能につい て説明する。
[0069] 図 6は、参加ノード nn及び未参加ノード nmの概要構成例を示す図である。
[0070] 参加ノード nn及び未参加ノード nmは、夫々、図 6に示すように、演算機能を有する
CPU,作業用 RAM,各種データ及びプログラムを記憶する ROM等カゝら構成された コンピュータとしての制御部 11と、各種データ(例えば、コンテンツデータ、所在情報
、 DHT)及びプログラム等を記憶保存 (格納)するための HDD等力 構成された記 憶部 12と、受信されたコンテンツデータを一時蓄積するバッファメモリ 13と、コンテン ッデータに含まれるエンコードされたビデオデータ(映像情報)及びオーディオデー タ (音声情報)等をデコード (データ伸張や復号化等)するデコーダ部 14と、当該デコ ードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力す る映像処理部 15と、当該映像処理部 15から出力されたビデオ信号に基づき映像表 示する CRT,液晶ディスプレイ等の表示部 16と、上記デコードされたオーディオデー タをアナログオーディオ信号に D (Digital) /A (Analog)変換した後これをアンプによ り増幅して出力する音声処理部 17と、当該音声処理部 17から出力されたオーディオ 信号を音波として出力するスピーカ 18と、ネットワーク 8を通じて他の参加ノード nn又 は未参加ノード nmとの間の情報の通信制御を行うための通信部 20と、ユーザからの 指示を受け付け当該指示に応じた指示信号を制御部 11に対して与える入力部 (例 えば、キーボード、マウス、或いは、操作パネル等) 21と、を備えて構成され、制御部 11、記憶部 12、ノ ッファメモリ 13、デコーダ部 14、及び通信部 20は、バス 22を介し て相互に接続されている。
[0071] このような構成において、未参加ノード nmにおける制御部 11は、 CPUが記憶部 1 2等に記憶されたプログラム (本発明のコンピュータプログラムを含む)を読み出して 実行することにより、全体を統括制御すると共に、本発明の装置情報取得手段、到達 可能範囲設定手段、参加要求情報送信手段、返信情報受信手段、及び転送先テー ブル生成手段等として機能し、後述する各種処理を行うようになって ヽる。
[0072] また、参加ノード nnにおける制御部 11は、 CPUが記憶部 12等に記憶されたプログ ラムを読み出して実行することにより、全体を統括制御すると共に、オーバーレイネッ トワーク 9においてノード ID及びコンテンツ IDの送受信、コンテンツデータの送受信、 所在情報の送受信等の各種処理を行い、更には、未参加ノード nm等からの検索情 報、参加要求情報等を受信し、後述する各種処理を行うようになっている。
[0073] なお、上記コンピュータプログラムは、例えば、ネットワーク 8上の所定のサーバから ダウンロードされるようにしてもよいし、例えば、 CD— ROM等の記録媒体に記録され て当該記録媒体のドライブを介して読み込まれるようにしてもょ 、。
[0074] [2.コンテンツ酉 S信システムの動作]
次に、未参加ノード nmがオーバーレイネットワーク 9に新たに参加する場合におけ るコンテンツ配信システム Sの動作について、実施例 1乃至 3に分けて夫々説明する
[0075] (実施例 1)
先ず、図 7乃至図 12を参照して、実施例 1におけるコンテンツ配信システム Sの動 作について説明する。
[0076] この実施例 1は、全ての参加ノード nnへの装置情報(リンク情報)が記述された参カロ ノードリストを管理する管理サーバ SAがネットワーク 8に接続されている場合の動作 例である。
[0077] 07 (A)は、ノード(参加ノード nnと未参加ノード nmとで共通)のメインルーチンを示 すフローチャートであり、図 7 (B)は、管理サーバ SAのメインルーチンを示すフロー チャートである。
[0078] また、図 8 (A)は、実施例 1において、図 7 (A)に示すステップ S1における参加処理 の詳細を示すフローチャートであり、図 8 (B)は、実施例 1において、装置情報要求メ ッセージを受信した場合における管理サーノ SAの処理 (ステップ S 104におけるメッ セージ毎の処理)を示すフローチャートであり、図 8 (C)は、実施例 1において、装置 情報メッセージを受信した場合における未参加ノード nmの処理 (ステップ S6におけ るメッセージ毎の処理)を示すフローチャートであり、図 8 (D)は、実施例 1において、 参カ卩要求メッセージを受信した場合における参加ノード nnの処理 (ステップ S6にお けるメッセージ毎の処理)を示すフローチャートであり、図 8 (E)は、実施例 1において 、返信メッセージを受信した場合における未参加ノード nmの処理 (ステップ S6にお けるメッセージ毎の処理)を示すフローチャートであり、図 8 (F)は、実施例 1において 、登録メッセージを受信した場合における管理サーノ SAの処理 (ステップ S 104にお けるメッセージ毎の処理)を示すフローチャートである。
[0079] また、図 9 (A)は、図 8 (E)に示すステップ S71におけるルーティングテーブルの生 成処理の詳細を示すフローチャートであり、図 9 (B)は、返信メッセージ受信タイマー が起動した場合における未参加ノード nmの処理を示すフローチャートである。
[0080] また、図 10乃至図 12は、実施例 1において、未参加ノード 16がオーバーレイネット ワーク 9に新たに参加する場合の様子の一例を示す概念図である。
[0081] 07 (A)の処理は、例えば未参加ノード nmの電源が投入 (電源 ON)された場合に 開始され、先ず、制御部 11は、オーバーレイネットワーク 9へ参加するための参加処 理 (詳細は後述)を行う(ステップ Sl)。次いで、制御部 11は、電源 OFFになったか 否かを判別し (ステップ S2)、電源 OFFになった場合には (ステップ S2: Y)、当該処 理を終了する。一方、電源 OFFでない場合には (ステップ S2 :N)、制御部 11は、ュ 一ザによる入力部 21からの操作がある力否かを判別し (ステップ S3)、操作がある場 合には (ステップ S3 :Y)、当該操作毎の処理 (操作信号に応じた処理)を実行する( ステップ S4)。一方、入力部 21からの操作がない場合には (ステップ S3 : N)、制御部 11は、メッセージ (例えば、後述する装置情報メッセージ、参加要求メッセージ、返信 メッセージ等)の受信があるか否かを判別し (ステップ S5)、当該受信がある場合には (ステップ S5 :Y)、当該メッセージ毎の処理 (詳細は後述)を行う(ステップ S6)。一方 、メッセージの受信がない場合には (ステップ S5 :N)、ステップ S2の処理に戻る。こう して上記処理は、未参加ノード nm (処理の途中力 参加ノード nnになる)において、 電源 OFFとなるまで繰り返し実行される。
[0082] 一方、図 7 (B)の処理は、例えば管理サーバ SAの電源が投入 (電源 ON)された場 合に開始され、先ず、管理サーバ SAは、参加ノードリストを初期化し (ステップ S101 )、電源 OFFになったか否かを判別し (ステップ S102)、電源 OFFになった場合には (ステップ S102 :Y)、当該処理を終了する。一方、電源 OFFでない場合には (ステツ プ S102 :N)、管理サーバ SAは、メッセージ (例えば、後述する装置情報要求メッセ ージ等)の受信があるか否かを判別し (ステップ S103)、当該受信がある場合には( ステップ S 103: Y)、当該メッセージ毎の処理 (詳細は後述)を行う(ステップ S 104)。 一方、メッセージの受信がない場合には(ステップ S103 :N)、ステップ S102の処理 に戻る。こうして上記処理は、管理サーノ SAにおいて、電源 OFFとなるまで繰り返し 実行される。
[0083] 次に、上記ステップ S1における参加処理においては、図 8 (A)に示すように、未参 カロノード nm (ここでは、図 10に示す未参加ノード nl6とする)の制御部 11は、先ず、 初期化を行い、登録フラグを" false"に、 "ttl" (変数)を例えば" 2"に、夫々設定する (ステップ Sl l)。次いで、制御部 11は、管理サーノ SAの IPアドレス等(例えば、製 品出荷時に記憶部 12に記憶しておく)を取得し (ステップ S12)、オーバーレイネット ワーク 9への参加要求を示す参加要求情報としての参加要求メッセージを送信すベ き複数の参加ノード nnの装置情報を要求する装置情報要求メッセージ (例えば、自 己(未参加ノード nl6)の IPアドレスを送り元アドレスとし、管理サーバ SAの IPァドレ スを宛先アドレスとした装置情報要求パケット)を、通信部 20及びネットワーク 8を介し て管理サーノ S Aに対して送信する(ステップ S13:図 10 (A) )。
[0084] 一方、管理サーバ SAは、未参加ノード nl6から送信されてきた装置情報要求メッ セージを受信すると、図 8 (B)に示す処理を開始し、先ず、参加ノードリストから所定 数 (例えば、 10個)の参加ノード nnの装置情報を選択する (ステップ S110)。例えば 、参加ノードリストからランダムに所定数の参加ノード nnが選択される。なお、オーバ 一レイネットワーク 9への参加期間(登録期間)に応じた重み付けランダムにより所定 数の参加ノード nnが選択されるようにしても良い。例えば、オーバーレイネットワーク 9への参加期間(登録期間)が長いほど信頼性が高いといえるため、当該参加期間( 登録期間)が長いほど選択される確率を高くする。こうすると、システム全体で見た安 定性は向上する力 各参加ノード nnが持つ DHT中に、参加期間が長い参加ノード n nへのリンクが多くなり、そのノードが脱退したときの悪影響が大きくなる。或いは逆に 、未だ選択されていない参加ノード nnを優先的に選択させるために、参加期間(登 録期間)が短いほど選択される確率を高くしても良い。こうすると、特定の参加ノード n nへのリンク集中は防げるが、 DHT上に登録された情報の更新は頻繁になる。一長 一短があるので、システムの用途、参加ノード nnの使われ方(特に電源 ON 'OFFの 頻度分布)に応じて、制御方法を変更すると良い。また、過去に選択された回数 (上 記選択された回数を、各参加ノード nn毎にカウントしておく)に応じた重み付けランダ ムにより所定数の参加ノード nnが選択されるようにしても良い。例えば、過去に選択 された回数が多 、ほど信頼性が高 、と 、えるため、過去に選択された回数が多!、ほ ど選択される確率を高くする。或いは、未だ選択されていない参加ノード nnを優先的 に選択させるために、過去に選択された回数が少ないほど選択される確率を高くして も良い。
[0085] 次いで、管理サーバ SAは、上記選択した複数の参加ノード nnの装置情報を付カロ した装置情報メッセージ (例えば、自己(管理サーバ SA)の IPアドレスを送り元ァドレ スとし、未参加ノード nl6の IPアドレスを宛先アドレスとした装置情報パケット)を、ネッ トワーク 8を介して未参加ノード nl6に対して送信する (ステップ S 111:図 10 (B) )。
[0086] 一方、未参加ノード nl6は、管理サーバ SAから送信されてきた装置情報メッセージ を受信すると、図 8 (C)に示す処理を開始し、先ず、未参加ノード nl6の制御部 11は 、装置情報取得手段として、装置情報メッセージに付加された複数の参加ノード nn の装置情報を取得する (ステップ S61)。 [0087] 次いで、未参加ノード nl6の制御部 11は、到達可能範囲設定手段として、 TTL (Ti me To Live)値を上記" ttl (例えば、 2) "に設定し、オーバーレイネットワーク 9への参 加要求を示す参加要求メッセージに対して当該 TTL値を設定 (付加)して自己(未参 カロノード nl6)のノード IDを付加し、参加要求情報送信手段として、当該参加要求メ ッセージ(例えば、自己(未参加ノード nl6)の IPアドレスを送り元アドレスとし、上記 取得された各装置情報により特定される各参加ノード nnの IPアドレスを宛先アドレス とした参カ卩要求パケット)を、通信部 20及びネットワーク 8を介して各参加ノード nnに 対して送信する(ステップ S62 :図 10 (C) )。次いで、未参加ノード nl6の制御部 11は 、所定時間後(例えば、 1〜10秒後)に起動する返信メッセージ受信タイマーをセット (カウント開始)する (ステップ S63)。力かる返信メッセージ受信タイマーは、後述する 処理で解除 (リセット)されなければ、図 9(A)に示す処理が開始されることになる。
[0088] ここで、 TTLは、ネットワーク 8上を伝送される参加要求メッセージの到達可能範囲 を表す情報の一例であり、最大" 255"までの整数値で表され、メッセージ (パケット) がルータ等を 1回経由(転送)する度に 1減少するようになっている。なお、 TTL値力 0"になったパケットはその時点で廃棄され、廃棄通知がパケットの送信元に届くよう になっている。従って、受信されたメッセージ (パケット)の TTL値が大きいほど、それ だけ転送回数 (HOP数)が少ないということになるので、ネットワーク 8の通信経路に おける通信負荷に与える影響も少なくなる。
[0089] 図 10 (C)は、参加要求メッセージが参加ノード n2、参加ノード n4、参加ノード n5、 及び参加ノード n9に向かって送出される力 参加ノード n4、参加ノード n5、及び参 カロノード n9への参加要求メッセージは経路の途中で TTL値が" 0"になったことにより 届かず、結局、参加ノード n2にのみに参カ卩要求メッセージが届いている例を示して いる。
[0090] こうして、参カロノード n2は、未参加ノード nl6から送信されてきた参加要求メッセ一 ジを受信すると、図 8 (D)に示す処理を開始し、先ず、参加ノード n2の制御部 11は、 参加要求メッセージ中の転送回数を基に、返信すべきルーティングテーブルのレべ ル(レベル番号)を決定する(ステップ S65)。
[0091] ここで、参カ卩要求メッセージには、当該メッセージの転送回数をカウントするための 転送カウンタが付加されており、当該メッセージが、 DHTルーティングにより参加ノー ド nnにより転送される度に、当該転送カウンタが 1カウントアップ(1増加)されるように なっている。参加ノード n2が受信した参加要求メッセージの転送カウンタは、未だ転 送されていないので" 0"となっているが、その後、転送される度に 1ずつ増すことにな る(例えば、 011 (D)に示す参加ノード n6が受信した参加要求メッセージの転送力 ゥンタは、 "1"である。
[0092] そして、例えば、このような転送カウンタにて示される転送回数が" 0"の場合には、 レベル 1のテーブル(1行分)力 転送回数力 の場合にはレベル 2のテーブルが、 転送回数が" 2"の場合にはレベル 3のテーブル力 夫々、返信されるテーブルとして 決定されること〖こなる。
[0093] 次いで、参加ノード n2の制御部 11は、自己の DHTのルーティングテーブルから、 上記決定したレベル (レベル番号)のテーブルを取得し、返信情報としての返信メッ セージに対して当該取得したレベル(レベル番号)のテーブルを付カ卩し (添付し)、こ の返信メッセージ(例えば、自己(参加ノード n2)の IPアドレスを送り元アドレスとし、 未参加ノード nl6の IPアドレスを宛先アドレスとした返信パケット)を、通信部 20及び ネットワーク 8を介して未参加ノード nl6に対して送信(返信)する (ステップ S66:図 1 1 (E) )。
[0094] 次いで、参加ノード n2の制御部 11は、 DHTのルーティングテーブルを参照して、 受信した参カ卩要求メッセージに付加されている未参加ノード nl6のノード IDに基づき 、転送先を検索し (ステップ S67)、転送先があるか否かを判別する (ステップ S68)。 例えば、 自己(参加ノード n2)力 上記参加要求メッセージに付加されたノード IDと最 も近 ゾード IDを有する場合には、ルーティングテーブル中で上記参カ卩要求メッセ一 ジに付加されたノード IDに最も近いテーブルエントリーを検索すると、その転送先は 自分自身を指すことになり(つまり、自己が参加要求メッセージに付加されたノード ID の管理元である)転送先がないと判別され (ステップ S68 :N)、図 7 (A)に示す処理に 戻る。一方、最も近いノード IDを有しない(つまり、最も近いノード IDを有する参加ノ ード nnが他にある)場合には、検索したテーブルエントリーには他の参加ノード nnの I Pアドレスが見つかり、転送先があると判別され (ステップ S68 :Y)、ステップ S69に移 行する。
[0095] ステップ S69では、参加ノード n2の制御部 11は、参加要求メッセージ中の転送カウ ンタを 1カウントアップ(1増加)させ、当該参カ卩要求メッセージに付加されたノード ID と最も近いノード IDに対応する IPアドレスを DHTのルーティングテーブルから取得し 、上記ノード IDが付加された参カ卩要求メッセージに対して未参加ノード nl6の IPアド レスを付カ卩し、当該参加要求メッセージ(自己(参加ノード n2)の IPアドレスを送り元ァ ドレス及び当該ルーティングテーブル力も取得された IPアドレスを宛先アドレスとした 参加要求パケット)を、通信部 20及びネットワーク 8を介して、上記ルーティングテー ブルカゝら取得した IPアドレスに対応する参加ノード n6に対して送信 (転送)し(図 11 ( D) )、図 7 (A)に示す処理に戻る。
[0096] こうして、転送された参加要求メッセージを受信した参加ノード nnにお!/、ても、図 8 ( D)に示す処理が行われ、参加要求メッセージに付加されたノード IDの管理元である 参加ノード nl4に至るまで順次転送され、当該参加要求メッセージを受信した夫々の 参加ノード n6, nl3及び nl4は、転送カウンタの値に応じたレベル(レベル番号)の テーブルを付加した返信メッセージを、未参加ノード nl6に対して送信 (返信)するこ とになる(図 11 (E) )。
[0097] 一方、未参加ノード nl6は、返信情報受信手段として、各参加ノード nn (例えば、 参加ノード n2)から送信されてきた返信メッセージを受信すると、図 8 (E)に示す処理 を開始し、先ず、未参加ノード nl 6の制御部 11は、転送先テーブル生成手段として、 上記受信された返信メッセージに付加されたルーティングテーブルに基づ 、て、自 己が使用するべきルーティングテーブルを生成するルーティングテーブルの生成処 理を行う(ステップ S 71)。
[0098] このルーティングテーブルの生成処理では、図 9 (A)に示すように、未参加ノード n 16の制御部 11は、先ず、受信した返信メッセージに付加されたテーブルのレベル( レベル番号)を読み取り(ステップ S711)、読み取ったレベル(レベル番号)のテープ ルは、自己のルーティングテーブルに登録されているカゝ否かを判別し (ステップ S71 2)、登録されていない場合には (ステップ S712 :N)、当該レベル(レベル番号)のテ 一ブルを自己のルーティングテーブルの対応箇所に登録し (ステップ S713)、当該 処理を終了し、図 8 (E)に示す処理に戻る。
[0099] 上記ルーティングテーブルの生成処理が終了し、図 8 (E)に示すステップ S72では 、未参加ノード nl6の制御部 11は、登録フラグが" false"である力否かを判別し、登 録フラグが" false"でない、つまり、 "true"である場合には(ステップ S72 :N)、図 7 ( A)に示す処理に戻る。一方、登録フラグが" false"である場合には (ステップ S72 :Y ) ,当該制御部 11は、自己(未参加ノード nl6)のノード IDが付加された登録メッセ一 ジ(自己(参加ノード n2)の IPアドレスを送り元アドレス及び管理サーバ SAの IPァドレ スを宛先アドレスとした登録パケット)を、通信部 20及びネットワーク 8を介して管理サ ーバ SAに対して送信する(ステップ S73)。
[0100] 次いで、未参加ノード nl6の制御部 11は、登録フラグを" true"に設定し (ステップ S 74)、返信メッセージ受信タイマーを解除する (ステップ S75)。登録フラグは、未参カロ ノードがテーブルを (部分的にでも)生成してオーバーレイネットワーク 9に参加したこ とを意味するフラグで、これ力 true"になると、後述のタイマーによるリトライ処理 (ttl を増やして参加要求メッセージを再送信する処理: S634)が止まるようになって!/、る。
[0101] 一方、管理サーノ SAは、未参加ノード nl6から送信されてきた登録メッセージを受 信すると、図 8 (F)に示す処理を開始し、当該登録メッセージの送信元の未参加ノー ド nl 6のノード ID及び IPアドレス等を装置情報として参加ノードリストに登録する (ス テツプ S115)する。こうして、未参加ノード nl6のオーバーレイネットワーク 9への参加 が完了する。
[0102] ところで、上記返信メッセージは、例えば図 12 (A)に示すように、参加要求メッセ一 ジが複数の参加ノード nn (図 12 (A)の例では、参加ノード n2及び n9)に届き、夫々 の参加ノード nn及び当該参加ノード nnから転送された参加要求メッセージを受信し た参加ノード nnから複数の返信メッセージが送信される(図 12 (B)、(C) )場合が想 定される。この場合、同じ転送回数である参加要求メッセージを受信した複数の参カロ ノード nn (例えば、図 12 (B)に示す参加ノード n2及び n9)から、同一レベルのテープ ルが付加された返信メッセージが返信されることになる力 図 9 (A)に示すルーティン グテーブルの生成処理において、ステップ S712にて後力も受信されたレベルのテー ブルは廃棄される(つまり、先着優先で、そのレベルのテーブルが登録される)。 [0103] 一方、参カ卩要求メッセージが何れの参加ノードに届かず (経路の途中で TTL値が" 0"になったことより)、返信メッセージが受信されない場合も想定されるが、この場合、 上記ステップ S63においてセットされた返信メッセージ受信タイマーが起動し、図 9 ( B)に示す処理が開始される。先ず、未参加ノード nl6の制御部 11は、登録フラグが "false"であるか否かを判別し (ステップ S631)、登録フラグが" false"でな!/、場合 (ス テツプ S631 :N)、既に参加登録が完了しているので、当該処理を終了する。
[0104] 一方、登録フラグが" false"である場合 (ステップ S631 :Y)、当該制御部 11は、 "tt 1"を 1カウントアップ(1増力!])し (ステップ S632)、上記ステップ S62において設定した TTL値が 255以下であるか否かを判別する(ステップ S633)。そして、 TTL値力 55 以下でない場合には (ステップ S633 :N)、当該処理を終了する。一方、 TTL値が 25 5以下である場合には (ステップ S633 :Y)、当該制御部 11は、 TTL値を、上記 1カウ ントアップされた" ttl (例えば、 3) "に変更設定し、参加要求メッセージに対して当該 T TL値を設定して自己(未参加ノード nl6)のノード IDを付カ卩し、当該参カ卩要求メッセ ージを、通信部 20及びネットワーク 8を介して各参加ノード nn (上記ステップ S61にて 取得された装置情報に対応する参加ノード nn)に対して再送信する (ステップ S634) 。つまり、未参加ノード nl6は、参加要求メッセージを送信してから所定時間以内に 返信メッセージを受信しな ヽ場合には、当該参加要求メッセージの到達可能範囲を 表す情報 (TTL値)を変更設定 (ここでは、前回設定した TTL値に基づく到達可能範 囲よりも広くなるように TTL値を変更設定する)し、当該変更設定された TTL値を参 加要求メッセージに設定 (付加)し、当該参加要求メッセージを、再度、同じ各参加ノ ード nnに対して送信することになる。これにより、返信メッセージが受信されない場合 、参加要求メッセージの到達可能範囲を少しずつ広げて (TTL値を少しずつ増加さ せて)、参加要求メッセージを再送信できるので、確実に、かつ、最適な参加ノード n nのルーティングテーブルを取得することができる。
[0105] なお、参加要求メッセージを送信して力 所定時間以内に返信メッセージを受信し ない場合、未参カロノード nl6は、 TTL値を増加させずに、参カ卩要求メッセージを、再 度、同じ各参加ノード nnに対して送信するように構成しても良い。
[0106] 次いで、当該制御部 11は、所定時間後(例えば、 1〜10秒後)に起動する返信メッ セージ受信タイマーをセット (カウント開始)する (ステップ S635)。かかる返信メッセ ージ受信タイマーは、上記ステップ S63と同様、解除 (リセット)されなければ、図 9 (A )に示す処理が開始されることになる。
[0107] 以上説明したように、上記実施例 1によれば、未参加ノード nm力 参加要求メッセ ージの到達可能範囲を表す情報としての TTL値を低く設定し、当該設定した TTL値 を参加要求メッセージに付加して、管理サーバ SAから通知された複数の参加ノード nnに対して送信し、上記参加要求メッセージを受信することができた (つまり、よりネッ トワーク的に近 ヽ(例えば、 HOP数が少な 、) )参加ノード nnから送信されてきた返信 メッセージに含まれるルーティングテーブルに基づいて自己が使用するべきルーティ ングテーブルを生成して、オーバーレイネットワーク 9に参加するようにしたので、ネッ トワーク 8上のローカリティ(地域性)が考慮されたオーバーレイネットワーク 9を構築す ることが可能となり、ネットワーク 8への余分な負荷を軽減することができる (第 1の効 果)。
[0108] また、未参加ノード nl6は、複数の参加ノード nnからの返信メッセージに含まれる 夫々のルーティングテーブルのうち、同一レベルのルーティングテーブルが複数ある とき、当該同一レベルの複数のルーティングテーブルのうち、先着優先で受信された ルーティングテーブルに基づいて、自己が使用するべきルーティングテーブルが生 成するようにしたので、 自分自身力 見てよりネットワーク負荷の少な 、ところに位置 する参加ノード nnのルーティングテーブルが優先して登録されることになり、ルーティ ングテーブルもローカリティ(地域性)が考慮され、より一層、ネットワーク 8上のロー力 リティ (地域性)が考慮されたオーバーレイネットワーク 9を構築することが可能となる( 第 2の効果)。
[0109] また、未参加ノード nl6は、参加要求メッセージを送信して力も所定時間以内に返 信メッセージを受信しな ヽ場合には、当該参加要求メッセージの到達可能範囲を表 す情報 (TTL値)を変更設定 (ここでは、前回設定した TTL値に基づく到達可能範囲 よりも広くなるように TTL値を変更設定する)し、当該変更設定された TTL値を参カロ 要求メッセージに設定 (付加)して、再度、同じ各参加ノード nnに対して送信するよう にしたので、確実に、かつ、最適な参加ノード nnのルーティングテーブルを取得する ことができ、ネットワーク 8上のローカリティ(地域性)が考慮されたオーバーレイネット ワーク 9を構築することが可能となる(第 3の効果)。
[0110] また、管理サーバ SAは、全ての参加ノード nnの装置情報が記述された参加ノード リストだけを管理し、複数の参加ノード nnを選定して未参加ノード nl 6に通知するだ けでよいので、管理サーノ SAが未参加ノード nmにネットワーク的に近い参加ノード nnを認識しておく必要がなぐしたがって、管理サーバ SAの管理コストを低減するこ とができる (第 4の効果)。
[0111] (実施例 2)
次に、図 13等を参照して、実施例 2におけるコンテンツ配信システム Sの動作につ いて説明する。
[0112] この実施例 2は、実施例 1とは異なり、全ての参加ノード nnへの装置情報を管理す る管理サーバがネットワーク 8に接続されていない場合の例である。
[0113] なお、この実施例 2において、ノード(参加ノード nnと未参加ノード nmとで共通)のメ インルーチンは、図 7 (A)に示す通りであり、実施例 1と同様である。
[0114] 図 13 (A)は、実施例 2において、図 7 (A)に示すステップ S1における参加処理の 詳細を示すフローチャートであり、図 13 (B)は、実施例 2において、参加要求メッセ ージを受信した場合における参加ノード nnの処理 (ステップ S6におけるメッセージ毎 の処理)を示すフローチャートであり、図 13 (C)は、実施例 2において、返信メッセ一 ジを受信した場合における未参加ノード nmの処理 (ステップ S6におけるメッセージ 毎の処理)を示すフローチャートである。なお、図 13 (A)乃至(C)において、図 8 (A) 乃至(E)における同一の処理については、同一の符号を付している。
[0115] 図 13 (A)に示す参加処理おいては、実施例 1と同様、未参加ノード nmの制御部 1 1は、先ず、初期化を行い、登録フラグを" false"に、 "ttl" (変数)を例えば" 2"に、夫 々設定する (ステップ S21)。
[0116] 次いで、当該制御部 11は、複数の専用参加ノード nnの装置情報 (IPアドレス等を 含む)を取得する (ステップ S22)。当該専用参加ノード nnとは、例えば常時電源が入 つており、オーバーレイネットワーク 9に参加している信頼性の高い参加ノード nnであ り、力かる複数の専用参加ノード nnの装置情報は、例えば、予め未参加ノード nm内 に記憶されている(例えば、製品出荷時に設定しておく)。
[0117] 次いで、当該制御部 11は、 TTL値を上記" ttl (例えば、 2) "に設定し、参加要求メ ッセージに対して当該 TTL値を設定 (付加)して自己(未参加ノード nl6)のノード ID を付加し、当該参加要求メッセージ(例えば、 自己(未参加ノード nl 6)の IPアドレスを 送り元アドレスとし、上記取得された各装置情報により特定される各専用参加ノード n nの IPアドレスを宛先アドレスとした参加要求パケット)を、通信部 20及びネットワーク 8を介して各専用参加ノード nnに対して送信する (ステップ S23)。
[0118] 次いで、未参加ノード nl6の制御部 11は、実施例 1と同様、所定時間後(例えば、 1〜10秒後)に起動する返信メッセージ受信タイマーをセット (カウント開始)する (ス テツプ S 24)。
[0119] こうして、実施例 1と同様、経路の途中で TTL値が" 0"にならずに参加要求メッセ一 ジを受信することができた専用参加ノード nnは、未参加ノード nmから送信されてきた 参加要求メッセージを受信すると、図 13 (B)に示す処理を開始することになる。なお 、図 13 (B)に示す処理は、図 8 (D)に示す処理と同様であるので、重複する説明は 省略する。
[0120] そして、未参加ノード nm力 各専用参加ノード nn力も送信されてきた返信メッセ一 ジを受信すると、図 13 (C)に示す処理を開始することになる。なお、図 13 (C)に示す ステップ S71におけるルーティングテーブル生成処理は、図 9 (A)に示す処理の通り であり、実施例 1と同様であるので、重複する説明は省略する。また、実施例 2におい ても、参カ卩要求メッセージが何れの参加ノードに届かな力つた場合、上記ステップ S2 4においてセットされた返信メッセージ受信タイマーが起動し、図 9 (B)に示す処理が 開始される。
[0121] 以上説明したように、上記実施例 2によれば、実施例 1における第 1〜第 3の効果を 奏することにカ卩えて、管理サーノ SAを設けなくとも、未参加ノード nmとネットワーク的 に近 、参加ノード nnを選定することができるので、管理サーノ SAに対して多数の未 参加ノード nm力もの装置情報要求メッセージが集中(負荷集中)することを回避でき ると共に、管理サーバ SAの設置コストを低減することができる。
[0122] (実施例 3) 次に、図 14等を参照して、実施例 3におけるコンテンツ配信システム Sの動作につ いて説明する。
[0123] この実施例 3は、実施例 1と同様に、全ての参加ノード nnへの装置情報を管理する 管理サーノ SAが存在する場合の動作例である力 返信メッセージが届力ないときに 、再度、管理サーバ SAが、参加ノードリストから所定数 (例えば、 10個)の参加ノード nnの装置情報を選択して未参加ノード nmに通知する場合の例である。
[0124] なお、この実施例 3において、管理サーバ SAのメインルーチンは、図 7 (B)に示す 通りであり、実施例 1と同様である。
[0125] 図 14 (A)は、実施例 3において、ノード (参加ノード nnと未参加ノード nmとで共通) のメインルーチンを示すフローチャートであり、図 14 (B)は、実施例 3において、図 14 (A)に示すステップ Sibにおける参加処理の詳細を示すフローチャートであり、図 14 (C)は、実施例 3において、返信メッセージ受信タイマーが起動した場合における未 参加ノード nmの処理を示すフローチャートである。
[0126] 図 14 (A)の処理は、例えば未参加ノード nmの電源が投入 (電源 ON)された場合 に開始され、制御部 11は、先ず、初期化を行い、登録フラグを" false"に、 "count" ( 変数)を例えば" 0"に、 "ttl" (変数)を例えば" 2"に、夫々設定する (ステップ Sla)。
[0127] 次いで、当該制御部 11は、オーバーレイネットワーク 9への参加するための参加処 理 (詳細は後述)を行う(ステップ Sib)。なお、ステップ S1〜S6までの処理は、図 7 ( A)と同様である。
[0128] 上記ステップ Sibにおける参加処理おいては、図 14 (B)に示すように、未参加ノー ド nmの制御部 11は、先ず、 "count"を 1カウントアップ(1増力!])し (ステップ S31)、 管理サーノ SAの IPアドレス等 (例えば、製品出荷時に記憶部 12に記憶しておく)を 取得し (ステップ S32)、装置情報要求メッセージを、通信部 20及びネットワーク 8を 介して管理サーノ SAに対して送信する (ステップ S33)。
[0129] 一方、管理サーバ SAは、未参加ノード nl6から送信されてきた装置情報要求メッ セージを受信すると、実施例 1と同様、図 8 (B)に示す処理を開始し、参加ノードリスト 力も所定数 (例えば、 10個)の参加ノード nnの装置情報をランダム又は上述した重み 付けランダムで選択し、当該選択した参加ノード nnの装置情報を未参加ノード nmに 送信することになる。以降、実施例 3においても、実施例 1と同様、図 8 (C)〜図 8 (F) 、及び図 9 (A)の処理が行われる。
[0130] そして、参加要求メッセージが何れの参加ノードに届かず (経路の途中で TTL値が "0"になったことより)、返信メッセージが送信されない場合、上記ステップ S63におい てセットされた返信メッセージ受信タイマーが起動し、図 14 (C)に示す処理が開始さ れる。
[0131] 先ず、未参加ノード nmの制御部 11は、登録フラグが" false"である力否かを判別し
(ステップ S637)、登録フラグが" false"でない場合 (ステップ S637 :N)、既に参加 登録が完了しているので、当該処理を終了する。
[0132] 一方、登録フラグが" false"である場合 (ステップ S637 :Y)、当該制御部 11は、上 記" count"が、閾値 (例えば、 5)より小さいか否かを判別し (ステップ S638)、小さく な 、場合には (ステップ S638 :N)、当該処理を終了する。
[0133] 一方、上記" count"が、閾値 (例えば、 5)より小さい場合 (ステップ S638 :Y)、制御 部 11は、上記ステップ Sibと同様の参加処理を行う(ステップ S639)。こうして、返信 メッセージが受信されずに所定時間が経過する度に、 "count"が閾値に達するまで 、参加処理のリトライが行われる。
[0134] 以上説明したように、上記実施例 3によれば、実施例 1における第 1、第 2及び第 4 の効果を奏することに加えて、返信メッセージが届かないときに、再度、管理サーバ S A力 参加ノードリストから所定数 (例えば、 10個)の参加ノード nnの装置情報 (例え ば、前回取得した参加ノード nnの装置情報とは異なる装置情報)を重み付けランダ ム等により再度選択して未参加ノード nmに通知し、これらの参加ノード nnに対して参 加要求メッセージを送信するようにしたので、確実に、かつ、最適な参加ノード nnの ルーティングテーブルを取得することができ、ネットワーク 8上のローカリティ(地域性) が考慮されたオーバーレイネットワーク 9を構築することが可能となる。
[0135] (変形例)
次に、上記実施例 1乃至実施例 3における、参加要求メッセージを受信した場合に おける参加ノード nnの処理(図 8 (D)及び図 13 (B) ) )及びルーティングテーブルの 生成処理(図 9 (A) )の変形例を、図 15を参照して説明する。 [0136] 図 15 (A)は、変形例において、参カ卩要求メッセージを受信した場合における参加ノ ード nnの処理 (ステップ S6におけるメッセージ毎の処理)を示すフローチャートであり 、図 15 (B)は、変形例において、図 8 (E)及び図 13 (C)に示すステップ S71におけ るルーティングテーブルの生成処理の詳細を示すフローチャートである。
[0137] 図 15 (A)の処理は、参加ノード n2が未参加ノード nl6から送信されてきた参加要 求メッセージを受信すると開始され、先ず、参加ノード n2の制御部 11は、 自己の DH Tのルーティングテーブル (例えば、全レベル)を取得し、返信情報としての返信メッ セージに対して当該取得したルーティングテーブルを付加し、この返信メッセージ( 例えば、 自己(参加ノード n2)の IPアドレスを送り元アドレスとし、未参加ノード nl6の I Pアドレスを宛先アドレスとした返信パケット)を、通信部 20及びネットワーク 8を介して 未参加ノード nl 6に対して送信(返信)する(ステップ S65a:図 11 (E) )。
[0138] 次いで、参加ノード n2の制御部 11は、 DHTのルーティングテーブルを参照して、 受信した参カ卩要求メッセージに付加されている未参加ノード nl6のノード IDに基づき 、転送先を検索し (ステップ S66a)、転送先がある力否かを判別する (ステップ S67a) 。例えば、自己(参加ノード n2)力 上記参加要求メッセージに付加されたノード IDと 最も近 ゾード IDを有する場合には、ルーティングテーブル中で上記参加要求メッセ ージに付加されたノード IDに最も近いテーブルエントリーを検索すると、その転送先 は自分自身を指すことになり(つまり、 自己が参加要求メッセージに付加されたノード I Dの管理元である)転送先がないと判別され (ステップ S67a :N)、図 7 (A)に示す処 理に戻る。一方、最も近いノード IDを有しない(つまり、最も近いノード IDを有する参 カロノード nnが他にある)場合には、検索したテーブルエントリーには他の参加ノード n nの IPアドレスが見つかり、転送先があると判別され (ステップ S67a:Y)、ステップ S6 8aに移行する。
[0139] ステップ S68aでは、参加ノード n2の制御部 11は、参加要求メッセージに付加され たノード IDと最も近いノード IDに対応する IPアドレスを DHTのルーティングテーブル 力も取得し、上記ノード IDが付加された参加要求メッセージに対して未参加ノード nl 6の IPアドレスを付カ卩し、当該参加要求メッセージ(自己(参加ノード n2)の IPアドレス を送り元アドレス及び当該ルーティングテーブルから取得された IPアドレスを宛先アド レスとした参加要求パケット)を、通信部 20及びネットワーク 8を介して、上記ルーティ ングテーブルから取得した IPアドレスに対応する参加ノード n6に対して送信 (転送) し(図 11 (D) )、図 7 (A)に示す処理に戻る。
[0140] 次に、図 15 (B)に示すルーティングテーブルの生成処理では、未参加ノード nl6 の制御部 11は、先ず、初期化処理を行い、レベルを示す変数" i"を 1に設定する (ス テツプ S721)。
[0141] 次いで、制御部 11は、ルーティングテーブルの全レベル数(図 3の例では、 3)より" i "が小さいか否かを判別し (ステップ S722)、 "i"が小さい場合 (ステップ S722 : Y)、 つまり、未だ、全てのレベルにおけるルーティングテーブルが登録されていない場合 には、ステップ S723に移行し、 "i"が小さくない場合 (ステップ S722 :N)、つまり、全 てのレベルにおけるルーティングテーブルが登録された場合には、図 8 (E)等に示す 処理に戻る。
[0142] ステップ S723では、制御部 11は、上記返信メッセージの送信元の参加ノード nnま での TTL値を取得する(かかる TTL値は、参加要求メッセージの TTL値をいくつで 出したときに返信された力、力 取得できる)。
[0143] 次いで、制御部 11は、レベル i (例えば、レベル 1)のルーティングテーブルは既に 登録済か否かを判別し (ステップ S724)、既に登録済でない場合 (ステップ S724 :N )、ステップ S725に移行し、既に登録済である場合 (ステップ S 724 : Y)、ステップ S7 26に移行する。
[0144] ステップ S725では、制御部 11は、返信メッセージの送信元の参加ノード nnにおけ るレベル iのルーティングテーブルを自己のルーティングテーブルに登録し、ステップ S 728に移行する。
[0145] 一方、ステップ S726では、制御部 11は、登録済のルーティングテーブルを送信し た参加ノード nnまでの TTL値力 上記ステップ S723で取得された TTL値(当該処 理開始の要因となつた返信メッセージを送信した参加ノード nnまでの TTL値)より小 さいか否かを判別する。
[0146] 登録済のルーティングテーブルを送信した参加ノード nnまでの TTL値力 上記ス テツプ S723で取得された TTL値より小さ 、場合には (ステップ S726: Y)、上記受信 した返信メッセージに付カ卩されたレベル iのルーティングテーブルで、登録済のレべ ル iのルーティングテーブルを上書き更新し (ステップ S 727)、ステップ S728に移行 する。つまり、未参加ノード nl6の制御部 11は、夫々の参加ノード nnからの返信メッ セージに含まれる夫々のルーティングテーブルのうち、同一レベルのルーティングテ 一ブルが複数あるとき、当該同一レベルの複数のルーティングテーブルのうち、参加 要求メッセージの到達可能範囲が最も狭 、設定 (TTL値がより小さ 、設定)で受信 可能な参加ノード nnにおけるルーティングテーブルに基づいて、 自己が使用するべ きルーティングテーブルが生成することになる。これにより、転送回数 (HOP数)が少 な 、参加ノード nnのルーティングテーブルが優先して登録されることになるので、ル 一ティングテーブルもローカリティ(地域性)力 S考慮されること〖こなる。
[0147] 一方、登録済のルーティングテーブルを送信した参加ノード nnまでの TTL値が、 上記ステップ S723で取得された TTL値より小さくない場合には (ステップ S726 :N) 、ステップ S728に移行する。
[0148] ステップ S728では、レベルを示す変数" i"を 1インクリメントし、ステップ S722に戻る 。こうして、ステップ S722〜S728の処理は、全てのレベルにおけるルーティングテ 一ブルが登録されるまで繰り返し行われる。
[0149] 以上説明したように変形例によれば、参加要求メッセージの到達可能範囲が最も 狭 、設定 (TTL値がより小さ 、設定)で受信可能な参加ノード nnにおけるルーティン グテーブルに基づいて、自己が使用するべきルーティングテーブルが生成するように したので、よりネットワーク的に近い(例えば、 HOP数が少ない)参加ノード nnのルー ティングテーブルが優先して登録されることになり、ルーティングテーブルもローカリ ティ (地域性)が考慮され、より一層、ネットワーク 8上のローカリティ (地域性)が考慮さ れたオーバーレイネットワーク 9を構築することが可能となる。
[0150] なお、上記実施例 1における TTL値の変更設定と、上記実施例 3における参加ノー ド nnの再選択とを組み合わせるように構成しても良い。例えば、返信メッセージが受 信されないことによる TTL値の変更設定を一定回数、例えば、 TTL値が" 10"になる まで繰り返したら、 TTL値を減少させて (例えば、 2に設定)、上記ステップ Sibの参 加処理を呼び出し、当該参加処理において、 "count"が、閾値に達するまで繰り返 すように構成する。逆に、 TTL値を固定で上記ステップ Sibの参加処理を繰り返し、 これでも、返信メッセージを受信できなければ、 TTL値を増加して上限(255)に到達 するまで繰り返すように構成する。このように構成すれば、より一層、確実に、かつ、 最適な参加ノード nnのルーティングテーブルを取得することが可能となる。
[0151] また、上記実施形態においては、 DHTを利用したアルゴリズムによって構築された オーバーレイネットワーク 9を前提として説明したが、本発明はこれに限定されるもの ではない。
[0152] また、上記実施形態にお!、ては、到達可能範囲を表す情報として、 TTLを例にとつ たがこれに限定されるものではなく、その他の情報を適用しても良 、。
[0153] なお、本発明は、上記実施形態に限定されるものではない。上記実施形態は、例 示であり、本発明の請求の範囲に記載された技術的思想と実質的に同一な構成を 有し、同様な作用効果を奏するものは、いかなるものであっても本発明の技術的範囲 に包含される。
[0154] また、 2005年 7月 20日に出願された明細書、特許請求の範囲、図面、要約を含む 日本の特許出願(No. 2005-210077)の全ての開示は、その全てを参照することよつ て、ここに組み込まれる。

Claims

請求の範囲
[1] 通信ネットワークを介して互いに接続された複数のノード装置のうちの全部又は一 部の前記ノード装置の参カ卩により形成されているオーバーレイネットワークに参加す るノード装置であって、
前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべき複 数のノード装置の装置情報を取得する装置情報取得手段と、
前記通信ネットワーク上を伝送される前記参加要求情報の到達可能範囲を表す情 報を設定する到達可能範囲設定手段と、
前記設定された到達可能範囲を表す情報を前記参加要求情報に付加し、当該参 加要求情報を、前記取得された各前記装置情報により特定される各前記ノード装置 に対して送信する参加要求情報送信手段と、
前記参加要求情報を受信したノード装置から送信された返信情報であって、前記 オーバーレイネットワーク上における情報の転送先を規定する転送先テーブルを含 む返信情報を受信する返信情報受信手段と、
前記受信された返信情報に含まれる転送先テーブルに基づいて、自己が使用する べき前記転送先テーブルを生成する転送先テーブル生成手段と、
を備えることを特徴とするノード装置。
[2] 請求項 1に記載のノード装置において、
前記参加要求情報を送信してから所定時間以内に前記返信情報を受信しない場 合には、前記参加要求情報送信手段は、当該参加要求情報を、再度、前記各ノード 装置に対して送信することを特徴とするノード装置。
[3] 請求項 1に記載のノード装置において、
前記参加要求情報を送信してから所定時間以内に前記返信情報を受信しない場 合には、前記到達可能範囲設定手段は、前記参加要求情報の到達可能範囲を表 す情報を変更設定し、前記参加要求情報送信手段は、前記変更設定された到達可 能範囲を表す情報を前記参加要求情報に付加し、当該参加要求情報を、再度、前 記各ノード装置に対して送信することを特徴とするノード装置。
[4] 請求項 3に記載のノード装置において、 前記到達可能範囲設定手段は、前回設定した前記到達可能範囲よりも広くなるよう に前記到達可能範囲を表す情報を変更設定することを特徴とするノード装置。
[5] 請求項 1に記載のノード装置において、
前記参加要求情報を送信してから所定時間以内に前記返信情報を受信しない場 合には、前記装置情報取得手段は、前回取得した前記ノード装置の装置情報とは異 なる装置情報を複数取得し、前記参加要求情報送信手段は、前記参加要求情報を 当該取得された各前記装置情報により特定される各前記ノード装置に対して送信す ることを特徴とするノード装置。
[6] 請求項 1に記載のノード装置において、
前記転送先テーブルは、複数のレベルに区分されており、
前記返信情報受信手段が、複数の前記ノード装置から前記返信情報を受信した場 合に、前記転送先テーブル生成手段は、夫々の前記返信情報に含まれる夫々の転 送先テーブルのうち、同一レベルの転送先テーブルが複数あるとき、当該同一レべ ルの前記複数の転送先テーブルのうち、前記参加要求情報の到達可能範囲が最も 狭 、設定で受信可能な 1の前記ノード装置における前記転送先テーブルに基づ 、 て、前記自己が使用するべき転送先テーブルを生成することを特徴とするノード装置
[7] 請求項 1に記載のノード装置において、
前記参加要求情報送信手段は、自己に固有の識別情報を前記参加要求情報に 付加して当該参加要求情報を送信し、
前記参加要求情報は、当該参加要求情報を受信した前記ノード装置から、前記固 有の識別情報の管理元であるノード装置に至るまで前記固有の識別情報に従って 転送され、
前記返信情報受信手段は、前記参加要求情報を転送する夫々のノード装置から 送信された前記返信情報を受信し、前記転送先テーブル生成手段は、夫々の前記 返信情報に含まれる転送先テーブルに基づいて、前記自己が使用するべき転送先 テーブルを生成することを特徴とするノード装置。
[8] コンピュータを、請求項 1乃至 7何れか一項に記載のノード装置として機能させるこ とを特徴とするコンピュータプログラムを記憶した記憶媒体。
[9] 通信ネットワークを介して互いに接続された複数のノード装置を備えた情報配信シ ステムであって、当該複数のノード装置のうちの全部又は一部の前記ノード装置の参 加により形成されているオーバーレイネットワークを有する情報配信システムにおい て、
前記オーバーレイネットワークに参加するノード装置は、
前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべき複 数のノード装置の装置情報を取得する装置情報取得手段と、
前記通信ネットワーク上を伝送される前記参加要求情報の到達可能範囲を表す情 報を設定する到達可能範囲設定手段と、
前記設定された到達可能範囲を表す情報を前記参加要求情報に付加し、当該参 加要求情報を前記取得された各前記装置情報により特定される各前記ノード装置に 対して送信する参加要求情報送信手段と、を備え、
前記参加要求情報を受信したノード装置は、
前記オーバーレイネットワーク上における情報の転送先を規定する転送先テープ ルを含む返信情報を、前記参加要求情報の送信元である前記ノード装置に対して送 信する返信情報送信手段を備え、
前記オーバーレイネットワークに参加するノード装置は、
前記転送先テーブルを含む返信情報を受信する返信情報受信手段と、 前記受信された返信情報に含まれる転送先テーブルに基づいて、自己が使用する べき前記転送先テーブルを生成する転送先テーブル生成手段と、を更に備えること を特徴とする情報配信システム。
[10] 通信ネットワークを介して互いに接続された複数のノード装置のうちの全部又は一 部の前記ノード装置の参加により形成されているオーバーレイネットワークへのネット ワーク参加方法であって、
前記オーバーレイネットワークに参加するノード装置は、
前記オーバーレイネットワークへの参加要求を示す参加要求情報を送信すべき複 数のノード装置の装置情報を取得する工程と、 前記通信ネットワーク上を伝送される前記参加要求情報の到達可能範囲を表す情 報を設定する工程と、
前記設定された到達可能範囲を表す情報を前記参加要求情報に付加し、当該参 加要求情報を前記取得された各前記装置情報により特定される各前記ノード装置に 対して送信する工程と、を備え、
前記参加要求情報を受信したノード装置は、
前記オーバーレイネットワーク上における情報の転送先を規定する転送先テープ ルを含む返信情報を、前記参加要求情報の送信元である前記ノード装置に対して送 信する工程を備え、
前記オーバーレイネットワークに参加するノード装置は、
前記転送先テーブルを含む返信情報を受信する工程と、
前記受信された返信情報に含まれる転送先テーブルに基づいて、自己が使用する べき前記転送先テーブルを生成する工程と、を更に備えることを特徴とするネットヮ ーク参加方法。
PCT/JP2006/312988 2005-07-20 2006-06-29 ノード装置、コンピュータプログラムを記憶した記憶媒体、情報配信システム、及びネットワーク参加方法 WO2007010724A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/007,834 US7782867B2 (en) 2005-07-20 2008-01-16 Node device, memory medium saving computer program, information delivery system, and network participation method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005210077A JP4544072B2 (ja) 2005-07-20 2005-07-20 ノード装置、コンピュータプログラム、情報配信システム、及びネットワーク参加方法
JP2005-210077 2005-07-20

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/007,834 Continuation-In-Part US7782867B2 (en) 2005-07-20 2008-01-16 Node device, memory medium saving computer program, information delivery system, and network participation method

Publications (1)

Publication Number Publication Date
WO2007010724A1 true WO2007010724A1 (ja) 2007-01-25

Family

ID=37668610

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/312988 WO2007010724A1 (ja) 2005-07-20 2006-06-29 ノード装置、コンピュータプログラムを記憶した記憶媒体、情報配信システム、及びネットワーク参加方法

Country Status (3)

Country Link
US (1) US7782867B2 (ja)
JP (1) JP4544072B2 (ja)
WO (1) WO2007010724A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8196179B2 (en) 2007-09-26 2012-06-05 Hitachi, Ltd. Storage controller for controlling access based on location of controller
WO2013126309A1 (en) * 2012-02-24 2013-08-29 Nvelo, Inc. Method for input/output load balancing using varied performing storage devices

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953088B2 (en) * 2003-06-10 2011-05-31 Cisco Technology, Inc. Method and apparatus for packet classification and rewriting
GB0408868D0 (en) 2004-04-21 2004-05-26 Level 5 Networks Ltd Checking data integrity
GB0506403D0 (en) 2005-03-30 2005-05-04 Level 5 Networks Ltd Routing tables
WO2006095184A2 (en) 2005-03-10 2006-09-14 Level 5 Networks Incorporated Data processing system
GB0505300D0 (en) 2005-03-15 2005-04-20 Level 5 Networks Ltd Transmitting data
JP4544072B2 (ja) * 2005-07-20 2010-09-15 ブラザー工業株式会社 ノード装置、コンピュータプログラム、情報配信システム、及びネットワーク参加方法
GB0600417D0 (en) 2006-01-10 2006-02-15 Level 5 Networks Inc Virtualisation support
JP4692355B2 (ja) * 2006-03-30 2011-06-01 ブラザー工業株式会社 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
KR100942694B1 (ko) * 2006-12-04 2010-02-16 한국전자통신연구원 P2P(Peer to Peer)를 이용하는 협업 시스템및 그 방법
US9348884B2 (en) * 2008-05-28 2016-05-24 International Business Machines Corporation Methods and apparatus for reuse optimization of a data storage process using an ordered structure
US8254287B2 (en) * 2008-06-17 2012-08-28 Qualcomm Incorporated Methods and apparatus for optimal participation of devices in a peer to peer overlay network
US8484382B2 (en) 2009-03-11 2013-07-09 Qualcomm Incorporated Methods and apparatus for merging peer-to-peer overlay networks
JP5439036B2 (ja) * 2009-05-27 2014-03-12 エヌ・ティ・ティ・コムウェア株式会社 通信システム、通信管理装置、通信管理方法、及び通信管理プログラム
CN102461067B (zh) * 2009-06-24 2015-02-25 瑞典爱立信有限公司 供通信网络的网络管理中使用的方法和系统
US20130179549A1 (en) * 2012-01-06 2013-07-11 Fiber Logic Communications, Inc. Intelligent method of building up telecommunication network
JP6241622B2 (ja) * 2012-11-28 2017-12-06 パナソニックIpマネジメント株式会社 受信端末および受信方法
US9176917B2 (en) * 2013-02-28 2015-11-03 Hewlett-Packard Development Company, L.P. SAS latency based routing
EP3051885B1 (en) * 2013-10-18 2019-08-21 Huawei Technologies Co., Ltd. Method, device, and system for waking up access point device
WO2022202865A1 (ja) * 2021-03-24 2022-09-29 株式会社デンソー 分散型台帳システム及び方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08251227A (ja) * 1995-03-15 1996-09-27 Nec Corp ルーティングテーブル及びその作成方法,並びにそれを適用したルーティングテーブル作成装置
JPH11110360A (ja) * 1997-09-30 1999-04-23 Hitachi Software Eng Co Ltd トランザクション分配方法およびシステムおよびトランザクション分配処理用記録媒体
JP2001268128A (ja) * 2000-03-14 2001-09-28 Lucent Technol Inc パケットネットワークのソースノードのローカルトポロジーを形成する方法
JP2003069600A (ja) * 2001-08-28 2003-03-07 Nippon Telegr & Teleph Corp <Ntt> マルチホップネットワークの中継方法および無線ノード
JP2003140930A (ja) * 2001-10-31 2003-05-16 Hitachi Ltd ストレージ・ネットワークにおけるストレージ・リソース運用管理方法
JP2003169089A (ja) * 2001-11-29 2003-06-13 Ancl Inc ストリームデータ分散配信方法及びそのシステム
JP2004120234A (ja) * 2002-09-25 2004-04-15 Nec Mobiling Ltd パケット転送経路探索方法とこれを用いた無線端末
JP2004282374A (ja) * 2003-03-14 2004-10-07 Nippon Telegr & Teleph Corp <Ntt> エンティティ装置、リプライ通知制御方法、リプライ通知制御プログラム及びその記録媒体
JP2005109539A (ja) * 2003-09-26 2005-04-21 Nec Soft Ltd コンテンツの検索と配信を行うシステムと方法、及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728685A (ja) 1993-07-14 1995-01-31 Fujitsu Ltd ネットワークファイル共有システム
US20020049760A1 (en) * 2000-06-16 2002-04-25 Flycode, Inc. Technique for accessing information in a peer-to-peer network
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
JP4658412B2 (ja) 2001-09-20 2011-03-23 富士通株式会社 データ共有装置
US20030101253A1 (en) 2001-11-29 2003-05-29 Takayuki Saito Method and system for distributing data in a network
JP2003216521A (ja) 2002-01-28 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> コンテンツの配置方法、この方法のプログラム、このプログラムを記録した記録媒体
US7730207B2 (en) * 2004-03-31 2010-06-01 Microsoft Corporation Routing in peer-to-peer networks
US7418454B2 (en) * 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
US8650259B2 (en) * 2005-02-03 2014-02-11 International Business Machines Corporation Method and apparatus for increasing the search space or peer-to-peer networks using time-to-live boosting
JP4544072B2 (ja) * 2005-07-20 2010-09-15 ブラザー工業株式会社 ノード装置、コンピュータプログラム、情報配信システム、及びネットワーク参加方法
US7519734B1 (en) * 2006-03-14 2009-04-14 Amazon Technologies, Inc. System and method for routing service requests

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08251227A (ja) * 1995-03-15 1996-09-27 Nec Corp ルーティングテーブル及びその作成方法,並びにそれを適用したルーティングテーブル作成装置
JPH11110360A (ja) * 1997-09-30 1999-04-23 Hitachi Software Eng Co Ltd トランザクション分配方法およびシステムおよびトランザクション分配処理用記録媒体
JP2001268128A (ja) * 2000-03-14 2001-09-28 Lucent Technol Inc パケットネットワークのソースノードのローカルトポロジーを形成する方法
JP2003069600A (ja) * 2001-08-28 2003-03-07 Nippon Telegr & Teleph Corp <Ntt> マルチホップネットワークの中継方法および無線ノード
JP2003140930A (ja) * 2001-10-31 2003-05-16 Hitachi Ltd ストレージ・ネットワークにおけるストレージ・リソース運用管理方法
JP2003169089A (ja) * 2001-11-29 2003-06-13 Ancl Inc ストリームデータ分散配信方法及びそのシステム
JP2004120234A (ja) * 2002-09-25 2004-04-15 Nec Mobiling Ltd パケット転送経路探索方法とこれを用いた無線端末
JP2004282374A (ja) * 2003-03-14 2004-10-07 Nippon Telegr & Teleph Corp <Ntt> エンティティ装置、リプライ通知制御方法、リプライ通知制御プログラム及びその記録媒体
JP2005109539A (ja) * 2003-09-26 2005-04-21 Nec Soft Ltd コンテンツの検索と配信を行うシステムと方法、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8196179B2 (en) 2007-09-26 2012-06-05 Hitachi, Ltd. Storage controller for controlling access based on location of controller
WO2013126309A1 (en) * 2012-02-24 2013-08-29 Nvelo, Inc. Method for input/output load balancing using varied performing storage devices

Also Published As

Publication number Publication date
JP4544072B2 (ja) 2010-09-15
JP2007028400A (ja) 2007-02-01
US7782867B2 (en) 2010-08-24
US20090116406A1 (en) 2009-05-07

Similar Documents

Publication Publication Date Title
WO2007010724A1 (ja) ノード装置、コンピュータプログラムを記憶した記憶媒体、情報配信システム、及びネットワーク参加方法
JP4371056B2 (ja) ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等
US9515920B2 (en) Name-based neighbor discovery and multi-hop service discovery in information-centric networks
US9444722B2 (en) Method and apparatus for configuring routing paths in a custodian-based routing architecture
JP2010028551A (ja) コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法
US20080235321A1 (en) Distributed contents storing system, copied data acquiring method, node device, and program processed in node
JP2013502840A (ja) 親子リンクアグリゲーショングループを使用するサーバ側負荷均衡化
WO2006085519A1 (ja) 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等
JP2009508410A (ja) マルチデスティネーション・ルーティングを利用したピアツーピア・オーバーレイ通信の並列実行
WO2007086250A1 (ja) 情報配信システム、再登録メッセージ送信方法、ノード装置、及びノード処理プログラムを記録した記録媒体
JP4692414B2 (ja) 通信システム、コンテンツデータ送信可否決定方法、ノード装置、及びノード処理プログラム等
US20090041035A1 (en) Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program
US8819295B2 (en) Information communication system, first information processing device, method for processing information, and computer readable storage medium
US8332463B2 (en) Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded
WO2007097130A1 (ja) 情報通信システム、情報収集方法、ノード装置、及び記録媒体
WO2006120831A1 (ja) ネットワークシステム、接続確立方法、及びノード装置等
US20220337519A1 (en) Information centric network routing
JP4548271B2 (ja) 情報通信システム、情報通信方法、ノード装置、及びコンピュータプログラム
JP5212292B2 (ja) 情報通信システム、ノード装置、ノード装置確認方法及びプログラム
JP4623030B2 (ja) ツリー型放送システム、接続先決定方法、接続管理装置、及び接続管理処理プログラム等
JP4432626B2 (ja) マルチキャストツリー構築システム及び方法、ネットワークノード装置並びにサーバ装置
Sardouk et al. Agent-cooperation based communication architecture for wireless sensor networks
JP2005244880A (ja) 情報転送装置、情報転送システム及び情報転送方法
JP2008236538A (ja) ツリー型放送システム、コンテンツ放送方法、放送管理装置、及び放送管理処理プログラム
Vakayil Palakandy Named Data Networking on AIR

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06767605

Country of ref document: EP

Kind code of ref document: A1