Self-Constructing P2P Networks on the Project JXTA Platform Bill Yeager Chief Technologist Project JXTA Sun Microsystems, Inc.

Slides:



Advertisements
Similar presentations
Cryptography and Network Security Chapter 16
Advertisements

Spring 2012: CS419 Computer Security Vinod Ganapathy SSL, etc.
Socket Layer Security. In this Presentation: need for web security SSL/TLS transport layer security protocols HTTPS secure shell (SSH)
An Introduction to Secure Sockets Layer (SSL). Overview Types of encryption SSL History Design Goals Protocol Problems Competing Technologies.
Module 5: TLS and SSL 1. Overview Transport Layer Security Overview Secure Socket Layer Overview SSL Termination SSL in the Hosted Environment Load Balanced.
BASIC CRYPTOGRAPHY CONCEPT. Secure Socket Layer (SSL)  SSL was first used by Netscape.  To ensure security of data sent through HTTP, LDAP or POP3.
ScaLAB seminar 21st October Intrinsic References in Distributed Systems Presented by: Nimish Pachapurkar.
Extensible Networking Platform IWAN 2005 Extensible Network Configuration and Communication Framework Todd Sproull and John Lockwood
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
JXTA P2P Platform Denny Chen Dai CMPT 771, Spring 08.
JXTA Protocol Introduction Student : Jia-Hui Huang Adviser : Kai-Wei Ke Date : 2005/11/22.
Socket Programming.
An 8051 Based Web Server Project by Mason Kidd Advised by Dr. Schertz.
JXTA Selo TE Introduction What is JXTA ( pronounced Juxta ) What is JXTA ( pronounced Juxta ) Jxta – an open, network computing platform designed.
Understanding Networks. Objectives Compare client and network operating systems Learn about local area network technologies, including Ethernet, Token.
Introduction To Networking
Lecture 22 Internet Security Protocols and Standards modified from slides of Lawrie Brown.
JXTA Lecture 1.JXTA Overview a) Background to Project JXTA b) Design Constraints c) Terminology d) Overview and Architecture e) Introducing the Concepts.
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
MobileMAN Kickoff1 Prototype Development Kit & P2P Middleware Proposal Giovanni Turi IIT - CNR Pisa
CS 356 Systems Security Spring Dr. Indrajit Ray
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.0 Module 9 TCP/IP Protocol Suite and IP Addressing.
Cli/Serv.: JXTA/151 Client/Server Distributed Systems v Objective –explain JXTA, a support environment for P2P services and applications ,
CHAPTER 2 PCs on the Internet Suraya Alias. The TCP/IP Suite of Protocols Internet applications – client/server applications The client requested data.
Hands-On Microsoft Windows Server 2003 Networking Chapter Three TCP/IP Architecture.
Network Protocols. Why Protocols?  Rules and procedures to govern communication Some for transferring data Some for transferring data Some for route.
Chapter 6: Packet Filtering
Sun’s Project JXTA Technical Overview Presented by Sergei Kovalenko Red Team: Janhavi James A. Davis Fernando D. Diaz.
Enabling Embedded Systems to access Internet Resources.
Operating Systems Lesson 10. Networking Communications protocol is the set of standard rules for ◦ Data representation ◦ Signaling ◦ Authentication ◦
Behzad Akbari Spring 2012 (These slides are based on lecture slides by Lawrie Brown)
1 A P2P Collaborative System Using JXTA Hosei Graduation School ITPC 02R3315 Katsuhiro CHIBA.
11-1 Pipes. Learning Objectives ● This module will help you... – Understand key JXTA pipe concepts – Understand how pipes work – Gain familiarity with.
Cosc 4765 SSL/TLS and VPN. SSL and TLS We can apply this generally, but also from a prospective of web services. Multi-layered: –S-http (secure http),
Network Security Essentials Chapter 5
CHAPTER 2 PCs on the Internet Suraya Alias. The TCP/IP Suite of Protocols Internet applications – client/server applications ◦The client requested data.
2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building.
3-1 JXTA Platforms. 3-1 Learning Objectives ● Learn about the different platform implementations of the JXTA protocols – Features provided by each implementation.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
14-1 JXTA for J2ME Learning Objectives ● This module will help you... – Learn about the architecture of JXTA for J2ME – Learn the JXTA for J2ME.
1 Security Protocols in the Internet Source: Chapter 31 Data Communications & Networking Forouzan Third Edition.
Dr. Ian Wang Cardiff University, U.K.. Ian Wang, Cardiff University Peer-to-Peer and Grids What does the Peer-to-Peer paradigm offer Grids? Scalable Decentralized.
Towards high-performance communication layers for JXTA on grids Mathieu Jan GDS meeting, Lyon, 17 February 2006.
4061 Session 25 (4/17). Today Briefly: Select and Poll Layered Protocols and the Internets Intro to Network Programming.
9-1 JXTA Discovery Learning Objectives This module will help you... – Understand how JXTA advertisements are published, cached, and.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
JXTAJXTA By Fawaz AlSulaiman
1 Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
18-1 Summary (Day 2) Learning Summary – What is JXTA ? – Understand the fundamental concepts of JXTA – Learn about the various implementations of.
Internet protocol Suite
6-1 How to Write JXTA Applications. 6-1 Learning Objectives ● This module will help you... – Gain familiarity with guidelines and design conventions that.
Confidential & Proprietary Information of Digital Focus J2ME and the IVY Platform.
COMPUTER NETWORKS Hwajung Lee. Image Source:
Securing Access to Data Using IPsec Josh Jones Cosc352.
Project JXTA Kaarthik Sivashanmugam. JXTA..? JXTA is a set of open, generalized peer-to-peer (P2P) protocols that allow any connected device on the network.
Client-server communication Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Skype.
Project JXTA By Jude Mercado.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
MCA – 405 Elective –I (A) Java Programming & Technology
Layered Architectures
Working at a Small-to-Medium Business or ISP – Chapter 7
Chapter 3: Windows7 Part 4.
Working at a Small-to-Medium Business or ISP – Chapter 7
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Working at a Small-to-Medium Business or ISP – Chapter 7
Transport Protocols An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Presentation transcript:

