80 likes | 261 Views
Peer to Peer Discovery. Nate Thrasher. Peer to Peer Discovery. 2 Basic Categories Hardware Discovery Information Discovery JXTA ( http://www.jxta.org ) has 6 protocols http://spec.jxta.org/nonav/v1.0/docbook/JXTAProtocols.html ERP (Endpoint Routing Protocol). Peer to Peer Discovery.
E N D
Peer to Peer Discovery Nate Thrasher
Peer to Peer Discovery • 2 Basic Categories • Hardware Discovery • Information Discovery • JXTA (http://www.jxta.org) has 6 protocols • http://spec.jxta.org/nonav/v1.0/docbook/JXTAProtocols.html • ERP (Endpoint Routing Protocol)
Peer to Peer Discovery • Hardware Discovery • Discovery of nodes in local network • Discovery of nodes outside of local network (through firewalls/proxies) • Information Discovery • Advertise local, discoverable information. • Submit a query to any node and have it propagate throughout the “peer network” and return a result.
Peer to Peer Discovery • Hardware Discovery • Multicast Communication • Used for LAN discovery • Used by all nodes in P2P network • HTTP Communication • Used for discovery outside of LAN • Performed by special “Router” node
Peer to Peer Discovery • Multicast Communication • Packets exchanged on multicast group containing IP/port available for direct connection. • Router nodes store these for reference when external router nodes ask to send a packet to a local node. • Every node on a local network should maintain a list of every other node.
Peer to Peer Discovery • HTTP Communication • Used by router nodes to communicate through a firewall/proxy. • Messages are wrapped in an http packet and sent through the firewall (assuming it allows http communication on a standard port). • HTTP packets are automatically routed to the client from which the request was made. • The packet contains information that tells the router node where it needs to be sent.
Peer to Peer Discovery • Hardware Discovery NODE NODE Multicast Multicast ROUTER NODE ROUTER NODE NODE HTTP NODE Firewall
Peer to Peer Discovery • My Implementation • Multicast Only • Areas for Improvement • Add HTTP • Add some kind of Information discovery