WO2011039642A1 - Cluster peer for peer-to-peer systems and method of operation thereof - Google Patents

Cluster peer for peer-to-peer systems and method of operation thereof Download PDF

Info

Publication number
WO2011039642A1
WO2011039642A1 PCT/IB2010/002631 IB2010002631W WO2011039642A1 WO 2011039642 A1 WO2011039642 A1 WO 2011039642A1 IB 2010002631 W IB2010002631 W IB 2010002631W WO 2011039642 A1 WO2011039642 A1 WO 2011039642A1
Authority
WO
WIPO (PCT)
Prior art keywords
cluster
content
peer
nodes
peers
Prior art date
Application number
PCT/IB2010/002631
Other languages
French (fr)
Inventor
Jun Wei
Sergio Catanzariti
Original Assignee
France Telecom
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 France Telecom filed Critical France Telecom
Publication of WO2011039642A1 publication Critical patent/WO2011039642A1/en

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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions

Definitions

  • the present system relates to at least one of a system, method, user interface, and apparatus for establishing an ad-hoc peer-to-peer (P2P) network and, more particularly, to a peer-to-peer network incorporating a cluster peer which provides support thereto.
  • P2P peer-to-peer
  • P2P networks have gained popularity in distributed computing system environments.
  • P2P networks can comprise a plurality of nodes which typically share one or more resources such as central processing unit (CPU) cycles, applications, storage, operators, content, etc. Because nodes of P2P network are distributed throughout the network, a method of finding resources must be employed in order to find resources, such as content, available to the network.
  • resources such as central processing unit (CPU) cycles, applications, storage, operators, content, etc.
  • P2P networks are classified as centralized, decentralized, structured, unstructured, and/or combinations thereof.
  • Centralized P2P networks use centralized servers and can be found in several commercially available P2P systems such as, NAPSTERTM, BITTORRENTTM, etc. This architecture may be used for searching (e.g., for content) and for coordination between nodes. Further, in centralized P2P network architectures, file transfers can be performed between two or more nodes independent of the centralized server. Further, as centralized P2P networks, such as NAPSTERTM and BITTORENTTM use a centralized directory or torrent tracker for content query and search operations, they do not scale well to a large number of nodes and are vulnerable to single point failure.
  • this architecture typically combines features of unstructured or unstructured networks so as to form a decentralized and unstructured (aka decentralized/unstructured) P2P network or a decentralized and structured
  • these networks organize peers in a flat (e.g. GNUTELLATM) or a hierarchical manner (e.g., as super peers as in KAZAATM).
  • Content query and search operations are usually flooded across the network, and can be modified to improve search efficiency.
  • Nodes can communicate with every other node.
  • Super peers or super nodes hereinafter SNs
  • SNs super nodes
  • content transfer is direct from node to node.
  • the overhead of query and search increases with the number of nodes and is therefore not scalable with large number of nodes.
  • these networks typically build an overlay topology to map content contained therein and can employ technologies, such as distributed hash tables (DHT), so that queries are deterministic and efficient.
  • DHT distributed hash tables
  • these systems are typically found in research environments (e.g., research communities) as opposed to commercial environments.
  • One of the common problems to these systems is that maintaining the overlay topology of the content map is relatively costly.
  • Structured P2P networks such as PeerCluster, organize nodes into clusters based on the interests they share.
  • the clusters are used to build content search structure to improve the query efficiency.
  • Individual nodes participate in the P2P query and search operations.
  • PeerCluster has the same problem with other structured P2P systems in terms of maintaining overlay topology of the content map.
  • a proposed cluster-based P2P network discussed the possibility of using network-aware clustering to group nodes within the common administration regions for efficient content lookup and forwarding.
  • a centralized clustering server was proposed to be used to perform network-aware clustering and registration.
  • one or more designated nodes in each cluster was proposed to be selected as a directory for the content stored within that cluster.
  • the delegated nodes function similarly to SNs that would act as centralized servers to track resources available to unstructured P2P networks.
  • Another cluster-based architecture has been proposed to find super peers for a mobile environment.
  • Clustered BitTorrentTM (CBT) P2P network proposes a super peer structure for a mobile environment.
  • CBT Clustered BitTorrentTM
  • BITTORRENTTM-type P2P networks based on proximity.
  • the super peer or super node structure is built to aggregate the query and search from a group of regular peers.
  • this proposal does not reduce the number of peers that participate in a query and search operation.
  • the present system provides a computer system/controller, computer program, and method of controlling a peer-to-peer (P2P) computer network comprising a plurality of nodes, and one or more clusters.
  • the link may include a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster.
  • the method may include an act of determining by the CP of the cluster a service parameter for one or more peers in the cluster of the CP.
  • the method may include acts of determining by the CP of a cluster whether a peer of the cluster of the CP is free- riding; and adjusting the service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding.
  • the method may include an act of participating by the CP of a cluster on behalf of the peers of the cluster in a query for content from a third node of the plurality of nodes.
  • the method may include an act of sending, by the CP of a cluster, a seeding list to the P2P computer network on behalf of the peers of the cluster.
  • the act of transmitting the sinked other content may include transmitting the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter.
  • a peer-to-peer (P2P) computer system to distribute content among a plurality of nodes.
  • the P2P computer system may include one or more controllers which may be configured to determine common resources among the plurality of nodes; group nodes of the plurality of nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset including two or more nodes of the plurality of nodes as peers of the cluster; select a cluster peer (CP) for each cluster from among the peers of the cluster, the CP of each cluster having a network connection to one or more nodes of the plurality of nodes in the P2P computer network; source content from a peer having the content to a first node requesting the content of the plurality of nodes via a link between the peer having the content and the first node requesting the content; sink other content from a second node having the other content of the plurality of nodes to the CP of a corresponding cluster that desires the other content; and
  • the link may include a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster.
  • a controller of the CP of the cluster may determine a service parameter for one or more peers in the cluster of the CP.
  • the controller of the CP of the cluster may be configured to determine cluster whether a peer of the cluster of the CP is free-riding; and adjust the service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding.
  • the controller of the CP of the cluster may be configured to participate on behalf of the peers of the cluster in a query for content from a third node of the plurality of nodes.
  • the controller of the CP may be configured to send a seeding list to the P2P computer network on behalf of the peers of the cluster.
  • the controller of the CP may be configured to transmit the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter
  • a computer program stored on a computer readable memory medium, the computer program configured to provide a user interface (Ul) to accomplish a task
  • the computer program may include a program portion configured to determine a common request for given content among the plurality of nodes; a program portion configured to group nodes of the plurality of nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset including two or more nodes of the plurality of nodes as peers of the cluster; a program portion configured to select a cluster peer (CP) for each cluster from among the peers of the cluster, the CP of each cluster having a network connection to one or more nodes of the plurality of nodes in the P2P computer network; a program portion configured to source content from a peer having the content to a first node requesting the content of the plurality of nodes via a link between the peer having the content and the first node requesting the content; a program portion configured to sink other content from a
  • CP cluster peer
  • the program portion configured to source content may be configured to establish a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster.
  • a program portion may be configured to determine a service parameter for one or more peers in the cluster of the CP.
  • the computer program may include a program portion configured to determine whether a peer of the cluster of the CP is free-riding; and a program portion configured to adjust a service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding.
  • the computer program may include a program portion configured to participate, by the CP of a cluster on behalf of the peers of the cluster, in a query for content from a third node of the plurality of nodes.
  • the computer program may include a program portion configured to send, by the CP of a cluster, a seeding list to the P2P computer network on behalf of the peers of the cluster.
  • the program portion configured to transmit may be configured to transmit the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter.
  • a service parameter such as, for example, bandwidth, QoS, content dissemination, etc. to the free-riding peer may be reduced or entirely prevented.
  • the present system may also provide enhanced levels of privacy and/or confidentiality. Moreover, the present system may offer performance advantages in a scalable network environment.
  • FIG. 1 shows a network in accordance with an embodiment of the present system
  • FIG. 2 shows a content query and search operation according to the present system
  • FIG. 3 shows a content relay service provided to a cluster according to an embodiment of the present system
  • FIG. 4 shows a content redistribution service for the P2P system according to an embodiment of the present system
  • FIG. 5 shows a flow diagram that illustrates a modified dynamic clustering management process in accordance with an embodiment of the present system
  • FIG. 6 shows a system in accordance with a further embodiment of the present system.
  • FIG. 7 shows a flow diagram that illustrates a query search and seeding process in accordance with an embodiment of the present system.
  • an operative coupling may include one or more of a wired connection and/or a wireless connection between two or more devices that enables a one and/or two-way communication path between the devices and/or portions thereof.
  • an operative coupling may include a wired and/or wireless coupling to enable communication between a node and a cluster peer (CP).
  • a further operative coupling in accordance with the present system may include one or more couplings between two or more user devices/nodes, etc., such as via a wide area network, in accordance with an embodiment of the present system.
  • node may refer to devices (e.g., user devices such as, for example, a personal computer (PC), a mobile station (MS) such as a PDA, etc.) and/or systems which may be operatively coupled or otherwise connected to each other in a network such as, for example, a peer-to-peer network unless context indicates otherwise.
  • PC personal computer
  • MS mobile station
  • peer-to-peer network a network such as, for example, a peer-to-peer network
  • peer and formatives thereof will be used to describe members of a cluster and the term “node” will be used to refer to members of the P2P that are not members of a cluster.
  • a CP may be considered both a node and a peer unless context indicates otherwise.
  • peer-to-peer may refer to a distributed system comprising a plurality of nodes and/or peers each of which may include a separate memory and/or a controller and which may be operatively coupled to one or more other nodes.
  • rendering and formatives thereof as utilized herein refer to providing content, such as digital media, such that it may be perceived by at least one user sense, such as a sense of sight and/or a sense of hearing.
  • the present system may render a user interface on a display device so that it may be seen and interacted with by a user.
  • the present system may render audio visual content on both of a device that renders audible output (e.g., a speaker, such as a loudspeaker) and a device that renders visual output (e.g., a display).
  • a device that renders audible output e.g., a speaker, such as a loudspeaker
  • a device that renders visual output e.g., a display
  • the term content and formatives thereof will be utilized and should be understood to include audio content, visual content, audio visual content, textual content and/or other content types, unless a particular content type is specifically intended, as may be readily appreciated.
  • a system, method, device, computer program, and/or interface for rendering a user interface (Ul) for a user's convenience may be provided.
  • the present system may include a one or more processors which may perform a method to establish a peer-to-peer (P2P) computer network comprising a plurality of nodes, and one or more clusters.
  • P2P peer-to-peer
  • the method may include one or more acts of: selecting a cluster peer (CP) for each cluster of the one or more clusters from among grouped peers, establishing a network connection between the CP of each cluster to a node of the plurality of nodes in the P2P computer network; sourcing content from a peer having the content of the grouped peers to a node requesting the content of the plurality of nodes via a link between the peer having the content and the node requesting the content; sinking content by the CP of a cluster from a node having the content of the plurality of nodes; and/or transmitting the sinked content from the CP to each of the plurality of peers in the cluster of the CP using a predetermined transmission method such as unicast, multicast, or broadcast.
  • a cluster peer CP
  • the present system may collect statistical information or may collect information which may be used (e.g., by a user device according to the present system) to calculate statistics related to the user and/or user device (e.g., a mobile station) in accordance with the present system, such as a relative time of an action, geo-location, network, subnetwork, cluster, subcluster, detected content item, user request, system request, query, answer, user identification (ID), etc.
  • a user device e.g., a mobile station
  • a common interface device for a user interface such as a graphical user interface (GUI) is a mouse, trackball, keyboard, touch-sensitive display, virtual recognition device, etc.
  • GUI graphical user interface
  • a mouse may be moved by a user in a planar workspace to move a visual object, such as a cursor, depicted on a two-dimensional display surface in a direct mapping between the position of the user manipulation and the depicted position of the cursor. This is typically known as position control, where the motion of the depicted object directly correlates to motion of the user manipulation.
  • GUI in accordance with an embodiment of the present system is a GUI that may be provided by a computer program that may be user invoked, such as to enable a user to make a request for content.
  • the GUI may provide different views that are directed to different portions of the present process.
  • the GUI may present a typical Ul including a windowing environment and as such, may include menu items, pull-down menu items, pop-up windows, etc., that are typical of those provided in a windowing environment, such as may be represented within a WindowsTM Operating System GUI as provided by Microsoft Corporation and/or an OS XTM Operating System GUI, such as provided on an iPhoneTM, MacBookTM, iMacTM, etc., as provided by Apple, Inc., and/or other operating systems.
  • the objects and sections of the GUI may be navigated utilizing a user input device, such as a mouse, trackball, a finger, and/or other suitable user input.
  • the user input may be utilized for making selections within the GUI such as by selection of menu items, window items, radio buttons, pop-up windows, for example, in response to a mouse-over operation, and other common interaction paradigms as understood by a person of ordinary skill in the art.
  • Similar interfaces may be provided by a device having a touch sensitive screen that is operated on by an input device such as a finger of a user or other input device such as a stylus or by a device which may interpret a virtual location of a device (i.e., an orientation or motion of an MS, etc.) or an anatomical feature of a user such as a user's hand, etc.
  • a cursor may or may not be provided since location of selection may be directly determined by the location of interaction with the touch sensitive screen, by the location of, for example a user's limb (or parts thereof), or by the location, direction, or motion of a device including the GUI.
  • GUI utilized for supporting touch sensitive or virtual inputs may be somewhat different than a GUI that is utilized for supporting, for example, a computer mouse input, however, for purposes of the present system, the operation is similar. Accordingly, for purposes of simplifying the foregoing description, the interaction discussed is intended to apply to either of these systems or others that may be suitably applied.
  • the present system includes a cluster peer (CP) which may supplement typical network architectures such as, for example, P2P systems and networks.
  • CP cluster peer
  • the present system may be included with, and/or interface with, P2P systems and networks and provide enhanced content query and/or search operations; content dissemination; and/or content redistribution.
  • the present system may also, if desired, perform content redistribution in accordance with those of a P2P system with which it is interfaced.
  • FIG. 1 shows a network 100 in accordance with an embodiment of the present system.
  • the network 100 may include one or more nodes 104 which form a P2P network 102.
  • the one or more nodes 104 may join and/or leave the network 100 in accordance with any add/drop procedure that is suitable for the particular P2P network employed for the P2P network 102 such that the network 100 may include a group of, for example, one or more stationary (e.g., home computers) and/or mobile nodes such as, for example, mobile stations (MSs) or the like, and which may join the network 100 as desired in accordance with the particular P2P network employed for the P2P network 102.
  • One or more of the nodes 04 may operate as cluster peers (CPs) 104-1 and 104-2 in accordance with an embodiment of the present system.
  • CPs cluster peers
  • the CPs 104-x may be selected based on one or more desired parameters such as, for example, available bandwidth, processing speed, availability, user request, device request, system request, geographic location, network type, network load, cost, quality of service (QoS), etc.
  • the P2P network 102 may include suitable network structures such as, for example, structured, unstructured, centralized, decentralized, hybrid, and/or combinations thereof.
  • the nodes 104 may communicate with each other (e.g., to query, search, and/or transfer information) using, for example, any suitable P2P network scheme.
  • Suitable P2P network schemes may include, schemes such as implemented by NAPSTERTM, GNUTELLATM, KAZAATM, proprietary networks, etc.
  • the CPs 104-x may be coupled to one or more P2P networks such as P2P network 102 with little or no modification to a structure of the P2P network. Accordingly, the present system may be compatible with conventional P2P networks. Thus, the CPs 104-x are compatible with other P2P systems, such as the P2P network 102, and may function within one or more conventional P2P systems.
  • the CPs 104-x may include a cluster management application (CMA) which will be further described below.
  • CMA cluster management application
  • the CPs 104-x may define respective clusters 106-x. Accordingly, the CPs 104-1 and 104-2, may define clusters 106-1 and 106-2, respectively. Thus, the CPs 104-x may represent a cluster of ordinary peers in the P2P network 102. In one embodiment, all of the peers in given cluster (e.g., cluster 106-1 , 106-2) may share the same interest for the same content. In this way, dissemination of the content of interest may be handled in a more efficient manner, as described further herein, without overburdening the network. The corresponding CP 104-x of a cluster 106-x may perform content query and/or search operations on behalf of the respective cluster in the P2P network 102.
  • CPs 104-1 and 104-2 may perform content query and/or search operations on behalf of clusters 106-1 and 106-2, respectively.
  • CP 104-1 will perform query and/or search operations for all peers 108 within cluster 106-1
  • CP 104-2 will perform query and/or search operations for all peers 1 10 within cluster 106-2.
  • the CPs 104-x may disseminate content that they have requested (received from another node of the P2P system that is not a member of the cluster) to selected peers (e.g., 108 or 1 10) within its respective cluster.
  • the CP 104-1 may distribute content that it has requested from, for example, other nodes such as nodes 104 within the P2P network 102, to all or selected peers 108 within its respective cluster 106-1.
  • the CP 104-2 may distribute content that it has requested from, for example, other nodes such as nodes 104 within the P2P network 102, to all or selected peers 1 10 within its respective cluster 106-2.
  • the cluster e.g., 106-1
  • the corresponding CP e.g., 104-1
  • network resources such as, for example, bandwidth may be conserved since only one request need be performed and the data need only be transmitted (from a network perspective) to the requesting CP, yet may be distributed by the requesting CP to one or more of the members of its cluster.
  • This may be desirable when one or more of the peers (e.g., 108) in a cluster (e.g., 106-1 ) are MSs using a wireless link to, for example, one or more base stations (BSs) which provide data to the MSs.
  • BSs base stations
  • a CP e.g., 104-1 which may include an MS, etc., may be coupled to its corresponding cluster (e.g., 106-1 ) and/or the P2P network 102 using wired and/or wireless connections.
  • the peers when acting as a source, all or some of the peers (e.g., 108) from the cluster (e.g., 106-1 ) may source content individually for the P2P network 102 (e.g., act as a seed for content) as will be described below with reference to FIG. 4 or may seed via a corresponding CP (e.g., 104-1 ).
  • the CP104-X may represent a cluster of peers 108, 1 10 in its corresponding cluster 106-x, This is a vertical approach per category/subject/... and all peers 108, 10 in the clusters 106-x, besides sharing the same content, will not generally participate in the P2P network 102 (except for the seeding as seen later on).
  • the CP 104-x of a cluster 106-x handles query and search just like any other node from the perspective of the P2P network 102, using for example, the P2P query and search technologies used in the P2P network 102. Accordingly, the CP 104-x may interface with (i.e., be compatible with) conventional P2P networks, however, from the perspective of the network when the CP is sinking content (e.g., in response to a search for content initiated by one or more of nodes of the cluster), the entire cluster appears as only a single node of the network.
  • a CP 104-x of a cluster 106-x will engage in content query and/or search operations of the P2P network 102 as a proxy for all peers for a corresponding cluster.
  • a CP 104-x of the P2P network 102 will receive a query requesting data from a node 104 in the P2P network 102, and only the CP 104-x will participate in the query and/or search from the P2P network 102.
  • the CP 104-x will participate in the query and search of the P2P system as a proxy for the peers within its cluster.
  • the CP 104-x will provide a seeding list (e.g., content/source information for the peers within its cluster) back to the P2P network 102 for use during the query and/or search operation of the P2P network 102 (e.g. tracker, super peer, flooding, or other system the P2P network 102 is using).
  • the CP 104-x may maintain information (e.g., in tables, etc.) about content contained by peers 108, 1 10 within its cluster106-x. Further, all the peers 108, 110 within a cluster 106-x will share a request from the cluster for the same content, however, as discussed below, each of the members of the cluster may serve (e.g., seed) the same content to the P2P network 102.
  • FIG. 2 The process of the cluster performing a search request is illustrated in FIG. 2 according to an embodiment of the present system.
  • reference numerals 200 through 210, 300 through 310, and 400 through 410 each generally correspond with reference numerals 100 through 110, respectively. Accordingly, for the sake of clarity, a further description thereof will not be given.
  • a content query 212 may originate from one or more nodes 208, 210 of a cluster.
  • the content query 212 is transmitted to the network 202 by the corresponding CP (204-1 or 204- 2) and then may be relayed to other nodes within the network 202 utilizing any mechanism which the network utilizes for transmitting queries generally.
  • the content query 212 may be flooded throughout the network 202, may be transmitted to selected nodes such as a tracker node, a super peer, a hierarchical content directory, etc.
  • the P2P network's type e.g., centralized, decentralized, structured, unstructured, and/or combinations thereof
  • the CP 204-1 or 204-2
  • the present system may provide a content relay service for a cluster via a corresponding CP. This is illustrated with reference to FIG. 3 which shows a content relay service provided to a cluster 306-x according to an embodiment 300 of the present system.
  • the cluster e.g., 306-1 , 306-2
  • there may be a single content flow e.g., 320-1 , 320-2 to a corresponding CP (e.g., 304-1 , 304-2) from the P2P network 302 into the corresponding cluster (e.g., 306-1 , 306-2).
  • the CP (304-1 , 304-2) which receives the corresponding content flow (320-1 , 320-2) may then provide a content relay service to the whole cluster (e.g., 306-1 , 306-2) by transmitting content received from the content flow (320-1 , 320-2) to each of the peers or to selected peers (308, 310) in its corresponding cluster (306-1 , 306-2) using a suitable transmission scheme.
  • a content relay service to the whole cluster (e.g., 306-1 , 306-2) by transmitting content received from the content flow (320-1 , 320-2) to each of the peers or to selected peers (308, 310) in its corresponding cluster (306-1 , 306-2) using a suitable transmission scheme.
  • the content relay service may be provided using any suitable transmission scheme via wired and/or wireless connections within the cluster.
  • a default mechanism for content transmission from its CP (e.g., 304-1 ) to a corresponding peer (e.g., 308) in its cluster (306-1 ) may be in a form of a unicast transmission from the CP (e.g., 304-1 ) to each of the peers (e.g., 308) within the cluster (306-1 ).
  • a CP 304-x of the corresponding cluster 306-x may employ a content relay transmission method such as, for example, a unicast system to transmit the content to peers within its corresponding cluster. Transmission of content to each of the clusters (c.f., 306-1 and 306-2) may operate similarly.
  • a CP 304-x of a corresponding cluster 306-x may grant or deny a content relay service (e.g., for content received, from, for example, the P2P network 302) to one or more peers (e.g., 308, 310) within its cluster 306-x.
  • a content relay service e.g., for content received, from, for example, the P2P network 302
  • peers e.g., 308, 310
  • the CP 304-x of a cluster 306-x may grant or deny a content relay service to individual peers (e.g., 308, 310) in its cluster, for example, based on detected resources of a corresponding peer (308, 310).
  • the decision to grant or deny a content relay service to a peer (308, 310) may be determined by the CP 304-x based on, for example, a ranking of the peer (308, 310) in a content seeding list 324-x of the CP 304-x.
  • the content seeding list 324-x of the CP may be stored in one or more memories of the system 300 such as, for example, a memory which is local and/or remote from the corresponding CP 304-x.
  • the content seeding list 324-x may include information such as, for example, ID's of the peers (308, 310) of a cluster 306-x, capabilities of the correspond peer (308, 310) such as bandwidth, content, memory, availability as a seed, willingness to seed, and if seeding, aggregate uploading speed (e.g., since when the peer is seeding/sourcing, the peer can be connected to multiple nodes of P2P network), etc.
  • the CP 304-x may determine whether the available network support can be used for the content relay service. In a case wherein the available network support can be used for the content relay service, the CP 304-x may obtain information regarding the network support and notify peers (308, 310) within its cluster 306-x of the available network support.
  • network support such as IP multicast
  • the CP 304-x of the corresponding cluster 306-x may select amongst the available distribution methods based on cluster parameters, such as a quality of service (QoS) requirement for the content, with regard to a seeding condition, to provide content relay service to the corresponding cluster peers 308, 310.
  • QoS quality of service
  • the downloading speed of a particular peer is limited by the unloading speed of the same peer. This type of condition is imposed on the nodes of the P2P network as one way of limiting free-riding.
  • the aggregate uploading speed of the entire cluster may be used as the uploading speed for the CP.
  • the higher the aggregated uploading speed the higher the downloading speed that may be enabled for the CP.
  • the more peers of the cluster willing to seed and upload content the higher downloading the CP can get from P2P network, which will translate into better relay service from the CP to the cluster.
  • the network support method may include any suitable transmission method such as, for example, unicast, multicast, broadcast, etc. However, the transmission method may be selected by the CP 304-x so that content may be distributed to a cluster of the CP 304-x in accordance with desired thresholds and/or parameters (e.g., cost, QoS, cluster traffic, etc.)
  • desired thresholds and/or parameters e.g., cost, QoS, cluster traffic, etc.
  • the CP 304-x may determine whether its cluster 306-x has exceeded certain thresholds and take corrective actions. To determine whether a cluster has exceeded certain thresholds, the CP 304-x may determine, for example, whether a number of peers 308, 310 in its cluster 306-x has exceeded a corresponding threshold (e.g., 100 peers) or whether a bandwidth (e.g. for a content service) in the cluster exceeds a threshold bandwidth. Accordingly, if the CP 304- x determines that its cluster exceeds one or more thresholds (e.g., the cluster has too many peers, etc.), the CP 304-x may impose corresponding conditions on one or more peers 308, 310 in the CP's 304-x cluster when distributing the content.
  • a threshold e.g. 100 peers
  • a bandwidth e.g. for a content service
  • the CP may request for more peers of the cluster to seed.
  • the CP may deny relay service to some peer in unicast or lower the QoS to all peers when using multicast.
  • a cluster it may be important for a cluster to have more seeding peers (e.g., to get higher aggregate uploading speed) to increase downloading speeds for sinking content to the cluster in a P2P system that balances upload and download speeds.
  • higher download speeds to the cluster may result in less buffering blockage.
  • a higher download speed to the cluster may result in higher content availability at the CP, resulting in better relay service from CP to the cluster.
  • Peers 308, 310 of a cluster 306-x may determine whether service features meet one or more predetermined thresholds (e.g., content denial, content bandwidth, QoS, etc.) which may be preset or set by the user and/or system 300. In a case wherein corresponding peers 308, 310 determine that one or more service features of a cluster do not meet predetermined and/or desired thresholds, the corresponding peer 308, 310 may then leave the cluster and/or attempt to join the P2P network 302 directly as any of the nodes 304 to obtain desired content directly from the P2P network 302.
  • predetermined thresholds e.g., content denial, content bandwidth, QoS, etc.
  • each of the ordinary peers may be responsible for determining whether they will remain in the cluster 306-1 in which they are a member or join the P2P network 302 directly as a node to obtain or transmit content.
  • the affected peer (or peers) 308 may detect this and then determine how to obtain the content on its own, by, for example, joining the P2P network 302 as a regular node 304, joining a different cluster 304-x, seeding to improve its ranking (as will be discussed below) within the original cluster, etc.
  • the CP 304-x may be considered a relay (e.g., proxy) for content to all peers 308, 310 of a corresponding cluster 306-x which share the same interest(s), and consequently desire access to the same content.
  • proxy e.g., proxy
  • FIG. 4 shows a content redistribution service for the P2P system according to an embodiment 400 of the present system.
  • One or more peers 408, 410 of a corresponding cluster 306-x may seed (e.g., source) content to the P2P network 402 via a direct peer-to-peer connection 404 established between a peer 408, 410 of a corresponding cluster 406-x and a corresponding node 404 of the P2P network.
  • a seeding peer 408, 410 may report its upload speed to the CP 404-x of its corresponding cluster 406-x. Further, the CPs 404-x may form and/or update a list of the seeding peers from its own cluster 406-x and may publish the seeding list on the P2P network 402 for use by one or more nodes 404 of the P2P network 402.
  • the CPs 404-x may determine a rank of one or more of the peers 408, 410 in its corresponding cluster 406-x based upon one or more qualities such as, for example, seeding status based on availability for seeding, willingness to seed, if seeded, uploading speed, etc., of a corresponding peer 408, 410.
  • the CP 404-x may use this ranking to grant or deny a content relay service or to set QoS for the content relay service. Further, the CP 404-x may solicit seeding requests within its corresponding cluster 406-x.
  • a CP 404-x may request more seeds from its cluster 406-x and/or may deny a content relay service to lower ranking peers 408, 410 within its cluster 406-x.
  • a predetermined threshold i.e., weakens
  • the CP 404-x may reduce the quality of a content relay service provided to one or more peers 408, 410 within its cluster 406-x (e.g., see, 322-x, FIG. 3).
  • a CP 304-x may grant and/or deny a content relay service or adjust a QoS of a content relay service to a peer 308, 310 of its cluster 306-x based upon several parameters such as seeding conditions (e.g., aggregate upload speeds) and its own sinking condition (download speed).
  • seeding conditions e.g., aggregate upload speeds
  • download speed its own sinking condition
  • the CP 304-x may grant a content relay service to the peer 308, 310 and/or increase a QoS such as bandwidth for the content relay service to the respective peer 308, 310.
  • the CP 304-x may deny a content service (i.e., a content download) and/or adjust one or more content service parameters such as download bandwidth, QoS, etc., to deny, reduce, and/or restrict a content service to the respective peer 308, 310.
  • the CP 304-x may encourage all the peers 308, 310 to serve/seed for the P2P network 302 so as to enhance content service QoS provided by its respective CP 304-x.
  • a content query 412 may be generated and/or transmitted by any node 404 in the P2P network 402.
  • the content query 412 may be transmitted using any suitable transmission scheme provided by the P2P network 402.
  • the content query 412 may be flooded throughout the network 402, may be transmitted to selected nodes, or may be sent to a designated content directory, e.g., tracker, super peer, hierarchical content directory, or the like, depending on the system utilized by the P2P network 402.
  • the CP (404-1 , 404-2) will participate in the query/search operation on behalf of the entire cluster. For example, depending on the system utilized by the P2P network 402, the CP (404-1 , 404-2) will publish to the P2P network the seeding list of its cluster in addition to its own seeding information.
  • a transfer may be arranged between the nodes 408, 410 of the cluster (406-1 and 406-2) and the node 404 which requested this content. For example, as shown one or more of the nodes 408 that has requested content, may seed content 440 to the node 404 that requested the content.
  • each of the nodes 408, 410 of the corresponding cluster e.g., 406-1 , 406-2
  • each of the nodes 408, 410 of the corresponding cluster e.g., 406-1 , 406-2
  • the cluster e.g., 406-1 , 406-2
  • Naturally other members of the P2P network may similarly source content 440 to the requesting node 404.
  • the download speed provided by a P2P network to a member of a P2P network 402 may be based on its upload speed so as to discourage free-riding.
  • the upload speed of a CP 404-x may be determined based upon the aggregated upload speeds of all the seeding peers 408, 410 within the corresponding cluster 406-x and thereby, the P2P network may provide higher download speed (or throughput) to the CP 404-x then may be provided to a typical node 404 of the P2P network.
  • the CMA may perform a clustering management process using any suitable cluster management method.
  • An example of a cluster management implementation will be given below using a modified dynamic clustering management process performed by a CMA in accordance with an embodiment of the present system.
  • FIG. 5 shows a flow diagram that illustrates a modified dynamic clustering management process 500 in accordance with an embodiment of the present system.
  • the process 500 may be performed using one or more computers communicating over one or more networks.
  • the process 500 can include one of more of the following acts. Further, one or more of these acts may be combined and/or separated into sub-acts, if desired.
  • the process may start during act 501 and then proceed to act 503.
  • the process 500 may be performed by a program portion running on one or more of the nodes of a P2P network. In this way, the process 500 illustrates modification to the existing P2P network that may be utilized to realize a cluster peer in accordance with an embodiment of the present system.
  • a node may determine whether to a join a cluster. Accordingly, if the node determines to join a cluster, the process will continue to act 505. However, if the node determines not to join a cluster, the process will continue to act 513.
  • the node may determine to join a cluster based upon, for example, one or more of a predetermined parameter (e.g., a device setting), a user's selection, network availability, cost (e.g., usage fees), power (e.g., battery power), bandwidth, content interests that are shared by members of the cluster (e.g., a user's request for certain content such as a song, etc.), etc.
  • a predetermined parameter e.g., a device setting
  • cost e.g., usage fees
  • power e.g., battery power
  • the node may display a Ul of a users device (e.g., an MS) requesting whether a user wishes to join a cluster and await a user's selection.
  • a users device e.g., an MS
  • This process may be invoked at predetermined times, upon detecting a cluster within a P2P network, may be user determined, etc.
  • the node may determine whether a suitable CP has been found. The node may do this by listening to a CP announcement on a channel such as, for example, a global channel which the process may have joined, may identify clusters based on a table of available clusters, etc. Accordingly, if the node detects a suitable CP, the process may continue to act 517. However, if the node does not detect a suitable CP, the process may continue to act 507.
  • a node when a node listens to the global channel, it will hear CP announcements from potentially multiple CPs and even potential CPs.
  • the node may choose among them based on interest to content, network proximity (e.g., hop counts measured from the CP announcement messages), or even network prefix (e.g., to determine whether the node is within the same local network as the CP), etc.
  • a node may determine that a potential CP is the best, so it will join the potential CP's channel.
  • a new cluster may be formed when a node joins to a potential CP's channel and that potential CP is elected and becomes a CP.
  • the node may also use a threshold to determine whether it has found a suitable CP.
  • the node may maintain a local list of CPs who share the same or a similar interest for content. This information may be contained within a CP table which may include, for example, one or more of a CP index, an IP address of a CP (CP IP address), a network prefix, etc.
  • the node may select a CP that represents a cluster of nodes that each share the same or a similar interest for content.
  • a weighting may be determined based upon one or more factors such as, for example, length of IP address, IP address prefix and highest CP index, etc.
  • the node may compare one or more of the IP address, IP prefix, and CP index with corresponding data in the CP index. The node may then determine whether the compared IP address, IP prefix and/or CP table is greater than corresponding threshold values. If so, then the node may determine that the detected CP is a strong match (i.e., is suitable). In the alternative, if the node determines that the compared IP address, IP prefix and/or CP table is less than corresponding predetermined threshold values, the node may determine that the CP is a poor match and, thus, determine that it has not detected a suitable CP. Further, if more than one CP is found, the process may select the CP that has the highest weight (e.g., that most closely matches the nodes content interests).
  • the node may determine whether it would like to be a CP. Accordingly, if the node determines that it would like to be a CP, the process may continue to act 509. However, if the node determines that it would not like to be a CP, the process may continue to act 513.
  • the node may determine whether it would like to a be a CP based upon, for example, one or more of a predetermined parameter (e.g., a device setting), a user's selection, network availability, cost (e.g., usage fees), power (e.g., battery power), bandwidth, content requests (e.g., a user's request for certain content such as a song, etc.), etc.
  • a predetermined parameter e.g., a device setting
  • a user's selection e.g., network availability, cost (e.g., usage fees), power (e.g., battery power), bandwidth, content requests (e.g., a user's request for certain content such as a song, etc.), etc.
  • the process may display a Ul requesting whether a user wishes to be a CP and await a user's selection. In an embodiment of the present system, this process may be invoked at predetermined times.
  • the node may form a cluster, by for example, announcing itself as a CP using, for example, a global channel or other suitable channel including a publishing of content of interest to enable other nodes to determine whether or not to join its cluster.
  • the process may continue to act 51 1.
  • the node may collect a list of seeds within its cluster and may amend the list of seeds based upon received responses from seeding peers within its cluster. After completing act 51 1 , the process may continue to act 513.
  • the node may join the P2P network as a CP and provide to the P2P network, a table of content available from the nodes of the cluster in addition to its own content.
  • the process may continue to act 515.
  • an ordinary peer may join the P2P network and, if it still wishes to join a cluster, it may listen to the global channel for a CP announcement and return to act 503 if it finds a suitable CP.
  • the node may operate in a P2P network as a CP.
  • the process may continue to act 531 where the process ends.
  • the node may join the cluster of the suitable CP that was found during act 505 and become a peer of the cluster (e.g., see further acts below). Accordingly, a node may join the cluster whose channel address is indicated in the CPs announcement message of the CP that was found to be suitable during act 505. After completing act 517, the process may continue to act
  • the node may determine whether it is already in a P2P network. Accordingly, if the node determines that it is in a P2P network, the process may continue to act 512. However, if the node determines that it is not in a P2P network, it may continue to act 523.
  • the node may leave the P2P network. This step may be useful when the node is already operating in a P2P network. After completing act 521 , the process may continue to act 523.
  • the node, now peer of the cluster may provide to its corresponding CP seeding information such as, for example, a seeding list of content that the node/peer has access to as well as seeding availability, willingness to seed, and if seeded, upload speed, etc.
  • CP seeding information such as, for example, a seeding list of content that the node/peer has access to as well as seeding availability, willingness to seed, and if seeded, upload speed, etc.
  • every node of the P2P network and every peer of the cluster may be encouraged to seed for the P2P system so that it may have access to desired content and to provide a better service parameter such as, for example, a higher QoS, etc.
  • the user and/or the process may determine how much to seed, upload speed available to the P2P network, etc., so that a desired content service parameter can be achieved.
  • the process may continue to act 525.
  • a peer which does not seed or upload below a threshold may be considered a free-riding peer in its cluster.
  • a CP may determine whether a peer is a free-riding peer and allow, restrict, and/or deny a content service based upon this determination, system specifications, and/or a user's selection. For example, if peer pays a fee, it may be allowed to free ride.
  • a seeding threshold e.g., a download throughput
  • a CP may indicate a preference for more seeding peers in its announcement message.
  • the CP may determine to have a number of peers which exceeds a certain threshold. Accordingly, the CP may transmit a request for more peers in its announcement message or a subsequent announcement message. Conversely, the CP may have options to lower the relay service quality or deny relay service if that request (soliciting seeding) was not satisfied.
  • the node/peer may determine whether a corresponding peer (e.g., for each peer of a cluster) should be a potential CP. Accordingly, the process may determine whether a corresponding peer should be a potential CP based on, for example, whether a peer has sufficient bandwidth (e.g., to support CP functions), content, seeds, and/or power. Thus, for example, if the process determines that a corresponding peer has sufficient bandwidth to support a CP function, the process may determine that this peer should be a potential CP and continue to act 527.
  • a corresponding peer e.g., for each peer of a cluster
  • the process may determine whether a corresponding peer should be a potential CP based on, for example, whether a peer has sufficient bandwidth (e.g., to support CP functions), content, seeds, and/or power.
  • the process may determine that this peer should be a potential CP and continue to act 527.
  • the process may determine that this peer should not be a potential CP and continue to act 529. The process may do this by comparing the bandwidth of the peer to a threshold bandwidth for a potential CP and determine whether the bandwidth of the peer is greater than or equal to the threshold bandwidth, greater than an existing CP of the cluster, etc. In a case wherein a node is determined to be a suitable CP, the process may determine that the potential CP has sufficient bandwidth. Conversely, the process may determine that the potential CP has insufficient bandwidth.
  • each node/peer may decide independently whether it wants to be a potential CP.
  • the decision need not be based on sufficient bandwidth per se, but may be based on a willingness to operate as a CP.
  • the node/peer if it is willing to operate as a CP, it will simply announce its willingness through the announcement message, for example, at a lower frequency than a CP would announce.
  • the reduced announcement of a potential CP over an existing CP helps to maintain the robustness of the cluster management process. In this way, if a CP fails and thereby, stops being a CP, a potential CP will be available to pick up, e.g., automatically. In this way, this embodiment of the present system provides a clustering process that is rather autonomous than central controlled.
  • the process may announce a corresponding peer as a CP.
  • peers which determine to serve as a potential CP may now join the global channel to announce their availability at a lower frequency.
  • This process may include, for example, an act of receiving (e.g., by a peer) a periodical announcement from a CP of the peer that may be broadcast on a general broadcast channel and then responding to the CP by, for example, transmitting a selective suppression with RM (Dciuster head, ⁇ ) on a cluster channel; or informing the CP that the peer cannot perform seeding, if is determined that the peer's available upload speed (initial value of zero falls below a predetermined threshold.
  • RM selective suppression with RM
  • the AM may include CP Index, interest for content, the method of content relay service, cluster channel ID, etc.
  • Each node within the P2P network may listen to the AM to select CP independently, based on CP index, interest for content, proximity (e.g., measured by hop count of the AM received by the peer), etc.
  • a node once a node selects a CP, it will leave the global channel to join the cluster channel of the chosen CP (the cluster channel ID/address can be found in that potential CP's AM). The node will respond with a respond message RM.
  • the RM may include the D (hop count from the CP to itself, measured when it received AM), seeding availability, seeding willingness, upload speed, etc.
  • the potential CP Once a potential CP receives an RM from its cluster channel, the potential CP may become (e.g., becomes) a CP.
  • a suppression mechanism may be used to suppress multiple RM from the same cluster channel, as may be readily appreciated, for example based on protocols utilized in multicast.
  • Each RM may be scheduled with a random timer so all members of the cluster do not all send RM at the same time. In this way, one of the RM will be sent out first.
  • others with the same RM should suppress its RM (e.g., not send their RM anymore).
  • Selective suppression means that RM with larger D will supress RM with smaller D.
  • the CP may remove or otherwise not place the peer on the CP's seeding list. For example, the CP may collect seeding info from peers through RM in this case. Since a CP does not determine if a peer seeds, the peer may simply report its seeding situation, its upload speed, etc. For those not seeding, that value is 0. From those RMs, the CP may compose a seeding list and will calculate aggregate upload speed to publish in P2P.
  • the process may continue to act 529 where one or more peers may operate in a cluster of a CP. After completing act 529, the process may continue to act
  • the CMA may perform a CMP using any suitable cluster management method.
  • cluster management the required information exchanged between a CP and ordinary peers of its cluster may include the minimum set of parameters such as, for example, one or more of cluster peer index (CPI), interest for content (IFC), method of content relay service (CRS), and seeding status (SS).
  • CPI cluster peer index
  • IFC interest for content
  • CRS method of content relay service
  • SS seeding status
  • the CPI may indicate a capability (or desire) of a peer to be CP and may be transmitted by a CP using any suitable channel such as, for example, a global channel.
  • the CPI may take into account one or more factors such as computation power, network connectivity, etc. for the CP and may include one or more values each indicating a separate capability. The higher the value of the CPI (or discrete values within the CPIs), the more capable a node is to become a cluster peer or CP.
  • the CPI may be set to zero to indicate that a peer cannot be a CP and may be set to ten to indicate a strong capacity for the peer to become a CP.
  • the CPI may be generated and/or distributed by a peer and will indicate a peer's capacity to become an ordinary peer or a CP.
  • the present system may also output a request on a Ul of a peer which requests whether a user desires the peer to become a CP. Accordingly, the peer may then set the CPI in accordance with the user's selection.
  • a user of a peer may select whether the peer should be a CP or an ordinary peer in cluster of a P2P network in accordance with an embodiment of the present system.
  • the CPI may change dynamically based upon a current network configuration of a corresponding CP. For example, if a peer becomes a CP, then the CPI may be adjusted to indicate this. The CPI may also be based, at least in part, upon a number of peers within the CP. Thus, each time a peer becomes a CP of a cluster, the CPI may be decremented to indicate less available capabilities.
  • the CPI may include one or more values and/or may have a suitable range.
  • the IFC may indicate an interest for content from a CP and/or an ordinary peer of the CP's cluster.
  • a CP may indicate its interest for content, and the ordinary peers will select the CP which may share the same or similar IFC.
  • An ordinary peer may join one or more clusters, for example based on the content of interest, such that it is a member of one or more clusters at the same time.
  • a peer may be a CP of one or more clusters at the same time.
  • a node of the P2P network that wants movie B can either choose the cluster of CP1 or CP2. In this case, the node may then look at the hop counts from CP1 or CP2 and may choose one over the other based on which CP is closer, etc.
  • the CRS may indicate one or more available content relay services available to a cluster.
  • the CRS may indicate that a unicast, multicast, and/or broadcast or any other appropriate content distribution methods are available to deliver content services from the CP to the nodes within its cluster.
  • the CRS may have one or more values and/or have a suitable range. For example a CRS of zero may indicate that the CP will only broadcast content distribution service, a CRS of one may indicate that only a multicast content distribution service is available, a CRS of two may indicate that only a unicast content distribution service is available.
  • the CRS may also include variables to indicate that combinations of the above content distribution services.
  • the SS may include information indicative of an ordinary peer's seeding status (e.g., the content it may supply as seed) and/or upload speed, etc.
  • the CP may use the SS to, inter alia, grant and/or deny service to the ordinary peer and/or adjust a QoS of a corresponding ordinary peer in the CP's cluster.
  • the present system may transmit periodic announcement message exchanges to build and/or maintain one or more clusters in a P2P network environment.
  • Peers e.g., potential CPs
  • the message may be in a form of (CAP C
  • USter peer will include its interest for content and its capability as a CP, such as the CPI.
  • S c i us ter is the scope of the cluster channel.
  • Those parameters are the parameters in AM for CP/potential CP in exchanging with ordinary peers.
  • the CP wants to limit the scope of its AMs, it may set the TTL of its AM to that value.
  • the scope is used to set the scope of the AM flooding.
  • the CAP may be the CPI.
  • the cluster channel may be the cluster channel address or ID that shows nodes within a P2P network where to listen to cluster channel.
  • two communication channels per cluster may be used: a first channel to broadcast any message by a peer that wants to become a CP (this channel may be considered a general channel and may be used by all peers of the P2P system); and a second channel which may be used for a reply by any peer that decides to join a cluster.
  • These communication channels may be considered clustering channels.
  • a content relay or query and search can use different channels of communication which may be different from the clustering channels.
  • the present system may be compatible with existing P2P systems (e.g., perpendicular, vertical, overlay, etc.), it may be compatible with conventional and/or future communication channels and/or protocols.
  • any known method may be used.
  • the present system may use clustering methods taught by copending U.S. Application No. 61/030,671 , filed February 22, 2008 and entitled “Dynamic Clustering Management” the contents of which are incorporated herein by reference.
  • FIG. 6 shows a system 600 in accordance with a further embodiment of the present system.
  • the system 600 includes a user device 690, such as a node of a cluster, that has a processor 610 operationally coupled to a memory 620, a rendering device 630, such as one or more of a display, speaker, content, etc., a user input device 670, a cluster management application (CMA) 692, and a content server 680 operationally coupled to the user device 690.
  • the memory 620 may be any type of device for storing application data as well as other data, such as content, etc.
  • the application data and other data are received by the processor 610 for configuring the processor 610 to perform operation acts in accordance with the present system.
  • the operation acts include controlling at least one of the rendering device 630 to render one or more of the GUIs and/or to render content.
  • the user input 670 may include a keyboard, mouse, trackball or other devices, including touch sensitive displays, which may be stand alone or be a part of a system, such as part of a personal computer, personal digital assistant, mobile phone, converged device, or other rendering device for communicating with the processor 610 via any type of link, such as a wired or wireless link.
  • the user input device 670 is operable for interacting with the processor 610 including interaction within a paradigm of a GUI and/or other elements of the present system, such as to enable web browsing, content selection, such as provided by left and right clicking on a device, a mouse-over, pop-up menu, etc., such as provided by user interaction with a computer mouse, etc., as may be readily appreciated by a person of ordinary skill in the art.
  • the CMA 692 may perform cluster management functions and/or processes according to the present system. For example, the CMA 692 may operate to perform various processes of the present system. Further, the CMA 692 may determine whether a cluster exceeds a certain size threshold (e.g., a number of peers in a cluster exceed a threshold, or a data flow (for sourcing and/or seeding operations) exceeds a corresponding data flow threshold. Accordingly, the CMA 692 may determine whether a threshold is exceeded and act to alleviate the situation by, for example, forming another cluster, removing peers from the cluster, adjusting a service parameter, and/or restricting bandwidth or content flow (e.g., by using multicast instead of unicast, etc.) when providing a content service.
  • a certain size threshold e.g., a number of peers in a cluster exceed a threshold, or a data flow (for sourcing and/or seeding operations) exceeds a corresponding data flow threshold. Accordingly, the CMA 692 may determine whether a threshold
  • the CMA 692 may determine whether a peer does not desire to be in a cluster of the CP. Then, the CMA 692 may operate to join the peer into a P2P network if it is determined that the peer does not desire to be in the cluster of the CP. In the adverse, if it is determined that the peer desires to be in the cluster of the CP, the CMA 692 of the user device acting as a CP may perform a "cluster peer process" as described herein. Naturally, in an embodiment of the present system, the CMA 692 may simply be a further process of the processor 610.
  • the rendering device 630 may operate as a touch sensitive display for communicating with the processors 610 (e.g., providing selection of a web browser, a Uniform Resource Locator (URL), portions of web pages, etc.) and thereby, the rendering device 630 may also operate as a user input device. In this way, a user may interact with the processor 610 including interaction within a paradigm of a Ul, such as to support content selection, etc.
  • the processors 610 e.g., providing selection of a web browser, a Uniform Resource Locator (URL), portions of web pages, etc.
  • the user device 690, the processor 610, memory 620, rendering device 630 and/or user input device 670 may all or partly be portions of a computer system or other device, and/or be embedded in a portable device, such as a mobile station (MS), mobile telephone, personal computer (PC), personal digital assistant (PDA), converged device such as a smart telephone, etc.
  • MS mobile station
  • PC personal computer
  • PDA personal digital assistant
  • the methods of the present system are particularly suited to be carried out by a computer software program, such program containing modules corresponding to one or more of the individual steps or acts described and/or envisioned by the present system.
  • a computer software program such program containing modules corresponding to one or more of the individual steps or acts described and/or envisioned by the present system.
  • Such program may of course be embodied in a computer-readable medium, such as an integrated chip, a peripheral device or memory, such as the memory 620 or other memory coupled to the processor 610.
  • the computer-readable medium and/or memory 620 may be any recordable medium (e.g., RAM, ROM, removable memory, CD-ROM, hard drives, DVD, floppy disks or memory cards) or may be a transmission medium utilizing one or more of radio frequency (RF) coupling, Bluetooth coupling, infrared coupling etc. Any medium known or developed that can store and/or transmit information suitable for use with a computer system may be used as the computer-readable medium and/or memory 620.
  • RF radio frequency
  • Any medium known or developed that can store and/or transmit information suitable for use with a computer system may be used as the computer-readable medium and/or memory 620.
  • These memories configure processor 610 to implement the methods, operational acts, and functions disclosed herein.
  • the operation acts may include controlling the rendering device 630 to render elements in a form of a Ul and/or controlling the operation acts described herein in accordance with the present system.
  • the memories may be distributed (e.g., such as a portion of the content server 680) or local and the processor 610, where additional processors may be provided, may also be distributed or may be singular.
  • the memories may be implemented as electrical, magnetic or optical memory, or any combination of these or other types of storage devices.
  • the term "memory" should be construed broadly enough to encompass any information able to be read from or written to an address in the addressable space accessed by a processor. With this definition, information on a network is still within memory 620, for instance, because the processor 610 may retrieve the information from the network for operation in accordance with the present system.
  • the processor 610 is capable of providing control signals and/or performing operations in response to input signals from the user input device 670 and executing instructions stored in the memory 620.
  • the processor 610 may be an application-specific or general-use integrated circuit(s). Further, the processor 610 may be a dedicated processor for performing in accordance with the present system or may be a general-purpose processor wherein only one of many functions operates for performing in accordance with the present system.
  • the processor 610 may operate utilizing a program portion, multiple program segments, or may be a hardware device utilizing a dedicated or multi-purpose integrated circuit.
  • FIG. 7 shows a flow diagram that illustrates a query search and seeding process 700 in accordance with an embodiment of the present system.
  • the process 700 may be performed using one or more computers communicating over one or more networks.
  • the process 700 can include one of more of the following acts. Further, one or more of these acts may be combined and/or separated into sub-acts, if desired. In operation, the process may start during act 701 and then proceed to act 703.
  • a CP of a cluster receives a query requesting content from a node (i.e., a querying node) of a P2P network outside of the cluster.
  • the query may have a format that is in accordance with a corresponding P2P network.
  • the CP may then recognize the query and the process may continue to act 705.
  • the CP will retrieve a seeding list of its peers (i.e., peers in its cluster, members of its cluster, etc.) that can (i.e., have and/or are willing) provide content (i.e., source content) to the P2P network.
  • the CP may parse the seeding list to determine one or more seeding peers which may provide the desired content to the querying node.
  • the seeding list may be contained, for example, in a memory (e.g., either local or remote) of the CP.
  • the CP may transmit the seeding list to the querying node via the P2P network.
  • the process may continue to act 709.
  • the querying node receives the seeding list from the CP.
  • the process may continue to act 71 1.
  • the querying node may determine one or more suitable seeding peers and contact them directly to arrange a transmission of the desired content.
  • the process may continue to act 713.
  • the seeding peer(s) may transmit the desired content directly to the querying node (e.g., see, FIG. 4).
  • the process may continue to act 715 where it ends.
  • the P2P system may perform a two-stage querying system.
  • a node of the P2P network e.g., a node that is not a member of the cluster
  • two consecutive requests i.e., one to the CP of the cluster and one to the one or more selected peers in the cluster may be performed in accordance with an embodiment of the present system.
  • the querying node may request the content directly from the peer or peers with the content that are within the cluster of the CP via a direct request to the one or more peers with the desired content. Because of the direct request of content (i.e., by the querying node) with the selected seeding peer, the seeding peer or peers are no longer transparent to the P2P system. This is an exception to the principle of the present cluster in which the peers within the cluster remain hidden or transparent from the P2P network.
  • the CP participates with the query/search of P2P system as a proxy for the peers of its cluster. In this case, the CP will publish the seeding list of its own cluster.
  • the CP may limit resources available to a cluster (or P2P network) and/or form transmission bottlenecks in the cluster or P2P network which is seeded. Accordingly, the CP may impose rules among the peers of its cluster to prevent bottlenecks, enhance available resources, and/or to reduce or prevent free-riding within the CPs cluster.
  • the CP may require peers within its cluster to volunteer as seeds. Further, if the CP determines that a peer within its cluster has not provided enough seeds (e.g., by determining whether the number of seeds of its cluster is less than a certain threshold), the CP may decline services available (e.g., by reducing service parameters, etc.) to the corresponding peer and/or the peer may consequently be excluded from the cluster of the CP. Accordingly, the CP may rely upon a unicast transmission scheme to transmit content amongst certain peers (as opposed to all peers) within the CPs cluster.
  • multicast may allow "free riding" of peers (i.e., peers which provide limited content, or no content, to the P2P systems) to participate in the cluster and receive content transmitted by the CP.
  • a vertical approach to establishing a P2P system with a topology that may be based on one or more common interests is provided.
  • one peer may be selected as a CP and may operate as a node of a plurality of nodes of a P2P network in which the CP resides.
  • the cluster may group all peers with the same or similar interests. All peers inside a given cluster may share the same content that is distributed by the CP of the cluster.
  • the selected CP may maintain a list of the peers in its cluster and may track shared content. Accordingly, the cluster of peers may hide behind the CP from the vantage of the P2P network in which the CP belongs.
  • the cluster will consequently appear as one node to the P2P network.
  • This approach will: reduce the number of queries, as the query as seen from the P2P network will originate from the CP and fewer number of peers participate in query/search operation; and may increase the efficiency of distribution as the individuality of nodes in the P2P network are reduced through common interest groups in clusters.
  • Each peer in a cluster can advertise common content by using the CP as a proxy.
  • the CP will be responsible and distribute information such as content using any known distribution scheme (e.g. broadcast, unicast, multicast, or any other appropriate distribution method etc.).
  • the CP may maintain a list (e.g., in a memory or database of the system) of peers in its cluster. This list may include a list of the peers in the cluster as well as shared content such as content that was distributed in the cluster.
  • the CP and a SN may be complementary. A SN for instance could have one or more CPs among its attached nodes. Actually SN does not know nor need to know that some of the attached nodes are actually CP which represent a cluster including a plurality of peers.
  • the architecture of the P2P network may be dependent upon the possible interests of a plurality of peers.
  • the present system may be configured to encourage peers to serve each other and serve nodes outside of the cluster so as to off-load the burden from the content source/servers.
  • a cost application may be provided to calculate costs (e.g., give rewards, calculate fees, etc.) to peers which contribute to the P2P network by seeding the cluster and/or P2P network.
  • the QoS application may adjust a QoS (e.g., throughput) for nodes and/or grant or deny service based upon an amount of seeding (or fees) provided by a node of a cluster. Accordingly, free- riding may be reduced or prevented.
  • the present system may interface with networks which may include, for example, structured and unstructured P2P networks, etc., and may provide a CP to communicate with a cluster including one or more peers.
  • the CP may be considered a node in a P2P network.
  • Peers with common interest for content may dynamically form common interest clusters.
  • One peer may be elected as the head of each common interest cluster and is called a cluster peer.
  • the cluster peer may represent the whole common interest cluster as one single peer in the process of query and search for content desired by the cluster. When it comes to serve as the source for other peers within the P2P network, all the peers within the same common interest cluster may participate to increase the content availability.
  • the CP may, in some embodiments, be different from an SN as it may not proxy for other ordinary peers, but rather represents a cluster of common interest peers. Further, the CP may be used within SN structured P2P networks and non-structured P2P networks. Thus, the CP structure of the present system may interface with conventional P2P networks with little or no modification to the P2P network and support a cluster management application. The present system may reduce the overhead of query and search operations in P2P networks. Another advantage of the present system is that the CP may also be able to take advantage of potential network support when available when CP provides content reply service to its cluster.
  • conventional P2P systems may be modified to provide the features and advantages of the present system. Accordingly, when a node joins the P2P network a determination may be made as to whether the node desires to be in a cluster. Accordingly, if it is determined that the node desires to be in the cluster, the P2P system may place the node in the cluster. Otherwise, the P2P system may place the node in the P2P network of the P2P system.
  • the present system may provide various features and advantages to P2P systems such as, for example: enhancing efficiency of distribution as content is distributed to peers of clusters with common interests; reducing distribution flows as a CP is a relay for the common content distributed within the cluster; and/or enhancing source operations as seeding from within the cluster does not go through the CP thereby maintaining advantages of a known P2P system.
  • enhancing efficiency of distribution as content is distributed to peers of clusters with common interests such as a CP is a relay for the common content distributed within the cluster
  • enhancing source operations as seeding from within the cluster does not go through the CP thereby maintaining advantages of a known P2P system.
  • a number of querying nodes can be considered to be reduced, the number of sources for content is not reduced.
  • the present system may be utilized to establish a P2P cluster-based content distribution system to distribute content among one or more peers in a cluster and to provide content to one r more nodes in a P2P network.
  • the present system may also push predetermined content to a user's device operating as a peer in a cluster.
  • any of the disclosed elements may be comprised of hardware portions (e.g., including discrete and integrated electronic circuitry), software portions (e.g., computer programming), and any combination thereof;
  • hardware portions may be comprised of one or both of analog and digital portions; g) any of the disclosed devices or portions thereof may be combined together or separated into further portions unless specifically stated otherwise;
  • the term "plurality of an element includes two or more of the claimed element, and does not imply any particular range of number of elements; that is, a plurality of elements may be as few as two elements, and may include an immeasurable number of elements.

Abstract

A method of supplementing a peer-to-peer (P2P) computer network including a plurality of nodes, the method including acts of determining a common request for given content among the nodes; grouping nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset of the nodes as peers of the cluster; selecting a cluster peer (CP) for each cluster from among the peers of the cluster, the CP of each cluster having a network connection to the nodes in the P2P computer network; sourcing content from a peer having the content to a node requesting the content; sinking other content from a node having the other content to the CP of a corresponding cluster that desires the other content; and transmitting the sinked other content from the CP of the corresponding cluster to each of the peers of the corresponding cluster.

Description

CLUSTER PEER FOR PEER-TO-PEER SYSTEMS AND METHOD OF OPERATION
THEREOF
FIELD OF THE PRESENT SYSTEM:
The present system relates to at least one of a system, method, user interface, and apparatus for establishing an ad-hoc peer-to-peer (P2P) network and, more particularly, to a peer-to-peer network incorporating a cluster peer which provides support thereto.
BACKGROUND OF THE PRESENT SYSTEM: Recently, P2P networks have gained popularity in distributed computing system environments. P2P networks can comprise a plurality of nodes which typically share one or more resources such as central processing unit (CPU) cycles, applications, storage, operators, content, etc. Because nodes of P2P network are distributed throughout the network, a method of finding resources must be employed in order to find resources, such as content, available to the network.
Typically, P2P networks are classified as centralized, decentralized, structured, unstructured, and/or combinations thereof.
Centralized P2P networks use centralized servers and can be found in several commercially available P2P systems such as, NAPSTER™, BITTORRENT™, etc. This architecture may be used for searching (e.g., for content) and for coordination between nodes. Further, in centralized P2P network architectures, file transfers can be performed between two or more nodes independent of the centralized server. Further, as centralized P2P networks, such as NAPSTER™ and BITTORENT™ use a centralized directory or torrent tracker for content query and search operations, they do not scale well to a large number of nodes and are vulnerable to single point failure.
With respect to decentralized P2P networks, this architecture typically combines features of unstructured or unstructured networks so as to form a decentralized and unstructured (aka decentralized/unstructured) P2P network or a decentralized and structured
(decentralized/structured) P2P network, respectively.
With regard to decentralized/unstructured P2P networks, these networks organize peers in a flat (e.g. GNUTELLA™) or a hierarchical manner (e.g., as super peers as in KAZAA™). Content query and search operations are usually flooded across the network, and can be modified to improve search efficiency. There is no structure for content placement. Nodes can communicate with every other node. Super peers or super nodes (hereinafter SNs) can be used to represent a group of ordinary nodes to make query and search operations more efficient and scalable. However, content transfer is direct from node to node. Unfortunately, the overhead of query and search increases with the number of nodes and is therefore not scalable with large number of nodes.
With regard to decentralized/ structured P2P networks, these networks typically build an overlay topology to map content contained therein and can employ technologies, such as distributed hash tables (DHT), so that queries are deterministic and efficient. Unfortunately, these systems are typically found in research environments (e.g., research communities) as opposed to commercial environments. One of the common problems to these systems is that maintaining the overlay topology of the content map is relatively costly.
Structured P2P networks, such as PeerCluster, organize nodes into clusters based on the interests they share. The clusters are used to build content search structure to improve the query efficiency. Individual nodes participate in the P2P query and search operations.
However, PeerCluster has the same problem with other structured P2P systems in terms of maintaining overlay topology of the content map.
A proposed cluster-based P2P network discussed the possibility of using network-aware clustering to group nodes within the common administration regions for efficient content lookup and forwarding. In this network, a centralized clustering server was proposed to be used to perform network-aware clustering and registration. In the proposal, one or more designated nodes in each cluster was proposed to be selected as a directory for the content stored within that cluster. Accordingly, the delegated nodes function similarly to SNs that would act as centralized servers to track resources available to unstructured P2P networks. However, this proposal merely provided analysis rather than providing a system building effort. Another cluster-based architecture has been proposed to find super peers for a mobile environment. Clustered BitTorrent™ (CBT) P2P network proposes a super peer structure for
BITTORRENT™-type P2P networks based on proximity. In this proposal, the super peer or super node structure is built to aggregate the query and search from a group of regular peers. However, this proposal does not reduce the number of peers that participate in a query and search operation.
Thus, conventional P2P networks require additional overhead and lose efficiency as the number of nodes within the networks increases. Accordingly, there is a need to improve existing P2P networks. In addition, there is a need to supplement existing P2P systems to provide improved efficiencies during content search/query operations. In addition, there is a need to improve the efficiency of content dissemination by a content relay service. SUMMARY OF THE PRESENT SYSTEM:
It is an object of the present system to overcome disadvantages and/or make improvements in the prior art.
Accordingly, the present system provides a computer system/controller, computer program, and method of controlling a peer-to-peer (P2P) computer network comprising a plurality of nodes, and one or more clusters. A method of supplementing a peer-to-peer (P2P) computer network including a plurality of nodes, the method including acts of determining a common request for given content among the nodes; grouping nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset of the nodes as peers of the cluster; selecting a cluster peer (CP) for each cluster from among the peers of the cluster, the CP of each cluster having a network connection to the nodes in the P2P computer network; sourcing content from a peer having the content to a node requesting the content; sinking other content from a node having the other content to the CP of a corresponding cluster that desires the other content; and transmitting the sinked other content from the CP of the corresponding cluster to each of the peers of the corresponding cluster.
In accordance with an embodiment of the present system, the link may include a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster. The method may include an act of determining by the CP of the cluster a service parameter for one or more peers in the cluster of the CP. The method may include acts of determining by the CP of a cluster whether a peer of the cluster of the CP is free- riding; and adjusting the service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding.
Further, the method may include an act of participating by the CP of a cluster on behalf of the peers of the cluster in a query for content from a third node of the plurality of nodes. The W
5
method may include an act of sending, by the CP of a cluster, a seeding list to the P2P computer network on behalf of the peers of the cluster. In accordance with an embodiment of the present system, the act of transmitting the sinked other content may include transmitting the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter.
According to yet another aspect of the present system, there is provided a peer-to-peer (P2P) computer system to distribute content among a plurality of nodes. The P2P computer system may include one or more controllers which may be configured to determine common resources among the plurality of nodes; group nodes of the plurality of nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset including two or more nodes of the plurality of nodes as peers of the cluster; select a cluster peer (CP) for each cluster from among the peers of the cluster, the CP of each cluster having a network connection to one or more nodes of the plurality of nodes in the P2P computer network; source content from a peer having the content to a first node requesting the content of the plurality of nodes via a link between the peer having the content and the first node requesting the content; sink other content from a second node having the other content of the plurality of nodes to the CP of a corresponding cluster that desires the other content; and transmit the sinked other content from the CP of the corresponding cluster to each of the peers of the corresponding cluster.
In accordance with an embodiment of the system, the link may include a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster. A controller of the CP of the cluster may determine a service parameter for one or more peers in the cluster of the CP. The controller of the CP of the cluster may be configured to determine cluster whether a peer of the cluster of the CP is free-riding; and adjust the service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding. The controller of the CP of the cluster may be configured to participate on behalf of the peers of the cluster in a query for content from a third node of the plurality of nodes. The controller of the CP may be configured to send a seeding list to the P2P computer network on behalf of the peers of the cluster. The controller of the CP may be configured to transmit the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter
According to yet a further aspect of the present system, there is disclosed a computer program stored on a computer readable memory medium, the computer program configured to provide a user interface (Ul) to accomplish a task, the computer program may include a program portion configured to determine a common request for given content among the plurality of nodes; a program portion configured to group nodes of the plurality of nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset including two or more nodes of the plurality of nodes as peers of the cluster; a program portion configured to select a cluster peer (CP) for each cluster from among the peers of the cluster, the CP of each cluster having a network connection to one or more nodes of the plurality of nodes in the P2P computer network; a program portion configured to source content from a peer having the content to a first node requesting the content of the plurality of nodes via a link between the peer having the content and the first node requesting the content; a program portion configured to sink other content from a second node having the other content of the plurality of nodes to the CP of a corresponding cluster that desires the other content; and a program portion configured to transmit the sinked other content from the CP of the corresponding cluster to each of the peers of the corresponding cluster.
The program portion configured to source content may be configured to establish a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster. A program portion may be configured to determine a service parameter for one or more peers in the cluster of the CP. The computer program may include a program portion configured to determine whether a peer of the cluster of the CP is free-riding; and a program portion configured to adjust a service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding. The computer program may include a program portion configured to participate, by the CP of a cluster on behalf of the peers of the cluster, in a query for content from a third node of the plurality of nodes. The computer program may include a program portion configured to send, by the CP of a cluster, a seeding list to the P2P computer network on behalf of the peers of the cluster. The program portion configured to transmit may be configured to transmit the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter. Thus, for example, a service parameter such as, for example, bandwidth, QoS, content dissemination, etc. to the free-riding peer may be reduced or entirely prevented.
The present system may also provide enhanced levels of privacy and/or confidentiality. Moreover, the present system may offer performance advantages in a scalable network environment.
BRIEF DESCRIPTION OF THE DRAWINGS:
The invention is explained in further detail, and by way of example, with reference to the accompanying drawings wherein:
FIG. 1 shows a network in accordance with an embodiment of the present system;
FIG. 2 shows a content query and search operation according to the present system;
FIG. 3 shows a content relay service provided to a cluster according to an embodiment of the present system; FIG. 4 shows a content redistribution service for the P2P system according to an embodiment of the present system;
FIG. 5 shows a flow diagram that illustrates a modified dynamic clustering management process in accordance with an embodiment of the present system;
FIG. 6 shows a system in accordance with a further embodiment of the present system; and
FIG. 7 shows a flow diagram that illustrates a query search and seeding process in accordance with an embodiment of the present system. DETAILED DESCRIPTION OF THE PRESENT SYSTEM:
The following are descriptions of illustrative embodiments that when taken in conjunction with the following drawings will demonstrate the above noted features and advantages, as well as further ones. In the following description, for purposes of explanation rather than limitation, illustrative details are set forth such as architecture, interfaces, techniques, element attributes, etc. However, it will be apparent to those of ordinary skill in the art that other embodiments that depart from these details would still be understood to be within the scope of the appended claims. Moreover, for the purpose of clarity, detailed descriptions of well known devices, circuits, tools, techniques and methods are omitted so as not to obscure the description of the present system. It should be expressly understood that the drawings are included for illustrative purposes and do not represent the scope of the present system. In the accompanying drawings, like reference numbers in different drawings may designate similar elements unless context indicates otherwise.
For purposes of simplifying a description of the present system, the terms "operatively coupled", "coupled" and formatives thereof as utilized herein refer to a connection between devices and/or portions thereof that enables operation in accordance with the present system. For example, an operative coupling may include one or more of a wired connection and/or a wireless connection between two or more devices that enables a one and/or two-way communication path between the devices and/or portions thereof. For example, an operative coupling may include a wired and/or wireless coupling to enable communication between a node and a cluster peer (CP). A further operative coupling in accordance with the present system may include one or more couplings between two or more user devices/nodes, etc., such as via a wide area network, in accordance with an embodiment of the present system.
The terms "node," "peer," "user device," etc., may refer to devices (e.g., user devices such as, for example, a personal computer (PC), a mobile station (MS) such as a PDA, etc.) and/or systems which may be operatively coupled or otherwise connected to each other in a network such as, for example, a peer-to-peer network unless context indicates otherwise. However, in the present description, the term "peer" and formatives thereof will be used to describe members of a cluster and the term "node" will be used to refer to members of the P2P that are not members of a cluster. However, as will be clear from the description herein, a CP may be considered both a node and a peer unless context indicates otherwise.
As used herein the term "peer-to-peer" (P2P) may refer to a distributed system comprising a plurality of nodes and/or peers each of which may include a separate memory and/or a controller and which may be operatively coupled to one or more other nodes.
The term rendering and formatives thereof as utilized herein refer to providing content, such as digital media, such that it may be perceived by at least one user sense, such as a sense of sight and/or a sense of hearing. For example, the present system may render a user interface on a display device so that it may be seen and interacted with by a user. Further, the present system may render audio visual content on both of a device that renders audible output (e.g., a speaker, such as a loudspeaker) and a device that renders visual output (e.g., a display). To simplify the following discussion, the term content and formatives thereof will be utilized and should be understood to include audio content, visual content, audio visual content, textual content and/or other content types, unless a particular content type is specifically intended, as may be readily appreciated.
The system, device(s), method, user interface, etc., described herein address problems in prior art systems. In accordance with an embodiment of the present system, a system, method, device, computer program, and/or interface for rendering a user interface (Ul) for a user's convenience may be provided. The present system may include a one or more processors which may perform a method to establish a peer-to-peer (P2P) computer network comprising a plurality of nodes, and one or more clusters. The method may include one or more acts of: selecting a cluster peer (CP) for each cluster of the one or more clusters from among grouped peers, establishing a network connection between the CP of each cluster to a node of the plurality of nodes in the P2P computer network; sourcing content from a peer having the content of the grouped peers to a node requesting the content of the plurality of nodes via a link between the peer having the content and the node requesting the content; sinking content by the CP of a cluster from a node having the content of the plurality of nodes; and/or transmitting the sinked content from the CP to each of the plurality of peers in the cluster of the CP using a predetermined transmission method such as unicast, multicast, or broadcast. It is also envisioned that the present system may collect statistical information or may collect information which may be used (e.g., by a user device according to the present system) to calculate statistics related to the user and/or user device (e.g., a mobile station) in accordance with the present system, such as a relative time of an action, geo-location, network, subnetwork, cluster, subcluster, detected content item, user request, system request, query, answer, user identification (ID), etc.
The user interaction with and manipulation of the computer environment is achieved using any of a variety of types of human-processor interface devices that are operationally coupled to the processor (or processors) controlling the displayed environment. A common interface device for a user interface (Ul), such as a graphical user interface (GUI) is a mouse, trackball, keyboard, touch-sensitive display, virtual recognition device, etc. For example, a mouse may be moved by a user in a planar workspace to move a visual object, such as a cursor, depicted on a two-dimensional display surface in a direct mapping between the position of the user manipulation and the depicted position of the cursor. This is typically known as position control, where the motion of the depicted object directly correlates to motion of the user manipulation.
An example of such a GUI in accordance with an embodiment of the present system is a GUI that may be provided by a computer program that may be user invoked, such as to enable a user to make a request for content. To facilitate manipulation (e.g., content selection, sharing, etc.) of the content, the GUI may provide different views that are directed to different portions of the present process.
For example, the GUI may present a typical Ul including a windowing environment and as such, may include menu items, pull-down menu items, pop-up windows, etc., that are typical of those provided in a windowing environment, such as may be represented within a Windows™ Operating System GUI as provided by Microsoft Corporation and/or an OS X™ Operating System GUI, such as provided on an iPhone™, MacBook™, iMac™, etc., as provided by Apple, Inc., and/or other operating systems. The objects and sections of the GUI may be navigated utilizing a user input device, such as a mouse, trackball, a finger, and/or other suitable user input. Further, the user input may be utilized for making selections within the GUI such as by selection of menu items, window items, radio buttons, pop-up windows, for example, in response to a mouse-over operation, and other common interaction paradigms as understood by a person of ordinary skill in the art. Similar interfaces may be provided by a device having a touch sensitive screen that is operated on by an input device such as a finger of a user or other input device such as a stylus or by a device which may interpret a virtual location of a device (i.e., an orientation or motion of an MS, etc.) or an anatomical feature of a user such as a user's hand, etc. In this environment, a cursor may or may not be provided since location of selection may be directly determined by the location of interaction with the touch sensitive screen, by the location of, for example a user's limb (or parts thereof), or by the location, direction, or motion of a device including the GUI. Although the GUI utilized for supporting touch sensitive or virtual inputs may be somewhat different than a GUI that is utilized for supporting, for example, a computer mouse input, however, for purposes of the present system, the operation is similar. Accordingly, for purposes of simplifying the foregoing description, the interaction discussed is intended to apply to either of these systems or others that may be suitably applied.
The present system includes a cluster peer (CP) which may supplement typical network architectures such as, for example, P2P systems and networks. Thus, the present system may be included with, and/or interface with, P2P systems and networks and provide enhanced content query and/or search operations; content dissemination; and/or content redistribution. The present system may also, if desired, perform content redistribution in accordance with those of a P2P system with which it is interfaced.
FIG. 1 shows a network 100 in accordance with an embodiment of the present system. The network 100 may include one or more nodes 104 which form a P2P network 102.
The one or more nodes 104 may join and/or leave the network 100 in accordance with any add/drop procedure that is suitable for the particular P2P network employed for the P2P network 102 such that the network 100 may include a group of, for example, one or more stationary (e.g., home computers) and/or mobile nodes such as, for example, mobile stations (MSs) or the like, and which may join the network 100 as desired in accordance with the particular P2P network employed for the P2P network 102. One or more of the nodes 04 may operate as cluster peers (CPs) 104-1 and 104-2 in accordance with an embodiment of the present system. The CPs 104-x may be selected based on one or more desired parameters such as, for example, available bandwidth, processing speed, availability, user request, device request, system request, geographic location, network type, network load, cost, quality of service (QoS), etc. The P2P network 102 may include suitable network structures such as, for example, structured, unstructured, centralized, decentralized, hybrid, and/or combinations thereof. Thus, the nodes 104 may communicate with each other (e.g., to query, search, and/or transfer information) using, for example, any suitable P2P network scheme. Suitable P2P network schemes may include, schemes such as implemented by NAPSTER™, GNUTELLA™, KAZAA™, proprietary networks, etc.
The CPs 104-x may be coupled to one or more P2P networks such as P2P network 102 with little or no modification to a structure of the P2P network. Accordingly, the present system may be compatible with conventional P2P networks. Thus, the CPs 104-x are compatible with other P2P systems, such as the P2P network 102, and may function within one or more conventional P2P systems. The CPs 104-x may include a cluster management application (CMA) which will be further described below.
The CPs 104-x may define respective clusters 106-x. Accordingly, the CPs 104-1 and 104-2, may define clusters 106-1 and 106-2, respectively. Thus, the CPs 104-x may represent a cluster of ordinary peers in the P2P network 102. In one embodiment, all of the peers in given cluster (e.g., cluster 106-1 , 106-2) may share the same interest for the same content. In this way, dissemination of the content of interest may be handled in a more efficient manner, as described further herein, without overburdening the network. The corresponding CP 104-x of a cluster 106-x may perform content query and/or search operations on behalf of the respective cluster in the P2P network 102. Thus, for example, CPs 104-1 and 104-2 may perform content query and/or search operations on behalf of clusters 106-1 and 106-2, respectively. Thus, CP 104-1 will perform query and/or search operations for all peers 108 within cluster 106-1 and CP 104-2 will perform query and/or search operations for all peers 1 10 within cluster 106-2. Further, the CPs 104-x may disseminate content that they have requested (received from another node of the P2P system that is not a member of the cluster) to selected peers (e.g., 108 or 1 10) within its respective cluster. Thus, for example, the CP 104-1 may distribute content that it has requested from, for example, other nodes such as nodes 104 within the P2P network 102, to all or selected peers 108 within its respective cluster 106-1. Similarly the CP 104-2 may distribute content that it has requested from, for example, other nodes such as nodes 104 within the P2P network 102, to all or selected peers 1 10 within its respective cluster 106-2. Thus, when the cluster (e.g., 106-1 ) acts a sink for data sourced from the P2P network 102, the corresponding CP (e.g., 104-1 ) may distribute the data sourced from the P2P network to all the peers in the respective cluster (e.g., 106-1 ). Accordingly, network resources such as, for example, bandwidth may be conserved since only one request need be performed and the data need only be transmitted (from a network perspective) to the requesting CP, yet may be distributed by the requesting CP to one or more of the members of its cluster. This may be desirable when one or more of the peers (e.g., 108) in a cluster (e.g., 106-1 ) are MSs using a wireless link to, for example, one or more base stations (BSs) which provide data to the MSs. Thus, a CP (e.g., 104-1 which may include an MS, etc., may be coupled to its corresponding cluster (e.g., 106-1 ) and/or the P2P network 102 using wired and/or wireless connections. Further, when acting as a source, all or some of the peers (e.g., 108) from the cluster (e.g., 106-1 ) may source content individually for the P2P network 102 (e.g., act as a seed for content) as will be described below with reference to FIG. 4 or may seed via a corresponding CP (e.g., 104-1 ). Thus, the CP104-X may represent a cluster of peers 108, 1 10 in its corresponding cluster 106-x, This is a vertical approach per category/subject/... and all peers 108, 10 in the clusters 106-x, besides sharing the same content, will not generally participate in the P2P network 102 (except for the seeding as seen later on). Accordingly, the CP 104-x of a cluster 106-x handles query and search just like any other node from the perspective of the P2P network 102, using for example, the P2P query and search technologies used in the P2P network 102. Accordingly, the CP 104-x may interface with (i.e., be compatible with) conventional P2P networks, however, from the perspective of the network when the CP is sinking content (e.g., in response to a search for content initiated by one or more of nodes of the cluster), the entire cluster appears as only a single node of the network.
Details of various data transfer operations such as, for example, source and/or sink operations, according to an embodiment of the present system will now be discussed below.
Content Query and Search
Only a CP 104-x of a cluster 106-x will engage in content query and/or search operations of the P2P network 102 as a proxy for all peers for a corresponding cluster. For example, in a P2P network wherein there is no centralized or hierarchical source within the P2P network that acts as a repository identifying all content available within the P2P network, a CP 104-x of the P2P network 102 will receive a query requesting data from a node 104 in the P2P network 102, and only the CP 104-x will participate in the query and/or search from the P2P network 102. In a P2P network where there is a centralized source, hierarchical source or other repository within the P2P network identifying content available within the P2P network (e.g., a P2P network that utilizes a tracker, super peer, hierarchical content directory, etc., for query/search), the CP 104-x will participate in the query and search of the P2P system as a proxy for the peers within its cluster. In accordance with the present system, the CP 104-x will provide a seeding list (e.g., content/source information for the peers within its cluster) back to the P2P network 102 for use during the query and/or search operation of the P2P network 102 (e.g. tracker, super peer, flooding, or other system the P2P network 102 is using).
Accordingly, the CP 104-x may maintain information (e.g., in tables, etc.) about content contained by peers 108, 1 10 within its cluster106-x. Further, all the peers 108, 110 within a cluster 106-x will share a request from the cluster for the same content, however, as discussed below, each of the members of the cluster may serve (e.g., seed) the same content to the P2P network 102.
The process of the cluster performing a search request is illustrated in FIG. 2 according to an embodiment of the present system.
With reference to FIGs. 2-4, reference numerals 200 through 210, 300 through 310, and 400 through 410 each generally correspond with reference numerals 100 through 110, respectively. Accordingly, for the sake of clarity, a further description thereof will not be given.
With reference to FIG. 2, a content query 212 (e.g., a content query and/or search) may originate from one or more nodes 208, 210 of a cluster. In accordance with the present system, the content query 212 is transmitted to the network 202 by the corresponding CP (204-1 or 204- 2) and then may be relayed to other nodes within the network 202 utilizing any mechanism which the network utilizes for transmitting queries generally. For example, the content query 212 may be flooded throughout the network 202, may be transmitted to selected nodes such as a tracker node, a super peer, a hierarchical content directory, etc. As this method of generating and/or transmitting the content query 212 may depend upon the P2P network's type (e.g., centralized, decentralized, structured, unstructured, and/or combinations thereof) and is therefore beyond the scope of the present discussion, for the sake of clarity, it will not be further discussed. However, with reference to the content query 212, what is significant is that although one or more nodes 208, 210 of the cluster may be requesting content in a form of the query 212, the CP (204-1 or 204-2) of the corresponding cluster acts as a proxy for the entire cluster and issues only one content query 212 regardless of how many members of the cluster may provide the content query 212. In this way, network traffic is greatly reduced since each of the members of the corresponding clusters may share the content produced as a result of the content query 212 and only one content query 212 is produced for all of the members of the cluster. Further, since the CP (204-1 or 204-2) acts as a proxy for the content query/search on behalf of its corresponding entire cluster, the network overhead (e.g., such as network traffic) related to the operation of the content query/search is greatly reduced. Content Relay Service for the Cluster (Content Sinking)
The present system may provide a content relay service for a cluster via a corresponding CP. This is illustrated with reference to FIG. 3 which shows a content relay service provided to a cluster 306-x according to an embodiment 300 of the present system.
With reference to FIG. 3, when the cluster (e.g., 306-1 , 306-2) functions as sink for content on the P2P network 302, there may be a single content flow (e.g., 320-1 , 320-2) to a corresponding CP (e.g., 304-1 , 304-2) from the P2P network 302 into the corresponding cluster (e.g., 306-1 , 306-2). The CP (304-1 , 304-2) which receives the corresponding content flow (320-1 , 320-2) may then provide a content relay service to the whole cluster (e.g., 306-1 , 306-2) by transmitting content received from the content flow (320-1 , 320-2) to each of the peers or to selected peers (308, 310) in its corresponding cluster (306-1 , 306-2) using a suitable transmission scheme.
Thus, for example, the content relay service may be provided using any suitable transmission scheme via wired and/or wireless connections within the cluster. For example, with reference to the cluster 306-1 , a default mechanism for content transmission from its CP (e.g., 304-1 ) to a corresponding peer (e.g., 308) in its cluster (306-1 ) may be in a form of a unicast transmission from the CP (e.g., 304-1 ) to each of the peers (e.g., 308) within the cluster (306-1 ). Thus, when the cluster 306-x acts as a sink for content from the P2P network 302, for example in response to an identification of sources provided in response to a content query, a CP 304-x of the corresponding cluster 306-x may employ a content relay transmission method such as, for example, a unicast system to transmit the content to peers within its corresponding cluster. Transmission of content to each of the clusters (c.f., 306-1 and 306-2) may operate similarly.
A CP 304-x of a corresponding cluster 306-x may grant or deny a content relay service (e.g., for content received, from, for example, the P2P network 302) to one or more peers (e.g., 308, 310) within its cluster 306-x. Thus, for example, when a unicast transmission method is used for the content relay service, the CP 304-x of a cluster 306-x may grant or deny a content relay service to individual peers (e.g., 308, 310) in its cluster, for example, based on detected resources of a corresponding peer (308, 310). The decision to grant or deny a content relay service to a peer (308, 310) may be determined by the CP 304-x based on, for example, a ranking of the peer (308, 310) in a content seeding list 324-x of the CP 304-x. The content seeding list 324-x of the CP may be stored in one or more memories of the system 300 such as, for example, a memory which is local and/or remote from the corresponding CP 304-x.
The content seeding list 324-x may include information such as, for example, ID's of the peers (308, 310) of a cluster 306-x, capabilities of the correspond peer (308, 310) such as bandwidth, content, memory, availability as a seed, willingness to seed, and if seeding, aggregate uploading speed (e.g., since when the peer is seeding/sourcing, the peer can be connected to multiple nodes of P2P network), etc.
When the CP 304-x determines that an underlying network support method (hereinafter network support) such as IP multicast is available, the CP 304-x may determine whether the available network support can be used for the content relay service. In a case wherein the available network support can be used for the content relay service, the CP 304-x may obtain information regarding the network support and notify peers (308, 310) within its cluster 306-x of the available network support. Further, if the CP 304-x determines that the cluster supports other methods of distributing content, such as IP multicast, the CP 304-x of the corresponding cluster 306-x may select amongst the available distribution methods based on cluster parameters, such as a quality of service (QoS) requirement for the content, with regard to a seeding condition, to provide content relay service to the corresponding cluster peers 308, 310. For example, in some P2P systems, the downloading speed of a particular peer is limited by the unloading speed of the same peer. This type of condition is imposed on the nodes of the P2P network as one way of limiting free-riding. In accordance with the present system, the aggregate uploading speed of the entire cluster may be used as the uploading speed for the CP. In this way, the higher the aggregated uploading speed, the higher the downloading speed that may be enabled for the CP. Thus, the more peers of the cluster willing to seed and upload content, the higher downloading the CP can get from P2P network, which will translate into better relay service from the CP to the cluster.
The network support method may include any suitable transmission method such as, for example, unicast, multicast, broadcast, etc. However, the transmission method may be selected by the CP 304-x so that content may be distributed to a cluster of the CP 304-x in accordance with desired thresholds and/or parameters (e.g., cost, QoS, cluster traffic, etc.)
The CP 304-x may determine whether its cluster 306-x has exceeded certain thresholds and take corrective actions. To determine whether a cluster has exceeded certain thresholds, the CP 304-x may determine, for example, whether a number of peers 308, 310 in its cluster 306-x has exceeded a corresponding threshold (e.g., 100 peers) or whether a bandwidth (e.g. for a content service) in the cluster exceeds a threshold bandwidth. Accordingly, if the CP 304- x determines that its cluster exceeds one or more thresholds (e.g., the cluster has too many peers, etc.), the CP 304-x may impose corresponding conditions on one or more peers 308, 310 in the CP's 304-x cluster when distributing the content.
For example, in case of unicast within the cluster, there may be cases when a CP can only handle a certain amount of unicast connections, however, as may be readily appreciated, in multicast, there typically is no such limitation. In a case when there is not enough seeding, for example, when the aggregate uploading speed of the cluster is too low, the CP may request for more peers of the cluster to seed. In accordance with an embodiment of the present system, in a case where the request for more peers to seed is not successful, and the CP has some resource limitation as in unicast (e.g., not able to set up enough unicast connections), the CP may deny relay service to some peer in unicast or lower the QoS to all peers when using multicast. So, in accordance with the present system, it may be important for a cluster to have more seeding peers (e.g., to get higher aggregate uploading speed) to increase downloading speeds for sinking content to the cluster in a P2P system that balances upload and download speeds. In a case wherein the content is a streaming application, higher download speeds to the cluster may result in less buffering blockage. For a case wherein the content is non- streaming content, a higher download speed to the cluster may result in higher content availability at the CP, resulting in better relay service from CP to the cluster.
Peers 308, 310 of a cluster 306-x may determine whether service features meet one or more predetermined thresholds (e.g., content denial, content bandwidth, QoS, etc.) which may be preset or set by the user and/or system 300. In a case wherein corresponding peers 308, 310 determine that one or more service features of a cluster do not meet predetermined and/or desired thresholds, the corresponding peer 308, 310 may then leave the cluster and/or attempt to join the P2P network 302 directly as any of the nodes 304 to obtain desired content directly from the P2P network 302. Thus, for example, each of the ordinary peers (i.e., peers 308 of the cluster 306-1 which are not a CP 304-1 of the cluster 306-1 ) may be responsible for determining whether they will remain in the cluster 306-1 in which they are a member or join the P2P network 302 directly as a node to obtain or transmit content. Thus, for example, if the CP 304-1 of the cluster 306-1 denies content relay service to a particular peer 308 in its cluster 306-1 or the quality of the content relay service does not meet a certain threshold, the affected peer (or peers) 308 may detect this and then determine how to obtain the content on its own, by, for example, joining the P2P network 302 as a regular node 304, joining a different cluster 304-x, seeding to improve its ranking (as will be discussed below) within the original cluster, etc.
In sinking content, the CP 304-x may be considered a relay (e.g., proxy) for content to all peers 308, 310 of a corresponding cluster 306-x which share the same interest(s), and consequently desire access to the same content.
Content Redistribution For The Overall P2P System (Content Sourcinq)
FIG. 4 shows a content redistribution service for the P2P system according to an embodiment 400 of the present system. One or more peers 408, 410 of a corresponding cluster 306-x may seed (e.g., source) content to the P2P network 402 via a direct peer-to-peer connection 404 established between a peer 408, 410 of a corresponding cluster 406-x and a corresponding node 404 of the P2P network.
In accordance with an embodiment of the present system, a seeding peer 408, 410 may report its upload speed to the CP 404-x of its corresponding cluster 406-x. Further, the CPs 404-x may form and/or update a list of the seeding peers from its own cluster 406-x and may publish the seeding list on the P2P network 402 for use by one or more nodes 404 of the P2P network 402. The CPs 404-x may determine a rank of one or more of the peers 408, 410 in its corresponding cluster 406-x based upon one or more qualities such as, for example, seeding status based on availability for seeding, willingness to seed, if seeded, uploading speed, etc., of a corresponding peer 408, 410. The CP 404-x may use this ranking to grant or deny a content relay service or to set QoS for the content relay service. Further, the CP 404-x may solicit seeding requests within its corresponding cluster 406-x. Thus, for example, when a CP 404-x determines that a seeding condition of its cluster 406-x has fallen below a predetermined threshold (i.e., weakens) due, for example, to a low number of seeds within the cluster 408-x, a low aggregate upload speed of peers 408, 410 within its cluster 406-x, etc., the CP 404-x may request more seeds from its cluster 406-x and/or may deny a content relay service to lower ranking peers 408, 410 within its cluster 406-x. Moreover, if the CP 404-x determines that the seeding condition has not improved (i.e., has not risen above a predetermined threshold) within a certain period of time T, the CP 404-x may reduce the quality of a content relay service provided to one or more peers 408, 410 within its cluster 406-x (e.g., see, 322-x, FIG. 3).
With reference to FIGs. 3, as discussed above, a CP 304-x may grant and/or deny a content relay service or adjust a QoS of a content relay service to a peer 308, 310 of its cluster 306-x based upon several parameters such as seeding conditions (e.g., aggregate upload speeds) and its own sinking condition (download speed). Thus, for example, if a peer 308, 310 provides a quantity of seeds which is greater than a certain threshold, then the CP 304-x may grant a content relay service to the peer 308, 310 and/or increase a QoS such as bandwidth for the content relay service to the respective peer 308, 310. Similarly, if a peer 308, 310 provides a quantity of seeds which is less than (or equal to) a certain threshold or lacks an upload bandwidth (e.g., to provide seeds to the P2P network 302), then the CP 304-x may deny a content service (i.e., a content download) and/or adjust one or more content service parameters such as download bandwidth, QoS, etc., to deny, reduce, and/or restrict a content service to the respective peer 308, 310. In this way, the CP 304-x may encourage all the peers 308, 310 to serve/seed for the P2P network 302 so as to enhance content service QoS provided by its respective CP 304-x. With reference to FIG. 4, a content query 412 may be generated and/or transmitted by any node 404 in the P2P network 402. The content query 412 may be transmitted using any suitable transmission scheme provided by the P2P network 402. For example, the content query 412 may be flooded throughout the network 402, may be transmitted to selected nodes, or may be sent to a designated content directory, e.g., tracker, super peer, hierarchical content directory, or the like, depending on the system utilized by the P2P network 402. As this method of generating and/or transmitting the content query 412 may depend upon the P2P network's type (e.g., centralized, decentralized, structured, unstructured, and/or combinations thereof) and is therefore beyond the scope of the present discussion, for the sake of clarity, it will not be further discussed. However, with reference to the content query 412, the CP (404-1 , 404-2) will participate in the query/search operation on behalf of the entire cluster. For example, depending on the system utilized by the P2P network 402, the CP (404-1 , 404-2) will publish to the P2P network the seeding list of its cluster in addition to its own seeding information.
In a case wherein a node 408, 410 of a cluster (406-1 , 406-2) includes content requested by a node 404 of the P2P network 402, a transfer may be arranged between the nodes 408, 410 of the cluster (406-1 and 406-2) and the node 404 which requested this content. For example, as shown one or more of the nodes 408 that has requested content, may seed content 440 to the node 404 that requested the content. In this way, each of the nodes 408, 410 of the corresponding cluster (e.g., 406-1 , 406-2) that has related content, may act as a seed for the content and thereby, improve the upload speed of the content sourced by the cluster (e.g., 406-1 , 406-2). Naturally other members of the P2P network may similarly source content 440 to the requesting node 404.
Further, in a given cluster 404-x, the more peers 408, 410 which may participate in a seeding function and/or communicate simultaneously to provide higher aggregating upload speeds, the stronger the CP 404-x will be in the P2P system. For example, it is envisioned that the download speed provided by a P2P network to a member of a P2P network 402 may be based on its upload speed so as to discourage free-riding. In such system, the upload speed of a CP 404-x may be determined based upon the aggregated upload speeds of all the seeding peers 408, 410 within the corresponding cluster 406-x and thereby, the P2P network may provide higher download speed (or throughput) to the CP 404-x then may be provided to a typical node 404 of the P2P network.
With respect to the CMA, the CMA may perform a clustering management process using any suitable cluster management method. An example of a cluster management implementation will be given below using a modified dynamic clustering management process performed by a CMA in accordance with an embodiment of the present system.
FIG. 5 shows a flow diagram that illustrates a modified dynamic clustering management process 500 in accordance with an embodiment of the present system. The process 500 may be performed using one or more computers communicating over one or more networks. The process 500 can include one of more of the following acts. Further, one or more of these acts may be combined and/or separated into sub-acts, if desired. In operation, the process may start during act 501 and then proceed to act 503. The process 500 may be performed by a program portion running on one or more of the nodes of a P2P network. In this way, the process 500 illustrates modification to the existing P2P network that may be utilized to realize a cluster peer in accordance with an embodiment of the present system.
During act 503, a node may determine whether to a join a cluster. Accordingly, if the node determines to join a cluster, the process will continue to act 505. However, if the node determines not to join a cluster, the process will continue to act 513. The node may determine to join a cluster based upon, for example, one or more of a predetermined parameter (e.g., a device setting), a user's selection, network availability, cost (e.g., usage fees), power (e.g., battery power), bandwidth, content interests that are shared by members of the cluster (e.g., a user's request for certain content such as a song, etc.), etc. For example, the node may display a Ul of a users device (e.g., an MS) requesting whether a user wishes to join a cluster and await a user's selection. This process may be invoked at predetermined times, upon detecting a cluster within a P2P network, may be user determined, etc.
During act 505, the node may determine whether a suitable CP has been found. The node may do this by listening to a CP announcement on a channel such as, for example, a global channel which the process may have joined, may identify clusters based on a table of available clusters, etc. Accordingly, if the node detects a suitable CP, the process may continue to act 517. However, if the node does not detect a suitable CP, the process may continue to act 507.
For example, when a node listens to the global channel, it will hear CP announcements from potentially multiple CPs and even potential CPs. The node may choose among them based on interest to content, network proximity (e.g., hop counts measured from the CP announcement messages), or even network prefix (e.g., to determine whether the node is within the same local network as the CP), etc. Sometimes, a node may determine that a potential CP is the best, so it will join the potential CP's channel. In accordance with an embodiment of the present system, a new cluster may be formed when a node joins to a potential CP's channel and that potential CP is elected and becomes a CP.
The node may also use a threshold to determine whether it has found a suitable CP. Thus, for example, the node may maintain a local list of CPs who share the same or a similar interest for content. This information may be contained within a CP table which may include, for example, one or more of a CP index, an IP address of a CP (CP IP address), a network prefix, etc. The node may select a CP that represents a cluster of nodes that each share the same or a similar interest for content. A weighting may be determined based upon one or more factors such as, for example, length of IP address, IP address prefix and highest CP index, etc. Thus, for example, the node may compare one or more of the IP address, IP prefix, and CP index with corresponding data in the CP index. The node may then determine whether the compared IP address, IP prefix and/or CP table is greater than corresponding threshold values. If so, then the node may determine that the detected CP is a strong match (i.e., is suitable). In the alternative, if the node determines that the compared IP address, IP prefix and/or CP table is less than corresponding predetermined threshold values, the node may determine that the CP is a poor match and, thus, determine that it has not detected a suitable CP. Further, if more than one CP is found, the process may select the CP that has the highest weight (e.g., that most closely matches the nodes content interests).
During act 507, in a case wherein a suitable CP is not found, the node may determine whether it would like to be a CP. Accordingly, if the node determines that it would like to be a CP, the process may continue to act 509. However, if the node determines that it would not like to be a CP, the process may continue to act 513. The node may determine whether it would like to a be a CP based upon, for example, one or more of a predetermined parameter (e.g., a device setting), a user's selection, network availability, cost (e.g., usage fees), power (e.g., battery power), bandwidth, content requests (e.g., a user's request for certain content such as a song, etc.), etc. For example, the process may display a Ul requesting whether a user wishes to be a CP and await a user's selection. In an embodiment of the present system, this process may be invoked at predetermined times.
During act 509, in a case wherein the node decides to be a CP, the node may form a cluster, by for example, announcing itself as a CP using, for example, a global channel or other suitable channel including a publishing of content of interest to enable other nodes to determine whether or not to join its cluster. After completing act 509, the process may continue to act 51 1. During act 51 1 , the node may collect a list of seeds within its cluster and may amend the list of seeds based upon received responses from seeding peers within its cluster. After completing act 51 1 , the process may continue to act 513.
During act 513, the node may join the P2P network as a CP and provide to the P2P network, a table of content available from the nodes of the cluster in addition to its own content. After completing act 513, the process may continue to act 515. In an alternative embodiment, it is also envisioned that an ordinary peer may join the P2P network and, if it still wishes to join a cluster, it may listen to the global channel for a CP announcement and return to act 503 if it finds a suitable CP.
During act 515, the node may operate in a P2P network as a CP. After completing act
515, the process may continue to act 531 where the process ends.
During act 517 in a case wherein the node finds a suitable cluster identified by a suitable
CP, the node may join the cluster of the suitable CP that was found during act 505 and become a peer of the cluster (e.g., see further acts below). Accordingly, a node may join the cluster whose channel address is indicated in the CPs announcement message of the CP that was found to be suitable during act 505. After completing act 517, the process may continue to act
519.
During act 519, the node may determine whether it is already in a P2P network. Accordingly, if the node determines that it is in a P2P network, the process may continue to act 512. However, if the node determines that it is not in a P2P network, it may continue to act 523.
During act 521 , the node may leave the P2P network. This step may be useful when the node is already operating in a P2P network. After completing act 521 , the process may continue to act 523.
During act 523, the node, now peer of the cluster, may provide to its corresponding CP seeding information such as, for example, a seeding list of content that the node/peer has access to as well as seeding availability, willingness to seed, and if seeded, upload speed, etc. As discussed above, every node of the P2P network and every peer of the cluster may be encouraged to seed for the P2P system so that it may have access to desired content and to provide a better service parameter such as, for example, a higher QoS, etc. Accordingly, the user and/or the process may determine how much to seed, upload speed available to the P2P network, etc., so that a desired content service parameter can be achieved. After completing act 523, the process may continue to act 525.
With respect to seeding, a peer which does not seed or upload below a threshold may be considered a free-riding peer in its cluster. Accordingly, a CP may determine whether a peer is a free-riding peer and allow, restrict, and/or deny a content service based upon this determination, system specifications, and/or a user's selection. For example, if peer pays a fee, it may be allowed to free ride. Accordingly, a seeding threshold (e.g., a download throughput) may be based upon an amount of content (e.g., seeds) the peer provides to its cluster, P2P network and/or on a cost factor.
Further, a CP may indicate a preference for more seeding peers in its announcement message. Thus, for example, if a cluster is granted a higher P2P rating (and thus receive network advantages such as, for example, more content, download throughput, etc.) based upon an aggregated upload speed of peers within its cluster, the CP may determine to have a number of peers which exceeds a certain threshold. Accordingly, the CP may transmit a request for more peers in its announcement message or a subsequent announcement message. Conversely, the CP may have options to lower the relay service quality or deny relay service if that request (soliciting seeding) was not satisfied.
During act 525, the node/peer may determine whether a corresponding peer (e.g., for each peer of a cluster) should be a potential CP. Accordingly, the process may determine whether a corresponding peer should be a potential CP based on, for example, whether a peer has sufficient bandwidth (e.g., to support CP functions), content, seeds, and/or power. Thus, for example, if the process determines that a corresponding peer has sufficient bandwidth to support a CP function, the process may determine that this peer should be a potential CP and continue to act 527. However, if, for example, the process determines that a corresponding peer has insufficient bandwidth (e.g., to support a CP function), the process may determine that this peer should not be a potential CP and continue to act 529. The process may do this by comparing the bandwidth of the peer to a threshold bandwidth for a potential CP and determine whether the bandwidth of the peer is greater than or equal to the threshold bandwidth, greater than an existing CP of the cluster, etc. In a case wherein a node is determined to be a suitable CP, the process may determine that the potential CP has sufficient bandwidth. Conversely, the process may determine that the potential CP has insufficient bandwidth.
In accordance with another embodiment of the present system, each node/peer may decide independently whether it wants to be a potential CP. In this embodiment, the decision need not be based on sufficient bandwidth per se, but may be based on a willingness to operate as a CP. In this case, if the node/peer is willing to operate as a CP, it will simply announce its willingness through the announcement message, for example, at a lower frequency than a CP would announce. In this embodiment, the reduced announcement of a potential CP over an existing CP helps to maintain the robustness of the cluster management process. In this way, if a CP fails and thereby, stops being a CP, a potential CP will be available to pick up, e.g., automatically. In this way, this embodiment of the present system provides a clustering process that is rather autonomous than central controlled.
During act 529, based upon the determination of act 525, the process may announce a corresponding peer as a CP. Thus, peers which determine to serve as a potential CP may now join the global channel to announce their availability at a lower frequency. This process may include, for example, an act of receiving (e.g., by a peer) a periodical announcement from a CP of the peer that may be broadcast on a general broadcast channel and then responding to the CP by, for example, transmitting a selective suppression with RM (Dciuster head,■■·) on a cluster channel; or informing the CP that the peer cannot perform seeding, if is determined that the peer's available upload speed (initial value of zero falls below a predetermined threshold.
For example, in accordance with an embodiment of the present system, there may be two type of communication channels for cluster management: one global channel for every peer, and one cluster channel for each cluster. The cluster members may communicate using a cluster channel. All nodes of the P2P network start on the global channel, and a potential CP may broadcast announcement (AM) periodically on the global channel. In accordance with an embodiment of the present system, the AM may include CP Index, interest for content, the method of content relay service, cluster channel ID, etc. Each node within the P2P network may listen to the AM to select CP independently, based on CP index, interest for content, proximity (e.g., measured by hop count of the AM received by the peer), etc.
In an embodiment in accordance with the present system, once a node selects a CP, it will leave the global channel to join the cluster channel of the chosen CP (the cluster channel ID/address can be found in that potential CP's AM). The node will respond with a respond message RM. The RM may include the D (hop count from the CP to itself, measured when it received AM), seeding availability, seeding willingness, upload speed, etc. Once a potential CP receives an RM from its cluster channel, the potential CP may become (e.g., becomes) a CP.
Since there may be multiple RM from multiple peers of each cluster, a suppression mechanism may be used to suppress multiple RM from the same cluster channel, as may be readily appreciated, for example based on protocols utilized in multicast. Each RM may be scheduled with a random timer so all members of the cluster do not all send RM at the same time. In this way, one of the RM will be sent out first. In accordance with an embodiment of the present system, once an RM is sent and heard by others within the cluster channel, others with the same RM should suppress its RM (e.g., not send their RM anymore). Selective suppression means that RM with larger D will supress RM with smaller D.
In any event, in accordance with the present system, certain information is exchanged among CP and ordinary peers of the cluster. It does not have to be the dynamic cluster management I have used.
In a case wherein the CP determines that the corresponding peer cannot adequately seed, the CP may remove or otherwise not place the peer on the CP's seeding list. For example, the CP may collect seeding info from peers through RM in this case. Since a CP does not determine if a peer seeds, the peer may simply report its seeding situation, its upload speed, etc. For those not seeding, that value is 0. From those RMs, the CP may compose a seeding list and will calculate aggregate upload speed to publish in P2P.
After completing act 527, the process may continue to act 529 where one or more peers may operate in a cluster of a CP. After completing act 529, the process may continue to act
531.
With respect to the CMA, the CMA may perform a CMP using any suitable cluster management method. For cluster management, the required information exchanged between a CP and ordinary peers of its cluster may include the minimum set of parameters such as, for example, one or more of cluster peer index (CPI), interest for content (IFC), method of content relay service (CRS), and seeding status (SS).
U. S. Provisional Patent Application No. 61/030,671 , filed February 22, 2008, describes a system of dynamic clustering management that may be suitably applied in accordance with the present system and is incorporated herein by reference thereto. The CPI may indicate a capability (or desire) of a peer to be CP and may be transmitted by a CP using any suitable channel such as, for example, a global channel. The CPI may take into account one or more factors such as computation power, network connectivity, etc. for the CP and may include one or more values each indicating a separate capability. The higher the value of the CPI (or discrete values within the CPIs), the more capable a node is to become a cluster peer or CP. For example, the CPI may be set to zero to indicate that a peer cannot be a CP and may be set to ten to indicate a strong capacity for the peer to become a CP. The CPI may be generated and/or distributed by a peer and will indicate a peer's capacity to become an ordinary peer or a CP. Further, the present system may also output a request on a Ul of a peer which requests whether a user desires the peer to become a CP. Accordingly, the peer may then set the CPI in accordance with the user's selection. Thus, a user of a peer may select whether the peer should be a CP or an ordinary peer in cluster of a P2P network in accordance with an embodiment of the present system.
The CPI may change dynamically based upon a current network configuration of a corresponding CP. For example, if a peer becomes a CP, then the CPI may be adjusted to indicate this. The CPI may also be based, at least in part, upon a number of peers within the CP. Thus, each time a peer becomes a CP of a cluster, the CPI may be decremented to indicate less available capabilities. The CPI may include one or more values and/or may have a suitable range.
The IFC may indicate an interest for content from a CP and/or an ordinary peer of the CP's cluster. Thus, a CP may indicate its interest for content, and the ordinary peers will select the CP which may share the same or similar IFC. An ordinary peer may join one or more clusters, for example based on the content of interest, such that it is a member of one or more clusters at the same time. Similarly, a peer may be a CP of one or more clusters at the same time. The IFC may include one or more values and may have a suitable range. For example, if IFC=movie A, B for CP1 and IFC=movie B for CP2. A node of the P2P network that wants movie B can either choose the cluster of CP1 or CP2. In this case, the node may then look at the hop counts from CP1 or CP2 and may choose one over the other based on which CP is closer, etc.
The CRS may indicate one or more available content relay services available to a cluster. For example, the CRS may indicate that a unicast, multicast, and/or broadcast or any other appropriate content distribution methods are available to deliver content services from the CP to the nodes within its cluster. The CRS may have one or more values and/or have a suitable range. For example a CRS of zero may indicate that the CP will only broadcast content distribution service, a CRS of one may indicate that only a multicast content distribution service is available, a CRS of two may indicate that only a unicast content distribution service is available. Similarly, the CRS may also include variables to indicate that combinations of the above content distribution services.
The SS may include information indicative of an ordinary peer's seeding status (e.g., the content it may supply as seed) and/or upload speed, etc. The CP may use the SS to, inter alia, grant and/or deny service to the ordinary peer and/or adjust a QoS of a corresponding ordinary peer in the CP's cluster.
In accordance with an embodiment of the present system, the present system may transmit periodic announcement message exchanges to build and/or maintain one or more clusters in a P2P network environment. Peers (e.g., potential CPs) that can and/or are willing to serve as a CP may announce their abilities through a global channel in an announcement message which may include information such as one or more of CAPC|USter peer, Cciuster channel, Sciusterj etc. The message may be in a form of (CAPC|USter peer, CC|USter channel, SC|USter, ■■ · ). The CAPC|USter peer will include its interest for content and its capability as a CP, such as the CPI. It will listen to its own cluster channel CC|USter c annel for responses. Sciuster is the scope of the cluster channel. Those parameters are the parameters in AM for CP/potential CP in exchanging with ordinary peers. In a case wherein the CP wants to limit the scope of its AMs, it may set the TTL of its AM to that value. The scope is used to set the scope of the AM flooding. The CAP may be the CPI. The cluster channel may be the cluster channel address or ID that shows nodes within a P2P network where to listen to cluster channel.
According to an embodiment of the present system, two communication channels per cluster may be used: a first channel to broadcast any message by a peer that wants to become a CP (this channel may be considered a general channel and may be used by all peers of the P2P system); and a second channel which may be used for a reply by any peer that decides to join a cluster. These communication channels may be considered clustering channels.
Further, it is envisioned that a content relay or query and search can use different channels of communication which may be different from the clustering channels. As the present system may be compatible with existing P2P systems (e.g., perpendicular, vertical, overlay, etc.), it may be compatible with conventional and/or future communication channels and/or protocols.
Moreover, with respect to clustering, any known method may be used. For example, the present system may use clustering methods taught by copending U.S. Application No. 61/030,671 , filed February 22, 2008 and entitled "Dynamic Clustering Management" the contents of which are incorporated herein by reference.
FIG. 6 shows a system 600 in accordance with a further embodiment of the present system. The system 600 includes a user device 690, such as a node of a cluster, that has a processor 610 operationally coupled to a memory 620, a rendering device 630, such as one or more of a display, speaker, content, etc., a user input device 670, a cluster management application (CMA) 692, and a content server 680 operationally coupled to the user device 690. The memory 620 may be any type of device for storing application data as well as other data, such as content, etc. The application data and other data are received by the processor 610 for configuring the processor 610 to perform operation acts in accordance with the present system. The operation acts include controlling at least one of the rendering device 630 to render one or more of the GUIs and/or to render content. The user input 670 may include a keyboard, mouse, trackball or other devices, including touch sensitive displays, which may be stand alone or be a part of a system, such as part of a personal computer, personal digital assistant, mobile phone, converged device, or other rendering device for communicating with the processor 610 via any type of link, such as a wired or wireless link. The user input device 670 is operable for interacting with the processor 610 including interaction within a paradigm of a GUI and/or other elements of the present system, such as to enable web browsing, content selection, such as provided by left and right clicking on a device, a mouse-over, pop-up menu, etc., such as provided by user interaction with a computer mouse, etc., as may be readily appreciated by a person of ordinary skill in the art.
The CMA 692 may perform cluster management functions and/or processes according to the present system. For example, the CMA 692 may operate to perform various processes of the present system. Further, the CMA 692 may determine whether a cluster exceeds a certain size threshold (e.g., a number of peers in a cluster exceed a threshold, or a data flow (for sourcing and/or seeding operations) exceeds a corresponding data flow threshold. Accordingly, the CMA 692 may determine whether a threshold is exceeded and act to alleviate the situation by, for example, forming another cluster, removing peers from the cluster, adjusting a service parameter, and/or restricting bandwidth or content flow (e.g., by using multicast instead of unicast, etc.) when providing a content service. Moreover, when the user device 690 operates as a CP, the CMA 692 may determine whether a peer does not desire to be in a cluster of the CP. Then, the CMA 692 may operate to join the peer into a P2P network if it is determined that the peer does not desire to be in the cluster of the CP. In the adverse, if it is determined that the peer desires to be in the cluster of the CP, the CMA 692 of the user device acting as a CP may perform a "cluster peer process" as described herein. Naturally, in an embodiment of the present system, the CMA 692 may simply be a further process of the processor 610.
In accordance with an embodiment of the present system, the rendering device 630 may operate as a touch sensitive display for communicating with the processors 610 (e.g., providing selection of a web browser, a Uniform Resource Locator (URL), portions of web pages, etc.) and thereby, the rendering device 630 may also operate as a user input device. In this way, a user may interact with the processor 610 including interaction within a paradigm of a Ul, such as to support content selection, etc. Clearly the user device 690, the processor 610, memory 620, rendering device 630 and/or user input device 670 may all or partly be portions of a computer system or other device, and/or be embedded in a portable device, such as a mobile station (MS), mobile telephone, personal computer (PC), personal digital assistant (PDA), converged device such as a smart telephone, etc.
The methods of the present system are particularly suited to be carried out by a computer software program, such program containing modules corresponding to one or more of the individual steps or acts described and/or envisioned by the present system. Such program may of course be embodied in a computer-readable medium, such as an integrated chip, a peripheral device or memory, such as the memory 620 or other memory coupled to the processor 610.
The computer-readable medium and/or memory 620 may be any recordable medium (e.g., RAM, ROM, removable memory, CD-ROM, hard drives, DVD, floppy disks or memory cards) or may be a transmission medium utilizing one or more of radio frequency (RF) coupling, Bluetooth coupling, infrared coupling etc. Any medium known or developed that can store and/or transmit information suitable for use with a computer system may be used as the computer-readable medium and/or memory 620. These memories configure processor 610 to implement the methods, operational acts, and functions disclosed herein. The operation acts may include controlling the rendering device 630 to render elements in a form of a Ul and/or controlling the operation acts described herein in accordance with the present system.
The memories may be distributed (e.g., such as a portion of the content server 680) or local and the processor 610, where additional processors may be provided, may also be distributed or may be singular. The memories may be implemented as electrical, magnetic or optical memory, or any combination of these or other types of storage devices. Moreover, the term "memory" should be construed broadly enough to encompass any information able to be read from or written to an address in the addressable space accessed by a processor. With this definition, information on a network is still within memory 620, for instance, because the processor 610 may retrieve the information from the network for operation in accordance with the present system.
The processor 610 is capable of providing control signals and/or performing operations in response to input signals from the user input device 670 and executing instructions stored in the memory 620. The processor 610 may be an application-specific or general-use integrated circuit(s). Further, the processor 610 may be a dedicated processor for performing in accordance with the present system or may be a general-purpose processor wherein only one of many functions operates for performing in accordance with the present system. The processor 610 may operate utilizing a program portion, multiple program segments, or may be a hardware device utilizing a dedicated or multi-purpose integrated circuit.
FIG. 7 shows a flow diagram that illustrates a query search and seeding process 700 in accordance with an embodiment of the present system. The process 700 may be performed using one or more computers communicating over one or more networks. The process 700 can include one of more of the following acts. Further, one or more of these acts may be combined and/or separated into sub-acts, if desired. In operation, the process may start during act 701 and then proceed to act 703.
During act 703 a CP of a cluster receives a query requesting content from a node (i.e., a querying node) of a P2P network outside of the cluster. The query may have a format that is in accordance with a corresponding P2P network. The CP may then recognize the query and the process may continue to act 705.
During act 705, the CP will retrieve a seeding list of its peers (i.e., peers in its cluster, members of its cluster, etc.) that can (i.e., have and/or are willing) provide content (i.e., source content) to the P2P network. The CP may parse the seeding list to determine one or more seeding peers which may provide the desired content to the querying node. The seeding list may be contained, for example, in a memory (e.g., either local or remote) of the CP. After completing act 705, the process may continue to act 707.
During act 707, the CP may transmit the seeding list to the querying node via the P2P network. After completing act 707, the process may continue to act 709. During act 709, the querying node receives the seeding list from the CP. After completing act 709, the process may continue to act 71 1. During act 71 1 , the querying node may determine one or more suitable seeding peers and contact them directly to arrange a transmission of the desired content. After completing act 71 1 , the process may continue to act 713. During act 713, the seeding peer(s) may transmit the desired content directly to the querying node (e.g., see, FIG. 4). After completing act 713, the process may continue to act 715 where it ends.
With reference to FIG. 7, the P2P system may perform a two-stage querying system. Thus, a node of the P2P network (e.g., a node that is not a member of the cluster) may query the CP to identify content that is available from peers within the cluster, and once it (i.e., the node) has found the content, the may request the content directly from a selected seeding peer of the cluster. Accordingly, two consecutive requests i.e., one to the CP of the cluster and one to the one or more selected peers in the cluster may be performed in accordance with an embodiment of the present system. Accordingly, once the CP has provided the seeding list which corresponds with the searched content to the querying node, the querying node may request the content directly from the peer or peers with the content that are within the cluster of the CP via a direct request to the one or more peers with the desired content. Because of the direct request of content (i.e., by the querying node) with the selected seeding peer, the seeding peer or peers are no longer transparent to the P2P system. This is an exception to the principle of the present cluster in which the peers within the cluster remain hidden or transparent from the P2P network.
In another embodiment wherein the P2P network utilizes a repository of available content, the CP participates with the query/search of P2P system as a proxy for the peers of its cluster. In this case, the CP will publish the seeding list of its own cluster.
Further, with regard to seeding, as the seeding requires available resources, the CP may limit resources available to a cluster (or P2P network) and/or form transmission bottlenecks in the cluster or P2P network which is seeded. Accordingly, the CP may impose rules among the peers of its cluster to prevent bottlenecks, enhance available resources, and/or to reduce or prevent free-riding within the CPs cluster.
To reduce or prevent free-riding within a CP's cluster, the CP may require peers within its cluster to volunteer as seeds. Further, if the CP determines that a peer within its cluster has not provided enough seeds (e.g., by determining whether the number of seeds of its cluster is less than a certain threshold), the CP may decline services available (e.g., by reducing service parameters, etc.) to the corresponding peer and/or the peer may consequently be excluded from the cluster of the CP. Accordingly, the CP may rely upon a unicast transmission scheme to transmit content amongst certain peers (as opposed to all peers) within the CPs cluster. With respect to the multicast transmission scheme, as this transmission scheme transmits content to all peers within the CP's cluster, it is more difficult to prevent certain peers from receiving the distributed content. Accordingly, multicast may allow "free riding" of peers (i.e., peers which provide limited content, or no content, to the P2P systems) to participate in the cluster and receive content transmitted by the CP.
Thus, according to an embodiment of the present system, a vertical approach to establishing a P2P system with a topology that may be based on one or more common interests is provided. Among a group of peers sharing at least a common interest, one peer may be selected as a CP and may operate as a node of a plurality of nodes of a P2P network in which the CP resides. The cluster may group all peers with the same or similar interests. All peers inside a given cluster may share the same content that is distributed by the CP of the cluster. The selected CP may maintain a list of the peers in its cluster and may track shared content. Accordingly, the cluster of peers may hide behind the CP from the vantage of the P2P network in which the CP belongs. Thus, the cluster will consequently appear as one node to the P2P network. This approach will: reduce the number of queries, as the query as seen from the P2P network will originate from the CP and fewer number of peers participate in query/search operation; and may increase the efficiency of distribution as the individuality of nodes in the P2P network are reduced through common interest groups in clusters. Each peer in a cluster can advertise common content by using the CP as a proxy. For local distribution inside the cluster, the CP will be responsible and distribute information such as content using any known distribution scheme (e.g. broadcast, unicast, multicast, or any other appropriate distribution method etc.).
The CP may maintain a list (e.g., in a memory or database of the system) of peers in its cluster. This list may include a list of the peers in the cluster as well as shared content such as content that was distributed in the cluster. The CP and a SN may be complementary. A SN for instance could have one or more CPs among its attached nodes. Actually SN does not know nor need to know that some of the attached nodes are actually CP which represent a cluster including a plurality of peers.
There may be plurality of common interest clusters each varying based upon a chosen common interest. Thus, the architecture of the P2P network may be dependent upon the possible interests of a plurality of peers.
The present system may be configured to encourage peers to serve each other and serve nodes outside of the cluster so as to off-load the burden from the content source/servers. A cost application may be provided to calculate costs (e.g., give rewards, calculate fees, etc.) to peers which contribute to the P2P network by seeding the cluster and/or P2P network. The QoS application may adjust a QoS (e.g., throughput) for nodes and/or grant or deny service based upon an amount of seeding (or fees) provided by a node of a cluster. Accordingly, free- riding may be reduced or prevented.
The present system may interface with networks which may include, for example, structured and unstructured P2P networks, etc., and may provide a CP to communicate with a cluster including one or more peers. The CP may be considered a node in a P2P network. Peers with common interest for content may dynamically form common interest clusters. One peer may be elected as the head of each common interest cluster and is called a cluster peer. The cluster peer may represent the whole common interest cluster as one single peer in the process of query and search for content desired by the cluster. When it comes to serve as the source for other peers within the P2P network, all the peers within the same common interest cluster may participate to increase the content availability. The CP may, in some embodiments, be different from an SN as it may not proxy for other ordinary peers, but rather represents a cluster of common interest peers. Further, the CP may be used within SN structured P2P networks and non-structured P2P networks. Thus, the CP structure of the present system may interface with conventional P2P networks with little or no modification to the P2P network and support a cluster management application. The present system may reduce the overhead of query and search operations in P2P networks. Another advantage of the present system is that the CP may also be able to take advantage of potential network support when available when CP provides content reply service to its cluster.
For example, conventional P2P systems may be modified to provide the features and advantages of the present system. Accordingly, when a node joins the P2P network a determination may be made as to whether the node desires to be in a cluster. Accordingly, if it is determined that the node desires to be in the cluster, the P2P system may place the node in the cluster. Otherwise, the P2P system may place the node in the P2P network of the P2P system.
Thus, the present system may provide various features and advantages to P2P systems such as, for example: enhancing efficiency of distribution as content is distributed to peers of clusters with common interests; reducing distribution flows as a CP is a relay for the common content distributed within the cluster; and/or enhancing source operations as seeding from within the cluster does not go through the CP thereby maintaining advantages of a known P2P system. Thus, although a number of querying nodes can be considered to be reduced, the number of sources for content is not reduced.
Finally, the above discussion is intended to be merely illustrative of the present system and should not be construed as limiting the appended claims to any particular embodiment or group of embodiments. For example, the present system may be utilized to establish a P2P cluster-based content distribution system to distribute content among one or more peers in a cluster and to provide content to one r more nodes in a P2P network. The present system may also push predetermined content to a user's device operating as a peer in a cluster. Thus, while the present system has been described with reference to exemplary embodiments, including user interfaces, it should also be appreciated that numerous modifications and alternative embodiments may be devised by those having ordinary skill in the art without departing from the broader and intended spirit and scope of the present system as set forth in the claims that follow. Further, while exemplary user interfaces are provided to facilitate an understanding of the present system, other user interfaces may be provided and/or elements of one user interface may be combined with another of the user interfaces in accordance with further embodiments of the present system.
The section headings included herein are intended to facilitate a review but are not intended to limit the scope of the present system. Accordingly, the specification and drawings are to be regarded in an illustrative manner and are not intended to limit the scope of the appended claims.
In interpreting the appended claims, it should be understood that:
a) the word "comprising" does not exclude the presence of other elements or acts than those listed in a given claim;
b) the word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements;
c) any reference signs in the claims do not limit their scope;
d) several "means" may be represented by the same item or hardware or software implemented structure or function;
e) any of the disclosed elements may be comprised of hardware portions (e.g., including discrete and integrated electronic circuitry), software portions (e.g., computer programming), and any combination thereof;
f) hardware portions may be comprised of one or both of analog and digital portions; g) any of the disclosed devices or portions thereof may be combined together or separated into further portions unless specifically stated otherwise;
h) no specific sequence of acts or steps is intended to be required unless specifically indicated; and
i) the term "plurality of an element includes two or more of the claimed element, and does not imply any particular range of number of elements; that is, a plurality of elements may be as few as two elements, and may include an immeasurable number of elements.