Self-Constructing P2P Networks on the Project JXTA Platform Bill Yeager Chief Technologist Project JXTA Sun Microsystems, Inc.

Highlights Some weekend musings … –What is P2P –Why P2P Now Fundamentals of the JXTA Virtual Network

What is P2P (people to people)? Server/Service Centric Internet –Host communities are isolated satellites – Habitable == access + bandwidth Cold on the edges –Not all satellites are equal –If you are an Eskimo, you live on pluto P2P Internet –Hot edges spontaneous growth and activity –Silent, powerful infrastructure Edge-to-edge connectivity Edge services –Location based –Content + aggregators, etc … From Fractal Journeys by Katherine McGuire

Why P2P Now? Current Internet –As the number of devices increases Shorter / Fatter network is required –10mbps, 100mbps, 1gbps, 10gbps … –More powerful servers Same service and sometimes less QOS We are not “knocking” the technology –It’s magnificent! –Rather when limits are reached history shows disruptive technology arrives –It is scary and there is resistance –The economy always benefits

Why P2P Now Continued Imagine that P2P, Edge technology arrived Before The Centralized Internet How would the “center” evolve?

From the Outside Inward NAN Wireless P2P communication grid City Wide Fiber Network Content Aggregators nww.yourhome.mp cww.filmbus.mp cww.compbus.pa cww.stanford.edu.sfd , IM, Content Sharing, etc …

The P2P Internet From Fractal Journeys by Katherine McGuire

The Fundamentals of the JXTA Virtual Network

Overview The “Stack” Peers and Peergroups Network Abstractions JVNet Definitions Protocols Security Implementation Status

The “Stack” Services: Pipe, (Gnutella, CSN, CAN, DRM) P2P Applications: IM, Content Sharing, (Morpheus) Peers, Pipes, Endpoints, Advertisements, PeerGroups, Rendezvous Protocols: Discovery, Resolution, Group Membership CORECORE Security

Peers and PeerGroups When you boot JXTA you are a member of the World/Network PeerGroup can discover and communicate with other peers in that PeerGroup World / Network PeerGroup

Peers and PeerGroups To give scope to “search” and permit group specific policies JXTA has peerGroups  Any peer can create, join and leave PeerGroups  A peer can be a member of more than one PeerGroup  All searches are applied to the peer’s current PeerGroup Tennis Networking SF & F Wine

Network Abstractions NAT Firewall http Tcp/Ip Real Network Tcp/Ip PeerID1 PeerID2 PeerID3 PeerID4 PeerID5 PeerID6 JXTA Virtual Network JVNet Pipe Connections PeerIDs are virtual Network addresses Rendezvous-relay JXTA core Software inside

JVNet Definitions#1 Peers –Any device on the jxta virtual network –PeerName Each peer has a human readable text string name –PeerIDs These are virtual network addresses –Bound to a peer –urn:uuid-

JVNet Definitions#2 Pipes –Used to pass data between peers uni-directional uni-directional secure Multicast listener –Only requires registration and is “connection-less.” –PipeID These are virtual port numbers –Application specific ID »urn:uuid- –Each port has a human readable application name string –Input pipes are created as listeners –Output pipes attempt to connect to these “listeners” except for the Multicast pipe.

Group Chat Multicast Pipe Example Multicast Message Unicast message N peers sending a message to N-1 peers is always an N² problem on the virtual network. Without Multicast: If a rendezvous is required, it is 2N² on the real transport. Chat rendezvous peers

JVNet Definitions#3 Endpoints –Virtual network socket peerID.pipeID Unix netstat on a JXTA peer would yield something like Jxta> netstat –a | grep LISTEN *.imPipeLISTEN *.MobAgentPipeLISTEN *.secureftpPipeLISTEN

