`US 8,655,838 B2
`(0) Patent No.:
`Wright
`Feb. 18, 2014
`(45) Date of Patent:
`
`US008655838B2
`
`(54) SELECTION OF PEERS TO CLUSTER
`WITHIN A PEER-TO-PEER NETWORK
`
`(75)
`
`Inventor:
`
`Steven Wright, Roswell, GA (US)
`
`(73) Assignee: AT&T Intellectual Property I, L.P.,
`Atlanta, GA (US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`US.C. 154(b) by 760 days.
`
`(21) Appl. No.: 12/034,153
`
`(22)
`
`Filed:
`
`Feb. 20, 2008
`
`(65)
`
`Prior Publication Data
`
`US 2009/0210545 Al
`
`Aug. 20, 2009
`
`(51)
`
`(2006.01)
`
`Int. Cl.
`GO6F 17/00
`(52) U.S.CL.
`USPC iceecsetensseseseeeees 707/622; 707/227; 707/230
`(58) Field of Classification Search
`USPC iececeesectessseectenecenees 707/622; 709/227, 230
`See application file for complete search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`7/2002 Farber etal. ww. 707/698
`6,415,280 B1*
`2/2003 Stanforth et al
`.
`2003/0040316 Al*
`
`3/2004 Loachet al.
`2004/0044790 Al*
`
`3/2006 Dacosta ...........
`.
`2006/0056336 Al*
`1/2007 Leibovitzet al. on. 726/3
`2007/0016939 A1*
`7/2007 Shaheen
`2007/0174443 Al
`2007/0291715 A1* 12/2007 Laroiaetal. wo. 370/338
`2008/0040606 Al*
`2/2008 Narayanan etal.
`........... 713/169
`
`OTHER PUBLICATIONS
`Srivatsa, M; Liu, L, Large Scaling Unstructued Peer-to-Peer Net-
`works with Heterogeneity-Aware Topology and Routing,
`IEEE
`Trans. on Parallel and Distr. Sys., v17, Nov. 2006.
`Huang, Y; Chen, Y; Jana, R; Jiang, H; Rabinovich, M; Reibman, A,
`Wei, B; Xiao, Z; Capacity Analysis of MediaGrid: ..., IEEE Jnl on
`Selected Areas in Comm; v25, Jan. 2007.
`Ramaswamy, L; Gedik, B; Liu, L; A Distributed Approach to Node
`Clustering in Decentralized Peer-to-Peer Networks, IEEE Trans on
`Parallel and Distr. Sys, v16, Sep. 2005.
`Chen, Y; Huang, Y; Jana, R; Jiang, H, Rabinovich, M; Wei, B, Xiao,
`Z; When is P2P Technology Beneficial
`for
`IPTV Services?,
`NOSSDAV 2007.
`Technical White Paper Smart Card in IMS; Gemalto, Feb. 2007.
`http://en.wikipedia.org/wiki/IMSI,last updated Feb. 12, 2008.
`http://en.wikipedia.org/wiki/MEID,last updated Dec. 8, 2007.
`http://en.wikipedia.org/wiki/DOCSIS,last updated. Feb. 4, 2008.
`
`* cited by examiner
`
`Primary Examiner — Jude Jean Gilles
`Assistant Examiner — Jaren M Means
`
`(74) Attorney, Agent, or Firm — Parks IP Law LLC; Jennifer
`P. Medlin, Esq.
`
`(57)
`
`ABSTRACT
`
`Peer-to-peer networks may beestablished by considering
`various characteristics of the peers when clustering the peers
`within the network. The characteristics may include opera-
`tional criteria such as the costof data transfer by each peer,the
`type andstatus of powerbeing supplied to each peer, and the
`bandwidth available to each peer. The peer-to-peer networks
`maybeestablished by requiring credentials to gain access to
`the peer-to-peer network, where those credentials may be a
`network access identifier that has previously been used to
`gain access to an underlying data network ofthe peer-to-peer
`network. The operational criteria used to select peers for
`clustering may be stored and accessed through association to
`the credentials used to gain access to the peer-to-peer net-
`work.
`
`18 Claims, 6 Drawing Sheets
`
`110
`
`112Ww Data Co Exhibit 1043
`
`Data Co Exhibit 1043
`Data Co v. Bright Data
`
`Data Co v. Bright Data
`
`
`
`U.S. Patent
`
`Feb. 18, 2014
`
`Sheet 1 of 6
`
`US8,655,838 B2
`
`112
`
`FIG. 1A
`
`Ww
`
`
`ener
`
`PROCESSOR
`
`NETWORK
`
`MEMORY
`
`STORAGE
`
`INPUTS
`
`OUTPUTS
`
`FIG. 1B
`
`
`
`U.S. Patent
`
`Feb. 18, 2014
`
`Sheet 2 of 6
`
`US8,655,838 B2
`
`
`
`RECEIVE REQUEST FOR
`ACCESS INCLUDING A
`NETWORK ACCESS ID
`
`202
`
`
`
`
`
`
`
`CHECK NETWORK ACCESS ID
`
`DENY ACCESS
`
`204
`
`210
`
`PROVISION ACCESS AND
`RELATED DATA SERVICES
`
`FIG. 2
`
`
`
`U.S. Patent
`
`Feb. 18, 2014
`
`Sheet 3 of 6
`
`US8,655,838 B2
`
`RECEIVE REQUEST TO JOIN
`P2P OVER ESTABLISHED
`NETWORK ACCESS
`
`RECEIVE AND COMPARE
`NETWORK ACCESS ID
`PROVIDED DURING NETWORK
`AUTHENTICATION
`
`
`
`DENY ACCESS
`TO P2P
`
`NETWORK ACCESS
`
`
`
`LOOK-UP NETWORK ACCESS
`ID(S) TO FIND OPERATIONAL
`CRITERIA OF RELEVANT PEER(S)
`
`BUILD PEER QUERYLIST ON
`BASIS OF COST, POWER,
`BANDWIDTH, AND/OR OTHER
`OPERATIONAL CRITERIA
`
`SEND PEER QUERYLIST
`
`FIG. 3
`
`
`
`U.S. Patent
`
`Feb. 18, 2014
`
`Sheet 4 of 6
`
`US8,655,838 B2
`
`312
`
`312
`
`DETERMINE WHICH PEERS HAVE A
`COST/POWER/BANDWIDTH
`CLASSIFICATION DESIRABLE FOR
`QUERYLIST
`
`
`
`ADD THOSE PEERS
`
`FIG. 4
`
`DETERMINE WHETHER THE
`COST/POWER/BANDWIDTH
`CLASSIFICATION OF CURRENT PEER
`LIMITS CLASSIFICATIONS AVAILABLE
`FOR CURRENT PEER’S QUERYLIST
`
`CLASSIFICATIONS OF CURRENT PEER
`
`ADD THOSE PEERS NOTLIMITED BY
`
`FIG. 5
`
`
`
`U.S. Patent
`
`Feb. 18, 2014
`
`Sheet 5 of 6
`
`US8,655,838 B2
`
`312
`
`COMPUTE WEIGHTINGS FOR EACH
`PEER TO ADD ON BASIS OF
`COST/POWER/BANDWIDTH
`
`CLASSIFICATIONS ADD PEERS AND ASSOCIATED
`
`WEIGHTINGS
`
`FIG. 6
`
`DETECT TIME TO POLL A PEER
`
`CHOOSE PEER TO POLL FROM QUERYLIST
`BY SELECTION SCHEME
`(RANDOM, ORDERED, WEIGHTED RANDOM)
`
`
`
`POLL SELECTED PEER
`
`RECEIVE DATA
`
`FIG. 7
`
`
`
`ie/
`
`dnoOuod
`
`LA
`
`cA
`
`Ln
`
`607
`
`U.S. Patent
`
`Feb. 18, 2014
`
`Sheet 6 of 6
`
`US 8,655,838 B2
`
`
`
`G3LOIM1SSYLNSLNOO HLGIMANYE
`PFXCCUS
`FIGVMOTIV—q9_7
`SSVIO__‘|SEVIVAV
`
`8ls
`
`90g—7
`
`YaMOd
`
`SSV10
`
`vos—7
`
`zog—/
`
`
`
`SSV10LSOO
`
`QIYasd-AdAL
`
`
`
`GYOMSSVd/AWVN—ddd~—718
`
`os9ore—GISW~—818
`
`$9286-WIS~—918
`
`ECLOAV-OVIN~—718
`
`
`
`Svecl-WIS~—018
`
`
`
`US 8,655,838 B2
`
`1
`SELECTION OF PEERS TO CLUSTER
`WITHIN A PEER-TO-PEER NETWORK
`
`TECHNICAL FIELD
`
`
`
`Embodiments relate to peer-to-peer (P2P) networks. More
`particularly, embodimentsrelate to clustering ofpeers within
`a P2P network.
`
`BACKGROUND
`
`P2P networks are becoming commonplace as the demand
`for data transfer increases on underlying public and private
`data networks. P2P networks allow the data needed by one
`peer to be sourced from one ofpotentially many different
`peers, thereby preventing the original source from becoming
`overloaded with content requests. While P2P networks
`resolve some content delivery issues such as the overloading
`of the original source, P2P networks maysuffer from other
`content delivery issues.
`For example, a given peer may havea relatively low upload
`transfer rate. If that peer is called on to deliver content to too
`many other peers, the delivery of that content to those other
`peers may be delayed. As another example, a given peer may
`have a high costof data transfer or a data transfer limit. Ifthat
`peeris called on to deliver contentto or receive content from
`too many other peers or to deliver content too often, the
`content delivery may result in increased network access
`charges to the owner of that peer or may even result in this
`peer going offline. As yet another example, a given peer may
`have a timeoractivity limited powersource. If that peer is
`called on to deliver content to or receive content from too
`many otherpeers or to deliver content too often, the content
`delivery mayresult in this peer going offline or even shutting
`down altogether.
`Other issues present in P2P networks include controlling
`access to the networksand having access to information about
`peers joined to the P2P networks. As P2P networks may
`operate with virtually anonymouspeers, content control and
`peer selection is difficult. The virtually anonymousstatus of
`peers also makes any attempts to control and improve the
`operation of the P2P network difficult.
`
`SUMMARY
`
`Embodiments address issues such as these and others by
`considering characteristics such as operational criteria of
`peers during a query list peer selection process that defines a
`cluster for a given peer. Operational criteria such as cost of
`data transfer, power source type, and bandwidth availability
`of peers may be considered. The criteria may pertain to the
`peer being provided with a query list and/orto the peers being
`addedto the query list. Furthermore, embodiments mayuti-
`lize network access identifiers that are presented by peers
`when obtaining access to the underlying data networks to
`make determinations such as whetherthe peer has authoriza-
`tion to participate in the P2P network and/or to obtain the
`operationalcriteria for a given peer when building the query
`list.
`Embodiments provide methods, computer readable media,
`and devices involved in providing a peer-to-peer network. A
`data cost classification is determinedfor a plurality ofpeers.
`A query list of peers is built for a current peer by adding
`information about peers of the plurality to query to the query
`list based on the datacost classification of each ofthe peers of
`the plurality. Additionally, the query list is provided to the
`current peer.
`
`2
`Embodiments provide other methods, computer readable
`media, and devices involved in providing a peer-to-peer net-
`work. A powerclassification is determined for a plurality of
`peers. A query list ofpeersis built for a current peer by adding
`information about peers of the plurality to query to the query
`list based on a powerclassification of each of the peers of the
`plurality. The query list is provided to the currentpeer.
`Embodiments provide other methods, computer readable
`media, and devices involved in providing a peer-to-peer net-
`work. A network accessidentifier is received that was previ-
`ously submitted by the peer to obtain access to an underlying
`data network. A request is received from the current peer to
`join the peer-to-peer network. From a look-upofthe received
`network access identifier, it is determined whetherthe current
`peer is authorized to access the peer-to-peer network. Access
`is granted by providing a query list ofpeers to query when the
`current peer is authorized.
`Embodiments provide other methods, computer readable
`media, and devices involved in providing a peer-to-peer net-
`work. A network access identifier previously submitted by the
`peer to obtain access to an underlying data network is
`received. A request is received from the current peer to join
`the peer-to-peer network. A characteristic of the current peer
`is determined from a look-up of the received network access
`identifier. The characteristic is used to determine whether to
`include the current peer on a query list to provide to another
`peer.
`Embodiments provide still other methods, computer read-
`able media, and devices involved in providing a peer-to-peer
`network. An operational criteria is determined for a current
`peer. A query list of peers is built for the current peer by
`adding information about peersofthe plurality to query to the
`query list based on the operationalcriteria of the current peer.
`The query list is provided to the current peer.
`Other systems, methods, and/or computer program prod-
`ucts according to embodiments will be or becomeapparentto
`one withskill in the art upon review ofthe following drawings
`and detailed description.It is intended that all such additional
`systems, methods, and/or computer program products be
`included within this description, be within the scope of the
`present invention, and be protected by the accompanying
`claims.
`
`DESCRIPTION OF THE DRAWINGS
`
`FIG. 1A shows an example of a P2P network operating
`environment according to various embodiments.
`FIG. 1B shows an example of a node of the P2P network
`operating environment according to various embodiments.
`FIG. 2 shows an example of a set of logical operations
`performed by an access node when granting data network
`access according to various embodiments.
`FIG. 3 shows an example of a set of logical operations
`performed by a control node whengranting access to the P2P
`network according to various embodiments.
`FIG.4 showsa first example of a subset of logical opera-
`tions performed by a control node whenselecting peers fora
`query list according to various embodiments.
`FIG. 5 shows a second example of a subset of logical
`operations performed by a control node whenselecting peers
`for a query list according to various embodiments.
`FIG. 6 showsa third example of a subset of logical opera-
`tions performed by a control node whenselecting peers fora
`query list according to various embodiments.
`FIG. 7 shows an example of a set of local operations per-
`formed by a peer when attempting to poll other peers for
`content according to various embodiments.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`
`
`US 8,655,838 B2
`
`3
`FIG. 8 shows an exampleof a database storing associations
`of network access identifiers of authorized peers to opera-
`tionalcriteria.
`
`DETAILED DESCRIPTION
`
`Embodiments provide fora peer selection process that may
`accountfor characteristics ofone or more peers whencreating
`a peer query list to define a cluster for a peer. The character-
`istics may include operationalcriteria such as the cost of data
`transfer of a given peer, the powerstatus of a given peer, the
`available bandwidth of a given peer, and so forth. The char-
`acteristics to consider maybethose ofthe peer being added to
`a query list and/or those of the peer being provided with the
`query list. Embodiments further provide for access control to
`a P2P network based upon credentials such as network access
`identifiers (IDs) that are used to gain access to the underlying
`data network. Embodiments additionally provide for tracking
`of operational criteria of the peer devices by association to
`credentials of the peer such as the network access ID.
`FIG. 1A shows one example of an operating environment
`of a P2P network 100. Here, an underlying data network 101
`is present and provides for data transfer between individual
`network nodes. The data network 101 mayrepresent a private
`network or a public network such as the Internet. Further-
`more, the data network 101 may represent various network
`configurations. For instance, the data network 101 mayrep-
`resent a network established and maintained bya particular
`service provider or may represent a collection of individual
`networks, where each individual network is established and
`maintained bya particular service provider.
`Within the underlying data network 101, there may be
`nodes of various types. For purposes of the present discus-
`sion, the nodes include a P2P control node 102, an access
`node 103, and peer nodes or peers 106, 114, 116, and 118. A
`single control node 102, a single access node 103, and four
`peers 106, 114, 116, and 118 are shown for purposes of
`example, and it will be appreciated thatthe data network 101
`may contain any numberof such nodes. Furthermore,it will
`be appreciated that some nodes may function as multiple
`types of nodes, such as a single nodethat provides functions
`of the control node 102, functions of the access node 103,
`and/or functions of the peer node 106.
`The access node 103 may be a gateway or other similar
`computer device of the data network 101 that receives
`requests from the peers 106, 114, 116, 118 to gain access to
`the data network 101. The access node 103 may obtain cre-
`dentials from the peers 106, 114, 116, 118 referred to herein
`as network access IDs. The access node 103 checksthe net-
`
`work access ID against a database, such as a database 104,
`that stores the network access IDsthat are authorized to gain
`access to the data network 101 through the access node 103.
`Asan alternative, in some embodiments the access node 103
`may monitor ports into the data network 101 that the peers,
`such as peer 106, are physically connected to and are inher-
`ently authorizedports, e.g., particular ports ofthe access node
`103. Any communication over those ports may automatically
`be considered authorized.In that case, the network access ID
`provided by the peer, such as peer 106, may be any commu-
`nication attempt over such an inherently authorized port.
`The network access IDs may take one of many forms and
`may correspond to any of the protocol stack layers. For
`example, the network access ID may be an international
`mobile subscriber identity (MSI) numberfrom a subscriber
`identity module (SIM)or an international mobile equipment
`identity (MEJ) numberas in the case of a peer, such as the
`peer 106, that is a global system for mobile communications
`
`4
`telecommunication system
`(GSM) or universal global
`(UMTS) mobile device. The network access ID may be a
`mobile equipmentidentifier (MEID)suchasfor code division
`multiple access (CDMA) mobile phones. The network access
`ID may be a media access control (MAC) number for a
`wireline network device such as a digital subscriber line
`(DSL) modem or a cable modem thatthe peer 106 is using for
`access or for a network access device of the peer 106 itself.
`Other examples of network access IDs include Internet Pro-
`tocol (IP) addresses, physical and/or virtual port identifiers
`such asa virtuallocal area network number (VLAN#), device
`IDs including Common Language Equipment Identifier
`(CLEDcodes, point-to-point protocol (PPP) username and
`password combinations, and so forth.
`Uponbeing granted access to the underlying data network
`101, a given peer, suchas the peer 106, may attempt to join the
`P2P network which involves requesting eligibility to receive
`a query list 110 specifying peers to query for content as well
`as to be added to query lists for other peers and to respond to
`queries for content from thoseotherpeers. The given peer 106
`may request entry into the P2P network 100 by sending a
`request messageto the control node 102.
`The control node 102, which as discussed above may bea
`separate node from the access node 103 or may be the same
`nodeserving both functions, may also perform an authoriza-
`tion check prior to granting access to the P2P network 100.
`For example, the P2P network 100 may be a private network
`that excludes someusers whoare authorizedto use the under-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`lying data network 101. Restrictions on which peer 106 may
`gain access to the P2P network 100 allows for control of
`contentdistribution within the P2P environment.
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`The control node 102 receives the request message and
`then comparescredentials received in the request message to
`a database, such as the database 104, to determine if the
`requesting peer 106 is an authorized peer. The credentials
`may beof various forms, such as a username and password
`combination provided through a P2P application imple-
`mented by the peer 106. As another example, the credentials
`maybe the network access ID that has already been provided
`by the peer 106 when gaining access to the underlying data
`network 101. In that case, the network access ID may be
`obtained by the control node 102 through the request or in
`other ways such as by receiving the network access ID from
`the access node 103 as a result of the initial request to gain
`data network access.
`
`Upon determining that the peer 106 is authorized, the con-
`trol node 102 then introduces the peer into the P2P network
`100 by defining a clusterfor the peer 106 and by including the
`peer 106 in clusters defined for other peers, such as the peer
`114. These communications 108 between the control node
`
`102 and the peer 106 are control communications of the P2P
`network 100. Upon the peer 106 obtaining the query list 110
`that specifies the other peers 114, 116, 118 to poll, the peer
`106 then beginsparticipating in content communications 112
`amongthe other peers 114, 116, and 118.
`The query list 110, which has been created by the control
`node 102, specifies those peers that the peer 106 maypoll for
`content. As discussed below, the peer 106 may choose which
`peer 114, 116, 118to poll for content at any given time in one
`of various manners. This query list 110 is created by the
`control node 102 on thebasis ofcharacteristics ofthe peer 106
`receiving the query list 110 and/or the peers 114, 116, and 118
`being considered for inclusion on the query list 110. Those
`characteristics may include operational parameters such as
`cost of data transfer, power status, and available bandwidth.
`These characteristics may be obtained and stored to the
`database 104 by the control node 102. The characteristics
`
`
`
`US 8,655,838 B2
`
`10
`
`30
`
`35
`
`40
`
`45
`
`5
`may be obtained either during an initial P2P registration
`process and/or by a dynamic and ongoing exchangeofdata
`between the peers 106, 114, 116, and 118 and the control node
`102. For example, a cost of data transfer of the peer 106 may
`be specified at an initial registration and changedonlyif the
`data plan of the peer 106 changes. As another example, a
`current power status of the peer 106 may be specified at
`regular intervals so that the control node 102 knows whether
`the powerstatus ofthe peer 106 constrainsthe participation of
`the peer 106 in the P2P network 100.
`The characteristics may be specified as classifications. For
`operational criteria such as cost, one classification may be
`that the peer 106 maytransfer an unlimited amountof data for
`a set fee. Anotherclassification for cost may be that a set fee
`covers transfer up to a pre-defined amount, and additional
`data transfer costs additional amounts. Anotherclassification
`for cost may be that any data transfer is charged on a per unit
`transferred basis. For those peers 106 that have a pay by the
`unit cost of transfer, the classification may be moredetailed,
`such asto classify the peer 106 based on what the amount of
`expenditure for a period has been thusfar in a period, or to
`classify as underorover a transfer cap. According to various
`embodiments, the control node 102 may consider how much
`data has already been transferred by a given peer, such as the
`peer 106, in a current periodto assign the costclassificationat
`any point in time.
`For other operational criteria such as power status, one
`classification may be utility power while anotherclassifica-
`tion maybe battery power. Theclassification for power may
`be moredetailed as well, particularly for the peers 106 on
`battery powersuchas to specify a class for various ranges of
`power remaining. According to various embodiments, the
`control node 102 mayconsider how much poweris remaining
`at a given peer, such as the peer 106, to assign the power
`classification at any point in time.
`Available bandwidth is another example of operational
`criteria that may be classified. The classification for band-
`width maybe asbasicas classifying as fast or slow at a given
`point in time or more detailed such as to specify an available
`data transfer rate range for a given point in time. The band-
`width classification may be based on a maximum bandwidth
`available to the peer 106 or may be based onreal-time con-
`ditions where real-time measurementsare taken to reveal the
`amount of bandwidth available due to factors such as a fluc-
`tuating maximum bandwidth andfluctuating usage. Accord-
`ing to various embodiments, the control node 102 may con-
`sider how much bandwidthis available at a given peer, such as
`the peer 106, to assign the bandwidth classification at any
`point in time.
`The control node 102 may acquire the information neces-
`sary to assign classifications to the operational criteria or
`other characteristics of the peer 106 in one of various ways.
`For example, the P2P or other application being implemented
`by the peer 106 may monitor parameters such as powertype,
`powerlevel, amount of data transfer of a given period, and
`current bandwidth usage. The peer 106 may then report this
`information to the control node 102, such asat set intervals or
`in response to being polled by the control node 102. The
`control node 102 may monitor some parameters of the peer
`106, such as the amount of data transfer and the current
`bandwidth usage, particularly where the control node 102 is
`implemented within a gateway providing access to the under-
`lying data network 101 to the peer 106. The control node 102
`may also receive such information from one or more other
`nodes within the data network 101, such as the access node
`103, which serves as a gatewayfor the peer 106 and monitors
`the amountofdata transfer and the current bandwidth usage.
`
`6
`FIG. 1B showsan example of the components that may be
`present within embodiments of the control node 102, access
`node 103, or the peers 106, 114, 116, and 118. Each of these
`nodes may be a conventional computer system, a dedicated
`purpose device, and/or combinations thereof. The nodes 102,
`103, 106, 114, 116, and 118 include a processor 120 that
`implements instructionsto perform logical operations such as
`those discussed below in reference to FIGS. 2-7. The proces-
`sor 120 maybeofvarious forms including a general purpose
`programmable processor, a dedicated purpose processor,
`hardwireddigital logic, or various combinations thereof. The
`processor 120 may employ a memory 126, which may be
`volatile, involatile, or combinationsthereof, to store program-
`ming, reference values, dynamically generated data, and the
`like.
`The processor 120 and the memory 126 are examples of a
`computer readable media whichstore instructions that when
`performed implementvarious logical operations. Such com-
`puter readable media may include various storage media
`including electronic, magnetic, and optical storage. Com-
`puter readable media may also include communications
`media, such as wired and wireless connections usedto trans-
`fer the instructions or send and receive other data messages.
`The processor 120 communicates with various other com-
`ponents. For example, exemplary embodiments of the nodes
`102, 103, 106, 114, 116, and 118 mayinclude a network
`interface 122 that may provide a wiredor wireless connection
`to the data network 101; a mass storage device 128 such as a
`magnetic, optical, or electronic storage drive that may pro-
`vide additional data and programmingstorage; input devices
`124 such as a keyboard and mouse; and output devices 130
`such as a video display.
`FIG. 2 shows one example of logical operations that may
`be performed by an access node, such as the access node 103,
`to grant or deny access to the underlying data network 101 for
`the peer 106. Initially, the access node 103 receives a request
`for access to the data network 101 from the peer 106 at a
`request operation 202. The request may specify the network
`access ID of the peer 106. This request may involve various
`layers of the communication protocol stack, and the network
`access ID maybe provided as a function of the negotiation
`process between the peer 106 and the access node 103. For
`example, the MAC address, IMSI, IMEI, MEID,or other such
`identifier of the peer 106 may be provided and usedfor the
`subsequentoperations of FIG. 2. The network access ID may
`be a value from a higherlayer in the protocol stack such as a
`username and password combination for a PPP connection to
`a DSL or cable modem that provides connectivity from the
`peer 106 to the access node 103. Furthermore, multiple net-
`workaccess IDs may be involvedin the negotiation with the
`access node 103, such as a MAC address and a username and
`password combination.
`Uponreceiving the network access ID for the peer 106, the
`access node 103 checks the network access ID against a
`masterlist ofthose peers whoare authorized to access the data
`network 101 via the access node 103 at a look-up operation
`204. The master list may be created and maintained by service
`providers who operate the access nodes 103 where a network
`access ID is added to the master list upon a consumer pur-
`chasing data network access throughthe service provider and
`being assigned the network access ID.
`The access node 103 detects whether the network access ID
`received in the request matches an entry of the masterlist ata
`query operation 206. Ifthe network access ID does not match,
`this indicates that the peer 106 is not an authorized userofthe
`data network 101 and access is denied at a denial operation
`208 by rejecting the request. If the network access ID does
`
`
`
`US 8,655,838 B2
`
`7
`match, then the access node 103 provisions access and related
`data services of the data network 101 to the peer 106 that has
`submitted the request at an access operation 210.
`FIG. 3 shows an example of logical operations that may be
`performed by embodiments of the control node 102 or the
`access node 103 to grant or deny access to the P2P network
`100 after the peer 106 has gainedaccess to the underlying data
`network 101. The control node 102 or access node 103
`receives a requestto join the P2P network 100 from the peer
`106 over an established data network access at a request
`operation 302. The control node 102 or access node 103
`receives the request and comparescredentials for the peer 106
`to a master list maintained for the P2P network 100 at a
`look-up operation 304.
`Asdiscussed above, these credentials may be the network
`access ID that has been previously provided to the access
`node 103 when the peer 106 was requesting access to the
`underlying data network 101. According to one or more
`exemplary embodiments, the network access ID maybe pro-
`vided from the peer 106 again by the P2P application of the
`peer 106 collecting and submitting this information. Accord-
`ing to one or more other exemplary embodiments,the control
`node 102 may obtain the network access ID for the peer 106
`from elsewhere, such as from the access node 103 that has
`already received the network access ID forthe peer 106. As an
`alternative, the access node 103 may review the credentials
`that have already been received for purposes of data network
`101 access to also determine whetherthe peer has authoriza-
`tion to reach the contro] node 102 and hence the P2P network
`
`100. Ifthe peer, such as peer 106, is unauthorized to access the
`P2P network 100 then the access node 103 discards any
`attempts to reach the control node 102 by that peer.
`In either the instance where the control node 102 or the
`
`access node 103 acts as the gatekeeper to the P2P network
`100, the control node 102 may further utilize the network
`access ID for additional P2P network 100 gatekeeping. For
`example, the control node 102 mayutilize the network access
`ID to determine whether a particular peer, such as peer 106,
`has authorization to enter into sub-portions or other group-
`ings of the P2P network 100 that are restricted due to the
`content that is available within the sub-P2P portion or due to
`membership restriction.
`The control node 102 or access node 103 detects at a query
`operation 306 whetherthe received network access ID for the
`peer 106 matches the masterlist for the P2P network 100. If
`not, then the control node 102 denies access to the P2P net-
`work 100 at a denial operation 308 by rejecting the request, or
`in the case of the access node 103, attempts to reach the
`control node 102 are discarded. Ifthe network access ID does
`
`match, then the control node 102 grants access by proceeding
`to build the query list 110 for the current peer 106 and to
`include the current peer 106 on query lists for other peers if
`and when appropriate. Where the access node 103 is the
`gatekeeper to the P2P network 100, when the ID does match
`then the access node allows the requests to join the P2P
`network 100 to reach the control node 102 such that the
`
`control node 102 may then proceed with building the query
`list 110.
`The control node 102 begins the process of building the
`query list 110 for the current peer 106, as well as building
`query lists for other peers that may include the current peer
`106, by looking-up the network access IDs in the database
`104 at a look-up operation 310. In some embodiments, the
`control node 102 may look-up the network access ID ofpeers
`relevant to the current peer 106, such as those peers 114, 116,
`and 118 that contain content relevant to the current peer 106.
`The request to join the P2P network 100 may specify the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`content relevant to the current peer 106 orthe specification of
`content maybestored in association with the network access
`ID ofthe current peer 106.
`In some embodiments, the control node 102 may look-up
`the network access ID ofthe current peer 106 at this pointto
`find characteristics of the peer 106 including operational cri-
`teria. For instance, the characteristics including operational
`criteria of the current peer 106 may dictate which peers 114,
`116, 118 may be addedto the query list 110 being prepared for
`the current peer 106. This operational criteria of the current
`peer 106 mayalso be looked-up wherethe operationalcriteria
`dictates to which query lists of other peers the current peer
`106 will be added.
`
`Uponfinding the stored characteristics of the peers 106,
`114, 116, and 118 that may be relevant to building the query
`lists, the control node 102 then builds the query list 110 to be
`provided to the peer 106. The control node 102 builds the
`query list 110 by selecting other peers 114, 116, and 118 to
`add to the query list 110 on the basis ofthe operationalcriteria
`such as the cost of data transfer, the power status, and/or the
`available bandwidth at a list operation 312. These consider-
`ations ofoperational criteria may be madein addition to any
`conventional P2P considerations such as availability of con-
`tent amongthe peers 114, 116, and 118.
`After building the query list 110, the control node 102 then
`providesthat query list 110 to the peer 106 at a send operatio