Claims

Claims What is claimed is:
1. A method of supplementing a peer-to-peer (P2P) computer network comprising a plurality of nodes, the method comprising acts of:
determining a common request for given content among the plurality of nodes;
grouping nodes of the plurality of nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset including two or more nodes of the plurality of nodes as peers of the cluster;
selecting a cluster peer (CP) for each cluster from among the peers of the cluster, the
CP of each cluster having a network connection to one or more nodes of the plurality of nodes in the P2P computer network;
sourcing content from a peer having the content to a first node requesting the content of the plurality of nodes via a link between the peer having the content and the first node requesting the content;
sinking other content from a second node having the other content of the plurality of nodes to the CP of a corresponding cluster that desires the other content; and
transmitting the sinked other content from the CP of the corresponding cluster to each of the peers of the corresponding cluster.
2. The method of claim 1 , wherein the link comprises a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster.
3. The method of claim 1 , further comprising an act of determining by the CP of the cluster a service parameter for one or more peers in the cluster of the CP.
4. The method of claim 1 , further comprising acts of :
determining by the CP of a cluster whether a peer of the cluster of the CP is free-riding; and
adjusting the service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding.
5. The method of claim 1 , further comprising an act of participating by the CP of a cluster on behalf of the peers of the cluster in a query for content from a third node of the plurality of nodes.
6. The method of claim 1 , further comprising an act of sending, by the CP of a cluster, a seeding list to the P2P computer network on behalf of the peers of the cluster.
7. The method of claim 1 , wherein the act of transmitting the sinked other content comprises transmitting the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter.
8. A peer-to-peer (P2P) computer system comprising a plurality of nodes, the system comprising:
one or more controllers which are configured to:
determine common resources among the plurality of nodes;
group nodes of the plurality of nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset including two or more nodes of the plurality of nodes as peers of the cluster; select a cluster peer (CP) for each cluster from among the peers of the cluster, the CP of each cluster having a network connection to one or more nodes of the plurality of nodes in the P2P computer network;
source content from a peer having the content to a first node requesting the content of the plurality of nodes via a link between the peer having the content and the first node requesting the content;
sink other content from a second node having the other content of the plurality of nodes to the CP of a corresponding cluster that desires the other content; and
transmit the sinked other content from the CP of the corresponding cluster to each of the peers of the corresponding cluster.
9. The system of claim 8, wherein the link comprises a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster.
10. The system of claim 8, further wherein a controller of the CP of the cluster determines a service parameter for one or more peers in the cluster of the CP.
11. The system of claim 8, wherein the controller of the CP of the cluster is configured to:
determine cluster whether a peer of the cluster of the CP is free-riding; and
adjust the service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding.
12. The system of claim 8, wherein the controller of the CP of the cluster is configured to participate on behalf of the peers of the cluster in a query for content from a third node of the plurality of nodes.
13. The system of claim 8, wherein the controller of the CP is configured to send a seeding list to the P2P computer network on behalf of the peers of the cluster.
14. The system of claim 8, wherein the controller of the CP is configured to transmit the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter.
15. A computer program stored on a computer readable memory medium, the computer program configured to provide a peer-to-peer (P2P) computer network comprising a plurality of nodes, the computer program comprising:
a program portion configured to determine a common request for given content among the plurality of nodes;
a program portion configured to group nodes of the plurality of nodes into one or more clusters in accordance with the determined common request such that each cluster comprises a subset including two or more nodes of the plurality of nodes as peers of the cluster;
a program portion configured to select a cluster peer (CP) for each cluster from among the peers of the cluster, the CP of each cluster having a network connection to one or more nodes of the plurality of nodes in the P2P computer network;
a program portion configured to source content from a peer having the content to a first node requesting the content of the plurality of nodes via a link between the peer having the content and the first node requesting the content;
a program portion configured to sink other content from a second node having the other content of the plurality of nodes to the CP of a corresponding cluster that desires the other content; and 49
a program portion configured to transmit the sinked other content from the CP of the corresponding cluster to each of the peers of the corresponding cluster.
16. The computer program of claim 15, wherein the program portion configured to source content is configured to establish a connection between the peer having the content and the first node requesting the content that bypasses the CP of the cluster.
17. The computer program of claim 15, comprising a program portion configured to determine a service parameter for one or more peers in the cluster of the CP.
18. The computer program of claim 15, further comprising:
a program portion configured to determine whether a peer of the cluster of the CP is free-riding; and
a program portion configured to adjust a service parameter for the peer in the cluster of the CP when it is determined that the peer in the cluster of the CP is free-riding.
19. The computer program of claim 15, further comprising a program portion configured to participate, by the CP of a cluster on behalf of the peers of the cluster, in a query for content from a third node of the plurality of nodes.
20. The computer program of claim 15, further comprising a program portion configured to send, by the CP of a cluster, a seeding list to the P2P computer network on behalf of the peers of the cluster.
21. The computer program of claim 15, wherein the program portion configured to transmit is configured to transmit the sinked other content using a transmission method which is selected from broadcast, multicast, or unicast transmission methods in accordance with a service parameter.
PCT/IB2010/002631 2009-09-30 2010-09-27 Cluster peer for peer-to-peer systems and method of operation thereof WO2011039642A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US24754809P 2009-09-30 2009-09-30
US61/247,548 2009-09-30

