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:
- Robert Parlett's
Unicon IPC classes
- Blender.org has a protocol called
Verse
which might be useful. At the least, its discussion of
networking protocols is useful.
- Mike Kemp claims SCTP may
be an appropriate protocol for this type of project. Some
more links on SCTP are available.
- Bandwidth Monitor NG
is a network bandwidth monitor that Jayanthan has had good luck with.
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.