JVNet Definitions#4 And for established pipe connections on the virtual network: Jxta> netstat –a | grep ESTABLISHED localPeerName.imremotePeerName.remPipeID1ESTABLISHED localPeerName.MobAgentremotePeerName.remPipeID2ESTABLISHED localPeerNamesecureftpremotePeerName.remPipeID3ESTABLISHED Jxta> netstat –a –n | grep ESTABLISHED localPeerID. PipeID1remotePeerID1.remPipeID1ESTABLISHED localPeerID. PipeID2remotePeerID1.remPipeID2ESTABLISHED localPeerID. PipeID3remotePeerID2.remPipeID3ESTABLISHED

JVNet Definitions#5 Peer1Peer2 Established Pipe Connection JXTA binary message The JXTA binary message is the IP packet analog 1) Source and destination endpoint addresses 2) Payload as application namespace defined elements a) Mime typed payload

Binary Message Example application payload – Namespace == jxta jxta from –Text/plain »“william yeager” jxtaMail:to –Text/plain »“chen yu” jxtaMail:subject –Text/plain »Stanford networking seminar jxtaMail:body –Text/plain »It’s on for next week.

Advertisements JXTA uses advertisements to create descriptions of peers –XML Documents Peer Advertisement Pipe Advertisement PeerGroup Advertisement Rendezvous Advertisment –Protocols are used to publish and subscribe to these document types

Advertisements: Quick Overview#1 Peer Advertisement –Peer nameS –Peer ID is 64 bytes urn:uuid- +padding+format Group ID –Default is urn:jxta:jxta-NetGroup –Endpoint address parameters peerID (jxta virtual network) Tcp://ipaddress (tcp transport) Jxtatls:peerID/TlsTransport/jxta-WorldGroup (tls transport) –Rendezvous True or False –Root x509.v3 certificate

Advertisements: Quick Overview#2 Pipe Advertisement –PipeID is 64 bytes urn:uuid- + padding + format info –Type JxtaUnicast JxtaUnicastSecure JxtaPropagate (multicast listener) –Name ApplicationString.human-readable-text –EG:

Advertisements: Quick Overview#3 Group Advertisment –groupID urn:uuid- + format + padding urn:uuid:jxta-NetGroup (well know group name) –Name Text String –For example: Networking-seminar –Module specification id Defines the version of the API’s used by the group –Permits multiple implementations of group policies, eg, authetication »urn:uuid- + padding

Rendezvous – The JXTA Bulletin Board Where Peers Post And Read Advertisements Have a Time-to-live

Protocols Discovery Group Services –Publication of advertisements Locally and remotely –Upon advertisement creation they are usually published –Subscription to published advertisements Retrieve locally and remotely published –These are searches and are scoped to the peerGroup –One can refine the search for pipe adv to the application »Search for MobileAgent listening pipes in the peerMonitoring group for example

Protocols JXTA Pipe Binding Protocol (JPBP) –Pipe advertisements are published without locality, i. e., not bound to a peer First one discovers a pipe advertisement 2 nd one must find the peer to whom it belongs –Ask “if this is your pipe adv, then please send me your Peer advertisement” –The JPBP does this much like ARP (IP address resolution protocol) finds MAC addresses belonging to IP addresses. –Searches for pipe owners’ peer advertisements are again restricted to the current peerGroup.

Pipe / Binary Message Code Example Assume the object pipeService is an instance of PipeService: String from = “\“Wei-Li\” // create binary message Message msg = pipeService.createMessage(); // add the payload msg.setBytes(“jxtaMail:From”, from.getBytes()); : Assume adv is the input pipeAdvertisement we want to resolve: // create and resolve the output pipe OutputPipe pipeOut = pipeService.createOutputPipe(adv, 30000); // and send the message pipeOut.send(msg);

Group Membership Protocol Peers can –Create groups Creates and publishes advertisement –Provide the code for the membership policies Authentication and authorization for example –Join groups Automatically changes the groupID in the peer advertisement –Leave groups

JXTA’s Virtual Network Core Implementation The JXTA Virtual Network hides –The complexity of the real underlying transports and their associated protocols Just what is your IP address? –The infrastructure barriers NAT, Firewalls –The physical transports JXTA works end-to-end across physical layers from the P2P application programmer

JXTA Security Poblano “degrees of security model” –$0 cost is least secure (every peer it’s own Certificate Authority) –Use standard Web CA’s for most secure – by Bill Yeager and Rita Chen Full implementation of Transport Layer Security [rfc2246] This is SSL.V3+ –Default Cipher suite RSA1024, 3DES EDE CBC, SHA-1 –X509.v3 certificates – by Bill Yeager

TLS Transport JXTA Virtual Network peer1 peer2 peer3 peer4 peer5 peer6 pipeID.peerID2 pipeID.peerID3 Endpoint TLS Transport Endpoint TLS Transport TLS Records As JXTA message payload Reliable message stream Output Pipe Input Pipe Output Msg Input Msg

Implementation Status Full J2SE implementation is complete Full Java Mobile phone implementation is compete C implementation is in progress with full completion targeted for May. All implementations are edge-to-edge interoperable! –We can discover peers, maintain “buddy lists,” and chat from a mobile phone to a laptop or desktop and vice- versa.

Questions? Project JXTA is open source