Publications (1)

Publication Number Publication Date
WO2011039642A1 true WO2011039642A1 (en) 2011-04-07

Family

ID=43430971

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2010/002631 WO2011039642A1 (en) 2009-09-30 2010-09-27 Cluster peer for peer-to-peer systems and method of operation thereof

Country Status (1)

Country Link
WO (1) WO2011039642A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185919A (en) * 2011-05-04 2011-09-14 江苏大学 Distributed clustering method of P2P (peer-to-peer) network based on believable radius of nodes
JP2016151846A (en) * 2015-02-17 2016-08-22 三菱電機株式会社 Server device, client device, grouping method, and grouping program
CN107295063A (en) * 2017-05-11 2017-10-24 腾讯科技(深圳)有限公司 Increase the method and reciprocity distributed system of node newly in reciprocity distributed system
WO2019079103A1 (en) * 2017-10-16 2019-04-25 Futurewei Technologies, Inc. Information exchange oriented clustering for collaborative device system
CN111416861A (en) * 2020-03-20 2020-07-14 中国建设银行股份有限公司 Communication management system and method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050195755A1 (en) * 2002-09-27 2005-09-08 Fujitsu Limited Data distributing method, system transmitting method, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050195755A1 (en) * 2002-09-27 2005-09-08 Fujitsu Limited Data distributing method, system transmitting method, and program

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KHAN S ET AL: "Interest-Based Self Organization in Group-Structured P2P Networks", CONSUMER COMMUNICATIONS AND NETWORKING CONFERENCE, 2009. CCNC 2009. 6TH IEEE, IEEE, PISCATAWAY, NJ, USA, 10 January 2009 (2009-01-10), pages 1 - 5, XP031425665, ISBN: 978-1-4244-2308-8 *
XIN-MAO HUANG; CHENG-YUE CHANG; MING-SYAN CHEN: "PeerCluster: a cluster-based peer-to-peer system", IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, vol. 17, no. 10, 24 August 2006 (2006-08-24), pages 1110 - 1123, XP002617609, ISSN: 1045-9219, Retrieved from the Internet <URL:http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1687881> [retrieved on 20110120] *
YU ET AL: "CBT: A proximity-aware peer clustering system in large-scale BitTorrent-like peer-to-peer networks", COMPUTER COMMUNICATIONS, ELSEVIER SCIENCE PUBLISHERS BV, AMSTERDAM, NL, vol. 31, no. 3, 31 January 2008 (2008-01-31), pages 591 - 602, XP022442389, ISSN: 0140-3664, DOI: DOI:10.1016/J.COMCOM.2007.08.020 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185919A (en) * 2011-05-04 2011-09-14 江苏大学 Distributed clustering method of P2P (peer-to-peer) network based on believable radius of nodes
JP2016151846A (en) * 2015-02-17 2016-08-22 三菱電機株式会社 Server device, client device, grouping method, and grouping program
CN107295063A (en) * 2017-05-11 2017-10-24 腾讯科技(深圳)有限公司 Increase the method and reciprocity distributed system of node newly in reciprocity distributed system
CN107295063B (en) * 2017-05-11 2018-09-04 腾讯科技(深圳)有限公司 Increase the method for node and reciprocity distributed system newly in reciprocity distributed system
WO2019079103A1 (en) * 2017-10-16 2019-04-25 Futurewei Technologies, Inc. Information exchange oriented clustering for collaborative device system
CN111416861A (en) * 2020-03-20 2020-07-14 中国建设银行股份有限公司 Communication management system and method

