Network Group

The network group is charged with delivering cross-platform usable multi-purpose connections, directory and user accounts services, and authentication and encryption solutions. At this point the network group consists mainly of Kosta, but Laurel and others will likely be working with him where there part of the project relates to network and server issues.

Some Kosta/Dr. J Q/A Dialogue is available.

In Spring 2004, Laurel and Mike produced some preliminary chat client code: SecondChat.icn

Some networking resources we may use include:

We will have to think about network architecture and design. Probably a good place to start would be comparing what we want with the Alice architecture (other Alice docs). Alice is a system for rapid prototyping of VR's, and it uses a two-process model in which one process is the graphics renderer and the other is the VR simulation.

We need a similar client-server model, in which the VR world is running in some central location, with which clients communicate. One way we could start to achieve this would be to separate out Ray's PLEASE lab demo into a graphical client (most of the code) and a server which stores dynamic information such as avatar movements, drawing on the whiteboard, etc. Without worrying about n-person chat integration yet, can we do a one-person client-server system in which the client GUI Events() generate server requests for state changes, and the server replies with the state changes which cause the graphics to be updated?

We may need, for the sake of interactive performance, to handle avatar motion specially, such as: allowing the view update to be immediate, and batching many movements together into single packets, say, every half-second or second.

Our preliminary designs for the TCP-based client protocol are available.

We expect to add UDP down the road; the UDP protocol would be the same as the TCP above, except it would only be used for transient commands such as \move, and would include a serial # to handle (drop) out of order packets.

We probably want to think about adding Peer-2-Peer client transmission of UDP messages when we can establish that (a) P2P communication is possible, and (b) clients can see each other, i.e. they are in the same room. Akshay reports having written a checker for (a).

CVE Protocols

We should evaluate existing standards in order to determine to what extent we can interoperate with them. Which standards are open? Which address materially the same domain as our CVE?
MCP
The MUD (or MOO) Client Protocol is a widely used standard for textual virtual environments. However, it is not clear how useful it is by itself, it seems to be a meta- protocol without any underlying command set.
VRTP
Virtual Reality Transfer Protocol. An early stage of development. May be related to X3D which is low-level and XML-based.
Kessler and Hodges
Proposed a protocol for networked VE's in 1996. E. Drew Kessler and Larry F. Hodges. A network communication protocol for distributed virtual environment systems. IEEE Virtual Reality Annual International Symposium (VRAIS) '96, March 1996.
Broll's DWTP
appeared in VRML98 Symposium, possibly WET-ICE 97.
ISTP
Interactive Sharing Transport Protocol. Mitsubishi Electronics Research Lab, Cambridge MA. 84 page TR available. See also slides 51-65 of: http://internetng.dit.upm.es/ponencias-jing/2004/Isabel2004_Georganas.pdf
pLVE
Bouras et al's protocol for educational virtual environments. Bouras' group also wrote an article: architectures and protocols for educational virtual environments, citing several protocols: DIS, DWTP, USTP, VSCP, VIP...
VIP
VRML Interchange Protocol, http://www.csclub.uwaterloo.ca/~sfwhite/vnet/VIP.html
VSCP
Virtual Society Client Protocol, for Sony's Virtual Society project. Probably not an open standard.
DIS
Distributed Interactive Protocol, a military standard. Messages oriented to simulations of tanks or planes; not likely to be of use for our purposes.
ZMP
Zenith MUD Protocol proposd for an open source MUD system. Sort of a meta-protocol, or else it is under construction.
Another Paper of interest is a "performance evaluation" of CVE standards; it is not about protocols in particular, but discusses them. http://www.mcrlab.uottawa.ca/papers/dis-rt99.pdf

Ports

At NMSU, at least, and pretty commonly elsewhere, all ports < 1024 are unavailable except for standard services. Ports > 1024 are not stopped by the firewall; according to Matt Hulin we can use any ports we want up in user-port land.