Protocols


A protocol is simply an agreed-upon set of standards that enables two or more software components to communicate. There are low-level protocols such as TCP and UDP, and high-level protocols such as HTTP, FTP, and SMTP.

Protocol layering is a common technique for simplifying network design and promoting extensibility. Protocol layering allows common functions to be defined, and the responsibility for implementing those functions mapped to a specific layer of the model or architecture. A layered approach is considered better practice than implementing a large "brick" of code that is difficult to understand. Layered architectures promote reuse, exchangeability, incremental development, and offer the advantage of localizing changes to specific layers. As the network evolves, layers can be replaced or exchanged without re-engineering the entire communication architecture.

Chapter 7, "Transports and Protocols," explores the protocol and service maze that exists in current P2P applications.

As Project JXTA has pointed out, there is a need for standards to promote interoperability in common P2P functions. However, it should be noted that JXTA does not define a specific transport binding. For instance, JXTA does not dictate or assume TCP/IP as the underlying network transport because the goal of the JXTA project is to promote interoperability with a minimal amount of constraints and assumptions about hardware, software, and the network environment.

The JXTA protocols are composed of six protocols that work together to enable the discovery, organization, monitoring, and communication between peers (see Table 5.1).

Table 5.1. JXTA Protocols
JXTA Protocol Discovery Organization Monitoring Communication
Peer Discovery Protocol (PDP) Fundamental peer advertisement support      
Peer Endpoint Protocol (PEP) Enables route discovery, enables firewall and NAT routing      
Peer Resolver Protocol (PRP)       Basic query / response(s) protocol
Pipe Binding Protocol (PBP)       Binds two or more endpoints of a pipe
Rendezvous Protocol (RVP)   Enables peer groups and provides message propagation, used by PRP and PBP    
Peer Information Protocol (PIP)     Provides status information such as state, uptime, and peer capabilities  

All of these protocols are implemented using a common messaging layer. It is the messaging layer that binds the JXTA protocols to various network transports.

Each of the JXTA protocols is independent of the others, and a peer is not required to implement all protocols. A peer just needs to implement the protocols that it needs to use. Per the specification:

The JXTA protocols do not require periodic messages of any kind at any level to be sent within the network. For example, JXTA does not require periodic polling, link status sensing, or neighbor detection messages, and does not rely on these functions from any underlying network transport in the network. This entirely on-demand behavior of the JXTA protocols and lack of periodic activity allows the number of overhead messages caused by JXTA to scale all the way down to zero, when all peers are stationary with respect to each other and all routes needed for current communication have already been discovered.

However, it should be noted that many important services supporting P2P have yet to be defined. For instance, as of this writing, presence and identity services for JXTA do not exist. The degree with which implementations of the protocol will be able to work without a "digital heartbeat" has yet to be determined.



JavaT P2P Unleashed
JavaT P2P Unleashed
ISBN: N/A
EAN: N/A
Year: 2002
Pages: 209

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net