CN102668513B - For in peer-to-peer network to the method and apparatus of positioning service - Google Patents

For in peer-to-peer network to the method and apparatus of positioning service Download PDF

Info

Publication number
CN102668513B
CN102668513B CN201080057597.3A CN201080057597A CN102668513B CN 102668513 B CN102668513 B CN 102668513B CN 201080057597 A CN201080057597 A CN 201080057597A CN 102668513 B CN102668513 B CN 102668513B
Authority
CN
China
Prior art keywords
node
service
search
network
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201080057597.3A
Other languages
Chinese (zh)
Other versions
CN102668513A (en
Inventor
T·P·丘
R·纳加拉简
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Optical Networks Israel Ltd
Original Assignee
Alcatel Optical Networks Israel Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel Optical Networks Israel Ltd filed Critical Alcatel Optical Networks Israel Ltd
Publication of CN102668513A publication Critical patent/CN102668513A/en
Application granted granted Critical
Publication of CN102668513B publication Critical patent/CN102668513B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • H04L67/107Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A kind of ability for Service supportive stationkeeping ability in peer-to-peer network (P2P) (such as setting loop network or other P2P network) is provided.In one embodiment, provide a kind of in P2P network to the method for positioning service.P2P network comprises multiple node (comprise perform in P2P network to the destination node of the method for positioning service).Destination node comprises search list, and search list comprises multiple entries of corresponding multiple node of mark P2P network.The method comprises detection to the request of search service in P2P network and towards at least one node initiation Service Search Request in the node of search list.Service Search Request is the request of at least one node to the Service supportive identifying P2P network.Service Search Request comprises the information of instruction service and the hunting zone for being used by the node receiving Service Search Request.

Description

For in peer-to-peer network to the method and apparatus of positioning service
the cross reference of related application
The application and title be " METHODANDAPPARATUSFORDECOMPOSINGAPEER-TO-PEERNETWORKANDU SINGADECOMPOSEDPEER-TO-PEERNETWORK ", on December 17th, 2009 submit to the 12/640th, No. 049 U.S. Patent application [acting on behalf of case ALU/805520] is relevant, and above-mentioned document by reference and entirety is incorporated into this.
Technical field
The present invention relates to equity (P2P) network field and more specifically still also not exclusively relate in P2P network positioning service.
Background technology
File-sharing has been that the focus that density search and basic unit use is long-standing.Realize file-sharing by such as File Sharing mode, these modes are specific designs and be embodied as the different shared file systems of the file sharing protocol with associated for this object.Implement to start from Napster, then continue through many multiple different shared file systems for different shared file system (such as gnutella, Kazaa, eDonkey, Winny and BitTorrent).Except these shared file systems, also in the new system of exploitation (such as ShareandPerfectDark).These shared file systems and associated protocol are commonly referred to as equity (P2P) shared file system/agreement or more apply referred to as P2P file-sharing.In addition, except P2P file-sharing application, also emerge in large numbers and architecturally apply different new class P2P from P2P file-sharing and apply (P2P TV (P2PTV)).
P2P file-sharing popular self-evident from recent Business studies.It is as follows that the recent Business studies of such as EllacoyaNetworks to the U.S. 1,000,000 broadband user show to divide main business type by component: network (web) (HTTP)-46%; Equity (P2P)-37%; Newsgroup-9%; Non-HTTP flows video-3%; Game-2%, ip voice (VoIP)-1%; And other-1%.The main cause that HTTP service components is high is the video stream traffic (such as from the business of YouTube, this business accounts for 9.8% of total business in research mentioned above) embedded.But the large percentage of business is still responsible in P2P file-sharing, and emerging in large numbers along with P2PTV, number of services is expected to sharply increase.
The overwhelming majority of existing P2P application relates to file-sharing; At least originally and non-fully equity but the great majority relating to the existing P2P application of file-sharing.In fact, originally most existing P2P application utilizes central server with Coordinating Activity between the member of P2P network.Such as in bitTorrent, although the download of different many information is equity, centralized servers (being called tracker in bitTorrent) is used for coordinating the activity of bitTorrent application.Similarly, many other P2P application such as relating to file-sharing also have similar characteristic (such as Napster and eDonkey).But use central server that existing P2P is applied to be subject to congested and fault effects and to make existing P2P apply the attractive target becoming security threat.
Unfortunately, although existing P2P application supporting document is shared, the ability of search service is not supported in existing P2P application.
Summary of the invention
Following embodiment solves various defect of the prior art, and these embodiments support the positioning service ability in equity (P2P) network (such as Chord (tree ring) network or other suitable P2P network).
In one embodiment, provide a kind of in P2P network to the method for positioning service.P2P network comprises multiple node, these nodes comprise perform in P2P network to the destination node of the method for positioning service.Destination node comprises search list, and this search list comprises multiple entries of corresponding multiple node of mark P2P network.The method comprises detection to the request of search service in P2P network and towards at least one node initiation Service Search Request in the node of search list.Service Search Request is the request of at least one node of the Service supportive of mark P2P network.Service Search Request comprises the information of instruction service and the hunting zone for being used by the node receiving Service Search Request.
Accompanying drawing explanation
Can pass through to consider hereafter to specifically describe easy understand instruction here in conjunction with the following drawings:
Fig. 1 depicts example Chord network;
Fig. 2 depicts the positioning service search and the Service Search Request message initiated in the example Chord network of Fig. 1 that one of node of the example Chord network in response to Fig. 1 initiates;
Fig. 3 depicts an embodiment for generating the method for Service Search Request message at the node of initiating service position request;
Fig. 4 depicts an embodiment for the method in intermediate node handles Service Search Request message;
Fig. 5 depicts an embodiment for the method in intermediate node handles service search response response message;
Fig. 6 depicts example Chord network, this diagram depicts the example performing the progressive service position search for service in example Chord network;
Fig. 7 depicts the exemplary search scope for performing the progressive service position search for service in the example Chord network of Fig. 6;
Fig. 8 depicts for using the progressive searching position search of aligning formula in an embodiment of the method for the node generation Service Search Request message of initiation service position request;
Fig. 9 A-9D depicts the service position search and the Service Search Request message initiated in the example Chord network of Fig. 1 that one of node of the example Chord network in response to Fig. 1 initiates, and these graphs illustrates the example performing the progressive searching position search of aligning formula for service in the example Chord network of Fig. 1;
Figure 10 depicts the high level block diagram being suitable for the all-purpose computer used when performing function described herein.
In order to contribute to understanding, identical label may time be used for indicating the identical element that each figure has.
Embodiment
There is provided positioning service ability for using during positioning service in equity (P2P) network.
Positioning service ability enables the destination node in P2P network in the position (such as searching for one or more other node of the Service supportive of P2P network) of P2P web search special services according to an embodiment.Positioning service ability reuses the existing search list of the node of P2P network to perform service position search.Can perform the service position search initiated by destination node make all nodal parallel to search list initiate Service Search Request, to all node serials of search list initiate Service Search Request until to positioning service or exhaustive search table, walk abreast to the Node subsets of search list, then initiate Service Search Request until to positioning service or exhaustive search table and/or use other suitable scheme any to any residue node serial of search list.In service position search, each Service Search Request sent to node comprise instruction institute request service information, comprise the peculiar information of service alternatively for the hunting zone that used by the node receiving searching request.Service Search Request can comprise the information of other type.The service position search that node is initiated will generate M search message at the most and make each node will receive M response message (wherein M is the size in units of position of the key space of P2P network) at the most, and the search therefore in whole P2P network is distributed as the individual node excess load making searching request and/or response message not make P2P network.Service position search capability enable the node in a P2P network by use positioning service ability search for object in the 2nd P2P network with identify a P2P network as lower node, these nodes are also the nodes of the 2nd P2P network.By understand describe above be only providing for the object introducing positioning service ability, for the general description of some embodiment of positioning service ability, therefore the embodiment of positioning service ability is not intended as by describing restriction above.
Here mainly describe in the background of special P 2 P network type (i.e. Chord network) and describe positioning service ability.In Chord network, respectively, be called that finger (finger) is shown at the search list of the node maintenance of Chord network, and refer to that each entry shown is called finger.The principle understanding positioning service ability can be applied to other P2P network type, therefore refer to finger table here and refer to can more generally be interpreted as the associated entry referring to search list and identification nodes with associating.
Fig. 1 depicts the high level block diagram of example Chord network.As shown in fig. 1, Chord network 100 comprises the multiple nodes 110 arranged in ring configuration in logic.Node 110 stores the file can shared between node 110 separately.Node 110 also trustship can make its service that can be used by other node 110.Node 110 comprises any node that can participate in Chord network.Such as node 110 can comprise computer, phone etc.Node 110 is configured to the various functions providing positioning service ability separately.
Can consider that the operation of Chord network 100 when providing positioning service ability is understood in the general operation of Chord network better by the example Chord network 100 of first composition graphs 1.
In Chord, the node of Chord network has the network connectivty via packet-based network (as such as IP network or other suitable network any), and Chord forms overlay network on the packet-based network of lower floor.The node of Chord network with the node ID of node for sequence is logically arranged in ring.Hash function is used to carry out the node ID of distribution node.
In Chord, the size of interstitial content based on the key space (address space) of Chord network of Chord network can be participated in.Generally speaking, key space is M position, and wherein M can be any suitable number.The examplary key space such as using 160 implementations to be provided in use in Chord network thus make the size of key space equal 2 160or ~ 1.45 × 10 48.Consistent hash function is used for inputting the value (that is: input being mapped in key space) being mapped to 160.From the output uniform mapping of hash function on key space.Understanding can be used such as any suitable hash function such as SHA (SHA-1), Message Digest 55 (MD5).The output of hash function provides for logically by the set of the node ID of inserting knot in Chord network when being mapped on key space.
In Chord, the active node existing node of network (participate in Chord) and inactive node (the potential node of Chord network can be added) with the node ID of node for sequence is logically arranged in ring.Chord is with around increasing sequence node ID value direction set in ring.In Chord network, the connection between the active node of Chord network is that the logic between the adjacent node in the active node in ring is communicated with (because inactive node is not connected to Chord network and is therefore only the potential node that can add Chord network as active node).In this way, from the angle of the goal activities node Chord network, next active node on ring is in the clockwise direction the offspring of goal activities node, and next active node on ring is in the counterclockwise direction the former generation of goal activities node.
In FIG, show events node and inactive node in order to know.In FIG, the key space of Chord network be 6 (or in clockwise manner from node ID 0 to 64 nodes of node ID 63 serial number) in FIG, node 0,2-3,5-7,9,12 ,-13,16-24,26,29-30,32,34-35,37,41,43,45,49,51,53-54,56-58 and 62 be movable, and remain node inertia.In FIG, logic between the active node of Chord network 100 is communicated with that instructs node 0 is connected to node 2, node 2 is connected to node 3, node 3 is connected to node 5 and by that analogy and node 62 is connected to node 0 to form ring.When Chord sets the sequence in ring, use with around added value on (wraparound) clockwise direction, node 2 is called the offspring of node 0, and node 62 is called the former generation of node 0, node 3 is called the offspring of node 2, and node 0 be called node 2 former generation and by that analogy.
As described herein, Chord network support file-sharing, each file wherein to be shared is stored on one or more node in the active node of Chord network.In Chord, the same Hash function of the node for identifying Chord network is used to be hashed in the same key space of the node for identifying Chord network by the filename of file.Hash output from hash file name is the file identifier for file.Therefore such as the Chord network that key space is 160, Chord network can hold 1.45 × 10 potentially 48individual file.In Chord, if having the Activity On the Node with the node ID of the file ID matches of file, then file is stored in this node, and if this node inertia, then file is stored in first active node with the node ID larger than file ID.
In FIG, Chord network 100 can hold and will store 64 following all files: node 0 storage file 0 and 63; Node 2 storage file 1 and 2; Node 3 storage file 3; Node 5 storage file 4 and 5; Node 6 storage file 6; Node 7 storage file 7; Node 9 storage file 8 and 9; Node 12 storage file 10,11 and 12; Node 3 storage file 13, node 16 storage file 14,15 and 16; Node 17 storage file 17; Node 18 storage file 18; Node 19 storage file 19; Node 20 storage file 20; Node 21 storage file 21; Node 22 storage file 22; Node 23 storage file 23; Node 24 storage file 24; Node 26 storage file 25 and 26; Node 29 storage file 27,28 and 29; Node 30 storage file 30; Node 32 storage file 31 and 32; Node 34 storage file 33 and 34; Node 35 storage file 35; Node 37 storage file 36 and 37; Node 41 storage file 38,39,40 and 41; Node 43 storage file 42 and 43; Node 45 storage file 44 and 45; Node 49 storage file 46,47,48 and 49; Node 51 storage file 50 and 51; Node 53 storage file 52 and 53; Node 54 storage file 54; Node 56 storage file 55 and 56; Node 57 storage file 57; Node 58 storage file 58; Node 62 storage file 59,60,61 and 62.
In a most basic embodiment, an only copy of any given file is stored in Chord network; But distinct methods can be used with the multiple copies (such as in order to the elasticity when node failure, load balancing etc.) at Chord network internal storage storage file.
Such as in one embodiment, the naming convention can decided through consultation by use carrys out multiple versions of storage file in Chord network to the filename that multiple copies distribution of file are slightly different.Such as, if the name of file is called " abc ", then can add extension name (such as "-n ") to the filename representing same file.In this example, multiple copies of file can be stored under title " abc ", " abc-1 ", " abc-2 " etc.In this way, because the multiple file names for " abc " file are not identical, export so the hash of different file name will produce different hash and therefore produce different file ID, thus multiple copies of file be stored in the different nodes of Chord network.
Such as in one embodiment, can by using multiple independent hash function with the multiple versions using filename to generate the next storage file in Chord network of multiple file IDs (instead of above-described execution mode wherein using single consistent hash function) for file.In this embodiment, the node sowing file in Chord network uses hash function to determine each possibility file ID of file and to use file ID to insert multiple copies of file in Chord network.In this embodiment, in Chord network search file node by determine file the file ID that likely file ID (carrying out hash file name by using each hash function) and then can using is determined come order or parallel search file.
About multiple versions of storage file in Chord network, will appreciate that, multiple versions of file can be stored in Chord network with other appropriate ways any.
As described herein, Chord enables node shared file.In order to enable the node shared file of Chord network, each node of Chord network needs can search for and finally determine the position of required file can obtain required file.
In Chord, each node maintenance search list.For the Chord network with M position key space, each node N has the search list of M entry by safeguarding, wherein the entry of search list is called " finger ".In the search list for node N, i-th point on ring with N at a distance of at least 2 i-1first node.Generally speaking, unless otherwise directed, term " i-th finger " will be used for representing the node that i-th entry of search list is pointed to.Such as in Chord network 100, the 3rd of node 0 refers to for node 5.
The search list of node provides efficient full search algorithm jointly, can determine the object's position in Chord network by this algorithm.
In FIG, key space is 6, and therefore each node has 6 fingers in its search list.In FIG, can search list as shown in Table 1 below on representation node 0:
Refer to 2 i-1 First node >=2 i-1
1 1 2
2 2 2
3 4 5
4 8 9
5 16 16
6 32 32
Table 1
In Chord, network is dynamic.When new node adds Chord network and existing node leaves Chord network, the search list of the active node at Chord network may be affected.Like this, in Chord, each active node K is by its association search table of regular update.Active node K can upgrade its search list with any appropriate ways.Such as active node K can pass through search node (K+2 i-1) upgrade its search list, because will be i-th value referred to for search list from the result performing this search.The active node understanding Chord network can be upgraded their search list with other appropriate ways any.
In Chord, except search list, its offspring of each node also in storage ring and the mark of its former generation.This information such as adds when network and existing node leave network at new node and safeguards for ring when node recovers from fault.In some Chord networks, in order to take precautions against the situation of multiple concurrent node failures, node can the mark of its N number of offspring in storage ring and its N number of former generation.
In Chord, the node of Chord network can be searched for and obtain file from other node of Chord network.Chord network support searching algorithm, by this algorithm, node can search for from other node Chord network can file.The Chord network 100 of Fig. 1 can be used by example to be illustrated the operation of Chord searching algorithm.In this example, suppose that node 2 wants search file 0 in the Chord network 100 of Fig. 1.Node 2 will access its search list to select other node by sending file request to it in other node.From the angle of node 2, due to file destination (i.e. file 0) file ID due to around and be greater than the value of the maximum finger of node 2 (i.e. node 34), so node 2 will send request the file request of node 34 search file 0 to node 34.Node 34 receives file request from node 2.Node 34 due to its non-storage file 0 thus will access it search list in case select in other node by transmit a document to it request other node.In node 34, search list comprises six fingers pointing to node 35,37,40,43,51 and 2.Because the object ID of file 0 refers between (being respectively node 51 and node 2) the 5th and the 6th, so the node (node 51) that node 34 is known to the 5th index forwards searching request.Node 51 receives file request from node 34.Node 51 is due to its non-storage file 0 so by its search list of access to select other node by sending file request to it in other node.In node 51, search list comprises six fingers pointing to node 53,53,56,62,3 and 19.Because the object ID of file 0 refers between (being respectively node 62 and node 3) the 4th and the 5th, so the node (node 62) that node 51 is known to the 4th index forwards searching request.Node 62 receives file request from node 51.Node 62 is due to its non-storage file 0 so by its search list of access to select other node by sending file request to it in other node.In node 62, search list comprises six fingers pointing to node 0,0,2,6,16 and 30.The object ID (node 0) of instruction file 0 in both referring to the 1st and the 2nd, so node 62 knows that node 0 is activity and forwards searching request to node 0.Node 0 in response to reception searching request directly or make it by intermediate node (i.e. node 62, node 51, node 34, be then node 0) to node 2 and have the such response of file 0.Then node 2 can directly obtain file 0 from node 0.Therefore from this example it is clear that among Chord, all nodes in Chord network coordinate supports Chord searching algorithm.
In Chord, Chord network is dynamic, because node can add Chord network at any time and leave Chord network.When node adds and leave Chord network, transmit file among the nodes.Such as add ingress can bear, at least storing, there is the responsibility of the file (and also storing other file potentially) of the file ID identical with the node ID adding ingress, and leave node and can deliver responsibility for storing one or more file to another node.Hereafter more specifically describe and the process adding and leave Chord network associate.
In Chord adition process, when node is wanted to add Chord network, add the node ID that ingress determines it.Add ingress by its title is hashed to the node ID that key value determines it.Such as, if the name of node is called node-xyzcompany-abc.com, then node ID will be the output (node-xyzcompany-abc.com) of SHA-1, wherein suppose to simplify that hash function is SHA-1 (but can use other suitable hash function any).In this example, the node ID for this node of order as determined according to Hash operation is K.
In Chord adition process, add the active node (being designated as initialization node) that then ingress K gets in touch with Chord network.At first glance, this initialization node can show as centralized servers, but situation is really not so, because: (a) initialization node can be that any node of current active in Chord network is (if such as node K1 and node K2 want to add Chord network simultaneously, then they can and different active node may be used as their corresponding initialization node to add network), and (b) initialization node except basic capacity without the need to providing any special ability (namely it can show just like other node any in Chord network the same).Node K can with any appropriate ways obtain potential alternative initial node listing (such as from one or more prior searches table, offspring's list on access node K and/or former generation list, from add administration configuration in ingress K information, from website etc.).In this example, the node ID of initialization node is made to be L.
In Chord adition process, add ingress K and then send the request that initialization node L search adds ingress K (namely search has the object of ID=K).In this point, two events may occur:
(A) answer of node L N value adds ingress K.Node N will be having just than the node of the node ID larger with adding K that ingress K associates among all active nodes.If therefore add ingress K will add Chord network, then node N should be the descendent node for adding ingress K.Then node K gets in touch with node N and inquires the mark of the ancestor nodes of node N to node N.In this example, the former generation of another node N is designated as node N-.Node N provides N-value to adding ingress K.Based on this information, then node K knows that he should insert itself by between node N and node N-in Chord network.
(B) answer of node L K value adds ingress K.This means movable in Chord network another node with this node ID of K.Although this situation very can not (such as in the Chord network 100 of 160 key spaces, the possibility that this situation occurs be 1.45 × 10 in most Chord network 48one of), but it or possible.Ingress K can be added slightly change its title (such as add timestamp, add number etc.) and use fresh code title to generate different node ID (being designated as K ') to solve this situation by allowing.Add ingress K ' and can again start process by sending new search request (namely start node L search adds the request of ingress K ') to initialization node L.
In Chord adition process, after determining adding the insertion point of ingress K, perform process and be used for inserting in Chord network adding node.Insert between node K-(candidate's former generation of K) and node K+ (the candidate offspring of K) and add ingress K, wherein at this moment before node K adds network, node K+ is the offspring of node K-.Add ingress K get in touch with descendent node K+ thus indicate it to want to add Chord network.Descendent node K+ (1) to adding that ingress K notifies that its former generation is node K-, (2) start should have any file (namely having the file of these file IDs of (k-)+1 to K) of responsibility and (3) add ingress K in the process adding Chord network to its ancestor nodes K-notice to adding ingress K transmission node K.After document backup completes, add ingress K and set up the connection with ancestor nodes K-.After being based upon the connection added between ingress K and ancestor nodes K-, adding ingress K and notify that it successfully adds Chord network to descendent node K+.Then descendent node K+ disconnects the connection with ancestor nodes K-, and both descendent node K+ and ancestor nodes K-upgrade their former generation and offspring's list.
In Chord departure process, execution process is used for enabling to leave node K and leaves Chord network in a controlled manner.The node K left has ancestor nodes (being designated as K-) and the descendent node (being designated as node K+) of associated.Leave node K get in touch with ancestor nodes K-and descendent node K+ thus notify that it is intended to leave Chord network and provides the mark of other node to two nodes to the two.Leave node K then to transmit to descendent node K+ and leave the current Chord of the representative network of node K and the All Files (namely there is the All Files of the file ID (comprising K) between+1 and K at (K-)) that stores.After document backup completes, add ingress and leave Chord network by disconnecting from ancestor nodes K-and descendent node K+.Then node K-and K+ set up connection (this can be initiated by any one in them) therebetween.Node K-and K+ also upgrades their former generation and offspring's list.
Chord adition process and Chord departure process are used for realizing except the dynamic change to Chord network except using, Chord also supports for realizing the Chord recovery process (namely Chord leaves with Chord adition process and is not used in and recovers from node failure) recovered from node failure.The node of Chord network regularly sends heartbeat message respectively to their former generation and descendent node, enables the node fast detecting node failure of Chord network thus.Generally speaking, from the heartbeat message of node by the mark of the former generation and descendent node that comprise the node that heartbeat message starts from it.In this way, when node receives heartbeat message from its descendent node, it knows the mark of the descendent node of its descendent node, and therefore when offspring's fault of node, node can be initiated the descendent node of the descendent node being connected to it and be maintained Chord ring.As above words, in some Chord networks, the list of a node maintenance k former generation and k offspring.In this case, Chord network can recover from the fault of k-1 successive nodes.In this case, even if for little k value, the possibility of k successive nodes fault is very little.In the Chord network that some are such, the value that can determine k is 2 × log 2(L), wherein L is the active node average number (namely usually have 100, the Chord of 000 active node, k will be ~ 34) in network.
Above-described Chord recovery process enables Chord network be repaired when node failure, but can lose at the file that the node of fault stores.Can address this problem with various ways, described above is wherein at least two kinds of modes.In addition, in another embodiment, the seed node by enabling the node of acquisition file become voluntarily for file solves this problem.To being described below of such embodiment.File originally introduced (wherein member node is called the seed node of file) in Chord network by the member of Chord network.Seed node obtains the hashed value (i.e. file ID) of filename and searches for the node with the node ID identical with file ID.Seed node is located to first active node with equal with file ID or larger than file ID node ID in Chord network.Seed node sends file to the node of location.Then other node of the acquisition of the time afterwards file of Chord network can become the seed node for file voluntarily.For file seed node will in Chord network this file of periodic search, and if seed node is to document alignment failure, then it will send file to suitable node as described above.In this way, in Chord network, " loss " file is recovered.
As described herein, except storage and shared file, Chord network also can Service supportive.Although existing Chord network enters supporting document share service, Chord network can finally also support except file-sharing service one or more other service.Service can from all nodes or Node subsets can with and can only can use from little Node subsets.Service can for compulsory or can be supported by node on voluntary basis for all or some nodes.The node of Service supportive can change between activity and inertia.The each feature understood to these features of the service contextual supported in Chord network can be changed based on one or more factor in the implementation of the COS supported, Chord network, similar factor.In view of the possibility of the service supported in Chord network, positioning service ability enables each node in Chord network search for special services and to the node locating providing this service.
Positioning service ability is being used for being favourable when supporting the node locating of special services, and this is at least for following reason: (1) its use the existing search list (namely on node without the need to new search list) that the node of Chord network is safeguarded; (2) search is distributed (such as when search service, the initiation node of initiating service search will initiate M message (wherein M is the length of the key space of Chord network) and therefore will receive M response message at the most at the most, thus initiation node can not the response of striking the beam property number flood); And (3) can perform service search stage by stage by orderly fashion, wherein each stage can be configured to have the high probability of success, thus make the message number that exchanges in Chord network minimum.Positioning service ability also has it can realize the such benefit of efficient broadcast (this is useful in numerous applications).
The service that can be arranged in Chord network comprises any service be suitable for by Chord network support.
The first service that the node of Chord network can be supported is " crossed loops search " service, and in this service, node can across the Chord web search file of multiple link.Generally speaking, Chord network on behalf interest group, wherein stores and the interested file of shared group.A node can belong to multiple Chord network.This point is clearly according to following understanding: may have different interest from the individual user that the node that can add Chord network associates, thus likely at least some node will belong to multiple set of Chord network.When node is in Chord network during search file, search node may to document alignment failure for a variety of reasons and in Chord network, these reasons such as: (a) file is never stored in (such as core creates file and the node of Chord network all not yet obtains file) in network; B () file may not make group feeling interest and is not therefore stored in this Chord network; C number of files that () stores because each node in Chord network can represent Chord network to it has the such fact of physical constraints, and (gap such as between node and its former generation too greatly and therefore node can not store in the so rare example of All Files; The such as strategy of Chord network generally designates and can not store older and/or less popular file and therefore these files will be unavailable in Chord network); And (d) node failure may make some files unavailable in Chord network; And (5) can make file disabled other reason any in Chord network.If the node of the search file of Chord network belongs to multiple Chord network, then search file in node each Chord network that can belong at it.If to document alignment in the Chord network that the node of Chord network can not belong at node, then then node can wish search file in one or more other Chord network.In this case, node can be wanted other node locating being connected to one or more other Chord network (namely except the Chord network searched for) in Chord network.Use crossed loops search service to perform by the search extension of file to one or more additional Chord network, position to use in across multiple Chord web search file by the node belonging to other Chord network of this service to Chord network.
The second service that the node of Chord network can be supported is " translation " service.Translation service such as can translate document between the languages.The node of such as Chord network can want the document becoming German from English Translation, and some nodes in Chord network can have this ability.Similarly, the node of Chord network can want the document translating into French from Italian, and some nodes in Chord network can have this ability.For this COS, node can be attempted not only positioning the node of support translation service, but more specifically to following node locating, these nodes support the concrete translation service (namely becoming another language from a kind of Language Translation) required for search node.
Above-described example ranges demonstrates in addition can by many difference services of Chord network support except file-sharing.Although therefore describe the object lesson of service that can provide in Chord network for simplicity when describing positioning service ability here, be not limited to use together with any special services by understanding positioning service ability.
Positioning service ability provides following algorithm, and by this algorithm, the node on Chord network can to the support on Chord network or one or more other node locating providing special services.
As described herein, existing Chord network enables the node on Chord network search for other node on Chord network or search and is stored in file in Chord network.Here the new search type that the positioning service ability described and describe enables Chord network support in Chord network, i.e. service position search, searched for by this service position, the node on Chord network can search for the position (support namely on search Chord network is as one or more other node of the special services of specifying in Service Search Request) of the special services on Chord network.
In order to simplify the description to positioning service ability, unless concrete instruction or description in addition, term " search " will be used to refer in the following paragraphs and search for for service position; But utilize the existing search list on the node of Chord network due to positioning service ability, so the Chord that the term used in the following paragraphs " search list " still refers to the node maintenance at Chord network " refers to " table.
Use example to describe, then make figure with the following method present positioning service ability with more generally term, these methods illustrate Chord network, participate in Chord network the process providing the different nodes of positioning service ability to perform.
As described in Fig. 1 and describing above, Chord network 100 has 6 key spaces (namely supporting 64 addresses), and 36 nodes in 64 nodes are movable (i.e. nodes 0,2,3,5,6,7,9,12,13,16,17,18,19,20,21,22,23,24,26,29,30,32,34,35,37,41,43,45,49,51,53,54,56,57,58,62).As described further in Fig. 1, subset (i.e. node 7,19, the 30 and 51) Service supportive of active node, be designated as service A (as diagram, use than and the darker shade of the shade that uses of the active node of non-Service supportive A to indicate each active node of Service supportive A).
As an example, with reference to Fig. 1, suppose that node 0 wants the node locating to the Service supportive A in the node of Chord network 100.In order to simplify the description to example, suppose that the node that initialization is searched for is node 0 (will understand without loss of generality, because if the node of initialization search is node N then can make identical hypothesis (because can perform identical process by only the node ID of all nodes in Chord network being deducted N value)).As above as shown in table 1 (hereafter repeating), there are at the search list of node 0 six entries comprising following information:
Refer to 2 i-1 First node >=2 i-1
1 1 2
2 2 2
3 4 5
4 8 9
5 16 16
6 32 32
Table 1
In this example, node 0 initiates to be used for the search to service A location in Chord network 100.Based on this search list safeguarded at node 0, node 0 sends M search request message by M the node known respectively to M index of search list and initiates search positioning service A.Go to i-th search request message referred to and draw together following information: the instruction of the service that (1) is to be positioned; And (2) hunting zone, the i.e. range of nodes that should search for of i-th finger.
Any proper standard (such as service identifier, one or more parameter etc. that can be used for describing service and its various combination) being used to specify service can be used to specify the instruction of service to be positioned.
Can by any appropriate ways designated identification the hunting zone to the range of nodes that i-th finger should be searched for.When describing hunting zone for the sake of clarity, make symbol represent [m, n) be used for representing that but scope from m to n (comprises m gets rid of n).
In one embodiment, for i-th finger, hunting zone will be [i-th finger, the i-th+1 finger).In this example, node 0 will send search message to node 2, node 5, node 9, node 16 and node 32, and search message will comprise hunting zone [2 respectively, 5), [5,9), [9,16), [16,32) and [32,0).
In another embodiment, for i-th finger, hunting zone can from [i-th finger, the i-th+1 finger) be reduced to [i-th finger, 2 i).In this example, for the 3rd finger of node 5, hunting zone will be [5,8) instead of [5,9) because (i+1) individual finger is greater than or equal to 2 ifirst node (namely 2 iand the i-th+1 refer between without active node).Although this embodiment provides the scope of minimizing, the scope reduced can not consider that (wherein scope is [2 to rare example i, the i-th+1 finger) new node before node 0 has upgraded its search list, may add network.Can by considering that the 3rd finger (this representation node 8 added the situation of Chord network 100 upgrade its search list at node 0 before) of node 0 understands this potential problems.
For the description of these hunting zone embodiments, be clear that two embodiments work all in practice, but based on [i-th finger, the i-th+1 finger) embodiment of hunting zone is than based on [i-th finger, 2 i) the embodiment more robust of hunting zone.
As described above, node 0 by send respectively to node 2,5,9,16 and 32 Service Search Request message initiate for Chord network 100 in the search that service A locates.The Service Search Request message that processing node 2,5,9,16 and 32 receives respectively for the object of continuation service position search.
When receiving Service Search Request message from node 0, each node in node 2,5,9,16 and 32 first determines whether the local service supporting request.If any node received the node 2,5,9,16 and 32 of Service Search Request message from node 0 determines local Service supportive, then the service search response message of its Service supportive of this node instruction makes response to node 0.For each node of the not local Service supportive of determination received from node 0 in the node 2,5,9,16 and 32 of Service Search Request message, this node initiates process to determine whether to initiate the positioning service of one or more search message for asking node 0 to one or more other node.One or more in the hunting zone that falling within the local search table to it is specified in the Service Search Request message of reception by the node (wherein not local Service supportive) receiving Service Search Request message refers to that (if there is) initiates Service Search Request message.
In this example, owing to receiving all non-Service supportive A of node 2,5,9,16 and 32 of Service Search Request message from node 0, then each node in node 2,5,9,16 and 32 determines whether that initiating one or more search message to one or more other node locates for the service A asked node 0.
Can by considering that the process performed at the node receiving Service Search Request message from node 0 is understood in the process performed by one of node receiving Service Search Request message (i.e. one of node 2,5,9,16 and 32) from node 0 better.
In this example, consider when receiving Service Search Request message from node 0 in the process that node 16 performs.Node 16 from node 0 range of receiving be [16,32) searching request.As indicated above, node 16 first determines whether it supports the service of asking.In this example, the non-Service supportive A of node 16.Then node 16 determines whether to initiate Service Search Request message to another or multiple node of Chord network 100.Node 16 be used in hunting zone that the Service Search Request message that receives from node 0 comprises [16,32) and use its local search table to determine whether to initiate Service Search Request message to another or multiple node of Chord network 100.The search list of instructs node 16 in table 2, as follows:
Refer to 2 i-1 16+2 i-1 First node >=2+2 i-1
1 1 17 17
2 2 18 18
3 4 20 20
4 8 24 24
5 16 32 32
6 32 48 48
Table 2
In this example, based on the hunting zone comprised in the Service Search Request message received from node 0 [16,32) and the search list of specifying above, node 16 will generate Service Search Request message to node 17,18,20 and 24.The Service Search Request message that node 16 is initiated, is similar to the Service Search Request message that node 0 is initiated, comprises: the instruction of the service that (1) is to be positioned; And (2) hunting zone, the i.e. range of nodes that should search for of i-th finger.In this example, to node 17,18,20 and 24 initiate Service Search Request message separately specified services A and comprise respectively hunting zone [17,18), [18,20), [20,24) and [24,32).Node 16 does not initiate Service Search Request message to node 32 (the 5th finger) and node 48 (the 6th finger), because those nodes are in beyond the hunting zone of specifying the Service Search Request message received from node 0.
Fig. 2 depicts the service position request that the node 0 in response to the example Chord network 100 of Fig. 1 is initiated and the Service Search Request message initiated in the example Chord network 100 of Fig. 1.
As described in Fig. 2, in Chord network 100, send Service Search Request message as follows: node 0 sends message to node 2,5,9,16 and 32; Node 2 sends message to node 3; Node 5 sends message to node 6 and 7; Node 9 sends message to node 12 and 13; Node 16 sends message to node 17,18,20 and 24; Node 18 sends message to node 19; Node 20 sends message to node 21 and 22; Node 22 sends message to node 23; Node 24 sends message to node 26 and 29; Node 29 sends message to node 30; Node 32 sends message to node 34,37,41 and 49; Node 32 sends message to node 33; Node 40 sends message to node 42 and 45; Node 49 sends message to node 51,53 and 56; Node 53 sends message to node 54; Node 56 sends message to node 57,58 and 62.
In this way, in whole Chord network 100, propagate the service position request for service A initiated by node 0, thus make each node of Chord network 100 can make response (and therefore node 0 can understand the mark of any node of Service supportive A) with the instruction of the service whether supporting request about it.
As described above, each Service Search Request message initiated in Chord network for the object to positioning service causes initiates corresponding with service search response message.Service search response message is back propagated towards the node of originating services location finding.In this way, to the node of the service of the support request of the node notice Chord network of originating services location finding.
About the propagation of service search response message, dispose the propagation of positive response message and negative response message by different way.
Receiving the given downstream node of Service Search Request message from upstream node, propagate positive response message from given downstream node immediately towards upstream node.Such as this can be in response to given downstream node and determines its local service supporting request, or this can be in response to given downstream node and receives positive response message from the node (namely given downstream node is to the downstream node of its initiation Service Search Request message) in the further downstream of downstream node.
Receive the given downstream node of Service Search Request message from upstream node, only after waiting for the response message from each downstream node (given downstream node initiates Service Search Request message to this downstream node), propagate negative response message from given downstream node towards upstream node.In this way, the response from its downstream node can be merged into the single response message that upstream nodes sends by given downstream node.
Can by considering that the example Chord network 100 of Fig. 1 and Fig. 2 understands the propagation of service search response message better.
In this example, when node 19 node 18 receives Service Search Request message, node 19 is made response to node 18 immediately thus is indicated its Service supportive A, and node 18 will pass on this response to node 16 immediately, and node 16 will back pass on response to node 0 again immediately.
In this example, when node 9 receives Service Search Request message from node 0, node 9 sends two Service Search Request message, because the non-Service supportive A of node 9 itself respectively to node 12 and 13.Here suppose that node 9 receives negative response from before receiving negative response from node 13 from node 12, the negative response that node 9 will store from node 12 when waiting for the response from node 13.Then, when receiving negative response from node 13, node 9 will be merged into single negative response two negative responses from node 12 and 13 and will send single negative response to node 0.
In the positioning service ability here described and describe, refer to message (and being more specifically response message) and refer generally to for application level messages.Can by considering following situation to understand to the needs of this differentiation: when node N sends message to node J, node J will reply node N to indicate its receipt message to node N with confirmation usually.If node N is non-confirmation of receipt after some time, then node N is by resend message (such as going up to a certain number of attempt).In the positioning service ability described and describe, suppose that this confirmation process is background processes here, and for simplification, this confirmation process is ignored to the description of positioning service ability here.In other words, the service search response message referred to here be not this can or the confirmation of background processes that can not run in Chord network.
In order to provide the better understanding of the embodiment to positioning service ability, describe and describe about Fig. 3-5 process that origination node and intermediate node perform when providing positioning service ability.
Fig. 3 depicts an embodiment of the method for generating Service Search Request message in origination node.
In step 302, method 300 starts.
In step 304, origination node detects service position request.The request of serving in P2P network is searched in service position request, for the service position (such as identifying one or more node of the Service supportive of P2P network) in mark P2P network.
Service position request is identified at the service that origination node needs or wishes.Service position request can be detected with any appropriate ways (which can depend on the mode initiating service position request in origination node).Can manually (such as by the user of origination node) or automatically (such as by origination node in response to detect trigger condition and) initiate service position request.
In step 306, origination node initiates the service position search for service.Service position search is to identify the process of the position of the service in P2P network for search service in P2P network.
Search list that origination node is safeguarded can be used in initiate service position search.Service position search can be initiated by initiating Service Search Request to one or more node of the search list safeguarded in origination node.Origination node can initiate Service Search Request by propagating one or more Service Search Request message towards one or more node in the node of search list.
The Service Search Request message that origination node generates and propagates comprises the information being suitable for using when at least one node locating enabling origination node to the service of the support request of P2P network.
Service Search Request message comprises the node ID of origination node, and the node that this node ID is used for by receiving Service Search Request message is used for making response to Service Search Request message.
Service Search Request message comprises the message id of Service Search Request message, this message id be used for by origination node and receive Service Search Request message node for mating request message and the response message of same services location finding.
Service Search Request message comprises the service identity information being suitable for using when the service of identification request.Such as service identity information can comprise in the service ID of identification service, service description information (being such as suitable for that use when identification service and/or that describe service one or more parameter, attribute and/or standard) etc. one or multinomial.
Service Search Request message comprises the hunting zone for being used by the node of initiating Service Search Request message to it that origination node is specified.Hunting zone is designated as [K1, K2), wherein K2 is the maximum of hunting zone and K1 is the minimum value of hunting zone.The hunting zone of Service Search Request message can depend on the service position search-type (such as whole network search, stage by stage web search, progressive web search etc.) of origination node initiation.
Can difference (such as can comprise less information, more information can be comprised, can different information etc. be comprised) by understanding the information comprised in Service Search Request message.
The mode (that is, the Service Search Request message number of origination node initiation and the timing of those Service Search Request message) of origination node initiation service position search depends on the service position search-type (such as whole network search, stage by stage web search, progressive web search etc.) of execution.
Origination node is initiated in an embodiment of whole network search wherein, from origination node to each finger propagated in parallel Service Search Request message referred to table.
Origination node is initiated in an embodiment of web search stage by stage wherein, refers to that Service Search Request message is propagated in serial from origination node towards one or more finger table.Can combine by referring to Fig. 6 and Fig. 7 and to describe here and other figure of describing understands use to web search stage by stage better.
Origination node is initiated in an embodiment of progressive web search wherein, as initial ranging, Service Search Request message is propagated concurrently from origination node to the subset of the finger finger table, and alternatively as one or more subsequent searches, propagate Service Search Request message serially towards the follow-up finger of one or more in finger table.Other figure that can describe here by referring to Fig. 8 and Fig. 9 combination and describe understands the use to progressive web search better.
In step 308, method 300 terminates.
Although describe and be described as to terminate, but after origination node initiates service position search, then origination node can continue through the process initiated for disposing one or more service request information initiated in response to origination node by origination node and one or more service search response message received and perform process when Service supportive location finding.
Although mainly describe and be described as serial here to perform, can at least part of simultaneously or with the step of the different order manner of execution 300 of the order described from about Fig. 3 and describe.Although mainly describe and describe an embodiment of the processing logic for performing Service Search Request message generation at intermediate node here, can be used for performing the processing logic of Service Search Request message generation at intermediate node by various embodied in other by understanding and still support the positioning service ability describing and describe here.
Fig. 4 depicts an embodiment for the method in intermediate node handles Service Search Request message.
In step 402, method 400 starts.
In step 404, intermediate node (being expressed as node J) receives Service Search Request message from upstream node (being expressed as node N) (this node can be promoter or the upstream intermediate node of service position search).
Search service request message comprises any information of the service being suitable for searching request.
Service Search Request message comprises the node ID of the originator (i.e. upstream node N) of Service Search Request message.
Service Search Request message comprises the message id of Service Search Request message.
Service Search Request message comprises the service identity information being applicable to use when the service of identification request.Such as service identity information can comprise in the service ID of identification service, service description information (describe service and/or be suitable for one or more parameter, attribute and/or the standard that use when identification service) etc. one or multinomial.
Service Search Request message comprises the hunting zone for intermediate node J that upstream node N specifies.Hunting zone is expressed as [K1, K2), wherein K2 is the maximum of hunting zone and K1 is the minimum value of hunting zone.
Understanding can be comprised different information in Service Search Request message.
In step 406, whether support that the service of asking is determined about intermediate node J.Can with any appropriate ways perform this determine (such as by compare service identity information at least partly with intermediate node J can information).
If intermediate node J supports the service of request, then method 400 continues step 408 (at this point, intermediate node J upstream nodes N initiates service search response message certainly).
If intermediate node J does not support the service of asking, then method 400 continues step 410 (at this point, intermediate node J initiates for determining whether service position search extension to the additional treatments of other node in the hunting zone of Service Search Request message of network).
In step 408, intermediate node J upstream nodes N sends service search response message certainly.Service search response message can comprise the service be suitable for origination node notice request to be subject to intermediate node support and to enable origination node ask any information of the service from intermediate node J.Such as service search response message can comprise intermediate node J identifier, about message be response to the Service Search Request message from upstream node N instruction (such as the message id of Service Search Request message), to support the instruction of the service of request, the network contact information for intermediate node J (such as IP address, port numbers etc.) etc. for being used when asking the service from intermediate node J by origination node about intermediate node J.Different information can be comprised by understanding service search response message.From step 408, method 400 continues step 434, and method 400 terminates in this step.
In step 410, intermediate node J identifies first finger of its search list.
As shown in Figure 4, integrating step 410 or what its appropriate time in office, intermediate node J also can perform for performing for determining whether service position search extension to the function of initializing used during the additional treatments of other node of network.Such as intermediate node j can initialization refer to counter (i) equal 1, arrange the first finger variable (F1) equal intermediate node j first finger (i.e. F1=first finger), the second finger variable (F2) is set equals empty, search listing is set equals empty (wherein search listing is that intermediate node J has represented the Service Search Request message that receives from upstream node N and sent the list of the node of Service Search Request message to it, and this list can be used for managing the response to any Service Search Request message that intermediate node J initiates) etc.Understanding can be utilized with any other appropriate ways and/or initialization less, more and/or different variable, list and/or similar parameter.
In step 412, first finger (F1) whether the maximum (K2) about hunting zone is greater than intermediate node J is determined.Whether intermediate node J verifies its first and refers to beyond hunting zone.If K2 is not more than F1, then method 400 continues step 414.If K2 is greater than F1, then method 400 continues step 416.
In step 414, intermediate node J upstream nodes N sends denial of service search response message.In this case, intermediate node J does not generate Service Search Request message.Service search response message can comprise be suitable for upstream nodes N notice scope [F1, F2) in node without Service supportive A time any information of using.From step 412, method 400 continues step 434, and method 400 terminates in this step.
In step 416, intermediate node J identifies (i+1) individual finger of its search list.When first time passes through method 400, this is second finger of the search list of intermediate node J.
In step 418, (i+1) the individual finger (F2) whether the maximum (K2) about hunting zone is greater than intermediate node J is determined.Intermediate node J verifies its (i+1) individual finger whether beyond hunting zone.
If K2 is greater than F2, then method 400 continues step 428 (namely the hunting zone of message is reduced to [F1, K2), and intermediate node J generate gained Service Search Request message be that intermediate node J finally generates in response to the Service Search Request message received from upstream node N).
If K2 is not more than F2, then method 400 continues step 420 (the gained Service Search Request message that namely intermediate node J generates is the last Service Search Request message that intermediate node J generates in response to the Service Search Request message received from upstream node N).
In step 420, intermediate node J to node F1 send have hunting zone [F1, F2) Service Search Request message.In this point, both F1 and F2 are less than K2, therefore hunting zone [F1, F2) hunting zone [K1, K2) within.Service Search Request message comprises the information generally included in Service Search Request message as described herein.
In step 422, intermediate node J adds node F1 to search listing, manages the response to any Service Search Request message that intermediate node J initiates for being used for by intermediate node J.
In step 424, intermediate node J upgrades first and refers to that variable (F1) equals the second finger variable (F2) and increase progressively to refer to counter (i=i+1).
In step 426, whether be greater than or equal to M about finger counter and carry out determining (wherein 2 mfor the size of key space and M is the size of the finger table on intermediate node J).
If refer to that counter i is not more than or equals M, then method 400 turns back to step 416.
If first refers to that counter i is greater than or equal to M, then method 400 continues step 428 (namely F1 is for finally referring to, and the gained Service Search Request message that intermediate node J generates is that intermediate node J finally generates in response to the Service Search Request message received from upstream node N).
In step 428, intermediate node J to node F1 send have hunting zone [F1, K2) Service Search Request message.Service Search Request message comprises the information generally included in Service Search Request message as described herein.
In step 430, intermediate node J adds node F1 to search listing and is used for being used for managing the response to any Service Search Request message that intermediate node J initiates by intermediate node J.
In step 432, intermediate node J starts timer and waits for one or more service search response message that one or more Service Search Request message initiated in response to intermediate node J receives by intermediate node J.
In step 434, method 400 terminates.
Although describe and be described as to terminate, but when the execution of method 400 causes intermediate node J to initiate one or more Service Search Request message, intermediate node J can continue through the process when process (such as by performing the method 500 described about Fig. 5 and describe) initiated for disposing one or more Service Search Request message initiated in response to intermediate node J by intermediate node J and one or more service search response message received performs the service position request initiated by origination node in support.
Although mainly describe and be described as serial here to perform, can at least part of simultaneously or with the step of the different order manner of execution 400 of the order described from about Fig. 3 and describe.Although mainly describe and describe an embodiment of the processing logic for performing Service Search Request message generation at intermediate node here, can be used for performing the processing logic of Service Search Request message generation at intermediate node by various embodied in other by understanding and still support the positioning service ability describing and describe here.
Fig. 5 depicts an embodiment for processing the method for service search response message at intermediate node (being expressed as node J).The method that intermediate node J performs for the treatment of service search response message for upstream nodes provides the object of service search response message, wherein intermediate node J receives Service Search Request message from this upstream node, and this message trigger intermediate node J sends one or more Additional Services search request message to one or more downstream node.
In step 502, method 500 starts.
In step 504, intermediate node J waits for one or more service search response message.In response to one or more Service Search Request message that intermediate node J initiates, intermediate node J expects service search response message (such as by performing the method 400 described about Fig. 4 and describe).
In step 506, intermediate node J determines whether to receive service search response message from downstream node.
If receive service search response message from downstream node, then method 500 continues step 510 (at this point, the process of service search response message starts).
If do not receive service search response message from downstream node, then method 500 continues step 508.
In step 508, determine whether timer expires.Intermediate node J can arrange timer (such as the initialization step when manner of execution 500, part or in any other suitable way as manner of execution 400) with any appropriate ways.Timer can be arranged to any suitable duration.
If timer not yet expires, then method 500 turns back to step 504 and continues step 506 (namely continue wait state, intermediate node J waits for that one or more service search from one or more downstream node responds during this state) from step 504.
If timer expires, then method 500 continues step 522 (at this point, intermediate node J upstream nodes initiates denial of service search response message, because intermediate node J not yet receives all service search response messages do not completed from downstream node in the duration distributed).
About step 504,506 and 508, understanding can otherwise be implemented this function.Such as in method 500, explicitly performs and determines whether to receive service search response message (step 506) and determine whether timer expires the step of (step 508), than the step much less performed in particular sequence in method 500, method 500 only can be held in wait state (i.e. step 504) until detect that reception service search response message is (at this point, method 500 continues step 510) or until detect that timer expires (at this point, method 500 continues step 522).Such as in method 500 not as explicit step watchdog timer, but the supervision of timer can be performed as background processes, thus no matter what some the process of method 500 is just performing, intermediate node J is detecting that timer has expired and method 500 (such as directly or leniently) can be made to continue step 522.Understanding can otherwise be implemented this function.
In step 510, determine that whether the service search response message received is legal.The legitimacy of the service search response message received can be determined with any appropriate ways.Such as in one embodiment, whether provide service search response message to determine the legitimacy of the service search response message received in response to the Service Search Request message from intermediate node J with checking by verification request ID of comprising in the service search response message received.
If service search response message is illegal, then method 500 continues step 512.
If service search response message is legal, then method 500 continues step 514.
In step 512, intermediate node J ignores the service search response message of reception.From step 512, method 500 turns back to step 504 (namely intermediate node J continues to wait for one or more service search response message).
In step 514, determine that the service search response message received is (not yet the node of institute's request service is supported in location) of affirmative (namely having located the node supporting institute's request service) or negative.
If service search response message is affirmative, then method 500 continues step 516.
If service search response message is negative, then method 500 continues step 518.
In step 516, intermediate node J upstream nodes sends service search response message certainly.
Service search response message can comprise and is adapted at upstream nodes and provides any information to using when being identified as the instruction of the node supporting institute request service.Such as service search response message can comprise intermediate node J identifier, about message be response to the search request message from upstream node instruction (such as the message id of Service Search Request message), about supporting the instruction of the node of institute's request service, the network contact information (such as IP address, port numbers etc.) etc. of the node for supporting asked service for being used when the service of the node of the service of asking self-supporting to be asked by origination node.Different information can be comprised by understanding service search response message.From step 516, method 500 continues step 524, and method 500 terminates in this step.
In step 518, intermediate node J removes source node from search listing.Source node is the source of the service search response message that intermediate node J receives.Search listing is one or more, intermediate node J expects that this list is used for managing the response to any Service Search Request message that intermediate node J initiates by intermediate node J as described about method 400 from the list of the node of the service search response message of these nodes.
In step 520, determine whether search listing is empty.This determines to expect about whether in fact having received intermediate node J all service search response messages (thus can send service search response message of association from intermediate node J upstream nodes) received.
If search listing is empty (namely having received all expection service search response messages), then method 500 continues step 522.
If search listing is not empty (namely not yet receiving all expection service search response messages), then method 500 turns back to step 504 and continues step 506 (namely continue wait state, intermediate node J still waits for one or more service search response message from one or more downstream node during this state) from step 504.
In step 522, intermediate node J upstream nodes sends denial of service search response message.
Service search response message can comprise the information being suitable for using when upstream nodes provides following instruction: intermediate node J does not support the service of asking and the downstream node that intermediate node J represents upstream node and gets in touch with all does not support the service of asking.From step 522, method 500 continues step 524, and in step, method 500 terminates.
In step 524, method 500 terminates.
Although mainly describe and be described as serial here to perform, can at least part of simultaneously or with the step of the different order manner of execution 500 of the order described from about Fig. 5 and describe.Although the embodiment mainly describing and describe the processing logic for performing the process of service search response message at intermediate node is here come, can be used for performing the processing logic of service search response message process at intermediate node by various embodied in other by understanding and still support the positioning service ability describing and describe here.
As shown here, Fig. 5 is chiefly directed to the service search response message process that intermediate node performs.But Fig. 5 also can be suitable for specifying in the service search response message process that origination node (namely at the node of initiating the service position request for service) performs.For origination node, carry out adaptation method 500 by removal step 516 and 522.About step 516 and step 522, these steps are nonessential for origination node, because origination node is the source (namely sending response without the need to origination node) of service position request.About removal step 516, method 500 can continue step 524 (such as once a node of the service of the support request of origination node identification nodes, origination node be indifferent to whether to have support other node any of the service of request) from step 514 if or any service search response message still do not complete (such as wherein when origination node may want the list of all nodes of the service of the support request of network), can continue to monitor Additional Services search response message.About removal step 522, method 500 continues step 524 from step 508 (its Timer expires) and step 520 (wherein search listing is for empty).
In service position search described above: (1) is if the key space of Chord network is M position, then the source of service position search will be issued to many M Service Search Request message and will receive M service search response message at the most, and intermediate node will send even less request message and receive even less response message, thus message does not make the node excess load of any Chord network; And the Service Search Request message (2) sent to downstream node from upstream node can make to generate one or more Additional Services search request message at downstream node, thus can generate for the service position search of service that can be distributed in one or more step or stage upper to M-1 step or the search sequence in stage at the most.From this point, in service position search described above, if have K active node when positioning service request in Chord network, then positioning service request generates K-1 message by when service position search procedure finally sends a Service Search Request message to each node source of request (get rid of service position) of Chord network in Chord network.These message distribution are in all nodes, thus message does not make any node excess load; But generally speaking, K is large number, therefore hope is reduced the message number generated in Chord network for the object to positioning service.
In one embodiment, can reduce by performing following progressive search the message number generated in Chord network for the object to positioning service, in the part at ring in this progressive search, serial is initiated to initiate the search for service for the search of serving instead of to all part parallels of ring stage by stage.This service position search-type is called that progressive service position is searched for here.
Can by first consider a kind of like this for reduce in Chord network for the method for the number of the message that the order of positioning service is generated understand better progressive service position search, wherein the method is in initial ranging, only search for part instead of the loopful of ring.In this case, owing to not searching for loopful, so this search can to the node locating of service providing request.In this case, can the successful probability of search of part of gimbal and the message number (size of the hunting zone namely in ring) in order to initiate positioning service.In this case, can determine that the size of hunting zone is as follows.
Can determine that the size of hunting zone is for guaranteeing the mode of little search mortality by considering that example is understood better.In this example, key space is made to be 2 m, and suppose usually on average to have in a network to provide 2 of service kindividual active node.Based on these hypothesis, the probability of the active node providing service is had to be α=2 for specific node ID k/ 2 m=2 -(M-K).In this example, also suppose node 0 initial search frequency range [1, L) interior search service A.Scope [1, L) in the probability of the node of service A will do not provided to be (1-α) l-1.In this example, order required search mortality is such as less than 2% (but can use any required search mortality), and this produces formula (1-α) l-1< 1/50.Use this formula and get the logarithm (taking e the end of as) of formula both sides, producing (L-1) × In (1-α) <-In (50), wherein In (1-α)=-α-α 2/ 2-α 3/ 3-α 4/ 4 and by that analogy.Generally speaking, α is very little number, and therefore more higher order term is not significantly and can be left in the basket.Therefore, above-mentioned formula can be similar to as follows :-(L-1) × α <-In (50) or L > (3.91) × 1/ α+1 or more simply for L > (3.91) × 1/ α (ignoring 1).
Also can determine that the size of hunting zone is for guaranteeing the mode of little search mortality by considering that more exemplary example is understood better.In this example, consider that key space is the Chord network of 160.Suppose on average have 100 in a network, 000 active node, wherein usually have among active node and 2 of service A is provided 10(or 1024) individual node (i.e. active node ~ 1%).In this case, α=2 -150and select L to be greater than (3.91) × 2 150.Make L=4 × 2 150=2 152.Utilize this selection to L, initial ranging is by 2 of cover ring 152/ 2 160=1/28=1/256 part.Therefore, in this example, initial ranging will have the successful possibility of 98%, and the message number exchanged in a network for the object to positioning service reduces according to the factor 256, and (the interstitial content approximation on the average namely in initial range is 400, therefore initial ranging generates only about 400 search messages, if instead of initial ranging travels through whole Chord network, 100,000 search message by generating).
As described above, initial ranging can not position and may only have possibility slightly the node of Service supportive.When initial ranging can not node locating to Service supportive, the second search can be initiated (such as in the above example to the Part II of ring in the source of service position search then, node 0 by initiation scope be [L, 2L) second service location finding).If the second search can not to the node locating of Service supportive, then the 3rd search can be initiated (such as in the above example to the Part III of ring in the source of service position search then, node 0 by initiation scope be [2L, 3L) the 3rd service position search).Therefore, source node can continue each part in multiple parts of the ring searching for Chord network until locate the node of Service supportive or searched for the node of whole ring and no-fix Service supportive, provides the progressive service position search that obviously can reduce the message number exchanged in Chord network in order to the node locating to Service supportive thus.
In above-described progressive service position search embodiment, (and therefore hunting zone) end points of search circular arc is L, 2L, 3L, 4L and by that analogy.Indicate this point in figure 6.
Fig. 6 depicts example Chord network, illustrates the example for performing the progressive service position search for service in example Chord network.In Chord network 600, key space is 6 (i.e. 64 ID), and the size of the hunting zone in each stage of searching for for progressive service position is 8 nodes.
In above-described progressive service position search embodiment, the end points of search circular arc is L, 2L, 3L, 4L and by that analogy, this may not be compatible with the search list (namely they are not the fingers of the search list in source node maintenance) safeguarded at the source node of initiating service position request.Thus when in one of circular arc (such as [n × L, (n+1) × L)) when performing search, may need to generate multiple service position search message.Depict this point in the figure 7.
Fig. 7 depicts the exemplary search scope for performing the progressive service position search for service in the example Chord network of Fig. 6.As shown in Figure 7, (k+1) individual finger drops on (i.e. individual finger < (the N+1) × L of n × L < (k+1)) in hunting zone, and kth refers to and (k+2) individual finger drops on outside hunting zone.In this case, in order to perform service position search in circular arc, source node is by as follows for generation two Service Search Request message: (a) refers to send the searching request that hunting zone is (n × L, (k+1) individual finger) to kth; And (b) to (k+1) individual finger send hunting zone be [(k+1) individual finger, (N+1) × L) a searching request.
In one embodiment, the search of progressive service position can be revised, thus the search of progressive service position is aimed at the search list of source node, is prevented the search wherein in a circular arc from needing the situation of multiple Service Search Request message thus.
Describe and describe an example embodiment of the progressive service position search of aligning formula about Fig. 8 and Fig. 9.
Fig. 8 depicts for using the progressive searching position search of aligning formula in an embodiment of the method for the node generation Service Search Request message of initiation service position request.
In step 802, method 800 starts.
In step 804, the estimation average number (being expressed as L) of the active node of node determination Service supportive.
The estimation average number of the active node of Service supportive can be determined from any appropriate sources of such information (such as from the local holder of node, from network server etc.).
The average number of the active node of Service supportive can be estimated with any appropriate ways.In one embodiment, the revision of service position searching algorithm described about Fig. 1-Fig. 6 and describe can be used originally to estimate the average number of the active node of Service supportive.In the service position searching algorithm described about Fig. 1-Fig. 6, once receive positive response message from downstream node, intermediate node forwards it with regard to upstream nodes.In one embodiment, the service position searching algorithm can revised about Fig. 1-Fig. 6 description and description makes each intermediate node to wait for all response messages of all downstream nodes of initiating Service Search Request message from it to it, then upstream nodes is forwarded and merge response (this response is by the node ID of at least one node comprised in the downstream node sum of Service supportive and these nodes and IP address) instead of upstream nodes forwards positive response immediately when one of downstream node of initiating Service Search Request message receives the first positive response from it to it.The process of this amendment can be performed with any appropriate ways instruction intermediate node.Such as in one embodiment, new designator can be added to Service Search Request message, so that about whether performing the process of the average number of the active node for estimating Service supportive to notify intermediate node.In one suchembodiment, for at least front search for several times of special services, new designator can be arranged to TRUE, thus source node receives at least several estimations of the active node number of Service supportive, thus node can determine the estimation of the average number of the active node of Service supportive accordingly.Then new designator can be arranged to FALSE, thus performs the process of amendment for each request of serving without the need to intermediate node.In another embodiment, can regularly perform by using when new designator is arranged to TRUE the service position searching algorithm described about Fig. 1-Fig. 6 the estimation upgrading the average number of the active node of Service supportive for the service position search of serving.Determine Service supportive active node average number estimation after, node then can use the estimation of the average number of the active node of Service supportive with use progressive service position search capability perform for service subsequent searches.In addition, except above-described embodiment, many changes of above-described embodiment can also be used.The search message of the part such as from origination node to network can have the designator being arranged to TRUE, and for remainder, designator is arranged to FALSE.In this example, but from the response of the search message with the designator being arranged to TRUE it is lower to be used for the average number accuracy of the active node estimating Service supportive; But the search message with the designator being arranged to FALSE will produce faster response, this is because do not wait for positive response.Also be possible by other methods many for understanding.Generally speaking, compromise between the message number etc. that the difference between distinct methods is included in the accuracy of estimation, the complexity of algorithm, response time, generation.
In step 806, node determines the index order (being expressed as K) of the initial ranging for service.The average number of the active node of Service supportive is used to determine the index order of initial ranging.By solving according to formula (L-1) × In (1-a) < In (1/b) the index order that L determines initial ranging, wherein (i) a is that node ID will have the probability of the active node of Service supportive, (ii) b is the probability of search for negative, and (iii) L is hunting zone.
In step 808, node sends Service Search Request message to K finger before the search list of node maintenance.Service Search Request message comprises any information (ID of such as Service Search Request message, the service identity information, hunting zone etc. that use when being suitable in identification request service) being suitable for using when the service of searching request.For i-th refer to hunting zone be [i-th finger, (i+1) individual finger), wherein i=1 ..., K.Understanding can be comprised different information in Service Search Request message.
In step 810, determine whether to identify Service supportive node (namely based on from step 808 initial service search request message and alternatively based on one or more follow-up service search request message from step 816).If identified the node of Service supportive, then method 800 has continued step 818, and at this point, method 800 terminates.If not yet identify the node of Service supportive, then method 800 continues step 812.
In step 812, determine whether to select last finger in search list (namely whether K=M).If selected the last finger in search list, then method 800 has continued step 818, and at this point, method 800 terminates.If not yet select the last finger in search list, then method 800 continues step 814.
In step 814, increase progressively K value.In step 816, node refers to send Service Search Request message to the kth of the search list at node maintenance.From step 816, method 800 turns back to step 810, determines whether at this some the node identifying Service supportive during the current generation of progressive search.
In step 816 (entering this step when identifying the node of Service supportive or not yet identify the node of Service supportive after all fingers processing search list), method 800 terminates.
About Fig. 8, in one embodiment, if (i+1) individual finger refers to identical with i-th, then do not send Service Search Request message (in order to avoid sending repetition message to finger in initial ranging) for (i+1) individual finger, prevent from sending multiple Service Search Request message to same node point thus.
Although mainly describe and be described as serial here to perform, can at least part of simultaneously or with the step of the different order manner of execution 800 of the order described from about Fig. 8 and describe.Although mainly describe and describe an embodiment of the processing logic for performing Service Search Request message generation at intermediate node here, can be used for performing the processing logic of Service Search Request message generation at intermediate node by various embodied in other by understanding and still support the positioning service ability describing and describe here.
Fig. 9 A-9D depicts the service position search and the Service Search Request message initiated in the example Chord network of Fig. 1 that one of node of the example Chord network in response to Fig. 1 initiates, and these graphs illustrates the example performing the progressive searching position search of aligning formula for service in the example Chord network of Fig. 1.
In the example of Fig. 9 A-9D, node 0 initiates service position request.Support that the estimation average number of the active node of the service of request equals eight (L=2 3=8), the initial ranging that this indicates for service will comprise first three finger (i.e. node 2,2 and 5) of the search list of node 0.Therefore to node 2 and 5 send hunting zone be respectively [2,5) and [5,9) Service Search Request message (node 9 is the 4th finger).Illustrate this initial ranging of node 0 in figure 9 a, wherein send Service Search Request message and node 2 to node 2 and 5 and send Service Search Request message to 3 and node 5 sends Service Search Request message to node 6 and 7.In this example, node 7 is the active nodes of service supporting request, therefore node 0 by initial ranging to supporting the node locating of the service of request and the progressive service position search of formula of aiming at will complete.
But in the example of Fig. 9 A-9D, for illustrative purposes, suppose the non-Service supportive of node 7, therefore initial ranging failure.When determining initial ranging failure, next then in its search list of node 0 refers to that (i.e. node 9) initiates the searching request for serving.Therefore to node 9 send hunting zone for [9,16) Service Search Request message.Illustrate this subsequent searches of node 0 in figures 9 b and 9, wherein send Service Search Request message and node 9 sends Service Search Request message to node 12 and 13 to node 9.In this example, scope [9,16) in without the active node of service supporting request, the progressive service position search of formula of therefore aiming at will continue.
In the example of Fig. 9 A-9D, when determining the failure of the first subsequent searches, next then in its search list of node 0 refers to that (i.e. node 16) initiates the second subsequent searches for serving.Therefore to node 16 send hunting zone for [16,32) Service Search Request message.In Fig. 9 C, illustrate this subsequent searches of node 0, wherein send Service Search Request message and node 16 sends Service Search Request message (and those nodes propagate Additional Services search request message) to node 17,18,20 and 24 to node 16.In this example, node 19 is the active nodes of service supporting request, therefore node 0 by initial ranging to the node locating of service supporting request, and the progressive service position search of formula of aiming at will complete.
But in the example of Fig. 9 A-9D, for illustrative purposes, suppose the non-Service supportive of node 19, therefore the second subsequent searches failure.When determining the failure of the second subsequent searches, next then in its search list of node 0 refers to that (i.e. node 32) initiates the 3rd subsequent searches for serving.Therefore to node 32 send hunting zone for [32,0) Service Search Request.In Fig. 9 D, illustrate this subsequent searches of node 0, wherein send Service Search Request message and node 32 sends Service Search Request message (and those nodes propagate Additional Services search request message) to node 34,37,40 and 49 to node 32.In this example, node 51 is the active nodes of service supporting request, therefore node 0 by initial ranging to the node locating of service supporting request, and the progressive service position search of formula of aiming at will complete.
In the progressive service position search of aligning formula, origination node sends multiple Service Search Request message in initial ranging, but origination node sends single Service Search Request message in each follow-up phase.Self-evident the example of this exemplary method from Fig. 8 and Fig. 9 A-9D.Generally speaking, hunting zone for front twice search covers L node ID separately, and after this, the hunting zone of subsequent searches doubles (such as the 3rd approximate 2 × L the node ID of search covering in each stage, 4th this search covers approximate 4 × L node ID, and by that analogy).
As described herein, progressive service position search is a kind of suitable means for reducing in order to the message number exchanged in Chord network supporting the node locating of the service of request.
In one embodiment, can reduce by the node ID of one or more node identified previously as supporting the node of the service of request at the node high-speed cache of network the message number exchanged in Chord network in order to the node locating of the service to support request.In this embodiment, from the angle of the source node of node, the node ID of one or more node that previously can have been identified as supporting the node of the service of request by source node at source node high-speed cache.In this embodiment, when search service, search message can comprise as underflow indicator, this designator can be set as the information that instruction source node is ready to accept high-speed cache, therefore, when node receives such searching request, node can make response by the node ID of the high-speed cache from it.In this way, reduce search message number, and the response time is faster; But have the risk that the information of high-speed cache is outmoded.In one embodiment, in order to avoid stale information, to only be included in the internally cached node of final time amount X in the response, wherein can as needs or wishing setup time measure X (such as last 30 minutes, last 4 hours, last day etc.).
In one embodiment, message number in order to exchange in Chord network supporting the node locating of the service of asking can be reduced by piggyback in the heartbeat message that exchanges between the node of Chord network to exchange the information which node which to support serve about.As described herein, the node in Chord network regularly sends heartbeat message to its former generation and descendent node.The heartbeat message that node sends to its former generation comprises the node ID of an offspring (or K offspring) of node, and the heartbeat message that similarly, node sends to its offspring comprises the node ID of a former generation (or K former generation) of node.In this embodiment, except former generation/offspring's information, node send heartbeat message by comprise instruction this node support any service information, enable each node know the service ability of its neighbours thus.In this way, reduce to need the message number exchanged in Chord network to positioning service.
As described above, the service that Chord network can be supported is crossed loops search service.Crossed loops search service enable destination node initiate at destination node be not its member one or more other Chord network on the request of object search.
Generally speaking, the member of Chord network forms the group wanting to share the file relevant with some common interests such as video, academic research theme of the music of such as a certain type, a certain type.User can have multiple interest, and therefore his or his node can add multiple Chord network simultaneously.If to document alignment failure in the Chord network that the node of search file belongs at it, then node may wish that this can use crossed loops search service to realize by the search extension for file to one or more additional Chord network.
Use crossed loops search service, it is that the Chord network of its member is with to any node locating belonging to one or more other Chord network by search for the origination node of search file.Origination node initiates searching request.In searching request, origination node specified services is crossed loops search service.Searching request can comprise the peculiar information of Additional Services.
The peculiar information of Additional Services can comprise without search listing, and this list is the Chord network ID list of the origination node Chord network of search file wherein.In this case, when making response to this request, these Chord networks should be left in the basket (if namely receive the member that the node of searching request is the Chord network except Chord network except indicating in without search listing, then this node only will send positive response).
The peculiar information of Additional Services can comprise peculiar search listing, and this list is the Chord network ID list that origination node wants the Chord network of search file wherein.In this case, when making response to this request, all Chord networks except these Chord networks should be left in the basket (if the node namely receiving searching request is the member of one of the Chord network indicated in peculiar search listing, then this node only will send positive response).
Use crossed loops search service, the origination node of search file will receive search response in response to searching request.In this case, any search response certainly comprises the Chord network ID of the Chord network triggering search response certainly.When receiving affirmative search response, origination node can attempt obtaining file from the Chord network of mark in any appropriate manner.
In one embodiment, when receiving affirmative search response, the Chord network that origination node can be attempted by adding inlet identity obtains file from the Chord network of mark.In this case, once add Chord network, then origination node can initiate the search for file in the Chord network added.
In one embodiment, once receive certainly search response, origination node can ask the search initiating for file in the Chord network of mark by the node on behalf origination node that search response certainly makes response.This can be useful when origination node or can not be reluctant the Chord network adding inlet identity, such as when origination node is not used for when adding the mandate of Chord network of inlet identity, when origination node not or be reluctant contribution resource requirement so that when adding and leave identified Chord network (imply when node adds Chord network hypothesis be node will represent the multiple file of the Chord network storage and add and leave Chord network need spended time and Internet resources because needs transmit file among the nodes), when origination node can not add the Chord network of inlet identity technically (such as when origination node be Chord network that only IPv4 node identifies is IPv6Chord network or when origination node be Chord network that only IPv6 node identifies is IPv4 network) etc.Origination node can by sending the search that search request message asks to initiate for file in the Chord network of mark by the node on behalf origination node that search response certainly makes response to the node making response with certainly search response.In this case, the search request message that origination node sends draws together the full name of the file of origination node search, because the Chord network of mark can have the key space different from the Chord network of origination node and/or use different hash function.If file is not positioned at the Chord network of mark, then origination node receives negative search response.If file is positioned at the Chord network of mark, then the node of storage file transmits a document to origination node.File can be stored in or not be stored in the Chord network of origination node.
Although mainly describe and describe the embodiment of wherein service implementation stationkeeping ability in the P2P network (i.e. Chord network) of particular type here, P2P positioning service ability can be implemented in the P2P network of other type any being suitable for Service supportive search capability.
In one embodiment, can positioning service ability be made usually to be suitable for using in based on the P2P network of DHT by adaptation services stationkeeping ability.In one suchembodiment, for it provides the P2P network of positioning service ability to have well construction geometry (such as Chord, geometry is ring), and the concept (such as Chord, the circular arc that " region " is ring) in " region " can be defined according to this geometry.When the source node of the P2P network based on DHT initiates service position search, the node of source node in its routing table sends Service Search Request, and comprise the description to such as lower area to each Service Search Request that node sends, the node receiving this Service Search Request should make search be limited to this region.When intermediate node receives Service Search Request, intermediate node determine it whether local know support the node of the service of request (such as it can identify itself, it former generation, it offspring, from one or more node etc. of cache information available on intermediate node and its various combination).If intermediate node this locality mark supports the node of the service of request, then response is made in intermediate node positive response.If intermediate node locally can not identify the node supporting the service of asking, then intermediate node is based on its routing table propagation Service Search Request.The propagation of intermediate node to Service Search Request has by the information comprised in the Service Search Request that intermediate node receives and the scope limited from the information of the routing table of intermediate node.Can adaptive be used for making the overlap between hunting zone minimum to the hunting zone of the Service Search Request of positioning service to improve the efficiency of search; But in some cases, if at least some overlap simplifies hunting zone describe requirement, then this overlap can be wish.In such broad embodiment of positioning service ability, also can utilize other abilities many (be such as used for estimating searching for successful search probability when being limited to region, perform progressive search etc. and its various combination) described about Chord network and describe here.
Although describe here and describe the embodiment wherein providing positioning service ability, to describe understanding here and the positioning service ability that describes can be suitable for being provided for the information distribution capability of distributed intelligence in P2P network.In such embodiments, the Service Search Request message described in the background of service position search capability here can be suitable for being used as information allocation message in information distribution capability.In such embodiments, can implementation information distribution capability make it possible to one or more range of nodes of all nodes of P2P network, P2P network, P2P network meet one or more node of one or more standard etc. and its various combination distributed intelligence.
Figure 10 depicts the high level block diagram being suitable for the computer used when performing function described herein.As shown in Figure 10, computer 1000 comprises processor unit 1002 (such as CPU (CPU) or other appropriate processor), memory 1004 (such as random access memory (RAM), read-only memory (ROM) etc.), service position search module/process 1005 and various input-output apparatus 1006 (such as user input device (such as keyboard, keypad, mouse etc.), user's output equipment (such as display, loud speaker etc.), input port, output port, receiver, transmitter and memory device (such as magnetic tape drive, disk drive, hard drive, disc drives etc.)).
It should be noted that and with software and/or the function describing and describe can be implemented here with the combination (such as using all-purpose computer, one or more application-specific integrated circuit (ASIC) (ASIC) and/or other hardware equivalent any) of software restraint.In one embodiment, service position search procedure 1005 can be loaded in memory 1004 and to be performed to implement function as discussed above by processor 1002.Like this, service position search procedure 1005 (comprising associated data structures) can be stored on such as RAM memory, magnetic or the computer-readable recording medium such as optical drive or dish or carrier.
The part that imagination is embodied as the function discussed here of software can be configured on the node of peer-to-peer network with any appropriate ways (such as provide during manufacture node, loaded by keeper at node, server or other appropriate sources download etc. from network, and its various combination).Some steps imagined in the step discussed as software approach here can be implemented on (such as the circuit coordinating step to perform various method with processor) in hardware.The part of function/unit described herein may be embodied as computer program, and wherein computer instruction is being made to call or otherwise provide method described herein and/or technology by the operation of fitting computer during computer disposal.Instruction for calling the inventive method can be stored in fixing or removable media, in broadcast or other signal bearing medium via data flow and/or be stored in according in the memory in the computer equipment of command operating.
Indicate various aspects of the present invention in the claims.Bright of the present invention in these and other at following numbering clause middle finger.
1., for a method for search service in equity (P2P) network comprising multiple node, described method comprises:
Detect the request to search service in described P2P network at the destination node of described P2P network, wherein said destination node comprises search list, and described search list comprises multiple entries of the corresponding multiple node identifying described P2P network; And
Service Search Request is initiated towards at least one node in the node identified in described search list, wherein said Service Search Request is the request of at least one node of serving described in the support to the described P2P network of mark, and wherein said Service Search Request comprises and indicate the information of described service and for by the hunting zone of described node use of initiating described Service Search Request towards it.
2. the method according to clause 1, all described nodal parallel wherein towards described search list initiates described Service Search Request.
3. the method according to clause 1, the described node serial wherein towards described search list initiates described Service Search Request until mark is supported at least one node of described service or entered to determine that the described node of the described P2P network of row does not all support the determination of described service.
4. the method according to clause 3, described i-th node wherein in response to i-th node reception negative search response from described search list towards described search list initiates Service Search Request.
5. the method according to clause 1, wherein towards the described Service Search Request of the parallel initiation of subset of the described node of described search list, the subset of the described node of wherein said search list is included in the node identified in front K entry of described search list.
6. the method according to clause 5, also comprises:
If receive search response certainly from least one node of the subset of the described node of described search list, then initiate the request for described service; And
If do not receive search response certainly from least one node of the subset of the described node of described search list, then:
Towards not in the subset of the described node of described search list, the next node that associates with next entry of described search list initiates to be used in described P2P network the follow-up service searching request of described positioning service.
7. the method according to clause 5, also comprises:
Use the estimation average number of the node of serving described in the support of described P2P network to identify the subset of the described node of described search list.
8. the method according to clause 7, the subset of the described node of described search list is wherein identified by solving formula (L-1) × In (1-a) < In (1/b) for L, wherein (i) a is that node ID will have the probability of the active node supporting described service, (ii) b is described search is the probability negating, and (iii) L is described hunting zone.
9. the method according to clause 7, wherein from the local storage of described node or from network server determine the described estimation average number of the node of serving described in the support of described P2P network.
10. the method according to clause 7, the method wherein by comprising following operation estimates the described estimation average number of the node of serving described in the support of described P2P network:
Each described node towards described search list initiates respective service search request message, and described Service Search Request message is configured to each described node realizing serving described in the support of P2P network described in described destination node marking; And
Receive respective service search response message from each described node of described search list, described service search response message comprises the information used when deriving the interstitial content of serving described in the support of described P2P network the instruction of the interstitial content identified as supporting the node of described service by this node of described P2P network or be suitable for; And
Process described service search response message for calculating the estimated number of the node of serving described in the support of described P2P network, the described estimated number of the node of serving described in the support of wherein said P2P network is suitable for using when determining the described estimation average number of the node of serving described in the support of described P2P network.
11. methods according to clause 1, also comprise:
From each node reception search response of initiating towards it at least one node described in described Service Search Request the described node of described search list, described search response indicates described node whether to support described service or has identified another node supporting described service.
12. methods according to clause 1, also comprise:
When described target node accepts indicates the affirmative search response to the node locating of the described service of support, from described destination node towards supporting that the described node of described service initiates the request for described service.
13. methods according to clause 12, wherein said search response certainly comprises the node identifier of the described node supporting described service and supports the IP address of described node of described service.
14. methods according to clause 1, wherein said service is the crossed loops search service of at least one other node for identifying described P2P network, and at least one other node described is the member of another P2P network.
15. methods according to clause 14, also comprise:
When described target node accepts indicates the affirmative search response to the node locating of the member as another P2P network, perform at least one operation in following operation:
The process adding another P2P network described for described destination node is initiated from described destination node; And
Described node from described destination node towards the member as another P2P network described initiates to allow the described node of the member as another P2P network described initiate in another P2P network described for the request of the search of object.
16. 1 kinds of devices for search service in equity (P2P) network comprising multiple node, described device comprises:
Memory, for memory search table, described search list comprises multiple entries of the corresponding multiple node identifying described P2P network; And
Processor, is configured for:
Detect the request to search service in described P2P network; And
Service Search Request is initiated towards at least one node in the node identified in described search list, wherein said Service Search Request is the request of at least one node of serving described in the support to the described P2P network of mark, and wherein said Service Search Request comprises and indicate the information of described service and for by the hunting zone of described node use of initiating described Service Search Request towards it.
17. for the method to positioning service in equity (P2P) network comprising multiple node, described method comprises:
At the target node accepts Service Search Request of described P2P network, wherein said Service Search Request comprises the information of described service and the hunting zone for described destination node of instruction request;
What use the described information of the described service of instruction request determines whether described destination node supports described service at least partly;
When determining that described destination node supports described service, initiate from described destination node the service search response message that the described destination node of instruction supports described service; And
When determining that described destination node does not support described service, determine whether that at least one other node from described destination node towards described P2P network initiates Service Search Request.
18. methods according to clause 17, wherein when determining not initiate Service Search Request from described destination node towards at least one other node of described P2P network, described method also comprises:
Initiate negative response message from described destination node, described negative response message indicates described destination node to use described hunting zone can not to the node locating supporting described service.
19. methods according to clause 17, wherein when determining to initiate Service Search Request towards at least one other node of described P2P network, described method also comprises:
For the new Service Search Request of being initiated by described destination node is determined hunting zone, the described hunting zone that the described Service Search Request being wherein used in described target node accepts comprises and the search list be stored on described destination node are to determine described hunting zone; And
Described new Service Search Request is initiated, the described information that wherein said new Service Search Request comprises the described service of instruction request and the described hunting zone determined for described new Service Search Request from described destination node.
20. methods according to clause 17, wherein determine whether that initiating Service Search Request towards at least one other node of described P2P network comprises:
Determine whether any entry of the described search list of described destination node identifies the node in the described hunting zone of the described Service Search Request dropping on described target node accepts; And
If the entry of the described search list of described destination node does not all identify the node dropped in the described hunting zone of described Service Search Request, then determine that described destination node is without the need to initiating any Service Search Request; And
If at least one entry of the described search list of described destination node identifies at least one node dropped in the described hunting zone of described Service Search Request, then at least one node described corresponding dropped in the described hunting zone of described Service Search Request from described destination node towards at least one entry described in the described search list of described destination node initiates at least one Service Search Request.
21. methods according to clause 17, wherein when determining to initiate Service Search Request towards at least one other node of described P2P network, described method also comprises:
Receive the service search associated towards the Service Search Request that another node of described P2P network is initiated with described destination node to respond;
If described service search response is not legal response, then ignores the response of described service search and continue to wait at least one Additional Services search response;
If described service search response is legal response, then determine that the response of described service search is positive response or negative response:
If described service search response is positive response, then initiate service search response certainly from described destination node towards the node receiving described Service Search Request from it;
If described service search response is negative response, then determine whether described destination node has received all expection service search response messages;
If described destination node not yet receives all described expection service search response messages, then continue to wait at least one Additional Services search response;
If described destination node has received all described service search responses, then initiate denial of service search response from described destination node towards the node receiving described Service Search Request from it.
22. for the device to positioning service in equity (P2P) network comprising multiple node, described device comprises:
For the device of the target node accepts Service Search Request at described P2P network, wherein said Service Search Request comprises instruction one or more standard of described service and the hunting zone for described destination node;
Determine whether described destination node supports the device of described service at least partly for what use one or more service search standard described;
For initiating from described destination node the device that the described destination node of instruction supports the service search response message of described service when determining that described destination node supports described service; And
For when determining that described destination node is not supported to determine whether during described service that at least one other node from described destination node towards described P2P network initiates the device of Service Search Request.
Although specifically illustrated and described the various embodiments being incorporated to the present invention's instruction here, those skilled in the art easily can design the embodiment of other changes many being still incorporated to these instructions.

Claims (24)

1., for a method for search service in equity (P2P) network comprising multiple node, described method comprises:
Detect the request to search service in described P2P network at the first node of described P2P network, wherein said first node comprises multiple destination aggregation (mda)s of the multiple nodes identifying described P2P network;
Based on the estimation average number of the active node of this service of support of described P2P network, determine the search range used in the described service of search by described first node in described P2P network;
Based on the search range used in the described service of search by described first node in described P2P network, select the Node subsets identified in described bar destination aggregation (mda); And
From described first node towards selected Node subsets, a node initiates Service Search Request, wherein said Service Search Request is the request of at least one node of serving described in the support to the described P2P network of mark, wherein said Service Search Request comprises and indicates the information of described service and the hunting zone for being used by the described node of initiating described Service Search Request towards it, and the node identifier scope of described P2P network is specified in the described hunting zone wherein used by the described node of initiating described Service Search Request for it.
2. method according to claim 1, wherein determines that the search range used in the described service of search by described first node in described P2P network serves relevant probability based in described P2P network described in successful search further.
3. method according to claim 1, wherein determine that the search range used in the described service of search by described first node in described P2P network is determined based on (L-1) * ln (1-a) <ln (1/b), wherein (i) a is that a node identifier will have the probability of the active node supporting described service, (ii) b is described search is the probability negating, and (iii) L is the search range that first node uses described in the described service of search.
4. method according to claim 1, wherein select the Node subsets identified in described bar destination aggregation (mda) to comprise based on the search range used in the described service of search by described first node in described P2P network:
Based on the described bar destination aggregation (mda) used by described first node in the described service of search in described P2P network and search range, determine that first node will initiate the interstitial content (K) of Service Search Request to it described in described bar destination aggregation (mda).
5. method according to claim 1, wherein selected Node subsets comprises the multiple nodes from described bar destination aggregation (mda), and described method comprises further:
Many Service Search Request are initiated to each multiple nodal parallel from described bar destination aggregation (mda) from described first node.
6. method according to claim 1, comprises further:
Search response is not certainly received from least one node described Node subsets based on determining:
The next node be not in described bar destination aggregation (mda) associated by next entry in the Node subsets of described bar destination aggregation (mda) initiates follow-up service searching request, serves for described in described P2P network inner position.
7. method according to claim 6, comprises further:
Based on the search range used by described first node in the described service of search in described P2P network, determine by the hunting zone of the described next node initiating described Service Search Request for it.
8. method according to claim 1, also comprises:
When described first node receives the affirmative search response indicated to the node locating of the described service of support, from described first node towards supporting that the described node of described service initiates the request for described service.
9., for a device for search service in equity (P2P) network comprising multiple node, described device comprises:
Processor and the memory that can be connected to described processor communicatedly, described processor is configured to:
Detect the request to search service in described P2P network at the first node of described P2P network, wherein said first node comprises multiple destination aggregation (mda)s of the multiple nodes identifying described P2P network;
Estimation average number based on the active node of this service of support of described P2P network determines the search range used in the described service of search by described first node in described P2P network;
The Node subsets identified in described multiple destination aggregation (mda)s is selected based on the search range used in the described service of search by described first node in described P2P network; And
Service Search Request is initiated towards a node selected Node subsets from described first node, wherein said Service Search Request is the request of at least one node of serving described in the support to the described P2P network of mark, wherein said Service Search Request comprises and indicates the information of described service and the hunting zone for being used by the described node of initiating described Service Search Request towards it, and the described hunting zone wherein used by the described node of initiating described Service Search Request for it comprises the node identifier scope of described P2P network.
10. device according to claim 9, wherein said processor is configured to serve relevant probability based in described P2P network described in successful search, determines the search range used in the described service of search by described first node in described P2P network.
11. devices according to claim 9, wherein said processor is configured to based on (L-1) * ln (1-a) <ln (1/b), determine the search range used in the described service of search by described first node in described P2P network, wherein (i) a is that a node identifier will have the probability of the active node supporting described service, (ii) b is described search is the probability negating, and (iii) L is the search range that first node uses described in the described service of search.
12. devices according to claim 9, wherein in order to select the Node subsets identified in described multiple destination aggregation (mda)s based on the search range used in the described service of search by described first node in described P2P network, described processor is configured to:
Based on the described bar destination aggregation (mda) used by described first node in the described service of search in described P2P network and search range, determine that first node will initiate the interstitial content (K) of Service Search Request to it described in described bar destination aggregation (mda).
13. devices according to claim 9, wherein selected Node subsets comprises the multiple nodes from described bar destination aggregation (mda), and wherein said processor is configured to:
Many Service Search Request are initiated to each multiple nodal parallel from described bar destination aggregation (mda) from described first node.
14. devices according to claim 9, wherein said processor is configured to:
Search response is not certainly received from least one node described Node subsets based on determining:
The next node be not in described bar destination aggregation (mda) associated by next entry in the Node subsets of described bar destination aggregation (mda) initiates follow-up service searching request, serves for described in described P2P network inner position.
15. devices according to claim 14, wherein said processor is configured to:
Based on the search range used by described first node in the described service of search in described P2P network, determine by the hunting zone of the described next node initiating described Service Search Request for it.
16. devices according to claim 9, wherein said processor is configured to:
When described first node receives the affirmative search response indicated to the node locating of the described service of support, from described first node towards supporting that the described node of described service initiates the request for described service.
17. 1 kinds of equipment for search service in equity (P2P) network comprising multiple node, described equipment comprises:
For detecting the device to the request of search service in described P2P network at the first node of described P2P network, wherein said first node comprises multiple destination aggregation (mda)s of the multiple nodes identifying described P2P network;
For the estimation average number of the active node of this service of support based on described P2P network, determine the device of the search range used in the described service of search by described first node in described P2P network;
For based on the search range used in the described service of search by described first node in described P2P network, select the device of the Node subsets identified in described bar destination aggregation (mda); And
For the device of a node initiation Service Search Request from described first node towards in selected Node subsets, wherein said Service Search Request is the request of at least one node of serving described in the support to the described P2P network of mark, wherein said Service Search Request comprises and indicates the information of described service and the hunting zone for being used by the described node of initiating described Service Search Request towards it, and the node identifier scope of described P2P network is specified in the described hunting zone wherein used by the described node of initiating described Service Search Request for it.
18. equipment according to claim 17, wherein determine that the search range used in the described service of search by described first node in described P2P network serves relevant probability based in described P2P network described in successful search further.
19. equipment according to claim 17, wherein determine that the search range used in the described service of search by described first node in described P2P network is determined based on (L-1) * ln (1-a) <ln (1/b), wherein (i) a is that a node identifier will have the probability of the active node supporting described service, (ii) b is described search is the probability negating, and (iii) L is the search range that first node uses described in the described service of search.
20. equipment according to claim 17, wherein for selecting the device of the Node subsets identified in described bar destination aggregation (mda) to be configured to based on the search range used in the described service of search by described first node in described P2P network:
Based on the described bar destination aggregation (mda) used by described first node in the described service of search in described P2P network and search range, determine that first node will initiate the interstitial content (K) of Service Search Request to it described in described bar destination aggregation (mda).
21. equipment according to claim 17, wherein selected Node subsets comprises the multiple nodes from described bar destination aggregation (mda), and described equipment comprises further:
For initiating the device of many Service Search Request from described first node to each multiple nodal parallel from described bar destination aggregation (mda).
22. equipment according to claim 17, described equipment comprises further:
For not receiving search response certainly from least one node described Node subsets based on determining and perform the device of following operation:
The next node be not in described bar destination aggregation (mda) associated by next entry in the Node subsets of described bar destination aggregation (mda) initiates follow-up service searching request, serves for described in described P2P network inner position.
23. equipment according to claim 22, described equipment comprises further:
For based on the search range used by described first node in the described service of search in described P2P network, determine by the device of the hunting zone of the described next node initiating described Service Search Request for it.
24. equipment according to claim 17, described equipment comprises further:
During for receiving the affirmative search response indicated to the node locating of the described service of support when described first node, from described first node towards supporting that the described node of described service initiates the device for the request of described service.
CN201080057597.3A 2009-12-17 2010-12-01 For in peer-to-peer network to the method and apparatus of positioning service Expired - Fee Related CN102668513B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/640,072 2009-12-17
US12/640,072 US10084856B2 (en) 2009-12-17 2009-12-17 Method and apparatus for locating services within peer-to-peer networks
PCT/US2010/058490 WO2011084272A1 (en) 2009-12-17 2010-12-01 Method and apparatus for locating services within peer-to-peer networks

Publications (2)

Publication Number Publication Date
CN102668513A CN102668513A (en) 2012-09-12
CN102668513B true CN102668513B (en) 2016-03-23

Family

ID=43530576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080057597.3A Expired - Fee Related CN102668513B (en) 2009-12-17 2010-12-01 For in peer-to-peer network to the method and apparatus of positioning service

Country Status (6)

Country Link
US (1) US10084856B2 (en)
EP (1) EP2514175A1 (en)
JP (1) JP5567683B2 (en)
KR (2) KR20120104341A (en)
CN (1) CN102668513B (en)
WO (1) WO2011084272A1 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298732B2 (en) * 2010-09-29 2016-03-29 Red Hat, Inc. Searching cloud-based distributed storage resources using a set of expendable probes
US8443086B2 (en) * 2011-06-22 2013-05-14 National Chiao Tung University Decentralized structured peer-to-peer network and load balancing methods thereof
GB2500720A (en) * 2012-03-30 2013-10-02 Nec Corp Providing security information to establish secure communications over a device-to-device (D2D) communication link
US9069761B2 (en) * 2012-05-25 2015-06-30 Cisco Technology, Inc. Service-aware distributed hash table routing
US9658841B2 (en) * 2012-08-30 2017-05-23 Avaya Inc. System and method for efficient software replication
CN103973460B (en) * 2013-01-30 2017-06-27 华为终端有限公司 For realizing the method and device that network is intended to
WO2014186593A1 (en) * 2013-05-15 2014-11-20 Intel Corporation Techniques to support power-saving background device discovery in a wireless communications system
KR101534555B1 (en) * 2013-06-25 2015-07-08 숭실대학교산학협력단 Circle -Mesh overlay network construction and maintain method
KR20150063906A (en) 2013-11-29 2015-06-10 주식회사 케이티 Methods and apparatuses for searching available device on M2M environment
WO2015080461A1 (en) * 2013-11-29 2015-06-04 주식회사 케이티 Method and device for searching for available device in m2m environment
JP6131907B2 (en) * 2014-04-24 2017-05-24 カシオ計算機株式会社 Distributed database, data sharing method, program, and apparatus
JP6697158B2 (en) * 2016-06-10 2020-05-20 富士通株式会社 Information management program, information management method, and information management device
CN106202303B (en) * 2016-06-30 2019-09-10 南京邮电大学 A kind of Chord routing table compression method and optimization file search method
CN106571973A (en) * 2016-09-28 2017-04-19 杭州鸿雁智能科技有限公司 Heartbeat packet timeout management method and system
CN106681794B (en) * 2016-12-07 2020-04-10 长春市三昧动漫设计有限公司 Interest behavior based distributed virtual environment cache management method
WO2019022360A1 (en) * 2017-07-28 2019-01-31 전자부품연구원 Method for inquiring location information-based specific type device data
CN108055651A (en) * 2017-11-14 2018-05-18 华中科技大学 A kind of mobile terminal device heartbeat package transmitting method based on D2D technologies
CN109962942B (en) * 2017-12-22 2022-06-07 天翼云科技有限公司 Copy update method and apparatus, and computer-readable storage medium
CN116346892A (en) * 2021-12-24 2023-06-27 上海诺基亚贝尔股份有限公司 Method, apparatus, device and medium for service provision

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159755A (en) * 2007-11-07 2008-04-09 中兴通讯股份有限公司 Mobile search system and mobile search method
CN101394423A (en) * 2008-09-27 2009-03-25 中兴通讯股份有限公司 Media positioning, searching method and system

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1000000A (en) * 1910-04-25 1911-08-08 Francis H Holton Vehicle-tire.
US5819258A (en) 1997-03-07 1998-10-06 Digital Equipment Corporation Method and apparatus for automatically generating hierarchical categories from large document collections
US7020698B2 (en) * 2000-05-31 2006-03-28 Lucent Technologies Inc. System and method for locating a closest server in response to a client domain name request
US6961723B2 (en) * 2001-05-04 2005-11-01 Sun Microsystems, Inc. System and method for determining relevancy of query responses in a distributed network search mechanism
DE10143754A1 (en) 2001-09-06 2003-04-03 Siemens Ag Scalable peer-to-peer network with a directory service
US7213047B2 (en) * 2002-10-31 2007-05-01 Sun Microsystems, Inc. Peer trust evaluation using mobile agents in peer-to-peer networks
US7831367B2 (en) * 2002-11-21 2010-11-09 Lucas Automotive Gmbh System for influencing the speed of a motor vehicle
JP2004258994A (en) 2003-02-26 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> Dynamic file retrieval method for p2p network, terminal, program, and recording medium
US7805448B2 (en) * 2003-04-18 2010-09-28 Hewlett-Packard Development Company, L.P. Storing attribute values of computing resources in a peer-to-peer network
US7558875B2 (en) * 2003-09-15 2009-07-07 Microsoft Corporation Measurement-based construction of locality-aware overlay networks
US7779415B2 (en) 2003-11-21 2010-08-17 International Business Machines Corporation Adaptive load distribution in managing dynamic and transient data for distributed applications
US7975035B2 (en) 2003-12-01 2011-07-05 International Business Machines Corporation Method and apparatus to support application and network awareness of collaborative applications using multi-attribute clustering
EP1725948A4 (en) * 2004-03-08 2013-01-16 First Oversi Ltd A method and device for peer to peer file sharing
US9160571B2 (en) * 2004-03-11 2015-10-13 Hewlett-Packard Development Company, L.P. Requesting a service from a multicast network
US7487239B2 (en) * 2004-03-25 2009-02-03 International Business Machines Corporation Composite resource models
CA2566984A1 (en) * 2004-05-18 2005-12-01 British Telecommunications Public Limited Company Peer-to-peer networks
JP4334424B2 (en) * 2004-07-09 2009-09-30 富士通株式会社 Network resource, service discovery method, and relay node device
US8014321B2 (en) 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US20070288638A1 (en) * 2006-04-03 2007-12-13 British Columbia, University Of Methods and distributed systems for data location and delivery
US7516116B2 (en) * 2006-04-07 2009-04-07 Microsoft Corporation Range and cover queries in overlay networks
US9507778B2 (en) 2006-05-19 2016-11-29 Yahoo! Inc. Summarization of media object collections
US7908389B2 (en) * 2006-06-20 2011-03-15 Patentvc Ltd. Methods and systems for retrieving fragments from peer clients and servers
WO2008041173A2 (en) * 2006-10-02 2008-04-10 Nokia Corporation Method system and devices for network sharing or searching of resources
CN101207531A (en) 2006-12-21 2008-06-25 浙江工业大学 Method and system for establishing P2P covering network capable of spanning multilevel subnetwork
US9026628B2 (en) * 2007-01-22 2015-05-05 Xerox Corporation Two-level structured overlay design for cluster management in a peer-to-peer network
US20080275969A1 (en) * 2007-02-02 2008-11-06 Blaksley Ventures 108, Llc System and method for managing a plurality of network clusters
JP4306740B2 (en) 2007-02-21 2009-08-05 ソニー株式会社 Overlay network system and service providing program
CN101257396B (en) 2007-03-02 2010-12-08 中国科学院声学研究所 System for distributing multi-field content based on P2P technique as well as corresponding method
JP2008234563A (en) 2007-03-23 2008-10-02 Nec Corp Overlay management device, overlay management system, overlay management method, and program for managing overlay
US7978631B1 (en) * 2007-05-31 2011-07-12 Oracle America, Inc. Method and apparatus for encoding and mapping of virtual addresses for clusters
US8238237B2 (en) * 2007-06-18 2012-08-07 Sony Computer Entertainment Inc. Load balancing distribution of data to multiple recipients on a peer-to-peer network
US7802009B2 (en) 2007-06-26 2010-09-21 Microsoft Corporation Automatic reverse engineering of message formats from network traces
CN101374087A (en) 2007-08-20 2009-02-25 华为技术有限公司 Mobile self-grouping network, node and region partitioning method thereof
US8041773B2 (en) * 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
JP5151511B2 (en) * 2008-01-30 2013-02-27 ソニー株式会社 Search service providing system and search service providing method
CN100537201C (en) 2008-04-09 2009-09-09 宁波朗格世明汽车部件有限公司 Method for manufacturing automobile treadle pad by using waste and old PVC material
CN102197406B (en) * 2008-10-23 2014-10-15 起元技术有限责任公司 Fuzzy data operations
US8144611B2 (en) * 2009-02-10 2012-03-27 Microsoft Corporation Network coordinate systems using IP information
BRPI1016200B1 (en) * 2009-04-16 2020-10-20 Tibco Software Inc method for adding a node to a collection of computational nodes and method for removing an output node from a collection of computational nodes
EP2491698B1 (en) * 2009-10-21 2013-07-17 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for locating services in a peer-to-peer network
US8805932B2 (en) * 2009-11-03 2014-08-12 Telecom Italia S.P.A. Sharing of digital contents in P2P networks exploiting localization data
WO2011054376A1 (en) * 2009-11-03 2011-05-12 Telecom Italia S.P.A. Improved caching of digital contents in p2p networks
EP2780835B1 (en) * 2011-11-15 2019-08-07 Ab Initio Technology LLC Data clustering, segmentation, and parallelization
US9268589B2 (en) * 2011-12-09 2016-02-23 Yahoo! Inc. Method and system for deploying multiple distributed application stacks on a target machine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159755A (en) * 2007-11-07 2008-04-09 中兴通讯股份有限公司 Mobile search system and mobile search method
CN101394423A (en) * 2008-09-27 2009-03-25 中兴通讯股份有限公司 Media positioning, searching method and system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Approaching neighbor proximity and load balance for range query in P2P networks;Yuh-Jzer Joung;<Computer networks,ELSEVIER>;20080212;第52卷(第7期);第1451-1472页 *

Also Published As

Publication number Publication date
WO2011084272A1 (en) 2011-07-14
CN102668513A (en) 2012-09-12
US10084856B2 (en) 2018-09-25
KR20120104341A (en) 2012-09-20
JP5567683B2 (en) 2014-08-06
KR101433702B1 (en) 2014-08-27
KR20140044948A (en) 2014-04-15
EP2514175A1 (en) 2012-10-24
US20110153634A1 (en) 2011-06-23
JP2013514733A (en) 2013-04-25

Similar Documents

Publication Publication Date Title
CN102668513B (en) For in peer-to-peer network to the method and apparatus of positioning service
KR101481874B1 (en) Method and apparatus for decomposing a peer-to-peer network and using a decomposed peer-to-peer network
AU2005312895B2 (en) Bidirectional data transfer optimization and content control for networks
Lua et al. A survey and comparison of peer-to-peer overlay network schemes
JP4806203B2 (en) Routing in peer-to-peer networks
US20130041982A1 (en) Method and node for acquiring content and content network
EP2772037B1 (en) Verification of content possession by an announcing peer in a peer-to-peer content distribution system
US20120221692A1 (en) Method and apparatus for localization in peer-to-peer systems
US20120158756A1 (en) Searching in Peer to Peer Networks
US20120136962A1 (en) Systems and methods for distributing data
Naik et al. Next level peer-to-peer overlay networks under high churns: a survey
CN101645831B (en) Node organization method in P2P system
US7916629B2 (en) Methods and apparatuses for processing and managing subscriber data in telecommunication network
Hassanzadeh-Nazarabadi et al. DHT-based edge and fog computing systems: infrastructures and applications
Akavipat et al. ReDS: A framework for reputation-enhanced DHTs
Król et al. Data Availability Sampling in Ethereum: Analysis of P2P Networking Requirements
JP4923115B2 (en) Method, computer program and node for distributing references to objects in a self-organizing distributed overlay network, and self-organizing distributed overlay network
CN112565796A (en) Video content decentralized access method and system
Salter An efficient reactive model for resource discovery in DHT-based peer-to-peer networks
Karapapas et al. Enhancing IPFS Bitswap
Birman et al. Network perspective
Ahmed et al. Collaborative Web Hosting: Challenges and Research Directions
Serbu et al. Improving the dependability of prefix-based routing in dhts
Ross et al. P2P Systems
Locher et al. equus: A provably robust and efficient peer-to-peer system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160323

Termination date: 20161201

CF01 Termination of patent right due to non-payment of annual fee