Similar Documents

Publication Publication Date Title
US11197140B2 (en) Methods and devices for content distribution
JP5479683B2 (en) High quality content providing system and method through P2P networking
US20110282945A1 (en) Network aware peer to peer
Huang et al. Network-aware P2P file sharing over the wireless mobile networks
WO2006062964A1 (en) Splitting a workload of a node
Wang et al. Propagation-and mobility-aware D2D social content replication
JP4588768B2 (en) Determining the highest workload for nodes in the overlay network
WO2011039642A1 (en) Cluster peer for peer-to-peer systems and method of operation thereof
KR20120086417A (en) P2P Content Distribution Network for Peer-to-Peer Live Streaming
Rahmani et al. PCSM: an efficient multihop proximity aware clustering scheme for mobile peer-to-peer systems
WO2011025608A1 (en) Network assisted mobile centric peer selection method
Akhtar et al. Content distribution and protocol design issue for mobile social networks: a survey
Mitra et al. Efficient group communications in location aware mobile ad-hoc networks
Helgason et al. A middleware for opportunistic content distribution
Rocha et al. A scalable multiagent architecture for monitoring IoT devices
US20220182444A1 (en) Peer-managed content distribution network
Kang et al. A conceptual device-rank based resource sharing and collaboration of smart things
US20100057748A1 (en) Method and Apparatus for Parameterized Promotion and Delivery of Data
Balasubramaniam et al. Biologically inspired future service environment
Singh et al. Analysis and modelling the effects of mobility, Churn rate, node’s life span, intermittent bandwidth and stabilization cost of finger table in structured mobile P2P networks
Li et al. On the source switching problem of Peer-to-Peer streaming
Anandaraj et al. An efficient QOS based multimedia content distribution mechanism in P2P network
US20110035610A1 (en) Energy saving method and system
KR101224827B1 (en) A network system and method thereof with dacon
Jayapal et al. Enhancing the performance of service discovery protocol using minimum spanning tree

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10775886

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10775886

Country of ref document: EP

Kind code of ref document: A1