How standard TCP/IP concepts map to their JXTA equivalents

TCP/IP Concept

Example

Standard TCP/IP Implementation

JXTA P2P Sockets Implementation

host name/domain name

www.foo.com

DNS tables record a mapping between a given host name and a given IP address. Clients contact a DNS server, resolve the domain name into an IP address, and then directly contact the IP address.

Supported. Peers who wish to start a server publish a JXTA peer group advertisement with the Name field set to the domain name they want. Peers who want to contact this host search for a JXTA peer group advertisement with the given host name, and then join the peer group found.

IP address

23.66.76.44

IANA hands out top-level IP network addresses. Network administrators then hand out IP addresses to machines on their own network using the network addresses as a base address.

Supported. IP addresses are automatically generated by hashing the host name into a 4 byte IP address, such as hashing www.nike.laborpolicy into 56.33.64.89. The special bytes 255, 0, and 127 are not allowed in hashed IP addresses. The IP address of a host is published along with the host name when a JXTA peer group advertisement is published for that host. Clients who wish to contact a given IP address search for a JXTA peer group advertisement with the IP address, then join that peer group when it is found.

service port

80

Clients use TCP or UDP along with the IP protocol to directly contact the service port for a given endpoint..

Supported. Server peers publish JXTA pipe advertisements with the Name field set to the port number, such as <Name>80</Name> inside of the JXTA peer group for the given host. A client must first find the host's JXTA peer group and then join it. They then search for a JXTA pipe advertisement with the given service port number. After finding it, a TCP like channel is created using a JXTA pipe that is bidirectional.

loopback address

127.0.0.1/"localhost"

An address that is not physically connected to any network. Used for debugging and starting up servers on the localhost.

Supported, but incorrectly. We simply expose the address as an "Any" address. This means that P2P server sockets started with the loopback interface are exposed on the network using their local peer information to start the server; being exposed on the network is an incorrect way of implenting the loopback interface and will be addressed in a future release.

"Any" address

0.0.0.0

Use any IP address that the current machine is configured for.

Supported. Every peer automatically has a &auot;Any" host name generated from their JXTA peer name. For example, if a peer has a JXTA peer name of BradGNUberg, then their automatic any host name is www.BradGNUberg.peer. An IP address is hashed from this host name.

Context for resolving domain names/IP Addresses

 

On the Internet almost all IP addresses (except for private IP addresses) and most domain names are visible.

Supported. All P2P Socket IP addresses and host names are resolved in an application peer group that is set before creating sockets or server sockets. Different applications using P2P Sockets will not be able to reach each other if they resolve all P2P IP and host name information in different peer groups.

Multicast Sockets/IP Addresses

 

 

Not Supported

UDP Sockets

 

 

Not Supported

Multi-homed hosts

 

 

Not Supported

Private IP Addresses

192.168.x.x

Indicates that a given IP address is only valid on a private network and is not exposed or resolvable on the global Internet.

Not directly supported, but is simulated by creating your own scoped JXTA peer group.

Socket Options

SoLinger, TcpNoDelay, etc.

Used to control various TCP/IP-level settings on the socket and server socket

Not supported, except for SoTimeout, which is untested.

Non-blocking IO Sockets/Server Sockets

 

Used to create scalable servers that do not block while waiting for IO communication.

Not supported.