Naming and Service Discoveryin Peer-to-Peer NetworksECE1770 Expert TopicEli FidlerVinod MuthusamyFebruary 13, 2003OutlineTraditional Distributed Naming SystemsDistributed Naming ParadigmsP2P NamingExisting SystemsEmerging SystemsTraditional Naming SystemsTCP/IP Host NamingStatichosts filesNo central authorityHierarchicalDomain Name System (RFC1034/5)Authority for domains is delegated, but top level is centralizedCaching is vital for acceptable performanceDistributed Naming ParadigmsHost IDs (CORBA Naming Service)Each host is given a globally unique IDHosts are organized into hierarchical namespacesService IDs (CORBA Trader Service, Jini)Services are registered with broker, discovered using lookupDistributes Object IDs (file sharing networks)Each object has a unique ID, but may not exist in any single placeNode Discovery TechniquesStatic/NeighboursEach host has a static list of known nodes/neighboursCentralized RepositoryEach host knows the address of a repositoryLocal BroadcastA host searches for nodes using broadcast“Buddy List”A host connects to favourite/previously seen hostsP2P NamingStaticCentralizedNeighbour Discovery“Smart” DiscoveryEmerging Naming SystemsStatic P2P NamingEach host knows a static, explicit configuration of other nodesThe P2P network is staticc.f. hosts filesCentralized P2P NamingThere is a single host responsible for each service (or one host for all services)Nodes connect to P2P network, then contact host for desired serviceex. Napster, JiniJiniHierarchy of centralized lookup servicesAdvertisement = { interface name, attributes }Lookup = { interface name, [attributes] }Object moves from Provider to Lookup Service to ClientMust renew leasesPeer lookupLookup ServiceClientService ProviderService ObjectService Attributes1. Discover2. Join3. LookupNeighbour Discovery P2P NamingOnce connected to P2P network, hosts use P2P neighbours to connect to servicesSearches/commands propagate in wavesex. Gnutella/Limewire“Smart” Discovery P2P NamingOnce connected to P2P network, hosts use P2P neighbours to connect to servicesSearches/commands propagate along “best” path of neighbour-neighbour linksex. FreenetFreenetThe requests get routed to the appropriate host by incremental discoveryEmerging Naming SystemsTechnologiesJXTAIntentional Naming System (INS)Active Names AttributesNaming expressivenessArchitectureJXTASuper peers: distributed search hubsAdvertisement = { query space, predicates, address }Query = { query space, predicates }Groups of hubsEach group is responsible for some query space(s)Each group has a member from every other groupEach hub has a summary of adverts in every other hub in its groupSearch groupSearch hubINS – NamingName specifier ={ A hierarchy of attribute-value pairs }Name record = { Name specifier, metric, address }INS – ArchitectureINRs form spanning treeLate binding handles service/node mobilityName can refer to groupsScalability, load balancingActive NamesHierarchical namespace delegationActive Name = { name to resolve, namespace program }Namespace program = { Active Name }Service composition using after methodsLocation independent execution of namespace programSummary Decentralized administrationWell addressed Network failures, robustnessAddressed by periodic advertisementsAutomatic resolver spawning in INS LookupTypically need (distributed) servers (INS, Freenet, etc.)Flooding (Gnutella) is inefficientSummary (Cont'd) Query expressivenessPrimarily still hierarchical (INS, AN, Jini, etc.) Node/service mobilityAddressed by periodic advertisementsLate binding in INS ScalabilityMany are not scalable to Internet (INS, JXTA, Jini)Rely on lookup service hierarchy for
View Full Document